:root{--navy:#0b2239;--navy2:#113757;--orange:#ff7200;--ink:#0d2239;--muted:#61758a;--light:#f2f6fa;--border:#d5e0e8;--good:#087c49;--bad:#b73732;--shadow:0 9px 30px rgba(7,35,63,.07);font-family:"Outfit",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--light);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}input,select,textarea{color:var(--ink);border:1px solid #cad8e4;border-radius:12px;background:#fff;padding:13px 14px;max-width:100%;width:100%}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--orange);outline-offset:2px}input[type=number]{appearance:textfield;-moz-appearance:textfield}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}textarea{resize:vertical;min-height:64px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(22px,2.8vw,30px);line-height:1.2;margin-bottom:7px}h2{font-size:21px}h3{font-size:16px}.muted{color:var(--muted);font-size:14px;line-height:1.5}.tiny{color:var(--muted);font-size:12px;line-height:1.45}.centered{text-align:center}.hidden{display:none!important}.required{color:#d52e2e}.version{font-size:12px;color:#7b8a9c;text-align:center;margin:16px auto 0}.spaced{margin-top:9px}.primary{background:linear-gradient(105deg,#ff8610,#fa5300);border:0;color:#fff;font-weight:750;padding:14px;border-radius:13px;box-shadow:0 7px 16px #ff690022}.primary:disabled{opacity:.55;cursor:not-allowed}.wide{width:100%}.outlined{background:#fff;color:var(--navy);border:1px solid #cbdce8;border-radius:11px;padding:12px 16px;font-weight:700}.link-button{background:transparent;border:0;color:#2d5778;text-decoration:underline;padding:10px 0;text-align:left;font-size:13px}.main{max-width:1080px;margin:0 auto;padding:22px 16px 108px}.panel{background:#fff;padding:clamp(19px,3.5vw,29px);border-radius:24px;box-shadow:var(--shadow);margin-bottom:16px}.notice{margin:0 0 15px;padding:13px 15px;border-radius:11px;background:#fff0e7;border-left:4px solid var(--orange);color:#873800;font-weight:600}.notice.success{background:#e8f8ef;color:#076c43;border-color:#16a36a}.notice.error{background:#fff0ef;color:#a02e2b;border-color:#db5353}
/* Header: the logos below are loaded as the original user-provided PNG files, with no filters or recreation. */
.header{position:relative;overflow:visible;background:linear-gradient(130deg,#081c31 0%,#0e2942 73%,#0b2239 100%);color:#fff;border-top:5px solid var(--orange);padding:19px max(18px,calc((100vw - 1100px)/2)) 16px}.header:before{content:"";position:absolute;inset:0 0 auto 0;height:17px;background:linear-gradient(133deg,transparent 10%,#ff7200 10%,#ff7200 19%,#173c5c 19%,#173c5c 23%,transparent 23%,transparent 65%,#ff7200 65%,#ff7200 71%,transparent 71%);opacity:.9;pointer-events:none}.brand-row{position:relative;display:grid;grid-template-columns:clamp(45px,7vw,85px) minmax(0,1fr) clamp(105px,20vw,200px);gap:clamp(11px,3vw,25px);align-items:center;min-height:92px}.logo-prevention{width:100%;max-height:95px;object-fit:contain}.logo-partners{width:100%;max-height:90px;object-fit:contain}.brand-title{min-width:0}.brand-name{font-size:clamp(36px,7vw,62px);font-weight:900;line-height:1.03;letter-spacing:.04em;color:#fff}.brand-name span{color:var(--orange)}.brand-description{font-size:clamp(9px,1.9vw,15px);font-weight:780;margin-top:5px;letter-spacing:.015em}.brand-area{font-size:clamp(9px,1.7vw,14px);font-weight:800;color:#ff8835;margin-top:5px}.account-bar{position:relative;margin-top:12px;display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #31516e;border-radius:15px;padding:9px 12px;background:#071b30bf}.account-brief{display:flex;flex-direction:column;gap:2px}.account-brief strong{font-size:clamp(12px,2vw,15px);font-weight:700}.account-brief .tiny{color:#b9cddd}.account-menu{position:relative}.icon-button{border:1px solid #5d7996;background:#1b3a56;color:white;border-radius:100%;width:39px;height:39px;display:grid;place-items:center;font-size:23px}.profile-menu{position:absolute;z-index:10;top:calc(100% + 10px);right:0;width:min(275px,78vw);background:white;color:var(--ink);box-shadow:0 14px 35px #071b3060;border-radius:14px;padding:15px;display:grid;gap:8px}.profile-menu strong{font-size:13px;overflow-wrap:anywhere}.logout-btn{border-radius:11px;border:1px solid #e6ccd0;background:#fff2f2;color:#9b2525;padding:11px;font-weight:700;text-align:left}
/* Login is the approved orange/navy/white diagonal design; the internal screens remain neutral. */
body:has(#login:not(.hidden)),body:has(#recovery:not(.hidden)){background:linear-gradient(133deg,#fff 0%,#f6faff 28%,#e8f3fb 28.5%,#fff 53%,#12416e 53.2%,#071d36 68%,#ff6800 68.3%,#ff8000 83%,#fff 83.2%)}
body:has(#login:not(.hidden)) .header,body:has(#recovery:not(.hidden)) .header{border:0;background:linear-gradient(142deg,#ff7300 0%,#ff7300 13%,#0d3154 13.2%,#0d3154 15%,#f8fbff 15.3%,#fff 76%,#0d3154 76.2%,#0d3154 82%,#fff 82.2%);color:var(--ink);padding:35px max(14px,calc((100vw - 1050px)/2)) 10px}
body:has(#login:not(.hidden)) .header:before,body:has(#recovery:not(.hidden)) .header:before{display:none}
body:has(#login:not(.hidden)) .brand-row,body:has(#recovery:not(.hidden)) .brand-row{grid-template-columns:clamp(65px,13vw,110px) minmax(0,1fr) clamp(110px,23vw,180px);gap:10px;align-items:start}
body:has(#login:not(.hidden)) .brand-title,body:has(#recovery:not(.hidden)) .brand-title{grid-column:1/-1;grid-row:2;text-align:center;margin-top:16px}
body:has(#login:not(.hidden)) .logo-prevention,body:has(#recovery:not(.hidden)) .logo-prevention{grid-column:1;grid-row:1;height:95px}
body:has(#login:not(.hidden)) .logo-partners,body:has(#recovery:not(.hidden)) .logo-partners{grid-column:3;grid-row:1;background:#0b2239;border-radius:10px;padding:7px;height:92px;max-height:none}
body:has(#login:not(.hidden)) .brand-name,body:has(#recovery:not(.hidden)) .brand-name{color:#0e2942;font-size:clamp(56px,13vw,108px)}
body:has(#login:not(.hidden)) .brand-description,body:has(#recovery:not(.hidden)) .brand-description{color:#f16b02;font-size:clamp(11px,2.5vw,20px);letter-spacing:.09em}
body:has(#login:not(.hidden)) .brand-area,body:has(#recovery:not(.hidden)) .brand-area{color:var(--navy);font-size:clamp(14px,2.6vw,22px)}
body:has(#login:not(.hidden)) .main,body:has(#recovery:not(.hidden)) .main{max-width:860px;padding-top:18px;padding-bottom:50px}
.auth-card{padding:clamp(24px,6vw,42px);border-radius:28px;box-shadow:0 15px 34px #0b22391c}.auth-card h1{font-size:clamp(28px,5.8vw,42px)}.auth-card label{font-weight:700;font-size:16px;display:block;margin:20px 0 9px}.auth-card input{min-height:54px;font-size:16px}.orange-line{height:3px;width:74px;background:var(--orange);border-radius:20px;margin:13px 0}.auth-card .primary{margin-top:22px;font-size:18px;padding:17px}.forgot-btn{margin-top:12px;color:#ec5600;background:#fff0e7;font-size:17px;font-weight:760;border-radius:12px;border:0;padding:17px}.auth-legal{text-align:center;color:#64748b;font-size:13px;margin:26px 0 0}.password-wrap{position:relative}.password-wrap input{padding-right:55px}.password-toggle{border:0;background:none;position:absolute;right:4px;top:3px;font-size:24px;padding:10px;color:#708198}
/* Consistent internal views */
.section-heading{display:flex;align-items:flex-start;gap:13px;margin-bottom:16px}.section-heading h1{margin:0 0 6px}.section-heading p{margin:0}.square-icon{background:#fff0e7;color:#f36500;width:47px;height:47px;border-radius:12px;font-size:31px;flex:none;display:grid;place-items:center}.site-strip{display:flex;align-items:center;gap:14px;background:#eef4f8;border-radius:17px;padding:15px;margin:17px 0}.site-icon{font-size:28px;color:var(--navy)}.site-controls{flex:1;min-width:0}.site-controls.full{width:100%}label{display:block;font-weight:700;font-size:13px;margin:12px 0 7px}.two-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.baseline-box{background:#fff4e8;border-radius:15px;padding:17px 19px;margin:17px 0}.baseline-box strong{font-size:clamp(25px,4vw,35px)}.field-title{font-size:18px;margin-top:19px;margin-bottom:9px}.counter{display:flex;align-items:center;gap:10px}.counter input{min-width:0;flex:1;height:68px;font-size:32px;font-weight:800;text-align:center}.counter-button,.counter button{flex:none;width:64px;height:68px;border-radius:13px;background:#f2f6fa;color:#071e35;border:2px solid #cad8e6;font-size:34px;font-weight:700}.counter-button:active,.counter button:active{background:#ffecd9}.coverage{background:#fff0df;padding:15px 17px;border-radius:12px;color:#b94d00;font-weight:760;margin:17px 0}.coverage.good{background:#e6f7ed;color:#087945}.coverage.bad{background:#fff0df;color:#bd4b00}.coverage.error{background:#fff0ef;color:#a0302b}.screen .primary{margin-top:17px;font-size:17px;min-height:55px}.screen .muted{margin-bottom:11px}
.two-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:17px 0}.count-tile{border-radius:16px;padding:15px}.green-tile{background:#eaf8f0}.red-tile{background:#fff0ef}.count-tile label{margin:2px 0 11px;font-size:16px}.small-counter{gap:6px}.small-counter input{height:51px;font-size:24px;padding:5px}.small-counter button{width:39px;height:51px;font-size:23px;padding:0}.causes-form{border:1px solid #e1e9ee;border-radius:15px;padding:15px;margin:16px 0}.causes-form h2{font-size:18px;margin:0 0 7px}.cause-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #edf1f5}.cause-row:last-child{border:0}.cause-row label{flex:1;margin:0;line-height:1.35}.cause-row input{flex:0 0 83px;min-width:0;text-align:center;padding:10px}.daily-summary{background:#f0f6fa;border-radius:14px;padding:16px;margin:15px 0}.daily-summary h3{margin-bottom:11px}.summary-line{display:flex;justify-content:space-between;gap:10px;padding:8px 0}.summary-line.total{border-top:1px solid #d8e2ea;font-weight:800}.required{font-weight:750}
/* Filters, history and metrics */
.filters{background:#f1f6fa;border-radius:15px;padding:17px;margin:16px 0 24px}.filters .primary{margin-top:14px}.preset-row{display:flex;gap:7px;flex-wrap:wrap}.preset-row button{border:1px solid #cadbe6;border-radius:9px;background:#fff;padding:8px 10px;color:#314e69;font-size:13px}.preset-row button.selected{background:var(--orange);color:#fff;border-color:var(--orange)}.list-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:17px}.list-heading h2{margin:0}.pill{border-radius:30px;background:#fff0e6;color:#bc5100;font-size:12px;font-weight:750;padding:5px 12px}.history-entry{border:1px solid #e0e8ef;border-radius:15px;padding:14px;margin:11px 0;background:#fff}.history-entry .entry-head{display:flex;justify-content:space-between;gap:11px;align-items:flex-start}.history-entry h3{margin:0 0 5px;font-size:16px}.entry-title{flex:1}.entry-meta{font-size:12px;color:var(--muted);margin:4px 0}.history-entry p{font-size:14px;margin:8px 0 0}.details-toggle{border:0;background:#f0f5fa;color:#183e5d;font-size:12px;font-weight:700;border-radius:8px;padding:8px 10px;flex:none}.entry-details{margin-top:11px;border-top:1px solid #edf1f5;padding-top:10px;font-size:13px;line-height:1.5;color:#344b60;overflow-wrap:anywhere}.entry-details div{margin:3px 0}.empty-state{padding:23px;border:1px dashed #cbdbe7;border-radius:13px;text-align:center;color:var(--muted)}.actions-row{margin-top:18px}.subsection{padding:21px 0 14px;border-top:1px solid #e9eff4}.subsection:first-of-type{border-top:0}.subsection h2{margin-bottom:5px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:17px 0}.kpi{border-radius:14px;padding:15px;min-width:0;display:flex;flex-direction:column;gap:6px}.kpi:nth-child(4n+1){background:#eaf2fa}.kpi:nth-child(4n+2){background:#eaf8ef}.kpi:nth-child(4n+3){background:#fff0ef}.kpi:nth-child(4n+4){background:#fff2e5}.kpi span{font-size:12px;font-weight:750}.kpi strong{font-size:clamp(22px,3.2vw,34px)}.two-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.chart-panel{border:1px solid #e1e9ef;border-radius:16px;padding:17px;min-width:0;overflow:hidden}.chart-panel h3{margin-bottom:16px}.site-chart-row{display:grid;grid-template-columns:minmax(95px,1.3fr) minmax(50px,2.5fr) 52px;gap:8px;align-items:center;font-size:12px;margin:10px 0}.site-chart-row label{margin:0;font-size:11px;line-height:1.3}.bar-track{height:17px;background:#e9eff3;border-radius:5px;overflow:hidden}.bar-fill{height:100%;background:#ff7200}.site-chart-row strong{text-align:right;font-size:11px}.chart-svg{width:100%;height:auto;display:block}.chart-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:#516981;margin-top:9px}.dot{width:9px;height:9px;border-radius:100%;display:inline-block;margin-right:5px;background:#0e4f86}.dot.orange{background:#ff7800}.donut-row{display:flex;gap:18px;align-items:center}.donut{width:136px;height:136px;border-radius:50%;display:grid;place-items:center;flex:none;background:#e4edf4}.donut-hole{width:86px;height:86px;border-radius:100%;display:flex;align-items:center;justify-content:center;background:#fff;flex-direction:column}.donut-hole strong{font-size:27px}.donut-hole small{font-size:11px}.donut-legend{font-size:12px;line-height:1.6}.donut-legend div{display:flex;align-items:center;gap:7px}.swatch{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}.rotation-total{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e1e9ef;padding-top:12px;margin-top:8px;font-weight:700;gap:10px}.rotation-total strong{font-size:26px;color:#d86100}.list-compact .history-entry{padding:11px}.list-compact h3{font-size:13px}.list-compact .entry-meta{font-size:11px}.app-version{margin-top:26px}
/* Fixed bottom navigation, same order on every page */
.bottom-nav{position:fixed;z-index:8;bottom:10px;left:50%;transform:translateX(-50%);width:min(95vw,1040px);border-radius:18px;background:#0b2239;padding:9px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;box-shadow:0 12px 30px #0b22393a}.bottom-nav button{min-width:0;border:0;border-radius:12px;background:transparent;color:white;padding:9px 3px;display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;font-size:clamp(10px,1.6vw,13px)}.bottom-nav button.active{background:linear-gradient(110deg,#ff8e0b,#ff5d00)}.nav-icon{font-size:23px;line-height:1.1}
@media(max-width:650px){.header{padding:16px 12px 12px}.brand-row{grid-template-columns:40px minmax(0,1fr) 111px;gap:8px;min-height:75px}.brand-name{font-size:36px}.brand-description{font-size:8px}.brand-area{font-size:8px}.logo-prevention{max-height:70px}.logo-partners{max-height:65px}.main{padding:15px 12px 113px}.panel{padding:18px 15px}.two-charts{grid-template-columns:1fr}.kpi-grid{gap:7px}.kpi{padding:10px}.kpi span{font-size:10px}.kpi strong{font-size:23px}.count-tile{padding:10px}.counter-button{width:57px}.brand-title{line-height:1.2}body:has(#login:not(.hidden)) .logo-prevention{height:64px}body:has(#login:not(.hidden)) .logo-partners{height:67px}body:has(#login:not(.hidden)) .brand-name{font-size:clamp(52px,13vw,75px)}body:has(#login:not(.hidden)) .header{padding-top:22px}}
@media(max-width:380px){.brand-row{grid-template-columns:34px minmax(0,1fr) 90px;gap:6px}.brand-name{font-size:30px}.brand-description{font-size:7px}.brand-area{font-size:7px}.logo-partners{max-height:56px}.logo-prevention{max-height:56px}.site-strip{padding:12px 10px}.site-icon{display:none}.two-cols{gap:7px}.counter{gap:6px}.counter-button{width:48px;height:60px}.counter input{height:60px;font-size:29px}.small-counter button{width:32px}.small-counter input{font-size:22px}.bottom-nav{padding:7px;gap:2px}.bottom-nav button{font-size:10px}.nav-icon{font-size:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.bottom-nav svg{width:23px;height:23px;display:block}.bottom-nav .nav-icon{display:flex;align-items:center;justify-content:center}input[type=date]{font-size:13px;padding:12px 8px;min-width:0}.account-brief strong{line-height:1.25}

/* NEXO 1.8.3: normalized form fields, typography and spacing on every screen. */
:root{--field-height:56px;--field-radius:13px;--field-font-size:16px;--field-label-size:14px}
.main :is(input:not([type=checkbox]),select){box-sizing:border-box;display:block;width:100%;height:var(--field-height);min-height:var(--field-height);max-height:var(--field-height);font-size:var(--field-font-size);font-weight:500;line-height:1.25;border-radius:var(--field-radius);padding:0 14px;letter-spacing:0;}
.main :is(input[type=date],select){min-width:0;max-width:100%;font-size:var(--field-font-size);}
.main input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}
.main input[type=date]::-webkit-calendar-picker-indicator{flex:0 0 auto;margin-left:3px;}
.main :is(textarea){width:100%;min-height:88px;font-size:var(--field-font-size);border-radius:var(--field-radius);padding:12px 14px;line-height:1.45}
.main label,.main .cause-row label{font-size:var(--field-label-size);font-weight:700;line-height:1.4;margin:13px 0 7px;letter-spacing:0;}
.main :is(.two-cols,.two-tiles){align-items:start;gap:12px}
.main .two-cols>div{min-width:0}
.main select{padding-right:26px;overflow:hidden;text-overflow:ellipsis;}
.main .counter input{height:68px;min-height:68px;max-height:68px;font-size:32px;text-align:center;font-weight:700}
.main .small-counter input{height:56px;min-height:56px;max-height:56px;font-size:23px;text-align:center;padding:0 4px}
.main .small-counter button{height:56px}
.main .cause-row input{height:56px;min-height:56px;max-height:56px;text-align:center;font-size:16px;padding:0 6px}
.main .auth-card label{font-size:var(--field-label-size);margin:19px 0 8px}
.main .auth-card input{height:var(--field-height);min-height:var(--field-height);max-height:var(--field-height);font-size:16px}
.main .site-strip{align-items:flex-start}
.mini-counter{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-width:0}
.main .mini-counter input{width:56px;min-width:56px;height:48px;min-height:48px;max-height:48px;text-align:center;padding:0 4px;font-size:16px}
.mini-counter button{width:36px;height:48px;padding:0;flex:0 0 36px;border-radius:10px;border:1px solid #cad8e6;background:#f2f6fa;font-size:24px;color:#12304c;font-weight:700}
.mini-counter button:active{background:#ffedd8}
.absence-row{gap:6px}.absence-row label{font-size:13px;margin:0;min-width:0}
#absenceReasonsBox{margin:19px 0;background:#fbfdff}
#absenceReasonsBox .coverage{margin:13px 0 0}
@media(max-width:600px){
 .main .two-cols{grid-template-columns:minmax(0,1fr);gap:6px}
 .main .site-strip{gap:8px}
 .main .site-controls{min-width:0}
 .main .site-controls :is(input[type=date],select){font-size:16px}
 .main .site-controls.full{min-width:0}
 .main .count-tile label{font-size:14px}
}
@media(max-width:430px){
 .main .two-tiles{grid-template-columns:minmax(0,1fr)}
 .main .small-counter input{font-size:24px}
 .main .small-counter button{width:52px}
 .main .absence-row label{font-size:12px}
 .main .mini-counter input{width:52px;min-width:52px}
}

/* NEXO 1.8.4: guardias declarados visibles, nuevas clasificaciones y reporte de turno */
.declared-section{margin:18px 0 22px;padding:15px;border-radius:16px;border:1px solid #d9e7f0;background:#f4f9fd}.declared-section>label{margin:0 0 8px;display:block}.declared-section .counter{margin-top:4px}.declared-section .counter-button{width:65px}.declared-section .counter input{background:#fff}.declared-section .tiny{margin:8px 0 0}.pending-report{background:#fff5e9;border:1px solid #ffdcbf;padding:14px 16px;border-radius:13px;color:#443524;font-size:14px;line-height:1.55;margin-bottom:16px}.pending-report details{margin-top:8px}.pending-report details p{overflow-wrap:anywhere}.real-staff-box{margin:18px 0;padding:17px;background:#f0f7fc;border:1px solid #dbe8f1;border-radius:16px}.real-staff-box h3{margin:0 0 8px}.real-staff-box button{margin-top:16px}.causes-form .mini-counter{gap:5px}#arrivalTime{max-width:250px}#arrivalReasonsBox,#extraReasonsBox{background:#fbfdff;margin:15px 0}#arrivalStatus,#extraStatus{margin-top:12px}.rotation-total{flex-wrap:wrap}.rotation-total strong{overflow-wrap:anywhere}
@media(max-width:420px){.declared-section .counter-button{width:50px}.pending-report{font-size:13px}}

.comparison-note{border-left:4px solid #ff7900;background:#f2f7fa;border-radius:9px;padding:11px 13px;margin:8px 0 18px;color:#23415b;font-size:14px;line-height:1.4}

/* NEXO Ver. 1.8.5: administrative controls, consistent with established navy/orange interface. */
.admin-menu-btn{border:1px solid #c7deee;background:#edf5fb;color:#133a55;border-radius:11px;padding:12px;font-weight:750;text-align:left}
.admin-explainer{background:#eef6fc;border-left:4px solid #ff7200;border-radius:11px;padding:16px;font-size:14px;line-height:1.55;margin:17px 0 21px}
.admin-explainer strong{font-size:16px}.admin-explainer p{margin:9px 0 0}
.admin-asof{background:#f4f8fb;border:1px solid #dce7ee;padding:14px 16px;border-radius:15px;margin-bottom:22px}
.admin-asof .tiny{margin:8px 0 0}.admin-panel>h2{margin:22px 0 15px}
.admin-site-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.admin-site-card{border:1px solid #dae6ee;background:#fff;border-radius:17px;padding:17px;box-shadow:0 4px 15px #081d3010;min-width:0}
.admin-site-header{display:flex;gap:6px;justify-content:space-between;align-items:flex-start}.admin-site-header h3{font-size:17px;line-height:1.25;margin:0}
.admin-date{font-size:11px;color:#738598;white-space:nowrap}
.admin-site-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}
.admin-ref,.admin-real{padding:12px;border-radius:12px;background:#fff3e9;display:flex;flex-direction:column;gap:7px;min-width:0}
.admin-real{background:#eaf5fb}.admin-site-counts span{font-weight:700;font-size:12px}.admin-site-counts strong{font-size:clamp(20px,3vw,30px);overflow-wrap:anywhere}
.admin-site-counts small{font-size:11px;color:#607589;line-height:1.3}
.admin-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}
.admin-card-actions .outlined{font-size:12px;padding:10px 7px}
.admin-form{background:#f5f9fc;border:1px solid #d4e3ed;border-radius:16px;padding:19px;margin:23px 0}
.admin-form h2,.admin-audit h2{margin:0 0 9px}
.admin-form label{display:block;margin-top:15px}.admin-form textarea{min-height:92px}
.admin-form .primary{margin-top:18px}.admin-current{background:#e6f1fa;padding:10px 12px;border-radius:9px;margin:9px 0}
.admin-audit{padding-top:12px}.admin-audit .history-entry{background:#fff}
@media(max-width:700px){.admin-site-list{grid-template-columns:1fr}.admin-card-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-site-header{display:block}.admin-date{display:block;margin-top:4px}}
@media(max-width:380px){.admin-card-actions{grid-template-columns:1fr}.admin-site-counts strong{font-size:24px}}

/* NEXO 1.8.6: una sola plantilla real por instalación. */
.admin-site-counts.admin-single-count{grid-template-columns:1fr}
.admin-single-count .admin-real{background:linear-gradient(120deg,#e6f3fc,#f2f9ff);padding:17px 19px;gap:7px}
.admin-single-count .admin-real strong{font-size:clamp(24px,3vw,34px);font-weight:800;color:#0b2239}
.admin-single-count .admin-real small{line-height:1.45}
.admin-card-actions.admin-single-action{grid-template-columns:1fr}
.admin-single-action button{min-height:52px;font-size:15px;font-weight:700}

/* NEXO 1.8.7: captura única de plantilla declarada, TNC por turno y localización. */
.declared-section{margin-top:19px;background:#f4f9fd;border:1px solid #dae7ef}
.tnc-panel{margin-top:15px}.tnc-panel h3{margin-top:2px}.tnc-panel .muted{font-size:13px;line-height:1.5}
.tnc-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:15px 0}
.tnc-kpi{background:#edf4f9;padding:12px 10px;border-radius:11px;min-width:0;display:flex;flex-direction:column;gap:6px}
.tnc-kpi span{font-size:11px;font-weight:700;color:#41617a;line-height:1.25}.tnc-kpi strong{font-size:clamp(21px,3vw,30px);color:#08223c}
.tnc-kpi:nth-child(1){background:#fff3e5}.tnc-kpi:nth-child(2){background:#ffebea}.tnc-kpi:nth-child(3){background:#e9f7ec}
.tnc-legend{display:flex;gap:16px;margin:6px 0 14px;align-items:center;flex-wrap:wrap;color:#53677a;font-size:12px}
.tnc-legend>span{display:flex;gap:6px;align-items:center}.tnc-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;background:#ff8b1b}.tnc-swatch.tnc-current{background:#c74538}
.tnc-group{margin:14px 0}.tnc-site-name{font-weight:700;font-size:13px;margin-bottom:6px}
.tnc-bars{display:flex;align-items:center;gap:10px;margin:5px 0}.tnc-track{flex:1;min-width:0;height:13px;border-radius:7px;background:#edf2f6;overflow:hidden}.tnc-bar{height:100%;border-radius:7px;background:#ff8b1b;min-width:0}.tnc-bar.current{background:#c74538}.tnc-bars strong{font-size:13px;min-width:24px;text-align:right}

/* NEXO 1.8.8: captura limpia y métricas separadas */
.saved-attendance-banner{margin:16px 0;padding:16px;border-radius:15px;background:#eaf4fc;border:1px solid #c5dce9;color:#17334a;line-height:1.5}
.saved-attendance-banner strong{font-size:16px}.saved-attendance-banner p{margin:8px 0 12px;font-size:13px;color:#4c687d}
.saved-attendance-banner.editing{background:#fff4e7;border-color:#ffce9c}
.saved-attendance-actions{display:flex;flex-wrap:wrap;gap:9px}
.saved-attendance-actions button{flex:1;min-width:130px;min-height:48px;font-size:14px}
.saved-attendance-detail{margin-top:13px;padding:13px;border-radius:11px;background:#fff;border:1px solid #d4e3ed;font-size:14px;overflow-wrap:anywhere}
.saved-attendance-detail p{margin:8px 0 0}
.single-kpi-summary{margin:12px 0}.single-kpi-summary .tnc-kpi{background:#fff0eb;max-width:250px}
.additional-panel .single-kpi-summary .tnc-kpi{background:#eaf4ff}
.tnc-bar.extra{background:#2476a8}
.coverage-special-charts .chart-panel{margin-bottom:0}
@media(max-width:450px){.saved-attendance-actions{flex-direction:column}.saved-attendance-actions button{width:100%}}

/* NEXO Ver. 1.8.9 · avisos de cobertura */
.profile-menu .admin-menu-btn{font-weight:650;text-align:left;min-height:42px;font-size:13px}
.profile-menu #pushStatus{font-size:11px;line-height:1.35;color:#52677c}
.push-info{border-radius:15px;background:#f0f6fb;padding:16px;margin:15px 0 22px}
.push-info p{font-size:13px;color:#52687d;margin:8px 0 14px;line-height:1.55}
.alert-history-entry{border:1px solid #d8e3ee;border-left:4px solid #ff7900;background:white;border-radius:12px;padding:15px;margin:12px 0}
.alert-history-entry strong{font-size:14px}.alert-history-entry p{font-size:13px;margin:7px 0}
#alertsBack{margin-top:16px}

/* NEXO Ver. 1.9.0 · Métricas corporativas, sin fondos pastel. */
#metricsPage .kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
#metricsPage .kpi{position:relative;background:#fff;border:1px solid #dce5ed;border-radius:15px;box-shadow:0 4px 14px rgba(8,34,57,.035);padding:16px 15px 19px;min-height:108px;gap:12px;justify-content:space-between}
#metricsPage .kpi:nth-child(n){background:#fff}
#metricsPage .kpi:after{content:"";position:absolute;bottom:12px;left:15px;width:31px;height:3px;border-radius:4px;background:#244764}
#metricsPage .kpi[data-accent="orange"]:after{background:#ff7900}
#metricsPage .kpi[data-accent="alert"]:after{background:#c64a42}
#metricsPage .kpi span{color:#52687b;font-weight:650;font-size:12px;line-height:1.4}
#metricsPage .kpi strong{color:#0b2239;font-size:clamp(25px,3.3vw,36px);font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
#metricsPage .kpi[data-accent="alert"] strong{color:#b73732}
/* Sólo lectura en Métricas: gestión de plantillas en Mi cuenta; movimientos en Historial. */
#metricsPage .real-staff-box{background:#fff;border:1px solid #dce5ed;border-radius:17px;padding:19px;margin:21px 0 5px;box-shadow:0 4px 14px rgba(8,34,57,.03)}
#metricsPage .real-staff-heading{display:flex;align-items:start;justify-content:space-between;gap:10px}
#metricsPage .real-staff-heading h3{font-size:18px;color:#0b2239;margin:0 0 5px}
#metricsPage .real-staff-heading p{margin:0 0 11px}
#metricsPage .real-staff-mark{display:grid;place-items:center;width:34px;height:34px;flex:none;background:#fff3e8;color:#e46a08;border-radius:10px;font-size:20px}
#metricsPage .real-staff-list{display:flex;flex-direction:column}
#metricsPage .real-staff-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;border-bottom:1px solid #e9eef2;min-width:0}
#metricsPage .real-staff-row:last-child{border-bottom:0}
#metricsPage .real-staff-site{font-size:14px;font-weight:600;color:#20384e}
#metricsPage .real-staff-value{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;color:#0b2239;white-space:nowrap}
#metricsPage .real-staff-total{margin-top:12px;display:flex;align-items:center;justify-content:space-between;background:#f1f5f8;padding:13px 15px;border-radius:11px;color:#0b2239;gap:12px}
#metricsPage .real-staff-total strong:first-child{font-size:14px}
#metricsPage .real-staff-total strong:last-child{font-size:23px;font-variant-numeric:tabular-nums}
#metricsPage .real-staff-note{font-size:11px;color:#607589;line-height:1.5;margin:12px 0 0}
@media(max-width:650px){
 #metricsPage .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 #metricsPage .kpi{padding:14px 13px 20px;min-height:105px;gap:10px}
 #metricsPage .kpi span{font-size:12px}
 #metricsPage .kpi strong{font-size:clamp(25px,6vw,32px)}
 #metricsPage .kpi:after{left:13px;bottom:11px}
 #metricsPage .real-staff-box{padding:16px}
}
@media(max-width:360px){#metricsPage .kpi{padding:12px 10px 20px}#metricsPage .kpi span{font-size:11px}#metricsPage .kpi strong{font-size:23px}}


/* NEXO 1.9.1 | Fondo gris definido y tarjetas blancas: sin rellenos pastel. */
:root{--light:#E2E6EB;--orange:#FF7900;--navy:#0B223B;--navy2:#163955;--ink:#0B223B;--border:#CFD7DE}
body{background:#E2E6EB}
#app .panel,#app .chart-panel,#app .admin-site-card{background:#fff}
#app .site-strip,#app .declared-section,#app .baseline-box,#app .daily-summary,#app .saved-attendance-banner,#app .saved-attendance-banner.editing,#app .push-info,#app .admin-explainer,#app .admin-form,#app .admin-asof,#app .admin-ref,#app .admin-real,#app .admin-single-count .admin-real,#app .admin-current,#app .pending-report,#app .comparison-note,#app .coverage,#app .coverage.good,#app .coverage.bad,#app .coverage.error,#app #arrivalReasonsBox,#app #extraReasonsBox,#app .count-tile,#app .green-tile,#app .red-tile{background:#fff;border:1px solid #D5DEE6;box-shadow:none}
#app .count-tile.green-tile{border-left:4px solid #18764D}
#app .count-tile.red-tile{border-left:4px solid #B63836}
#app .coverage.good{color:#146F48;border-left:4px solid #18764D}
#app .coverage.bad,#app .coverage.error{color:#A43830;border-left:4px solid #BF4139}
#app .notice{background:#fff}
#app .saved-attendance-banner{border-left:4px solid #FF7900}
#app .admin-menu-btn{background:#fff;border-color:#CBD7E0}
#app .admin-single-count .admin-real strong{color:#0B223B}
#app .tnc-kpi,#app .tnc-kpi:nth-child(n),#app .additional-panel .single-kpi-summary .tnc-kpi{background:#fff;border:1px solid #D5DEE6}
#app .real-staff-mark{background:#fff;border:1px solid #E2E6EB}
#app .cause-row input,#app .counter input,#app .counter button{background:#fff}
#app .primary{background:#FF7900;box-shadow:0 3px 10px #FF790029}
#app .square-icon{background:#fff;border:1px solid #D5DEE6}
.account-actions{display:flex;align-items:center;gap:8px}
.semaphore-launch{display:flex;align-items:center;gap:7px;border:1px solid #7D96AA;background:#173C57;color:#fff;border-radius:12px;padding:10px 12px;font-weight:750;font-size:12px;min-height:40px}
.semaphore-launch svg{color:#FF7900;flex:none}
.semaphore-launch:hover{background:#235477}
.coverage-followup-panel{margin:16px 0;padding:17px;border:1px solid #D5DEE6;border-left:4px solid #FF7900;border-radius:15px;background:#fff}
.followup-head{display:flex;align-items:start;gap:10px}.followup-head h2{font-size:18px;margin:0 0 5px}.followup-head .tiny{margin:0 0 10px}.followup-icon{display:grid;place-items:center;background:#0B223B;color:#fff;width:38px;height:38px;border-radius:9px;flex:none}
.followup-latest{border-left:3px solid #FF7900;background:#F3F5F7;border-radius:7px;padding:12px;margin:12px 0 18px;line-height:1.45}
.followup-latest p{font-size:13px;color:#52606D;margin:6px 0 0}
.followup-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.followup-actions .outlined,.followup-actions .danger-outlined{font-size:13px;font-weight:730;line-height:1.3;padding:12px 9px;min-height:48px}
.danger-outlined{border:1px solid #BC4541;border-radius:11px;background:#fff;color:#A82E29;font-weight:750}
.danger-outlined:disabled{opacity:.5}
.semaphore-filters{background:#fff;border:1px solid #D7E0E6;border-radius:14px;padding:15px;margin:16px 0}
.semaphore-filters>.outlined{margin-top:14px}
.semaphore-filters>.tiny{margin:11px 0 0}
.semaphore-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:17px 0}
.semaphore-summary-tile{background:#fff;border:1px solid #D5DEE6;border-radius:13px;padding:12px 7px;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center}
.semaphore-summary-tile strong{font-size:27px;font-variant-numeric:tabular-nums;color:#0B223B}.semaphore-summary-tile.ok strong{color:#18764D}.semaphore-summary-tile.bad strong{color:#B63836}.semaphore-summary-tile.pending strong{color:#9A6900}
.semaphore-summary-tile span{font-size:11px;font-weight:750;color:#435568}
.semaphore-asof{grid-column:1/-1;color:#52687A;font-size:12px}
.semaphore-list{display:grid;gap:12px}
.semaphore-card{background:#fff;border:1px solid #D5DEE6;border-radius:15px;padding:17px 14px;display:flex;align-items:start;gap:12px}
.semaphore-light{width:16px;height:16px;border-radius:50%;flex:none;margin-top:4px;background:#B6B6B6;box-shadow:0 0 0 5px #E2E6EB}
.semaphore-card.semaphore-ok{border-left:4px solid #18764D}.semaphore-card.semaphore-bad{border-left:4px solid #B63836}.semaphore-card.semaphore-pending{border-left:4px solid #AA750B}
.semaphore-ok .semaphore-light{background:#18764D}.semaphore-bad .semaphore-light{background:#B63836}.semaphore-pending .semaphore-light{background:#AA750B}
.semaphore-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.semaphore-site{font-size:15px;color:#0B223B}.semaphore-state{font-size:13px;font-weight:760}.semaphore-ok .semaphore-state{color:#18764D}.semaphore-bad .semaphore-state{color:#B63836}.semaphore-pending .semaphore-state{color:#956300}
.semaphore-subtitle{color:#3E5263;font-size:13px;line-height:1.45;overflow-wrap:anywhere;margin:1px 0 2px}.semaphore-meta{font-size:11px;line-height:1.4;color:#607587;margin:1px 0}
.semaphore-more{background:#fff;color:#0B223B;border:1px solid #C8D4DE;border-radius:9px;padding:9px;font-size:11px;font-weight:750;white-space:nowrap;flex:none}
.semaphore-details{margin-top:18px;border:1px solid #CFDAE3;border-top:4px solid #FF7900;border-radius:13px;background:#fff;padding:16px}.semaphore-details h2{font-size:18px;margin:0 0 10px}.semaphore-details p{font-size:13px;line-height:1.5}.semaphore-timeline-entry{border-left:3px solid #FF7900;padding:3px 0 10px 13px;margin:11px 0;background:#fff;overflow-wrap:anywhere}
.semaphore-timeline-entry strong{font-size:13px;color:#0B223B}.semaphore-timeline-entry p{margin:5px 0;color:#4A5A6B}.semaphore-timeline-entry small{font-size:11px;color:#61748A}
.semaphore-footer-note{font-size:11px;color:#607589;line-height:1.5;margin:18px 0 0}
@media(max-width:480px){.semaphore-button-text{display:none}.semaphore-launch{padding:10px;width:41px;justify-content:center}.semaphore-card{flex-wrap:wrap}.semaphore-more{margin-left:28px}.followup-actions{grid-template-columns:1fr}}

/* Avisos con fondo blanco, sin bloques pastel. */
.notice.success,.notice.error{background:#fff;border:1px solid #D5DEE6;border-left:4px solid #18764D}
.notice.error{border-left-color:#BF4139}

/* NEXO Ver. 1.9.2: navegación principal en cinco accesos. */
.bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;}
.bottom-nav button{padding:9px 2px;min-height:60px;gap:5px;}
.bottom-nav .nav-label{display:block;max-width:100%;font-size:clamp(9px,1.35vw,12px);line-height:1.2;white-space:nowrap;overflow:visible;text-align:center;}
@media(max-width:480px){
 .bottom-nav{width:min(97vw,1040px);padding:7px;gap:2px;bottom:max(8px,env(safe-area-inset-bottom));}
 .bottom-nav button{padding:9px 0;min-height:60px;}
 .bottom-nav .nav-label{font-size:clamp(9px,2.6vw,11px);letter-spacing:-.015em;}
 .bottom-nav svg{width:22px;height:22px;}
}
@media(max-width:340px){.bottom-nav .nav-label{font-size:8.7px;letter-spacing:-.035em}.bottom-nav svg{width:20px;height:20px;}}

/* NEXO Ver. 1.9.3 | Tipografía Outfit aprobada para toda la aplicación.
   Outfit se descarga desde Google Fonts; los fallbacks conservan legibilidad
   cuando no hay conexión o se bloquean las fuentes externas. */
:root { font-family: "Outfit", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
body, button, input, select, textarea { font-family: inherit; }
/* Marca e identidad (se conserva la X naranja y los logotipos PNG intactos). */
.brand-name { font-weight: 600; letter-spacing: .035em; }
.brand-description, .brand-area { font-weight: 600; }
/* Encabezados: SemiBold para la jerarquía principal. */
h1, h2, .section-heading h1, .auth-card h1,
#semaphorePage h1, #attendancePage h1, #movementsPage h1,
#metricsPage h1, #historyPage h1 { font-weight: 600; }
/* Títulos secundarios y controles: Outfit Medium. */
h3, .history-entry h3, .chart-panel h3, .semaphore-site { font-weight: 500; }
.bottom-nav button, .bottom-nav .nav-label { font-weight: 500; }
.main button:not(.counter-button):not(.password-toggle),
.profile-menu button, .site-chart-row strong { font-weight: 500; }
/* Texto descriptivo y contenido normal: Regular, también en controles. */
p, .muted, .tiny, .entry-meta, .version, .semaphore-meta { font-weight: 400; }
input, select, textarea { font-weight: 400; }
/* Los contadores se mantienen destacados para lectura operativa. */
.counter input, .kpi strong, .semaphore-summary-tile strong { font-weight: 700; }

/* NEXO 1.9.4: Vacantes / pestañas internas, sin alterar la navegación principal. */
.inner-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border:1px solid #d5e0e8;background:#eef1f4;padding:5px;border-radius:14px;margin:16px 0 20px}
.inner-tab{padding:12px 8px;background:transparent;color:#28445e;border:0;border-radius:10px;font-size:14px;font-weight:600}
.inner-tab.active{background:#0b223b;color:#fff;box-shadow:0 3px 10px #0b223b22}
.vacancy-allocation,.vacancy-declaration{border:1px solid #dce4ed;background:#fafcff;border-radius:16px;padding:17px;margin:18px 0}
.vacancy-allocation h2{font-size:18px;margin-bottom:6px}.allocation-grid{display:grid;grid-template-columns:minmax(85px,1fr) minmax(0,1fr) minmax(0,1fr);gap:9px;align-items:center;margin-top:13px}
.allocation-top{font-size:13px;font-weight:700;color:#42566a;text-align:center}.allocation-top:first-child{text-align:left}
.main .allocation-grid input{min-width:0;height:50px;min-height:50px;max-height:50px;text-align:center;padding:6px;font-size:18px;font-weight:650}
.main .allocation-label{margin:0;font-size:14px}.quick-allocate{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.quick-allocate button{flex:1;min-width:122px;padding:10px;font-size:12px}.good-text{color:#12603b}.bad-text{color:#a33b28}
.vacancy-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0}.vacancy-site-card{border:1px solid #dde5ed;border-radius:13px;padding:16px;background:#fff;min-width:0}
.vacancy-card-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:space-between}.vacancy-card-head strong{font-size:14px}
.vacancy-total{display:inline-block;border-radius:9px;background:#fff3e9;color:#b44d00;padding:7px 11px;font-weight:750;font-size:20px}.vacancy-total:not(:has(*)){white-space:nowrap}
.vacancy-site-card .tiny{margin:8px 0 0}.vacancy-declaration{background:#f8fafc}.vacancy-declaration h3{font-size:18px}.vacancy-before{padding:11px 13px;background:#fff;border-left:3px solid #ff7900;border-radius:8px;font-size:14px}
.vacancy-metric-row,.vacancy-metrics-total{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid #e8edf2;font-size:14px}.vacancy-metric-row strong{font-size:17px;text-align:right}.vacancy-metrics-total{font-weight:700;color:#0b223b;border-top:2px solid #e3e8ee;margin-top:6px}
.semaphore-vacancy{font-size:12px;margin:7px 0 0;color:#506075}
@media(max-width:450px){.vacancy-cards{grid-template-columns:1fr}.vacancy-allocation,.vacancy-declaration{padding:13px}.inner-tab{font-size:12px}}

/* Ver. 1.9.5 · Una sola cifra de vacantes por instalación. */
.vacancy-cards{grid-template-columns:1fr}
.movement-general-hint{margin:6px 0 18px;padding:12px 14px;border-left:3px solid #FF7900;border-radius:8px;background:#fff;color:#42566a}
