*{box-sizing:border-box}
:root{--bg:#f5f6fa;--ink:#171b27;--muted:#7f8795;--line:#d6d9e2;--panel:#fff;--blue:#b9c9e4;--red:#efa9a7;--orange:#f0ad62;--purple:#7057ff;--green:#38a36a;--amber:#d49a3c;--bad:#d55d59}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Arial,sans-serif;font-size:14px}.app{width:min(1180px,calc(100% - 36px));margin:auto;padding:28px 0 45px}.top{display:flex;justify-content:space-between;align-items:end;padding-bottom:18px;border-bottom:1px solid var(--line)}.eyebrow,.label,.filters label{font-size:10px;letter-spacing:.13em;font-weight:800;color:#7768d8;text-transform:uppercase}.top h1{font-size:34px;letter-spacing:-.045em;margin:5px 0}.top p{margin:0;color:var(--muted);font-size:13px}.header-metrics{display:flex;align-items:center;gap:14px}.td-card{display:flex;align-items:center;gap:10px;background:#eef9f2;border:1px solid #bfe3cc;border-radius:12px;padding:8px 12px;min-width:168px}.td-code{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:#38a36a;color:#fff;font-size:15px;font-weight:900;letter-spacing:-.04em}.td-card b{display:block;font-size:20px;line-height:1.05;letter-spacing:-.04em;color:#1e7f4c}.td-card small{display:block;font-size:8px;letter-spacing:.08em;font-weight:800;color:#5f7869;margin-top:2px}.demo{text-align:right;color:#9aa0ad;font-size:8px}.demo b{display:block;color:var(--ink);font-size:11px;margin-top:3px}.nav{display:flex;gap:6px;overflow:auto;padding:15px 0}.nav button{white-space:nowrap;border:1px solid #dfe2ea;background:#fff;color:#666d7c;border-radius:8px;padding:10px 14px;font-size:11px;font-weight:700}.nav button.active{background:#171b27;color:#fff;border-color:#171b27}.filters{display:flex;gap:22px;align-items:end;border:1px solid var(--line);background:#fff;border-radius:16px;padding:16px;margin-bottom:17px}.filter-main{flex:1}.filters label{display:block;margin-bottom:9px}.coord-buttons{display:flex;gap:7px;flex-wrap:wrap}.coord-buttons button{border:1px solid #d4d9e4;background:#fff;border-radius:99px;padding:10px 15px;font-size:11px;font-weight:700;color:#606775;cursor:pointer}.coord-buttons button.selected{background:var(--purple);border-color:var(--purple);color:#fff;box-shadow:0 5px 13px #7057ff2c}.filter-week{width:180px}.filter-week select{width:100%;height:42px;border:1px solid #dce0e9;border-radius:9px;background:#fff;padding:0 10px;font-size:11px;font-weight:700;color:#424855}.context{display:flex;align-items:center;gap:30px;margin-bottom:14px}.context h2{font-size:19px;margin:0 0 3px}.context b{font-size:12px;margin-right:10px}.context span{font-size:11px;color:#9298a5}.capacity{text-align:center;border-left:1px solid var(--line);padding-left:25px}.capacity span,.capacity small{display:block;font-size:10px;color:#9399a5}.capacity strong{font-size:19px;display:block}.updated{margin-left:auto;text-align:right;font-size:10px;color:#999fac}.updated b{color:#59606e}.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px;position:relative}.kpi:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:14px 14px 0 0;background:#ddd}.kpi.ok:before{background:var(--green)}.kpi.warn:before{background:var(--amber)}.kpi.bad:before{background:var(--bad)}.kpi div{font-size:10px;color:#8d94a1;text-transform:uppercase;letter-spacing:.08em}.kpi strong{display:block;font-size:29px;letter-spacing:-.04em;margin:7px 0 2px}.kpi small{font-size:10px;color:#8b92a0}.row{display:grid;grid-template-columns:1.55fr .8fr;gap:14px;margin-bottom:14px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:17px}.panel-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:10px}.panel h3{font-size:17px;letter-spacing:-.02em;margin:3px 0 0}.legend{display:flex;gap:14px;font-size:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}color:#8d94a1}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}.legend .blue{background:var(--blue)}.legend .red{background:var(--red)}.legend .orange{background:var(--orange)}.legend .trend{width:20px;height:0;border-top:3px solid var(--purple);border-radius:0;background:transparent}.chart{height:310px}.svgchart{width:100%;height:100%;display:block}.grid{stroke:#d7dbe4;stroke-width:1.2}.axisline{stroke:#9da5b4;stroke-width:1.5}.axis{fill:#6f7786;font-size:11px;font-weight:600}.day{fill:#5f6776;font-size:11px;font-weight:600}.vlabel{fill:#454d5c;font-size:11px;font-weight:800}.redtext{fill:#b75f5c}.orangetext{fill:#b16f22}.prog{fill:var(--blue)}.exec{fill:var(--red)}.react{fill:var(--orange)}.chart-summary{display:flex;flex-wrap:wrap;gap:22px;border-top:1px solid #edf0f4;padding-top:11px;font-size:10px;color:#8b92a0}.chart-summary b{font-size:14px;color:#242936;margin-right:3px}.orange-text{color:#b16f22}.gauge-panel{display:flex;flex-direction:column}.gauge{--pct:87;width:175px;height:175px;border-radius:50%;margin:20px auto 13px;background:conic-gradient(var(--purple) calc(var(--pct)*1%),#ecebf5 0);display:grid;place-items:center}.gauge-inner{width:137px;height:137px;border-radius:50%;background:#fff;display:grid;place-items:center;align-content:center}.gauge-inner strong{font-size:38px;letter-spacing:-.05em}.gauge-inner span{font-size:10px;color:#9298a5}.status{display:flex;justify-content:center;gap:8px;align-items:center;font-size:11px}.status i{width:7px;height:7px;border-radius:50%;background:var(--green)}.status i.warn{background:var(--amber)}.status i.bad{background:var(--bad)}.status span{color:#7d8593}.gauge-panel p{text-align:center;color:#727a89;font-size:11px;margin:13px 20px}.hh-layout{display:flex;align-items:center;gap:18px}.hh-number{width:120px}.hh-number strong{font-size:48px;letter-spacing:-.06em;display:block}.hh-number span,.hh-number small{display:block;color:#727a89;font-size:10px}.hh-number small{margin-top:4px}.hh-chart{height:215px;flex:1;min-width:0}.backlog-total{display:flex;align-items:baseline;gap:6px}.backlog-total strong{font-size:32px;letter-spacing:-.05em}.backlog-total span{font-size:9px;color:#9298a5}.backlog-track{height:7px;background:#eceef3;border-radius:99px;margin:10px 0 6px;overflow:hidden}.backlog-track i{height:100%;display:block;background:var(--orange);border-radius:99px}.backlog-meta{display:flex;justify-content:space-between;font-size:8px;color:#8b92a0;margin-bottom:7px}.backlog-meta b{color:#4c5361}.pending{display:flex;gap:10px;padding:9px 0;border-top:1px solid #f0f1f4}.pending>strong{font-size:19px;min-width:30px}.pending b{display:block;font-size:9px}.pending span{font-size:10px;color:#9298a5}.table-panel{margin-bottom:14px}.hint{font-size:10px;color:#999fac}table{width:100%;border-collapse:collapse;min-width:760px}th{text-align:left;color:#9198a5;font-size:8px;text-transform:uppercase;letter-spacing:.07em;padding:0 8px 9px;border-bottom:1px solid var(--line)}td{padding:12px 8px;border-bottom:1px solid #eff1f5;font-size:10px}td small{display:block;color:#a0a6b1;font-size:9px;margin-top:2px}.current{background:#faf9ff}.react-cell{color:#b16f22;font-weight:700}.badge{padding:4px 6px;border-radius:5px;font-size:7px;font-weight:800}.badge.ok{background:#e7f5ed;color:#2a8051}.badge.warn{background:#fff2dc;color:#9a6a1f}.badge.bad{background:#fde9e8;color:#a23e3b}.analysis{margin-bottom:16px}.tag{font-size:8px;color:#6f5bd4;background:#f0edff;border-radius:6px;padding:5px 8px}.analysis-body{display:grid;grid-template-columns:145px 1fr;gap:22px;align-items:center}.analysis-score{border-right:1px solid var(--line);padding:8px}.analysis-score strong{display:block;font-size:44px;letter-spacing:-.06em}.analysis-score span{font-size:10px;color:#9298a5}.analysis-text{font-size:13px;line-height:1.65;color:#697180}.analysis-text p{margin:0 0 12px}.event-note{margin-top:12px;background:#fff9f1;border-left:3px solid var(--orange);padding:9px 11px;font-size:11px;color:#5f594e;line-height:1.55}footer{border-top:1px solid var(--line);padding-top:13px;color:#858d9a;font-size:9px}
@media(max-width:900px){.kpis{grid-template-columns:repeat(3,1fr)}.row{grid-template-columns:1fr}.filter-week{width:220px}}
@media(max-width:600px){.app{width:calc(100% - 20px);padding-top:18px}.top h1{font-size:24px}.demo,.updated,.capacity{display:none}.filters{display:block}.filter-week{width:100%;margin-top:13px}.kpis{grid-template-columns:1fr 1fr}.kpi strong{font-size:23px}.chart{height:270px}.hh-layout{display:block}.hh-number{width:auto;margin-bottom:8px}.hh-chart{height:190px}.analysis-body{grid-template-columns:1fr}.analysis-score{border-right:0;border-bottom:1px solid var(--line)}.nav{padding-bottom:10px}.coord-buttons button{flex:1;min-width:90px}}

.runtime-error{background:#fde9e8;color:#8d302d;padding:12px;border-left:3px solid #d55d59;border-radius:6px}

.trendline{fill:none;stroke:var(--purple);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}.trendpoint{fill:#fff;stroke:var(--purple);stroke-width:2.4}.trendlabel{fill:#5c4bd1;font-size:10px;font-weight:800}.hh-trendline{fill:none;stroke:var(--purple);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}

.td-role-panel{margin-top:14px;border-top:1px solid var(--line);padding-top:13px}.td-role-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px}.td-role-title b{font-size:12px}.td-role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.td-role{background:#f8fbf9;border:1px solid #e1eee6;border-radius:10px;padding:10px 12px}.td-role span{display:block;font-size:9px;color:#5f6776;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.td-role strong{display:block;font-size:22px;color:#2a8b55;margin:3px 0 1px;letter-spacing:-.04em}.td-role small{font-size:9px;color:#7a8790}.td-method{margin:9px 0 0;font-size:9px;color:#7b8490;line-height:1.4}.td-method b{color:#267e4d}.header-metrics .demo{min-width:78px}.runtime-error{font-size:12px!important}
@media(max-width:600px){.header-metrics{gap:7px}.td-card{min-width:145px;padding:6px 8px}.td-code{width:30px;height:30px;font-size:13px}.td-card b{font-size:17px}.td-card small{font-size:7px}.header-metrics .demo{display:none}.td-role-grid{grid-template-columns:1fr}.td-role{padding:9px 10px}.td-role strong{font-size:19px}}

.header-metrics{align-items:flex-start}.td-card{min-width:190px}.td-breakdown{display:grid;grid-template-columns:repeat(3,auto);gap:7px;margin-top:6px}.td-breakdown>div{background:#f8fbf9;border:1px solid #e1eee6;border-radius:8px;padding:5px 8px;min-width:72px}.td-breakdown span{display:block;font-size:8px;color:#697180;text-transform:uppercase;letter-spacing:.05em}.td-breakdown b{display:block;font-size:12px;color:#287e4f;margin-top:2px}.hh-chart{height:310px}.hh-chart .axis,.hh-chart .day,.hh-chart .vlabel{font-size:11px}
@media(max-width:900px){.td-breakdown{grid-template-columns:1fr;gap:4px}.td-breakdown>div{padding:4px 7px}}
@media(max-width:600px){.header-metrics{width:100%}.td-card{min-width:0}.td-breakdown{grid-template-columns:repeat(3,1fr);width:100%}.td-breakdown>div{min-width:0}.td-breakdown span{font-size:7px}.td-breakdown b{font-size:10px}.hh-chart{height:270px}}

.td-context-line{
  margin-top:8px;
  color:#16834f;
  font-size:10px;
  line-height:1.35;
  font-weight:800;
  letter-spacing:-.01em;
  text-align:right;
  max-width:440px;
}
@media(max-width:900px){
  .td-context-line{font-size:9px;text-align:left;max-width:none}
}
@media(max-width:600px){
  .td-context-line{font-size:8px;margin-top:7px}
}

/* TD V5: contexto como título azul del bloque de cuatro indicadores */
.header-metrics{align-items:flex-start}
.td-group{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.td-group-title{color:#356ac3;font-size:10px;line-height:1.25;font-weight:800;letter-spacing:.01em;text-align:right;max-width:620px}
.td-metric-row{display:flex;align-items:center;gap:8px}
.td-breakdown{margin-top:0}
@media(max-width:900px){.td-group{align-items:stretch}.td-group-title{text-align:left;max-width:none}.td-metric-row{flex-wrap:wrap}}
@media(max-width:600px){.td-group-title{font-size:9px}.td-metric-row{gap:5px}.td-breakdown{grid-template-columns:repeat(3,1fr)}}

/* DASHBOARD EJECUTIVO DE CONFIABILIDAD */
[hidden]{display:none!important}.reliability-dashboard{padding-top:4px}.reliability-head{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:8px 0 18px;border-bottom:1px solid var(--line)}.reliability-head h2{font-size:31px;letter-spacing:-.045em;margin:5px 0}.reliability-head p{margin:0;color:var(--muted);font-size:12px}.back-dashboard{border:1px solid #d8dbe4;background:#fff;border-radius:9px;padding:10px 13px;font-size:11px;font-weight:800;color:#4d5360;cursor:pointer}.reliability-filters{display:flex;gap:14px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px;margin:14px 0}.reliability-filters>div{min-width:170px}.reliability-filters label{display:block;font-size:9px;letter-spacing:.1em;font-weight:800;color:#7a8190;margin-bottom:6px}.reliability-filters select{width:100%;height:38px;border:1px solid #dce0e8;border-radius:8px;padding:0 9px;font-size:11px;font-weight:700;background:#fff;color:#414854}.rel-source{margin-left:auto;text-align:right;color:#969daa;font-size:9px}.rel-source b{display:block;color:#596170;margin-top:3px}.rel-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}.rel-kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;position:relative;min-height:126px}.rel-kpi:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#7057ff;border-radius:14px 14px 0 0}.rel-kpi.ok:before{background:var(--green)}.rel-kpi.warn:before{background:var(--amber)}.rel-kpi.bad:before{background:var(--bad)}.rel-kpi .rel-label{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#8c93a0;font-weight:800}.rel-kpi strong{display:block;font-size:30px;letter-spacing:-.05em;margin:7px 0 1px}.rel-kpi small{display:block;color:#8b92a0;font-size:9px;line-height:1.4}.rel-delta{font-weight:800;margin-left:5px}.rel-delta.up{color:var(--green)}.rel-delta.down{color:var(--bad)}.rel-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.rel-main-charts{grid-template-columns:1.55fr .8fr}.rel-panel{padding:16px}.rel-target{font-size:9px;color:#777f8e;background:#f4f5f8;border-radius:6px;padding:5px 7px}.rel-chart{height:265px}.rel-chart.compact{height:235px}.rel-chart svg{width:100%;height:100%;display:block}.rel-chart .rel-gridline{stroke:#e2e4e9;stroke-width:1}.rel-chart .rel-axis{stroke:#aab0bb;stroke-width:1.2}.rel-chart .rel-axis-text{fill:#7b8290;font-size:10px}.rel-chart .rel-value{fill:#343a46;font-size:10px;font-weight:800}.rel-chart .rel-label-text{fill:#727987;font-size:10px;font-weight:700}.rel-chart .rel-line{fill:none;stroke:#7057ff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.rel-chart .rel-point{fill:#fff;stroke:#7057ff;stroke-width:2}.rel-chart .rel-bar{fill:#b9c9e4}.rel-chart .rel-bar-accent{fill:#7057ff}.rel-chart .rel-bar-warn{fill:#f0ad62}.rel-summary{display:flex;flex-wrap:wrap;gap:16px;border-top:1px solid #edf0f4;padding-top:10px;font-size:9px;color:#89909d}.rel-summary b{font-size:13px;color:#252b36;margin-right:3px}.reliability-score{text-align:center;padding:12px 0 7px}.reliability-score strong{font-size:58px;letter-spacing:-.07em;display:block}.reliability-score span{font-size:10px;color:#8e95a1}.score-track{height:8px;background:#eceef3;border-radius:99px;overflow:hidden;margin:10px 0 8px}.score-track i{height:100%;display:block;background:var(--green);border-radius:99px;width:0}.rel-note{font-size:10px;line-height:1.5;color:#6d7481;text-align:center;min-height:42px}.mini-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.mini-stat-grid div{border-top:1px solid #eef0f4;padding-top:8px}.mini-stat-grid span{display:block;color:#949aa5;font-size:8px;text-transform:uppercase;letter-spacing:.06em}.mini-stat-grid b{font-size:16px;display:block;margin-top:2px}.strategy-layout{display:flex;align-items:center;gap:24px;min-height:185px}.strategy-donut{width:160px;height:160px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--purple) 0 68%,#f0ad62 68% 100%);flex:0 0 auto}.strategy-donut:after{content:"";width:112px;height:112px;background:#fff;border-radius:50%}.strategy-legend{flex:1}.strategy-legend div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #eef0f4;font-size:10px}.strategy-legend i{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:5px}.strategy-legend .pm{background:var(--purple)}.strategy-legend .cm{background:var(--orange)}.strategy-legend b{font-size:13px}.asset-ranking{padding-top:3px}.asset-row{display:grid;grid-template-columns:112px 1fr 48px;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #eef0f4}.asset-name{font-size:10px;font-weight:800}.asset-bar{height:7px;background:#eef0f3;border-radius:99px;overflow:hidden}.asset-bar i{height:100%;display:block;background:#b9c9e4;border-radius:99px}.asset-hours{text-align:right;font-size:10px;font-weight:800}.observations{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.observation{border:1px solid #e4e6ec;border-radius:11px;padding:12px;background:#fbfbfc}.observation .obs-title{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#7b8290;font-weight:800}.observation p{font-size:11px;line-height:1.55;color:#5f6775;margin:7px 0 0}.observation strong{color:#252b35}.observation.alert{border-left:3px solid var(--orange)}.observation.good{border-left:3px solid var(--green)}.observation.action{border-left:3px solid var(--purple)}.observation-footer{margin-top:12px;background:#f7f6ff;border:1px solid #e8e4ff;border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between;gap:15px;font-size:9px;color:#777e8b;line-height:1.45}.observation-footer b{color:#5143a9;text-align:right;max-width:55%}
@media(max-width:900px){.rel-kpis{grid-template-columns:repeat(3,1fr)}.rel-main-charts,.rel-grid{grid-template-columns:1fr}.reliability-head{align-items:flex-start;flex-direction:column}.reliability-filters{flex-wrap:wrap}.rel-source{margin-left:0;text-align:left}.observations{grid-template-columns:1fr}}
@media(max-width:600px){.rel-kpis{grid-template-columns:1fr 1fr}.reliability-filters{display:grid;grid-template-columns:1fr}.reliability-filters>div{min-width:0}.rel-kpi strong{font-size:24px}.rel-chart{height:235px}.rel-chart.compact{height:215px}.strategy-layout{display:block}.strategy-donut{margin:10px auto}.strategy-legend{margin-top:8px}.observation-footer{display:block}.observation-footer b{display:block;text-align:left;max-width:none;margin-top:6px}.back-dashboard{width:100%}}

/* IA4TIME · Navegación y lectura humana de confiabilidad V2 */
.nav{align-items:center;gap:8px;padding:14px 0 18px;overflow:visible;flex-wrap:wrap}
.nav button{appearance:none;cursor:pointer;min-height:42px;border:1px solid #cbd1dd;background:#fff;color:#3f4654;border-radius:10px;padding:10px 16px;font-size:11px;font-weight:800;box-shadow:0 1px 2px rgba(25,31,43,.06);transition:.16s ease}
.nav button:hover{border-color:#9ea7b7;transform:translateY(-1px);box-shadow:0 3px 8px rgba(25,31,43,.08)}
.nav button:focus-visible{outline:3px solid rgba(112,87,255,.22);outline-offset:2px}
.nav button.active{background:#171b27;color:#fff;border-color:#171b27;box-shadow:0 4px 10px rgba(23,27,39,.16)}
.nav button#reliabilityNav{border-color:#a99ce9;color:#5747b8;background:#faf9ff}
.nav button#reliabilityNav.active{background:#5b4ac7;color:#fff;border-color:#5b4ac7}

.reliability-head h2{max-width:780px;font-size:29px;line-height:1.12}
.reliability-head p{max-width:820px;line-height:1.5}
.rel-explainer{display:flex;gap:10px;align-items:flex-start;margin:12px 0;padding:10px 13px;background:#f8f8fb;border:1px solid #e2e4eb;border-radius:10px;font-size:10px;line-height:1.45;color:#697180}
.rel-explainer strong{color:#252b36;white-space:nowrap}
.rel-source small{display:block;margin-top:4px;color:#a0a6b0;font-size:8px}
.rel-kpi{min-height:174px;padding:14px 14px 12px}
.rel-kpi strong{font-size:28px;margin:6px 0 0}
.rel-kpi .rel-change{font-size:9px;color:#777f8c;margin:3px 0 7px;font-weight:700;min-height:13px}
.rel-kpi .rel-change .rel-delta{margin-left:0;margin-right:3px}
.rel-kpi .rel-delta.flat{color:#7e8692}
.rel-kpi details{margin-top:9px;border-top:1px solid #edf0f4;padding-top:8px}
.rel-kpi summary{cursor:pointer;list-style:none;font-size:9px;font-weight:800;color:#5b4ac7}
.rel-kpi summary::-webkit-details-marker{display:none}
.rel-kpi summary:before{content:'+';display:inline-grid;place-items:center;width:14px;height:14px;border:1px solid #d9d5f3;border-radius:50%;margin-right:5px;font-size:10px}
.rel-kpi details[open] summary:before{content:'−'}
.rel-kpi details p{font-size:9px;line-height:1.45;color:#697180;margin:6px 0 0}
.rel-definition{font-size:10px;line-height:1.5;color:#707887;margin:0 0 7px}
.rel-definition b{color:#3d4553}
.rel-chart-title{fill:#555d6c;font-size:10px;font-weight:800}
.rel-divider{stroke:#e2e4e9;stroke-width:1}
.rel-line-mtbf{fill:none;stroke:#5b4ac7;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.rel-line-mttr{fill:none;stroke:#d28a35;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.rel-point-mtbf{fill:#fff;stroke:#5b4ac7;stroke-width:2}
.rel-point-mttr{fill:#fff;stroke:#d28a35;stroke-width:2}
.dual-explain{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:4px}
.dual-explain span{background:#f8f9fb;border:1px solid #eceef3;border-radius:8px;padding:8px;font-size:9px;line-height:1.4;color:#737b88}
.dual-explain b{color:#343b48}
.health-status{display:flex;align-items:center;justify-content:center;gap:8px;margin:15px 0 5px}
.health-status i{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #e7f5ed}
.health-status strong{font-size:24px;letter-spacing:-.04em}
.health-status.warn i{background:var(--amber);box-shadow:0 0 0 4px #fff2dc}
.health-status.bad i{background:var(--bad);box-shadow:0 0 0 4px #fde9e8}
.health-text{text-align:center;color:#68717f;font-size:10px;line-height:1.5;min-height:45px;margin:4px 12px 12px}
.observation p{font-size:10px;line-height:1.55}
.observation-footer{font-size:9px}

@media(max-width:900px){
  .rel-kpis{grid-template-columns:repeat(2,1fr)}
  .dual-explain{grid-template-columns:1fr}
}
@media(max-width:600px){
  .nav{gap:6px}
  .nav button{flex:1 1 auto;padding:9px 11px;min-height:40px}
  .rel-kpis{grid-template-columns:1fr}
  .rel-kpi{min-height:0}
  .rel-explainer{display:block}
  .rel-explainer span{display:block;margin-top:4px}
  .reliability-head h2{font-size:24px}
}
/* V19 — Confiabilidad + SAP, integrados en un único dashboard */
.reliability-dashboard,.sap-dashboard{width:100%;}
.reliability-head,.sap-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px}.reliability-head h2,.sap-head h2{margin:3px 0 4px;font-size:25px}.reliability-head p,.sap-head p{margin:0;color:#747c89;font-size:11px;line-height:1.5}.back-dashboard{border:1px solid #d9ddea;background:#fff;border-radius:9px;padding:9px 12px;font-size:10px;font-weight:800;color:#555d6b;cursor:pointer;white-space:nowrap}
.reliability-filters,.sap-filters{display:grid;grid-template-columns:180px 180px 220px 1fr;gap:10px;align-items:end;margin-bottom:14px}.reliability-filters label,.sap-filters label{display:block;font-size:8px;font-weight:800;color:#8c94a2;letter-spacing:.08em;margin-bottom:5px}.reliability-filters select,.sap-filters select{width:100%;height:40px;border:1px solid #dce0e9;border-radius:9px;background:#fff;padding:0 10px;font-size:11px;font-weight:700;color:#424855}.rel-source,.sap-source{height:40px;border:1px dashed #dfe3eb;border-radius:9px;padding:6px 10px;display:flex;flex-direction:column;justify-content:center}.rel-source span,.sap-source span{font-size:7px;color:#969daa;text-transform:uppercase;letter-spacing:.08em}.rel-source b,.sap-source b{font-size:9px;color:#626a78;margin-top:2px}.selected-asset{background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 14px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:15px}.selected-asset strong{font-size:15px}.selected-asset span{font-size:9px;color:#747c89}.asset-critical{font-size:9px;font-weight:800;padding:5px 8px;border-radius:6px;background:#fff2dc;color:#98691e}.rel-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}.rel-kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px;position:relative}.rel-kpi:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:12px 12px 0 0;background:#ddd}.rel-kpi.ok:before{background:var(--green)}.rel-kpi.warn:before{background:var(--amber)}.rel-kpi.bad:before{background:var(--bad)}.rel-kpi .rel-label{font-size:8px;color:#8c94a2;text-transform:uppercase;letter-spacing:.07em}.rel-kpi strong{display:block;font-size:25px;margin:6px 0 2px}.rel-kpi small{font-size:9px;color:#8b92a0}.rel-delta{font-size:9px;margin-left:4px}.rel-delta.up{color:#2c8a57}.rel-delta.down{color:#b55350}.rel-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;margin-bottom:14px}.rel-panel{min-width:0}.rel-panel.wide{min-width:0}.rel-chart{height:270px;overflow:hidden}.rel-chart.compact{height:230px}.rel-chart svg{width:100%;height:100%;display:block}.rel-gridline{stroke:#e4e7ed;stroke-width:1}.rel-axis{stroke:#9ca5b3;stroke-width:1.2}.rel-axis-text,.rel-label-text{fill:#737b89;font-size:9px}.rel-value{fill:#454d5c;font-size:9px;font-weight:800}.rel-line{fill:none;stroke:var(--purple);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.rel-point{fill:#fff;stroke:var(--purple);stroke-width:2}.rel-bar{fill:var(--blue)}.rel-bar-warn{fill:var(--orange)}.rel-bar-accent{fill:var(--green)}.rel-target{font-size:8px;font-weight:800;color:#2f8554;background:#eaf6ef;padding:5px 7px;border-radius:6px}.rel-summary{display:flex;flex-wrap:wrap;gap:16px;border-top:1px solid #edf0f4;padding-top:9px;font-size:9px;color:#8b92a0}.rel-summary b{font-size:13px;color:#242936}.panel-description{font-size:10px;color:#858d9a;margin:4px 0 0;line-height:1.4}.priority-table{min-width:860px}.priority-table th{padding:0 8px 9px}.priority-table td{padding:11px 8px}.priority-table tr.selected-row{background:#faf9ff}.priority-table .priority-high{color:#a23e3b;font-weight:800}.priority-table .priority-mid{color:#9a6a1f;font-weight:800}.priority-table .priority-low{color:#2a8051;font-weight:800}.failure-modes,.recurrence-panel,.diagnosis-action{display:flex;flex-direction:column;gap:9px}.mode-row,.recurrence-row{border:1px solid #edf0f4;border-radius:9px;padding:9px 10px}.mode-top,.rec-top{display:flex;justify-content:space-between;gap:8px;font-size:9px}.mode-top b,.rec-top b{font-size:10px;color:#353c49}.mode-bar{height:6px;background:#eef0f4;border-radius:99px;margin-top:6px;overflow:hidden}.mode-bar i{height:100%;display:block;background:var(--orange);border-radius:99px}.mode-meta{font-size:8px;color:#8b92a0;margin-top:4px}.rec-status{font-size:8px;font-weight:800;padding:4px 6px;border-radius:5px}.rec-status.bad{background:#fde9e8;color:#a23e3b}.rec-status.warn{background:#fff2dc;color:#9a6a1f}.rec-status.ok{background:#e7f5ed;color:#2a8051}.diagnosis-card{border-radius:10px;padding:11px;border:1px solid}.diagnosis-card.diagnosis{background:#fff8f2;border-color:#f2dfc6}.diagnosis-card.action{background:#f2f8ff;border-color:#d8e6f5}.diagnosis-card .mini-label{font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#7b8490}.diagnosis-card strong{display:block;font-size:13px;margin:4px 0}.diagnosis-card p{margin:0;font-size:10px;line-height:1.5;color:#626a78}.observations{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.observation{border:1px solid #e9ebf0;border-radius:10px;padding:11px}.observation.good{background:#f4faf6;border-color:#dceee2}.observation.alert{background:#fff8f2;border-color:#f2e1d0}.observation.action{background:#f3f7ff;border-color:#dfe7f5}.obs-title{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#68717f}.observation p{font-size:10px;line-height:1.5;color:#626a78;margin:5px 0 0}.sap-flow{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px;margin-bottom:14px}.sap-flow span{font-size:9px;font-weight:800;color:#515967;background:#f4f5f8;padding:6px 9px;border-radius:6px}.sap-flow i{font-style:normal;color:#9aa1ad;font-weight:900}.sap-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}.sap-kpi{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px;cursor:pointer;position:relative}.sap-kpi:hover{box-shadow:0 5px 18px #30364a10}.sap-kpi.active{outline:2px solid #7057ff30}.sap-kpi:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:13px 13px 0 0;background:#ddd}.sap-kpi.ok:before{background:var(--green)}.sap-kpi.warn:before{background:var(--amber)}.sap-kpi.bad:before{background:var(--bad)}.sap-kpi .sap-label{font-size:8px;color:#8b92a0;text-transform:uppercase;letter-spacing:.06em}.sap-kpi strong{display:block;font-size:29px;margin:6px 0 2px}.sap-kpi .sap-detail-line{font-size:9px;color:#646c79}.sap-kpi small{display:block;font-size:8px;color:#9299a5;margin-top:5px}.sap-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.sap-gaps{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.sap-gap{border:1px solid #eceef2;border-radius:9px;padding:10px}.sap-gap span{display:block;font-size:8px;color:#8c94a2;text-transform:uppercase}.sap-gap b{display:block;font-size:20px;margin:3px 0}.sap-gap small{font-size:8px;color:#8b92a0}.sap-gap.alert{background:#fff8f2;border-color:#f0dfcc}.sap-gap.good{background:#f4faf6;border-color:#dceee2}.sap-trend{height:210px}.sap-trend svg{width:100%;height:100%}.sap-bar{fill:var(--purple)}.sap-bar-programadas{fill:var(--blue)}.sap-bar-ejecutadas{fill:var(--purple)}.sap-bar-cerradas{fill:var(--green)}.sap-bar-value{font-size:10px;font-weight:900;fill:#404856}.sap-trend-legend i.sap-bar-programadas{height:8px;background:var(--blue)}.sap-trend-legend i.sap-bar-ejecutadas{height:8px;background:var(--purple)}.sap-trend-legend i.sap-bar-cerradas{height:8px;background:var(--green)}.sap-trend-label{font-size:9px;fill:#5e6674;font-weight:800}.sap-detail{min-height:74px}.sap-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.sap-detail-box{background:#f7f8fa;border-radius:8px;padding:10px}.sap-detail-box span{display:block;font-size:8px;color:#8b92a0;text-transform:uppercase}.sap-detail-box b{display:block;font-size:18px;margin-top:3px}.sap-method{margin-top:12px;font-size:9px;color:#747c89;line-height:1.5}.sap-warning{margin-top:10px;padding:9px;border-left:3px solid var(--orange);background:#fff9f1;font-size:9px;color:#645e54}.sap-dashboard[hidden],.reliability-dashboard[hidden]{display:none!important}
@media(max-width:900px){.reliability-filters,.sap-filters{grid-template-columns:1fr 1fr}.rel-kpis,.sap-kpis{grid-template-columns:repeat(3,1fr)}.rel-grid,.sap-grid{grid-template-columns:1fr}.observations{grid-template-columns:1fr}.sap-detail-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.reliability-head,.sap-head{display:block}.back-dashboard{margin-top:10px}.reliability-filters,.sap-filters{grid-template-columns:1fr}.rel-kpis,.sap-kpis{grid-template-columns:1fr 1fr}.selected-asset{display:block}.selected-asset .asset-critical{display:inline-block;margin-top:7px}.rel-chart{height:235px}.sap-flow{justify-content:flex-start}.sap-gaps{grid-template-columns:1fr}.sap-detail-grid{grid-template-columns:1fr}.rel-summary{gap:9px}}
/* V20 — SAP executive gauges + weekly trend */
.sap-kpis{align-items:stretch}
.sap-kpi{min-height:245px;padding:14px 12px 12px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:hidden}
.sap-kpi .sap-label{align-self:stretch;text-align:left;margin-bottom:4px}
.sap-gauge{--pct:0;--gauge-color:var(--purple);width:142px;height:142px;border-radius:50%;background:conic-gradient(var(--gauge-color) calc(var(--pct)*1%),#edf0f5 0);display:grid;place-items:center;position:relative;margin:7px auto 9px;box-shadow:inset 0 0 0 1px #e3e6ec}
.sap-gauge:after{content:"";position:absolute;inset:11px;border-radius:50%;background:#fff;box-shadow:0 1px 5px #30364a10}
.sap-gauge-inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;line-height:1}
.sap-gauge-inner strong{font-size:31px;letter-spacing:-.04em;color:#252b36}
.sap-gauge-inner span{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#8b92a0;margin-top:5px;font-weight:800}
.sap-kpi.ok .sap-gauge{--gauge-color:var(--green)}
.sap-kpi.warn .sap-gauge{--gauge-color:var(--amber)}
.sap-kpi.bad .sap-gauge{--gauge-color:var(--bad)}
.sap-kpi .sap-detail-line{font-weight:800;margin-top:0}
.sap-kpi small{line-height:1.35;max-width:190px}
.sap-kpi.active{box-shadow:0 7px 22px #30364a12}
.sap-kpi.active:after{content:"";position:absolute;bottom:0;left:24px;right:24px;height:2px;background:var(--purple);border-radius:4px}
.sap-trend{height:350px;padding:4px 0 0}
.sap-trend svg{width:100%;height:100%;display:block;overflow:visible}
.sap-trend-grid{stroke:#e8ebf0;stroke-width:1}
.sap-trend-axis{stroke:#aab1bd;stroke-width:1}
.sap-trend-target{stroke:#b8bec9;stroke-width:1.2;stroke-dasharray:5 5}
.sap-trend-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.sap-trend-point{fill:#fff;stroke-width:2.5}
.sap-trend-value{font-size:9px;font-weight:900;fill:#404856}
.sap-trend-week{font-size:9px;font-weight:800;fill:#737b89}
.sap-trend-title{font-size:8px;font-weight:800;fill:#8a929f;text-transform:uppercase}
.sap-trend-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:3px;padding-left:12px}
.sap-trend-legend span{font-size:8px;color:#68717f;font-weight:700;display:flex;align-items:center;gap:5px}
.sap-trend-legend i{width:18px;height:3px;border-radius:3px;display:inline-block;background:var(--purple)}
.sap-trend-legend i.target{background:#aeb5c0;height:1px}
@media(max-width:900px){.sap-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.sap-kpis{grid-template-columns:1fr 1fr}.sap-gauge{width:125px;height:125px}.sap-gauge-inner strong{font-size:27px}.sap-kpi{min-height:225px}.sap-trend{height:280px}}

.sap-balance-note{margin-top:12px;padding:11px 13px;border-left:3px solid var(--purple);background:#f7f6ff;border-radius:0 8px 8px 0;font-size:10px;line-height:1.55;color:#626a78}.sap-balance-note strong{color:#3f3a74}
