.monitoring-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:18px;margin:18px 0}
.monitoring-charts .performance-chart{max-width:620px;width:100%;justify-self:start}.state-bar-chart{min-height:0}.state-bars{display:grid;gap:10px;margin-top:12px}.state-bar-row{display:grid;grid-template-columns:minmax(92px,1fr) minmax(120px,2fr) 28px;align-items:center;gap:9px;font-size:12px}.state-bar-track{height:12px;border-radius:99px;background:var(--pale,#f4f7fb);overflow:hidden}.state-bar-track i{display:block;height:100%;border-radius:inherit}.state-bar-row strong{text-align:right}.monitoring-charts .state-donut-layout{max-width:620px;gap:30px}.monitoring-charts .state-donut{width:180px;max-width:48%}.monitoring-charts .status-legend{max-width:620px}
.performance-chart{min-width:0;padding:16px;border:1px solid var(--border,#d8e0e8);border-radius:12px}
.performance-chart h4{margin:0 0 10px}
.performance-chart svg{display:block;width:100%;height:auto}
.machine-state-chart h4{font-size:14px;font-weight:500;line-height:1.4}.state-donut-layout{display:flex;align-items:center;gap:22px;min-height:130px}.state-donut{width:132px;max-width:42%;overflow:visible;transform:rotate(-90deg)}.state-donut text{transform:rotate(90deg);transform-origin:60px 60px}.state-donut-total{font-size:22px;font-weight:800;fill:currentColor}.state-donut-caption{font-size:8px;fill:currentColor;opacity:.72}.state-donut-segment{transition:opacity .15s}.state-donut-segment:hover{opacity:.72}.machine-state-rows{flex:1;display:grid;gap:6px;margin:0;padding:0;list-style:none}.machine-state-row{display:flex;align-items:center;gap:7px;font-size:12px}.machine-state-label{flex:1;min-width:0}.machine-state-count{font-weight:800;min-width:24px;text-align:right}.state-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 9px}.status-legend{font-size:11px!important;margin:12px 0 0;opacity:.78}.legend-green{color:#198754}.legend-red{color:#c0392b}.legend-amber{color:#aa7600}.legend-neutral{color:#697988}
.machine-state-rows{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.machine-state-row{display:grid;grid-template-columns:132px minmax(0,1fr) minmax(4ch,max-content);align-items:center;gap:12px;min-width:0}
.machine-state-label,.machine-state-count{font-family:inherit;font-size:12px;line-height:1.4;text-align:right;font-weight:400;min-width:0}
.machine-state-label{overflow-wrap:anywhere}
.machine-state-count{font-weight:500;font-variant-numeric:tabular-nums}
.machine-state-track{display:block;height:14px;border-radius:4px;background:#edf2f7;overflow:hidden;min-width:0}
.machine-state-bar{display:block;height:100%;border-radius:4px}
.dark-mode .machine-state-track{background:#263448}
#monitorClient,#monitorChartAgent,#monitorChartPeriod{height:44px;min-width:min(520px,70vw);max-width:100%;padding:0 12px;border:1px solid var(--line,#d8e0e8);border-radius:9px;background:var(--pale,#f4f7fb);color:var(--ink,#172033);font:inherit}
@media(max-width:700px){#monitorClient,#monitorChartAgent,#monitorChartPeriod{display:block;width:100%;min-width:0;margin-top:7px}}
@media(max-width:600px){.machine-state-row{grid-template-columns:110px minmax(0,1fr) minmax(4ch,max-content);gap:8px}.machine-state-label,.machine-state-count{font-size:12px}}
.performance-chart p{font-size:12px;line-height:1.5;opacity:.8}
.performance-chart details{font-size:12px;margin-top:8px}
.performance-chart details .table-wrap{max-height:180px;overflow:auto}
.monitor-groups{margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:12px}
.monitor-tabs{display:flex;gap:8px;margin:18px 0 12px;border-bottom:1px solid var(--line);overflow-x:auto}.monitor-tabs button{border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;background:var(--pale);color:var(--muted);padding:11px 16px;font:inherit;font-weight:700;cursor:pointer;white-space:nowrap}.monitor-tabs button.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.monitor-groups-head,.monitor-group-row,.monitor-group-actions,.monitor-rule-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.monitor-groups-head h3{margin:0}.monitor-groups-head p{margin:4px 0;color:var(--muted)}
.monitor-group-list{display:grid;gap:7px;margin-top:12px}
.monitor-group-row{padding:10px;border:1px solid var(--line);border-radius:9px}
.monitor-group-row small{display:block;color:var(--muted)}
#monitorPolicyDialog .panel-body{max-height:min(78vh,840px);overflow-y:auto}
#monitorPolicyDialog .monitor-rule-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
#monitorPolicyDialog .monitor-rule-check{display:flex;align-items:center;gap:10px;min-width:0;max-width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;line-height:1.35}
#monitorPolicyDialog .monitor-rule-check span{order:1;flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
#monitorPolicyDialog .monitor-rule-check input[type=checkbox]{order:2;flex:0 0 20px;width:20px;min-width:20px;max-width:20px;height:20px;min-height:20px;margin:0;padding:0}
#monitorPolicyDialog .monitor-rule-thresholds{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0}
#monitorPolicyDialog .monitor-rule-thresholds label{min-width:0;white-space:normal}
#monitorPolicyDialog .monitor-rule-actions{justify-content:flex-start;margin-top:16px}
#monitorPolicyDialog .monitor-group-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#monitorPolicyDialog .monitor-group-fields label{display:grid;gap:6px;min-width:0}
#monitorPolicyDialog .monitor-group-fields input,#monitorPolicyDialog .monitor-group-fields select{width:100%;min-width:0}
@media(max-width:560px){#monitorPolicyDialog .monitor-rule-checks,#monitorPolicyDialog .monitor-group-fields{grid-template-columns:minmax(0,1fr)}#monitorPolicyDialog .monitor-rule-thresholds{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Les deux graphiques occupent toute la largeur disponible sans agrandir leurs cadres. */
@media(min-width:901px){
  .monitoring-charts{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:18px}
  .monitoring-charts .performance-chart{width:100%;max-width:none;justify-self:stretch}
  .monitoring-charts .state-donut-layout{max-width:none}
  .monitoring-charts .state-donut{width:210px;max-width:52%}
}

/* Supervision : profondeur légère et palette plus vive, sans effet 3D qui gênerait la lecture. */
.monitoring-charts .performance-chart{background:linear-gradient(145deg,#fff 0%,#f4f9ff 58%,#e7f4ff 100%);border-color:color-mix(in srgb,var(--blue,#4f9cf9) 28%,var(--line,#d8e0e8));box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -12px 28px rgba(79,156,249,.07),0 18px 38px rgba(43,89,145,.18);transform:perspective(1100px) rotateX(.7deg)}
.monitoring-charts .performance-chart svg{filter:drop-shadow(0 5px 8px rgba(57,111,170,.20)) saturate(1.18)}
.monitoring-charts .state-donut-segment{filter:drop-shadow(0 3px 3px rgba(23,54,93,.24)) saturate(1.12)}
.monitoring-charts .state-bar-track{background:#e9f2fb}
.monitoring-charts .state-bar-track i{box-shadow:0 2px 6px rgba(31,95,160,.22)}
.dark-mode .monitoring-charts .performance-chart{background:linear-gradient(145deg,#1d3550,#172231 72%,#10253b);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 18px 38px rgba(0,0,0,.35)}
.disk-usage-chart{min-width:0}.disk-usage-bars{display:grid;gap:15px;margin:16px 0}.disk-usage-row{display:grid;gap:6px}.disk-usage-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.disk-usage-head strong{font-size:13px}.disk-usage-head span,.disk-usage-row small{color:var(--muted);font-size:11px}.disk-usage-track{height:16px;border-radius:999px;background:linear-gradient(180deg,#e9f3fc,#dbeaf7);overflow:hidden;box-shadow:inset 0 2px 4px rgba(30,74,120,.12)}.disk-usage-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4f9cf9 0%,#20c7c0 55%,#8b7cf6 100%);box-shadow:0 3px 8px rgba(47,132,221,.35)}
#monitorCurves>.aw-chart,#monitorCurves>.disk-usage-chart{grid-column:auto!important;width:100%;max-width:none!important;justify-self:stretch}
@media(max-width:900px){#monitorCurves>.aw-chart,#monitorCurves>.disk-usage-chart{grid-column:1/-1!important}}
.state-3d-layout{display:flex;align-items:center;gap:18px;min-height:245px}.state-pie-3d{width:58%;max-width:300px;overflow:visible;filter:drop-shadow(0 10px 8px rgba(32,82,145,.24))}.state-3d-legend{flex:1;display:grid;gap:9px}.state-3d-legend>div{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;font-size:12px}.state-3d-legend strong{font-size:14px}.state-3d-chart .status-legend{margin-top:2px}@media(max-width:560px){.state-3d-layout{gap:8px}.state-pie-3d{width:56%}.state-3d-legend>div{font-size:11px}}
.monitor-chart-style-picker{display:inline-flex;align-items:center;gap:10px;margin:18px 0 0;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--pale);color:var(--muted);font-size:12px;font-weight:600}.monitor-chart-style-picker select{height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:0 10px;font:inherit}
.monitor-chart-style-picker{display:none}.state-3d-chart h4,.machine-state-chart h4{display:flex;align-items:center;justify-content:space-between;gap:12px}.monitor-chart-style-tools{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.72);font-size:11px;font-weight:600}.monitor-chart-style-tools button{border:0;border-radius:6px;padding:5px 9px;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.monitor-chart-style-tools button.active{background:var(--blue,#4f9cf9);color:#fff;box-shadow:0 2px 5px rgba(36,118,211,.25)}
.echarts-state-chart{width:100%;height:300px;min-height:260px}
.cpu-memory-gauge-card{min-width:0}.cpu-memory-gauge-chart{height:330px;width:100%;min-height:260px}.cpu-gauge-card,.memory-gauge-card{min-width:0;height:360px;min-height:0}.single-gauge-chart{height:255px;width:100%;min-height:225px}
@media(min-width:901px){#monitorCurves{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:stretch}#monitorCurves>.performance-chart{grid-column:auto!important;width:100%;max-width:none!important;justify-self:stretch}}

progress.disk-usage-meter{display:block;appearance:none;-webkit-appearance:none;box-sizing:border-box;width:100%;border:0;padding:0;direction:ltr}
progress.disk-usage-meter::-webkit-progress-bar{background:linear-gradient(180deg,#e9f3fc,#dbeaf7);border-radius:999px}
progress.disk-usage-meter::-webkit-progress-value{background:linear-gradient(90deg,#4f9cf9,#20c7c0,#8b7cf6);border-radius:999px}
progress.disk-usage-meter::-moz-progress-bar{background:linear-gradient(90deg,#4f9cf9,#20c7c0,#8b7cf6);border-radius:999px}
.dark-mode progress.disk-usage-meter{background:#344359}.dark-mode progress.disk-usage-meter::-webkit-progress-bar{background:#344359}

/* Barres OS natives : compatibles avec la politique interdisant les styles inline. */
.os-chart progress.os-bar{display:block;width:100%;height:12px;border:0;border-radius:99px;appearance:none;background:#e9f2fb;color:var(--os-bar-color);accent-color:var(--os-bar-color)}
.os-chart progress.os-bar::-webkit-progress-bar{background:#e9f2fb;border-radius:99px}
.os-chart progress.os-bar::-webkit-progress-value{background:var(--os-bar-color);border-radius:99px}
.os-chart progress.os-bar::-moz-progress-bar{background:var(--os-bar-color);border-radius:99px}
.os-bar-0{--os-bar-color:#4f9cf9}.os-bar-1{--os-bar-color:#20c7c0}.os-bar-2{--os-bar-color:#f5b642}.os-bar-3{--os-bar-color:#8b7cf6}.os-bar-4{--os-bar-color:#ff647c}.os-bar-5{--os-bar-color:#7f93ad}
