:root{--navy:#092e51;--deep:#06253f;--blue:#1172c3;--blue2:#0d65ab;--cyan:#1ca7bd;--bg:#f3f7fb;--white:#fff;--muted:#718398;--line:#e2eaf2;--text:#1c344c;--green:#198f68;--amber:#d49020;--shadow:0 8px 28px rgba(17,59,96,.06);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--text);font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}.hidden,[hidden]{display:none!important}.eyebrow{font-size:10px;letter-spacing:.13em;font-weight:800;color:#1685ca}.eyebrow.light{color:#97dfff}.brand{display:flex;align-items:center;gap:11px;color:white;font-weight:900;letter-spacing:.045em;font-size:17px;line-height:1.05}.brand strong{color:#60d5f0}.brand small{display:block;font-size:9px;font-weight:700;letter-spacing:.14em;opacity:.68;margin-top:5px}.brand-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;background:#14a7d9;border-radius:12px;color:#fff;font-size:34px;line-height:1;transform:rotate(-5deg)}.brand-lg{font-size:24px}.brand-lg .brand-icon{width:58px;height:58px;font-size:46px;border-radius:17px}.login-shell{min-height:100vh;display:grid;grid-template-columns:52% 48%}.login-visual{position:relative;padding:54px 8.8%;background:linear-gradient(145deg,#062b4b,#064d7d 65%,#008eb5);color:#fff;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.visual-content{z-index:1}.visual-content h1{font-size:clamp(48px,5.2vw,84px);line-height:1.035;letter-spacing:-.065em;margin:17px 0 20px;max-width:650px}.visual-content p{max-width:430px;font-size:18px;line-height:1.55;color:#c6e1f5}.visual-footer{font-size:10px;letter-spacing:.12em;font-weight:700;color:#c4e4f6;z-index:1}.visual-footer span{padding:0 8px}.big-wave{position:absolute;opacity:.11;border-radius:50%;border:65px solid #fff;width:520px;height:520px;right:-200px;bottom:-190px}.wave-two{width:360px;height:360px;right:30px;bottom:-270px;border-width:60px;opacity:.09}.login-form-wrap{display:grid;place-items:center;padding:28px}.login-card{max-width:430px;width:100%;padding:32px 10px}.login-card h2{font-size:42px;margin:12px 0 8px;letter-spacing:-.05em;color:#0c3150}.muted{color:#8090a2;line-height:1.65;font-size:15px;margin:0 0 32px}.login-card label{font-size:12px;font-weight:800;color:#24435e;display:block;margin-bottom:9px}.password-wrap{display:flex;position:relative}.password-wrap input{width:100%;height:52px;padding:0 68px 0 16px;border:1px solid #cedeea;border-radius:11px;outline:none;background:white}.password-wrap input:focus,.date-control input:focus,.filters input:focus,.filters select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(22,119,190,.12)}.eye{position:absolute;right:9px;top:9px;border:0;background:#eef4fa;padding:9px;border-radius:7px;font-weight:700;font-size:12px;color:var(--blue)}.login-error{min-height:35px;color:#ba2f48;font-size:13px;padding-top:12px}.btn{border-radius:10px;border:1px solid transparent;padding:12px 18px;font-weight:750;font-size:13px;display:inline-flex;gap:10px;align-items:center;justify-content:center;transition:.16s}.btn.full{width:100%;justify-content:space-between;font-size:14px;padding:15px 17px}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 4px 12px rgba(15,109,181,.12)}.btn-primary:hover{background:var(--blue2)}.btn-subtle{background:#eef5fb;color:#24628f}.btn-outline{background:white;border-color:#d3e2ed;color:#235981}.login-foot{display:flex;gap:9px;align-items:center;justify-content:center;color:#8292a3;font-size:11px;margin-top:28px}.status-dot{width:8px;height:8px;border-radius:50%;background:#23b489}.setup-help{font-size:13px;color:#a85c29;line-height:1.5;margin-top:22px}.app-shell{display:flex;min-height:100vh}.sidebar{width:242px;background:#062d50;color:#bfd2e1;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;flex:none}.sidebar-top{padding:27px 22px;border-bottom:1px solid rgba(255,255,255,.07)}.sidebar-group{padding:36px 15px;flex:1}.sidebar-caption{font-size:10px;letter-spacing:.15em;font-weight:800;margin:0 12px 17px;color:#7391a8}.nav-item{display:flex;align-items:center;gap:14px;width:100%;padding:14px 14px;color:#adcadf;background:none;border:0;text-align:left;border-radius:9px;font-size:13px;font-weight:700;margin:3px 0}.nav-item:hover,.nav-item.selected{background:#15517f;color:white}.nav-symbol{font-size:22px;font-weight:400;line-height:1;width:24px;text-align:center}.sidebar-bottom{padding:20px 22px;border-top:1px solid rgba(255,255,255,.07)}.stage-label{color:#82a6c1;font-size:9px;letter-spacing:.11em;font-weight:800;margin-bottom:14px}.logout-btn{background:none;color:white;border:none;padding:0;font-weight:700;font-size:13px}.main-area{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:88px;background:white;border-bottom:1px solid #e3edf5;padding:0 41px;display:flex;align-items:center;justify-content:space-between}.topbar-left,.topbar-right{display:flex;align-items:center;gap:12px}.topbar-title .eyebrow{font-size:9px;color:#92a3b3}.topbar-title h1{font-size:20px;letter-spacing:-.035em;margin:5px 0 0}.admin-dot{height:35px;width:35px;background:#e9f1f9;color:#1b6baa;border-radius:50%;display:grid;place-items:center;font-weight:850}.admin-label{font-size:12px;font-weight:700}.menu-button{display:none;background:transparent;border:0;font-size:22px;color:var(--navy)}.content{max-width:1460px;width:100%;margin:0 auto;padding:32px 42px 50px;flex:1}.hero-bar{border-radius:17px;background:linear-gradient(120deg,#0b416c,#146aa6);padding:27px 34px;display:flex;align-items:center;justify-content:space-between;color:white;overflow:hidden;position:relative}.hero-kicker{font-size:10px;font-weight:850;letter-spacing:.14em;color:#aedff8}.hero-bar h2{font-size:25px;letter-spacing:-.04em;margin:9px 0}.hero-bar p{margin:0;color:#cfebfa;font-size:12px}.hero-decoration{font-size:130px;font-weight:900;color:rgba(255,255,255,.09);position:absolute;right:55px;top:-38px}.date-toolbar{display:flex;align-items:end;gap:12px;padding:25px 0}.date-control label{display:block;font-size:10px;font-weight:850;letter-spacing:.1em;color:#7b90a4;margin-bottom:9px}.date-control input{background:white;border:1px solid #d5e4ee;height:42px;border-radius:9px;padding:8px 12px;color:var(--text);min-width:180px}.toolbar-buttons{display:flex;gap:8px}.toolbar-buttons .btn{height:42px}.updated{margin-left:auto;display:flex;flex-direction:column;gap:4px;color:#8ca0b2;font-size:11px}.updated strong{color:#506d83;font-size:12px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:12px 0 17px}.section-heading h3{font-size:17px;letter-spacing:-.025em;margin:0;color:#153b59}.section-heading span,.small-muted{color:#859aaa;font-size:12px}.small-muted{margin:7px 0 0;line-height:1.4}.section-heading.separate{margin-top:28px}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.metric-card{background:white;border:1px solid #e1eaf2;border-radius:14px;box-shadow:var(--shadow);padding:19px 20px;min-height:157px}.metric-top{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#6e859a;font-size:12px;font-weight:700}.metric-icon{width:33px;height:33px;border-radius:9px;display:grid;place-items:center;font-size:20px}.metric-icon.blue{background:#e5f2ff;color:#1e84ca}.metric-icon.green{background:#dcf7ec;color:#13905f}.metric-icon.cyan{background:#e0f7fa;color:#199eae}.metric-icon.amber{background:#fff2d9;color:#c47c15}.metric-card strong{display:block;font-size:43px;color:#133f63;margin:10px 0 4px;letter-spacing:-.055em}.metric-card small{color:#9baab8;font-size:11px}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:17px}.panel{background:white;border:1px solid #e1eaf2;border-radius:14px;box-shadow:var(--shadow);padding:23px 24px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:21px}.panel-heading h3{font-size:16px;margin:0}.mini-tag{font-size:10px;background:#eff6fd;color:#2770a9;border-radius:20px;padding:7px 10px;font-weight:750}.stat-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf2f6;padding:12px 0;font-size:13px;color:#6e8497}.stat-row strong{color:#1b4869;font-size:17px}.progress-label{display:flex;justify-content:space-between;font-size:11px;color:#7891a3;margin:22px 0 10px}.progress-label b{font-size:13px;color:#296da2}.progress-track{height:9px;border-radius:99px;background:#eaf1f7;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#1b8fe5,#1cc1d4);width:0;transition:width .35s}.mini-note{color:#91a1af;font-size:11px;line-height:1.6;margin:14px 0 0}.finance-big{background:#f1f8ff;border-radius:9px;padding:20px 17px}.finance-big span{display:block;color:#64849b;font-size:12px}.finance-big strong{display:block;font-size:36px;color:#1c6da8;letter-spacing:-.055em;margin-top:7px}.history-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.history-item{border:1px solid #e0eaf2;background:#fff;border-radius:12px;padding:19px}.history-item span{font-size:11px;color:#7892a7;display:block;line-height:1.3;min-height:31px}.history-item strong{font-size:29px;color:#173f60;display:block;margin-top:7px;letter-spacing:-.03em}.help-line{font-size:11px;color:#7a91a4;margin:20px 0 0;line-height:1.7}.notice{background:#ffefd9;color:#915516;border:1px solid #f2c994;padding:13px 17px;border-radius:9px;margin-bottom:17px;font-size:13px}.filters{display:flex;gap:10px;margin-bottom:12px}.filters input,.filters select{height:44px;border:1px solid #d7e4ee;border-radius:9px;padding:0 13px;background:white;color:#3f6078;outline:none}.filters input{flex:1;min-width:0}.filters select{min-width:165px}.results-count{font-size:11px;color:#8095a6;margin:13px 0}.table-wrap{overflow-x:auto;background:white;border:1px solid #dce7f1;border-radius:13px;box-shadow:var(--shadow)}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left;white-space:nowrap}thead{background:#f1f7fb}th{padding:17px 16px;color:#55758b;font-size:11px;font-weight:800}td{padding:16px;border-top:1px solid #edf2f6;color:#405f76}tr:hover td{background:#f9fcff}.client-cell strong{color:#183f5c;font-size:12px}.client-cell small{display:block;color:#91a2af;margin-top:5px;font-size:10px}.badge{border-radius:25px;padding:7px 10px;display:inline-block;font-size:10px;font-weight:850;white-space:nowrap}.badge.good{background:#dff6ec;color:#13815d}.badge.miss{background:#fff0dc;color:#a46a19}.badge.closed{background:#f5e7e7;color:#a13e42}.badge.available{background:#e2f1ff;color:#1b71aa}.empty-cell{text-align:center;color:#95a6b4;padding:45px 20px}.foot{padding:18px 42px;border-top:1px solid #e4edf4;color:#97a8b8;font-size:10px;letter-spacing:.09em;font-weight:800}.view{display:none}.view.active{display:block}.mobile-nav{display:none}#toast{position:fixed;z-index:50;top:18px;right:20px;background:#133d5c;color:white;border-radius:10px;padding:12px 18px;font-size:13px;box-shadow:0 10px 35px #103a5730;opacity:0;pointer-events:none;transform:translateY(-8px);transition:.2s}#toast.shown{opacity:1;transform:translateY(0)}@media(max-width:1050px){.metrics-grid,.history-grid{grid-template-columns:repeat(2,1fr)}.content{padding:26px 28px}.topbar{padding:0 28px}}@media(max-width:760px){.login-shell{display:block}.login-visual{min-height:280px;padding:25px 28px}.login-visual .visual-content{margin-top:32px}.visual-content h1{font-size:39px}.visual-content p{font-size:13px;margin-bottom:20px}.visual-footer{display:none}.big-wave{right:-300px}.login-form-wrap{padding:0 18px}.login-card{padding:35px 9px}.login-card h2{font-size:33px}.sidebar{position:fixed;z-index:20;left:-255px;box-shadow:15px 0 45px #0003;transition:left .2s}.sidebar.open{left:0}.menu-button{display:block}.topbar{height:71px;padding:0 18px}.topbar-title .eyebrow{font-size:8px}.topbar-title h1{font-size:17px}.admin-label{display:none}.content{padding:18px 14px 90px}.hero-bar{padding:24px 20px}.hero-bar h2{font-size:22px}.hero-decoration{right:-10px}.date-toolbar{align-items:end;flex-wrap:wrap;padding:20px 0}.date-control{flex:1}.date-control input{width:100%;min-width:0}.toolbar-buttons{flex:1}.toolbar-buttons .btn{flex:1}.updated{width:100%;margin:0;flex-direction:row;gap:8px}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric-card{padding:15px;min-height:139px}.metric-top{font-size:10px}.metric-icon{width:27px;height:27px;font-size:17px}.metric-card strong{font-size:34px}.metric-card small{font-size:9px;line-height:1.3;display:block}.two-columns{grid-template-columns:1fr}.panel{padding:20px}.history-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.history-item{padding:14px}.history-item strong{font-size:26px}.filters{flex-direction:column}.filters select{width:100%}.section-heading{flex-wrap:wrap}.foot{display:none}.mobile-nav{display:flex;position:fixed;z-index:10;bottom:0;left:0;right:0;height:70px;padding-bottom:env(safe-area-inset-bottom);justify-content:space-around;background:white;border-top:1px solid #e2edf5;box-shadow:0 -7px 28px #143c5b12}.mobile-nav button{display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;flex:1;border:0;background:transparent;color:#8fa5b7;font-size:24px}.mobile-nav button span{font-size:10px;font-weight:750}.mobile-nav button.selected{color:#1375b8}}
/* ETAPA 2 · Calendario administrativo */
.calendar-heading{align-items:center;flex-wrap:wrap}.calendar-month-nav{display:flex;align-items:center;gap:12px}.calendar-month-nav strong{min-width:170px;text-align:center;color:#173f5b;font-weight:800;text-transform:capitalize}.calendar-month-nav .btn{font-size:23px;padding:6px 14px;min-height:40px}.cal-global-summary{font-size:12px;color:#426780;background:#eef7fe;border:1px solid #d4e9fa;padding:12px 16px;border-radius:10px;margin:14px 0}.cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:16px 0 7px}.cal-week span{text-align:center;font-size:10px;letter-spacing:.05em;font-weight:800;color:#7692a4}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.cal-loading{grid-column:1/-1;text-align:center;padding:25px;color:#6a869d}.cal-day{min-height:103px;min-width:0;display:flex;flex-direction:column;gap:5px;padding:11px 9px;background:white;text-align:left;border:1px solid #dce8f0;border-radius:11px;color:#234b67;transition:.12s}.cal-day:hover{border-color:#2e94d1;box-shadow:0 3px 15px #1672af1c}.cal-day.selected{outline:2px solid #0f8dd0;outline-offset:0;background:#f2faff}.cal-day.empty{background:transparent;border:0;box-shadow:none;pointer-events:none}.cal-day .cal-day-top{display:flex;justify-content:space-between;align-items:center;gap:3px}.cal-day .cal-n{font-size:15px;font-weight:850;color:#224961}.cal-day .cal-dot{height:8px;width:8px;border-radius:50%;background:#acb9c6;flex:none}.cal-day.open .cal-dot{background:#27a16d}.cal-day.closed .cal-dot{background:#e1a63f}.cal-day.blocked .cal-dot{background:#c35865}.cal-day .cal-small{font-size:10px;color:#658397;line-height:1.4}.cal-day .cal-strong{font-size:11px;font-weight:750;color:#23577a}.cal-day.past{opacity:.6}.cal-panels{display:grid;grid-template-columns:1.15fr 1fr;gap:15px;margin-top:22px}.cal-date-form{display:flex;flex-direction:column;align-items:stretch;gap:14px;margin-top:18px}.cal-date-form label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:750;color:#48697f}.cal-date-form input[type="number"]{height:45px;border-radius:9px;border:1px solid #d1e2ed;color:#153c58;padding:8px 13px;background:white;font-size:16px;max-width:240px}.cal-date-form input:disabled{background:#f3f6f9;color:#95a3af}.cal-date-form .cal-toggle{flex-direction:row;align-items:center;gap:12px}.cal-date-form .cal-toggle input{width:19px;height:19px;accent-color:#1286cd}.cal-warning{border-left:3px solid #e4a744;background:#fff8e9;color:#785927;padding:12px;font-size:11px;line-height:1.5;margin:1px 0}.cal-date-form .btn{align-self:flex-start}.cal-audit{margin-top:17px}.cal-audit .audit-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;border-top:1px solid #e4edf5;padding:12px 0;font-size:12px;color:#526e81}.cal-audit .audit-row b{color:#1e4c6f}.cal-readonly-info{color:#924a22;border-color:#f0c9a4;background:#fff5e8}
@media(max-width:1100px){.cal-panels{grid-template-columns:1fr}}@media(max-width:760px){.cal-grid{gap:3px}.cal-week{gap:3px}.cal-week span{font-size:9px}.cal-day{padding:7px 4px;min-height:96px;gap:3px;border-radius:7px}.cal-day .cal-n{font-size:12px}.cal-day .cal-small{font-size:8px}.cal-day .cal-strong{font-size:9px}.cal-day .cal-dot{height:6px;width:6px}.calendar-month-nav{width:100%;justify-content:space-between}.calendar-month-nav strong{min-width:0;font-size:14px}.cal-panels .panel{padding:18px 16px}.cal-date-form input[type="number"]{max-width:100%}.cal-date-form .btn{width:100%}.mobile-nav button{font-size:21px}.mobile-nav button span{font-size:9px}}
