:root{--bg:#f4f7fc;--panel:#ffffff;--panel-2:#f7f9fd;--navy:#092052;--ink:#0b2155;--text:#22324f;--muted:#5d6c87;--line:#e1e8f2;--accent:#0378fc;--accent-ink:#ffffff;--accent-text:#0a66d6;--ok:#138a5b;--warn:#b26a00;--bad:#d7353b;--info:#0378fc;--off:#5d6c87;--ok-bg:#e3f5ec;--warn-bg:#fdf1dc;--bad-bg:#fde8e8;--info-bg:#e7f1ff;--off-bg:#eef2f8;--radio:12px;--sombra:0 1px 2px rgba(9,32,82,.06),0 4px 16px rgba(9,32,82,.05);--f-display:"Barlow",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--f-body:"Barlow",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--f-mono:"Barlow",system-ui,sans-serif;color-scheme:light}html{-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--f-body);font-size:15px;line-height:1.45}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0);z-index:10;background:var(--panel)}a{color:var(--accent-text)}header{position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0);z-index:5}.top{background:var(--panel);border-bottom:1px solid var(--line)}.top-in{max-width:1100px;margin:0 auto;gap:12px;flex-wrap:wrap;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:10px}.marca,.top-in{display:flex;align-items:center}.marca{gap:10px;color:inherit;text-decoration:none}.marca img{width:40px;height:40px}.lockup{font-size:22px;font-weight:800;color:var(--navy);letter-spacing:.2px;line-height:1.1}.lockup span{color:var(--accent)}.meaning{display:block;font-size:11.5px;font-style:normal}.meaning,.usuario{color:var(--muted)}.usuario{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13.5px;text-align:right}.usuario b{color:var(--ink);font-weight:600;display:block}.band{background:var(--navy)}.band nav{max-width:1100px;margin:0 auto;display:flex;gap:4px;overflow-x:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.band nav button{font:600 14.5px var(--f-body);color:#c9d6f2;background:none;border:0;padding:11px 14px;border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap}.band nav button:hover{color:#fff}.band nav button[aria-selected=true]{color:#fff;border-bottom-color:var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-weight:600}main{max-width:1100px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:18px 48px}.demo{font-size:13px;color:var(--muted);margin-bottom:14px}.demo span{background:var(--warn-bg);color:var(--warn);font-weight:700;padding:1px 6px;border-radius:4px;margin-right:6px}h2{font-size:24px;margin:0 0 4px;text-wrap:balance}h2,h3{font-family:var(--f-display);font-weight:700;color:var(--ink)}h3{font-size:17px;margin:0}.lead{color:var(--muted);margin:0 0 16px;max-width:65ch}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px;margin-bottom:22px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radio);padding:12px 14px;cursor:pointer;text-align:left;font:inherit;color:inherit}.tile .n{font-family:var(--f-display);font-size:34px;font-weight:700;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tile .l{font-size:13px;color:var(--muted)}.tile.bad .n{color:var(--bad)}.tile.warn .n{color:var(--warn)}.tile.info .n{color:var(--info)}.tile.off .n{color:var(--off)}.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.chip{font:600 13px var(--f-body);border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:5px 11px;cursor:pointer}.chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.list{grid-gap:8px;gap:8px}.list,.row{display:grid}.row{grid-template-columns:6px 1fr auto;grid-gap:12px;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px 10px 0;overflow:hidden}.row .bar{align-self:stretch;border-radius:0 3px 3px 0}.row .main{min-width:0}.row .t{font-weight:700}.row .m{font-size:13px;color:var(--muted)}.row button.go{font:600 13px var(--f-body);background:none;border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:6px 10px;cursor:pointer}.pill{display:inline-block;font:700 12px var(--f-body);padding:2px 8px;border-radius:999px;white-space:nowrap}.s-casa{--c:var(--ok);--cb:var(--ok-bg)}.s-camino{--c:var(--info);--cb:var(--info-bg)}.s-jornada{--c:var(--accent);--cb:var(--info-bg)}.s-sindomicilio{--c:var(--warn);--cb:var(--warn-bg)}.s-libre{--c:var(--off);--cb:var(--off-bg)}.s-fuera{--c:var(--bad);--cb:var(--bad-bg)}.s-permiso{--c:var(--warn);--cb:var(--warn-bg)}.s-sin{--c:var(--off);--cb:var(--off-bg)}.pill{color:var(--c);background:var(--cb)}.bar{background:var(--c)}.mono{font-family:var(--f-mono);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:16px;gap:16px}@media (max-width:760px){.grid2{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radio);box-shadow:var(--sombra);padding:18px}.back{font:600 14px var(--f-body);background:none;border:0;color:var(--accent);cursor:pointer;padding:0;margin-bottom:10px}.kv{display:grid;grid-template-columns:auto 1fr;grid-gap:4px 14px;gap:4px 14px;font-size:14px;margin:10px 0 0}.kv dt{color:var(--muted)}.kv dd{margin:0}.map{width:100%;height:auto;border-radius:8px;background:var(--off-bg);display:block}.tl{list-style:none;margin:10px 0 0;padding:0;grid-gap:0;gap:0}.tl,.tl li{display:grid}.tl li{grid-template-columns:52px 14px 1fr;grid-gap:8px;gap:8px;align-items:start;font-size:14px}.tl .h{font-family:var(--f-mono);font-size:13px;color:var(--muted);padding-top:1px}.tl .d{width:10px;height:10px;border-radius:50%;margin-top:5px;background:var(--off);position:relative}.tl li:not(:last-child) .d:after{content:"";position:absolute;left:4px;top:10px;width:2px;height:24px;background:var(--line)}.tl .x{padding-bottom:12px}.tl .d.bad{background:var(--bad)}.tl .d.ok{background:var(--ok)}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.btn{font:600 14px var(--f-body);border-radius:9px;padding:9px 14px;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--ink)}.btn.pri{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:default}label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}input,select{font:15px var(--f-body);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:7px 9px;width:100%;box-sizing:border-box}.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px;gap:12px}.cfg h3{margin-bottom:10px}.cfg+.cfg{margin-top:14px}.tbl{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}td,th{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.switch,td select{width:auto}.switch{accent-color:var(--accent)}.note{font-size:13px;color:var(--muted);margin-top:8px}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;font-weight:600;font-size:14px;z-index:20}.estado{font-size:13px;font-weight:700}@media (prefers-reduced-motion:no-preference){.row,.tile{transition:transform .12s}.tile:hover{transform:translateY(-1px)}}.login-wrap{min-height:100vh;display:grid;place-items:center;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:24px}.login{width:100%;max-width:380px}.form-login{display:grid;grid-gap:6px;gap:6px}.form-login .btn{margin-top:10px}.error{color:var(--bad)}.error,.ok-msg{font-size:14px;font-weight:600}.ok-msg{color:var(--ok)}.usuario form{margin:0}.salir{font:600 13px var(--f-body);background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:9px;padding:6px 12px;cursor:pointer}.salir:hover{border-color:var(--accent)}.lnk{font-weight:600}.lnk,.selcli{font-size:13.5px}.selcli{width:auto;padding:5px 8px;background:var(--panel)}.login .marca{margin-bottom:16px}