
:root{
  --navy:#345c65;--blue:#80b8ae;--blue2:#9fc8d7;--blue3:#d9eae5;--sky:#eef7f3;
  --bg:#edf4f2;--card:#fff;--ink:#243a4b;--muted:#71838e;--line:#dce8e7;
  --green:#8abbaa;--greenbg:#e2f2e7;--amber:#d5b778;--amberbg:#faf0d8;
  --red:#d4a0a6;--redbg:#f9e9e9;--violet:#aa9dc7;--violetbg:#f0ebf6;
  --cyan:#94c7cb;--shadow:0 10px 26px rgba(43,70,98,.07);--r:18px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink)}
button,select,input{font:inherit}.app{display:grid;grid-template-columns:274px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;overflow:auto;background:linear-gradient(180deg,#598f8a,#396e72);color:white;padding:17px 12px 20px;border-right:1px solid rgba(255,255,255,.12)}
.brand{display:flex;gap:11px;align-items:center;padding:7px 10px 17px}.brandmark{width:38px;height:38px;border-radius:13px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.11);display:grid;place-items:center;font-weight:900}.brand b{display:block;font-size:15px}.brand span{display:block;color:rgba(255,255,255,.65);font-size:10.5px;margin-top:2px;font-weight:700}
.navgroup{margin-top:7px}.navtop{display:flex;align-items:center;gap:9px;border-radius:13px;padding:10px 11px;font-size:12px;font-weight:850;color:white}.navtop.active{background:rgba(255,255,255,.11)}.navicon{width:23px;height:23px;border:1.7px solid rgba(255,255,255,.9);border-radius:50%;display:grid;place-items:center;font-size:12px}.navsection{padding:14px 12px 7px 38px;color:rgba(255,255,255,.58);font-size:9px;text-transform:uppercase;letter-spacing:1.1px;font-weight:900}.subnav{display:grid;gap:3px}.subnav button{width:100%;border:0;background:transparent;color:rgba(255,255,255,.74);text-align:left;padding:9px 11px 9px 38px;border-radius:12px;cursor:pointer;font-size:11px;font-weight:720;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}.subnav button:hover{background:rgba(255,255,255,.07);color:white}.subnav button.active{background:#82b5ac;color:white;font-weight:850}.subnav button.favorite:after{content:"★";position:absolute;right:12px;color:#f5d78a;font-size:10px}.subnav button.disabled{opacity:.53}.sidefoot{margin:15px 8px 0;padding:12px;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:rgba(255,255,255,.05);font-size:10px;line-height:1.5;color:rgba(255,255,255,.67)}
.main{min-width:0}.topbar{height:68px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}.crumb{display:flex;align-items:center;gap:10px;min-width:0}.crumb b{font-size:15px}.crumb span{font-size:11px;color:var(--muted);font-weight:700}.topright{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.pill{border:1px solid #d4e0e9;background:#f8fafc;border-radius:999px;padding:7px 10px;font-size:10.5px;font-weight:800;color:#60778c}.pill.live{background:#eaf3fb;color:#426f9d;border-color:#cddfed}.dotlive{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:6px}.menuBtn{display:none;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;font-weight:900}.exportPanel{display:flex;align-items:center;gap:6px;padding:5px 6px;border:1px solid #D5E0EA;background:#fff;border-radius:999px;box-shadow:0 6px 16px rgba(30,42,68,.06)}.exportPanel label{font-size:9px;font-weight:900;color:#6A7E91;margin-right:2px;text-transform:uppercase;letter-spacing:.4px}.exportPanel select{height:30px;min-width:220px;border:1px solid #D6E0EA;background:#f8fcf9;border-radius:999px;padding:0 12px;font-size:10px;font-weight:800;color:#425B73}.exportBtn{height:30px;border:1px solid #BFD0DF;background:#e7f3ee;color:#35526F;border-radius:999px;padding:0 12px;font-size:10px;font-weight:900;cursor:pointer}.exportBtn:hover{background:#E6EEF7}.exportBtn.busy{opacity:.7;pointer-events:none}.exportBtn.primary{background:#345c65;color:#fff;border-color:#345c65}.exportBtn.primary:hover{background:#1E3E60}.exportHint{font-size:9px;color:#73879A;font-weight:800;margin-left:2px}.cardExportable{scroll-margin-top:90px}.cardExportable.exportPulse{outline:3px solid rgba(78,130,186,.38);outline-offset:4px;transition:outline-color .25s ease}.cardExportActions{display:flex;gap:6px;align-items:center}.cardHeadActions{position:absolute;right:14px;top:50%;transform:translateY(-50%);display:flex;gap:6px;align-items:center}.cardExportBtn{height:28px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.16);color:#fff;border-radius:999px;padding:0 10px;font-size:10px;font-weight:900;cursor:pointer;backdrop-filter:blur(2px)}.cardExportBtn:hover{background:rgba(255,255,255,.26)}.cardExportBtn.secondary{background:rgba(243,247,251,.12)}.cardExportBtn.secondary:hover{background:rgba(255,255,255,.22)}.cardExportBtn.busy{opacity:.65;pointer-events:none}.cardHeadActions .tag,.bitSummaryActions .tag{position:static!important;right:auto!important;top:auto!important;transform:none!important;padding:6px 10px!important;border:1px solid rgba(255,255,255,.14)!important;background:rgba(255,255,255,.10)!important;border-radius:999px!important;color:#fff!important;font-size:11px!important;line-height:1!important}.exportSummaryGhost{background:#fff;padding:0;border-radius:18px}.bitTitleMain{position:relative}.bitSummaryActions{position:absolute;right:0;top:0;display:flex;gap:8px;align-items:center}.bitSummaryActions .cardExportBtn{border-color:#d4deea;background:#edf4f2;color:#34526f}.bitSummaryActions .cardExportBtn:hover{background:#e5edf6}.bitSummaryActions .tag{background:#e7f3ee!important;border-color:#d3dfeb!important;color:#57718d!important}.bitSummaryExportGhost{padding:0;background:#fff;border-radius:22px}.bitSummaryExportGhost .bitTitleWrap{margin-bottom:16px}.bitSummaryExportGhost .bitExportTop{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:20px;align-items:start}.bitSummaryExportGhost .bitDayCard{max-width:none}.bitSummaryExportGhost #bitKpis{display:block;margin:0}.bitSummaryExportGhost .bitTimeContext{margin-top:14px}.cardHead{padding-right:210px !important}#view-bitacora .cardHead h2,#view-volume .cardHead h2,#view-backlog .cardHead h2,#view-heatmap .cardHead h2{padding-right:6px}@media(max-width:860px){.cardHead{padding-right:16px!important;padding-top:44px!important}.cardHeadActions{left:14px;right:auto;top:12px;transform:none}.bitSummaryActions{position:static;margin-top:8px;justify-content:flex-start}}@media(max-width:1180px){.exportPanel{width:100%;justify-content:flex-start;border-radius:16px;padding:8px 10px}.exportPanel select{min-width:170px;flex:1}}
.page{max-width:1720px;margin:auto;padding:23px 25px 40px}.hero{display:flex;gap:18px;justify-content:space-between;align-items:flex-end;margin-bottom:16px}.hero h1{font-size:28px;margin:0;letter-spacing:-.6px}.hero p{margin:5px 0 0;font-size:12px;color:var(--muted);font-weight:650}.heroBadge{display:flex;gap:7px;align-items:center}.heroBadge .big{background:var(--blue);color:white;border-radius:14px;padding:10px 13px;font-size:12px;font-weight:850;box-shadow:0 6px 16px rgba(78,130,186,.18)}
.filters{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr)) minmax(180px,1.3fr) auto;gap:9px;padding:12px;background:white;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);margin-bottom:13px}.f label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.65px;color:#7890a4;font-weight:900;margin:0 0 5px 2px}.f select,.f input{width:100%;height:38px;border:1px solid #d8e2ea;border-radius:10px;background:#fbfcfe;color:var(--ink);padding:0 10px;font-size:11px;font-weight:700;outline:none}.f select:focus,.f input:focus{border-color:#9bb9d4;box-shadow:0 0 0 3px rgba(78,130,186,.1)}.reset{align-self:end;height:38px;border:1px solid #d8e2ea;border-radius:10px;background:#f4f7fa;color:#60788e;padding:0 12px;font-size:10px;font-weight:850;cursor:pointer}
.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:13px}.kpi{background:white;border:1px solid var(--line);border-radius:15px;padding:13px 14px;box-shadow:var(--shadow);min-height:91px;position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--blue2)}.kpi.done:before{background:var(--green)}.kpi.pending:before{background:var(--amber)}.kpi.cancel:before{background:var(--red)}.kpi.stop:before{background:var(--violet)}.kpi .lab{font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:#8092a3;font-weight:900}.kpi .val{font-size:27px;line-height:1;font-weight:900;margin:11px 0 5px}.kpi .mini{font-size:9.5px;color:var(--muted);font-weight:650}.kpi .pct{position:absolute;right:11px;top:11px;font-size:9px;font-weight:850;color:#8294a5;background:#f2f6f9;border-radius:999px;padding:4px 6px}

/* ===== Bitácora · estética inspirada en Looker ===== */
#view-bitacora .hero{display:none}
#view-bitacora .kpis{display:block;margin-bottom:16px}
.bitTitleWrap{display:grid;grid-template-columns:minmax(240px,360px) minmax(0,1fr);gap:18px;align-items:center;margin-bottom:18px}.bitTitleBrand{display:flex;align-items:center;gap:14px}.bitBrandWord{font-size:42px;line-height:1;font-weight:900;letter-spacing:-1.2px;color:#616670}.bitBrandWord em{font-style:normal;color:#e94f64}.bitUpdateBox{background:#88b9b0;color:#fff;border-radius:18px;padding:10px 16px;box-shadow:0 7px 16px rgba(78,130,186,.22)}.bitUpdateBox span{display:block;font-size:11px;font-weight:900;opacity:.9;text-transform:uppercase;letter-spacing:.4px}.bitUpdateBox b{display:block;font-size:14px;margin-top:4px}.bitTitleMain h1{margin:0;font-size:36px;letter-spacing:-.9px;color:#666;line-height:1.05;text-align:center}.bitTitleBar{height:18px;border-radius:6px;background:#90c4bd;margin-top:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
.bitTop{display:grid;grid-template-columns:minmax(300px,560px) minmax(440px,1fr);gap:22px;align-items:start;margin-bottom:16px}.bitLeftCol{display:grid;gap:16px}.bitDayCard{display:flex;align-items:center;justify-content:space-between;min-height:84px;max-width:320px;padding-left:24px;border-radius:24px;background:linear-gradient(90deg,#99c8be 0%,#80b3ab 78%,#78aaa3 78%,#78aaa3 100%);box-shadow:0 10px 22px rgba(74,116,170,.18);color:#fff;overflow:hidden}.bitDayText small{display:block;font-size:11px;font-weight:800;opacity:.9;text-transform:uppercase;letter-spacing:.5px}.bitDayText b{display:block;font-size:42px;line-height:1;margin-top:3px;letter-spacing:-1px}.bitDayIcon{width:76px;height:84px;display:grid;place-items:center;font-size:38px;background:rgba(255,255,255,.08);border-left:1px solid rgba(255,255,255,.16)}
#view-bitacora .filters{padding:0;background:transparent;border:0;box-shadow:none;margin:0;display:block}.bitFilterPills{display:grid;gap:12px}.bitFilterRow{display:grid;grid-template-columns:1fr 1fr;gap:14px}.bitFilterRow.searchRow{grid-template-columns:1fr auto}.bitFilterPills .f label{display:block;margin:0 0 6px 8px;color:#6d7f93;font-size:9px;font-weight:900;letter-spacing:.5px;text-transform:uppercase}.bitFilterPills .f select,.bitFilterPills .f input{height:48px;border-radius:999px;border:0;background:#88b9b0;color:#fff;padding:0 18px;box-shadow:0 7px 16px rgba(78,130,186,.18)}.bitFilterPills .f select option{color:#243a4b}.bitFilterPills .f input::placeholder{color:rgba(255,255,255,.82)}.bitFilterPills .reset{height:48px;padding:0 18px;border:0;border-radius:999px;background:#e9eef4;color:#58718a;box-shadow:0 7px 16px rgba(86,117,150,.12)}
.bitSummary{display:grid;grid-template-columns:160px minmax(0,1fr);gap:12px;align-items:stretch}.bitSummaryTotal,.bitStatCard{background:#e0ece8;border:2px dashed #7284b0;border-radius:18px;box-shadow:0 8px 18px rgba(86,103,138,.13)}.bitSummaryTotal{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 12px;min-height:184px;text-align:center}.bitSummaryTotal .label,.bitStatCard .label{font-size:14px;color:#6c7393;font-weight:500}.bitSummaryTotal .num{font-size:52px;line-height:1;font-weight:500;color:#486c74;margin:8px 0 4px}.bitSummaryTotal .mini{font-size:11px;color:#707a8a}.bitSummaryStats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.bitStatCard{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px;min-height:76px;text-align:center}.bitStatCard.wide{grid-column:1/-1}.bitStatCard .num{font-size:28px;line-height:1;font-weight:500;color:#486c74;margin-top:5px}.bitStatCard .mini{font-size:10px;color:#727d8e;margin-top:4px}.bitStatCard .pct{position:absolute;top:9px;right:10px;font-size:10px;font-weight:800;color:#687396;background:rgba(255,255,255,.58);padding:3px 7px;border-radius:999px}
#view-bitacora .g2{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr)}#view-bitacora .g2equal{grid-template-columns:1fr 1fr}#view-bitacora .card{background:#e0ece8;border:4px solid #88b9b0;border-radius:18px;box-shadow:0 8px 18px rgba(82,110,152,.15)}#view-bitacora .cardHead{padding:8px 16px;background:#88b9b0;color:#fff;border-bottom:0;display:flex;align-items:center;justify-content:center;text-align:center;min-height:44px;position:relative}#view-bitacora .cardHead h2{margin:0;font-size:22px;color:#fff;letter-spacing:-.4px}#view-bitacora .cardHead p{display:none}#view-bitacora .cardHead .tag{position:absolute;right:14px;top:50%;transform:translateY(-50%);padding:0;border:0;background:transparent;color:#fff;font-size:14px;font-weight:800}#view-bitacora .cardBody,#view-bitacora .tableWrap{background:#e0ece8}#view-bitacora .cardBody{padding:14px 16px}#view-bitacora .matrix{min-width:740px}#view-bitacora .matrix th{background:#e0ece8;color:#3d4a56;font-size:12px;text-transform:none;letter-spacing:0;border-bottom:1px solid #b9c3d1}#view-bitacora .matrix td{font-size:12px;color:#30494d;border-bottom:1px solid #c3cad3}#view-bitacora .matrix tbody tr:hover td{background:#dfe5ec}#view-bitacora .matrix td.total,#view-bitacora .matrix th.total{background:#e0ece8;color:#243a4b}#view-bitacora .matrix tr.grand td{background:#e0ece8;border-top:2px solid #a5c5bd}#view-bitacora .heat{font-weight:800;min-width:42px}#view-bitacora .detail th{background:#e0ece8;color:#3f4c57;text-transform:none;font-size:11px;border-bottom:1px solid #b9c3d1}#view-bitacora .detail td{font-size:11px;color:#30494d;border-bottom:1px solid #c3cad3}#view-bitacora .detail tbody tr:hover td{background:#dfe5ec}#view-bitacora .pager{background:#e0ece8;border-top:1px solid #bcc5d0;color:#56687b}#view-bitacora .pager button{background:#88b9b0;color:#fff;border:0}#view-bitacora .rankRow{grid-template-columns:28px minmax(110px,1fr) minmax(90px,1.15fr) 40px}#view-bitacora .rankNum{background:#c5dfd6;color:#456f78}#view-bitacora .track{background:#c9ddd5;height:10px}#view-bitacora .track i{background:linear-gradient(90deg,#73c9e8,#31afd4)}#view-bitacora .rankName{font-size:11px}#view-bitacora .rankVal{font-size:12px;color:#456f78}#view-bitacora .dbName{font-size:11px;color:#415767}#view-bitacora .dbTotal{font-size:12px;color:#456f78}.bitInsightList{display:grid;gap:10px}.bitInsight{padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.38);border:1px solid rgba(79,132,187,.25)}.bitInsight b{display:block;font-size:11px;color:#456f78;margin-bottom:4px}.bitInsight span{display:block;font-size:11px;color:#485c6b;line-height:1.5}

/* ===== V4 · Estatus a todo lo ancho + productividad en tabla ===== */
#view-bitacora .bitStatusCard,#view-bitacora .techProductCard{width:100%}
#view-bitacora .bitStatusTable{width:100%;min-width:0;table-layout:fixed}
#view-bitacora .bitStatusTable th,#view-bitacora .bitStatusTable td{padding:11px 16px;font-size:13px}
#view-bitacora .bitStatusTable th:first-child,#view-bitacora .bitStatusTable td:first-child{width:25%;padding-left:20px}
#view-bitacora .bitStatusTable th:not(:first-child),#view-bitacora .bitStatusTable td:not(:first-child){text-align:center}
#view-bitacora .bitStatusTable .heat{min-width:58px;padding:6px 10px;border-radius:6px;font-size:13px}
#view-bitacora .bitStatusTable tr.grand td{font-size:13px;padding-top:12px;padding-bottom:12px}
.techTable{width:100%;border-collapse:collapse;table-layout:fixed;min-width:720px;background:#e0ece8}
.techTable thead th{position:sticky;top:0;z-index:2;background:#88b9b0;color:#fff;font-size:12px;font-weight:800;padding:10px 12px;text-align:left;border-right:1px solid rgba(255,255,255,.22)}
.techTable thead th:first-child{width:52px;text-align:center}.techTable thead th:nth-child(2){width:22%}.techTable thead th:nth-child(3){width:34%}.techTable thead th:nth-child(4){width:22%}.techTable thead th:nth-child(5){width:18%;text-align:center}
.techTable tbody td{padding:10px 12px;border-bottom:1px solid #b3ccc5;border-right:1px solid #c8d9d2;color:#303d48;font-size:12px;background:#e0ece8}
.techTable tbody tr:nth-child(even) td{background:#d5e2de}.techTable tbody tr:hover td{background:#cee8e0}
.techTable .techPos{text-align:center;color:#556777;font-weight:800}.techTable .techName{font-weight:700}.techTable .techDone{text-align:center;background:#a3d5c8!important;color:#0a4453;font-size:14px;font-weight:900}.techTable tbody tr:nth-child(even) .techDone{background:#afe0d2!important}
.techShare{display:grid;grid-template-columns:minmax(70px,1fr) 48px;gap:8px;align-items:center}.shareBar{height:9px;background:#b3beca;border-radius:999px;overflow:hidden}.shareBar i{display:block;height:100%;background:#88b9b0;border-radius:inherit}.techShare b{font-size:11px;text-align:right;color:#4d7072}.emptyTech{text-align:center!important;padding:28px!important;color:#65788a!important}
@media(max-width:1200px){.bitTop{grid-template-columns:1fr}.bitSummary{grid-template-columns:1fr}.bitSummaryTotal{min-height:120px}.bitTitleWrap{grid-template-columns:1fr}.bitTitleMain h1{text-align:left}}@media(max-width:760px){.bitFilterRow,.bitFilterRow.searchRow{grid-template-columns:1fr}.bitDayCard{max-width:none}#view-bitacora .cardHead h2{font-size:18px}.bitSummaryStats{grid-template-columns:1fr}.bitStatCard.wide{grid-column:auto}.bitStatCard .pct{position:static;margin-top:6px}}
.grid{display:grid;gap:13px;margin-bottom:13px}.g2{grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr)}.g2equal{grid-template-columns:1fr 1fr}.card{background:white;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;min-width:0}.cardHead{padding:14px 16px 11px;border-bottom:1px solid #e5ebf0;display:flex;align-items:center;justify-content:space-between;gap:12px}.cardHead h2{font-size:13px;margin:0}.cardHead p{font-size:9.8px;margin:4px 0 0;color:var(--muted);font-weight:650}.tag{font-size:9px;color:#6c8297;background:#f6faf7;border:1px solid #dce5ed;border-radius:999px;padding:5px 7px;font-weight:850;white-space:nowrap}.cardBody{padding:14px 16px}
.tableWrap{overflow:auto}.matrix{width:100%;border-collapse:separate;border-spacing:0;min-width:680px}.matrix th{background:#edf3f7;color:#5f768a;font-size:9px;text-transform:uppercase;letter-spacing:.45px;padding:8px 9px;text-align:right;border-bottom:1px solid #dce5ec;white-space:nowrap}.matrix th:first-child,.matrix td:first-child{text-align:left}.matrix td{font-size:10px;padding:8px 9px;border-bottom:1px solid #e4ebf0;text-align:right;color:#3f576d;font-weight:650;white-space:nowrap}.matrix tbody tr:hover td{background:#f8fcf9}.matrix td.total,.matrix th.total{font-weight:900;color:#263e55;background:#f7faf8}.matrix tr.grand td{font-weight:900;border-top:2px solid #c7ded5;background:#eef4f8}.heat{border-radius:7px;padding:4px 6px;display:inline-block;min-width:36px;text-align:center}.heat.pending{background:var(--amberbg);color:#9a6c2f}.heat.done{background:var(--greenbg);color:#557c5f}.heat.assigned{background:#e8f0f8;color:#52769a}.heat.cancel{background:var(--redbg);color:#9c5761}.heat.stop{background:var(--violetbg);color:#6e6596}
.rank{display:grid;gap:8px}.rankRow{display:grid;grid-template-columns:24px minmax(110px,1fr) minmax(90px,1.15fr) 34px;gap:8px;align-items:center}.rankNum{width:22px;height:22px;border-radius:8px;background:#edf4f2;color:#668097;font-size:9px;font-weight:900;display:grid;place-items:center}.rankName{font-size:9.8px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track{height:8px;background:#e8eef3;border-radius:999px;overflow:hidden}.track i{display:block;height:100%;background:linear-gradient(90deg,#80bfd0,#5689ba);border-radius:inherit}.rankVal{text-align:right;font-size:10px;font-weight:900;color:#4d6c88}
.districtBars{display:grid;gap:9px}.dbRow{display:grid;grid-template-columns:112px 1fr 36px;gap:9px;align-items:center}.dbName{font-size:9.6px;font-weight:800;color:#536c82;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stack{height:13px;border-radius:999px;overflow:hidden;background:#e9eff4;display:flex}.stack span{height:100%}.s-assigned{background:#a9d0c6}.s-done{background:#9ccbad}.s-pending{background:#e4c38b}.s-cancel{background:#dba5ab}.s-stop{background:#bcb0d0}.dbTotal{text-align:right;font-size:10px;font-weight:900}.legend{display:flex;flex-wrap:wrap;gap:11px;margin-top:11px}.legend span{display:inline-flex;gap:5px;align-items:center;color:#6b8195;font-size:8.8px;font-weight:750}.legend i{width:8px;height:8px;border-radius:3px;display:inline-block}
.detail{width:100%;border-collapse:collapse;min-width:1080px}.detail th{position:sticky;top:0;background:#eff4f8;color:#60778b;text-transform:uppercase;letter-spacing:.45px;font-size:8.8px;padding:9px 10px;text-align:left;border-bottom:1px solid #d9e2ea;white-space:nowrap}.detail td{font-size:9.5px;padding:9px 10px;border-bottom:1px solid #e7edf1;color:#425b70;font-weight:620;white-space:nowrap}.detail tbody tr:hover td{background:#f8fcf9}.statusBadge{display:inline-flex;border-radius:999px;padding:4px 7px;font-size:8.5px;font-weight:900}.statusBadge.Terminada{background:var(--greenbg);color:#557d60}.statusBadge.Pendiente{background:var(--amberbg);color:#93672c}.statusBadge.Asignada{background:#e8f0f8;color:#52779b}.statusBadge.Cancelada{background:var(--redbg);color:#9a5660}.statusBadge.Detenida{background:var(--violetbg);color:#6f6597}.pager{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;background:#f9fcfa;border-top:1px solid #e5ebf0;font-size:9.5px;color:#71869a;font-weight:700}.pagerBtns{display:flex;gap:6px}.pager button{border:1px solid #d8e2ea;background:#fff;border-radius:8px;padding:5px 8px;cursor:pointer;color:#526f89;font-weight:900}.pager button:disabled{opacity:.4;cursor:default}
.bigbar{display:grid;grid-template-columns:120px 1fr 45px;gap:9px;align-items:center;margin:10px 0}.bigbar label{font-size:10px;font-weight:820;color:#526a80}.bigbar .track{height:18px}.bigbar strong{text-align:right;font-size:11px}.barConfirmed{background:#7dbd87!important}.barNo{background:#68b6c3!important}
.installBars{display:grid;gap:13px}.installRow{display:grid;grid-template-columns:120px 1fr 42px;gap:10px;align-items:end}.installName{font-size:9px;font-weight:800;color:#5c7287}.installTrack{height:100px;display:flex;align-items:flex-end;gap:3px;background:linear-gradient(to top,#eef3f7 1px,transparent 1px);background-size:100% 25px;border-bottom:1px solid #cfdbe5;padding:0 8px}.instCol{flex:1;display:flex;align-items:flex-end;min-width:0}.instCol span{width:100%;display:flex;flex-direction:column-reverse}.instConf{background:#7fc489;min-height:2px;border-radius:4px 4px 0 0}.instNo{background:#65b6c3;min-height:0}.installVal{font-size:10px;font-weight:900;text-align:right}.installLegend{display:flex;gap:13px;justify-content:center;font-size:9px;color:#667c91;font-weight:780;margin-top:9px}.installLegend i{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:4px}
.relationGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.relationCard{border:1px solid #dde6ed;border-radius:14px;padding:13px;background:#fbfcfd}.relationCard b{font-size:11px}.relationPct{font-size:24px;font-weight:900;margin:8px 0 7px}.miniProgress{height:8px;background:#e7edf2;border-radius:999px;overflow:hidden}.miniProgress i{display:block;height:100%;border-radius:inherit;background:#98c9bf}.relationMeta{margin-top:6px;font-size:9px;color:#778b9d;font-weight:700}
.backlogTable{width:100%;border-collapse:collapse;min-width:1100px}.backlogTable th{font-size:8.6px;text-transform:uppercase;color:#5c7489;background:#edf4f2;padding:8px;border-bottom:1px solid #d9e3eb;text-align:right}.backlogTable th:nth-child(-n+2),.backlogTable td:nth-child(-n+2){text-align:left;position:sticky;background:inherit;z-index:1}.backlogTable th:first-child{left:0}.backlogTable th:nth-child(2){left:125px}.backlogTable td:first-child{left:0}.backlogTable td:nth-child(2){left:125px}.backlogTable td{font-size:9px;padding:7px 8px;text-align:right;border-bottom:1px solid #e5ebef;color:#465e73;white-space:nowrap}.backlogTable tr.subtotal td{font-weight:900;background:#f0f5f8}.backlogTable .today{background:#e8f3fb}.backlogTable .late{color:#a55a63}.backlogTable .future{color:#57799a}
.mapShell{height:470px;border-radius:16px;background:linear-gradient(145deg,#edf4ef,#e9f0f4);border:1px solid #d6e2e5;overflow:hidden;position:relative}.mapShell svg{width:100%;height:100%;display:block}.mapGrid line{stroke:#d5e0e2;stroke-width:.7}.mapPoint{stroke:white;stroke-width:1.4;opacity:.83}.mapLabel{font-size:10px;fill:#75909b;font-weight:700}.mapNote{position:absolute;left:13px;bottom:12px;background:rgba(255,255,255,.88);border:1px solid #d6e1e6;border-radius:10px;padding:7px 9px;font-size:8.8px;color:#6f8491;font-weight:700}.mapControls{display:flex;gap:8px;align-items:center}.mapControls select{border:1px solid #d6e8e0;background:#fff;border-radius:9px;padding:6px 9px;color:#526f86;font-size:9px;font-weight:800}
.placeholderView{background:white;border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:var(--shadow);min-height:320px;display:grid;place-items:center;text-align:center}.placeholderView h2{margin:0 0 8px;font-size:20px}.placeholderView p{max-width:620px;color:var(--muted);font-size:11px;line-height:1.6;font-weight:650}.phaseBadge{display:inline-flex;padding:6px 9px;border-radius:999px;background:#edf4fa;border:1px solid #d3e1ec;color:#5c7891;font-size:9px;font-weight:900;margin-top:8px}
.section{display:none}.section.active{display:block}.mobileShade{display:none}
@media(max-width:1150px){.app{grid-template-columns:235px minmax(0,1fr)}.kpis{grid-template-columns:repeat(3,1fr)}.filters{grid-template-columns:repeat(3,1fr)}.g2,.g2equal{grid-template-columns:1fr}.relationGrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.app{display:block}.sidebar{position:fixed;left:-285px;z-index:50;width:274px;transition:.2s}.sidebar.open{left:0}.mobileShade.show{display:block;position:fixed;inset:0;background:rgba(20,42,61,.35);z-index:40}.menuBtn{display:block}.topbar{padding:0 14px}.topright .pill:not(.live){display:none}.page{padding:18px 13px 30px}.hero{align-items:flex-start;flex-direction:column}.filters{grid-template-columns:1fr 1fr}.kpis{grid-template-columns:1fr 1fr}.relationGrid{grid-template-columns:1fr 1fr}.g2,.g2equal{grid-template-columns:1fr}}

/* ===== V7 · Volumen de instalaciones + lógica temporal ===== */
.time-context{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 14px}.time-context .time-chip{background:#fff;border:1px solid var(--pes-border);border-radius:14px;padding:11px 13px;min-height:68px;box-shadow:0 8px 20px rgba(30,42,68,.04)}.time-context .time-chip small{display:block;color:var(--pes-muted);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.55px}.time-context .time-chip b{display:block;color:var(--pes-navy);font-size:14px;margin-top:6px;line-height:1.15}.time-context .time-chip span{display:block;color:#718399;font-size:9px;margin-top:4px;line-height:1.3}
#view-bitacora .bitFilterRow.three{grid-template-columns:repeat(3,1fr)}#view-bitacora .bitTimeContext{margin-top:-2px}.statusBadge.Calendarizada{background:#EEF1F5!important;color:#66778A!important}.heat.calendar{background:#EEF1F5;color:#66778A}.s-calendar{background:#c1d2cb}
#view-volume .volume-hero{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);align-items:center;gap:22px;margin-bottom:14px;padding:18px 20px;border:1px solid var(--pes-border);border-radius:20px;background:linear-gradient(135deg,#FFFFFF 0%,#F5F8FC 55%,#f2edf5 100%);box-shadow:var(--shadow)}#view-volume .volume-brand b{display:block;color:var(--pes-navy);font-size:16px;font-weight:950;letter-spacing:.5px}#view-volume .volume-brand span{display:block;color:var(--pes-lav);font-size:10px;font-weight:900;letter-spacing:1.5px;margin-top:3px}#view-volume .volume-title h1{margin:0;color:var(--pes-navy);font-size:32px;letter-spacing:-.7px}#view-volume .volume-title p{margin:5px 0 0;color:var(--pes-muted);font-size:11px;font-weight:700}#view-volume .volume-title-line{height:7px;border-radius:999px;background:linear-gradient(90deg,var(--pes-cyan),var(--pes-blue),var(--pes-lav));margin-top:11px}
#view-volume .volumeFilters{grid-template-columns:repeat(5,minmax(135px,1fr)) auto;margin-bottom:14px}#view-volume .volumeFilters select{height:41px;border-radius:11px}#view-volume .volumeFilters .reset{height:41px;border-radius:11px}
.vol-period-head{display:grid;grid-template-columns:minmax(250px,1fr) auto;gap:14px;align-items:center;margin:15px 0 12px}.vol-period-pill{display:inline-flex;align-items:center;gap:16px;width:max-content;min-width:285px;padding:11px 16px 11px 19px;border-radius:18px;background:linear-gradient(135deg,var(--pes-blue-bg),#f2edf5);border:1px solid #C8D7E5;color:var(--pes-navy)}.vol-period-pill .clock{font-size:30px}.vol-period-pill small{display:block;color:#687B90;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.5px}.vol-period-pill b{display:block;font-size:30px;line-height:1;margin-top:3px}.vol-period-pill span{display:block;font-size:9px;color:#6C8094;margin-top:4px}.vol-total-orb{min-width:155px;text-align:center;background:var(--pes-cyan-bg);border:3px solid var(--pes-lav);border-radius:999px;padding:8px 18px;box-shadow:0 8px 18px rgba(30,42,68,.08)}.vol-total-orb small{display:block;color:#5E7881;font-size:10px}.vol-total-orb b{display:block;color:var(--pes-navy);font-size:29px;line-height:1.05;margin-top:2px}.vol-total-orb span{font-size:9px;color:#6C7D8F}
#view-volume .volKpis{grid-template-columns:repeat(6,1fr)!important}.vol-main-card .cardHead,.vol-status-card .cardHead,.vol-unconfirmed-card .cardHead,.vol-yesterday-card .cardHead,.vol-temporal-card .cardHead{background:var(--pes-navy)!important;border-bottom:0!important}.vol-main-card .cardHead h2,.vol-status-card .cardHead h2,.vol-unconfirmed-card .cardHead h2,.vol-yesterday-card .cardHead h2,.vol-temporal-card .cardHead h2{color:#fff!important}.vol-main-card .cardHead p,.vol-status-card .cardHead p,.vol-unconfirmed-card .cardHead p,.vol-yesterday-card .cardHead p,.vol-temporal-card .cardHead p{color:#C5D1DE!important}.vol-main-card .cardHead .tag,.vol-status-card .cardHead .tag,.vol-unconfirmed-card .cardHead .tag,.vol-yesterday-card .cardHead .tag,.vol-temporal-card .cardHead .tag{background:rgba(255,255,255,.10)!important;border-color:rgba(255,255,255,.18)!important;color:#E8EEF5!important}
.vol-chart-shell{padding:16px 18px 10px;background:#f1f7f4;border:1px solid #d7e8e0;border-radius:16px}.vol-chart-legend{display:flex;gap:16px;justify-content:center;margin-bottom:8px;color:#586B7D;font-size:9px;font-weight:850}.vol-chart-legend i{display:inline-block;width:11px;height:8px;border-radius:2px;margin-right:5px}.vol-plot{height:280px;display:flex;align-items:flex-end;justify-content:space-around;gap:18px;padding:25px 20px 35px;border-left:1px solid #a9c4bb;border-bottom:1px solid #a9c4bb;background:repeating-linear-gradient(to top,transparent 0,transparent 43px,rgba(118,133,148,.20) 44px,rgba(118,133,148,.20) 45px);overflow:hidden}.vol-bar-group{height:100%;flex:1;max-width:135px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}.vol-bar{width:min(78px,72%);display:flex;flex-direction:column-reverse;border:1px solid #5F91B4;border-radius:4px 4px 0 0;overflow:visible;min-height:2px}.vol-seg{position:relative;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;color:#24404B;min-height:2px}.vol-seg.confirmed{background:#b5dfc5}.vol-seg.unconfirmed{background:#9fc8d7}.vol-seg em{font-style:normal;position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap}.vol-seg.confirmed em{top:7px}.vol-seg.unconfirmed em{top:2px;color:#315F69}.vol-bar-total{position:absolute;top:-21px;color:var(--pes-navy);font-size:11px;font-weight:900}.vol-bar-name{position:absolute;bottom:-28px;text-align:center;width:145px;color:#53677B;font-size:8.5px;font-weight:800;line-height:1.15}.vol-chart-note{margin-top:9px;text-align:center;color:#718398;font-size:9px}
#view-volume .matrix th,#view-volume .detail th{background:var(--pes-navy)!important;color:#fff!important}#view-volume .matrix td,#view-volume .detail td{background:#fff;color:var(--pes-text)}#view-volume .matrix tbody tr:nth-child(even) td,#view-volume .detail tbody tr:nth-child(even) td{background:#f6faf7}#view-volume .matrix tr.grand td{background:#e4f0eb!important;color:var(--pes-navy)!important}.volStatusCell{font-weight:850}.volStatusCell.assigned{background:var(--pes-blue-bg)!important;color:#5f9091!important}.volStatusCell.done{background:var(--pes-green-bg)!important;color:#527d69!important}.volStatusCell.pending{background:var(--pes-amber-bg)!important;color:#816833!important}.volStatusCell.cancel{background:var(--pes-red-bg)!important;color:#925b67!important}.volStatusCell.stop{background:var(--pes-lav-bg)!important;color:#716a91!important}
.vol-temporal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.vol-period-card{border:1px solid var(--pes-border);border-radius:15px;padding:13px;background:linear-gradient(180deg,#fff,#F8FAFC)}.vol-period-card .pname{font-size:10px;font-weight:900;color:var(--pes-navy);text-transform:uppercase;letter-spacing:.5px}.vol-period-card .pnum{font-size:25px;font-weight:900;color:var(--pes-navy);margin:7px 0 6px}.vol-period-card .pline{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:9px;color:#65798D;margin-top:4px}.vol-period-card .pline b{color:#455D74}.vol-period-card.active{border-color:#AFC5D9;background:linear-gradient(135deg,var(--pes-blue-bg),#F3F0F9)}
.yesterday-head{display:flex;align-items:center;justify-content:center;margin:20px 0 12px}.yesterday-title{display:inline-flex;align-items:center;justify-content:center;min-width:280px;border-radius:17px;padding:11px 22px;background:linear-gradient(135deg,var(--pes-blue),var(--pes-lav));color:#fff;font-size:25px;font-weight:900;letter-spacing:-.4px}.yday-chart{display:flex;align-items:flex-end;justify-content:space-around;gap:18px;height:240px;padding:26px 24px 35px;background:#f1f7f4;border:1px solid #d7e8e0;border-radius:16px;border-bottom:1px solid #a9c4bb}.yday-group{height:100%;flex:1;max-width:140px;display:flex;align-items:flex-end;justify-content:center;position:relative}.yday-bar{width:min(80px,70%);background:var(--pes-green);border:1px solid #668B69;border-radius:4px 4px 0 0;position:relative}.yday-bar b{position:absolute;top:8px;left:0;right:0;text-align:center;color:#38533C;font-size:12px}.yday-name{position:absolute;bottom:-28px;width:150px;text-align:center;color:#53677B;font-size:8.5px;font-weight:800}.yday-total{display:flex;justify-content:center;margin:-5px 0 12px}.yday-total .vol-total-orb{min-width:140px}.closurePct{font-weight:900}.closure-good{background:var(--pes-green-bg)!important;color:#527d69!important}.closure-mid{background:var(--pes-amber-bg)!important;color:#816833!important}.closure-low{background:var(--pes-red-bg)!important;color:#925b67!important}
.temporalFlag{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:8px;font-weight:900}.temporalFlag.Hoy{background:var(--pes-cyan-bg);color:#4D747B}.temporalFlag.Ayer{background:var(--pes-blue-bg);color:#5f9091}.temporalFlag.Antier{background:var(--pes-lav-bg);color:#716a91}.temporalFlag.No-Hoy{background:#EEF1F5;color:#66778A}.dateStrong{font-weight:850;color:var(--pes-navy)}
@media(max-width:1200px){.time-context{grid-template-columns:repeat(3,1fr)}#view-volume .volumeFilters{grid-template-columns:repeat(3,1fr)}#view-volume .volume-hero{grid-template-columns:1fr}.vol-temporal-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.time-context{grid-template-columns:1fr 1fr}#view-bitacora .bitFilterRow.three{grid-template-columns:1fr}#view-volume .volumeFilters{grid-template-columns:1fr 1fr}.vol-period-head{grid-template-columns:1fr}.vol-total-orb{justify-self:start}.vol-plot{gap:5px;padding-left:4px;padding-right:4px}.vol-bar-name{width:75px;font-size:7px}.vol-temporal-grid{grid-template-columns:1fr}.yday-chart{gap:5px;padding-left:6px;padding-right:6px}.yday-name{width:80px;font-size:7px}}


/* ===== V8 · Volumen visual + BL con colores ===== */
#view-volume .vol-cut-note{margin:-2px 0 12px;color:#5D7185;font-size:11px;font-weight:700}#view-volume .vol-main-card,#view-volume .vol-status-card{border:2px solid #80b8ae!important;border-radius:20px!important;overflow:hidden!important}#view-volume .vol-main-card .cardBody{padding:18px 20px!important;background:#edf5f1!important}#view-volume .vol-status-card .tableWrap{background:#edf5f1!important;padding:0}#view-volume .vol-status-card .matrix{min-width:820px}#view-volume .vol-status-card .matrix th{background:#edf5f1!important;color:#3D4D5A!important;border-bottom:1px solid #b2d6cc!important;text-transform:none!important;font-size:12px}#view-volume .vol-status-card .matrix td{font-size:12px;border-bottom:1px solid #b5d4ca!important}#view-volume .vol-status-card .matrix tbody tr td:first-child{background:#D7D7D7!important;color:#33495E!important;font-weight:800}#view-volume .vol-status-card .matrix td.total,#view-volume .vol-status-card .matrix th.total{background:#edf5f1!important;color:#263d50!important;font-weight:900}#view-volume .vol-status-card .matrix .volStatusCell.assigned{background:#b1d8ce!important;color:#254F63!important}#view-volume .vol-status-card .matrix .volStatusCell.pending{background:#a5d3c9!important;color:#1F4B56!important}#view-volume .vol-status-card .matrix .volStatusCell.done{background:#A8C7CF!important;color:#355B61!important}#view-volume .vol-status-card .matrix .volStatusCell.cancel{background:#dae9e3!important;color:#596B74!important}#view-volume .vol-status-card .matrix .volStatusCell.stop{background:#e8efe9!important;color:#63707A!important}#view-volume .vol-status-card .matrix tr.grand td{background:#edf5f1!important;color:#263d50!important;font-weight:900}#view-volume .volKpis{grid-template-columns:repeat(6,1fr)!important;margin-top:8px}#view-volume .volKpis .kpi{background:#fff;border:1px solid var(--pes-border);box-shadow:0 8px 18px rgba(30,42,68,.06)}
#view-backlog .card{border:2px solid #80b8ae!important;border-radius:20px!important;overflow:hidden!important}#view-backlog .cardHead{background:var(--pes-navy)!important;border-bottom:0!important}#view-backlog .cardHead h2,#view-backlog .cardHead p{color:#fff!important}#view-backlog .cardHead p{opacity:.82}#view-backlog .cardHead .tag{background:rgba(255,255,255,.1)!important;border-color:rgba(255,255,255,.18)!important;color:#E8EEF5!important}.backlogTable{width:100%;border-collapse:collapse;min-width:1220px}.backlogTable th{font-size:11px;text-transform:none;color:#30494d;background:#E8EDF3;padding:8px;border-bottom:1px solid #a3ccc5;text-align:center}.backlogTable td{font-size:11px;padding:7px 8px;text-align:center;border-bottom:1px solid #afcfc6;color:#30494d;white-space:nowrap}.backlogTable th:nth-child(-n+2),.backlogTable td:nth-child(-n+2){text-align:left;position:sticky;z-index:1}.backlogTable th:first-child{left:0;background:#a1cdc5;color:#355d65}.backlogTable th:nth-child(2){left:120px;background:#cae3dd;color:#274A68}.backlogTable td:first-child{left:0;background:#a1cdc5;color:#355d65;font-weight:900}.backlogTable td:nth-child(2){left:120px;background:#dce9e4;color:#3C4B58}.backlogTable td.totalCell,.backlogTable th.totalCol{background:#cde9df!important;color:#355d65!important;font-weight:900}.backlogTable .bg-old1{background:#dfa2aa!important;color:#5A171B!important}.backlogTable .bg-old2{background:#dfa2aa!important;color:#5A171B!important}.backlogTable .bg-old3{background:#C1C69C!important}.backlogTable .bg-current{background:#b9ddcc!important}.backlogTable .bg-future1{background:#e3f1ec!important}.backlogTable .bg-future2{background:#e7f3ef!important}.backlogTable .bg-future3{background:#edf6f2!important}.backlogTable .bg-future4{background:#eef7f3!important}.backlogTable tr.subtotal td{font-weight:900}.backlogTable tr.subtotal td:first-child{background:#a1cdc5!important}.backlogTable tr.subtotal td:nth-child(2){background:#CFE0EF!important}.backlogTable .empty{color:#8092A3}

/* ===== V9 · Volumen de instalaciones: Total OS + interactividad ===== */
#view-volume .vol-period-head{
  display:grid!important;
  grid-template-columns:minmax(280px,1fr) auto minmax(280px,1fr)!important;
  align-items:center!important;
  gap:18px!important;
}
#view-volume .vol-period-pill{grid-column:1!important;justify-self:start!important}
#view-volume .vol-total-orb{grid-column:2!important;justify-self:center!important;min-width:176px!important;padding:10px 24px!important}
#view-volume .vol-total-orb small{font-size:10px!important;font-weight:800!important;text-transform:none!important}
#view-volume .vol-total-orb b{font-size:34px!important}
#view-volume .vol-total-orb span{font-size:9px!important}
#view-volume .vol-period-pill small{letter-spacing:.55px!important;font-weight:950!important;text-transform:uppercase!important}
#view-volume .vol-cut-note{display:none!important}
#view-volume .time-chip span.clean-note{display:none!important}
#view-volume .time-chip.time-simple span{display:none!important}
#view-volume .time-chip.time-simple b{margin-top:4px!important}
#view-volume .vol-main-card .cardHead p{font-size:10px!important}
#view-volume .vol-status-card .cardHead p{font-size:10px!important}
#view-volume .vol-chart-legend{gap:10px;flex-wrap:wrap}
#view-volume .vol-chart-legend button{
  appearance:none;border:1px solid transparent;background:transparent;color:#52677A;
  border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900;cursor:pointer;
  transition:.16s ease;display:inline-flex;align-items:center;gap:5px
}
#view-volume .vol-chart-legend button:hover{background:#fff;border-color:#D1DCE6;transform:translateY(-1px)}
#view-volume .vol-chart-legend button.active{background:#fff;border-color:#97B4D1;box-shadow:0 5px 12px rgba(30,42,68,.10);color:var(--pes-navy)}
#view-volume .vol-chart-legend button.dimmed{opacity:.35}
#view-volume .vol-chart-legend i{margin:0!important}
#view-volume .vol-bar-group{cursor:pointer;transition:.18s ease}
#view-volume .vol-bar-group:hover{transform:translateY(-3px)}
#view-volume .vol-bar-group.dimmed{opacity:.28;filter:saturate(.65)}
#view-volume .vol-bar-group.selected .vol-bar-name{color:var(--pes-navy);font-weight:950}
#view-volume .vol-bar{border:1px solid #6A8DAA!important;background:#E9EEF3;box-shadow:0 3px 8px rgba(30,42,68,.08)}
#view-volume .vol-status-seg{position:relative;display:flex;align-items:center;justify-content:center;min-height:2px;cursor:pointer;transition:.14s ease}
#view-volume .vol-status-seg:hover{filter:brightness(.96);outline:2px solid rgba(30,42,68,.18);outline-offset:-2px;z-index:2}
#view-volume .vol-status-seg b{font-size:10px;color:#213B4B;text-shadow:0 1px 0 rgba(255,255,255,.35)}
#view-volume .vol-status-seg.Asignada{background:#abd5cd}
#view-volume .vol-status-seg.Pendiente{background:#edcd8b}
#view-volume .vol-status-seg.Terminada{background:#b5dfc5}
#view-volume .vol-status-seg.Cancelada{background:#dba5ab}
#view-volume .vol-status-seg.Detenida{background:#c6bfda}
#view-volume .vol-bar-total{top:-22px!important;font-size:12px!important}
#view-volume .vol-status-card .matrix th{cursor:pointer;user-select:none;transition:.14s ease}
#view-volume .vol-status-card .matrix th:hover{background:#DDE6EF!important;color:var(--pes-navy)!important}
#view-volume .vol-status-card .matrix td.interactive-cell{cursor:pointer;transition:.14s ease;position:relative}
#view-volume .vol-status-card .matrix td.interactive-cell:hover{filter:brightness(.96);box-shadow:inset 0 0 0 2px rgba(30,42,68,.14)}
#view-volume .vol-status-card .matrix tr.vol-row{transition:.14s ease}
#view-volume .vol-status-card .matrix tr.vol-row.dimmed{opacity:.32}
#view-volume .vol-status-card .matrix tr.vol-row.selected td:first-child{box-shadow:inset 5px 0 0 #5c8f8c}
#view-volume .vol-status-card .matrix td.selected-cell{outline:3px solid #5c8f8c;outline-offset:-3px;font-weight:950!important}
#view-volume .vol-status-card .matrix th .sort-arrow{font-size:9px;margin-left:4px;opacity:.65}
#view-volume .vol-interaction{
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;
  background:linear-gradient(90deg,#e6f2ec,#F3F0F9);border-top:1px solid #d2e4de;color:#52687E;font-size:10px;font-weight:750
}
#view-volume .vol-interaction b{color:var(--pes-navy);font-size:11px}
#view-volume .vol-interaction button{border:1px solid #B8C9DA;background:#fff;color:#4E6680;border-radius:999px;padding:6px 10px;font-size:9px;font-weight:900;cursor:pointer}
#view-volume .vol-interaction button:hover{background:#f8fcf9}
#view-volume .vol-detail-os{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
#view-volume .vol-detail-os span{background:#fff;border:1px solid #D3DEE8;border-radius:999px;padding:4px 7px;font-size:9px;color:#576E84}
@media(max-width:900px){
  #view-volume .vol-period-head{grid-template-columns:1fr!important}
  #view-volume .vol-period-pill,#view-volume .vol-total-orb{grid-column:1!important;justify-self:start!important}
}


/* ===== V12 · Mapa real interactivo ===== */
#view-heatmap .mapShell{height:auto!important;background:#edf4f2!important;border:1px solid #d5e5df!important;border-radius:18px!important;overflow:hidden!important;position:relative!important}
#view-heatmap .leafletMap{height:560px;width:100%;background:#E7EEF5}.mapShell{position:relative}.mapBaseError{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:1000;background:#F8E8EC;border:1px solid #E2B1BC;color:#975567;padding:8px 12px;border-radius:10px;font-size:10px;font-weight:800;box-shadow:0 6px 18px rgba(30,42,68,.12)}
#view-heatmap .leaflet-container{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#243a4b}
#view-heatmap .leaflet-popup-content-wrapper{border-radius:14px;box-shadow:0 12px 28px rgba(30,42,68,.18)}
#view-heatmap .leaflet-popup-content{margin:12px 14px;min-width:210px;font-size:11px;line-height:1.45}
#view-heatmap .leaflet-popup-content b{color:#263d50;font-size:12px}
#view-heatmap .mapModeButtons{display:flex;gap:6px;align-items:center}
#view-heatmap .mapModeButtons button{border:1px solid #d5e5df;background:#fff;color:#52677B;border-radius:999px;padding:6px 10px;font-size:9px;font-weight:900;cursor:pointer}
#view-heatmap .mapModeButtons button.active{background:#263d50;color:#fff;border-color:#263d50}
#view-heatmap .mapNote{z-index:500;left:12px;bottom:12px;background:rgba(255,255,255,.94)}
#view-heatmap .leaflet-control-attribution{font-size:8px}
#view-heatmap .leaflet-control-zoom a{color:#263d50}#view-heatmap .maplibregl-map{font:inherit}#view-heatmap .maplibregl-canvas{outline:none}
.map-fallback{height:560px;display:grid;place-items:center;text-align:center;padding:30px;color:#6e8589;background:linear-gradient(135deg,#edf4f2,#e4f0eb)}
.map-fallback b{display:block;color:#263d50;font-size:16px;margin-bottom:6px}


/* ===== V20 · Identidad Región Sureste + logo compartido con PES ===== */
.ops-brand-strip{background:linear-gradient(180deg,#ffffff 0%,#f7f9fc 100%);border-bottom:1px solid #d7e1ec;box-shadow:0 5px 18px rgba(30,42,68,.05)}
.ops-brand-strip-inner{max-width:1720px;margin:0 auto;min-height:86px;padding:12px 26px;display:flex;align-items:center;gap:16px}
.ops-brand-strip-line{height:2px;flex:1;background:linear-gradient(90deg,rgba(108,170,178,.16),rgba(111,152,190,.72),rgba(141,130,179,.20));border-radius:999px}
.ops-brand-image-shell{width:112px;height:60px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.ops-brand-drive-logo{display:block;max-width:112px;max-height:60px;object-fit:contain;opacity:0;transition:opacity .18s ease}.ops-brand-drive-logo.ready{opacity:1}
.ops-brand-logo-fallback{width:58px;height:58px;border-radius:16px;background:linear-gradient(135deg,#263d50,#5c8f8c);position:absolute;display:grid;place-items:center;color:#fff;font-weight:950;letter-spacing:.5px}.ops-brand-logo-fallback:after{content:'OS'}.ops-brand-logo-fallback.hidden{display:none}
.ops-brand-title{display:flex;flex-direction:column;gap:2px;min-width:220px}.ops-brand-title b{font-size:18px;letter-spacing:.2px;color:#263d50}.ops-brand-title span{font-size:11px;font-weight:900;letter-spacing:1.4px;color:#60748b}
.brandmark.logoBrandMark{overflow:hidden;background:#fff;border-color:rgba(255,255,255,.28);padding:3px}.brandmark.logoBrandMark img{width:100%;height:100%;object-fit:contain;display:block;border-radius:9px}.brandmark.logoBrandMark .miniLogoFallback{display:grid;place-items:center;width:100%;height:100%;font-size:12px;font-weight:950;color:#fff;background:linear-gradient(135deg,#263d50,#5c8f8c);border-radius:9px}
@media(max-width:760px){.ops-brand-strip-inner{padding:9px 14px;min-height:70px;gap:10px}.ops-brand-image-shell{width:78px;height:48px}.ops-brand-drive-logo{max-width:78px;max-height:48px}.ops-brand-title{min-width:0}.ops-brand-title b{font-size:14px}.ops-brand-title span{font-size:9px}.ops-brand-strip-line{display:none}}



/* =====================================================================
   V5 · IDENTIDAD PROYECTOS ESPECIALES · PALETA V58 PASTEL EJECUTIVA
   Aplicada a Operaciones Sureste
   ===================================================================== */
:root{
  --pes-navy:#263d50;
  --pes-navy-soft:#344e60;
  --pes-text:#243a4b;
  --pes-muted:#6e8589;
  --pes-border:#d5e5df;
  --pes-page:#edf4f2;
  --pes-panel:#e4f0eb;
  --pes-white:#FFFFFF;
  --pes-blue:#8fbfb8;
  --pes-blue-bg:#e1f1ed;
  --pes-green:#8abbaa;
  --pes-green-bg:#e0f0e5;
  --pes-red:#dba5ab;
  --pes-red-bg:#f8e7e9;
  --pes-lav:#aca0c9;
  --pes-lav-bg:#EEEAF6;
  --pes-cyan:#87c1bb;
  --pes-cyan-bg:#E5F1F2;
  --pes-amber:#B58B3E;
  --pes-amber-bg:#F8F0DE;
  --bg:var(--pes-page);
  --card:var(--pes-white);
  --ink:var(--pes-text);
  --muted:var(--pes-muted);
  --line:var(--pes-border);
  --navy:var(--pes-navy);
  --blue:var(--pes-blue);
  --blue2:var(--pes-blue);
  --blue3:var(--pes-blue-bg);
  --sky:var(--pes-page);
  --green:var(--pes-green);
  --greenbg:var(--pes-green-bg);
  --amber:var(--pes-amber);
  --amberbg:var(--pes-amber-bg);
  --red:var(--pes-red);
  --redbg:var(--pes-red-bg);
  --violet:var(--pes-lav);
  --violetbg:var(--pes-lav-bg);
  --cyan:var(--pes-cyan);
  --shadow:0 12px 28px rgba(30,42,68,.07);
}
html,body{background:
  radial-gradient(circle at 7% 4%,rgba(141,130,179,.12),transparent 24%),
  radial-gradient(circle at 95% 7%,rgba(108,170,178,.12),transparent 24%),
  linear-gradient(180deg,#f6faf7 0%,var(--pes-page) 100%)!important;color:var(--pes-text)!important}

/* Navegación: único bloque oscuro, como PES */
.sidebar{background:linear-gradient(180deg,var(--pes-navy) 0%,#253650 100%)!important;border-right:1px solid rgba(255,255,255,.08)!important;box-shadow:8px 0 28px rgba(30,42,68,.08)!important}
.brandmark{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.20)!important;color:#fff!important}
.navtop{color:#EAF0F7!important}.navtop.active{background:rgba(111,152,190,.18)!important}.navicon{border-color:#C7D5E4!important}
.navsection{color:#9FB0C4!important}.subnav button{color:#CAD6E3!important}.subnav button:hover{background:rgba(111,152,190,.13)!important;color:#fff!important}.subnav button.active{background:linear-gradient(90deg,rgba(111,152,190,.30),rgba(141,130,179,.18))!important;color:#fff!important;box-shadow:inset 3px 0 0 var(--pes-cyan)!important}.sidefoot{background:rgba(255,255,255,.045)!important;border-color:rgba(255,255,255,.09)!important;color:#AFC0D2!important}

/* Barra superior */
.topbar{background:rgba(248,250,252,.96)!important;border-bottom:1px solid var(--pes-border)!important;box-shadow:0 4px 18px rgba(30,42,68,.04)!important}.crumb b{color:var(--pes-navy)!important}.crumb span{color:var(--pes-muted)!important}.pill{background:#fff!important;border-color:var(--pes-border)!important;color:#52667B!important}.pill.live{background:var(--pes-cyan-bg)!important;border-color:#C3DDE0!important;color:#4E777D!important}.dotlive{background:var(--pes-green)!important}
.page{max-width:1720px!important;padding-top:24px!important}

/* Encabezado Bitácora estilo PES */
#view-bitacora .bitTitleWrap{grid-template-columns:minmax(360px,.9fr) minmax(0,1.1fr)!important;gap:22px!important;align-items:center!important;margin-bottom:20px!important;padding:18px 20px!important;border:1px solid var(--pes-border)!important;border-radius:20px!important;background:linear-gradient(135deg,#FFFFFF 0%,#F5F8FC 52%,#f2edf5 100%)!important;box-shadow:var(--shadow)!important}
#view-bitacora .bitTitleBrand{gap:16px!important;align-items:center!important}
#view-bitacora .bitBrandWord{display:flex!important;flex-direction:column!important;gap:3px!important;color:var(--pes-navy)!important;line-height:1!important;letter-spacing:0!important}
#view-bitacora .bitBrandWord strong{font-size:18px!important;font-weight:950!important;letter-spacing:.5px!important;color:var(--pes-navy)!important}
#view-bitacora .bitBrandWord span{font-size:11px!important;font-weight:900!important;letter-spacing:1.7px!important;color:var(--pes-lav)!important}
#view-bitacora .bitUpdateBox{background:var(--pes-blue-bg)!important;color:var(--pes-navy)!important;border:1px solid #C9D9E8!important;border-radius:14px!important;box-shadow:none!important;padding:10px 14px!important}
#view-bitacora .bitUpdateBox span{color:#61758C!important;font-size:9px!important}#view-bitacora .bitUpdateBox b{color:var(--pes-navy)!important;font-size:12px!important}
#view-bitacora .bitTitleMain h1{color:var(--pes-navy)!important;font-size:31px!important;font-weight:900!important;text-align:left!important;letter-spacing:-.7px!important}
#view-bitacora .bitTitleBar{height:7px!important;border-radius:999px!important;background:linear-gradient(90deg,var(--pes-cyan),var(--pes-blue),var(--pes-lav))!important;box-shadow:none!important;margin-top:11px!important}

/* Hoy + filtros */
#view-bitacora .bitTop{grid-template-columns:minmax(400px,.95fr) minmax(500px,1.05fr)!important;gap:18px!important}
#view-bitacora .bitDayCard{min-height:70px!important;max-width:300px!important;border-radius:17px!important;background:linear-gradient(135deg,var(--pes-blue-bg),#f2edf5)!important;color:var(--pes-navy)!important;border:1px solid #C7D6E5!important;box-shadow:none!important;padding-left:18px!important}
#view-bitacora .bitDayText small{color:#687B90!important}#view-bitacora .bitDayText b{font-size:34px!important;color:var(--pes-navy)!important}#view-bitacora .bitDayIcon{height:70px!important;width:67px!important;background:rgba(141,130,179,.12)!important;border-left:1px solid #D8D0E9!important;font-size:31px!important}
#view-bitacora .bitFilterPills{gap:10px!important}.bitFilterPills .f label{color:var(--pes-muted)!important;margin-left:4px!important}
#view-bitacora .bitFilterPills .f select,#view-bitacora .bitFilterPills .f input{height:43px!important;border-radius:12px!important;border:1px solid var(--pes-border)!important;background:#fff!important;color:var(--pes-text)!important;box-shadow:none!important;padding:0 13px!important}
#view-bitacora .bitFilterPills .f input::placeholder{color:#91A0AF!important}.bitFilterPills .f select option{color:var(--pes-text)!important}
#view-bitacora .bitFilterPills .reset{height:43px!important;border-radius:12px!important;border:1px solid #CAD8E5!important;background:var(--pes-blue-bg)!important;color:#466986!important;box-shadow:none!important;font-weight:850!important}

/* KPIs tipo Proyectos Especiales */
#view-bitacora .bitSummary{grid-template-columns:165px minmax(0,1fr)!important;gap:10px!important}
#view-bitacora .bitSummaryTotal,#view-bitacora .bitStatCard{background:#fff!important;border:1px solid var(--pes-border)!important;border-radius:16px!important;box-shadow:0 10px 24px rgba(30,42,68,.055)!important}
#view-bitacora .bitSummaryTotal{border-top:4px solid var(--pes-lav)!important;min-height:174px!important}#view-bitacora .bitSummaryTotal .label,#view-bitacora .bitStatCard .label{color:#566B81!important;font-size:12px!important;font-weight:850!important}#view-bitacora .bitSummaryTotal .num{color:var(--pes-navy)!important;font-size:48px!important;font-weight:900!important}#view-bitacora .bitSummaryTotal .mini,#view-bitacora .bitStatCard .mini{color:var(--pes-muted)!important}
#view-bitacora .bitStatCard{min-height:74px!important;overflow:hidden!important}#view-bitacora .bitStatCard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--pes-blue)}#view-bitacora .bitStatCard:nth-child(2):before{background:var(--pes-green)}#view-bitacora .bitStatCard:nth-child(3):before{background:var(--pes-amber)}#view-bitacora .bitStatCard:nth-child(4):before{background:var(--pes-red)}#view-bitacora .bitStatCard:nth-child(5):before{background:var(--pes-lav)}
#view-bitacora .bitStatCard .num{color:var(--pes-navy)!important;font-weight:900!important}#view-bitacora .bitStatCard .pct{background:#F0F4F8!important;color:#65788D!important}

/* Tarjetas generales: bordes suaves, encabezados navy */
.card{background:#fff!important;border:1px solid var(--pes-border)!important;border-radius:18px!important;box-shadow:var(--shadow)!important}
.cardHead{background:#f8fcf9!important;color:var(--pes-text)!important;border-bottom:1px solid var(--pes-border)!important}
.cardHead h2{color:var(--pes-navy)!important}.cardHead p{color:var(--pes-muted)!important}.cardHead .tag,.tag{background:var(--pes-blue-bg)!important;border-color:#CADBE8!important;color:#527391!important}
.cardBody,.tableWrap{background:#fff!important}

/* Bitácora: tablas protagonistas */
#view-bitacora .bitStatusCard,#view-bitacora .techProductCard{border:1px solid var(--pes-border)!important;background:#fff!important;overflow:hidden!important}
#view-bitacora .bitStatusCard .cardHead,#view-bitacora .techProductCard .cardHead{min-height:49px!important;background:var(--pes-navy)!important;border-bottom:0!important;padding:10px 18px!important;justify-content:flex-start!important;text-align:left!important}
#view-bitacora .bitStatusCard .cardHead h2,#view-bitacora .techProductCard .cardHead h2{font-size:18px!important;color:#fff!important;font-weight:900!important}
#view-bitacora .bitStatusCard .cardHead .tag,#view-bitacora .techProductCard .cardHead .tag{background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.17)!important;color:#E7EEF6!important;right:16px!important;padding:5px 9px!important;border-radius:999px!important}
#view-bitacora .bitStatusTable{background:#fff!important}
#view-bitacora .bitStatusTable th{background:#E9EFF5!important;color:#4D6176!important;border-bottom:1px solid #C7D2DD!important;font-weight:850!important}
#view-bitacora .bitStatusTable td{background:#fff!important;color:var(--pes-text)!important;border-bottom:1px solid #E1E7ED!important}
#view-bitacora .bitStatusTable tbody tr:nth-child(even) td{background:#F6F8FB!important}
#view-bitacora .bitStatusTable tbody tr:hover td{background:#edf4f2!important}
#view-bitacora .bitStatusTable td.total,#view-bitacora .bitStatusTable th.total{background:#EEF2F6!important;color:var(--pes-navy)!important;font-weight:900!important}
#view-bitacora .bitStatusTable tr.grand td{background:#e4f0eb!important;border-top:2px solid #AFC1D1!important;color:var(--pes-navy)!important}
#view-bitacora .heat.assigned{background:var(--pes-blue-bg)!important;color:#5f9091!important}#view-bitacora .heat.done{background:var(--pes-green-bg)!important;color:#527d69!important}#view-bitacora .heat.pending{background:var(--pes-amber-bg)!important;color:#816833!important}#view-bitacora .heat.cancel{background:var(--pes-red-bg)!important;color:#925b67!important}#view-bitacora .heat.stop{background:var(--pes-lav-bg)!important;color:#716a91!important}

/* Productividad técnica estilo tabla PES */
.techTable{background:#fff!important}.techTable thead th{background:var(--pes-navy)!important;color:#fff!important;border-right:1px solid #31435D!important;font-size:11.5px!important;letter-spacing:.2px!important}.techTable tbody td{background:#fff!important;color:var(--pes-text)!important;border-bottom:1px solid #E0E6EC!important;border-right:1px solid #E4E9EE!important}.techTable tbody tr:nth-child(even) td{background:#f6faf7!important}.techTable tbody tr:hover td{background:#edf4f2!important}.techTable .techPos{color:#6A7E91!important}.techTable .techName{color:var(--pes-navy)!important;font-weight:850!important}.techTable .techDone{background:var(--pes-cyan-bg)!important;color:#4B747B!important;font-size:14px!important;font-weight:900!important}.techTable tbody tr:nth-child(even) .techDone{background:#DDECEF!important}.shareBar{background:#DEE7EF!important}.shareBar i{background:linear-gradient(90deg,var(--pes-blue),var(--pes-lav))!important}.techShare b{color:#566B80!important}

/* Resto de Bitácora */
#view-bitacora .card:not(.bitStatusCard):not(.techProductCard) .cardHead{background:#e4f0eb!important;justify-content:flex-start!important;text-align:left!important}#view-bitacora .card:not(.bitStatusCard):not(.techProductCard) .cardHead h2{color:var(--pes-navy)!important;font-size:16px!important}#view-bitacora .card:not(.bitStatusCard):not(.techProductCard) .cardHead .tag{color:#56728D!important;background:#f8fcf9!important;border:1px solid #CAD6E2!important}
#view-bitacora .dbName,#view-bitacora .dbTotal{color:var(--pes-text)!important}.stack{background:#DEE7EF!important}.s-assigned{background:var(--pes-blue)!important}.s-done{background:var(--pes-green)!important}.s-pending{background:var(--pes-amber)!important}.s-cancel{background:var(--pes-red)!important}.s-stop{background:var(--pes-lav)!important}.bitInsight{background:#f8fcf9!important;border-color:#D7E1EA!important}.bitInsight b{color:var(--pes-navy)!important}.bitInsight span{color:var(--pes-muted)!important}
#view-bitacora .detail th{background:var(--pes-navy)!important;color:#fff!important;border-color:#31435D!important}#view-bitacora .detail td{background:#fff!important;color:var(--pes-text)!important;border-color:#E1E7ED!important}#view-bitacora .detail tbody tr:nth-child(even) td{background:#f6faf7!important}#view-bitacora .detail tbody tr:hover td{background:#edf4f2!important}#view-bitacora .pager{background:#f8fcf9!important;border-color:var(--pes-border)!important;color:var(--pes-muted)!important}#view-bitacora .pager button{background:var(--pes-navy)!important;color:#fff!important;border:1px solid var(--pes-navy)!important}
.statusBadge.Terminada{background:var(--pes-green-bg)!important;color:#527d69!important}.statusBadge.Pendiente{background:var(--pes-amber-bg)!important;color:#8D6A13!important}.statusBadge.Asignada{background:var(--pes-blue-bg)!important;color:#5f9091!important}.statusBadge.Cancelada{background:var(--pes-red-bg)!important;color:#925b67!important}.statusBadge.Detenida{background:var(--pes-lav-bg)!important;color:#716a91!important}

/* Homologación del resto de módulos de Operaciones */
.hero h1{color:var(--pes-navy)!important}.hero p{color:var(--pes-muted)!important}.heroBadge .big{background:var(--pes-navy)!important;color:#fff!important;box-shadow:0 8px 18px rgba(30,42,68,.14)!important}.filters{background:#fff!important;border-color:var(--pes-border)!important;box-shadow:var(--shadow)!important}.f label{color:var(--pes-muted)!important}.f select,.f input{background:#FBFCFE!important;border-color:var(--pes-border)!important;color:var(--pes-text)!important}.reset{background:var(--pes-blue-bg)!important;color:#4F708D!important;border-color:#C9D9E6!important}.kpi{background:#fff!important;border-color:var(--pes-border)!important;box-shadow:var(--shadow)!important}.kpi .lab{color:#4C6078!important}.kpi .val{color:var(--pes-navy)!important}.kpi .mini{color:var(--pes-muted)!important}.matrix th{background:var(--pes-navy)!important;color:#fff!important}.matrix td{color:var(--pes-text)!important;border-color:#E1E7ED!important}.matrix tbody tr:nth-child(even) td{background:#f6faf7}.matrix tbody tr:hover td{background:#edf4f2!important}

@media(max-width:1200px){#view-bitacora .bitTop{grid-template-columns:1fr!important}#view-bitacora .bitTitleWrap{grid-template-columns:1fr!important}#view-bitacora .bitTitleMain h1{text-align:left!important}}

/* V21 · Detenciones PE */
#view-detpe .detpeFilters{grid-template-columns:repeat(4,minmax(145px,1fr)) minmax(190px,1.2fr) auto;margin-bottom:14px}
#view-detpe .detpe-header-note{margin:-2px 0 14px;color:#5D7185;font-size:11px;font-weight:700}
#view-detpe .card{border:1px solid var(--pes-border)!important;background:#fff!important;overflow:hidden!important}
#view-detpe .cardHead{background:var(--pes-navy)!important;border-bottom:0!important;color:#fff!important}
#view-detpe .cardHead h2{color:#fff!important}
#view-detpe .cardHead .tag{background:rgba(255,255,255,.10)!important;border-color:rgba(255,255,255,.18)!important;color:#E8EEF5!important}
.detpeInsightGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.detpeInsight{padding:12px 14px;border-radius:14px;background:#f8fcf9;border:1px solid #D7E1EA}
.detpeInsight b{display:block;font-size:11px;color:var(--pes-navy);margin-bottom:4px}.detpeInsight span{display:block;font-size:10px;color:var(--pes-muted);line-height:1.45}
.detSlaLegend{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.detSlaLegend span{display:inline-flex;gap:6px;align-items:center;color:#677C91;font-size:9px;font-weight:800}.detSlaLegend i{width:8px;height:8px;border-radius:99px;display:inline-block}.detSlaLegend .ok{background:var(--pes-green)}.detSlaLegend .warn{background:var(--pes-amber)}.detSlaLegend .bad{background:var(--pes-red)}
.detSlaBadge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:8.5px;font-weight:900}
.detSlaBadge.ok{background:var(--pes-green-bg);color:#527d69}.detSlaBadge.warn{background:var(--pes-amber-bg);color:#816833}.detSlaBadge.bad{background:var(--pes-red-bg);color:#925b67}
.detAgeStrong{font-weight:900;color:var(--pes-navy)}
.detDistrictRow{display:grid;grid-template-columns:120px 1fr 44px;gap:10px;align-items:center;padding:4px 0;cursor:pointer}.detDistrictRow:hover .dbName{color:var(--pes-navy);font-weight:900}
.detDistrictRow .stack{height:14px}.detDistrictRow .dbTotal{font-size:10px;font-weight:900;color:var(--pes-navy)}
.detMatrixCell,.detMatrixType,.detMatrixDateHead,.detDistrictRow,.detDetailRow{cursor:pointer}
.detMatrixCell:hover,.detMatrixType:hover,.detMatrixDateHead:hover{box-shadow:inset 0 0 0 2px rgba(30,42,68,.18);filter:brightness(.98)}
.detDetailRow:hover td{background:#E8F0F7!important}
#view-detpe .matrix th{background:var(--pes-navy)!important;color:#fff!important;text-transform:none!important;font-size:11px!important}
#view-detpe .matrix td{font-size:10.5px!important}
#view-detpe .detail th{background:var(--pes-navy)!important;color:#fff!important;border-color:#31435D!important}
#view-detpe .detail td{background:#fff!important;color:var(--pes-text)!important;border-color:#E1E7ED!important}
#view-detpe .detail tbody tr:nth-child(even) td{background:#f6faf7!important}
#view-detpe .detail tbody tr:hover td{background:#edf4f2!important}
@media(max-width:1200px){#view-detpe .detpeFilters{grid-template-columns:repeat(3,1fr)}.detpeInsightGrid{grid-template-columns:1fr}.detDistrictRow{grid-template-columns:100px 1fr 36px}}
@media(max-width:760px){#view-detpe .detpeFilters{grid-template-columns:1fr 1fr}.detSlaLegend{gap:8px}}




/* V22 · Detenciones PE: campos reales y exportación por subsección */
#view-detpe .detpeCutBar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 15px;margin-bottom:10px;border:1px solid #C9D8E7;border-radius:15px;background:#fff;box-shadow:var(--shadow)}
#view-detpe .detpeCutBar>div{flex:1 1 310px;display:flex;flex-direction:column;gap:3px}#view-detpe .detpeCutBar b{font-size:12px;color:var(--pes-navy)}#view-detpe .detpeCutBar span{font-size:10px;color:var(--pes-muted)}
#view-detpe .detpeCutBar label{font-weight:850;font-size:10px;color:var(--pes-muted)}#view-detpe #detCutAt{height:37px;border:1px solid var(--pes-border);padding:6px 9px;border-radius:9px;color:var(--pes-navy)}#view-detpe #detCutNow{height:37px;align-self:auto}
#view-detpe .kpis{grid-template-columns:repeat(5,minmax(0,1fr))}#view-detpe .detpeEntryNote{padding:10px 14px;border-bottom:1px solid #CAD8E5;font-size:11px;color:#506980;background:#EFF5FA;line-height:1.5}
#view-detpe .detpeDetailTable{min-width:1240px}#view-detpe .detpeStartInput{min-width:176px;width:176px;border:1px solid #CDD9E5;border-radius:7px;padding:5px 7px;color:var(--pes-navy);font-size:10px;background:#fff}
#view-detpe .detpeEmpty{padding:18px;text-align:center;color:#607891;font-size:11px}
#view-detpe .detSlaBadge.unknown{background:#EFF2F6;color:#576B7E}#view-detpe .detSlaLegend .unknown,#view-detpe .s-unknown{background:#AFBECE}
#view-detpe .detpeInsightValue{display:block;margin-bottom:5px;font-size:15px;color:var(--pes-navy);line-height:1.3}
@media(max-width:1100px){#view-detpe .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){#view-detpe .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}#view-detpe .detpeCutBar>div{flex-basis:100%}}


/* Export buttons anchored to each subsection header, never over filters */
.section .card > .cardHead{position:relative!important;min-height:50px}
#view-detpe .card > .cardHead{padding-right:260px!important}
.section .card > .cardHead .cardHeadActions{position:absolute;right:12px;top:50%;transform:translateY(-50%);z-index:2;white-space:nowrap}
@media(max-width:760px){#view-detpe .card > .cardHead{padding-right:14px!important;padding-top:45px!important}.section .card > .cardHead .cardHeadActions{top:8px;right:12px;transform:none}}

/* V11 · navegación simplificada + interactividad total */
.compactOpsNav{margin-top:10px;display:grid;gap:5px}.compactOpsNav button{padding:12px 12px 12px 38px!important;font-size:12px!important}.sidebar .navsection{display:none!important}
.time-chip span{display:none!important}.time-chip{min-height:72px!important}.time-chip b{margin-top:5px!important}
#view-volume .vol-chart-note,#view-volume .vol-interaction{display:none!important}
.backlogTable .bg-old1,.backlogTable .bg-old2{background:#d99ba3!important;color:#54171C!important}.backlogTable .bg-old1:hover,.backlogTable .bg-old2:hover{background:#cc929c!important}
.bitMatrixCell,.bitMatrixType,.bitMatrixHead,.techInteractiveRow,.districtInteractive,.districtStatusSeg,.bitDetailRow,.vol-period-card,.volUnconfRow,.ydayInteractive,.ydayTableRow,.backInteractive,.mapPointInteractive,.mapInteractiveLegend [data-map-status]{cursor:pointer}
.bitMatrixCell:hover,.bitMatrixType:hover,.bitMatrixHead:hover{box-shadow:inset 0 0 0 2px rgba(30,42,68,.18);filter:brightness(.98)}
.techInteractiveRow:hover td,.bitDetailRow:hover td,.volUnconfRow:hover td,.ydayTableRow:hover td{background:#E8F0F7!important}.districtInteractive:hover .dbName{color:var(--pes-navy)!important;font-weight:900}.districtStatusSeg:hover{filter:brightness(.9);outline:2px solid #fff;outline-offset:-2px}.vol-period-card{transition:.16s ease}.vol-period-card:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(30,42,68,.10)}.ydayInteractive{transition:.16s ease}.ydayInteractive:hover{transform:translateY(-3px)}
.interactionActive{outline:3px solid #5c8f8c!important;outline-offset:-3px;font-weight:950!important}.techInteractiveRow.interactionActive td,.bitDetailRow.interactionActive td,.ydayTableRow.interactionActive td{background:#E5EEF7!important}.districtInteractive.interactionActive{outline:2px solid #5c8f8c;border-radius:10px;padding:2px}.districtStatusSeg.interactionActive{outline:3px solid #263d50!important;outline-offset:-3px}.backInteractive{transition:.12s ease}.backInteractive:hover{box-shadow:inset 0 0 0 2px rgba(30,42,68,.22)!important;filter:brightness(.96)}.backSelected{outline:3px solid #263d50!important;outline-offset:-3px}.mapPointInteractive{transition:.12s ease;transform-box:fill-box;transform-origin:center}.mapPointInteractive:hover{transform:scale(1.55);stroke:#fff;stroke-width:2}.mapPointInteractive.selected{transform:scale(1.75);stroke:#263d50;stroke-width:2.5}.mapInteractiveLegend [data-map-status]:hover{font-weight:900;color:var(--pes-navy)}
.interaction-result{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;background:linear-gradient(90deg,#e6f2ec,#F3F0F9);border-top:1px solid #d2e4de;color:#52687E;font-size:10px}.interaction-result[hidden]{display:none!important}.interaction-result b{color:var(--pes-navy);font-size:11px}.interaction-result button{border:1px solid #B8C9DA;background:#fff;color:#4E6680;border-radius:999px;padding:6px 11px;font-size:9px;font-weight:900;cursor:pointer}.interaction-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.interaction-chips span{display:inline-flex;padding:4px 7px;border-radius:999px;background:#fff;border:1px solid #D3DEE8;color:#576E84;font-size:9px}

/* Conexión al último corte publicado: capa de estado sin alterar las tablas. */
#opsBootLayer{position:fixed;inset:0;z-index:900;background:rgba(237,244,242,.94);display:grid;place-items:center;padding:24px;backdrop-filter:blur(5px)}
#opsBootLayer[hidden]{display:none!important}
.opsBootCard{width:min(100%,490px);background:#fcfdfb;border:1px solid #d5e5df;border-radius:19px;padding:28px;box-shadow:0 20px 60px rgba(38,61,80,.12);text-align:center;color:#263d50}
.opsBootCard b{display:block;font-size:20px;margin-bottom:12px}.opsBootCard p{line-height:1.55;font-size:13px;color:#577174}
#opsBootRetry{background:#598f8a;color:#fff;border:0;border-radius:10px;padding:10px 17px;margin:15px auto 0;font-weight:800;cursor:pointer}
#opsBootRetry[hidden]{display:none!important}
.opsBootSpinner{width:31px;height:31px;border:4px solid #e0ece8;border-top-color:#80b8ae;border-radius:50%;animation:opsBootSpin .8s linear infinite;margin:0 auto 17px}
@keyframes opsBootSpin{to{transform:rotate(360deg)}}
#refreshCutBtn{padding:7px 12px;border-radius:999px;border:1px solid #b7d5ca;background:#e4f2ea;color:#345c65;font-weight:800;cursor:pointer;font-size:11px}
#refreshCutBtn:hover{background:#d0e9dd}
#view-heatmap .mapNote{font-size:10px;max-width:390px}

/* Único cambio visual: tercer botón de Copiar, sin alterar las tablas V24. */
.exportCopyBtn{border-color:#a9d0c1!important;background:#d9ede4!important;color:#285b50!important;font-weight:900!important}
.exportCopyBtn:hover{background:#c6e3d6!important}
.cardHead{padding-right:285px!important}
#view-detpe .card > .cardHead{padding-right:325px!important}
.cardHeadActions,.bitSummaryActions{gap:5px!important}
.cardHeadActions .cardExportBtn,.bitSummaryActions .cardExportBtn{padding-inline:9px!important}
.copyImageStatus{position:fixed;right:22px;bottom:22px;max-width:min(490px,calc(100vw - 30px));padding:15px 18px;border-radius:13px;background:#d7eee2;border:1px solid #a5c8b6;color:#254d42;font-size:13px;font-weight:800;box-shadow:0 16px 35px rgba(31,68,62,.20);z-index:950}
.copyImageStatus.error{background:#fff0ec;border-color:#ecc4bd;color:#8b4749}
.copyImageStatus[hidden]{display:none!important}
@media(max-width:1100px){.cardHead{padding-right:20px!important;padding-top:47px!important}.cardHeadActions{top:7px!important;transform:none!important}}
@media(max-width:760px){#view-detpe .card > .cardHead{padding-right:14px!important;padding-top:47px!important}.bitSummaryActions{flex-wrap:wrap!important}.exportPanel{flex-wrap:wrap!important}.exportPanel select{min-width:140px!important}}


/* Alcance de filtros · banda de cuadrícula (conserva 100 % del formato V24) */
#view-bitacora .bitTitleMain .bitTitleBar{
  --grid-color:rgba(100,156,155,.13);
  min-height:74px!important;height:auto!important;margin-top:12px!important;
  padding:11px 14px!important;
  border:1px solid #c3dfd8!important;
  border-radius:15px!important;
  background-color:#eef7f3!important;
  background-image:
   linear-gradient(var(--grid-color) 1px,transparent 1px),
   linear-gradient(90deg,var(--grid-color) 1px,transparent 1px),
   linear-gradient(110deg,rgba(223,240,233,.9),rgba(235,245,248,.92) 70%,rgba(238,235,248,.9))!important;
  background-size:18px 18px,18px 18px,100% 100%!important;
  display:flex!important;align-items:center!important;gap:12px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 7px 18px rgba(53,97,98,.05)!important;
  overflow:hidden!important;
}
#view-bitacora .bitTitleBar .bitRegionMark{
  flex:0 0 39px;width:39px;height:39px;border-radius:11px;
  background:#fbfefd;border:1px solid #bfdcd5;
  display:grid;grid-template-columns:repeat(2,9px);grid-template-rows:repeat(2,9px);
  align-content:center;justify-content:center;gap:4px;
  box-shadow:0 3px 10px rgba(56,98,99,.06);
}
#view-bitacora .bitTitleBar .bitRegionMark span{background:#83bcb0;border-radius:3px}
#view-bitacora .bitTitleBar .bitRegionMark span:nth-child(2){background:#a7cad8}
#view-bitacora .bitTitleBar .bitRegionMark span:nth-child(3){background:#c2b5d9}
#view-bitacora .bitTitleBar .bitRegionMark span:nth-child(4){background:#d9c496}
#view-bitacora .bitTitleBar .bitFilterLabel{min-width:0;flex:1;display:block}
#view-bitacora .bitTitleBar #bitFilterOverline{
  display:block;font-family:Inter,ui-sans-serif,system-ui,sans-serif;
  color:#607e80;font-size:9px;letter-spacing:1.55px;font-weight:850;
  line-height:1.2;
}
#view-bitacora .bitTitleBar #bitFilterHeading{
  display:block;max-width:100%;overflow-wrap:anywhere;
  margin:3px 0 4px;color:#315960;
  font-family:Outfit,Inter,ui-sans-serif,system-ui,sans-serif;
  font-size:clamp(17px,1.6vw,24px);line-height:1.08;
  font-weight:850;letter-spacing:.04em;text-transform:uppercase;
}
#view-bitacora .bitTitleBar .bitFilterTags{display:flex;flex-wrap:wrap;gap:5px 7px;align-items:center;max-width:100%}
#view-bitacora .bitTitleBar .bitFilterDefault{font-size:10px;color:#6d888a;font-weight:650}
#view-bitacora .bitTitleBar .bitFilterTag{
  max-width:100%;display:inline-flex;flex-wrap:wrap;gap:2px;
  border:1px solid #c5dfd9;border-radius:999px;background:rgba(255,255,255,.75);
  color:#426a6e;font-size:10px;font-weight:650;padding:3px 8px;
  overflow-wrap:anywhere;
}
#view-bitacora .bitTitleBar .bitFilterTag b{font-weight:850;color:#2f585b}
#view-bitacora .bitTitleBar.has-filters{border-color:#aacfc7!important}
@media(max-width:760px){#view-bitacora .bitTitleMain .bitTitleBar{align-items:flex-start!important;padding:11px!important}#view-bitacora .bitTitleBar .bitRegionMark{width:35px;height:35px;flex-basis:35px}#view-bitacora .bitTitleBar #bitFilterHeading{font-size:19px}}
