:root{--navy:#03253a;--blue:#164e96;--cyan:#18a1a6;--bg:#f3f6f8;--ink:#172b3a;--muted:#72818d;--line:#dfe7ec;--white:#fff;--green:#199b69;--orange:#e58b24;--red:#d64d52}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#425564;margin-bottom:15px}input,select,textarea{width:100%;border:1px solid #cdd9e0;border-radius:9px;background:#fff;padding:11px 12px;font:inherit;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #164e9617}textarea{min-height:85px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:12px 19px;background:var(--blue);color:#fff;font-weight:800;cursor:pointer}.btn.light{background:#fff;color:var(--navy)}.muted,.hint{color:var(--muted)}.hint{font-size:12px}.eyebrow{font-size:11px;font-weight:900;letter-spacing:1.5px;color:var(--cyan)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.alert{padding:12px 15px;border-radius:9px;margin-bottom:18px}.alert.ok{background:#dff6ed;color:#166b4d}.alert.error{background:#fde8e8;color:#9e3438}.shell{min-height:100vh;display:grid;grid-template-columns:245px 1fr}aside{background:var(--navy);color:#fff;padding:22px 14px;position:fixed;width:245px;inset:0 auto 0 0;overflow:auto}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 25px}.brand img{width:50px;height:50px;border-radius:13px;object-fit:contain;background:#fff}.brand b{display:block;font-family:Georgia,serif;font-size:27px}.brand span{display:block;color:#94b5c7;font-size:12px;text-transform:uppercase;letter-spacing:1px}nav{display:grid;gap:4px}nav a{padding:11px 13px;border-radius:8px;color:#bdd0db;font-size:14px}nav a:hover,nav a.active{color:#fff;background:#ffffff13}nav a.active{border-left:3px solid #35bcc1}nav a.disabled{margin-top:10px;opacity:.65}nav small{float:right;padding:3px 6px;border-radius:99px;background:#ffffff18;font-size:8px;text-transform:uppercase}.content{grid-column:2;padding:0 30px 40px;max-width:1500px;width:100%;margin:auto}.content>header{display:flex;align-items:center;justify-content:space-between;padding:22px 0}.content h1{font-size:25px;margin:3px 0}.user{display:grid;text-align:right;font-size:13px}.user span{font-size:11px;color:var(--muted)}.user a{color:var(--blue);font-size:11px;margin-top:3px}.menu{display:none}.hero{padding:28px 30px;border-radius:15px;background:linear-gradient(125deg,var(--navy),#0a4664);color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:0 12px 30px #03253a20}.hero span{font-size:11px;letter-spacing:1px;color:#95d5dc}.hero h2{font-size:28px;margin:8px 0}.hero p{margin:0;color:#b9d1dc}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:18px 0}.stats article,.card{background:#fff;border:1px solid #e5ecef;border-radius:13px;box-shadow:0 3px 12px #112d4010}.stats article{padding:18px;position:relative}.stats article i{position:absolute;width:5px;left:0;top:15px;bottom:15px;border-radius:5px}.stats article i.blue{background:var(--blue)}.stats article i.green{background:var(--green)}.stats article i.orange{background:var(--orange)}.stats article i.red{background:var(--red)}.stats article span{display:block;font-size:12px;color:var(--muted)}.stats article strong{font-size:28px;display:block;margin-top:5px}.card{padding:22px;margin-bottom:18px}.card h2{font-size:18px;margin:0 0 18px}.card h3{font-size:14px}.card-head{display:flex;justify-content:space-between}.card-head p{margin-top:-12px;color:var(--muted);font-size:12px}.two{display:grid;grid-template-columns:minmax(330px,.75fr) minmax(450px,1.25fr);gap:18px}.attendance{grid-template-columns:370px 1fr}.clock{font-size:39px;font-weight:800;color:var(--navy);letter-spacing:1px;margin:15px 0}.punch{background:linear-gradient(180deg,#fff,#f8fcfd)}fieldset{border:1px solid var(--line);border-radius:9px;margin-bottom:16px}.check{display:inline-flex;align-items:center;grid-auto-flow:column;gap:5px;margin:5px 10px 5px 0}.check input{width:auto}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.6px;padding:10px;border-bottom:1px solid var(--line)}td{padding:12px 10px;border-bottom:1px solid #edf1f3;white-space:nowrap}.status{display:inline-block;border-radius:99px;padding:5px 8px;background:#e8f5f0;color:#167451;font-size:9px;font-weight:900}.status.retardo,.status.salida_anticipada{background:#fff0db;color:#a66113}.status.sin_clasificar{background:#eef1f3;color:#64727c}.no-data,.empty{text-align:center;color:var(--muted);padding:45px 15px}.empty{background:#fff;border-radius:13px}.empty>div{font-size:45px;color:var(--blue)}.pill{display:inline-block;background:#e8f3fa;color:var(--blue);padding:5px 9px;border-radius:99px;font-size:10px;font-weight:900}.install-body,.login-body{min-height:100vh;background:linear-gradient(135deg,#031f32,#0b4d6a);display:grid;place-items:center;padding:25px}.installer{width:min(1080px,100%);display:grid;grid-template-columns:.75fr 1.25fr;border-radius:20px;overflow:hidden;box-shadow:0 25px 70px #00131f66}.install-brand{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:#062b40;color:#fff;padding:45px}.install-brand img{width:170px;border-radius:25px}.install-brand p{text-transform:uppercase;letter-spacing:5px;font-weight:800;color:#56c4c8}.install-brand h1{font-size:28px;margin:5px}.install-brand span{color:#9ab9c9}.install-panel{background:#fff;padding:38px;max-height:90vh;overflow:auto}.install-panel h2{font-size:27px;margin:0}.install-panel h3{margin:25px 0 12px}.requirements{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.req{font-size:11px;padding:5px 8px;border-radius:99px}.req.ok{background:#e4f6ee;color:#16704e}.req.bad{background:#fde8e8;color:#9e3438}.success-icon{width:70px;height:70px;border-radius:50%;background:#dff6ed;color:#16885e;display:grid;place-items:center;font-size:35px}.login-card{width:min(420px,100%);background:#fff;border-radius:18px;padding:35px;box-shadow:0 25px 70px #00131f66}.login-card>img{display:block;width:100px;margin:0 auto 20px;border-radius:15px}.login-card h1{margin:5px 0}.login-card .btn{width:100%}
@media(max-width:900px){.shell{display:block}aside{transform:translateX(-100%);transition:.2s;z-index:5}.nav-open aside{transform:none}.content{padding:0 16px}.menu{display:block;border:0;background:#fff;padding:10px;border-radius:8px}.user b,.user span{display:none}.stats{grid-template-columns:repeat(2,1fr)}.two,.attendance{grid-template-columns:1fr}.grid.three{grid-template-columns:repeat(2,1fr)}.installer{grid-template-columns:1fr}.install-brand{padding:25px}.install-brand img{width:90px}.install-brand h1,.install-brand span{display:none}}@media(max-width:560px){.grid,.grid.three,.stats{grid-template-columns:1fr}.hero{align-items:flex-start;gap:20px;flex-direction:column}.content h1{font-size:20px}.install-panel{padding:25px}}
.action-link{display:inline-block;color:var(--blue);font-weight:800;font-size:12px;padding:7px 9px;border-radius:7px;background:#eaf2fa}.action-link.secondary{color:var(--muted);background:#eef2f4}.kiosk-body{margin:0;min-height:100vh;background:#031d2d;color:#fff;overflow:hidden}.kiosk-activate{width:min(430px,calc(100% - 36px));margin:6vh auto;background:#fff;color:var(--ink);border-radius:20px;padding:34px;box-shadow:0 20px 70px #0007}.kiosk-activate>img{display:block;width:110px;border-radius:16px;margin:0 auto 20px}.kiosk-activate h1{margin:5px 0}.kiosk-screen{height:100vh;display:grid;grid-template-rows:auto 1fr auto;padding:max(18px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));background:radial-gradient(circle at 50% 45%,#0b506d,#031d2d 70%)}.kiosk-screen>header{display:flex;align-items:center;gap:14px;z-index:2}.kiosk-screen>header img{width:62px;height:62px;object-fit:contain;border-radius:14px;background:#fff}.kiosk-screen>header div{display:grid}.kiosk-screen>header b{font-size:20px;letter-spacing:1px}.kiosk-screen>header span{color:#9bc2d1}.kiosk-screen>header time{margin-left:auto;font-size:34px;font-weight:800}.camera-stage{position:relative;align-self:center;justify-self:center;width:min(920px,90vw);height:min(68vh,680px);overflow:hidden;border-radius:34px;background:#00131d;box-shadow:0 20px 60px #0007;border:2px solid #ffffff20}.camera-stage video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,#00131dcc);pointer-events:none}.face-guide{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-56%);width:min(34vh,260px);height:min(45vh,350px);border:3px solid #72e0db;border-radius:48% 48% 43% 43%;box-shadow:0 0 0 999px #00141d35,0 0 35px #34d6d080}.face-guide i{position:absolute;inset:10px;border:1px dashed #ffffff75;border-radius:inherit}.camera-message{position:absolute;z-index:2;left:0;right:0;bottom:28px;text-align:center;display:grid;gap:5px;text-shadow:0 2px 8px #000}.camera-message b{font-size:27px}.camera-message span{color:#b9dbe4}.kiosk-result{position:absolute;z-index:3;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px;background:#052b3ded}.kiosk-result.success{background:#07523de8}.kiosk-result.failure{background:#52232ae8}.kiosk-result strong{font-size:24px;letter-spacing:1px}.kiosk-result h1{font-size:43px;margin:16px 0 4px}.kiosk-result p{font-size:21px;margin:5px}.kiosk-result span{color:#d5ebdf}.kiosk-screen>footer{display:flex;align-items:center;gap:9px;color:#9bc2d1}.kiosk-screen>footer a{margin-left:auto;font-size:12px}.live-dot{width:10px;height:10px;border-radius:50%;background:#45db9a;box-shadow:0 0 14px #45db9a}.kiosk-retry{border:1px solid #ffffff50;border-radius:99px;padding:8px 14px;background:transparent;color:#fff;margin-left:15px}@media(max-width:700px){.kiosk-screen>header time{font-size:22px}.kiosk-screen>header b{font-size:15px}.camera-stage{width:94vw;height:68vh}.camera-message b{font-size:21px}.kiosk-result h1{font-size:31px}}
.admin-install,.admin-install-login{border:1px solid #bdd2e5;background:#eef6fb;color:#164e96;border-radius:8px;padding:7px 10px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.admin-install-login{width:100%;margin-top:12px;padding:11px}.user .admin-install{margin-top:5px}

:root{--navy:#082b42;--blue:#087c9f;--cyan:#12b3c6;--green:#0f956c;--ink:#152a39}
.brand img{width:105px;height:45px;object-fit:contain;background:transparent;border-radius:8px}.brand b{font:700 16px Arial,sans-serif;letter-spacing:.5px}.brand span{font-size:10px}.login-card>img{width:min(260px,100%);height:auto;max-height:80px;object-fit:contain;background:#082b42;border-radius:12px}.install-brand img{width:min(330px,100%);max-height:95px;border-radius:12px}.kiosk-screen>header img{width:155px;height:58px;object-fit:contain;background:#082b42}.kiosk-activate>img{width:210px;object-fit:contain;background:#082b42}
.group-ribbon{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 18px}.group-ribbon span{background:#e4f5f8;color:#0a5470;border-radius:50px;font-size:11px;padding:7px 12px;font-weight:800}
.callout{padding:13px 17px;border-left:4px solid var(--cyan);background:#ecf8fa;color:#335766;border-radius:8px;margin:10px 0 20px}.btn.alt{background:#ecf6f9;color:#12617a}.btn.danger{background:#a93b46}.badge{font-size:11px;font-weight:800;padding:5px 9px;border-radius:99px;background:#eff3f6;color:#365466}.split-total{font-size:23px;font-weight:900;color:#082b42}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:15px}.summary-grid>article{border:1px solid #d8e8ed;border-radius:12px;padding:18px;background:#f9fcfd}.summary-grid>article h3{color:#16718c}.summary-grid dl{display:grid;grid-template-columns:1fr auto;gap:8px}.summary-grid dd{font-weight:900;margin:0}.summary-grid dt{color:#52707b}.mobile-card{max-width:530px;margin:6vh auto;background:#fff;border-radius:20px;padding:27px;box-shadow:0 20px 50px #07172e22}.mobile-card .btn{width:100%;margin:8px 0}.mobile-card img{width:270px;max-width:100%;display:block;margin:0 auto 25px}.mobile-body{background:linear-gradient(140deg,#082b42,#0d7994);padding:18px;min-height:100vh}.coord{font-family:monospace;font-size:12px;overflow-wrap:anywhere}.flag{font-size:12px;padding:5px 9px;border-radius:99px;background:#ecf8ee;color:#2d7056}.table-actions{display:flex;flex-wrap:wrap;gap:7px}.wide-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.prepayroll-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 15px}@media(max-width:780px){.summary-grid,.prepayroll-form{grid-template-columns:1fr}}


/* V1.1 - Empresas del Grupo */
.company-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:18px;padding:26px 30px;border-radius:16px;background:linear-gradient(118deg,#082b42,#0b5369 70%,#1484a0);color:white;box-shadow:0 14px 30px #082b4222}.company-hero .eyebrow{color:#93e1e6}.company-hero h2{font-size:29px;margin:7px 0}.company-hero p{color:#cce9ed;margin:0;max-width:460px;line-height:1.5}.company-kpis{display:grid;grid-template-columns:repeat(3,110px);gap:12px}.company-kpis div{background:#ffffff14;border:1px solid #ffffff33;border-radius:11px;padding:12px 10px;text-align:center}.company-kpis strong{font-size:27px;display:block}.company-kpis span{font-size:10px;color:#ccf4f5}.company-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.company-tile{display:flex;align-items:center;gap:12px;padding:15px;min-height:95px;background:white;border:1px solid #d9e6ed;border-radius:13px;color:var(--ink);text-decoration:none;box-shadow:0 3px 10px #082b420b}.company-tile:hover,.company-tile.selected{border-color:#12a6b5;box-shadow:0 9px 22px #0d769621}.company-monogram{display:grid;place-items:center;flex:0 0 50px;height:50px;background:#e3f3f7;color:#0e5877;border-radius:11px;font-size:13px;font-weight:900}.company-tile-body{display:grid;gap:5px;min-width:0;flex:1}.company-tile-body b,.company-tile-body small,.company-tile-body em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-tile-body b{font-size:14px}.company-tile-body small{color:#617a88;font-size:11px}.company-tile-body em{color:#11829e;font-size:10px;font-style:normal;font-weight:700}.company-tile>span:last-child{font-size:27px;color:#8db5c4}.company-editor h3{padding:13px 0 8px;margin:20px 0;border-top:1px solid #e0ebef;font-size:13px;letter-spacing:.3px;color:#0a6882}.company-editor .grid.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 15px}.company-editor label{font-weight:700}.company-wide{grid-column:1/-1}.company-check{display:flex;align-items:center;gap:10px;margin-top:20px}.company-check input{width:auto}.company-plants{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0 22px}.company-plant{display:flex;align-items:center;gap:8px;padding:13px;border-radius:11px;background:#f6fafc;border:1px solid #dbe8ec;cursor:pointer}.company-plant:has(input:checked){background:#e8f7f9;border-color:#14a6b6}.company-plant input{width:auto;flex:0 0 auto}.company-plant b{font-size:12px;flex:1}.company-plant small{color:#688290}.company-form-footer{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:15px}.company-off{background:#f6eeee;color:#9a5263}
@media(max-width:1160px){.company-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.company-hero{flex-direction:column;align-items:stretch}.company-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.company-cards{grid-template-columns:1fr}.company-editor .grid.three,.company-plants{grid-template-columns:1fr}.company-hero{padding:21px}.company-hero h2{font-size:22px}}

/* V1.1.1: accesos permanentes al Centro de actualizaciones para Super Administración. */
aside .updates-primary{display:flex;align-items:center;gap:9px;padding:13px 12px;margin:0 2px 13px;border-radius:11px;border:1px solid #5fd1d586;background:#0f5165;color:#fff;text-decoration:none;font-size:12px;font-weight:800;box-shadow:0 5px 18px #0002}
aside .updates-primary span{flex:1;line-height:1.3}aside .updates-primary small{font-size:9px;background:#ffffff24;border-radius:4px;padding:3px 5px;letter-spacing:.6px}aside .updates-primary:hover,aside .updates-primary.active{background:#11768c;border-color:#76eaec}
.updates-header-link{margin-left:auto;margin-right:18px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #b9dadd;padding:10px 15px;border-radius:9px;background:#e6f7f9;color:#0a526a;font-size:13px;font-weight:800;white-space:nowrap}.updates-header-link:hover{background:#d7f0f2}
@media(max-width:720px){.updates-header-link{padding:8px 10px;margin-right:8px;font-size:11px}}
