:root{--surface:#fff;--surface-2:#f0f6f2;--accent-text:#fff;--shadow:0 6px 22px #193f2910;--blue-bg:#e9f1ff;--blue-ink:#235cc1;--green-bg:#e6f5ec;--green-ink:#247248;--purple-bg:#f0eaff;--purple-ink:#7848b2;--red-bg:#ffedeb;--red-ink:#bf4147;--orange-bg:#fff1db;--orange-ink:#a66914}
:root[data-theme=blue]{--ink:#14335b;--muted:#607b9b;--line:#c8daf0;--accent:#2463b6;--bg:#eaf2fc;--surface:#f9fcff;--surface-2:#e2edfb;--soft:#e2edfb;--blue-bg:#d3e6ff;--shadow:0 6px 22px #235da015}
:root[data-theme=black]{color-scheme:dark;--ink:#f3f4f7;--muted:#a5acb9;--line:#343a45;--accent:#7ddcb0;--accent-text:#10271e;--bg:#111316;--surface:#1d2025;--surface-2:#292d34;--soft:#293a31;--blue-bg:#203550;--blue-ink:#91bdff;--green-bg:#203c2c;--green-ink:#86dbaa;--purple-bg:#342a48;--purple-ink:#c5abef;--red-bg:#49292e;--red-ink:#ffadb2;--orange-bg:#443826;--orange-ink:#edc17f;--shadow:0 6px 22px #0003}
:root[data-theme=night]{color-scheme:dark;--ink:#eaf2fc;--muted:#a8bbd1;--line:#2b4560;--accent:#78b4ff;--accent-text:#0a2644;--bg:#091625;--surface:#102237;--surface-2:#1a3049;--soft:#203b5b;--blue-bg:#1a3b61;--blue-ink:#9ac8ff;--green-bg:#143d36;--green-ink:#88ddc2;--purple-bg:#2d2c52;--purple-ink:#c5b3ff;--red-bg:#452c42;--red-ink:#ffacc4;--orange-bg:#403a2a;--orange-ink:#edc88a;--shadow:0 6px 22px #0003}
body{background:var(--bg);color:var(--ink)}.sidebar,.mobile-bar,.card,.modal-box,.login-form,.terminal-panel,.simple-terminal .terminal-panel{background:var(--surface);color:var(--ink);border-color:var(--line)}.sidebar{overflow-y:auto}.sidebar nav{margin-top:28px;gap:3px}.sidebar nav a{color:var(--muted)}.sidebar nav a.active,.sidebar nav a:hover{color:var(--accent);background:var(--soft)}.brand,.profile-link{color:var(--ink)}.card,.metric{box-shadow:var(--shadow)}input,select,textarea{color:var(--ink);border-color:var(--line);background:var(--surface)}input::placeholder{color:var(--muted);opacity:.8}label,.muted,small{color:var(--muted)}.eyebrow{color:var(--accent)}button,.button,.mini{background:var(--surface-2);color:var(--ink);border-color:var(--line)}button:hover,.button:hover,.mini:hover{background:var(--soft);color:var(--accent)}button.primary,.button.primary,.metric.featured{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.metric.featured small{color:inherit;opacity:.8}.theme-picker{font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-bottom:15px}.theme-picker select{font-size:12px;min-height:36px;padding:7px 9px;letter-spacing:0}.theme-picker option{font-size:14px}.overview-cards{grid-template-columns:repeat(5,minmax(0,1fr))}.metric{text-decoration:none;transition:transform .15s;display:block;border:1px solid transparent}.overview-cards .metric:hover{transform:translateY(-3px)}.metric-blue{background:var(--blue-bg);color:var(--blue-ink)}.metric-green{background:var(--green-bg);color:var(--green-ink)}.metric-purple{background:var(--purple-bg);color:var(--purple-ink)}.metric-red{background:var(--red-bg);color:var(--red-ink)}.metric-orange{background:var(--orange-bg);color:var(--orange-ink)}.overview-cards .metric .symbol{background:#ffffff44;color:inherit}.overview-cards .metric small{color:inherit;opacity:.85;font-size:11px}.metric>span{font-weight:700}.metric strong{font-size:36px}.table-wrap,th,td{border-color:var(--line)}th,.signed-in th{background:var(--surface-2);color:var(--muted)}td{color:var(--ink)}tbody tr:hover{background:var(--surface-2)}.avatar{background:var(--soft);color:var(--accent)}.employee-photo{width:46px;height:46px;object-fit:cover;border-radius:13px;flex-shrink:0}.person-cell{display:flex;align-items:center;gap:12px}.profile-photo{width:110px;height:110px;object-fit:cover;border-radius:20px;margin-bottom:20px}.roster-filters{display:flex;gap:10px}.roster-filters input{max-width:240px}.call-button{display:inline-flex;gap:6px;padding:9px 12px;border-radius:9px;background:var(--green-bg);color:var(--green-ink);font-weight:700;text-decoration:none}.badge{background:var(--green-bg);color:var(--green-ink)}.badge.error{background:var(--red-bg);color:var(--red-ink)}.badge.warn{background:var(--orange-bg);color:var(--orange-ink)}.badge.neutral,.policy-note,.alert{background:var(--surface-2);color:var(--muted)}.alert.error{background:var(--red-bg);color:var(--red-ink)}.progress-track{background:var(--soft)}.login-story{background:var(--soft)}.login-story p{color:var(--muted)}.story-card{background:var(--surface);border-color:var(--line)}.simple-terminal{background:var(--bg)}.simple-terminal .punch.in{background:var(--accent);color:var(--accent-text)}.simple-terminal .punch.out{background:var(--surface-2);color:var(--ink)}.simple-terminal .result{background:var(--green-bg);color:var(--green-ink)}.simple-terminal .result.err{background:var(--red-bg);color:var(--red-ink)}.day-detail summary{flex-wrap:wrap}.sidebar-bottom{flex-shrink:0;padding-top:12px}.logout{min-height:36px;padding:7px}.sidebar .profile-link{font-size:12px}.sidebar .brand{font-size:23px}
:root{color-scheme:light}select{appearance:none;-webkit-appearance:none;padding-right:32px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%237d91a8' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:14px}select option{background:var(--surface);color:var(--ink)}
table tbody tr,table tbody td{background:var(--surface);color:var(--ink)}table tbody tr:nth-child(even),table tbody tr:nth-child(even) td{background:var(--surface-2)}table tbody tr:hover td{background:var(--soft)}table tfoot td{background:var(--surface-2);color:var(--ink)}
@media(max-width:1200px){.overview-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-cards .metric{padding:17px}}@media(max-width:760px){.overview-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-cards .metric:last-child{grid-column:1/-1}.overview-cards .metric:last-child .symbol{float:left;margin:7px 15px 8px 0}.overview-cards .metric:last-child strong{display:inline;margin-right:12px}.roster-filters{width:100%;flex-wrap:wrap}.roster-filters select,.roster-filters input{flex:1;max-width:none;min-width:140px}.sidebar{padding-bottom:20px}.employee-photo{width:40px;height:40px}}
