:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f6f3;--card:#fff;--card-alt:#eef0eb;--text:#1b211f;--text-muted:#667370;--text-faint:#9aa39f;--border:#e1e5df;--accent:#0c6e62;--accent-hover:#0a5b51;--accent-ink:#f3fbf8;--accent-soft:#dcede9;--total-bg:#0c6e62;--total-ink:#f3fbf8;--job-tved:#35618a;--job-tved-soft:#e1e9f1;--job-dlg:#b98a2e;--job-dlg-soft:#f3e9d4;--positive:#2e9e5b;--negative:#c4453a;--radius-lg:28px;--radius-md:18px;--radius-sm:14px;--font-display:Georgia, "Times New Roman", serif;--font-body:"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font-body)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121817;--card:#1a2220;--card-alt:#222b29;--text:#eaf0ee;--text-muted:#9fadaa;--text-faint:#74807d;--border:#2b3533;--accent:#3fae9c;--accent-hover:#56c0af;--accent-ink:#08201d;--accent-soft:#1c332f;--total-bg:#10554c;--total-ink:#eafaf6;--job-tved:#6f9fd0;--job-tved-soft:#1e2c39;--job-dlg:#d8ab52;--job-dlg-soft:#322a19;--positive:#5ec27f;--negative:#e88b7d}}*{box-sizing:border-box}html,body{background:var(--bg);width:100%;max-width:100%;color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;padding:0;overflow-x:hidden}#root{background:var(--bg);flex-direction:column;width:100%;max-width:480px;min-height:100svh;margin:0 auto;display:flex;overflow-x:hidden}a{color:var(--accent)}button{cursor:pointer;font-family:inherit}.page{padding:20px 16px calc(88px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.page-title{font-family:var(--font-display);letter-spacing:0;color:var(--text);margin:4px 0 18px;font-size:23px;font-weight:700}.card{background:var(--card);border-radius:var(--radius-lg);border:1px solid var(--border);border-left:4px solid var(--border);margin-bottom:12px;padding:18px;box-shadow:0 1px 2px #1b211f0a}.label{color:var(--text-muted);letter-spacing:.01em;margin:16px 0 7px;font-size:12px;font-weight:600;display:block}input,select,textarea{background:var(--card-alt);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:16px;font-family:var(--font-body);color:var(--text);padding:11px 13px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.btn-primary{background:var(--accent);width:100%;color:var(--accent-ink);font-family:var(--font-body);letter-spacing:0;border:none;border-radius:100px;margin-top:22px;padding:15px;font-size:15.5px;font-weight:700;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5}.row{font-variant-numeric:tabular-nums;justify-content:space-between;padding:4px 0;font-size:14px;display:flex}.row.bold{font-size:15.5px;font-weight:700;font-family:var(--font-display)}.row.muted{color:var(--text-muted)}.divider{background:var(--border);height:1px;margin:10px 0}.month-nav{justify-content:center;align-items:center;gap:18px;margin-bottom:18px;display:flex}.month-nav button{background:var(--card);border:1px solid var(--border);width:32px;height:32px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:17px;display:flex}.month-nav .label-text{font-family:var(--font-display);text-align:center;min-width:150px;font-size:16px;font-weight:700}.total-card{background:var(--total-bg);border-radius:var(--radius-lg);color:var(--total-ink);margin-bottom:16px;padding:22px;box-shadow:0 10px 28px -16px #0c6e628c}.total-card .label{color:#f3fbf8ad;margin-top:0}.total-card .value{font-family:var(--font-display);letter-spacing:0;font-variant-numeric:tabular-nums;font-size:36px;font-weight:700}.total-card .sub{color:#f3fbf8c7;margin-top:5px;font-size:13px}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1.5px solid var(--border);background:var(--card);font-family:var(--font-body);color:var(--text-muted);border-radius:100px;padding:9px 15px;font-size:14px;font-weight:600}.chip.active{color:#fff;border-color:#0000}.quick-btn{background:var(--card-alt);border:1px solid var(--border);color:var(--text-muted);border-radius:100px;padding:7px 15px;font-size:13px;font-weight:600}.quick-row{gap:8px;margin-bottom:8px;display:flex}.bucket-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.bucket-field{flex-direction:column;gap:4px;display:flex}.bucket-field span{color:var(--text-muted);font-size:12px}.time-row{align-items:flex-end;gap:10px;display:flex}.time-field{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.time-field span{color:var(--text-muted);font-size:12px;font-weight:600}.time-field input{min-width:0;font-family:var(--font-display);font-variant-numeric:tabular-nums;padding:12px 13px;font-size:20px;font-weight:700}.time-sep{color:var(--text-faint);font-weight:700;font-family:var(--font-display);padding-bottom:14px}.quickshift-section{margin-top:14px}.quickshift-heading{align-items:baseline;gap:7px;margin-bottom:9px;display:flex}.quickshift-heading .sub{color:var(--text-faint);font-size:11px;font-weight:500}.quickshift-row{flex-wrap:wrap;gap:8px;display:flex}.quickshift-btn{border:1.5px solid var(--border);background:var(--card);font-family:var(--font-body);color:var(--text);font-variant-numeric:tabular-nums;border-radius:100px;padding:9px 16px;font-size:13.5px;font-weight:700;transition:border-color .15s,background .15s,color .15s}.quickshift-btn:hover{border-color:var(--accent)}.quickshift-btn.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.quickshift-empty{color:var(--text-muted);background:var(--card-alt);border:1px dashed var(--border);border-radius:var(--radius-sm);margin:0;padding:12px 14px;font-size:12.5px;line-height:1.5}.shift-preview{background:var(--card);border:1.5px solid var(--accent-soft);border-radius:var(--radius-md);margin-top:14px;padding:14px 16px}.shift-preview-total{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.shift-preview-total .dot-sep{color:var(--text-faint);margin:0 3px;font-weight:400}.shift-preview-breakdown{color:var(--text-muted);margin-top:3px;font-size:12.5px}.history-row{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;margin-bottom:8px;padding:13px 14px;display:flex}.color-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;margin-right:11px}.history-main{flex:1;min-width:0}.history-title{font-size:14.5px;font-weight:600}.history-note{color:var(--text-muted);margin-top:2px;font-size:12px}.history-right{text-align:right;flex-shrink:0;padding-left:10px}.history-hours{color:var(--text-muted);font-size:12.5px}.history-gross{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:14.5px;font-weight:700}.delete-btn{color:var(--negative);background:0 0;border:none;padding:5px 0 0;font-size:12.5px;font-weight:600}.empty-text,.error-text,.hint{text-align:center;color:var(--text-muted);margin-top:24px;font-size:14px}.error-text{color:var(--negative)}.toggle-row{gap:8px;display:flex}.toggle-btn{background:var(--card-alt);border:1px solid var(--border);color:var(--text-muted);border-radius:100px;flex:1;padding:9px;font-size:13px;font-weight:600}.toggle-btn.active{background:var(--text);border-color:var(--text);color:#fff}.job-name-input{font-family:var(--font-display);background:0 0;border:none;width:100%;padding:4px 0;font-size:19px;font-weight:700}.add-job-btn{border:1.5px dashed var(--border);border-radius:var(--radius-md);text-align:center;color:var(--text-muted);background:0 0;width:100%;margin-top:4px;padding:15px;font-weight:600}.bottom-nav{background:var(--card);border-top:1px solid var(--border);width:100%;max-width:480px;padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav a{text-align:center;color:var(--text-faint);flex:1;padding:11px 0 9px;font-size:11px;font-weight:600;text-decoration:none}.bottom-nav a.active{color:var(--accent)}.bottom-nav .icon{width:22px;height:22px;margin:0 auto 4px;display:block}.bottom-nav .icon svg{width:100%;height:100%}.spinner-wrap{color:var(--text-muted);justify-content:center;padding:24px;font-size:14px;display:flex}.welcome{padding:40px 22px calc(32px + env(safe-area-inset-bottom));flex-direction:column;flex:1;display:flex}.welcome-mark{border-radius:var(--radius-sm);background:var(--accent);width:46px;height:46px;color:var(--accent-ink);justify-content:center;align-items:center;margin-bottom:26px;display:flex}.welcome-mark svg{width:26px;height:26px}.welcome-title{font-family:var(--font-display);color:var(--text);margin:0;font-size:32px;font-weight:700;line-height:1.1}.welcome-tagline{font-family:var(--font-display);color:var(--accent);margin:6px 0 0;font-size:20px}.welcome-intro{color:var(--text-muted);max-width:34em;margin:14px 0 0;font-size:15px;line-height:1.55}.welcome-points{flex-direction:column;gap:10px;margin:28px 0 0;padding:0;list-style:none;display:flex}.welcome-points li{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--accent-soft);border-radius:var(--radius-md);flex-direction:column;gap:3px;padding:14px 16px;display:flex}.welcome-point-title{color:var(--text);font-size:14.5px;font-weight:700}.welcome-point-text{color:var(--text-muted);font-size:13.5px;line-height:1.5}.welcome-actions{flex-direction:column;gap:10px;margin-top:auto;padding-top:32px;display:flex}.welcome-actions .btn-primary{margin-top:0}.btn-secondary{width:100%;color:var(--text);border:1px solid var(--border);font-family:var(--font-body);background:0 0;border-radius:100px;padding:15px;font-size:15.5px;font-weight:700;transition:background .15s,border-color .15s}.btn-secondary:hover{background:var(--card);border-color:var(--text-faint)}.welcome-note{color:var(--text-faint);text-align:center;margin:16px 0 0;font-size:12.5px;line-height:1.5}.welcome-verify-error{margin:0 22px 20px}.auth-dialog{width:min(100% - 32px,420px);color:var(--text);background:0 0;border:none;margin:auto;padding:0}.auth-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#141c1a80}.auth-dialog-inner{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px 22px 24px;position:relative;box-shadow:0 18px 44px #141c1a38}.auth-dialog-close{width:34px;height:34px;color:var(--text-faint);background:0 0;border:none;border-radius:100px;padding:7px;transition:background .15s,color .15s;position:absolute;top:14px;right:14px}.auth-dialog-close:hover{background:var(--card-alt);color:var(--text)}.auth-dialog-close svg{width:100%;height:100%;display:block}.auth-dialog-title{font-family:var(--font-display);margin:0 34px 4px 0;font-size:23px;font-weight:700}.auth-dialog-sub{color:var(--text-muted);margin:0 0 18px;font-size:13.5px;line-height:1.5}.auth-dialog-toggle{margin-bottom:16px}.auth-dialog-error{text-align:left;margin-top:12px}.link-btn{font-family:inherit;font-size:inherit;color:var(--accent);text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.link-btn:hover{color:var(--accent-hover)}.auth-dialog-forgot{text-align:center;margin:14px 0 0;font-size:13.5px}.auth-dialog-back{margin:0 0 16px;font-size:13.5px}.new-password{flex-direction:column;justify-content:center;padding-bottom:40px;display:flex}.new-password .btn-primary{margin-top:24px}.site-credit{text-align:center;color:var(--text-faint);letter-spacing:.01em;margin:12px 0 0;font-size:12.5px}.site-credit--rule{border-top:1px solid var(--border);margin-top:20px;padding-top:2px}.site-credit a{color:var(--text-muted);align-items:center;gap:3px;padding:15px 8px;font-weight:600;text-decoration:none;display:inline-flex}.site-credit a:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.site-credit svg{opacity:.75;flex:none;width:12px;height:12px}.demo-banner{background:var(--accent);color:var(--accent-ink);padding:9px 16px calc(9px + env(safe-area-inset-top));justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.demo-banner b{font-weight:700}.demo-banner button{color:inherit;font-family:var(--font-body);background:0 0;border:1px solid;border-radius:100px;flex:none;padding:5px 12px;font-size:12.5px;font-weight:600}.welcome-demo{align-self:center;padding:12px 8px;font-size:14px}.month-today{text-align:center;margin:-6px 0 14px;font-size:13px}.total-compare{opacity:.85;margin-top:6px;font-size:13px}.history-summary{text-align:center;color:var(--text-muted);font-variant-numeric:tabular-nums;margin:0 0 12px;font-size:13.5px}.history-filter{margin-bottom:14px}.history-main{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;margin:0;padding:0;font-family:inherit;display:flex}.history-main:hover .history-title{color:var(--accent)}.history-main:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}.duplicate-warning{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--job-dlg);border-radius:var(--radius-md);margin-top:14px;padding:14px 16px}.duplicate-warning p{color:var(--text);margin:0;font-size:14.5px}.duplicate-actions{flex-wrap:wrap;gap:16px;margin-top:10px;font-size:14px;display:flex}.job-card-head{align-items:center;gap:10px;display:flex}.job-card-head .job-name-input{flex:1;min-width:0}.unsaved-badge{letter-spacing:.02em;color:var(--job-dlg);background:var(--job-dlg-soft);border-radius:100px;flex:none;padding:3px 9px;font-size:11px;font-weight:700}.field-help{color:var(--text-faint);margin:5px 0 0;font-size:12.5px;line-height:1.5}.toast{left:50%;bottom:calc(78px + env(safe-area-inset-bottom));z-index:20;background:var(--text);width:min(100% - 24px,456px);color:var(--bg);border-radius:100px;justify-content:space-between;align-items:center;gap:14px;padding:12px 10px 12px 20px;font-size:14px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #141c1a47}.toast-error{background:var(--negative);color:#fff}.toast>span{min-width:0}.toast button{color:inherit;font-family:var(--font-body);background:0 0;border:1px solid;border-radius:100px;flex:none;padding:8px 16px;font-size:13.5px;font-weight:700}@media (prefers-reduced-motion:no-preference){.toast{animation:.22s cubic-bezier(.2,.7,.2,1) toast-in}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}
