@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;450;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--bg:#f4f6f8;--surface:#fff;--border:#e2e6ea;--text:#1c2430;--text-muted:#66717e;--accent:#1a4ed8;--accent-hover:#153eb0;--green:#0e9f5a;--blue:#1a4ed8;--red:#d92d20;--radius:10px;--shadow:0 1px 3px #10182814, 0 1px 2px #1018280a}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:system-ui,Segoe UI,Roboto,sans-serif}h1{font-size:1.4rem}h2{font-size:1.1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}button{font:inherit;cursor:pointer;border:none;border-radius:8px}.btn-primary{background:var(--accent);color:#fff;padding:.6rem 1.1rem;font-weight:600}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{color:var(--accent);border:1px solid var(--border);background:0 0;padding:.45rem .8rem}.btn-ghost:hover{border-color:var(--accent)}input,select{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;width:100%;padding:.55rem .7rem}input:focus{outline:2px solid var(--accent);outline-offset:-1px}label{color:var(--text-muted);margin-bottom:.3rem;font-size:.85rem;font-weight:600;display:block}table{border-collapse:collapse;width:100%;font-size:.92rem}th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:.6rem .75rem;font-size:.78rem}tr:last-child td{border-bottom:none}.badge{border-radius:999px;padding:.2rem .6rem;font-size:.78rem;font-weight:600;display:inline-block}.badge-in{color:var(--green);background:#e7f6ee}.badge-out{color:var(--blue);background:#e8eefc}.badge-off{color:var(--text-muted);background:#eef1f4}.error-msg{color:var(--red);font-size:.9rem}.success-msg{color:var(--green)}.muted{color:var(--text-muted);font-size:.85rem}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}:root{--paper:#fbfaf8;--surface:#fff;--surface-2:#f5f3ef;--line:#e4e0d9;--line-firm:#cfc9bf;--ink:#16181c;--ink-2:#4a4740;--ink-3:#7c776e;--primary:#12574e;--primary-soft:#d3e5e1;--primary-ink:#0b3b34;--attn:#a8621a;--attn-soft:#f6e7d3;--alert:#9c2f1d;--alert-soft:#f7dfd9;--ok:#2f6b3f;--bar-worked:#12574e;--bar-overtime:#1e8377;--bar-grace:#b9cfca;--bar-late:#c98436;--bar-early:#e3c9a6;--bar-gap:#e4e0d9;--bar-break:#cfc9bf;--r-sm:3px;--r:5px;--r-lg:9px;--sans:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--shadow-pop:0 1px 2px #16181c0f, 0 8px 24px -8px #16181c2e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#121316;--surface:#191b1f;--surface-2:#212429;--line:#2c2f35;--line-firm:#3d4148;--ink:#eceae5;--ink-2:#ada9a1;--ink-3:#807b73;--primary:#3fa294;--primary-soft:#17342f;--primary-ink:#8fd3c8;--attn:#d89044;--attn-soft:#33240f;--alert:#de7059;--alert-soft:#38180f;--ok:#64b078;--bar-worked:#3fa294;--bar-overtime:#6bc9bb;--bar-grace:#2c4e48;--bar-late:#c07c33;--bar-early:#5c4527;--bar-gap:#2c2f35;--bar-break:#3d4148;--shadow-pop:0 1px 2px #00000080, 0 8px 24px -8px #000000b3}}:root[data-theme=dark]{--paper:#121316;--surface:#191b1f;--surface-2:#212429;--line:#2c2f35;--line-firm:#3d4148;--ink:#eceae5;--ink-2:#ada9a1;--ink-3:#807b73;--primary:#3fa294;--primary-soft:#17342f;--primary-ink:#8fd3c8;--attn:#d89044;--attn-soft:#33240f;--alert:#de7059;--alert-soft:#38180f;--ok:#64b078;--bar-worked:#3fa294;--bar-overtime:#6bc9bb;--bar-grace:#2c4e48;--bar-late:#c07c33;--bar-early:#5c4527;--bar-gap:#2c2f35;--bar-break:#3d4148;--shadow-pop:0 1px 2px #00000080, 0 8px 24px -8px #000000b3}*{box-sizing:border-box;margin:0}html,body,#app{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-feature-settings:"cv05" 1, "ss01" 1;font-size:13.5px;line-height:1.5}.num,.mono,time,td.num,th.num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "zero" 1;letter-spacing:-.01em}.eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:600}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border-radius:var(--r);background:0 0;border:1px solid #0000}.btn{border:1px solid var(--line-firm);background:var(--surface);border-radius:var(--r);height:30px;color:var(--ink);align-items:center;gap:7px;padding:0 11px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-ink);border-color:var(--primary-ink)}.btn:disabled{opacity:.45;cursor:not-allowed}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--r-sm)}input[type=date],select,input[type=text]{border:1px solid var(--line-firm);border-radius:var(--r);background:var(--surface);height:30px;padding:0 9px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}.tag{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;height:19px;padding:0 7px;font-size:11px;font-weight:600;display:inline-flex}.tag-attn{background:var(--attn-soft);color:var(--attn)}.tag-alert{background:var(--alert-soft);color:var(--alert)}.tag-ok{background:var(--primary-soft);color:var(--primary-ink)}.tag-mute{background:var(--surface-2);color:var(--ink-3)}table{border-collapse:collapse;width:100%}th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line);white-space:nowrap;padding:0 10px 7px;font-size:11px;font-weight:600}td{border-bottom:1px solid var(--line);padding:8px 10px}tbody tr:last-child td{border-bottom:none}th.right,td.right{text-align:right}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-firm);border:3px solid var(--paper);border-radius:99px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}
