:root{
  --bg:#f2efe3;
  --bg-2:#e9e4d2;
  --surface:#fbfaf5;
  --surface-solid:#fdfcf7;
  --surface-soft:#eeeadb;
  --ink:#161b13;
  --ink-2:#3a4234;
  --muted:#7a7460;
  --line:#ddd6c0;
  --line-strong:#c9c0a3;
  --primary:#0d6d5b;
  --primary-deep:#084c40;
  --primary-2:#14a985;
  --primary-3:#2ed0a3;
  --accent:#ff6a1f;
  --accent-deep:#d4530f;
  --danger:#bc342b;
  --warn:#b36a08;
  --ok:#0a8050;
  --sidebar:#071d18;
  --sidebar-2:#0a2c24;
  --shadow-sm:none;
  --shadow:none;
  --shadow-lg:0 20px 50px rgba(15,25,18,.22);
  --radius:8px;
  --radius-lg:10px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --font-display:'Oswald',sans-serif;
  --font-body:'IBM Plex Sans',sans-serif;
  --font-mono:'IBM Plex Mono',monospace
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body),ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink);min-height:100vh}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
::selection{background:rgba(255,106,31,.22)}

.shell{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh}
.sidebar{background:var(--sidebar);color:#eef8f5;padding:22px 16px;position:sticky;top:0;height:100vh;overflow:hidden;z-index:30;border-right:1px solid rgba(255,255,255,.05)}
.sidebar:after{content:none}
.brand{display:flex;align-items:center;gap:12px;margin:2px 4px 27px;position:relative;z-index:1}
.brand-mark{position:relative;width:44px;height:44px;border-radius:2px;display:grid;place-items:center;background:linear-gradient(145deg,var(--primary-3),var(--primary-deep) 76%);color:#fff;font-family:var(--font-display);font-weight:700;font-size:19px;overflow:hidden}
.brand-mark:before{content:none}
.brand-mark:after{content:none}
.brand-mark>span{opacity:1}
.brand strong{font-family:var(--font-display);font-weight:600;font-size:16px;letter-spacing:.02em}.brand small{display:block;color:#8fae9f;font-family:var(--font-mono);font-size:9.5px;margin-top:3px;letter-spacing:.03em;text-transform:uppercase}
.brand-meta{display:inline-flex;align-items:center;gap:5px;margin-top:4px;color:#6fa799;font-size:10px}.brand-meta:before{content:"";width:6px;height:6px;border-radius:50%;background:#38d39f;box-shadow:0 0 0 4px rgba(56,211,159,.1)}
.nav{position:relative;z-index:1}.nav-section{color:#6e8f7f;font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:14px 13px 6px}
.nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:2px;color:#bcd3cc;margin:2px 0;font-size:13px;font-weight:600;transition:.18s var(--ease);border:1px solid transparent;border-left:2px solid transparent}
.nav a svg{width:17px;height:17px;stroke:currentColor;opacity:.82;flex:0 0 auto}.nav a:hover{background:rgba(255,255,255,.055);color:#fff;transform:translateX(2px)}.nav a.active{background:rgba(46,208,163,.12);color:#f4fffb;border-color:transparent;border-left-color:var(--primary-3)}
.nav a.active svg{color:var(--primary-3);opacity:1}
.sidebar-footer{position:absolute;left:16px;right:16px;bottom:16px;padding:12px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03);border-radius:2px;color:#96b8af;font-size:11px;z-index:2}.sidebar-footer strong{color:#eaf8f4;font-size:12px}.sidebar-footer .btn{margin-top:9px;width:100%}

.main{padding:26px 30px 42px;min-width:0;max-width:1800px;width:100%;margin:0 auto}
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:16px}.topbar-left{display:flex;align-items:center;gap:12px}.topbar h1{font-family:var(--font-display);font-weight:600;font-size:26px;line-height:1.15;letter-spacing:0;margin:0}.topbar-kicker{font-family:var(--font-mono);font-size:10.5px;color:var(--muted);font-weight:500;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}.topbar-right{display:flex;align-items:center;gap:10px}.date-pill,.user-pill{display:flex;align-items:center;gap:8px;background:var(--surface-solid);border:1px solid var(--line);box-shadow:none;padding:9px 12px;border-radius:2px;color:#4b5245;font-family:var(--font-mono);font-size:11.5px}.date-pill svg,.user-pill svg{width:15px;height:15px;color:var(--primary)}
.mobile-menu{display:none}

.card{background:var(--surface-solid);border:1px solid var(--line);border-radius:2px;padding:20px;box-shadow:none;transition:border-color .15s ease}.card:hover{border-color:#cedfd9}.card h2,.card h3{font-family:var(--font-display);font-weight:600;letter-spacing:0}.card h2{font-size:17px;margin:0 0 14px}.card h3{font-size:14px;margin:8px 0 2px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card{position:relative;overflow:hidden;min-height:130px}.stat-card:after{content:none}.stat-icon{width:36px;height:36px;border-radius:2px;display:grid;place-items:center;background:var(--surface-soft);color:var(--primary);margin-bottom:13px}.stat-icon svg{width:18px;height:18px}.stat-label{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.stat .value,.stat-card .value{font-family:var(--font-display);font-size:30px;line-height:1;font-weight:600;letter-spacing:0;margin-top:7px;color:var(--ink)}.stat-note{font-size:11px;color:var(--muted);margin-top:8px}.stat-card.good .stat-icon{background:#e7f8ef;color:var(--ok)}.stat-card.warn .stat-icon{background:#fff2df;color:var(--warn)}

.dashboard-welcome{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 26px;margin-bottom:16px;overflow:hidden;background:var(--sidebar);color:#effff9;border:0;box-shadow:none;border-radius:2px}.dashboard-welcome:before{content:none}.dashboard-welcome:after{content:none}.welcome-copy{position:relative;z-index:2}.welcome-kicker{display:flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:10.5px;color:#9fc1b0;font-weight:500;text-transform:uppercase;letter-spacing:.08em}.welcome-kicker:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--primary-3);box-shadow:0 0 0 4px rgba(46,208,163,.15)}.dashboard-welcome h2{font-family:var(--font-display);font-weight:600;font-size:25px;margin:8px 0 5px;letter-spacing:0}.dashboard-welcome p{margin:0;color:#c8e9df;font-size:13px}.welcome-action{position:relative;z-index:2;display:flex;gap:9px;flex-wrap:wrap}.dashboard-welcome .btn.primary{background:#fff;border-color:#fff;color:var(--primary-deep)}.dashboard-welcome .btn.secondary{background:rgba(255,255,255,.09);color:#effff9;border-color:rgba(255,255,255,.13)}

.grid{display:grid;gap:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.section{margin-top:17px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-title h2{font-size:17px;margin:0}.section-title p{margin:3px 0 0;font-size:12px;color:var(--muted)}

.btn{appearance:none;border:1px solid var(--line);border-radius:2px;padding:9px 14px;font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background-color .12s ease,transform .08s ease;min-height:38px}.btn svg{width:15px;height:15px}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:none}.btn.primary:hover:not(:disabled){background:var(--primary-deep);border-color:var(--primary-deep)}.btn.secondary{background:var(--surface-soft);color:var(--ink-2);border-color:var(--line)}.btn.secondary:hover:not(:disabled){background:#e5f1ed}.btn.ghost{background:rgba(255,255,255,.035);color:#c7ded7;border-color:rgba(255,255,255,.07)}.btn.danger{background:#fff0ee;color:var(--danger);border-color:#f7d9d5}.btn.full{width:100%}
.btn.accent{background:var(--accent);border-color:var(--accent-deep);color:#1a0d05;box-shadow:0 3px 0 var(--accent-deep)}
.btn.accent:hover:not(:disabled){background:#ff7936}
.btn.accent:active:not(:disabled){box-shadow:0 0 0 var(--accent-deep);transform:translateY(3px)}.btn:disabled{opacity:.46;cursor:not-allowed;filter:saturate(.5)}

.table-wrap{overflow:auto;background:var(--surface-solid);border:1px solid var(--line);border-radius:2px;box-shadow:none}table{width:100%;border-collapse:separate;border-spacing:0;min-width:760px}th,td{padding:12px 14px;border-bottom:0.5px solid var(--line);text-align:left;font-size:12px;vertical-align:middle}th{position:sticky;top:0;z-index:1;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:#6b6552;background:var(--surface-soft);font-weight:500}tbody tr{transition:background .15s ease}tbody tr:hover{background:#f8fbfa}tbody tr:last-child td{border-bottom:0}
.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:2px;font-size:11px;font-weight:600;background:var(--surface-soft);color:var(--ink-2);border:1px solid var(--line)}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.65}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.65}.badge.ok{background:#e9f8f0;color:var(--ok);border-color:#d6f0e2}.badge.warn{background:#fff4e4;color:var(--warn);border-color:#fae6c4}.badge.danger{background:#fff0ee;color:var(--danger);border-color:#f6dad6}

label{display:grid;gap:6px;font-size:10px;font-weight:600;color:#4a4535;font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase}input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:2px;padding:9px 11px;background:var(--surface-solid);color:var(--ink);outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;font-size:13px;font-family:var(--font-body)}input:hover,select:hover,textarea:hover{border-color:#b9cec7}input:focus,select:focus,textarea:focus{border-color:var(--primary-2);box-shadow:0 0 0 3px rgba(31,107,79,.14);background:var(--surface-solid)}textarea{min-height:92px;resize:vertical}.stack{display:grid;gap:12px}.alert{padding:11px 13px;border-radius:2px;margin:10px 0;border:1px solid transparent;font-size:12px;font-weight:600}.alert.success{background:#e8f8ef;color:var(--ok);border-color:#d1eedf}.alert.danger{background:#fff0ee;color:var(--danger);border-color:#f4d8d4}.muted{color:var(--muted)}

.profile-list{display:grid;gap:0}.profile-row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #edf2f0;font-size:12px}.profile-row:last-child{border-bottom:0}.profile-row span{color:var(--muted)}.profile-row strong{text-align:right;color:var(--ink-2);font-weight:720}

.attendance-hero{max-width:600px;margin:0 auto}.dtr-card{position:relative;text-align:center;padding:38px 34px 30px;overflow:hidden;background:var(--surface-solid);border-radius:2px}.clock-badge{display:inline-flex;align-items:center;gap:7px;background:var(--surface-soft);border:1px solid var(--line);color:var(--ink-2);border-radius:2px;padding:6px 10px;font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;margin-bottom:18px}.clock-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(31,122,77,.12)}.clock-time{position:relative;font-family:var(--font-display);font-size:86px;line-height:1;font-weight:600;letter-spacing:0;color:var(--ink);font-variant-numeric:tabular-nums}.clock-date{color:var(--muted);margin:9px 0 26px;font-size:13px;font-family:var(--font-mono);letter-spacing:.02em}.dtr-perf{position:relative;height:24px;margin:20px -34px 18px}
.dtr-perf:before{content:"";position:absolute;left:34px;right:34px;top:12px;border-top:1.5px dashed var(--line-strong)}
.clock-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.clock-actions .btn{min-height:56px;border-radius:2px;font-size:14px;font-family:var(--font-display);font-weight:600;letter-spacing:.03em}.clock-actions .btn.primary{background:var(--accent);border-color:var(--accent-deep);color:#1a0d05;box-shadow:0 3px 0 var(--accent-deep)}
.clock-actions .btn.primary:hover:not(:disabled){background:#ff7936}
.dtr-ledger{text-align:left}
.dtr-ledger .today-card-header{margin-bottom:7px}
.clock-actions .btn.primary:active:not(:disabled){box-shadow:0 0 0 var(--accent-deep);transform:translateY(3px)}.clock-actions .btn.secondary{background:var(--surface-solid);border-color:var(--line-strong);color:var(--ink-2)}.gps-status{display:flex;align-items:center;gap:9px;text-align:left;padding:12px 13px;border-radius:2px;background:var(--surface-soft);color:var(--muted);font-size:12px;border:1px solid var(--line)}.gps-dot{width:9px;height:9px;border-radius:999px;background:#8a8574;flex:0 0 auto;position:relative}.gps-status.working .gps-dot{background:#d18a26;animation:pulse 1.25s infinite}.gps-status.ok{background:#e5f1e9;color:#0f5c37;border-color:#c3e2cf;font-weight:600}.gps-status.ok .gps-dot{background:var(--ok)}.gps-status.ok .gps-dot:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--ok);opacity:.4}.gps-status.warn{background:#fff3e2;color:var(--warn);border-color:#f7e2c0}.gps-status.warn .gps-dot{background:var(--warn)}@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(209,138,38,.22)}50%{box-shadow:0 0 0 6px rgba(209,138,38,0)}}
.today-card{overflow:hidden}.today-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.today-status-orb{width:34px;height:34px;border-radius:2px;display:grid;place-items:center;background:var(--surface-soft);color:var(--primary)}.today-status-orb svg{width:17px;height:17px}.attendance-note{margin:14px 0 0;padding:11px 12px;background:var(--surface-soft);border:1px solid var(--line);border-radius:2px;font-size:11px;line-height:1.55;color:var(--muted)}

.locations-layout{grid-template-columns:minmax(0,1.55fr) minmax(300px,.72fr);align-items:start}.locations-layout>.card{min-width:0}.location-tools{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.map-picker{position:relative;height:410px;min-height:320px;width:100%;max-width:100%;border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#e8efec;isolation:isolate;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}.map-picker.leaflet-container{font-family:inherit;z-index:0}.map-picker .leaflet-tile{max-width:none!important;max-height:none!important;width:256px!important;height:256px!important;margin:0!important;padding:0!important;border:0!important}.map-picker .leaflet-pane,.map-picker .leaflet-map-pane,.map-picker .leaflet-tile-pane{position:absolute}.map-help{margin:0;font-size:11px}.geofence-card{position:sticky;top:24px}.geofence-visual{height:120px;border-radius:15px;background:radial-gradient(circle at center,rgba(46,208,163,.2) 0 18%,transparent 19% 32%,rgba(46,208,163,.08) 33% 34%,transparent 35% 49%,rgba(46,208,163,.06) 50% 51%,transparent 52%),linear-gradient(145deg,#f2faf7,#e9f5f1);display:grid;place-items:center;margin-bottom:15px;border:1px solid #e1ece8}.geofence-pin{width:36px;height:36px;border-radius:50% 50% 50% 10%;transform:rotate(-45deg);background:var(--primary);box-shadow:none;display:grid;place-items:center}.geofence-pin:after{content:"";width:10px;height:10px;border-radius:50%;background:white}

.login-body,.install-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.login-shell{width:min(920px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:var(--surface-solid);border:1px solid var(--line);border-radius:2px;overflow:hidden;box-shadow:var(--shadow-lg)}.login-showcase{position:relative;padding:38px;color:#ebfff8;background:var(--sidebar);overflow:hidden}.login-showcase:before{content:none}.login-showcase .brand{margin:0 0 54px}.login-showcase h2{font-family:var(--font-display);font-weight:600;font-size:30px;letter-spacing:0;line-height:1.15;margin:0 0 10px;max-width:340px}.login-showcase p{font-size:13px;line-height:1.7;color:#bfe8dc;max-width:380px}.feature-pills{display:flex;flex-wrap:wrap;gap:7px;margin-top:24px}.feature-pills span{padding:7px 10px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.05);border-radius:2px;font-family:var(--font-mono);font-size:9.5px;color:#d9f6ed}.login-panel{padding:42px 38px;display:flex;flex-direction:column;justify-content:center}.login-panel h1{font-family:var(--font-display);font-weight:600;font-size:26px;letter-spacing:0;margin:0 0 5px}.login-panel>.muted{margin:0 0 24px;font-size:12px}.login-card,.install-card{width:min(520px,100%);background:var(--surface-solid);border:1px solid var(--line);border-radius:2px;padding:30px;box-shadow:var(--shadow-lg)}.install-card{width:min(620px,100%)}.install-card .brand,.login-card .brand{margin-bottom:24px}.install-card h1,.login-card h1{margin:0 0 4px;letter-spacing:-.035em}.photo-preview{width:56px;height:56px;object-fit:cover;border-radius:11px;border:1px solid var(--line)}

.empty-state{text-align:center;padding:34px 18px;color:var(--muted)}.empty-icon{width:46px;height:46px;margin:0 auto 11px;border-radius:2px;display:grid;place-items:center;background:var(--surface-soft);color:var(--primary)}.empty-icon svg{width:21px;height:21px}

@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.locations-layout{grid-template-columns:1fr}.geofence-card{position:static}.date-pill{display:none}}
@media(max-width:860px){.shell{display:block}.sidebar{position:fixed;left:-282px;width:264px;transition:left .22s var(--ease);box-shadow:18px 0 45px rgba(7,29,24,.22)}.nav-open .sidebar{left:0}.nav-open:before{content:"";position:fixed;inset:0;background:rgba(5,21,17,.36);backdrop-filter:blur(2px);z-index:24}.main{padding:18px}.mobile-menu{display:inline-flex;width:40px;padding:0}.topbar{align-items:flex-start}.topbar h1{font-size:23px}.topbar-kicker{display:none}.user-pill{display:none}.dashboard-welcome{padding:22px}.dashboard-welcome h2{font-size:22px}.login-shell{grid-template-columns:1fr;max-width:480px}.login-showcase{display:none}.login-panel{padding:34px 28px}}
@media(max-width:620px){.cards,.grid.two,.grid.three,.clock-actions{grid-template-columns:1fr}.main{padding:14px 13px 30px}.topbar{margin-bottom:14px}.topbar-right{display:none}.card{padding:16px;border-radius:2px}.dashboard-welcome{display:block;border-radius:2px}.welcome-action{margin-top:17px}.welcome-action .btn{flex:1}.dtr-card{padding:26px 18px 20px}.clock-time{font-size:58px}.clock-actions .btn{min-height:52px}.map-picker{height:340px;min-height:280px}.location-tools .btn{width:100%}.login-body,.install-body{padding:14px}.login-panel,.install-card{padding:26px 20px}.stat-card{min-height:112px}.topbar h1{font-size:21px}}
@media print{.sidebar,.topbar,.no-print,.dashboard-welcome{display:none!important}.shell{display:block}.main{padding:0;max-width:none}.card,.table-wrap{box-shadow:none;border-color:#bbb;background:white}body{background:white}.table-wrap{overflow:visible}table{min-width:0}}


/* v0.4.1 production rendering guardrails */
svg{display:block;overflow:visible}
.nav a>svg,.btn>svg,.date-pill>svg,.user-pill>svg,.today-status-orb>svg,.empty-icon>svg,.stat-icon>svg{max-width:none!important;max-height:none!important;flex:0 0 auto}
.nav a>svg{width:17px!important;height:17px!important}
.btn>svg{width:15px!important;height:15px!important}
.stat-icon>svg{width:18px!important;height:18px!important}
.date-pill>svg,.user-pill>svg{width:15px!important;height:15px!important}
.today-status-orb>svg{width:17px!important;height:17px!important}
.empty-icon>svg{width:21px!important;height:21px!important}

/* Keep dashboard information dense on ultrawide monitors. */
.dashboard-welcome{min-height:142px}
.stat-card{min-height:138px}
@media(min-width:1500px){
  .main{max-width:1720px;padding-left:34px;padding-right:34px}
  .cards{gap:16px}
  .stat-card{min-height:142px}
}


/* v0.5.7 Stellarkbuilt logo */
.brand-mark.brand-logo{background:#fff;border-radius:2px;padding:0;box-shadow:none;overflow:hidden;border:1px solid rgba(255,255,255,.45)}
.brand-mark.brand-logo:before,.brand-mark.brand-logo:after{display:none!important;content:none!important}
.brand-mark.brand-logo>img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.login-showcase .brand-mark.brand-logo{box-shadow:none}


/* v0.5.9 Light / Dark appearance */
html{color-scheme:light}
html[data-theme="dark"]{color-scheme:dark;
  --bg:#071411;--bg-2:#0b1d18;--surface:rgba(12,31,26,.94);--surface-solid:#0c1f1a;--surface-soft:#102822;
  --ink:#e8f5f0;--ink-2:#c7ded6;--muted:#8ea59d;--line:#203b33;--line-strong:#315047;
  --primary:#32d2aa;--primary-deep:#20b894;--primary-2:#28c69f;--primary-3:#55dfba;--accent:#ff7936;--accent-deep:#d4530f;
  --danger:#ff8178;--warn:#efb762;--ok:#59d7a0;--sidebar:#020d0b;--sidebar-2:#061a15;
  --shadow-sm:0 4px 16px rgba(0,0,0,.18);--shadow:0 16px 42px rgba(0,0,0,.24);--shadow-lg:0 28px 70px rgba(0,0,0,.38)
}
.theme-toggle{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;min-width:38px;height:38px;padding:0 11px;border:1px solid var(--line-strong);border-radius:2px;background:var(--surface-solid);color:var(--ink-2);box-shadow:none;cursor:pointer;transition:background-color .12s ease}
.theme-toggle:hover{transform:translateY(-1px);border-color:#a9c9bf}.theme-toggle svg{width:16px!important;height:16px!important;stroke:currentColor}.theme-toggle .theme-icon-sun{display:none}.theme-toggle .theme-icon-moon{display:block}.theme-toggle-label{font-size:11px;font-weight:750}
html[data-theme="dark"] .theme-toggle .theme-icon-sun{display:block}html[data-theme="dark"] .theme-toggle .theme-icon-moon{display:none}
.sidebar-theme{width:100%;margin-top:9px;background:rgba(255,255,255,.035);color:#c7ded7;border-color:rgba(255,255,255,.07);box-shadow:none;justify-content:flex-start;padding:0 12px}.sidebar-theme:hover{background:rgba(255,255,255,.065);border-color:rgba(255,255,255,.11)}
.theme-toggle-float{position:fixed;right:20px;top:20px;z-index:50}.login-body .theme-toggle-float,.install-body .theme-toggle-float{background:rgba(255,255,255,.9)}

html[data-theme="dark"] body{background:radial-gradient(circle at 88% -10%,rgba(50,210,170,.10),transparent 30%),radial-gradient(circle at 15% 0%,rgba(16,112,91,.10),transparent 28%),var(--bg)}
html[data-theme="dark"] .date-pill,html[data-theme="dark"] .user-pill,html[data-theme="dark"] .theme-toggle{background:rgba(12,31,26,.88);border-color:#29473e;color:#b9cec7}
html[data-theme="dark"] .card{border-color:#1e3a32;background:var(--surface)}html[data-theme="dark"] .card:hover{border-color:#315247}
html[data-theme="dark"] .stat-icon,html[data-theme="dark"] .today-status-orb,html[data-theme="dark"] .empty-icon{background:#12372e;color:#55dfba}
html[data-theme="dark"] .stat-card.good .stat-icon{background:#12382b;color:#59d7a0}html[data-theme="dark"] .stat-card.warn .stat-icon{background:#3b2c17;color:#efb762}
html[data-theme="dark"] .btn.secondary{background:#102b24;color:#bfe6da;border-color:#28483e}html[data-theme="dark"] .btn.secondary:hover:not(:disabled){background:#15372e}
html[data-theme="dark"] .btn.danger{background:#351916;color:#ff958d;border-color:#5a2823}
html[data-theme="dark"] .table-wrap{background:rgba(11,29,24,.95);border-color:#203b33}html[data-theme="dark"] th,html[data-theme="dark"] td{border-bottom-color:#1c342d}html[data-theme="dark"] th{background:#10251f;color:#91a69f}html[data-theme="dark"] tbody tr:hover{background:#102821}
html[data-theme="dark"] .badge{background:#162a25;color:#a6bbb4;border-color:#29423a}html[data-theme="dark"] .badge.ok{background:#123227;color:#65dca8;border-color:#21513e}html[data-theme="dark"] .badge.warn{background:#392a17;color:#efbd70;border-color:#5a4222}html[data-theme="dark"] .badge.danger{background:#351a18;color:#ff938a;border-color:#5a2925}
html[data-theme="dark"] label{color:#b9cec7}html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea{background:#0a1b17;color:#e8f5f0;border-color:#315047}html[data-theme="dark"] input:hover,html[data-theme="dark"] select:hover,html[data-theme="dark"] textarea:hover{border-color:#42685d}html[data-theme="dark"] input:focus,html[data-theme="dark"] select:focus,html[data-theme="dark"] textarea:focus{background:#0c211b;border-color:#42cba5}html[data-theme="dark"] option{background:#0a1b17;color:#e8f5f0}
html[data-theme="dark"] .alert.success{background:#102f25;color:#6be0ad;border-color:#20523e}html[data-theme="dark"] .alert.danger{background:#351917;color:#ff9189;border-color:#5d2925}
html[data-theme="dark"] .profile-row{border-bottom-color:#1c342d}html[data-theme="dark"] .profile-row strong{color:var(--ink-2)}
html[data-theme="dark"] .dtr-card{background:var(--surface-solid)}html[data-theme="dark"] .clock-time{color:#ecfaf5}html[data-theme="dark"] .clock-badge{background:#12352c;border-color:#205044;color:#6be0b8}html[data-theme="dark"] .clock-actions .btn.secondary{background:#102b24;border-color:#294d42;color:#bfe6da}
html[data-theme="dark"] .gps-status{background:#10231e;color:#9aafa8;border-color:#233c34}html[data-theme="dark"] .gps-status.ok{background:#102f25;color:#65dca8;border-color:#20523e}html[data-theme="dark"] .gps-status.warn{background:#392a17;color:#efbd70;border-color:#5a4222}
html[data-theme="dark"] .attendance-note{background:#0f2721;border-color:#213d34;color:#91a69f}
html[data-theme="dark"] .map-picker{border-color:#29463d;background:#0e211c;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}html[data-theme="dark"] .geofence-visual{background:radial-gradient(circle at center,rgba(50,210,170,.22) 0 18%,transparent 19% 32%,rgba(50,210,170,.09) 33% 34%,transparent 35% 49%,rgba(50,210,170,.07) 50% 51%,transparent 52%),linear-gradient(145deg,#102a23,#0b201b);border-color:#244239}
html[data-theme="dark"] .login-body,html[data-theme="dark"] .install-body{background:radial-gradient(circle at 18% 10%,rgba(50,210,170,.12),transparent 32%),radial-gradient(circle at 85% 90%,rgba(13,109,91,.14),transparent 30%),#06130f}
html[data-theme="dark"] .login-shell,html[data-theme="dark"] .login-card,html[data-theme="dark"] .install-card{background:#0b1d18;border-color:#203b33}html[data-theme="dark"] .login-panel{background:#0b1d18}
html[data-theme="dark"] .login-body .theme-toggle-float,html[data-theme="dark"] .install-body .theme-toggle-float{background:rgba(12,31,26,.92);border-color:#29473e;color:#b9cec7}
html[data-theme="dark"] .brand-mark.brand-logo,html[data-theme="dark"] .brand-mark.brand-logo>img{background:#fff}
@media(max-width:620px){.theme-toggle-float{right:13px;top:13px}.sidebar-theme{display:flex}.topbar-theme{display:none}}
@media(min-width:621px){.sidebar-theme{display:none}}
@media print{.theme-toggle,.theme-toggle-float{display:none!important}html[data-theme="dark"] body,html[data-theme="dark"] .card,html[data-theme="dark"] .table-wrap{background:white!important;color:#111!important}}
