@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght,SOFT@9..144,400;9..144,500;9..144,600;9..144,700&display=swap";@import"https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&display=swap";.payroll-page{padding:24px;max-width:1100px;margin:0 auto}.payroll-form{display:flex;gap:12px;align-items:end;margin:16px 0;flex-wrap:wrap}.payroll-form label{display:flex;flex-direction:column;gap:4px;font-size:var(--text-sm, 14px);color:var(--fg-muted, #6b7280);font-weight:500}.payroll-form input[type=date]{padding:6px 8px;border:1px solid var(--border, #d1d5db);border-radius:var(--radius, 4px);font-family:inherit;font-size:inherit;color:var(--fg, inherit);background:var(--bg-elevated, white)}.payroll-form input[type=date]:focus{outline:2px solid var(--accent-soft, #bfdbfe);border-color:var(--accent, #2563eb)}.payroll-list table,.payroll-rows table{width:100%;border-collapse:collapse}.payroll-list th,.payroll-list td,.payroll-rows th,.payroll-rows td{border-bottom:1px solid var(--border, #e5e7eb);padding:8px 10px;text-align:left;font-size:var(--text-sm, 14px)}.payroll-list th,.payroll-rows th{color:var(--fg-muted, #6b7280);font-weight:600;font-size:var(--text-xs, 12px);text-transform:uppercase;letter-spacing:.06em}.payroll-list tr:hover td,.payroll-rows tr:hover td{background:var(--bg-muted, #f9fafb)}.status{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--text-xs, 12px);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.status-draft{background:#fef3c7;color:#92400e}.status-finalized{background:#d1fae5;color:#065f46}.missing-isolved{background:#fef2f2;border:1px solid #fecaca;padding:16px;border-radius:6px;margin:16px 0}.missing-isolved h2{margin-top:0;font-size:var(--text-base, 16px);color:#991b1b}.missing-isolved p{font-size:var(--text-sm, 14px);color:#7f1d1d;margin:4px 0 8px}.missing-isolved ul{margin:8px 0 0;padding-left:20px;font-size:var(--text-sm, 14px)}.missing-isolved li{margin-bottom:4px}.missing-isolved button{margin-left:8px;padding:2px 8px;font-size:var(--text-xs, 12px);border:1px solid #fca5a5;border-radius:4px;background:#fff;color:#991b1b;cursor:pointer}.missing-isolved button:hover{background:#fee2e2}.payroll-totals ul{display:flex;gap:16px;list-style:none;padding:0;flex-wrap:wrap;margin:8px 0;font-size:var(--text-sm, 14px);color:var(--fg-muted, #6b7280)}.payroll-totals li strong{color:var(--fg, inherit);font-variant-numeric:tabular-nums}.payroll-actions{display:flex;gap:8px;margin-top:24px;align-items:center;flex-wrap:wrap}.btn{display:inline-block;padding:8px 16px;border:1px solid var(--border, #d1d5db);border-radius:var(--radius, 4px);text-decoration:none;color:var(--fg, inherit);cursor:pointer;background:var(--bg-elevated, white);font-family:inherit;font-size:var(--text-sm, 14px);font-weight:500;transition:background .15s,border-color .15s}.btn:hover{background:var(--bg-muted, #f3f4f6);border-color:var(--border-strong, #9ca3af)}.btn.primary{background:#2563eb;color:#fff;border-color:#2563eb}.btn.primary:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.btn:disabled{opacity:.5;cursor:not-allowed}.error{color:#b91c1c;font-size:var(--text-sm, 14px);margin-top:8px}.billable-stats{display:flex;gap:12px;margin:16px 0;flex-wrap:wrap}.billable-stat{border:1px solid var(--border, #e5e7eb);border-radius:6px;padding:8px 16px;text-align:center;min-width:90px}.billable-stat-n{font-size:22px;font-weight:600}.billable-stat-label{font-size:12px;color:var(--fg-muted, #6b7280);margin-top:4px}.billable-cards{display:flex;flex-direction:column;gap:12px;margin-top:16px}.billable-card{border:1px solid var(--border, #e5e7eb);border-radius:6px;padding:12px;background:#fff}.billable-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.billable-card-name{font-weight:600}.billable-card-meta{font-size:12px;color:var(--fg-muted, #6b7280);margin-top:2px}.billable-card-body{margin-top:8px}.billable-card-notes{margin-top:6px;font-size:13px;color:var(--fg-muted, #6b7280)}.billable-card-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.billable-card-action-form{margin-top:10px;display:flex;flex-direction:column;gap:8px}.billable-card-action-form textarea{width:100%;font-family:inherit;padding:6px 8px;border:1px solid var(--border, #d1d5db);border-radius:4px}.billable-card-action-buttons{display:flex;gap:8px}.billable-upload-result{background:#ecfdf5;border:1px solid #a7f3d0;padding:10px 12px;border-radius:6px;margin:12px 0}:root{--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: clamp(1.375rem, 1.2rem + .6vw, 1.625rem);--text-2xl: clamp(1.75rem, 1.5rem + 1vw, 2.125rem);--text-3xl: clamp(2.25rem, 1.8rem + 1.5vw, 3rem);--text-display: clamp(3rem, 2.4rem + 2.5vw, 5rem);--space-1: clamp(.25rem, .2rem + .2vw, .375rem);--space-2: clamp(.5rem, .4rem + .4vw, .75rem);--space-3: clamp(.75rem, .6rem + .6vw, 1rem);--space-4: clamp(1rem, .8rem + 1vw, 1.5rem);--space-5: clamp(1.25rem, 1rem + 1.25vw, 1.875rem);--space-6: clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem);--space-8: clamp(2rem, 1.6rem + 2vw, 3rem);--space-10: clamp(2.5rem, 2rem + 2.5vw, 3.75rem);--space-12: clamp(3rem, 2.4rem + 3vw, 4.5rem);--space-16: clamp(4rem, 3.2rem + 4vw, 6rem);--space-24: clamp(6rem, 4.8rem + 6vw, 9rem);--radius-sm: .375rem;--radius: .625rem;--radius-lg: .875rem;--radius-xl: 1.25rem;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-std: cubic-bezier(.4, 0, .2, 1);--dur-fast: .15s;--dur-std: .24s;--dur-slow: .48s;--font-display: "Fraunces", ui-serif, Georgia, serif;--font-body: "Geist", system-ui, -apple-system, sans-serif;color-scheme:light dark;--bg: oklch(.985 .005 70);--bg-elevated: oklch(1 0 0);--bg-muted: oklch(.96 .008 65);--fg: oklch(.22 .02 60);--fg-muted: oklch(.48 .02 60);--fg-subtle: oklch(.62 .018 60);--border: oklch(.88 .01 65);--border-strong: oklch(.78 .013 62);--accent: oklch(.68 .14 65);--accent-hover: oklch(.62 .155 64);--accent-soft: oklch(.92 .06 75);--accent-fg: oklch(.99 .01 75);--danger: oklch(.58 .2 25);--danger-soft: oklch(.94 .04 30);--success: oklch(.58 .13 145);--success-soft: oklch(.94 .04 145);--warning: oklch(.72 .15 80);--warning-soft: oklch(.95 .05 85);--shadow-sm: 0 1px 2px oklch(.22 .02 60 / .04);--shadow: 0 4px 18px -4px oklch(.22 .02 60 / .08), 0 1px 3px oklch(.22 .02 60 / .04);--shadow-lg: 0 18px 40px -12px oklch(.22 .02 60 / .18), 0 4px 12px -4px oklch(.22 .02 60 / .08)}@media (prefers-color-scheme: dark){:root{--bg: oklch(.16 .01 60);--bg-elevated: oklch(.21 .012 60);--bg-muted: oklch(.19 .012 60);--fg: oklch(.95 .008 70);--fg-muted: oklch(.66 .015 60);--fg-subtle: oklch(.52 .015 60);--border: oklch(.3 .012 60);--border-strong: oklch(.4 .014 60);--accent: oklch(.78 .14 70);--accent-hover: oklch(.84 .15 70);--accent-soft: oklch(.3 .06 65);--accent-fg: oklch(.16 .04 65);--danger: oklch(.72 .18 25);--danger-soft: oklch(.28 .08 25);--success: oklch(.68 .13 145);--success-soft: oklch(.26 .05 145);--warning: oklch(.8 .14 80);--warning-soft: oklch(.3 .07 80);--shadow-sm: 0 1px 2px oklch(0 0 0 / .3);--shadow: 0 4px 18px -4px oklch(0 0 0 / .35), 0 1px 3px oklch(0 0 0 / .2);--shadow-lg: 0 18px 40px -12px oklch(0 0 0 / .5), 0 4px 12px -4px oklch(0 0 0 / .3)}}[data-theme=light]{--bg: oklch(.985 .005 70);--bg-elevated: oklch(1 0 0);--bg-muted: oklch(.96 .008 65);--fg: oklch(.22 .02 60);--fg-muted: oklch(.48 .02 60);--fg-subtle: oklch(.62 .018 60);--border: oklch(.88 .01 65);--border-strong: oklch(.78 .013 62);--accent: oklch(.68 .14 65);--accent-hover: oklch(.62 .155 64);--accent-soft: oklch(.92 .06 75);--accent-fg: oklch(.99 .01 75);--danger: oklch(.58 .2 25);--danger-soft: oklch(.94 .04 30);--success: oklch(.58 .13 145);--success-soft: oklch(.94 .04 145);--warning: oklch(.72 .15 80);--warning-soft: oklch(.95 .05 85)}[data-theme=dark]{--bg: oklch(.16 .01 60);--bg-elevated: oklch(.21 .012 60);--bg-muted: oklch(.19 .012 60);--fg: oklch(.95 .008 70);--fg-muted: oklch(.66 .015 60);--fg-subtle: oklch(.52 .015 60);--border: oklch(.3 .012 60);--border-strong: oklch(.4 .014 60);--accent: oklch(.78 .14 70);--accent-hover: oklch(.84 .15 70);--accent-soft: oklch(.3 .06 65);--accent-fg: oklch(.16 .04 65);--danger: oklch(.72 .18 25);--danger-soft: oklch(.28 .08 25);--success: oklch(.68 .13 145);--success-soft: oklch(.26 .05 145);--warning: oklch(.8 .14 80);--warning-soft: oklch(.3 .07 80)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","ss02"}body{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;letter-spacing:-.02em;line-height:1.1;margin:0;color:var(--fg);font-variation-settings:"opsz" 144}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl);letter-spacing:-.015em}p{margin:0}a{color:var(--accent);text-decoration:none;transition:color var(--dur-fast) var(--ease-std)}a:hover{color:var(--accent-hover)}button{font-family:inherit;cursor:pointer;border:0;background:transparent;color:inherit}.app{display:grid;grid-template-columns:minmax(220px,260px) 1fr;min-height:100vh}.sidebar{background:var(--bg);border-right:1px solid var(--border);padding:var(--space-6) var(--space-4);display:flex;flex-direction:column;gap:var(--space-6);position:sticky;top:0;height:100vh}.brand{display:flex;flex-direction:column;gap:var(--space-1);padding:0 var(--space-2)}.brand-mark{font-family:var(--font-display);font-size:1.5rem;font-weight:600;letter-spacing:-.03em;font-variation-settings:"opsz" 144,"SOFT" 50}.brand-mark em{font-style:italic;font-weight:400;color:var(--accent);font-variation-settings:"opsz" 144,"SOFT" 100}.brand-sub{font-size:var(--text-xs);color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.12em}.nav{display:flex;flex-direction:column;gap:2px}.nav-section{font-size:var(--text-xs);color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.1em;padding:var(--space-3) var(--space-2) var(--space-1);font-weight:500}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);color:var(--fg-muted);font-size:var(--text-sm);font-weight:500;transition:background var(--dur-fast) var(--ease-std),color var(--dur-fast) var(--ease-std)}.nav-item:hover{background:var(--bg-muted);color:var(--fg)}.nav-item.active{background:var(--accent-soft);color:var(--fg)}.nav-item .badge{margin-left:auto;background:var(--accent);color:var(--accent-fg);font-size:.6875rem;padding:1px 6px;border-radius:999px;font-weight:600;font-variant-numeric:tabular-nums}.nav-item.active .badge{background:var(--accent-hover)}.sidebar-user{margin-top:auto;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-top:1px solid var(--border);font-size:var(--text-sm)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:600;font-size:.8125rem;font-family:var(--font-display);font-variation-settings:"opsz" 14}.user-name{font-weight:500}.user-role{font-size:var(--text-xs);color:var(--fg-subtle)}.main{padding:var(--space-8) var(--space-10);max-width:1400px;width:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-8);padding-bottom:var(--space-5);border-bottom:1px solid var(--border)}.page-header h1{font-size:var(--text-3xl)}.page-header .eyebrow{font-size:var(--text-xs);color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.12em;font-weight:600;margin-bottom:var(--space-2);display:block}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:500;border-radius:var(--radius);border:1px solid transparent;transition:all var(--dur-fast) var(--ease-std);font-family:inherit;line-height:1.2;white-space:nowrap}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-ghost{color:var(--fg-muted);border-color:var(--border);background:var(--bg-elevated)}.btn-ghost:hover{color:var(--fg);border-color:var(--border-strong)}.btn-link{padding:0;color:var(--accent);font-weight:500;background:transparent}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6)}.card-flush{padding:0;overflow:hidden}.tag{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:500;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--fg-muted);background:var(--bg-muted)}.tag-accent{background:var(--accent-soft);color:var(--accent);border-color:transparent}.tag-danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.tag-success{background:var(--success-soft);color:var(--success);border-color:transparent}.tag-warning{background:var(--warning-soft);color:oklch(from var(--warning) calc(l - .1) c h);border-color:transparent}.tag-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.tab-num{font-variant-numeric:tabular-nums}.theme-toggle{position:fixed;bottom:var(--space-4);right:var(--space-4);background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--fg-muted);cursor:pointer;box-shadow:var(--shadow-sm);display:flex;gap:var(--space-2);align-items:center;z-index:100}.theme-toggle:hover{color:var(--fg)}@media (max-width: 900px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;overflow-x:auto;padding:var(--space-3);gap:var(--space-3)}.nav{flex-direction:row}.nav-section,.sidebar-user,.brand-sub{display:none}.brand{padding:0}.main{padding:var(--space-5) var(--space-4)}}.punch-page{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--space-8);align-items:start}@media (max-width: 1000px){.punch-page{grid-template-columns:1fr}}.clock{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-10) var(--space-8);box-shadow:var(--shadow);position:relative;overflow:hidden}.clock:before{content:"";position:absolute;top:-40%;right:-10%;width:60%;height:180%;background:radial-gradient(circle,var(--accent-soft) 0%,transparent 60%);opacity:.5;pointer-events:none}.clock-status{position:relative;display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}.pulse{width:10px;height:10px;border-radius:50%;background:var(--success);position:relative}.pulse:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;background:var(--success);opacity:.3;animation:pulse 2s var(--ease-out) infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:.3}50%{transform:scale(1.6);opacity:0}}.clock-label{font-size:var(--text-sm);font-weight:500;color:var(--fg-muted)}.clock-label strong{color:var(--fg);font-weight:600}.clock-time{font-family:var(--font-display);font-size:var(--text-display);font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 30;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums;color:var(--fg);position:relative;display:flex;align-items:baseline;gap:var(--space-2)}.clock-time .sec{font-size:.4em;color:var(--fg-subtle);font-style:italic;font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 100}.clock-since{margin-top:var(--space-3);font-size:var(--text-base);color:var(--fg-muted);position:relative}.clock-since strong{color:var(--fg);font-weight:600;font-variant-numeric:tabular-nums}.clock-actions{position:relative;margin-top:var(--space-8);display:flex;gap:var(--space-4);align-items:stretch}.clock-out-btn{flex:1;background:var(--fg);color:var(--bg-elevated);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);font-family:var(--font-body);font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em;transition:all var(--dur-fast) var(--ease-out);display:flex;flex-direction:column;align-items:flex-start;gap:4px;cursor:pointer;border:0}.clock-out-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.clock-out-btn .hint{font-size:var(--text-xs);font-weight:400;opacity:.7}.location{display:flex;background:var(--bg-muted);border-radius:var(--radius);padding:4px;gap:2px}.location button{flex:1;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:500;border-radius:calc(var(--radius) - 4px);color:var(--fg-muted);transition:all var(--dur-fast) var(--ease-std);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.location button[aria-pressed=true]{background:var(--bg-elevated);color:var(--fg);box-shadow:var(--shadow-sm)}.location .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5}.location button[aria-pressed=true] .dot{background:var(--accent);opacity:1}.clock-foot{position:relative;margin-top:var(--space-6);display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-4);border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--fg-muted)}.clock-foot a{color:var(--fg-muted)}.clock-foot a:hover{color:var(--fg)}.widget{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.widget+.widget{margin-top:var(--space-4)}.widget-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-3)}.widget-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--fg-subtle);font-weight:600}.widget-link{font-size:var(--text-xs);color:var(--fg-muted)}.week-hours{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:500;font-variation-settings:"opsz" 144,"SOFT" 50;letter-spacing:-.02em;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:var(--space-2)}.week-hours .unit{font-size:.45em;color:var(--fg-subtle);font-style:italic;font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 100}.week-sub{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--fg-muted)}.week-bars{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:var(--space-4);height:60px;align-items:end}.day-bar{background:var(--accent-soft);border-radius:3px 3px 0 0;position:relative;display:flex;flex-direction:column-reverse;min-height:4px}.day-bar.today{background:var(--accent)}.day-bar.future{background:var(--bg-muted);border-top:1px dashed var(--border)}.day-bar.empty{background:transparent;border-top:1px dashed var(--border)}.day-bar-label{position:absolute;bottom:-20px;left:50%;transform:translate(-50%);font-size:.6875rem;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.06em;font-variant-numeric:tabular-nums}.week-grid-foot{height:24px}.pto-balance-mini{font-family:var(--font-display);font-size:var(--text-2xl);font-variation-settings:"opsz" 144,"SOFT" 60;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.pto-balance-mini .unit{font-size:.55em;color:var(--fg-subtle);font-style:italic;font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 100}.pto-foot{margin-top:var(--space-3);display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--fg-muted)}.punches{margin-top:var(--space-8)}.punches-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-4)}.punches-header h3{font-family:var(--font-display);font-size:var(--text-xl);font-variation-settings:"opsz" 144,"SOFT" 40}.punches-list{display:flex;flex-direction:column}.punch-row{display:grid;grid-template-columns:90px 1fr 200px 100px auto;gap:var(--space-4);align-items:center;padding:var(--space-4) 0;border-bottom:1px solid var(--border);font-size:var(--text-sm)}.punch-row:last-child{border-bottom:0}.punch-day{font-weight:500;color:var(--fg)}.punch-date{font-size:var(--text-xs);color:var(--fg-subtle);margin-top:2px;font-variant-numeric:tabular-nums}.punch-times{font-variant-numeric:tabular-nums;color:var(--fg)}.punch-times .dash{color:var(--fg-subtle);margin:0 var(--space-2)}.punch-total{font-family:var(--font-display);font-size:var(--text-lg);font-variation-settings:"opsz" 14,"SOFT" 30;font-variant-numeric:tabular-nums;font-weight:500;text-align:right}.punch-loc{color:var(--fg-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:500}.punch-edit{color:var(--fg-subtle);font-size:var(--text-xs);opacity:0;transition:opacity var(--dur-fast) var(--ease-std)}.punch-row:hover .punch-edit{opacity:1}.punch-edit:hover{color:var(--accent)}.punch-row.open .punch-times{color:var(--success);font-weight:500}.punch-row.open:before{content:"●";color:var(--success)}.balance-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--space-10);margin-bottom:var(--space-12);align-items:end}@media (max-width: 900px){.balance-hero{grid-template-columns:1fr}}.big-number{font-family:var(--font-display);font-size:clamp(5rem,4rem + 6vw,10rem);font-variation-settings:"opsz" 144,"SOFT" 30;font-weight:400;letter-spacing:-.05em;line-height:.9;color:var(--fg);font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:var(--space-3)}.big-number .unit{font-size:.18em;color:var(--fg-muted);font-style:italic;font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 100;letter-spacing:0}.big-number .point{color:var(--accent);font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 100}.hero-sub{margin-top:var(--space-4);font-size:var(--text-lg);color:var(--fg-muted);line-height:1.5;max-width:50ch}.hero-sub strong{color:var(--fg)}.math{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6)}.math-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--fg-subtle);font-weight:600;margin-bottom:var(--space-4)}.math-line{display:flex;justify-content:space-between;padding:var(--space-3) 0;font-size:var(--text-base);font-variant-numeric:tabular-nums;border-bottom:1px solid var(--border);align-items:baseline}.math-line:last-of-type{border-bottom:0}.math-line .lbl{color:var(--fg-muted);display:flex;flex-direction:column;gap:2px}.math-line .lbl small{font-size:var(--text-xs);color:var(--fg-subtle)}.math-line .num{font-family:var(--font-display);font-size:var(--text-xl);font-variation-settings:"opsz" 144,"SOFT" 40;font-weight:500;color:var(--fg);letter-spacing:-.01em}.math-line.minus .num{color:var(--danger)}.math-line.plus .num{color:var(--success)}.math-line.total{margin-top:var(--space-2);padding:var(--space-4) var(--space-3);background:var(--bg-muted);border-radius:var(--radius);border:0}.math-line.total .num{font-size:var(--text-2xl)}.projection{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-8)}.projection-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-5)}.projection-head h3{font-family:var(--font-display);font-size:var(--text-xl);font-variation-settings:"opsz" 144,"SOFT" 40;font-weight:500;letter-spacing:-.015em}.projection-key{display:flex;gap:var(--space-4);font-size:var(--text-xs);color:var(--fg-muted)}.key-item{display:inline-flex;align-items:center;gap:var(--space-2)}.key-swatch{width:12px;height:12px;border-radius:3px}.key-swatch.actual{background:var(--accent)}.key-swatch.projected{background:repeating-linear-gradient(45deg,var(--accent-soft) 0 4px,transparent 4px 8px);border:1px solid var(--accent-soft)}.key-swatch.cap{background:oklch(from var(--danger) l c h / .4)}.chart{height:240px;position:relative;margin:0 var(--space-2)}.chart-svg{width:100%;height:100%;overflow:visible}.chart-xlabels{display:grid;grid-template-columns:repeat(12,1fr);margin-top:var(--space-2)}.chart-xlabels span{text-align:center;font-size:.6875rem;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.08em;font-weight:500}.chart-xlabels span.now{color:var(--accent);font-weight:700}.history-section h3{font-family:var(--font-display);font-size:var(--text-xl);font-variation-settings:"opsz" 144,"SOFT" 40;font-weight:500;margin-bottom:var(--space-5);letter-spacing:-.015em}.history-row{display:grid;grid-template-columns:90px 1fr 100px 110px auto;gap:var(--space-4);padding:var(--space-4) 0;align-items:center;border-bottom:1px solid var(--border);font-size:var(--text-sm)}.history-row:last-child{border-bottom:0}.h-date{font-weight:500}.h-date small{display:block;color:var(--fg-subtle);font-size:var(--text-xs);font-weight:400;margin-top:2px}.h-desc{color:var(--fg)}.h-desc small{color:var(--fg-subtle);margin-left:6px}.h-hours{font-family:var(--font-display);font-variation-settings:"opsz" 14,"SOFT" 40;font-size:var(--text-lg);font-weight:500;text-align:right;font-variant-numeric:tabular-nums}.h-hours.plus{color:var(--success)}.h-hours.minus{color:var(--danger)}.h-status{text-align:center}.h-action{color:var(--fg-subtle);font-size:var(--text-xs)}.request-page{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--space-8);align-items:start}@media (max-width: 1000px){.request-page{grid-template-columns:1fr}}.form-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-8)}.field{margin-bottom:var(--space-6)}.field-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--fg-subtle);font-weight:600;margin-bottom:var(--space-3);display:block}.field-help{font-size:var(--text-xs);color:var(--fg-muted);margin-top:var(--space-2);line-height:1.5}.field-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);font-size:var(--text-base);color:var(--fg);width:100%;font-family:inherit;transition:border var(--dur-fast) var(--ease-std)}.field-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea.field-input{resize:vertical;min-height:80px;line-height:1.5}.type-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-3)}.type-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);cursor:pointer;transition:all var(--dur-fast) var(--ease-std);text-align:left;display:flex;flex-direction:column;gap:4px}.type-card:hover{border-color:var(--border-strong)}.type-card[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.type-card .name{font-weight:600;color:var(--fg);font-size:var(--text-sm)}.type-card .sub{color:var(--fg-muted);font-size:var(--text-xs)}.type-card[aria-pressed=true] .name{color:oklch(from var(--accent) calc(l - .3) c h)}.type-card[aria-pressed=true] .sub{color:oklch(from var(--accent) calc(l - .2) c h)}.calendar{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4) var(--space-5)}.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.cal-month{font-family:var(--font-display);font-size:var(--text-lg);font-variation-settings:"opsz" 144,"SOFT" 50;font-weight:500;letter-spacing:-.01em}.cal-nav button{width:28px;height:28px;border-radius:var(--radius-sm);color:var(--fg-muted);display:inline-flex;align-items:center;justify-content:center;transition:background var(--dur-fast) var(--ease-std)}.cal-nav button:hover{background:var(--bg-muted);color:var(--fg)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.cal-weekday{font-size:.6875rem;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.08em;font-weight:600;padding:var(--space-2) 0}.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);border-radius:var(--radius-sm);color:var(--fg);cursor:pointer;font-variant-numeric:tabular-nums;position:relative;transition:all var(--dur-fast) var(--ease-std);background:transparent;border:1px solid transparent}.cal-day:hover{background:var(--bg-muted)}.cal-day.muted,.cal-day.weekend{color:var(--fg-subtle)}.cal-day.holiday{color:var(--accent);font-weight:600}.cal-day.holiday:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:3px;height:3px;border-radius:50%;background:var(--accent)}.cal-day.blackout{color:var(--fg-subtle);background:repeating-linear-gradient(45deg,transparent,transparent 3px,oklch(from var(--danger) l c h / .06) 3px,oklch(from var(--danger) l c h / .06) 6px);cursor:not-allowed;text-decoration:line-through;text-decoration-color:oklch(from var(--danger) l c h / .4)}.cal-day.blackout:hover{background:oklch(from var(--danger) l c h / .1)}.cal-day.range-start,.cal-day.range-end{background:var(--accent);color:var(--accent-fg);font-weight:600}.cal-day.range-mid{background:var(--accent-soft);color:oklch(from var(--accent) calc(l - .3) c h);font-weight:500}.cal-day.today{border:1.5px solid var(--accent);font-weight:600}.cal-legend{margin-top:var(--space-4);display:flex;gap:var(--space-4);font-size:var(--text-xs);color:var(--fg-muted);flex-wrap:wrap}.legend-item{display:inline-flex;align-items:center;gap:var(--space-2)}.legend-swatch{width:14px;height:14px;border-radius:var(--radius-sm)}.legend-swatch.selected{background:var(--accent)}.legend-swatch.holiday{background:var(--accent-soft);border:1px solid var(--accent)}.legend-swatch.blackout{background:repeating-linear-gradient(45deg,transparent,transparent 2px,oklch(from var(--danger) l c h / .2) 2px,oklch(from var(--danger) l c h / .2) 4px);border:1px solid var(--border)}.preview-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);position:sticky;top:var(--space-6)}.preview-section+.preview-section{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border)}.preview-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--fg-subtle);font-weight:600;margin-bottom:var(--space-3)}.preview-num{font-family:var(--font-display);font-size:var(--text-3xl);font-variation-settings:"opsz" 144,"SOFT" 40;font-weight:500;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:var(--space-2)}.preview-num .unit{font-size:.4em;color:var(--fg-muted);font-style:italic;font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 100}.math-row{display:flex;justify-content:space-between;font-size:var(--text-sm);padding:var(--space-2) 0;font-variant-numeric:tabular-nums}.math-row .label{color:var(--fg-muted)}.math-row .val{font-weight:500}.math-row.total{border-top:1px solid var(--border);margin-top:var(--space-1);padding-top:var(--space-3);font-weight:600}.math-row.minus .val{color:var(--danger)}.math-row.plus .val{color:var(--success)}.math-row.total .val{font-family:var(--font-display);font-variation-settings:"opsz" 14,"SOFT" 40;font-size:var(--text-lg)}.submit-area{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--border);display:flex;gap:var(--space-3)}.submit-area .btn-primary{flex:1;padding:var(--space-3) var(--space-4);font-size:var(--text-base)}.blackout-note{background:oklch(from var(--warning) l c h / .1);border:1px solid oklch(from var(--warning) calc(l - .05) c h / .4);border-radius:var(--radius);padding:var(--space-4);margin-top:var(--space-4);display:flex;gap:var(--space-3);font-size:var(--text-sm);color:var(--fg)}.blackout-note .icon{width:24px;height:24px;border-radius:50%;background:var(--warning);color:var(--bg-elevated);display:grid;place-items:center;font-weight:700;flex-shrink:0;font-size:var(--text-xs)}.blackout-note strong{color:var(--fg)}.blackout-note .head{font-weight:600;margin-bottom:4px}.blackout-note p{color:var(--fg-muted);line-height:1.5}.blackout-note a{font-weight:500}.stats{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--space-8)}@media (max-width: 800px){.stats{grid-template-columns:1fr 1fr}}.stat{background:var(--bg-elevated);padding:var(--space-5) var(--space-6);display:flex;flex-direction:column;gap:var(--space-1)}.stat-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--fg-subtle);font-weight:600}.stat-value{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;font-variation-settings:"opsz" 144,"SOFT" 50;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1;display:flex;align-items:baseline;gap:var(--space-2)}.stat-value .unit,.stat-value em{font-size:.45em;font-style:italic;color:var(--fg-muted);font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 100}.stat.hero .stat-value{font-size:var(--text-3xl)}.stat.hero{background:var(--accent-soft)}.stat.hero .stat-label{color:oklch(from var(--accent) calc(l - .18) c h)}.stat-delta{font-size:var(--text-xs);color:var(--fg-muted);margin-top:var(--space-1)}.stat-delta strong{color:var(--fg);font-weight:600}.filters{display:flex;gap:var(--space-3);margin-bottom:var(--space-5);align-items:center;flex-wrap:wrap}.filter-chip{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);border-radius:999px;background:var(--bg-elevated);border:1px solid var(--border);color:var(--fg-muted);cursor:pointer;transition:all var(--dur-fast) var(--ease-std);display:inline-flex;align-items:center;gap:var(--space-2)}.filter-chip:hover{color:var(--fg);border-color:var(--border-strong)}.filter-chip.active{background:var(--fg);color:var(--bg-elevated);border-color:var(--fg)}.filter-chip .count{font-size:.6875rem;background:var(--bg-muted);color:var(--fg-muted);padding:0 6px;border-radius:999px;font-variant-numeric:tabular-nums;font-weight:600}.filter-chip.active .count{background:oklch(from var(--bg-elevated) l c h / .15);color:var(--bg-elevated)}.filters-spacer{flex:1}.filter-search{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--fg);width:220px;font-family:inherit}.filter-search::placeholder{color:var(--fg-subtle)}.filter-search:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.flags{display:flex;flex-direction:column;gap:var(--space-3)}.flag{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);display:grid;grid-template-columns:60px minmax(180px,1.5fr) minmax(220px,1.8fr) auto;gap:var(--space-5);align-items:center;transition:all var(--dur-std) var(--ease-out);position:relative}@media (max-width: 900px){.flag{grid-template-columns:1fr;gap:var(--space-3)}}.flag:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.flag-severity{width:4px;height:calc(100% + 2px);position:absolute;left:-1px;top:-1px;border-radius:4px 0 0 4px}.flag.high .flag-severity{background:var(--danger)}.flag.medium .flag-severity{background:var(--warning)}.flag.low .flag-severity{background:var(--fg-subtle)}.flag-date{text-align:center}.flag-date .day{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;font-variation-settings:"opsz" 144,"SOFT" 30;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.flag-date .month{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--fg-subtle);font-weight:600;margin-top:4px}.flag-date .weekday{font-size:.6875rem;color:var(--fg-muted);margin-top:2px;font-style:italic;font-family:var(--font-display);font-variation-settings:"opsz" 14,"SOFT" 100}.flag-who{display:flex;flex-direction:column;gap:var(--space-1)}.flag-who-row{display:flex;align-items:center;gap:var(--space-2)}.flag-who .name{font-size:var(--text-base);font-weight:600;color:var(--fg)}.flag-who .role{font-size:var(--text-xs);color:var(--fg-subtle)}.severity-pill{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:1px 6px;border-radius:4px}.flag.high .severity-pill{background:var(--danger-soft);color:var(--danger)}.flag.medium .severity-pill{background:var(--warning-soft);color:oklch(from var(--warning) calc(l - .18) c h)}.flag.low .severity-pill{background:var(--bg-muted);color:var(--fg-muted)}.flag-evidence{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--fg-muted);line-height:1.5}.flag-evidence .head{color:var(--fg);font-weight:500}.flag-evidence .timeline{display:flex;gap:var(--space-3);font-variant-numeric:tabular-nums;font-size:var(--text-xs)}.ev-item{display:flex;align-items:center;gap:4px;color:var(--fg-muted)}.ev-item .check{width:12px;height:12px;border-radius:50%;border:1.5px solid currentColor;color:var(--fg-subtle);display:inline-flex;align-items:center;justify-content:center;font-size:8px}.ev-item.no{color:var(--danger)}.ev-item.yes .check{background:var(--success);border-color:var(--success);color:var(--bg-elevated)}.ev-item.yes .check:before{content:"✓"}.ev-item.no .check:before{content:"×";font-size:12px}.flag-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end}.quick-action{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:500;border-radius:var(--radius-sm);background:var(--bg-muted);color:var(--fg-muted);transition:all var(--dur-fast) var(--ease-std);cursor:pointer;border:1px solid transparent}.quick-action:hover{background:var(--accent);color:var(--accent-fg)}.quick-action.primary{background:var(--fg);color:var(--bg-elevated)}.quick-action.primary:hover{background:var(--accent);color:var(--accent-fg)}.quick-action.subtle:hover{background:var(--bg-muted);color:var(--fg)}.resolved-section{margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid var(--border)}.resolved-section h3{font-size:var(--text-lg);font-weight:500;color:var(--fg-muted);font-family:var(--font-display);font-variation-settings:"opsz" 144,"SOFT" 50;margin-bottom:var(--space-3)}.resolved-row{display:grid;grid-template-columns:80px 200px 1fr auto;gap:var(--space-4);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);border-bottom:1px solid var(--border);color:var(--fg-muted);align-items:center}.resolved-row .who{color:var(--fg);font-weight:500}.resolved-row .who small{color:var(--fg-subtle);font-weight:400;margin-left:6px}.resolved-row .res{font-size:var(--text-xs);display:inline-flex;align-items:center;gap:var(--space-2)}.resolved-row .dot{width:6px;height:6px;border-radius:50%;background:var(--success)}.resolved-row time{font-size:var(--text-xs);font-variant-numeric:tabular-nums}.lede{color:var(--fg-muted);max-width:60ch;font-size:var(--text-base);margin-top:var(--space-2);line-height:1.55}.lede strong{color:var(--fg);font-weight:600}
