:root{--bg:#07111c;--panel:#101e2b;--panel2:#142737;--line:#294153;--text:#f4f7fa;--muted:#9fb1c1;--accent:#58c8f5;--good:#37d39a;--warn:#ffc857;--bad:#ff6b6b;--purple:#b99cff;--shadow:0 18px 45px rgba(0,0,0,.22)}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(145deg,#06101a 0%,#0b1926 48%,#07111c 100%);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif;min-height:100vh}.topbar{display:flex;justify-content:space-between;align-items:center;padding:28px 36px;border-bottom:1px solid var(--line);background:rgba(5,14,23,.88);position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.eyebrow{font-size:12px;letter-spacing:.18em;color:var(--accent);font-weight:800}.topbar h1{margin:5px 0 4px;font-size:30px}.topbar p{margin:0;color:var(--muted)}.top-actions{display:flex;gap:10px}.btn{border:1px solid #4cb8e4;background:#258bb5;color:white;border-radius:10px;padding:10px 15px;font-weight:700;cursor:pointer}.btn.secondary{background:transparent;color:var(--text);border-color:var(--line)}main{max-width:1500px;margin:0 auto;padding:28px}.panel{background:linear-gradient(160deg,rgba(19,38,54,.98),rgba(11,27,40,.98));border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow);margin-bottom:22px}.panel h2{margin:0 0 8px;font-size:20px}.panel p{color:var(--muted);line-height:1.55}.panel-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.status-badge,.scenario-badge{display:inline-flex;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:800}.status-badge{color:var(--good);background:rgba(55,211,154,.12);border:1px solid rgba(55,211,154,.35)}.scenario-badge{color:var(--purple);background:rgba(185,156,255,.12);border:1px solid rgba(185,156,255,.35)}.filters-grid,.input-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;margin-top:16px}.input-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:13px;font-weight:700}input,select{width:100%;background:#091722;color:var(--text);border:1px solid var(--line);border-radius:9px;padding:10px 11px;font-size:14px}.kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:22px}.kpi-card{background:linear-gradient(160deg,#152d40,#0d1e2c);border:1px solid var(--line);border-radius:14px;padding:17px;min-height:118px;box-shadow:var(--shadow)}.kpi-card .label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.kpi-card .value{font-size:30px;font-weight:900;margin-top:13px}.kpi-card .note{font-size:12px;color:var(--muted);margin-top:7px}.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:22px}.big-explanation{font-size:21px;line-height:1.45;font-weight:800;color:white;margin:18px 0}.diagnosis-list{display:grid;gap:10px;margin-top:13px}.diagnosis-item{padding:12px 14px;border-left:4px solid var(--accent);background:rgba(88,200,245,.07);border-radius:8px;line-height:1.45}.callout{margin-top:18px;border:1px solid rgba(185,156,255,.36);background:rgba(185,156,255,.09);padding:15px;border-radius:11px;line-height:1.5}.scenario-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.scenario-card{background:#0a1925;border:1px solid var(--line);border-radius:12px;padding:15px}.scenario-card .number{font-size:25px;font-weight:900;margin:8px 0}.scenario-card .caption{font-size:12px;color:var(--muted)}canvas{width:100%;height:auto;display:block;background:#091722;border-radius:12px;border:1px solid #20384a}.warning{border-left:4px solid var(--warn);background:rgba(255,200,87,.08);padding:12px;border-radius:8px}.savings-result{margin-top:16px;padding:16px;background:#091722;border-radius:12px;border:1px solid var(--line);line-height:1.6}.improvement-block{display:grid;grid-template-columns:155px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.improvement-block strong{color:var(--accent)}.improvement-block span{color:var(--muted);line-height:1.45}.search{max-width:270px}.table-wrap{overflow:auto;margin-top:14px}table{border-collapse:collapse;width:100%;min-width:980px}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}th{color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.06em}tbody tr:hover{background:rgba(88,200,245,.05)}.sla{font-weight:800;padding:4px 8px;border-radius:999px;font-size:11px;display:inline-block}.sla.good{color:var(--good);background:rgba(55,211,154,.12)}.sla.control{color:var(--accent);background:rgba(88,200,245,.12)}.sla.warn{color:var(--warn);background:rgba(255,200,87,.12)}.sla.bad{color:var(--bad);background:rgba(255,107,107,.13)}.methodology li{margin:8px 0;color:var(--muted);line-height:1.45}footer{max-width:1500px;margin:0 auto;padding:10px 28px 35px;color:var(--muted);display:flex;justify-content:space-between;font-size:12px}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.grid.two{grid-template-columns:1fr}.filters-grid{grid-template-columns:repeat(2,1fr)}.scenario-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.topbar{padding:20px;align-items:flex-start;gap:16px;flex-direction:column}.top-actions{width:100%}.btn{flex:1}main{padding:16px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.filters-grid,.input-grid{grid-template-columns:1fr}.scenario-grid{grid-template-columns:1fr}.panel{padding:17px}.improvement-block{grid-template-columns:1fr}.topbar h1{font-size:25px}}
@media print{body{background:#fff;color:#111}.topbar{position:static;background:#fff;color:#111}.top-actions,.filters-panel,.savings-panel{display:none}.panel,.kpi-card{box-shadow:none;background:#fff;color:#111;border-color:#ccc;break-inside:avoid}.panel p,.methodology li,.kpi-card .note,.kpi-card .label{color:#444}canvas{border-color:#ccc;background:#fff}.grid.two{display:block}.panel{margin-bottom:12px}footer{color:#333}}

.cost-panel .scenario-grid{margin-bottom:18px}.cost-panel table td:nth-child(5){white-space:nowrap}.scenario-card .note{margin-top:5px;color:var(--muted);font-size:.78rem}.cost-panel .callout span{display:block;margin-top:4px}.input-grid select{width:100%;background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px}

.chart-wrap{position:relative;height:430px;padding:14px 12px 18px}


/* v4.2.1 reparación de legibilidad de gráficos */
.panel.chart-panel{padding-bottom:18px}
.panel.chart-panel h3{margin-bottom:10px}
.chart-wrap canvas{max-width:100%;max-height:100%}
@media (max-width: 1200px){
  .chart-wrap{height:390px}
}
@media (max-width: 768px){
  .chart-wrap{height:360px;padding:12px 8px 16px}
  .panel.chart-panel h3{font-size:1.05rem}
}


/* v4.2.2 corrección estructural de base de gráficos */
.grid.two > .panel canvas{margin-top:10px}
#hourlyChart{min-height:460px}
#slaChart,#operatorChart{min-height:430px}
canvas{width:100%;display:block}


/* v4.2.3 premium */
:root{
  --bg:#06111b;
  --panel:#102131;
  --panel2:#13283a;
  --line:#28465b;
  --line2:#345a73;
  --text:#f5f8fb;
  --muted:#9fb6c8;
  --accent:#67d3ff;
  --accent2:#87e0ff;
  --good:#43d9a1;
  --warn:#ffcd61;
  --bad:#ff7a7a;
  --shadow:0 20px 55px rgba(0,0,0,.28);
}
body{
  letter-spacing:.01em;
  background:
    radial-gradient(circle at top right, rgba(103,211,255,.07), transparent 32%),
    radial-gradient(circle at top left, rgba(135,224,255,.05), transparent 25%),
    linear-gradient(150deg,#06111b 0%,#0b1825 48%,#07111b 100%);
}
.topbar{
  padding:24px 34px;
  border-bottom:1px solid rgba(103,211,255,.14);
  box-shadow:0 10px 30px rgba(0,0,0,.18);
}
.topbar h1{
  font-size:31px;
  letter-spacing:-.02em;
}
.topbar p{font-size:14px}
.btn{
  border-radius:12px;
  padding:11px 16px;
  box-shadow:0 8px 22px rgba(37,139,181,.18);
}
.btn.secondary{
  background:rgba(255,255,255,.02);
}
main{max-width:1540px;padding:26px}
.panel{
  background:
    linear-gradient(180deg, rgba(21,40,57,.96), rgba(10,24,36,.98));
  border:1px solid rgba(103,211,255,.12);
  border-radius:18px;
  padding:24px;
  box-shadow:var(--shadow);
}
.panel h2{
  font-size:21px;
  letter-spacing:-.02em;
}
.panel p{font-size:14px}
.kpi-grid{gap:16px}
.kpi-card{
  min-height:126px;
  border-radius:16px;
  background:
    linear-gradient(180deg, rgba(20,44,61,.98), rgba(11,25,36,.98));
  border:1px solid rgba(103,211,255,.13);
  padding:18px 18px 16px;
}
.kpi-card .label{font-size:11px;letter-spacing:.11em}
.kpi-card .value{
  font-size:31px;
  letter-spacing:-.03em;
}
.kpi-card .note{font-size:12px;line-height:1.45}
.grid.two{gap:24px}
.big-explanation{
  font-size:23px;
  line-height:1.42;
  letter-spacing:-.02em;
}
.diagnosis-item{
  border-left:4px solid var(--accent2);
  background:linear-gradient(90deg, rgba(103,211,255,.09), rgba(103,211,255,.04));
  border-radius:10px;
}
.status-badge,.scenario-badge{
  font-size:11px;
  letter-spacing:.08em;
}
.scenario-grid{gap:16px}
.scenario-card{
  border-radius:14px;
  background:linear-gradient(180deg, rgba(11,27,40,.98), rgba(7,18,28,.98));
  border:1px solid rgba(103,211,255,.12);
  min-height:108px;
}
.scenario-card .number{
  font-size:26px;
  letter-spacing:-.03em;
}
.callout,.warning,.savings-result{
  border-radius:12px;
}
.callout{
  background:linear-gradient(180deg, rgba(185,156,255,.08), rgba(185,156,255,.04));
}
.warning{
  background:linear-gradient(180deg, rgba(255,200,87,.08), rgba(255,200,87,.04));
}
.savings-result{
  background:linear-gradient(180deg, rgba(12,24,35,.98), rgba(9,18,27,.98));
}
.table-wrap{
  border:1px solid rgba(103,211,255,.08);
  border-radius:14px;
  overflow:auto;
}
table{min-width:1020px}
th{
  position:sticky;
  top:0;
  background:#0d1d2c;
  z-index:1;
}
th,td{padding:12px 13px}
tbody tr:nth-child(even){background:rgba(255,255,255,.015)}
tbody tr:hover{background:rgba(103,211,255,.075)}
canvas{
  background:
    linear-gradient(180deg, rgba(9,23,34,.98), rgba(7,18,27,.98));
  border:1px solid rgba(103,211,255,.10);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.01);
}
footer{
  padding:12px 30px 36px;
  color:#95adbf;
}
@media(max-width:1100px){
  .kpi-card .value{font-size:28px}
  .scenario-card .number{font-size:24px}
}
@media(max-width:700px){
  .topbar h1{font-size:26px}
  .panel{padding:18px}
  .kpi-card{min-height:118px}
}
