:root{color:#132238;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:#f4f7fb}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:root{--ink:#132238;--muted:#66758a;--line:#dfe6ee;--blue:#1769e0;--blue-dark:#0d4ea8;--green:#087d55;--amber:#a45c04;--red:#b42318;--surface:#fff;--canvas:#f4f7fb}.shell{min-height:100vh}.topbar{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:14px;height:76px;padding:0 4vw;display:flex}.brand-logo{object-fit:contain;object-position:left center;flex:none;width:150px;height:50px}.brand-logo.login-logo{width:min(270px,100%);height:auto;max-height:112px}.brand-copy{flex-direction:column;line-height:1.25;display:flex}.brand-copy span,.admin-email{color:var(--muted);font-size:.78rem}.admin-email{text-overflow:ellipsis;white-space:nowrap;max-width:240px;margin-left:auto;overflow:hidden}.ghost{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:9px;padding:9px 15px}.overview{justify-content:space-between;align-items:end;gap:24px;max-width:1480px;margin:auto;padding:38px 4vw 24px;display:flex}.eyebrow{color:var(--blue);letter-spacing:.12em;margin:0 0 8px;font-size:.72rem;font-weight:800}h1{letter-spacing:-.045em;margin:0;font-size:clamp(2rem,4vw,3.35rem);line-height:1}.lede{color:var(--muted);margin:14px 0 0;line-height:1.55}.primary{background:var(--blue);color:#fff;border:0;border-radius:10px;padding:13px 18px;font-weight:750;box-shadow:0 7px 18px #1769e029}.primary.full{width:100%;margin-top:4px}.page-notice{color:#174f94;background:#edf5ff;border:1px solid #bad4f7;border-radius:9px;max-width:1362px;margin:-4px auto 18px;padding:11px 14px;font-size:.86rem}.content-grid{grid-template-columns:minmax(390px,.9fr) minmax(500px,1.45fr);max-width:1480px;height:min(720px,100vh - 230px);min-height:570px;margin:auto;padding:0 4vw 30px;display:grid}.employee-panel,.map-panel{border:1px solid var(--line);background:var(--surface)}.employee-panel{border-radius:16px 0 0 16px;flex-direction:column;display:flex;overflow:hidden}.employee-scroll{min-height:0;overflow-y:auto}.search{border:1px solid var(--line);height:44px;color:var(--muted);border-radius:10px;align-items:center;gap:8px;margin:18px;padding:0 12px;display:flex}.search:focus-within{border-color:#8bb7ef;box-shadow:0 0 0 3px #1769e014}.search input{width:100%;color:var(--ink);background:0 0;border:0;outline:0}.summary-row{color:var(--muted);justify-content:space-between;padding:0 20px 15px;font-size:.82rem;display:flex}.online-dot{color:var(--green);font-weight:700}.employee-card{border-top:1px solid var(--line);cursor:pointer;grid-template-columns:44px 1fr auto;align-items:start;gap:12px;padding:17px 16px;transition:background .15s;display:grid}.employee-card:hover{background:#f8fbff}.employee-card.selected{box-shadow:inset 3px 0 var(--blue);background:#f0f6ff}.employee-card.disabled{opacity:.7}.avatar{color:#1757a8;background:#dbeafe;border-radius:50%;place-items:center;width:42px;height:42px;font-size:.8rem;font-weight:800;display:grid}.employee-main{flex-direction:column;gap:5px;min-width:0;display:flex}.employee-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.employee-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.badge{white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:.66rem;font-weight:800}.badge.recent{color:var(--green);background:#dff7ed}.badge.delayed{color:var(--amber);background:#fff1d6}.badge.offline,.badge.permission{color:var(--red);background:#fee8e7}.badge.never{color:#556274;background:#e9edf2}.device-id,.employee-main time,.request-state{color:var(--muted);font-size:.76rem}.request-state{color:#2b62a5;font-weight:700}.request-state.failed,.request-state.timed_out,.request-state.device_offline,.request-state.permission_disabled,.request-state.gps_unavailable{color:var(--red)}.request-button{color:var(--blue-dark);white-space:nowrap;background:#fff;border:1px solid #a8c8f2;border-radius:8px;padding:8px 10px;font-size:.73rem;font-weight:750}.map-panel{background:#eaf0e6;border-left:0;border-radius:0 16px 16px 0;position:relative;overflow:hidden}.map-panel>div:first-child{width:100%;height:100%}.map-message{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:28px;display:flex}.map-message strong{color:var(--ink)}.map-card{z-index:2;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff5;border-radius:12px;flex-direction:column;gap:6px;width:min(430px,100% - 36px);padding:16px 18px;display:flex;position:absolute;bottom:22px;left:18px;box-shadow:0 12px 30px #1b2d4026}.map-card-top{justify-content:space-between;align-items:center;display:flex}.map-card span:not(.badge),.map-card time{color:var(--muted);font-size:.76rem}.map-card .enabled{font-weight:700;color:var(--green)!important}.map-card .disabled-text,.map-card .warning{font-weight:700;color:var(--red)!important}.card-actions{gap:8px;padding-top:4px;display:flex}.text-button{color:var(--blue-dark);background:#edf5ff;border:0;border-radius:7px;padding:7px 10px;font-size:.76rem;font-weight:750}.text-button.danger{color:var(--red);background:#fff0ef}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1322388f;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog{border:1px solid var(--line);background:#fff;border-radius:16px;width:min(480px,100%);padding:28px;box-shadow:0 24px 70px #0b172844}.confirm-dialog h2{color:var(--ink);margin:0;font-size:1.55rem}.confirm-dialog p:not(.eyebrow){color:var(--muted);line-height:1.55}.confirm-dialog label{color:var(--ink);flex-direction:column;gap:8px;margin-top:20px;font-size:.84rem;display:flex}.confirm-dialog input{border:1px solid var(--line);color:var(--ink);border-radius:9px;outline:none;padding:12px}.confirm-dialog input:focus{border-color:#79aaf0;box-shadow:0 0 0 3px #1769e014}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.danger-button{background:var(--red);color:#fff;border:0;border-radius:9px;padding:11px 15px;font-weight:750}.danger-button:disabled{opacity:.5}.empty{color:var(--muted);text-align:center;padding:40px 20px}footer{max-width:1480px;color:var(--muted);text-align:center;margin:0 auto;padding:0 4vw 28px;font-size:.75rem}.login-shell,.config-screen,.loading-screen{background:radial-gradient(circle at 50% 0,#e8f1ff 0,#f4f7fb 42%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--line);background:#fff;border-radius:18px;width:min(440px,100%);padding:34px;box-shadow:0 20px 60px #1b2d401a}.login-card .login-logo{margin-bottom:28px}.login-card h1{font-size:2.25rem}.login-card .lede{margin-bottom:26px}.login-card label{flex-direction:column;gap:7px;margin:14px 0;font-size:.8rem;font-weight:750;display:flex}.login-card input{border:1px solid var(--line);border-radius:9px;outline:none;padding:12px}.login-card input:focus{border-color:#79aaf0;box-shadow:0 0 0 3px #1769e014}.login-card small{color:var(--muted);margin-top:18px;line-height:1.5;display:block}.error-banner{color:var(--red);background:#fff0ef;border:1px solid #ffc9c5;border-radius:8px;padding:10px 12px;font-size:.8rem;line-height:1.45}.config-screen code{background:#eef2f6;border-radius:4px;padding:2px 5px}.loading-screen{color:var(--muted);flex-direction:column;gap:14px;display:flex}.spinner{border:3px solid #dbe5f2;border-top-color:var(--blue);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=920px){.overview{flex-direction:column;align-items:stretch}.primary{align-self:flex-start}.content-grid{grid-template-columns:1fr;height:auto}.employee-panel{border-radius:16px 16px 0 0;max-height:580px}.map-panel{border-left:1px solid var(--line);border-top:0;border-radius:0 0 16px 16px;min-height:520px}}@media (width<=600px){.topbar{padding:0 18px}.brand-copy span,.admin-email{display:none}.admin-email+.ghost{margin-left:auto}.overview,.content-grid{padding-left:18px;padding-right:18px}.overview{padding-top:28px}.employee-card{grid-template-columns:40px 1fr}.request-button{grid-column:2;justify-self:start}.map-panel{min-height:440px}.login-card{padding:26px}}
