:root { --bg:#061522; --surface:#0b2235; --surface2:#102d42; --line:#21435a; --text:#eef7ff; --muted:#95aebe; --aqua:#20d9ca; --blue:#4a8cff; --warn:#ffbf4d; --bad:#ff6376; --good:#58d68d; }
* { box-sizing:border-box; } body { margin:0; font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--text); background:radial-gradient(circle at 85% 0%,#12374c 0,transparent 31rem),var(--bg); min-height:100vh; }
button,input,select,textarea { font:inherit; } button { cursor:pointer; border:0; } .app-shell{min-height:100vh}.auth{max-width:470px;margin:8vh auto;padding:1.5rem}.brand{display:flex;gap:.8rem;align-items:center}.mark{width:40px;height:40px;border-radius:12px;background:linear-gradient(145deg,var(--aqua),var(--blue));display:grid;place-items:center;color:#04121e;font-weight:900}.brand h1{font-size:1.12rem;letter-spacing:.11em;margin:0}.brand p{margin:.25rem 0 0;color:var(--muted);font-size:.84rem}.panel{margin-top:2rem;padding:1.5rem;border:1px solid var(--line);background:rgba(11,34,53,.92);border-radius:18px;box-shadow:0 28px 70px #0007}.panel h2{margin:0 0 .4rem}.sub{color:var(--muted);margin:.2rem 0 1.2rem}.field{display:grid;gap:.42rem;margin:.85rem 0}.field label{font-size:.83rem;color:#cfe3ee}.field input,.field select,.field textarea{width:100%;padding:.78rem .85rem;border-radius:10px;border:1px solid var(--line);background:#071a29;color:var(--text)}.field textarea{min-height:86px;resize:vertical}.primary,.secondary,.danger{padding:.78rem 1rem;border-radius:10px;font-weight:750}.primary{background:linear-gradient(100deg,var(--aqua),#55a4ff);color:#04121e}.secondary{background:#14344b;color:var(--text);border:1px solid var(--line)}.danger{background:#4a1f2a;color:#ffdce2}.row{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.full{width:100%}.hint,.notice{font-size:.84rem;color:var(--muted);line-height:1.45}.notice{padding:.7rem .85rem;border-left:3px solid var(--aqua);background:#09283a;border-radius:5px}.error{color:#ff9aaa;font-size:.84rem}.layout{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{padding:1.2rem;border-right:1px solid var(--line);background:#06131f}.nav{display:grid;gap:.35rem;margin-top:2rem}.nav button{color:#bdd3df;text-align:left;padding:.75rem .8rem;background:transparent;border-radius:9px}.nav button.active,.nav button:hover{background:#123249;color:white}.userbox{margin-top:auto;padding-top:2rem;color:var(--muted);font-size:.83rem}.content{padding:clamp(1rem,3vw,2.5rem);max-width:1500px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1.5rem}.eyebrow{color:var(--aqua);letter-spacing:.1em;font-size:.75rem;font-weight:800}.topbar h2{margin:.2rem 0;font-size:1.65rem}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:1rem}.card{background:linear-gradient(160deg,#0d2b40,#091d2c);border:1px solid var(--line);border-radius:15px;padding:1rem}.card .value{font-size:1.8rem;font-weight:800;margin:.3rem 0}.card .label{font-size:.8rem;color:var(--muted)}.section{margin-top:1.3rem}.section-head{display:flex;justify-content:space-between;align-items:center;gap:.7rem}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px;background:#081b2a}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:.78rem;border-bottom:1px solid #17384d;font-size:.86rem}th{color:#9fc1d2;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;background:#0b2638}.tag{display:inline-block;padding:.25rem .5rem;border-radius:99px;font-size:.72rem;font-weight:750}.tag.good{background:#153b2c;color:#8cf0ba}.tag.warn{background:#493615;color:#ffd57a}.tag.bad{background:#4b202a;color:#ffb5c0}.tag.info{background:#173451;color:#99c7ff}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem}.wide{grid-column:1/-1}.modal{position:fixed;inset:0;background:#010a10c9;display:grid;place-items:center;padding:1rem;z-index:10}.modal-card{width:min(760px,100%);max-height:92vh;overflow:auto;background:#092032;border:1px solid var(--line);border-radius:18px;padding:1.3rem}.hidden{display:none!important}.camera{width:100%;max-height:260px;object-fit:cover;background:#02070b;border-radius:12px}.statusline{font-size:.85rem;color:var(--muted)}.module-checks{display:flex;gap:.6rem;flex-wrap:wrap}.module-checks label{padding:.45rem .55rem;border:1px solid var(--line);border-radius:9px;font-size:.82rem}.footer-note{color:var(--muted);font-size:.8rem;margin-top:1rem}@media (max-width:800px){.layout{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:.8rem}.sidebar .brand p,.userbox{display:none}.nav{display:flex;overflow:auto;margin-top:.7rem}.nav button{white-space:nowrap}.metric-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.content{padding:1rem}.topbar h2{font-size:1.3rem}}

/* Confirmaciones legibles de acceso y registro. */
.feedback{margin:.8rem 0 0;padding:.72rem .85rem;border-radius:10px;font-size:.85rem;line-height:1.4;border:1px solid transparent}.feedback.success{background:#103c2a;border-color:#2d9b65;color:#b8f7d2}.feedback.error{background:#451d27;border-color:#a94559;color:#ffd4dc}.feedback.pending{background:#173451;border-color:#3978b9;color:#cce5ff}

/* CENTINELA-WEB-001 · Base visual V16 y Dock lateral. */
.v16-app{min-height:100vh;background:radial-gradient(circle at 82% 0,#153c54 0,transparent 32rem),var(--bg)}.v16-header{height:auto;min-height:78px;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:1px solid var(--line);background:#061925e8;position:sticky;top:0;z-index:8;backdrop-filter:blur(12px)}.v16-brand{font-size:1.08rem;font-weight:900;letter-spacing:.13em;color:var(--aqua)}.v16-header p{margin:.3rem 0 0;color:var(--muted);font-size:.8rem}.v16-header-actions{display:flex;align-items:center;gap:.55rem}.dock-button{background:linear-gradient(135deg,#1d4f70,#0c2638);color:#d9f4ff;border:1px solid #39769a;border-radius:10px;padding:.7rem .62rem;font-weight:900;letter-spacing:.13em;writing-mode:vertical-rl}.v16-main{padding:1.15rem clamp(1rem,3vw,2.5rem);width:100%;transition:padding .25s}.v16-tabs{display:flex;gap:.5rem;overflow:auto;padding:0 0 1rem}.v16-tabs button{white-space:nowrap;border:1px solid var(--line);background:#0b2537;color:#c7dfeb;padding:.65rem .8rem;border-radius:10px;font-size:.8rem}.v16-tabs button.active{background:linear-gradient(100deg,#1c70a0,#2556a8);color:#fff;border-color:#4d9fc8}.v16-content{max-width:1600px;margin:auto}.v16-filters{position:fixed;z-index:20;left:0;top:0;bottom:0;width:min(355px,91vw);padding:1.05rem;background:#071b2aee;border-right:1px solid #28536b;box-shadow:18px 0 60px #0009;overflow:auto;transform:translateX(-103%);transition:transform .28s ease;backdrop-filter:blur(16px)}.v16-filters.is-open{transform:translateX(0)}.filter-head{display:flex;justify-content:space-between;gap:.8rem;align-items:start;margin-bottom:1.1rem}.filter-head b{display:block;font-size:1rem}.filter-head small{display:block;color:var(--muted);font-size:.72rem;margin-top:.22rem}.filter-block{display:grid;gap:.4rem;margin:.8rem 0}.filter-block label{font-size:.78rem;color:#cfe3ee;font-weight:700}.filter-block select,.filter-block input{width:100%;background:#0b273a;color:#eaf7ff;border:1px solid #315d77;border-radius:9px;padding:.64rem}.filter-block select{min-height:38px}.dimension-toggle{display:grid;grid-template-columns:repeat(4,1fr);gap:.3rem}.dimension-toggle button{padding:.45rem .2rem;border-radius:7px;background:#15364b;color:#a9cadb;border:1px solid #2a586f;font-size:.72rem}.dimension-toggle button.active{background:#2678a3;color:#fff}.clear-dark{width:100%;padding:.67rem;background:#08121b;color:#f1f8ff;border:1px solid #42677a;border-radius:9px;font-weight:800}.filter-foot{margin-top:1rem;padding:.75rem;background:#0c2b3d;border-radius:10px;display:grid;gap:.2rem}.filter-foot span{font-size:.75rem;color:var(--muted)}.v16-title{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1rem 0}.v16-title span:first-child{color:var(--aqua);font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.v16-title h2{margin:.25rem 0}.v16-title p{margin:0;color:var(--muted);max-width:760px}.v16-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.v16-metrics article,.v16-empty{background:linear-gradient(145deg,#0d2d42,#081c2a);border:1px solid var(--line);border-radius:14px;padding:1rem}.v16-metrics small,.v16-metrics span{display:block;color:var(--muted);font-size:.78rem}.v16-metrics strong{display:block;margin:.35rem 0;font-size:1.35rem}.v16-empty{margin-top:1rem;min-height:235px}.v16-empty h3{margin-top:0}.v16-empty p{max-width:660px;color:var(--muted);line-height:1.55}@media(max-width:720px){.v16-header{padding:.8rem}.v16-header p{display:none}.v16-main{padding:1rem}.v16-metrics{grid-template-columns:1fr}.v16-header-actions .secondary{display:none}}

/* Dock independiente y temas globales. */
.dock-notch{position:fixed;left:0;top:23vh;z-index:35;writing-mode:vertical-rl;letter-spacing:.16em;font-weight:900;padding:.95rem .5rem;border:1px solid #4582a5;border-left:0;border-radius:0 13px 13px 0;background:linear-gradient(180deg,#174c6b,#092131);color:#e8f8ff;box-shadow:8px 8px 25px #0007}.dock-notch:hover{background:linear-gradient(180deg,#2776a0,#12354a)}.theme-switch button{width:100%}
html[data-theme="light"]{--bg:#edf4f8;--surface:#ffffff;--surface2:#e6f0f6;--line:#c6d7e2;--text:#12212c;--muted:#526977;--aqua:#087f78;--blue:#176ec1;--warn:#a86500;--bad:#b62e44;--good:#13784a}html[data-theme="light"] body{background:radial-gradient(circle at 85% 0%,#ccecf1 0,transparent 31rem),var(--bg)}html[data-theme="light"] .v16-app{background:radial-gradient(circle at 82% 0%,#ccebf1 0,transparent 32rem),var(--bg)}html[data-theme="light"] .v16-header{background:#f8fcfef2}html[data-theme="light"] .v16-header p,html[data-theme="light"] .v16-title p{color:#405865}html[data-theme="light"] .v16-filters{background:#f6fbfdf2;border-color:#bcd3df;box-shadow:18px 0 50px #32596a33}html[data-theme="light"] .filter-block label,html[data-theme="light"] .filter-head small,html[data-theme="light"] .filter-foot span{color:#36515f}html[data-theme="light"] .filter-block select,html[data-theme="light"] .filter-block input{background:#fff;color:#13232d;border-color:#b6ceda}html[data-theme="light"] .dimension-toggle button{background:#e3eff5;color:#294651;border-color:#b4cad5}html[data-theme="light"] .dimension-toggle button.active{background:#247aa7;color:white}html[data-theme="light"] .filter-foot,html[data-theme="light"] .v16-metrics article,html[data-theme="light"] .v16-empty{background:linear-gradient(145deg,#fff,#edf5f8);border-color:#c5d7e2}html[data-theme="light"] .v16-tabs button{background:#fff;color:#1c3a4a;border-color:#c5d7e2}html[data-theme="light"] .v16-tabs button.active{background:linear-gradient(100deg,#176ec1,#087f78);color:#fff;border-color:#075f86;box-shadow:0 5px 14px #176ec14d;font-weight:800}html[data-theme="light"] .clear-dark{background:#08121b;color:#fff;border-color:#334f61}html[data-theme="light"] .secondary{background:#e6f0f5;color:#152c38;border-color:#bcd1db}html[data-theme="light"] .dock-notch{color:#fff}


/* Selector de destino antes de autenticar. */
.access-intent{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin:1rem 0}
.access-intent button{display:grid;gap:.18rem;text-align:left;padding:.8rem;border:1px solid var(--line);border-radius:12px;background:var(--surface2);color:var(--text)}
.access-intent button small{color:var(--muted);font-size:.72rem;line-height:1.25}
.access-intent button.active{background:linear-gradient(115deg,#176ec1,#087f78);border-color:#0a6f88;color:#fff;box-shadow:0 7px 18px #0b6e873d}
.access-intent button.active small{color:#e7fbff}
html[data-theme="light"] .access-intent button{background:#fff;color:#1c3a4a;border-color:#c5d7e2}
html[data-theme="light"] .access-intent button.active{background:linear-gradient(115deg,#176ec1,#087f78);color:#fff;border-color:#075f86}
@media(max-width:520px){.access-intent{grid-template-columns:1fr}}


/* Pantalla de acceso: el panel conserva fondo oscuro aun en modo claro. */
html[data-theme="light"] .panel h2{color:#f7fcff}
html[data-theme="light"] .panel .sub{color:#c9d9e3}
html[data-theme="light"] .panel .field label{color:#d7e7ef}
html[data-theme="light"] .panel .field input,
html[data-theme="light"] .panel .field select,
html[data-theme="light"] .panel .field textarea{background:#f9fcfe;color:#13232d;border-color:#a9c4d2}
html[data-theme="light"] .panel .access-intent button{background:#e9f2f7;color:#153541;border-color:#9dbcc9}
html[data-theme="light"] .panel .access-intent button.active{background:linear-gradient(115deg,#176ec1,#087f78);color:#fff}
html[data-theme="light"] .panel .access-intent button.active small{color:#e7fbff}


/* Simulación de perfiles limitada al superusuario. */
.view-as{display:grid;gap:.18rem;font-size:.68rem;color:var(--muted);min-width:190px}.view-as select{border:1px solid var(--line);background:#102f43;color:#e9f8ff;border-radius:8px;padding:.42rem .55rem;font-weight:700}.view-as span{font-weight:800;letter-spacing:.05em;text-transform:uppercase}@media(max-width:760px){.view-as{min-width:0;width:100%}.v16-header-actions{align-items:stretch}}
html[data-theme="light"] .view-as select{background:#fff;color:#173341;border-color:#aec9d5}


/* CEN-016 · Controles y leyenda de evolución. */
.chart-legend{display:flex;flex-wrap:wrap;gap:.8rem 1.1rem;margin:.3rem 0 .7rem;font-size:.86rem;color:var(--text,#dce7ed)}
.chart-legend span{display:inline-flex;align-items:center;gap:.35rem}.legend-bar{display:inline-block;width:12px;height:12px;border-radius:2px;background:#087f87}.legend-line{display:inline-block;width:19px;border-top:3px solid #e28a2b}.legend-line.trend{border-top-color:#7458c8;border-top-style:dashed}.cen15-toggle{margin:0 0 1rem}
[data-theme="light"] .chart-legend{color:#243541}


/* CEN-017 · Tarjetas comparativas y lectura por punto. */
.c17-card{position:relative}.c17-card b.good{color:#37c48e}.c17-card b.bad{color:#ef7777}.c17-card b.info{color:#9aafc0}
.c17-point-card{display:flex;gap:.7rem;align-items:baseline;flex-wrap:wrap;margin:.2rem 0 1rem;padding:.8rem 1rem;border:1px solid rgba(115,155,180,.35);border-radius:.65rem;background:rgba(19,38,54,.38);font-size:.9rem}
[data-theme="light"] .c17-point-card{background:#f4f8fb;color:#1b2c39}
.cen15-chart [data-c17-point]{cursor:crosshair}.cen15-chart [data-c17-point]:hover{filter:brightness(1.2);stroke:#fff;stroke-width:1.5}


/* CEN-018 · Pólizas replicadas desde appy.beta.02.py */
.c18-panel{background:#10192d;border:1px solid #253955;border-radius:18px;color:#edf4ff;padding:22px;margin-top:10px}.c18-subtabs{display:flex;gap:0;border-bottom:2px solid #31435d;margin:0 0 24px;overflow:auto}.c18-subtabs button{border:0;background:transparent;color:#eff4ff;padding:12px 16px;font-size:1rem;white-space:nowrap}.c18-subtabs button.active{color:#00d7ca;border-bottom:3px solid #00d7ca}.c18-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.c18-kpi{background:#213f63;border:1px solid #28547f;border-radius:15px;padding:25px 28px;min-height:142px}.c18-kpi small{display:block;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#dce8f5}.c18-kpi strong{display:block;color:#00d7ca;font-size:2.65rem;line-height:1.15;margin:12px 0}.c18-kpi span{color:#d9e3ee;font-size:.92rem}.c18-radio{margin:29px 0 18px;display:flex;gap:22px;align-items:center;flex-wrap:wrap}.c18-radio button{background:transparent;color:#eff4ff;border:0;font-size:1rem}.c18-radio button.active{color:#fff;font-weight:700}.c18-legend{display:flex;gap:20px;align-items:center;flex-wrap:wrap;font-size:.9rem;margin:0 0 6px}.c18-legend span{display:flex;align-items:center;gap:7px}.c18-legend i{display:inline-block;width:22px;border-top:3px solid}.c18-legend .bar{height:12px;width:12px;background:#365779;border:0}.c18-legend .dash{border-color:#f97316;border-top-style:dashed}.c18-legend .line{border-color:#00bfb3}.c18-legend .dot{border-color:#43d198;border-top-style:dotted}.c18-chart{background:#fff;border-radius:0;padding:4px;overflow:auto}.c18-chart svg{min-width:820px;width:100%;display:block}.c18-body h3{color:#fff;margin:0 0 8px}.c18-caption{color:#cbd7e5}.c18-ranking table{background:#081f30;color:#e5f0fb}.c18-ranking th{color:#b9d2e4;background:#0a293c}.c18-ranking td{border-color:#1a4155}@media(max-width:860px){.c18-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.c18-kpi{padding:18px}.c18-kpi strong{font-size:2rem}}@media(max-width:520px){.c18-kpis{grid-template-columns:1fr}}


/* CEN-022 · Refinamiento visual ejecutivo telecom */
:root{--c22-cyan:#22d3c5;--c22-navy:#0b1424;--c22-panel:#101d31;--c22-line:#243852;--c22-muted:#9fb0c4}
.c18-panel{background:linear-gradient(180deg,#0e192b 0%,#0a1424 100%);border:1px solid var(--c22-line);border-radius:14px;padding:18px;box-shadow:0 18px 50px rgba(0,0,0,.18)}
.c18-subtabs{margin-bottom:18px;border-bottom:1px solid #263850;gap:6px}.c18-subtabs button{padding:10px 14px;border-radius:8px 8px 0 0;color:#aebed0;font-size:.9rem;font-weight:700;transition:background .18s ease,color .18s ease,transform .18s ease}.c18-subtabs button:hover{background:#14243a;color:#fff}.c18-subtabs button.active{background:#14243a;color:#5eeadd;border-bottom:2px solid #27d3c5}
.c18-kpis{gap:10px}.c18-kpi{background:linear-gradient(145deg,#13243a,#102035);border:1px solid #29405d;border-radius:10px;padding:15px 17px;min-height:105px;box-shadow:inset 0 1px rgba(255,255,255,.025);transition:transform .18s ease,border-color .18s ease}.c18-kpi:hover{transform:translateY(-2px);border-color:#3a627d}.c18-kpi small{font-size:.68rem;color:#9fb1c5}.c18-kpi strong{font-size:2rem;margin:8px 0 5px;color:#5eeadd}.c18-kpi span{font-size:.76rem;color:#8fa3b8}
.c18-radio{margin:18px 0 12px;padding:7px;background:#0a1525;border:1px solid #20344e;border-radius:10px;gap:6px;width:max-content;max-width:100%}.c18-radio>b{padding:7px 10px;color:#8fa3b8;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.c18-radio button{padding:7px 11px;border-radius:7px;color:#9eb0c4;font-size:.82rem;transition:all .18s ease}.c18-radio button:hover{background:#162840;color:#fff}.c18-radio button.active{background:#18334d;color:#5eeadd;box-shadow:inset 0 0 0 1px #2b526a}
.c18-legend{font-size:.76rem;color:#9cafc2;gap:14px;margin:0 0 10px}.c18-chart{background:#f8fafc;border-radius:10px;padding:10px;border:1px solid #d8e0e8;box-shadow:0 8px 25px rgba(0,0,0,.12)}.c18-chart svg{border-radius:7px}
.c18-body h3{font-size:1.08rem;letter-spacing:.01em}.c18-caption{font-size:.82rem;color:#8fa4b9}.c18-ranking table{border-radius:10px;overflow:hidden}
.c18-total{font-weight:800;background:#142a40}.c18-total td{border-top:2px solid #35506d}
@media(max-width:860px){.c18-panel{padding:12px}.c18-kpis{gap:8px}.c18-kpi{min-height:94px}.c18-kpi strong{font-size:1.7rem}}


/* CEN-024 · sistema visual integral: NOC telecom / minimal executive */
body{letter-spacing:-.006em}.v16-shell,.workspace{max-width:1680px;margin-inline:auto}.v16-title{padding-block:10px 16px}.v16-title h2{font-size:clamp(1.45rem,2vw,2rem);letter-spacing:-.035em}.v16-title p{max-width:760px;color:#8fa3b7}
.card,.panel,.notice,.table-wrap{border-radius:12px}.table-wrap{border:1px solid rgba(93,126,151,.24);overflow:auto}table{border-collapse:separate;border-spacing:0;width:100%}th{position:sticky;top:0;z-index:1;text-transform:uppercase;letter-spacing:.055em;font-size:.68rem}th,td{padding:.72rem .82rem}tbody tr{transition:background .14s ease}tbody tr:hover{background:rgba(53,211,198,.045)}
button,.btn,select,input{transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}button:focus-visible,.btn:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid rgba(45,212,191,.6);outline-offset:2px}
.tag{border-radius:999px;font-size:.68rem;letter-spacing:.045em;text-transform:uppercase}.tag.good{box-shadow:none}
.c18-chart{min-height:360px}.c18-chart svg{max-height:520px}.c23-chart .c23-bar rect{transition:opacity .16s ease,transform .16s ease;transform-box:fill-box;transform-origin:center bottom}.c23-chart .c23-bar:hover rect{opacity:.88;transform:scaleX(1.025)}
.c18-body{animation:c24in .18s ease-out}@keyframes c24in{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* CEN-025 · hovercard contextual */
.c23-chart{position:relative}.c25-hovercard{position:absolute;z-index:20;display:none;pointer-events:none;min-width:225px;padding:13px 14px;border-radius:10px;background:rgba(9,20,35,.96);border:1px solid #35506d;box-shadow:0 14px 35px rgba(0,0,0,.28);color:#dce8f3;backdrop-filter:blur(8px)}.c25-hovercard.show{display:block}.c25-hovercard b{display:block;margin-bottom:9px;color:#fff;font-size:.92rem}.c25-hovercard div{display:flex;justify-content:space-between;gap:18px;padding:4px 0;border-top:1px solid rgba(143,163,184,.13);font-size:.78rem}.c25-hovercard span{color:#9eb0c3}.c25-hovercard strong{color:#5eeadd;font-variant-numeric:tabular-nums}

/* CEN-026 · transición de filtros / telemetría */
.c26-working{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;opacity:0;visibility:hidden;background:rgba(5,13,24,.22);backdrop-filter:blur(0);transition:opacity .18s ease,backdrop-filter .28s ease,visibility .18s}.c26-working.show{opacity:1;visibility:visible;backdrop-filter:blur(5px)}.c26-loader{min-width:245px;padding:18px 22px;text-align:center;border:1px solid rgba(94,234,221,.22);border-radius:14px;background:rgba(9,21,37,.94);box-shadow:0 18px 55px rgba(0,0,0,.28)}.c26-loader strong,.c26-loader span{display:block}.c26-loader strong{margin-top:8px;color:#e8f3fa;font-size:.88rem}.c26-loader span{margin-top:3px;color:#8298ad;font-size:.68rem;letter-spacing:.035em}.c26-signal{height:38px;display:flex;align-items:flex-end;justify-content:center;gap:4px;color:#5eeadd}.c26-signal i{display:block;width:4px;border-radius:4px;background:#5eeadd;animation:c26signal .75s ease-in-out infinite alternate}.c26-signal i:nth-child(1){height:9px}.c26-signal i:nth-child(2){height:18px;animation-delay:.12s}.c26-signal i:nth-child(3){height:28px;animation-delay:.24s}.c26-signal b{font-size:28px;line-height:30px;margin-left:7px;font-weight:400;animation:c26pulse 1s ease-in-out infinite}.c26-busy{cursor:progress}.c26-busy #content{filter:blur(1.4px);opacity:.72;transition:filter .2s ease,opacity .2s ease}@keyframes c26signal{to{transform:scaleY(.45);opacity:.45}}@keyframes c26pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.c26-signal i,.c26-signal b{animation:none}.c26-working{transition:none}}

/* CEN-028 · reincidencias */
.c27-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px}.c27-grid>div{min-width:0}.c27-bars{display:grid;gap:10px;padding:8px 2px}.c27-bars>div{display:grid;grid-template-columns:minmax(110px,1fr) minmax(100px,2fr) 44px;align-items:center;gap:9px;font-size:.76rem}.c27-bars span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c27-bars i{display:block;height:8px;border-radius:8px;background:linear-gradient(90deg,#0b8890,#5eeadd);min-width:4px}.c27-bars b{text-align:right;font-variant-numeric:tabular-nums}.c27-placeholder{min-height:170px;display:grid;place-items:center}@media(max-width:900px){.c27-grid{grid-template-columns:1fr}}

/* CEN-046 · paridad visual Reincidencias appy.beta */
.c45-filters{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin-top:14px}
.c45-filters label{font-size:.76rem;font-weight:800;letter-spacing:.02em;color:#34495a}
.c45-filters select{display:block;width:100%;margin-top:7px;padding:10px 12px;border:1px solid #cbdbe5;border-radius:10px;background:#fff;color:#102231}
.c45-legend{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0;font-size:.75rem}
.c45-legend span{display:flex;align-items:center;gap:6px}.c45-legend i{width:10px;height:10px;border-radius:2px;display:inline-block}
@media(max-width:1100px){.c45-filters{grid-template-columns:repeat(2,minmax(180px,1fr))}}
@media(max-width:650px){.c45-filters{grid-template-columns:1fr}}

/* CEN-047 · lectura ejecutiva de tendencia */
.c45-chart-head{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 8px}
.c45-float-card{min-width:170px;padding:10px 14px;border:1px solid #284056;border-radius:12px;background:rgba(15,32,50,.72);display:flex;flex-direction:column}
.c45-float-card small{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#8fa6b8}.c45-float-card strong{font-size:1.35rem;color:#eef7fa;margin:2px 0}.c45-float-card span{font-size:.72rem;color:#a9bdcc}
.c45-legend .trend-key{width:20px;height:0;border-top:2px dashed #d8eef2;border-radius:0;background:none}

/* CEN-049 · tablas de paridad appy.beta */
.c48-wide{min-width:280px;max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c48-detail{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:end;margin-top:14px;padding:14px;border:1px solid #284056;border-radius:12px}.c48-detail b{grid-column:1/-1}.c48-detail select,.c48-search input,.c48-search select{padding:10px 12px;border:1px solid #cbdbe5;border-radius:10px;background:#fff;color:#102231}.c48-detail button{padding:10px 18px;border:0;border-radius:10px;font-weight:800;cursor:pointer}
.c48-search{display:grid;grid-template-columns:3fr 1fr;gap:12px;margin:14px 0 8px}.c48-raw{margin-top:16px}.c48-raw summary{cursor:pointer;font-weight:800}
@media(max-width:760px){.c48-search,.c48-detail{grid-template-columns:1fr}}

/* CEN-050 · herramientas universales de tabla */
.c50-tools{display:flex;justify-content:flex-end;gap:8px;margin:8px 0 12px}.c50-tools button{border:1px solid #31506a;border-radius:9px;padding:7px 11px;background:transparent;color:inherit;font-weight:700;cursor:pointer}.c50-sortable{cursor:pointer;user-select:none}.c50-sortable:after{content:' ↕';opacity:.45;font-size:.85em}.c18-panel:fullscreen{overflow:auto;padding:24px;background:var(--bg,#08131d)}

/* CEN-276 · Pantalla de cargas: contraste explícito en modo oscuro y claro (ratios >= 6.7:1). */
.c60{background:#0d1f31;color:#eef7ff;border:1px solid #21435a;color-scheme:dark}
.c60 h3,.c60 h4,.c60 label,.c60 td,.c60 .value,.c60 p,.c60 li{color:#eef7ff}
.c60 .label,.c60 .hint,.c60 .notice{color:#b9ccda}
.c60 .table-wrap{background:#0a1827;border-color:#21435a}
.c60 th{background:#12293d;color:#cfe3f0}
.c60 td{border-color:#1b374c}
.c60 input,.c60 select,.c60 textarea{background:#071a29;color:#eef7ff;border:1px solid #3a627a;color-scheme:dark}
.c60 input::placeholder,.c60 textarea::placeholder{color:#9fb6c6}
.c60 input[type=file]::file-selector-button{background:#e6f0f6;color:#12212c;border:0;border-radius:6px;padding:.35rem .7rem;margin-right:.7rem;font-weight:700}
.c60 .tag{font-weight:800;letter-spacing:.03em}
.c60 .tag.good{background:#0f3d2a;color:#9bf5c4}
.c60 .tag.warn{background:#4a3613;color:#ffd98a}
.c60 .tag.bad{background:#4b202a;color:#ffc2cc}
.c60 .tag.info{background:#173451;color:#a9d0ff}
.c60 a{color:#8fc6ff}
html[data-theme="light"] .c60{background:#ffffff;color:#12212c;border-color:#c6d7e2;color-scheme:light}
html[data-theme="light"] .c60 h3,html[data-theme="light"] .c60 h4,html[data-theme="light"] .c60 label,html[data-theme="light"] .c60 td,html[data-theme="light"] .c60 .value,html[data-theme="light"] .c60 p,html[data-theme="light"] .c60 li{color:#12212c}
html[data-theme="light"] .c60 .label,html[data-theme="light"] .c60 .hint,html[data-theme="light"] .c60 .notice{color:#3f5866}
html[data-theme="light"] .c60 .table-wrap{background:#f6fafc;border-color:#c6d7e2}
html[data-theme="light"] .c60 th{background:#e6f0f6;color:#1c3a4a}
html[data-theme="light"] .c60 td{border-color:#dbe7ee}
html[data-theme="light"] .c60 input,html[data-theme="light"] .c60 select,html[data-theme="light"] .c60 textarea{background:#ffffff;color:#12212c;border-color:#8fb0c2;color-scheme:light}
html[data-theme="light"] .c60 input::placeholder,html[data-theme="light"] .c60 textarea::placeholder{color:#5b7482}
html[data-theme="light"] .c60 input[type=file]::file-selector-button{background:#176ec1;color:#fff}
html[data-theme="light"] .c60 .tag.good{background:#d9f5e6;color:#0b5a36}
html[data-theme="light"] .c60 .tag.warn{background:#fff1cf;color:#7a4a00}
html[data-theme="light"] .c60 .tag.bad{background:#fde2e6;color:#8f1d33}
html[data-theme="light"] .c60 .tag.info{background:#dcecff;color:#0f4f94}
html[data-theme="light"] .c60 a{color:#0f5fb0}

/* CEN-279 · Revisión global de contraste: en modo claro TODAS las superficies oscuras fijas pasan a claras
   (antes el texto se volvía oscuro sobre fondos azul marino y no se leía). Contraste mínimo 7:1. */
html[data-theme="light"] .card,
html[data-theme="light"] .modal-card,
html[data-theme="light"] .c18-panel,
html[data-theme="light"] .c18-radio{background:#ffffff;color:#12212c;border-color:#c6d7e2;box-shadow:0 1px 3px #12212c14}
html[data-theme="light"] .card h2,html[data-theme="light"] .card h3,html[data-theme="light"] .card h4,
html[data-theme="light"] .card .value,html[data-theme="light"] .card p,html[data-theme="light"] .card li,
html[data-theme="light"] .card td,html[data-theme="light"] .card label,html[data-theme="light"] .card strong,
html[data-theme="light"] .c18-panel *,html[data-theme="light"] .modal-card *{color:#12212c}
html[data-theme="light"] .card .label,html[data-theme="light"] .card .hint,html[data-theme="light"] .card small,
html[data-theme="light"] .card .sub{color:#3f5866}
html[data-theme="light"] .notice{background:#e6f3f7;color:#12212c}
html[data-theme="light"] .sidebar{background:#f1f7fa}
html[data-theme="light"] .table-wrap,html[data-theme="light"] .c18-ranking table{background:#f6fafc;color:#12212c}
html[data-theme="light"] th,html[data-theme="light"] .c18-ranking th{background:#e6f0f6;color:#1c3a4a}
html[data-theme="light"] td{color:#12212c;border-color:#dbe7ee}
html[data-theme="light"] .tag{background:#e3eff5;color:#1c3a4a;border-color:#b4cad5}
html[data-theme="light"] .feedback.success{background:#d9f5e6;color:#0b5a36}
html[data-theme="light"] .feedback.error{background:#fde2e6;color:#8f1d33}
html[data-theme="light"] .feedback.pending{background:#dcecff;color:#0f4f94}
html[data-theme="light"] .field input,html[data-theme="light"] .field select,html[data-theme="light"] .field textarea{background:#fff;color:#12212c;border-color:#8fb0c2}
html[data-theme="light"] .v16-metrics article h3,html[data-theme="light"] .v16-metrics article strong{color:#12212c}
html[data-theme="light"] .c53-svg{color:#176ec1}
html[data-theme="light"] .dock-button{background:#e3eff5;color:#12212c;border-color:#8fb0c2}

/* CEN-281 · Contraste modo claro: sub-pestañas, KPIs y selector de barras de Pólizas (familia .c18) y resto de superficies fijas. */
html[data-theme="light"] .c18-subtabs{border-bottom-color:#9fb8c6}
html[data-theme="light"] .c18-subtabs button{background:transparent;color:#1c3a4a}
html[data-theme="light"] .c18-subtabs button:hover{background:#e3eff5;color:#0b2230}
html[data-theme="light"] .c18-subtabs button.active{background:#e3eff5;color:#075f5a;border-bottom:3px solid #087f78}
html[data-theme="light"] .c18-kpi{background:#ffffff;border:1px solid #b9cfdb;box-shadow:0 1px 3px #12212c14}
html[data-theme="light"] .c18-kpi small{color:#36515f}
html[data-theme="light"] .c18-kpi strong{color:#075f5a}
html[data-theme="light"] .c18-kpi span{color:#3f5866}
html[data-theme="light"] .c18-radio{background:#ffffff;border-color:#b9cfdb}
html[data-theme="light"] .c18-radio>b{color:#36515f}
html[data-theme="light"] .c18-radio button{background:transparent;color:#1c3a4a}
html[data-theme="light"] .c18-radio button:hover{background:#e3eff5;color:#0b2230}
html[data-theme="light"] .c18-radio button.active{background:#d5ecf0;color:#075f5a;box-shadow:inset 0 0 0 1px #087f78}
html[data-theme="light"] .c18-total{background:#e6f0f6;color:#12212c}
html[data-theme="light"] .c18-total td{border-top-color:#9fb8c6}
html[data-theme="light"] .c18-caption,html[data-theme="light"] .c18-sub{color:#3f5866}
html[data-theme="light"] .c18-panel .c18-subtabs button,html[data-theme="light"] .c18-panel .c18-radio button{color:#1c3a4a}
html[data-theme="light"] .c18-panel .c18-subtabs button.active,html[data-theme="light"] .c18-panel .c18-radio button.active{color:#075f5a}
html[data-theme="light"] .c18-panel .c18-kpi strong{color:#075f5a}
html[data-theme="light"] .c18-panel .c18-kpi small,html[data-theme="light"] .c18-panel .c18-kpi span{color:#3f5866}
html[data-theme="light"] .v16-empty,html[data-theme="light"] .v16-metrics article{color:#12212c}
html[data-theme="light"] .nav button{color:#1c3a4a}
html[data-theme="light"] .nav button.active,html[data-theme="light"] .nav button:hover{background:#e3eff5;color:#0b2230}
html[data-theme="light"] .danger{background:#fde2e6;color:#8f1d33}

/* CEN-283 · Tablas largas dentro de paneles: media pantalla con scroll propio y encabezado fijo. */
.c18-panel .table-wrap{max-height:50vh;overflow:auto}
.c18-panel .table-wrap thead th{position:sticky;top:0;z-index:2}
/* Tarjetas flotantes y KPIs sueltos con contraste en modo claro. */
html[data-theme="light"] .c45-float-card{background:#ffffff;border-color:#b9cfdb;box-shadow:0 1px 3px #12212c14}
html[data-theme="light"] .c45-float-card small{color:#36515f}
html[data-theme="light"] .c45-float-card strong,html[data-theme="light"] .c45-float-card span{color:#12212c}
html[data-theme="light"] .c45-legend,html[data-theme="light"] .c45-legend span{color:#243541}
html[data-theme="light"] .c18-panel h3,html[data-theme="light"] .c18-panel .hint{color:#12212c}
html[data-theme="light"] .c18-panel .hint{color:#3f5866}
html[data-theme="light"] .c18-panel input,html[data-theme="light"] .c18-panel select{background:#fff;color:#12212c;border-color:#8fb0c2}

/* CEN-285 · La gráfica de evolución (Pólizas) tenía fondo y colores fijos para tema claro; en oscuro quedaba blanca. */
html:not([data-theme="light"]) .c18-chart{background:#0e1b2a;border-color:#27465a;box-shadow:none}
html:not([data-theme="light"]) .c18-chart svg text{fill:#d7e7f2}
html:not([data-theme="light"]) .c18-chart svg line[stroke="#dbe4ef"]{stroke:#2a4258}
html:not([data-theme="light"]) .c18-chart svg line[stroke="#203b61"]{stroke:#6a8aa6}
html:not([data-theme="light"]) .c18-chart svg rect[fill="#365779"]{fill:#5b86b3}
html:not([data-theme="light"]) .c18-chart svg circle[fill="#102f48"]{fill:#e8f3fa}

/* CEN-286 · Encabezados ordenables: cursor, flecha y estado visible. */
table thead th{cursor:pointer;user-select:none}
table thead th:hover{filter:brightness(1.12)}
th.c286-asc::after{content:" ▲";font-size:.7em}
th.c286-desc::after{content:" ▼";font-size:.7em}

/* CEN-297 · Tablas con el estilo aprobado (barra de búsqueda con sugerencias, herramientas, filas legibles). Neutras para tema claro y oscuro. */
.cen-tbox{margin:6px 0 14px}.cen-tbox:fullscreen{overflow:auto;padding:18px;background:var(--bg,#0a1620)}
.cen-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.cen-sp{flex:1}.cen-n{font:500 .74rem ui-monospace,monospace;opacity:.7}
.cen-s{position:relative;flex:0 1 380px;min-width:220px}
.cen-q{width:100%;padding:8px 14px 8px 34px;border-radius:999px;border:1px solid rgba(127,150,170,.45);background:rgba(127,150,170,.10) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238aa4b6' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 11px center no-repeat;color:inherit;font:500 .86rem inherit;outline:none}
.cen-q:focus{border-color:#3e9bff;box-shadow:0 0 0 3px rgba(62,155,255,.22)}
.cen-pop{display:none;position:absolute;left:0;right:0;top:100%;z-index:60;margin-top:4px;border-radius:12px;border:1px solid rgba(127,150,170,.45);background:#10222f;color:#e8f3fa;box-shadow:0 10px 28px rgba(0,0,0,.35);overflow:hidden}
html[data-theme="light"] .cen-pop{background:#fff;color:#12212c}
.cen-pop div{padding:9px 14px;cursor:pointer;font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cen-pop div:hover{background:rgba(62,155,255,.18)}.cen-pop .none{cursor:default;opacity:.6}
.cen-bar button{font:500 .74rem inherit;padding:5px 10px;border-radius:7px;border:1px solid rgba(127,150,170,.45);background:rgba(127,150,170,.12);color:inherit}.cen-bar button:hover{background:rgba(62,155,255,.2)}
.cen-t{border:1px solid rgba(127,150,170,.35)!important;border-radius:12px;max-height:70vh;overflow:auto}
.cen-t table{border-collapse:collapse;width:100%}
.cen-t thead th,.cen-t tr:first-child th{position:sticky;top:0;z-index:2;background:rgba(40,70,95,.96);color:#e8f3fa;text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:700;padding:10px 12px;text-align:left;white-space:normal}
html[data-theme="light"] .cen-t thead th,html[data-theme="light"] .cen-t tr:first-child th{background:#e6eef3;color:#12212c}
.cen-t td{padding:9px 12px;border-bottom:1px solid rgba(127,150,170,.18)}
.cen-t tbody tr:nth-child(even) td{background:rgba(127,150,170,.06)}.cen-t tbody tr:hover td{background:rgba(62,155,255,.14)}
.cen-t td.cen-num,.cen-t th.cen-num{text-align:right;font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace}
.c18-panel .c50-tools{display:none}
#cenToast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:10001;padding:9px 16px;border-radius:10px;background:#10222f;color:#e8f3fa;border:1px solid rgba(127,150,170,.45);opacity:0;pointer-events:none;transition:opacity .2s}#cenToast.on{opacity:1}

/* CEN-313 · tarjeta flotante única del sitio (mismo estilo que los paneles de Reincidencias / Ingreso) */
#cenTip{position:fixed;z-index:10000;pointer-events:none;background:#fff;color:#0f1d2b;border:1px solid #20d9ca;border-radius:9px;padding:8px 11px;font-size:.8rem;line-height:1.35;box-shadow:0 6px 20px #0005;opacity:0;transition:opacity .12s;min-width:190px;max-width:290px}
#cenTip .tt{font-weight:800;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid #d5dee8;padding-bottom:3px;margin-bottom:4px}
#cenTip .tr{display:flex;justify-content:space-between;gap:14px;margin-top:3px}
#cenTip .tr b{font-variant-numeric:tabular-nums}
#cenTip .ts{font-size:.72rem;color:#5b6b7c;margin-top:4px}
:root[data-theme="dark"] #cenTip{background:#0b2235;color:#eef7ff;border-color:#20d9ca}
:root[data-theme="dark"] #cenTip .tt{border-color:#21435a}
:root[data-theme="dark"] #cenTip .ts{color:#95aebe}

/* CEN-315 · datos de la sesión activa junto a Cerrar sesión (para identificar a quien comparte pantalla) */
.session-id{display:grid;gap:1px;text-align:right;font-size:.68rem;line-height:1.25;color:var(--muted);max-width:260px}
.session-id b{font-size:.78rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.session-id span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme="light"] .session-id b{color:#173341}

/* CEN-322 · tabla proveedor × periodo */
.c18-prov .table-wrap{overflow:auto;max-height:520px}.c18-prov table{border-collapse:collapse;min-width:100%}.c18-prov th,.c18-prov td{padding:.4rem .6rem;white-space:nowrap;text-align:right}
.c18-prov th:first-child,.c18-prov td:first-child{text-align:left}.c18-prov th:nth-child(2),.c18-prov td:nth-child(2){text-align:center}
.c18-prov .c18-sticky{position:sticky;left:0;background:#f7fafc;color:#12212c;z-index:1;font-weight:600}.c18-prov thead th{position:sticky;top:0;background:#e8eff4;color:#12212c;z-index:2}.c18-prov thead th.c18-sticky{z-index:3}
.c18-prov tr.tot td{border-top:2px solid var(--line,#c9d8e1)}

/* CEN-327 · tabla proveedor: dos columnas fijas opacas (nombre + minigráfico) para que al deslizar no se encimen con el título/encabezado. */
.c18-prov th,.c18-prov td{background-clip:padding-box}
.c18-prov td{background:#fff}.c18-prov tbody tr:nth-child(even) td{background:#f1f6f9}
.c18-prov .c18-sticky{position:sticky;left:0;min-width:150px;max-width:150px;overflow:hidden;text-overflow:ellipsis;z-index:4;box-shadow:none}
.c18-prov .c18-sticky2{position:sticky;left:150px;min-width:116px;width:116px;z-index:4;box-shadow:2px 0 0 #c9d8e1;text-align:center}
.c18-prov tbody td.c18-sticky,.c18-prov tbody td.c18-sticky2{background:#f7fafc}
.c18-prov tbody tr:nth-child(even) td.c18-sticky,.c18-prov tbody tr:nth-child(even) td.c18-sticky2{background:#eaf1f6}
.c18-prov thead th{z-index:5;background:#e8eff4}.c18-prov thead th.c18-sticky,.c18-prov thead th.c18-sticky2{z-index:7}
.c18-prov td:not(.c18-sticky):not(.c18-sticky2){position:relative;z-index:1}
.c18-prov .c18-spark{display:block;margin:0 auto;max-width:100%}

/* CEN-328 */
.c18-cump-body{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:1rem;align-items:center}
.c18-relojes{display:grid;gap:.8rem}.c18-reloj{text-align:center;background:#f7fafc;border:1px solid #dbe4ef;border-radius:12px;padding:.6rem;color:#12212c}.c18-reloj svg{width:100%;max-width:200px}.c18-reloj b{display:block;font-size:.8rem}
.c18-legend{display:flex;gap:1rem;font-size:.8rem;color:#475569;margin:.2rem 0 0}.c18-legend i{display:inline-block;width:14px;height:8px;border-radius:2px;margin-right:.35rem}
@media(max-width:900px){.c18-cump-body{grid-template-columns:1fr}.c18-relojes{grid-template-columns:1fr 1fr}}

/* CEN-330 */
.c18-aviso{background:#e0efff;color:#1e3a5f;border-radius:10px;padding:.6rem .9rem;margin:.2rem 0 .8rem;font-size:.9rem}
.c18-kpi em{font-style:normal;font-size:.55em;color:#475569;font-weight:700}.c18-sub{margin:1rem 0 .4rem;color:#12212c}

/* CEN-332 · pop-up de detalle */
.linklike{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}.linklike:hover{color:#1d4ed8}
.cg-modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:grid;place-items:center;z-index:9999;padding:1rem}
.cg-modal-box{background:#fff;color:#12212c;border-radius:14px;width:min(1100px,100%);max-height:88vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.cg-modal-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1rem 1.2rem;border-bottom:1px solid #dbe4ef}
.cg-modal-body{padding:1rem 1.2rem;overflow:auto}

/* CEN-333 · alerta de información actualizada */
#cenAviso{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:10000;background:#12212c;color:#fff;border-radius:14px;padding:.8rem 1.1rem;display:flex;gap:1.2rem;align-items:center;box-shadow:0 12px 40px rgba(0,0,0,.4);max-width:min(680px,calc(100vw - 32px));border-left:6px solid #f59e0b}
#cenAviso span{color:#cbd5e1;font-size:.9rem}#cenAviso .acc{display:flex;gap:.5rem;flex-shrink:0}#cenAviso button{border-radius:10px;padding:.5rem .9rem;cursor:pointer;border:0;background:#1f8a7a;color:#fff;font-weight:700}#cenAviso button.ghost{background:transparent;color:#cbd5e1;border:1px solid #475569}
@media(max-width:640px){#cenAviso{flex-direction:column;align-items:stretch}}

/* CEN-337 · bitácora: colores por estado y botón de reintento */
tr.cg-fila-amarilla td{background:#fff6d1 !important}tr.cg-fila-roja td{background:#fdebec !important}
.cg-ret{background:#f59e0b;color:#1f1300;border:0;border-radius:9px;padding:.35rem .65rem;font-weight:700;cursor:pointer;white-space:nowrap}.cg-ret:hover{background:#d98a06}
tr.cg-fila-resuelta td{background:#eef1f4 !important;color:#64748b}

/* CEN-339 · Ranking */
.c18-trofeo{vertical-align:-3px}
.c18-avisos{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.9rem;margin:1rem 0}
.c18-aviso-col{border-radius:12px;padding:.8rem 1rem;border:1px solid #dbe4ef;background:#f7fafc;color:#12212c}.c18-aviso-col h4{margin:0 0 .4rem}.c18-aviso-col ul{margin:0;padding-left:1.1rem}.c18-aviso-col li{margin:.3rem 0;font-size:.92rem}
.c18-aviso-col.warn{background:#fff7e0;border-color:#f1d28b}.c18-aviso-col.sug{background:#e9f7f3;border-color:#a9d9cc}
.c18-trofeo-banner{background:#fef3c7;border:1px solid #f59e0b;color:#92400e;border-radius:8px;padding:.5rem .7rem;margin:.6rem 0;font-weight:600}
/* CEN-340 · pantalla completa de tablas: la tabla ocupa todo el alto */
.cen-tbox:fullscreen{display:flex;flex-direction:column;height:100vh;box-sizing:border-box}
.cen-tbox:fullscreen .cen-t,.cen-tbox:fullscreen .table-wrap{flex:1 1 auto;min-height:0;max-height:none!important;height:auto;overflow:auto}
.cen-tbox:fullscreen .c18-prov .table-wrap{max-height:none!important}
/* CEN-340 · tarjetas de tendencia en Pólizas */
.c18-trends{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:0 0 12px}
.c18-trend{border:1px solid #29405d;border-left:5px solid #64748b;border-radius:10px;padding:13px 15px;background:linear-gradient(145deg,#13243a,#102035);display:flex;flex-direction:column;gap:4px}
.c18-trend small{font-size:.68rem;color:#9fb1c5;text-transform:uppercase;letter-spacing:.05em}.c18-trend strong{font-size:1.9rem;line-height:1.1;color:#e8f1f8}
.c18-trend .c18-d{font-weight:700;font-size:.85rem;color:#9fb1c5}.c18-trend em{font-style:normal;font-size:.72rem;color:#8fa3b8}
.c18-trend.sube{border-left-color:#16a34a}.c18-trend.sube .c18-d{color:#22c55e}.c18-trend.baja{border-left-color:#dc2626}.c18-trend.baja .c18-d{color:#f87171}
html[data-theme="light"] .c18-trend{background:#fff;border-color:#c9d8e1}html[data-theme="light"] .c18-trend strong{color:#12212c}html[data-theme="light"] .c18-trend small,html[data-theme="light"] .c18-trend em{color:#51657a}
/* CEN-340 · Mapa */
.mp-wrap{position:relative;border-radius:12px;overflow:hidden}
.mp-search{position:absolute;z-index:1000;top:10px;left:56px;display:flex;flex-wrap:wrap;gap:4px;align-items:center;background:#fff;color:#12212c;border-radius:10px;padding:5px 6px;box-shadow:0 2px 10px rgba(0,0,0,.28);max-width:min(440px,calc(100% - 140px))}
.mp-search input{border:0;outline:0;min-width:200px;flex:1;font-size:.9rem;padding:5px 6px;background:transparent;color:#12212c}
.mp-search button{border:1px solid #cbd5e1;background:#f1f5f9;color:#64748b;border-radius:7px;width:28px;height:28px;cursor:pointer;font-weight:700;display:grid;place-items:center;padding:0}
.mp-search button.on{background:#0f766e;color:#fff;border-color:#0f766e}
.mp-res{flex-basis:100%;max-height:180px;overflow:auto;font-size:.8rem;border-top:1px solid #e2e8f0;padding:6px 4px 2px;color:#12212c}
.mp-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border:1px solid #31506a;border-radius:999px;margin:2px 4px 2px 0;cursor:pointer;font-size:.82rem}
.mp-chip input{position:absolute;opacity:0;pointer-events:none}.mp-chip i{width:12px;height:12px;border-radius:50%;border:2px solid var(--c);display:inline-block}
.mp-chip:has(input:checked){background:color-mix(in srgb,var(--c) 18%,transparent);border-color:var(--c)}.mp-chip:has(input:checked) i{background:var(--c)}
.mp-chip:has(input:focus-visible){outline:2px solid #35d3c6}.mp-chip small{opacity:.7}
.mp-leyenda{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-size:.8rem}.mp-leyenda i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:5px;vertical-align:-1px}

/* CEN-341 · estatus del técnico e inactivos en gris */
.c18-est{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.74rem;font-weight:700;border:1px solid transparent}
.c18-est.activo{background:#dcfce7;color:#166534;border-color:#86efac}.c18-est.sby{background:#fef3c7;color:#92400e;border-color:#fcd34d}.c18-est.inactivo{background:#e5e7eb;color:#4b5563;border-color:#cbd5e1}.c18-est.sin{background:#f1f5f9;color:#64748b}
tr.c18-inactivo td{color:#7b8794!important;background:#eceff1!important;font-style:italic}
tr.c18-inactivo td .c18-trofeo{filter:grayscale(1)}

/* CEN-343 · gráfica por día: barras con ancho mínimo y barra de desplazamiento lateral */
.c18-scrollbox{overflow-x:auto;overflow-y:hidden;padding-bottom:6px}.c18-scrollbox svg{display:block}
.c18-chart.c18-scroll{overflow:visible}

/* CEN-348 · el DOCK no tapa el panel de filtros abierto */
.v16-filters.is-open{z-index:60}
body:has(.v16-filters.is-open) .dock-notch{display:none}

/* CEN-361 · Fechas: todo el campo abre el calendario (antes solo el iconito) y el campo es más grande */
input[type="date"],input[type="month"],input[type="week"]{position:relative;min-height:46px;cursor:pointer;padding-right:44px}
input[type="date"]::-webkit-calendar-picker-indicator,input[type="month"]::-webkit-calendar-picker-indicator,input[type="week"]::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}
input[type="date"],input[type="month"],input[type="week"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23526977' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:22px}

/* CEN-362 · selección múltiple de tipo de evento (Pólizas) */
.c361-dd{position:relative;display:inline-block}.c361-dd summary{list-style:none;cursor:pointer;padding:.5rem .9rem;border:1px solid var(--line);border-radius:10px;background:var(--surface);min-width:210px}
.c361-dd summary::after{content:' ▾'}.c361-list{position:absolute;z-index:50;top:calc(100% + 4px);left:0;min-width:260px;max-height:340px;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 10px 28px #0003}
.c361-list input[type=search]{width:100%;margin-bottom:6px}.c361-list label{display:block;padding:4px 6px;cursor:pointer}.c361-acc{display:flex;gap:6px;margin:6px 0;flex-wrap:wrap}

/* CEN-371 · filtros en barra horizontal bajo el título de cada sección */
.v16-dock-off,#v16Dock{display:none!important}
.v16-content .v16-filters.en-barra{position:static;transform:none;width:auto;max-width:none;margin:.6rem 0 1rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:none;overflow:visible;backdrop-filter:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.6rem .9rem;align-items:end}
.v16-content .v16-filters.en-barra .filter-head,.v16-content .v16-filters.en-barra #closeDock,.v16-content .v16-filters.en-barra .theme-switch,.v16-content .v16-filters.en-barra .filter-foot{display:none}
.v16-content .v16-filters.en-barra .filter-block{margin:0}
.v16-content .v16-filters.en-barra .clear-dark{align-self:end;width:auto;padding:.6rem 1rem}
.v16-content .v16-filters.en-barra input[type=date],.v16-content .v16-filters.en-barra input[type=month],.v16-content .v16-filters.en-barra input[type=week]{min-height:2.6rem}
/* CEN-375 */
.c375-fijo{padding:.55rem .8rem;border:1px dashed var(--line);border-radius:10px;background:var(--surface2);font-weight:700}
.v16-content .v16-filters.en-barra .c375-dd{display:block}.v16-content .v16-filters.en-barra .c375-dd summary{min-width:0}
/* CEN-383 · casillas de los desplegables multiselección: casilla y texto en la misma línea */
.c375-ops label{display:flex;align-items:center;gap:.5rem;padding:4px 6px;cursor:pointer}.c375-ops label input[type=checkbox]{width:auto;flex:0 0 auto;margin:0}
/* CEN-391 · filtro único de fecha */
.c386-pop{min-width:300px}.c386-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.c386-chip.active{background:var(--accent,#0f766e);color:#fff}.c386-fechas{display:grid;grid-template-columns:1fr 1fr;gap:8px}.c386-fechas label{display:block}.c386-fechas input{width:100%}
/* CEN-399 · botón «solamente» en cada opción de los filtros múltiples */
.c375-ops label span{flex:1 1 auto}.c375-solo{margin-left:auto;font-size:.72rem;padding:1px 8px;border-radius:999px;border:1px solid var(--line);background:var(--surface2,#eef4f8);color:inherit;cursor:pointer;opacity:0}.c375-ops label:hover .c375-solo,.c375-solo:focus{opacity:1}@media(hover:none){.c375-solo{opacity:.8}}
/* CEN-400 · mini mapa de posición (Pólizas) */
.mm{margin-top:6px;cursor:ew-resize;user-select:none}.mmv{position:relative;height:46px;background:var(--surface2,#eef4f8);border-radius:6px;border:1px solid var(--line);overflow:hidden}.mmv svg{display:block;width:100%;height:100%;opacity:.55}.mmv .vpm{position:absolute;top:0;bottom:0;background:var(--accent,#0f766e);opacity:.22;border:1.5px solid var(--accent,#0f766e);box-sizing:border-box}.mm .mmc{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;opacity:.85;margin-top:3px}.mm .mmr{font-weight:600}
/* CEN-401 · herramientas y leyenda clicable en gráficas de Pólizas */
.c401-bar{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin:0 0 6px}.c401-bar button{font-size:.78rem;padding:3px 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface2,#eef4f8);color:inherit;cursor:pointer}.c401-ch:fullscreen{background:var(--surface,#fff);padding:16px;overflow:auto}.c18-legend [data-ser]{cursor:pointer}.c18-legend .c401-off{opacity:.35;text-decoration:line-through}
/* CEN-404 · tarjeta de detalle por periodo */
.c404-modal{position:fixed;inset:0;z-index:80;background:rgba(10,20,30,.55);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:4vh 16px}.c404-card{background:var(--surface,#fff);color:inherit;border-radius:14px;padding:16px 18px;width:min(900px,100%);box-shadow:0 18px 50px rgba(0,0,0,.35)}.c404-card .table-wrap{max-height:55vh;overflow:auto}

/* CEN-414 · leyendas que apagan/encienden en todo el sitio */
.chart-legend [data-ser]{cursor:pointer}.chart-legend .c401-off{opacity:.35;text-decoration:line-through}
/* CEN-415 · Al pasar el cursor sobre una fila, las columnas fijas (proveedor y gráfica mini) se quedan OPACAS: antes se volvían translúcidas y las cifras que se deslizan se mezclaban con ellas */
.c18-prov tbody tr:hover td.c18-sticky,.c18-prov tbody tr:hover td.c18-sticky2,.c18-prov tbody tr:hover td.c18-sticky,.cen-t.c18-prov tbody tr:hover td.c18-sticky,.cen-t.c18-prov tbody tr:hover td.c18-sticky2{background:#dbe8f7!important}
.c18-prov tbody tr.tot td.c18-sticky,.c18-prov tbody tr.tot td.c18-sticky2{background:#e3ecf3!important}

/* CEN-420 · Ranking: se oculta el buscador de la tabla (se usan los filtros de arriba) */
.cen-tbox:has(.c18-ranking) .cen-s{display:none}
.c18-rkbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.c18-rkbar button.active{background:#f5b301;color:#1b1400;border-color:#b07d00}.c18-rkf{display:inline-flex;gap:6px;align-items:center}.c18-rkf .c361-list label{display:block;padding:4px 6px;cursor:pointer}

/* CEN-422 · Pólizas › Evolución: arriba 5 tarjetas del periodo; las métricas generales a la DERECHA de la gráfica. La gráfica NO se encoge: si no cabe, se desliza de lado. */
.c18-evo-wrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start;margin-top:12px}
.c18-evo-main{min-width:0}
.c18-evo-side{order:2}.c18-evo-main{order:1}
.c18-evo-side .c18-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}
.c18-evo-side .c18-kpi{min-height:96px;padding:12px 13px}.c18-evo-side .c18-kpi strong{font-size:1.55rem}.c18-evo-side .c18-kpi span{font-size:.72rem}
@media(max-width:1180px){.c18-evo-wrap{grid-template-columns:minmax(0,1fr)}.c18-evo-side{order:0}.c18-evo-side .c18-kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}}

/* CEN-434 · estatus de cuadrilla en Ingreso por Manipulación */
.c434-st{display:inline-block;padding:2px 9px;border-radius:999px;font-weight:700;font-size:.72rem;border:1px solid var(--line,#cbd5e1)}
.c434-activo{background:rgba(19,120,74,.15);color:#13784a}.c434-sby{background:rgba(217,119,6,.16);color:#b45309}.c434-inactivo{background:#9aa5b1;color:#fff}

/* CEN-451 · Rally */
.c451-ok{background:rgba(16,185,129,.16);font-size:.82rem}.c451-no{background:rgba(239,68,68,.14);font-size:.82rem}.c451-nd{color:#8a97a3;font-size:.82rem}

.c488-rein{color:#b42318;font-weight:700;font-size:.78rem}
.cen-t tbody tr:nth-child(n) td.c451-ok{background:rgba(16,185,129,.16)}.cen-t tbody tr:nth-child(n) td.c451-no{background:rgba(239,68,68,.14)}
.c488-wrap{max-height:72vh;overflow:auto}
.c488-wrap thead th{position:sticky;top:0;z-index:3}
.c488-wrap tfoot td{position:sticky;bottom:0;z-index:3;background:#e3edf3;font-size:.82rem;border-top:2px solid #365779}
:root[data-theme="dark"] .c488-wrap tfoot td{background:#16303f}
.c451-okt{color:#0f7a55}
.c499-tema{margin-left:14px;padding:4px 12px;font-size:.72rem;letter-spacing:0;vertical-align:middle;text-transform:none}

/* CEN-504 · Totales del análisis de Rally siempre visibles (pie fijo) */
.c497-wrap{max-height:70vh}.c497-wrap tfoot td{position:sticky;bottom:0;z-index:3;background:#e3edf3;border-top:2px solid #365779;font-weight:700}
:root[data-theme="dark"] .c497-wrap tfoot td{background:#16303f}

/* CEN-505 · Etiquetas de gráficas legibles en modo oscuro: el contorno blanco (pensado para fondo claro) pasa a oscuro y el texto a claro */
html:not([data-theme="light"]) svg text[stroke="#fff"],html:not([data-theme="light"]) svg text[stroke="#ffffff"]{fill:#f4f9fc !important;stroke:#0b1622 !important;stroke-width:3px;paint-order:stroke;stroke-linejoin:round}
html[data-theme="light"] svg text[stroke="#fff"]{fill:#12304f;stroke:#fff;stroke-width:3px;paint-order:stroke;stroke-linejoin:round}

/* CEN-512 · detalle de órdenes del mapa: tarjeta blanca siempre con tabla clara (en tema oscuro la tabla heredaba fondo oscuro y el texto no se leía) */
.c512-det,.c512-det *{color:#12202f}
.c512-det .table-wrap{background:#fff;border:1px solid #d3deea}
.c512-det table{background:#fff}
.c512-det th{background:#e9f0f7;color:#2c4660;border-bottom:1px solid #c9d6e3}
.c512-det td{background:#fff;color:#12202f;border-bottom:1px solid #e1e9f1}
.c512-det tr:nth-child(even) td{background:#f4f8fb}
.c512-det .tag.info{background:#dbe9ff;color:#173b73}
.c512-det button{background:#e9f0f7;color:#1b5fd1;padding:.4rem .7rem;border-radius:6px}

/* CEN-521 · Menú de secciones desplegable (☰). Panel flotante encima de la página (no la recorre), apto para celular. */
.v16-brand{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .6rem}
.c521-burger{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;min-width:44px;padding:0;border-radius:10px;border:1px solid var(--line);background:var(--surface,#0b2537);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.c521-burger span{display:block;width:22px;height:2.5px;border-radius:2px;background:var(--text,#e9f8ff);transition:transform .18s,opacity .18s}
.c521-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}.c521-burger[aria-expanded="true"] span:nth-child(2){opacity:0}.c521-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.c521-burger:focus-visible,.v16-tabs button:focus-visible{outline:2px solid var(--aqua,#35d6c4);outline-offset:2px}
.c521-bk{position:fixed;inset:0;z-index:1190;background:rgba(3,10,16,.45);-webkit-tap-highlight-color:transparent}.c521-bk[hidden]{display:none}
.v16-tabs{position:fixed;left:max(10px,env(safe-area-inset-left));top:76px;width:min(340px,calc(100vw - 20px));max-height:calc(100vh - var(--c521-top,76px) - 14px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:none;flex-direction:column;gap:.35rem;padding:.6rem;margin:0;border:1px solid var(--line);border-radius:14px;background:var(--surface,#0b2537);box-shadow:0 18px 50px rgba(0,0,0,.45);z-index:1200}
@supports (height:100dvh){.v16-tabs{max-height:calc(100dvh - var(--c521-top,76px) - 14px)}}
.v16-tabs.is-open{display:flex;animation:c521in .14s ease-out}
@keyframes c521in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.v16-tabs.is-open{animation:none}.c521-burger span{transition:none}}
.v16-tabs button{width:100%;text-align:left;white-space:normal;min-height:44px;padding:.7rem .9rem;font-size:.92rem;border-radius:10px}
@media (max-width:760px){.v16-tabs{width:calc(100vw - 20px);left:10px}.c521-tit{font-size:.95rem}}
.c521-row{display:inline-flex;align-items:center;gap:.65rem;flex:0 1 auto;min-width:0;flex-wrap:nowrap}.c521-tit{white-space:nowrap}
@media (max-width:420px){.c521-tit{font-size:.85rem;letter-spacing:.06em}}

/* CEN-533 · El formulario de auditoría va sin barra de filtros */
body[data-v16view="auditoria_form"] #v16Filters{display:none!important}

/* CEN-534 · Buscador de cuadrillas del formulario de auditoría */
.c534-cb{position:relative}.c534-cb input[type=search]{width:100%}
.c534-list{position:absolute;left:0;right:0;top:100%;z-index:60;max-height:min(46vh,320px);overflow:auto;background:var(--surface,#fff);color:var(--text,#12212c);border:1px solid var(--line,#c6d7e2);border-radius:12px;box-shadow:0 14px 34px rgba(0,0,0,.28);margin-top:4px}
.c534-op{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;padding:10px 14px;min-height:44px;cursor:pointer;border-bottom:1px solid var(--line,#c6d7e2)}
.c534-op:last-child{border-bottom:0}.c534-op:hover,.c534-op.on{background:var(--surface2,#e6f0f6)}.c534-op small{flex-basis:100%;color:var(--muted,#526977);font-size:.78rem}
.c534-vacio{padding:12px 14px;color:var(--muted,#526977);font-size:.88rem}.statusline.ok{color:var(--good,#13784a)}

/* CEN-543 · Calificaciones de la auditoría en máximo dos líneas (3 + 2) */
.c543-cal{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.c543-cal .field:nth-child(n+4){grid-column:span 1}
@media(max-width:560px){.c543-cal{grid-template-columns:repeat(3,1fr);gap:8px}.c543-cal label{font-size:.78rem}}

/* CEN-544 · pestañas de la puerta de captura (visibles; .v16-tabs es el menú flotante ☰) */
.c544-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.c544-tabs button{padding:.6rem 1rem;border-radius:10px;border:1px solid var(--line);background:var(--surface2,var(--surface));color:var(--text);font-weight:600;cursor:pointer}
.c544-tabs button.active{background:var(--aqua,#087f78);color:#fff;border-color:transparent}

/* CEN-546 · En la puerta de captura no hay menú ☰: solo documentación */
body[data-v16view="auditoria_form"] .c521-burger,body[data-v16view="auditoria_form"] #v16Nav,body[data-v16view="auditoria_form"] #v16NavBk{display:none!important}

/* CEN-546 · Hallazgos: 5 filas, tipo (izquierda) + detalle de máximo dos líneas (derecha) */
.c546-fila{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:10px;margin-top:8px}
.c546-fila textarea{resize:none;min-height:0}
@media(max-width:560px){.c546-fila{grid-template-columns:1fr}}

/* CEN-549 · aviso sutil bajo la cuenta */
.c549-aviso{display:none;color:#c0392b;font-size:.82rem;margin-top:4px}

/* CEN-564 · Cumplimiento de cuadrillas con la paleta del sitio (tokens) en oscuro y claro, con contraste legible. */
html .card.c18-cump .c18-chart{background:var(--surface);border-color:var(--line);box-shadow:none}
html .card.c18-cump .c18-chart svg line[stroke="#dbe4ef"]{stroke:var(--line)}
html .card.c18-cump .c18-chart svg line[stroke="#203b61"]{stroke:var(--muted)}
html .card.c18-cump .c18-chart svg text[fill="#64748b"],html .card.c18-cump .c18-chart svg text[fill="#475569"]{fill:var(--muted)}
html .card.c18-cump .c18-chart svg text[fill="#2563eb"]{fill:var(--text)}
html .card.c18-cump .c18-chart svg rect[fill="#1f8a7a"]{fill:var(--blue)}
html .card.c18-cump .c18-chart svg line[stroke="#dc2626"]{stroke:var(--bad)}
html .card.c18-cump .c18-chart svg text[fill="#dc2626"]{fill:var(--bad)}
html .card.c18-cump .c18-chart svg line[stroke="#94a3b8"]{stroke:var(--muted)}
html .card.c18-cump .c18-chart svg text[fill="#94a3b8"]{fill:var(--muted)}
html .card.c18-cump .c18-chart svg path[stroke="#2563eb"]{stroke:var(--text)}
html .card.c18-cump .c18-chart svg circle[stroke="#2563eb"]{stroke:var(--text);fill:var(--surface)}
html .card.c18-cump .c18-chart svg path[stroke="#f97316"]{stroke:var(--warn)}
html .card.c18-cump .c18-legend{color:var(--text)}
html .card.c18-cump .c18-legend i[style*="#1f8a7a"]{background:var(--blue)!important}
html .card.c18-cump .c18-legend i[style*="#dc2626"]{background:var(--bad)!important}
html .card.c18-cump .c18-legend i[style*="#94a3b8"]{background:var(--muted)!important}
html .card.c18-cump .c18-legend i[style*="#2563eb"]{background:var(--text)!important}
html .card.c18-cump .c18-reloj{background:var(--surface2);border-color:var(--line);color:var(--text)}
html .card.c18-cump .c18-reloj svg path[stroke="#e2e8f0"]{stroke:var(--line)}
html .card.c18-cump .c18-reloj svg path[stroke="#16a34a"]{stroke:var(--good)}
html .card.c18-cump .c18-reloj svg path[stroke="#f59e0b"]{stroke:var(--warn)}
html .card.c18-cump .c18-reloj svg path[stroke="#dc2626"]{stroke:var(--bad)}
html .card.c18-cump .c18-reloj svg text[fill="#12212c"]{fill:var(--text)}
html .card.c18-cump .c18-reloj svg text[fill="#94a3b8"],html .card.c18-cump .c18-reloj svg text[fill="#64748b"]{fill:var(--muted)}
html .card.c18-cump .c18-aviso{background:var(--surface2);color:var(--text);border:1px solid var(--line)}
html .card.c18-cump .c18-aviso-col{background:var(--surface2);color:var(--text);border-color:var(--line)}

/* CEN-565 · Resumen por póliza junto a los indicadores, en negativo (invierte el tema) para que destaque en claro y oscuro. */
html .card.c18-cump .c18-kpi.c18-kpi-inv{background:var(--text);border-color:var(--text);color:var(--bg)}
html .card.c18-cump .c18-kpi.c18-kpi-inv small,html .card.c18-cump .c18-kpi.c18-kpi-inv span,html .card.c18-cump .c18-kpi.c18-kpi-inv em{color:var(--bg);opacity:.85}
html .card.c18-cump .c18-kpi.c18-kpi-inv strong{color:var(--bg)}

/* CEN-567 · alineado unificado: columnas numéricas (encabezado, filas y total) siempre a la derecha. */
.cen-t th.cen-num,.cen-t td.cen-num{text-align:right}
.cen-t tr.c18-total td{font-variant-numeric:tabular-nums}

/* CEN-570 · pestañas dentro de Metas regionales */
.c570-tabs{display:flex;gap:.4rem;margin:0 0 .8rem;border-bottom:1px solid var(--line)}
.c570-tab{background:transparent;color:var(--muted);border:0;border-bottom:3px solid transparent;padding:.55rem .9rem;font-weight:700;cursor:pointer}
.c570-tab.on{color:var(--text);border-bottom-color:var(--aqua)}

/* CEN-571 · tarjetas de la evolución en dos filas (sin simetría), con Stand by / No activas en dos líneas pequeñas */
@media(min-width:1100px){html .card.c18-cump>.c18-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}}
.c18-kpi .c571-l{display:block;font-size:.72rem;line-height:1.25;opacity:.85}

/* CEN-572 · Responsive global (móvil y tableta). Se agrega al final para ganar sobre reglas previas. */
html,body{max-width:100%;overflow-x:hidden}
img,svg,canvas,video{max-width:100%}
.table-wrap,.cen-tw{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.c18-chart svg,.centinela-chart svg{width:100%;height:auto}
@media(max-width:1024px){
  .v16-header{flex-wrap:wrap;gap:.6rem;padding:.7rem 1rem}
  .v16-content{padding-left:.8rem;padding-right:.8rem}
  html .card.c18-cump>.c18-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  body{font-size:15px}
  .v16-header{align-items:flex-start}
  .v16-header>*{max-width:100%}
  .view-as{min-width:0;width:100%}
  .session-id{max-width:none;text-align:left}
  .v16-content{padding-left:.6rem;padding-right:.6rem}
  .card,.c18-panel,.panel{padding:.8rem!important;border-radius:12px}
  .v16-content .v16-filters.en-barra{display:grid!important;grid-template-columns:1fr 1fr;gap:.5rem;padding:.6rem}
  .v16-content .v16-filters.en-barra>*{min-width:0}
  .c18-subtabs,.c404-tabs,.c544-tabs,.c570-tabs,[class*="tabs"]{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .c18-subtabs button,[class*="tabs"] button{white-space:nowrap}
  .c18-kpis,.c18-evo-side .c18-kpis,html .card.c18-cump>.c18-kpis{grid-template-columns:1fr 1fr!important}
  .c18-kpi{min-height:0;padding:.7rem .8rem}.c18-kpi strong{font-size:1.5rem}
  .c18-cump-body{grid-template-columns:1fr!important}.c18-relojes{grid-template-columns:1fr 1fr!important}
  .c18-chart{min-height:0;padding:6px}
  .cen-t th,.cen-t td,.c18-prov th,.c18-prov td{padding:.4rem .5rem;font-size:.78rem;white-space:nowrap}
  .c50-tools,.cen-tools{flex-wrap:wrap;gap:.35rem}
  .c50-tools button,.cen-tools button{flex:1 1 auto;min-width:0}
  .modal-card,.cg-modal-box{width:96vw!important;max-width:96vw!important;max-height:92vh;overflow:auto}
  .form-grid,.c544-grid,.c546-fila,.c18-avisos,.access-intent{grid-template-columns:1fr!important}
  .dock-notch{top:auto;bottom:70px}
  h1,.v16-content h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem}
  button,select,input,textarea{min-height:42px}
  input,select,textarea{font-size:16px}  /* evita el zoom automático de iOS al enfocar */
}
@media(max-width:420px){
  .c18-kpis,html .card.c18-cump>.c18-kpis{grid-template-columns:1fr!important}
  .v16-content .v16-filters.en-barra{grid-template-columns:1fr}
}

/* CEN-573 · Encabezado y título de módulo legibles en móvil */
@media(max-width:760px){
  .v16-header{flex-direction:column;align-items:stretch!important;gap:.5rem;padding:.6rem .8rem}
  .v16-header>div:first-child{width:100%}
  .v16-brand{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:nowrap}
  .c521-row{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1 1 auto}
  .c521-tit{font-size:.82rem!important;letter-spacing:.12em!important;line-height:1.15;white-space:normal;min-width:0}
  .c499-tema{flex:0 0 auto;min-height:38px;padding:.3rem .7rem;font-size:.82rem}
  .v16-header p{margin:.35rem 0 0;font-size:.74rem;line-height:1.3}
  .v16-header-actions{display:flex!important;flex-wrap:wrap;align-items:center;gap:.5rem;width:100%}
  .v16-header-actions .view-as{flex:1 1 100%;min-width:0}
  .v16-header-actions .session-id{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:.1rem .6rem;max-width:none;text-align:left;font-size:.72rem}
  .v16-header-actions .session-id *{white-space:normal;overflow:visible;text-overflow:clip}
  .v16-header-actions #logout,.v16-header-actions>button{flex:1 1 auto}
  .topbar{flex-direction:column;align-items:flex-start!important;gap:.5rem}
  .topbar .eyebrow{font-size:.7rem;letter-spacing:.14em;white-space:normal}
  .topbar h2{font-size:1.5rem;line-height:1.15;margin:.2rem 0}
  .topbar .tag{max-width:100%;white-space:normal;line-height:1.25;text-align:left;border-radius:12px;font-size:.68rem}
}

/* CEN-575 · móvil: «Cerrar sesión» siempre visible, nada se sale del ancho, título de módulo en columna */
@media(max-width:760px){
  .v16-header{overflow:visible;height:auto!important;max-height:none!important}
  .v16-header-actions{overflow:visible}
  .v16-header-actions #logout{display:block!important;visibility:visible!important;order:20;flex:1 1 100%;width:100%;margin-top:.2rem}
  .v16-header-actions .view-as select,.v16-content select,.v16-content input,.v16-content .c375-dd,.v16-content .c375-dd summary{max-width:100%;width:100%;box-sizing:border-box}
  .v16-content .v16-filters.en-barra{width:100%;max-width:100%;box-sizing:border-box}
  .v16-content .v16-filters.en-barra>*{min-width:0;max-width:100%}
  .v16-title{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}
  .v16-title>div,.v16-title h2,.v16-title p{max-width:100%}
  .v16-title .tag{white-space:normal;line-height:1.25;border-radius:12px;max-width:100%}
  .v16-title span:first-child{letter-spacing:.14em;font-size:.72rem}
}

/* CEN-582 · campo Usuario / Técnico al 75 % y botón de visitas en el 25 % restante */
.c582-fila{display:flex;gap:8px;align-items:stretch}.c582-fila input[type=search]{flex:0 0 75%;max-width:75%;width:75%}.c582-fila button{flex:1 1 25%;white-space:nowrap}
@media(max-width:600px){.c582-fila{flex-wrap:wrap}.c582-fila input[type=search]{flex:1 1 100%;max-width:100%;width:100%}.c582-fila button{flex:1 1 100%}}

/* CEN-583 · permisos en tres listas paralelas con círculo */
.c583-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
.c583-col{border:1px solid var(--line,#c6d7e2);border-radius:12px;padding:10px 12px;background:var(--surface,transparent)}
.c583-col h4{margin:0;font-size:.95rem;letter-spacing:.06em;text-transform:uppercase}.c583-col>small{display:block;margin:0 0 6px;opacity:.7}
.c583-fila{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 2px;border-top:1px solid var(--line,#c6d7e2);cursor:pointer;font-size:.9rem}
.c583-sub{padding-left:14px;opacity:.92}
.c583-o{appearance:none;-webkit-appearance:none;flex:0 0 18px;width:18px;height:18px;border-radius:50%;border:2px solid var(--muted,#6b7f8f);background:transparent;margin:0;cursor:pointer}
.c583-o:checked{background:var(--accent,#1d9bf0);border-color:var(--accent,#1d9bf0);box-shadow:inset 0 0 0 3px var(--surface,#fff)}
.c583-o:disabled{opacity:.45;cursor:wait}
@media(max-width:760px){.c583-cols{grid-template-columns:1fr}}

/* CEN-587 · ventana de visitas: títulos angostos y NO fijos; los datos ocupan el resto del ancho y se ajustan en varias líneas */
.c582-vert{overflow-x:auto}.c582-vert table{width:100%;min-width:0;table-layout:auto;border-collapse:collapse}
.c582-vert th[scope=row]{position:static;width:1%;white-space:nowrap;text-align:left;font-size:.68rem;letter-spacing:.04em;padding:8px 10px 8px 8px;vertical-align:top}
.c582-vert td{min-width:118px;max-width:62vw;white-space:normal!important;overflow-wrap:break-word;vertical-align:top;text-align:left;padding:8px;font-size:.9rem}
#c582Modal .modal-card{min-height:60vh}

/* CEN-589 · filtro rápido de registros de campo: 33 % a la izquierda */
.c589-bar{display:flex;align-items:center;gap:10px;margin:0 0 10px}.c589-bar input[type=search]{flex:0 0 33%;max-width:33%;min-width:180px}@media(max-width:700px){.c589-bar{flex-wrap:wrap}.c589-bar input[type=search]{flex:1 1 100%;max-width:100%}}

/* CEN-590 · fotos al final, en una tira con deslizador: no alteran la altura ni la lectura de la fila */
.c590-fotos{width:150px;min-width:150px;max-width:150px;padding:6px 8px}.c590-tira{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;padding-bottom:4px}.c590-tira img{flex:0 0 56px;width:56px;height:56px;object-fit:cover;border-radius:6px;background:#8883;scroll-snap-align:start}

/* CEN-592 · cámara en vivo, miniaturas y aviso de registro pendiente */
.c591-cam{position:fixed;inset:0;z-index:99999;background:#000;display:flex;flex-direction:column}.c591-cam video{flex:1;min-height:0;width:100%;object-fit:cover;background:#000}
.c591-ctl{display:flex;align-items:center;justify-content:space-between;padding:16px 20px calc(16px + env(safe-area-inset-bottom));background:#000}.c591-ctl span{width:84px}
.c591-x{background:transparent;color:#fff;border:1px solid #fff6;border-radius:10px;padding:10px 14px;width:84px}
.c591-ok{width:68px;height:68px;border-radius:50%;border:4px solid #fff;background:#fff;box-shadow:inset 0 0 0 4px #000}
.c591-foto{display:grid;gap:8px;align-content:start}.c591-th{width:100%;max-width:240px;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid var(--line,#c6d7e2)}
.c591-ban{border:2px solid #c0392b;margin:0 0 14px}.c591-ban h3{margin:0 0 6px;color:#e45b4b}

/* CEN-593 · filas por rol (solo lectura) */
.c583-fijo{cursor:default}.c583-fijo .c583-o:disabled{opacity:1}.c583-fijo .c583-o:checked{background:var(--muted,#6b7f8f);border-color:var(--muted,#6b7f8f)}

/* CEN-595 · reloj de tiempo activo */
.c595-reloj{font-variant-numeric:tabular-nums;white-space:nowrap}

/* CEN-597 · Tabla proveedor × periodo: contraste correcto en oscuro (fondos oscuros, texto claro) y en claro (fondos claros, texto oscuro) */
html:not([data-theme="light"]) .c18-prov td{background:#0d1c2c;color:#e8f1f7}
html:not([data-theme="light"]) .c18-prov tbody tr:nth-child(even) td{background:#12263a}
html:not([data-theme="light"]) .c18-prov tbody td.c18-sticky,html:not([data-theme="light"]) .c18-prov tbody td.c18-sticky2{background:#10243a;color:#f2f8fc}
html:not([data-theme="light"]) .c18-prov tbody tr:nth-child(even) td.c18-sticky,html:not([data-theme="light"]) .c18-prov tbody tr:nth-child(even) td.c18-sticky2{background:#16304a}
html:not([data-theme="light"]) .c18-prov tbody tr:hover td.c18-sticky,html:not([data-theme="light"]) .c18-prov tbody tr:hover td.c18-sticky2{background:#1c3a58!important}
html:not([data-theme="light"]) .c18-prov tbody tr.tot td,html:not([data-theme="light"]) .c18-prov tbody tr.tot td.c18-sticky,html:not([data-theme="light"]) .c18-prov tbody tr.tot td.c18-sticky2{background:#1a3550!important;color:#fff;font-weight:700}
html:not([data-theme="light"]) .c18-prov tr.tot td{border-top:2px solid #3b5f7c}
html[data-theme="light"] .c18-prov td{color:#12212c}
html[data-theme="light"] .c18-prov tbody tr.tot td{color:#0b1822}

/* CEN-599 · pestañas Avance por cuadrillas / eventos */
.c18-modo{display:flex;gap:6px;margin:6px 0 12px;flex-wrap:wrap}.c18-modo button{padding:7px 14px;border-radius:999px;border:1px solid var(--line,#31435d);background:transparent;color:inherit;font-weight:600}.c18-modo button.on{background:var(--aqua,#20d9ca);border-color:var(--aqua,#20d9ca);color:#06202a}

/* CEN-608 · fila sin meta: no suma cuadrillas */
.c608-sm td{opacity:.62}
.c608-sm small{font-size:.72em;opacity:.9}

/* CEN-609 · tarjetas de póliza alineadas en su propia fila, todas del mismo ancho y alto */
html .card.c18-cump .c608-pol{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin:10px 0 0}
html .card.c18-cump .c608-pol .c18-kpi{height:100%;min-height:120px;display:flex;flex-direction:column;justify-content:flex-start}

/* CEN-610 · botón «Sin meta: N cuadrillas · ver detalle» */
.c609-btn{margin-top:6px;padding:4px 8px;border:1px solid currentColor;border-radius:8px;background:transparent;color:inherit;font-size:.72rem;font-weight:700;cursor:pointer;text-align:left}
.c609-btn:hover{background:rgba(31,138,122,.15)}

/* CEN-612 · botón de salida de la cortinilla de carga */
#cenLd .c612-act{margin-top:6px;padding:.6rem 1.2rem;border:0;border-radius:10px;background:#1f8a7a;color:#fff;font-weight:700;cursor:pointer}

/* CEN-614 · valor dentro de la base de cada barra, con contraste en modo oscuro (barra clara) y claro (barra oscura) */
html:not([data-theme="light"]) .c18-chart svg text.c613-in{fill:#06121f;stroke:none}
html[data-theme="light"] .c18-chart svg text.c613-in{fill:#fff;stroke:none}
html .c18-chart svg text.c613-in.c613-v{fill:#1b1340}
/* CEN-617: la regla global img,svg,canvas{max-width:100%} encogía las capas canvas/svg de Leaflet (mapa de calor, burbujas, evidencias); Leaflet solo protege el svg */
.leaflet-container canvas,.leaflet-container svg,.leaflet-container img{max-width:none!important;max-height:none!important}
.leaflet-container .leaflet-overlay-pane svg,.leaflet-container .leaflet-overlay-pane canvas{width:auto;height:auto}
/* CEN-621: reglas globales de input (ancho 100%, relleno, fondo) deformaban las casillas de permisos y ocultaban el estado marcado */
.c583-fila input.c583-o{appearance:none!important;-webkit-appearance:none!important;box-sizing:border-box!important;flex:0 0 18px!important;width:18px!important;min-width:18px!important;height:18px!important;padding:0!important;margin:0!important;border-radius:50%!important;border:2px solid var(--muted,#6b7f8f)!important;background:transparent!important;cursor:pointer}
.c583-fila input.c583-o:checked{background:var(--accent,#1d9bf0)!important;border-color:var(--accent,#1d9bf0)!important;box-shadow:inset 0 0 0 3px var(--surface,#fff)!important}
.c583-fila input.c583-o:disabled{opacity:.45;cursor:wait}
.c583-fijo input.c583-o:disabled{opacity:1;cursor:default}.c583-fijo input.c583-o:checked{background:var(--muted,#6b7f8f)!important;border-color:var(--muted,#6b7f8f)!important}
/* CEN-622: LED de usuario en línea */
.c622-led{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px;vertical-align:middle;background:#8a99a6;opacity:.55}
.c622-led.on{background:#22c55e;opacity:1;box-shadow:0 0 0 2px rgba(34,197,94,.25),0 0 8px #22c55e;animation:c622p 2s ease-in-out infinite}
@keyframes c622p{50%{box-shadow:0 0 0 4px rgba(34,197,94,.12),0 0 12px #22c55e}}
/* CEN-630: filtros activos visibles */
.c375-dd.c630-on>summary,.c630-on.c630-on{border-color:var(--aqua,#087f78)!important;box-shadow:0 0 0 2px rgba(8,127,120,.25);font-weight:700}
.c375-dd.c630-on>summary::before{content:"●";color:var(--aqua,#087f78);margin-right:.4rem;font-size:.7rem}
.c630-chips{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;margin-top:.5rem;font-size:.8rem;width:100%;flex:1 1 100%;grid-column:1/-1}
.c630-chips>b{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;opacity:.7;margin-right:2px}
#c631{grid-column:1/-1;flex:1 1 100%;opacity:.7}
.c630-chip{display:inline-flex;align-items:center;gap:5px;flex:none;width:auto;height:auto;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--aqua,#087f78);background:rgba(8,127,120,.12);color:var(--text,inherit);border-radius:999px;padding:3px 11px;font-size:.78rem;line-height:1.3;cursor:pointer}
.c630-chip span{opacity:.75}.c630-chip i{font-style:normal;opacity:.6}.c630-chip:hover i{opacity:1}
.c630-fijo{cursor:default;border-style:dashed}

/* CEN-651/652 · promedio entre corchetes en chips y interruptor «Se usó la app» */
.c651-prom{font-weight:700;opacity:.8;margin-left:2px}
.c652-sw{display:inline-flex;align-items:center;gap:8px;margin:2px 0 6px;font-weight:600;cursor:pointer}
.c652-sw input{appearance:none;-webkit-appearance:none;width:42px;height:24px;border-radius:999px;background:#9fb3c6;position:relative;cursor:pointer;padding:0;border:0;flex:none;transition:background .15s}
.c652-sw input::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}
.c652-sw input:checked{background:#17806d}.c652-sw input:checked::after{left:21px}
.c543-cal input:disabled{opacity:.5;cursor:not-allowed}

/* CEN-657 · buscador del Ranking */
.c657-q{min-width:260px;max-width:340px;flex:1 1 260px;margin-right:6px}

/* CEN-691 · logo de Centinela junto al nombre */
.mark{background:none!important;overflow:hidden}.mark img{width:100%;height:100%;display:block}.c691-logo{width:26px;height:26px;vertical-align:middle;margin-right:.5rem;border-radius:50%}

/* =====================================================================================
   CEN-697 · Rediseño visual (solo piel; sin cambios de estructura ni de lógica).
   Claro  = «tarde de otoño»: papel crema, sepia, café y naranja quemado/cobre.
   Oscuro = «sobrio y duro»: casi negro, marfil, latón envejecido y un rojo sangre muy contenido.
   Capa final: redefine los tokens y repinta las superficies fijas. Las reglas con prefijo
   :root:not(#cen697) SOLO pintan (color, fondo, borde, sombra, tipografía): nunca tamaños ni
   rellenos, para no pisar los ajustes de móvil de CEN-572/573/575.
   Rendimiento: sin backdrop-filter, sin blur del contenido, sombras cortas, sin animar sombras.
   ===================================================================================== */
:root,html[data-theme="dark"]{
  --bg:#0c0b0a;--surface:#161412;--surface2:#1e1b18;--field:#100f0d;--line:#2c2824;--line-soft:#221f1b;--line-strong:#3d3731;
  --text:#ebe4d8;--text2:#cfc6b8;--muted:#a69c8d;
  --aqua:#20d9ca;--accent:#20d9ca;--accent-hover:#4be3d6;--accent-ink:#3ee0d2;--on-accent:#04161a;
  --accent-soft:rgba(32,217,202,.12);--accent-line:rgba(32,217,202,.42);--accent-ring:rgba(32,217,202,.35);
  --blue:#9aa3ab;--warn:#e3b24f;--bad:#e0625a;--good:#8fbf7a;--blood:#9e1b1b;--rule:#9e1b1b;
  --th-bg:#1b1815;--th-ink:#8fd9d2;--th-hover:#24201b;--zebra:rgba(235,228,216,.025);--row-hover:rgba(32,217,202,.07);
  --header-bg:#0e0d0b;--chart-bg:#100f0d;--tip-bg:#1b1815;--overlay:rgba(5,4,3,.72);
  --shadow-1:none;--shadow-2:0 14px 34px rgba(0,0,0,.55);
  --tag-good-bg:#1c2617;--tag-good:#a9d18e;--tag-warn-bg:#2a2110;--tag-warn:#e3b24f;--tag-bad-bg:#2c1412;--tag-bad:#f08a80;--tag-info-bg:#23201c;--tag-info:#c9c1b4;
  --ch-bar:#a8adb3;--ch-bar-prev:#8a8278;--ch-line:#20d9ca;--ch-trend:#c0392b;--ch-alt:#8fbf7a;--ch-point:#ebe4d8;--ch-grid:#2a2622;--ch-axis:#6b6358;--ch-text:#d9d1c4;--ch-top:#20d9ca;--ch-ok:#7f9c6a;
  --font-ui:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-display:"Barlow Condensed","Arial Narrow","Roboto Condensed",sans-serif;--font-num:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --head-case:uppercase;--head-track:.035em;--head-weight:700;--scheme:dark;
  --logo-filter:none;--raised:#1e1b18;
  --c22-cyan:#20d9ca;--c22-navy:#0c0b0a;--c22-panel:#161412;--c22-line:#2c2824;--c22-muted:#a69c8d;
}
html[data-theme="light"]{
  /* CEN-706 · Claro «glaciar»: casi blanco frío (sin llegar al blanco puro), pizarra y mostaza en lugar del aqua. */
  --bg:#eef3f6;--surface:#f8fafb;--surface2:#e7eef2;--field:#ffffff;--line:#d3dee5;--line-soft:#e3eaef;--line-strong:#b5c5d0;
  --text:#15212a;--text2:#2c3c48;--muted:#566977;
  --aqua:#c99a06;--accent:#c99a06;--accent-hover:#b08500;--accent-ink:#7d5f00;--on-accent:#1a1400;
  --accent-soft:rgba(201,154,6,.12);--accent-line:rgba(201,154,6,.5);--accent-ring:rgba(201,154,6,.35);
  --blue:#3f5a6d;--warn:#8a5d00;--bad:#b42335;--good:#2f7a3c;--blood:#a3202e;--rule:#c99a06;
  --th-bg:#e6edf2;--th-ink:#2c3c48;--th-hover:#dce6ec;--zebra:rgba(63,90,109,.04);--row-hover:rgba(201,154,6,.08);
  --header-bg:#f4f7f9;--chart-bg:#ffffff;--tip-bg:#ffffff;--overlay:rgba(21,33,42,.42);
  --shadow-1:0 1px 2px rgba(21,33,42,.06);--shadow-2:0 12px 30px rgba(21,33,42,.14);
  --tag-good-bg:#e1f0e3;--tag-good:#24602f;--tag-warn-bg:#fbf0c8;--tag-warn:#6e5100;--tag-bad-bg:#f8e1e4;--tag-bad:#8c1b29;--tag-info-bg:#e4ecf1;--tag-info:#2f4757;
  --ch-bar:#3f5a6d;--ch-bar-prev:#9db0be;--ch-line:#c99a06;--ch-trend:#b42335;--ch-alt:#2f7a3c;--ch-point:#15212a;--ch-grid:#e1e8ed;--ch-axis:#566977;--ch-text:#15212a;--ch-top:#c99a06;--ch-ok:#5f8f4e;
  --font-display:"Barlow Condensed","Arial Narrow","Roboto Condensed",sans-serif;
  --head-case:none;--head-track:.01em;--head-weight:700;--scheme:light;
  --logo-filter:none;--raised:#ffffff;
  --c22-cyan:#c99a06;--c22-navy:#eef3f6;--c22-panel:#f8fafb;--c22-line:#d3dee5;--c22-muted:#566977;
  --c697-prov-even:#f1f5f8;--c697-prov-stk:#eef3f6;--c697-prov-stk2:#e7eef2;--c697-prov-hov:#dfe8ee;--c697-prov-tot:#d9e3ea;
}

/* Base: fondo cálido (claro) / casi negro (oscuro); un solo degradado fijo, sin capas extra. */
html{scrollbar-color:var(--line-strong) transparent}
html body,html[data-theme="light"] body{font-family:var(--font-ui);color:var(--text);background:radial-gradient(1100px 420px at 88% -8%,var(--accent-soft),transparent 70%),var(--bg);letter-spacing:0}
html .v16-app,html[data-theme="light"] .v16-app{background:transparent}
::selection{background:var(--accent);color:var(--on-accent)}
:root:not(#cen697) :is(h1,h2,.v16-title h2,.topbar h2,.panel h2,.brand h1,.c18-body h3,.card>h3,.c18-cump>h3){font-family:var(--font-display);font-weight:var(--head-weight);letter-spacing:var(--head-track);text-transform:var(--head-case)}
:root:not(#cen697) :is(.c18-kpi strong,.v16-metrics strong,.c18-trend strong,.card .value,.c45-float-card strong,.c26-loader strong){font-family:var(--font-display);font-variant-numeric:tabular-nums lining-nums}
:root:not(#cen697) :is(button,.btn,select,input,textarea,summary,a,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
html .cen-t td.cen-num,html .cen-t th.cen-num{font-family:var(--font-num)}
html tbody tr{transition:none}

/* Logo (icon.svg es turquesa): se entona con un filtro estático, barato. */
:root:not(#cen697) .c691-logo,:root:not(#cen697) .mark img{filter:var(--logo-filter)}

/* Encabezado: sólido, sin blur. */
:root:not(#cen697) .v16-header{background:var(--header-bg);border-bottom:1px solid var(--line);backdrop-filter:none;-webkit-backdrop-filter:none}
:root:not(#cen697) .v16-brand{color:var(--accent-ink)}
:root:not(#cen697) .c521-tit{color:var(--accent-ink);font-family:var(--font-display);font-weight:700}
:root:not(#cen697) .v16-header p{color:var(--muted)}
:root:not(#cen697) .c521-burger{background:var(--surface);border-color:var(--line-strong)}
:root:not(#cen697) .c521-burger span{background:var(--text)}
:root:not(#cen697) .c521-burger:hover{border-color:var(--accent-line)}
:root:not(#cen697) .view-as select{background:var(--field);color:var(--text);border-color:var(--line-strong);color-scheme:var(--scheme)}
:root:not(#cen697) .view-as span{color:var(--muted)}
:root:not(#cen697) .session-id b{color:var(--text)}
html .c521-bk{background:var(--overlay)}

/* Menú ☰: lista sobria; el activo se marca con barra lateral, sin degradados. */
:root:not(#cen697) .v16-tabs{background:var(--surface);border-color:var(--line-strong);box-shadow:var(--shadow-2)}
:root:not(#cen697) .v16-tabs button{background:transparent;color:var(--text2);border-color:transparent;box-shadow:none;font-weight:500}
:root:not(#cen697) .v16-tabs button:hover{background:var(--surface2);color:var(--text)}
:root:not(#cen697) .v16-tabs button.active{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent;box-shadow:inset 3px 0 0 var(--accent);font-weight:700}

/* Títulos de módulo: antetítulo con filete (rojo sangre en oscuro, cobre en claro). */
:root:not(#cen697) .v16-title>div>span:first-child,:root:not(#cen697) .eyebrow{color:var(--accent-ink)}
.v16-title>div>span:first-child::before,.topbar .eyebrow::before{content:"";display:inline-block;width:18px;height:2px;margin:0 .55rem .2em 0;vertical-align:middle;background:var(--rule)}
:root:not(#cen697) .v16-title p,:root:not(#cen697) .sub{color:var(--muted)}
:root:not(#cen697) .v16-title h2,:root:not(#cen697) .topbar h2{color:var(--text)}

/* Botones. */
:root:not(#cen697) .primary{background:var(--accent);color:var(--on-accent);border:1px solid transparent}
:root:not(#cen697):not([data-theme="light"]) .primary{background:linear-gradient(180deg,#3ee0d2,#14b8aa)}
:root:not(#cen697) .primary:hover{background:var(--accent-hover)}
:root:not(#cen697):not([data-theme="light"]) .primary:hover{background:linear-gradient(180deg,#5ae8dc,#1ec9bb)}
:root:not(#cen697) .secondary{background:var(--surface2);color:var(--text);border:1px solid var(--line-strong)}
:root:not(#cen697) .secondary:hover{border-color:var(--accent-line);color:var(--text)}
:root:not(#cen697) .danger{background:var(--tag-bad-bg);color:var(--tag-bad);border:1px solid color-mix(in srgb,var(--bad) 40%,transparent)}
:root:not(#cen697) .clear-dark{background:transparent;color:var(--text);border-color:var(--line-strong)}
:root:not(#cen697) .clear-dark:hover{border-color:var(--accent);color:var(--accent-ink)}
:root:not(#cen697)[data-theme="light"] .clear-dark{background:#15212a;color:#eef3f6;border-color:#15212a}
:root:not(#cen697)[data-theme="light"] .clear-dark:hover{background:#2c3c48;color:#ffffff}
:root:not(#cen697) .linklike:hover{color:var(--accent-ink)}
:root:not(#cen697) .dock-notch,:root:not(#cen697) .dock-button{background:var(--surface2);color:var(--text);border-color:var(--line-strong);box-shadow:var(--shadow-1)}
:root:not(#cen697) .c544-tabs button{background:var(--surface2);color:var(--text);border-color:var(--line)}
:root:not(#cen697) .c544-tabs button.active,:root:not(#cen697) .c386-chip.active{background:var(--accent);color:var(--on-accent);border-color:transparent}
:root:not(#cen697) .c570-tab{color:var(--muted)}:root:not(#cen697) .c570-tab.on{color:var(--text);border-bottom-color:var(--accent)}
:root:not(#cen697) .c18-modo button{border-color:var(--line-strong);color:var(--text2);background:transparent}
:root:not(#cen697) .c18-modo button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
:root:not(#cen697) .c609-btn:hover{background:var(--accent-soft)}
:root:not(#cen697) .c652-sw input{background:var(--line-strong)}:root:not(#cen697) .c652-sw input:checked{background:var(--accent)}
:root:not(#cen697) .c652-sw input::after{background:var(--field)}

/* Acceso. */
:root:not(#cen697) .brand h1{color:var(--text)}:root:not(#cen697) .brand p{color:var(--muted)}
:root:not(#cen697) .panel{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-2)}
:root:not(#cen697) .panel h2{color:var(--text)}:root:not(#cen697) .panel .sub{color:var(--muted)}
:root:not(#cen697) .field label,:root:not(#cen697) .filter-block label{color:var(--text2)}
:root:not(#cen697) :is(.field input,.field select,.field textarea,.filter-block select,.filter-block input,.c45-filters select,.c48-detail select,.c48-search input,.c48-search select,.c60 input,.c60 select,.c60 textarea){background-color:var(--field);color:var(--text);border-color:var(--line-strong);color-scheme:var(--scheme)}
:root:not(#cen697) :is(.field input,.field textarea,.c60 input,.c60 textarea)::placeholder{color:var(--muted);opacity:.85}
:root:not(#cen697) :is(.field input,.field select,.field textarea,.filter-block select,.filter-block input):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
:root:not(#cen697) .access-intent button{background:var(--surface2);color:var(--text);border-color:var(--line)}
:root:not(#cen697) .access-intent button small{color:var(--muted)}
:root:not(#cen697) .access-intent button.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent);box-shadow:none}
:root:not(#cen697) .access-intent button.active small{color:var(--on-accent);opacity:.82}
:root:not(#cen697) .notice{background:var(--surface2);color:var(--text);border-left-color:var(--accent)}
:root:not(#cen697) .error{color:var(--tag-bad)}
:root:not(#cen697) .footer-note,:root:not(#cen697) .hint,:root:not(#cen697) .statusline{color:var(--muted)}
:root:not(#cen697) .feedback.success{background:var(--tag-good-bg);color:var(--tag-good);border-color:color-mix(in srgb,var(--good) 45%,transparent)}
:root:not(#cen697) .feedback.error{background:var(--tag-bad-bg);color:var(--tag-bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent)}
:root:not(#cen697) .feedback.pending{background:var(--tag-info-bg);color:var(--tag-info);border-color:var(--line-strong)}
html input[type="date"],html input[type="month"],html input[type="week"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238f7f6c' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E")}

/* Barra de filtros y desplegables. */
:root:not(#cen697) .v16-filters{background:var(--surface);border-color:var(--line);backdrop-filter:none;-webkit-backdrop-filter:none}
:root:not(#cen697) .v16-filters:not(.en-barra){box-shadow:var(--shadow-2)}
:root:not(#cen697) .filter-head small,:root:not(#cen697) .filter-foot span,:root:not(#cen697) #c631{color:var(--muted)}
:root:not(#cen697) .filter-foot{background:var(--surface2)}
:root:not(#cen697) .dimension-toggle button{background:var(--surface2);color:var(--text2);border-color:var(--line)}
:root:not(#cen697) .dimension-toggle button.active{background:var(--accent);color:var(--on-accent)}
:root:not(#cen697) :is(.c361-dd,.c375-dd) summary{background:var(--field);color:var(--text);border-color:var(--line-strong)}
:root:not(#cen697) .c361-list{background:var(--surface);color:var(--text);border-color:var(--line-strong);box-shadow:var(--shadow-2)}
:root:not(#cen697) .c375-ops label:hover{background:var(--surface2)}
:root:not(#cen697) .c375-solo{background:var(--surface2);border-color:var(--line-strong)}
:root:not(#cen697) .c375-fijo{background:var(--surface2);border-color:var(--line-strong)}
:root:not(#cen697) .c375-dd.c630-on>summary,:root:not(#cen697) .c630-on.c630-on{border-color:var(--accent)!important;box-shadow:0 0 0 2px var(--accent-soft)}
:root:not(#cen697) .c375-dd.c630-on>summary::before{color:var(--accent)}
:root:not(#cen697) .c630-chip{border-color:var(--accent-line);background:var(--accent-soft);color:var(--text)}
:root:not(#cen697) .c630-chip:hover{border-color:var(--accent)}

/* Tarjetas e indicadores. */
:root:not(#cen697) :is(.card,.v16-metrics article,.v16-empty,.c45-float-card,.c17-point-card){background:var(--surface);border-color:var(--line);color:var(--text);box-shadow:var(--shadow-1)}
:root:not(#cen697) :is(.v16-metrics small,.v16-metrics span,.card .label,.card small,.c45-float-card small,.c45-float-card span){color:var(--muted)}
:root:not(#cen697) :is(.v16-metrics strong,.card .value,.c45-float-card strong,.v16-metrics article h3){color:var(--text)}
html[data-theme="light"] .card :is(h2,h3,h4,.value,p,li,td,label,strong){color:var(--text)}
html[data-theme="light"] .card :is(.label,.hint,small,.sub){color:var(--muted)}

/* Paneles de Pólizas (.c18) */
:root:not(#cen697) .c18-panel{background:var(--surface);border-color:var(--line);color:var(--text);box-shadow:var(--shadow-1)}
:root:not(#cen697) .c18-body h3,:root:not(#cen697) .c18-panel>h3{color:var(--text)}
:root:not(#cen697) .c18-panel :is(.c18-caption,.hint,.c18-sub){color:var(--muted)}
:root:not(#cen697) .c18-subtabs,:root:not(#cen697) .c18-tabs{border-bottom-color:var(--line)}
:root:not(#cen697) .c18-subtabs button{background:transparent;color:var(--muted)}
:root:not(#cen697) .c18-subtabs button:hover{background:var(--surface2);color:var(--text)}
:root:not(#cen697) .c18-subtabs button.active{background:transparent;color:var(--accent-ink);border-bottom-color:var(--accent)}
.c18-tabs{display:flex;gap:4px;margin:0 0 14px;border-bottom:1px solid var(--line);overflow-x:auto}
.c18-tabs button{padding:9px 14px;border-radius:8px 8px 0 0;border-bottom:2px solid transparent;font-weight:600;white-space:nowrap}
:root:not(#cen697) .c18-tabs button{background:transparent;color:var(--muted);border-bottom-color:transparent}
:root:not(#cen697) .c18-tabs button.active{color:var(--accent-ink);border-bottom-color:var(--accent)}
:root:not(#cen697) .c18-kpi{background:var(--raised);border-color:var(--line);box-shadow:none}
:root:not(#cen697) .c18-kpi:hover{border-color:var(--line-strong)}
:root:not(#cen697) .c18-panel .c18-kpi strong,:root:not(#cen697) .c18-kpi strong{color:var(--accent-ink)}
:root:not(#cen697) .c18-panel .c18-kpi :is(small,span,em),:root:not(#cen697) .c18-kpi :is(small,span,em){color:var(--muted)}
/* CEN-751 · tarjetas de póliza: el fondo ya es var(--raised); el texto forzado a var(--bg) las dejaba ilegibles */
:root:not(#cen697) .card.c18-cump .c18-kpi.c18-kpi-inv strong{color:var(--text)!important}:root:not(#cen697) .card.c18-cump .c18-kpi.c18-kpi-inv strong em{color:var(--muted)!important}
:root:not(#cen697) .card.c18-cump .c18-kpi.c18-kpi-inv small{color:var(--text)!important;opacity:.85}:root:not(#cen697) .card.c18-cump .c18-kpi.c18-kpi-inv span{color:var(--text)!important;opacity:.7}
:root:not(#cen697) .c18-radio{background:var(--raised);border-color:var(--line)}
:root:not(#cen697) .c18-radio>b{color:var(--muted)}
:root:not(#cen697) .c18-panel .c18-radio button,:root:not(#cen697) .c18-radio button{background:transparent;color:var(--text2);transition:background-color .15s ease,color .15s ease}
:root:not(#cen697) .c18-radio button:hover{background:var(--surface2);color:var(--text)}
:root:not(#cen697) .c18-panel .c18-radio button.active,:root:not(#cen697) .c18-radio button.active{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 0 0 0 1px var(--accent-line)}
:root:not(#cen697) .c18-trend{background:var(--raised);border-color:var(--line);border-left-color:var(--line-strong)}
:root:not(#cen697) .c18-trend strong{color:var(--text)}:root:not(#cen697) .c18-trend :is(small,em,.c18-d){color:var(--muted)}
:root:not(#cen697) .c18-trend.sube{border-left-color:var(--good)}:root:not(#cen697) .c18-trend.sube .c18-d{color:var(--good)}
:root:not(#cen697) .c18-trend.baja{border-left-color:var(--bad)}:root:not(#cen697) .c18-trend.baja .c18-d{color:var(--bad)}
:root:not(#cen697) .c18-total,:root:not(#cen697) .c18-total td{background:var(--th-bg);color:var(--text)}
:root:not(#cen697) .c18-total td{border-top-color:var(--line-strong)}
:root:not(#cen697) .c18-aviso{background:var(--surface2);color:var(--text);border:1px solid var(--line)}
:root:not(#cen697) .c18-aviso-col{background:var(--surface2);color:var(--text);border-color:var(--line)}
:root:not(#cen697) .c18-aviso-col.warn{background:var(--tag-warn-bg);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}
:root:not(#cen697) .c18-aviso-col.sug{background:var(--tag-good-bg);border-color:color-mix(in srgb,var(--good) 45%,transparent)}
html:not([data-theme="light"]) .c18-trofeo-banner{background:#2a2110;border-color:#8a6a20;color:#e3b24f}
:root:not(#cen697) .c18-reloj{background:var(--surface2);border-color:var(--line);color:var(--text)}
:root:not(#cen697) :is(.c48-detail,.c583-col){border-color:var(--line)}
:root:not(#cen697) :is(.c45-filters label,.c18-legend,.c45-legend,.c45-legend span,.chart-legend){color:var(--text2)}
:root:not(#cen697) .c45-legend .trend-key{border-top-color:var(--muted)}
:root:not(#cen697) .c401-bar button{background:var(--surface2);border-color:var(--line)}
:root:not(#cen697) .mmv{background:var(--surface2);border-color:var(--line)}
:root:not(#cen697) .mmv .vpm{background:var(--accent);border-color:var(--accent)}
:root:not(#cen697) .c27-bars i{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 55%,var(--surface)),var(--accent))}

/* Gráficas SVG: los colores fijos turquesa/azul pasan a la paleta (por atributo, sin tocar app.js). */
:root:not(#cen697) .c18-chart{background:var(--chart-bg);border-color:var(--line);box-shadow:none}
html:not([data-theme="light"]) .c18-chart svg text{fill:var(--ch-text)}
html .c18-chart svg line[stroke="#dbe4ef"],html:not([data-theme="light"]) .c18-chart svg line[stroke="#dbe4ef"]{stroke:var(--ch-grid)}
html .c18-chart svg line[stroke="#203b61"],html:not([data-theme="light"]) .c18-chart svg line[stroke="#203b61"]{stroke:var(--ch-axis)}
html .c18-chart svg rect[fill="#365779"],html:not([data-theme="light"]) .c18-chart svg rect[fill="#365779"]{fill:var(--ch-bar)}
html .c18-chart svg rect[fill="#a78bfa"]{fill:var(--ch-bar-prev)}
html .c18-chart svg path[stroke="#00bfb3"]{stroke:var(--ch-line)}
html .c18-chart svg text[fill="#0f8f87"]{fill:var(--ch-line)}
html .c18-chart svg circle[fill="#102f48"],html:not([data-theme="light"]) .c18-chart svg circle[fill="#102f48"]{fill:var(--ch-point)}
html .c18-chart svg path[stroke="#f97316"]{stroke:var(--ch-trend)}
html .c18-chart svg path[stroke="#43d198"]{stroke:var(--ch-alt)}
html .c18-legend .bar{background:var(--ch-bar)}html .c18-legend .line{border-color:var(--ch-line)}html .c18-legend .dash{border-color:var(--ch-trend)}html .c18-legend .dot{border-color:var(--ch-alt)}
html .c18-legend i[style*="#a78bfa"]{background:var(--ch-bar-prev)!important}
html svg rect[fill="#087f87"]{fill:var(--ch-bar)}
html svg [stroke="#087f87"]{stroke:var(--accent)}html svg circle[fill="#087f87"]{fill:var(--accent)}
html svg stop[stop-color="#0b8890"]{stop-color:var(--accent)}
html svg [stroke="#e28a2b"]{stroke:var(--ch-line)}html svg [fill="#e28a2b"]{fill:var(--ch-line)}
html svg [stroke="#7458c8"]{stroke:var(--ch-trend)}html svg [fill="#7458c8"]{fill:var(--ch-trend)}
html .legend-bar{background:var(--ch-bar)}html .legend-line{border-top-color:var(--ch-line)}html .legend-line.trend{border-top-color:var(--ch-trend)}
html svg [fill="#1f8a7a"]{fill:var(--ch-top)}html svg [fill="#4aa89a"]{fill:var(--ch-ok)}
html i[style*="#4aa89a"]{background:var(--ch-ok)!important}
html .c18-legend i[style*="#1f8a7a"]{background:var(--ch-top)!important}
html .card.c18-cump .c18-legend i[style*="#1f8a7a"]{background:var(--blue)!important}
html .card.c18-cump .c18-chart svg rect[fill="#1f8a7a"]{fill:var(--blue)}

/* Tablas: encabezado cálido/oscuro, filas limpias, hover discreto. */
html .table-wrap,html[data-theme="light"] .table-wrap{background:var(--surface);border-color:var(--line)}
html th,html[data-theme="light"] th{background:var(--th-bg);color:var(--th-ink)}
html :is(th,td){border-bottom-color:var(--line-soft)}
html[data-theme="light"] td{color:var(--text);border-color:var(--line-soft)}
html table thead th:hover{filter:none;background:var(--th-hover)}
html tbody tr:hover{background:var(--row-hover)}
html .c18-ranking table,html[data-theme="light"] .c18-ranking table{background:var(--surface);color:var(--text)}
html .c18-ranking th,html[data-theme="light"] .c18-ranking th{background:var(--th-bg);color:var(--th-ink)}
html .c18-ranking td{border-color:var(--line-soft)}
html .cen-t,html .cen-t.cen-t{border-color:var(--line)!important}
html .cen-t thead th,html .cen-t tr:first-child th,html[data-theme="light"] .cen-t thead th,html[data-theme="light"] .cen-t tr:first-child th{background:var(--th-bg);color:var(--th-ink);border-bottom:1px solid var(--line)}
html .cen-t td{border-bottom-color:var(--line-soft)}
html .cen-t tbody tr:nth-child(even) td{background:var(--zebra)}
html .cen-t tbody tr:hover td{background:var(--row-hover)}
html table td:hover{outline-color:var(--accent-ring)}
:root:not(#cen697) .cen-q{background-repeat:no-repeat;background-position:11px center;background-size:16px 16px;background-color:var(--field);border-color:var(--line-strong);color:var(--text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238f7f6c' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E")}
:root:not(#cen697) .cen-q:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
:root:not(#cen697) .cen-pop{background:var(--surface);color:var(--text);border-color:var(--line-strong);box-shadow:var(--shadow-2)}
:root:not(#cen697) .cen-pop div:hover{background:var(--accent-soft)}
:root:not(#cen697) :is(.cen-bar button,.c50-tools button){background:var(--surface2);border-color:var(--line-strong);color:var(--text)}
:root:not(#cen697) :is(.cen-bar button,.c50-tools button):hover{background:var(--surface2);border-color:var(--accent-line)}
:root:not(#cen697) .cen-n{color:var(--muted);opacity:1}
/* Proveedor × periodo: columnas fijas opacas en ambos temas. */
html .c18-prov td,html:not([data-theme="light"]) .c18-prov td{background:var(--surface);color:var(--text)}
html .c18-prov tbody tr:nth-child(even) td,html:not([data-theme="light"]) .c18-prov tbody tr:nth-child(even) td{background:var(--c697-prov-even)}
html .c18-prov thead th{background:var(--th-bg);color:var(--th-ink)}
html .c18-prov .c18-sticky,html .c18-prov tbody td.c18-sticky,html .c18-prov tbody td.c18-sticky2,html:not([data-theme="light"]) .c18-prov tbody td.c18-sticky,html:not([data-theme="light"]) .c18-prov tbody td.c18-sticky2{background:var(--c697-prov-stk);color:var(--text)}
html .c18-prov tbody tr:nth-child(even) td.c18-sticky,html .c18-prov tbody tr:nth-child(even) td.c18-sticky2,html:not([data-theme="light"]) .c18-prov tbody tr:nth-child(even) td.c18-sticky,html:not([data-theme="light"]) .c18-prov tbody tr:nth-child(even) td.c18-sticky2{background:var(--c697-prov-stk2)}
html .c18-prov thead th.c18-sticky,html .c18-prov thead th.c18-sticky2{background:var(--th-bg)}
html .c18-prov .c18-sticky2{box-shadow:2px 0 0 var(--line-strong)}
html .c18-prov tbody tr:hover td.c18-sticky,html .c18-prov tbody tr:hover td.c18-sticky2,html .cen-t.c18-prov tbody tr:hover td.c18-sticky,html .cen-t.c18-prov tbody tr:hover td.c18-sticky2,html:not([data-theme="light"]) .c18-prov tbody tr:hover td.c18-sticky,html:not([data-theme="light"]) .c18-prov tbody tr:hover td.c18-sticky2{background:var(--c697-prov-hov)!important}
html .c18-prov tbody tr.tot td.c18-sticky,html .c18-prov tbody tr.tot td.c18-sticky2,html:not([data-theme="light"]) .c18-prov tbody tr.tot td,html:not([data-theme="light"]) .c18-prov tbody tr.tot td.c18-sticky,html:not([data-theme="light"]) .c18-prov tbody tr.tot td.c18-sticky2{background:var(--c697-prov-tot)!important;color:var(--text)}
html .c18-prov tr.tot td,html:not([data-theme="light"]) .c18-prov tr.tot td{border-top-color:var(--line-strong)}
:root{--c697-prov-even:#191613;--c697-prov-stk:#1a1714;--c697-prov-stk2:#1f1b17;--c697-prov-hov:#2a241d;--c697-prov-tot:#241f1a}

/* Pies fijos y filas de estado. */
html .c488-wrap tfoot td,html .c497-wrap tfoot td,:root[data-theme="dark"] .c488-wrap tfoot td,:root[data-theme="dark"] .c497-wrap tfoot td{background:var(--th-bg);border-top-color:var(--line-strong);color:var(--text)}
html:not([data-theme="light"]) tr.c18-inactivo td{background:#1a1816!important;color:#8a8175!important}
html[data-theme="light"] tr.c18-inactivo td{background:#e9eef1!important;color:#6b7c88!important}
html:not([data-theme="light"]) tr.cg-fila-amarilla td{background:#2b2210!important}
html:not([data-theme="light"]) tr.cg-fila-roja td{background:#2d1414!important}
html:not([data-theme="light"]) tr.cg-fila-resuelta td{background:#1a1816!important;color:#8a8175}
html[data-theme="light"] tr.cg-fila-amarilla td{background:#fbf0c8!important}
html[data-theme="light"] tr.cg-fila-roja td{background:#f8e1e4!important}
html[data-theme="light"] tr.cg-fila-resuelta td{background:#e9eef1!important;color:#6b7c88}
html:not([data-theme="light"]) .c488-rein{color:#f08a80}
html:not([data-theme="light"]) .c451-okt{color:#8fbf7a}

/* Etiquetas semánticas. */
:root:not(#cen697) .tag{border:1px solid transparent}
:root:not(#cen697) .tag.good{background:var(--tag-good-bg);color:var(--tag-good)}
:root:not(#cen697) .tag.warn{background:var(--tag-warn-bg);color:var(--tag-warn)}
:root:not(#cen697) .tag.bad{background:var(--tag-bad-bg);color:var(--tag-bad)}
:root:not(#cen697) .tag.info{background:var(--tag-info-bg);color:var(--tag-info)}
:root:not(#cen697) .c512-det .tag.info{background:#efe3cf;color:#5a3f2a}

/* Ventanas y avisos. */
html .modal{background:var(--overlay)}
:root:not(#cen697) .modal-card{background:var(--surface);color:var(--text);border-color:var(--line);box-shadow:var(--shadow-2)}
html[data-theme="light"] .modal-card *,html[data-theme="light"] .c18-panel *{color:inherit}
html[data-theme="light"] :is(.modal-card,.c18-panel) :is(.primary,.c18-modo button.on,.c386-chip.active,.c544-tabs button.active){color:var(--on-accent)}
html .cg-modal,html .c404-modal{background:var(--overlay)}
:root:not(#cen697) .cg-modal-box{background:#fffaf1;color:#2a1d14;box-shadow:var(--shadow-2)}
:root:not(#cen697) .cg-modal-head{border-bottom-color:#e6d8c0}
html .cg-modal-box th,html[data-theme="light"] .cg-modal-box th{background:var(--th-bg);color:var(--th-ink)}
html .cg-modal-box td{color:#2a1d14;border-bottom-color:#efe5d3}
html .c512-det th{background:#efe3cd;color:#4a3424}
:root:not(#cen697) .c404-card{background:var(--surface);color:var(--text);box-shadow:var(--shadow-2)}
:root:not(#cen697) .c25-hovercard{background:var(--tip-bg);border-color:var(--line-strong);color:var(--text);box-shadow:var(--shadow-2);backdrop-filter:none;-webkit-backdrop-filter:none}
:root:not(#cen697) .c25-hovercard b{color:var(--text)}:root:not(#cen697) .c25-hovercard span{color:var(--muted)}:root:not(#cen697) .c25-hovercard strong{color:var(--accent-ink)}
:root:not(#cen697) .c25-hovercard div{border-top-color:var(--line)}
:root:not(#cen697) #cenTip{background:var(--tip-bg);color:var(--text);border-color:var(--accent-line);box-shadow:var(--shadow-2)}
:root:not(#cen697) #cenTip .tt{border-color:var(--line)}:root:not(#cen697) #cenTip .ts{color:var(--muted)}
:root:not(#cen697) #cenToast{background:#1b1612;color:#efe6d6;border-color:#3d3731}
:root:not(#cen697) #cenAviso{background:#1b1612;color:#efe6d6;box-shadow:0 10px 28px rgba(0,0,0,.4)}
:root:not(#cen697) #cenAviso span{color:#cfc3b2}
:root:not(#cen697) #cenAviso button{background:var(--accent);color:var(--on-accent)}
:root:not(#cen697) #cenAviso button.ghost{background:transparent;color:#cfc3b2;border-color:#5a5045}
html[data-theme="light"] #cenAviso button{background:#c99a06;color:#1a1400}

/* Cargas (.c60): misma paleta en los dos temas vía tokens. */
:root:not(#cen697) .c60{background:var(--surface);color:var(--text);border-color:var(--line);color-scheme:var(--scheme)}
:root:not(#cen697) .c60 :is(h3,h4,label,td,.value,p,li){color:var(--text)}
:root:not(#cen697) .c60 :is(.label,.hint,.notice){color:var(--muted)}
:root:not(#cen697) .c60 .table-wrap{background:var(--surface);border-color:var(--line)}
:root:not(#cen697) .c60 th{background:var(--th-bg);color:var(--th-ink)}
:root:not(#cen697) .c60 td{border-color:var(--line-soft)}
:root:not(#cen697) .c60 input[type=file]::file-selector-button{background:var(--accent);color:var(--on-accent)}
:root:not(#cen697) .c60 a{color:var(--accent-ink)}

/* Antiguo layout lateral (si aparece). */
:root:not(#cen697) .sidebar{background:var(--surface);border-color:var(--line)}
:root:not(#cen697) .nav button{color:var(--text2)}
:root:not(#cen697) .nav button:is(.active,:hover){background:var(--accent-soft);color:var(--text)}
:root:not(#cen697) .module-checks label{border-color:var(--line)}

/* Mapa: controles sobre el lienzo claro. */
html .mp-search button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
:root:not(#cen697) .mp-chip{border-color:var(--line-strong)}
:root:not(#cen697) .mp-chip:has(input:focus-visible){outline-color:var(--accent)}

/* Rendimiento: fuera blur de contenido y de capas; la carga oscurece con opacidad (barato). */
:root:not(#cen697) .c26-working,:root:not(#cen697) .c26-working.show{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--overlay);transition:opacity .18s ease,visibility .18s}
html .c26-busy #content{filter:none;transition:opacity .2s ease}
:root:not(#cen697) .c26-loader{background:var(--surface);border-color:var(--line-strong);box-shadow:var(--shadow-2)}
:root:not(#cen697) .c26-loader strong{color:var(--text)}:root:not(#cen697) .c26-loader span{color:var(--muted)}
:root:not(#cen697) .c26-signal{color:var(--accent)}:root:not(#cen697) .c26-signal i{background:var(--accent)}
.c622-led.on{position:relative;animation:none;box-shadow:0 0 0 2px rgba(34,197,94,.25)}
.c622-led.on::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(34,197,94,.5);animation:c697ping 2s ease-out infinite;pointer-events:none}
@keyframes c697ping{from{transform:scale(.55);opacity:.9}to{transform:scale(1.35);opacity:0}}
@media(prefers-reduced-motion:reduce){.c622-led.on::after{animation:none;opacity:0}}
/* Cortinilla tipo «wipe» (CEN-293): misma animación; solo cambia el color de las barras. */
html #cenLd .st i,html #cenLd .bar i,html #cenTop{background:var(--accent)}
html #cenLd .c612-act{background:var(--accent);color:var(--on-accent)}
html #cenLd .big{font-family:var(--font-display)}

/* CEN-706 · Logo según el tema: cyan en oscuro (original), mostaza en claro. */
html[data-theme="light"] .c691-logo,html[data-theme="light"] .mark img{content:url(icon-mostaza.svg)}

/* CEN-837 · Colores oficiales y contraste en ventanas emergentes (claro glaciar/mostaza · oscuro sobrio/cyan) */
#mpDet .c512-det{background:var(--surface)!important;color:var(--text)!important;border:1px solid var(--line)}
#mpDet .c512-det th,.cd-box th,.cd-reg th,.modal-card th{background:var(--th-bg);color:var(--th-ink)}
#mpDet .c512-det td,.modal-card td{color:var(--text)}
.modal-card{background:var(--surface);color:var(--text);border:1px solid var(--line)}
.modal-card input,.modal-card select,.modal-card textarea,.c739m input,.c739m select{background:var(--field);color:var(--text);border:1px solid var(--line)}
.c739m>div{background:var(--surface)!important;color:var(--text)!important;border:1px solid var(--line)}
.c739 .t2 th.n,.c739 .tg{background:var(--accent)!important;color:var(--on-accent)!important}
.c739 .t1 th,.c739 .t2 th{background:var(--th-bg)!important;color:var(--th-ink)}
.c739 td.dis{background:var(--surface2)!important}
.c739 tr.tot td,.c739 tr.sub td{background:var(--accent-soft)!important;color:var(--text)}
/* CEN-872 · Ranking: 5 tarjetas en una línea y tarjeta de estrellas */
@media(min-width:1100px){.c18-kpis.c872-k5{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important}}
.c872-star .c872-sv{display:flex;gap:18px;align-items:flex-end;margin:6px 0 4px}
.c872-star .c872-sv div{display:flex;flex-direction:column;line-height:1}
.c872-star .c872-sv b{font:800 1.75rem var(--font-display,inherit);letter-spacing:-.01em}
.c872-star .c872-sv i{font-style:normal;font-size:.72rem;opacity:.7;margin-top:3px;text-transform:uppercase;letter-spacing:.05em}
.c872-star .c872-bar{height:5px;border-radius:3px;background:#9aa4ae;overflow:hidden;margin:4px 0 6px}
.c872-star .c872-bar span{display:block;height:100%;background:#d4a017}
/* CEN-878 · ventana de detalle ancha (refuerzo por si queda CSS viejo en caché) */
.cd-modal .cd-box{box-sizing:border-box}
.cd-modal .cd-body{overflow:auto}
