:root{--color-paper:oklch(98.5% .004 250);--color-paper-2:oklch(96.5% .007 250);--color-paper-3:oklch(93.5% .01 250);--color-ink:oklch(22% .018 258);--color-ink-2:oklch(32% .018 257);--color-neutral:oklch(45% .014 256);--color-muted:oklch(51% .012 255);--color-rule:oklch(87% .01 252);--color-rule-strong:oklch(64% .014 254);--color-accent:oklch(55% .2 256);--color-accent-dark:oklch(46% .18 258);--color-accent-soft:oklch(94% .025 255);--color-accent-ink:oklch(98.5% .004 250);--color-focus:oklch(22% .018 258);--color-graphite:oklch(20% .016 260);--color-graphite-raised:oklch(25% .018 260);--color-graphite-ink:oklch(95% .008 250);--color-graphite-muted:oklch(76% .012 252);--color-danger:oklch(52% .18 26);--color-danger-soft:oklch(95% .025 26);--color-danger-ink:oklch(25% .07 26);--color-success:oklch(48% .13 155);--color-success-soft:oklch(95% .025 155);--color-success-ink:oklch(25% .06 155);--color-overlay:oklch(12% .012 258/.56);--color-transparent:transparent;--font-display:"Space Grotesk", ui-sans-serif, sans-serif;--font-body:"IBM Plex Sans", ui-sans-serif, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--space-3xs:.125rem;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:6rem;--space-4xl:9rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.25rem;--text-lg:1.5625rem;--text-xl:1.9531rem;--text-2xl:2.4414rem;--text-3xl:3.0518rem;--text-4xl:3.8147rem;--text-display:clamp(3.5rem, 10vw, 7rem);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--rule-thin:1px;--rule-focus:2px;--radius-sm:.375rem;--radius-md:.625rem;--radius-round:999rem;--shadow-whisper:0 1px 2px oklch(20% .01 258/.05);--page-gutter:clamp(1rem, 4vw, 4rem);--page-width:86rem;--control-height:2.75rem;--z-base:1;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-modal:400;--z-toast:500;--z-tooltip:600}*,:after,:before{box-sizing:border-box}body,html{min-width:20rem;margin:0;overflow-x:clip}html{font-family:var(--font-body);font-size:var(--text-base);line-height:1.6}body,html{background:var(--color-paper);color:var(--color-ink-2)}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100dvh}button,input,select{color:inherit;font:inherit}a,button,select{-webkit-tap-highlight-color:var(--color-transparent)}a{color:inherit;text-decoration:none}button{border:0}dd,dl,h1,h2,h3,p,ul{margin:0}h1,h2,h3{min-width:0;color:var(--color-ink);font-family:var(--font-display);letter-spacing:-.035em;overflow-wrap:anywhere;font-style:normal;font-weight:600;line-height:1.08}h1{font-size:clamp(var(--text-2xl),6vw,var(--text-4xl))}h2{font-size:clamp(var(--text-lg),3vw,var(--text-xl))}h3{font-size:var(--text-md)}strong{color:var(--color-ink);font-weight:600}:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:var(--space-2xs)}::selection{background:var(--color-accent-soft);color:var(--color-ink)}.visually-hidden{width:var(--rule-thin);height:var(--rule-thin);margin:calc(var(--rule-thin)*-1);clip:rect(0,0,0,0);white-space:nowrap;border:0;padding:0;position:absolute;overflow:hidden}.tnum{font-variant-numeric:tabular-nums}.wordmark{color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-md);letter-spacing:-.04em;white-space:nowrap;font-weight:700}.button,.command-trigger,.text-action{min-height:var(--control-height);white-space:nowrap;justify-content:center;align-items:center}.button{gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);border:var(--rule-thin) solid var(--color-rule-strong);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);cursor:pointer;transition:transform var(--dur-micro) var(--ease-out);font-weight:600;line-height:1;display:inline-flex}.button:active,.command-trigger:active,.text-action:active{transform:translateY(var(--rule-thin))}.button:disabled,.button[aria-disabled=true],.command-trigger:disabled{cursor:not-allowed;opacity:.5}.button--primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-ink)}.button--quiet{background:var(--color-transparent)}.button--on-dark{border-color:var(--color-graphite-muted);background:var(--color-graphite-raised);color:var(--color-graphite-ink)}.button--on-dark:focus-visible{outline-color:var(--color-graphite-ink)}.button[data-state=error]{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger-ink)}.button[data-state=success]{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success-ink)}.text-action{padding-inline:var(--space-xs);background:var(--color-transparent);color:var(--color-neutral);cursor:pointer;font-size:var(--text-sm);font-weight:500;display:inline-flex}.text-action--danger{color:var(--color-danger)}.text-action:disabled{cursor:not-allowed;opacity:.55}.spinner{width:var(--space-md);height:var(--space-md);border:var(--rule-focus) solid var(--color-rule-strong);border-top-color:var(--color-ink);border-radius:var(--radius-round);animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}.notice{padding:var(--space-sm) var(--space-md);border:var(--rule-thin) solid var(--color-rule-strong);border-radius:var(--radius-sm);background:var(--color-paper-2);color:var(--color-ink-2);font-size:var(--text-sm)}.notice--error{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger-ink)}.notice--success{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success-ink)}.reveal{animation:reveal var(--dur-long) var(--ease-out) both}@keyframes reveal{0%{opacity:0;transform:translateY(var(--space-xs))}to{opacity:1;transform:none}}.login-shell{background:var(--color-paper);min-height:100dvh;color:var(--color-ink-2);display:grid}.login-action,.login-copy{justify-content:space-between;gap:var(--space-3xl);padding:var(--space-xl) var(--page-gutter);flex-direction:column;display:flex}.login-copy{background:var(--color-paper-2);min-height:48dvh;color:var(--color-ink-2)}.login-action>div,.login-copy>div{gap:var(--space-md);display:grid}.login-copy h1{max-width:9ch}.login-action p,.login-copy p{max-width:48ch}.login-action{justify-content:center;align-items:flex-start}.app-shell{min-height:100dvh}.app-footer,.app-nav,.dashboard{width:min(100%,var(--page-width));padding-inline:var(--page-gutter);margin-inline:auto}.app-nav{justify-content:space-between;gap:var(--space-lg);border-bottom:var(--rule-thin) solid var(--color-rule);min-height:4.5rem}.app-nav,.app-nav__actions{align-items:center;display:flex}.app-nav__actions{gap:var(--space-sm)}.app-nav__actions>.text-action,.signed-in{display:none}.signed-in{max-width:18ch;color:var(--color-neutral);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.command-trigger{gap:var(--space-sm);padding-inline:var(--space-sm);border:var(--rule-thin) solid var(--color-rule-strong);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink-2);cursor:pointer;font-size:var(--text-sm);display:inline-flex}kbd{color:var(--color-neutral);font-family:var(--font-mono);font-size:var(--text-xs)}.dashboard{gap:var(--space-2xl);padding-block:var(--space-2xl) var(--space-3xl);grid-template-columns:minmax(0,1fr);display:grid}.dashboard>*{min-width:0}.dashboard-head{gap:var(--space-xl);grid-template-columns:minmax(0,1fr);display:grid}.dashboard-head>div:first-child{gap:var(--space-sm);display:grid}.dashboard-head p{max-width:60ch;color:var(--color-neutral)}.field,.year-control{gap:var(--space-xs);display:grid}.year-control{align-content:end;width:100%;min-width:0}.field label,.year-control label{color:var(--color-ink);font-size:var(--text-sm);font-weight:600}.command-search input,input[type=number],select{width:100%;min-height:var(--control-height);padding:var(--space-sm) var(--space-md);border:var(--rule-thin) solid var(--color-rule-strong);border-radius:var(--radius-sm);outline:var(--rule-focus) solid var(--color-transparent);outline-offset:var(--rule-thin);background:var(--color-paper);color:var(--color-ink)}.command-search input:focus-visible,input[type=number]:focus-visible,select:focus-visible{outline-color:var(--color-focus)}input[aria-invalid=true]{border-color:var(--color-danger);background:var(--color-danger-soft)}input:disabled,select:disabled{cursor:not-allowed;opacity:.55}.field__message{min-height:1lh;color:var(--color-neutral);font-size:var(--text-sm)}.field__message--error{color:var(--color-danger)}.connection-band{gap:var(--space-xl);padding:var(--space-xl);border-radius:var(--radius-md);background:var(--color-graphite);color:var(--color-graphite-ink);display:grid}.connection-band>div{gap:var(--space-sm);display:grid}.connection-band h2{color:var(--color-graphite-ink)}.connection-band p{max-width:62ch;color:var(--color-graphite-muted)}.summary{border-block:var(--rule-thin) solid var(--color-rule);display:grid}.summary-primary{align-content:space-between;gap:var(--space-xl);min-height:14rem;padding-block:var(--space-xl);display:grid}.summary-primary__value{color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-display);font-variant-numeric:tabular-nums;letter-spacing:-.075em;font-weight:600;line-height:.84}.summary-primary[data-tone=danger] .summary-primary__value,.summary-primary[data-tone=danger] h2{color:var(--color-danger)}.summary-primary>div{gap:var(--space-xs);display:grid}.summary-primary>div p{color:var(--color-neutral);font-size:var(--text-xs)}.summary-details{border-top:var(--rule-thin) solid var(--color-rule);display:grid}.summary-details>div{justify-content:space-between;align-items:baseline;gap:var(--space-md);padding-block:var(--space-lg);border-bottom:var(--rule-thin) solid var(--color-rule);display:flex}.summary-details>div:last-child{border-bottom:0}.summary-details dt{color:var(--color-neutral)}.summary-details dd{color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-lg);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.allocation-progress{height:var(--space-2xs);background:var(--color-paper-3);overflow:clip}.allocation-progress span{transform-origin:0;background:var(--color-accent);width:100%;height:100%;transition:transform var(--dur-long) var(--ease-out);display:block}.allocation-section,.leave-section,.source-section{gap:var(--space-xl);display:grid}.section-heading{gap:var(--space-lg);grid-template-columns:minmax(0,1fr);display:grid}.section-heading>div{gap:var(--space-xs);display:grid}.section-heading p{max-width:60ch;color:var(--color-neutral)}.leave-table-wrap{border-top:var(--rule-thin) solid var(--color-rule-strong)}.leave-table{border-collapse:collapse;width:100%;color:var(--color-ink-2);font-variant-numeric:tabular-nums}.leave-table thead{display:none}.leave-table tbody,.leave-table td,.leave-table tr{display:block}.leave-table tr{padding-block:var(--space-lg);border-bottom:var(--rule-thin) solid var(--color-rule)}.leave-table td{gap:var(--space-md);padding-block:var(--space-2xs);text-align:start;grid-template-columns:minmax(5rem,.7fr) minmax(0,1.3fr);display:grid}.leave-table td:before{content:attr(data-label);color:var(--color-neutral);font-size:var(--text-sm)}.leave-table td small,.leave-table td strong{display:block}.leave-table td small{margin-top:var(--space-2xs);color:var(--color-neutral);font-size:var(--text-xs)}.status-mark{align-items:center;gap:var(--space-xs);white-space:nowrap;display:inline-flex}.status-mark:before{content:"";width:var(--space-xs);height:var(--space-xs);border:var(--rule-thin) solid var(--color-neutral);border-radius:var(--radius-round);background:var(--color-paper)}.status-mark[data-status=booked]:before{border-color:var(--color-accent);background:var(--color-accent)}.status-mark[data-status=today]:before{border-color:var(--color-ink);background:var(--color-ink)}.empty-state{gap:var(--space-lg);padding-block:var(--space-xl);border-block:var(--rule-thin) solid var(--color-rule);grid-template-columns:auto minmax(0,1fr);align-items:start;display:grid}.empty-state>div{gap:var(--space-xs);display:grid}.empty-state p{color:var(--color-neutral)}.empty-state__mark{width:var(--space-xl);height:var(--space-xl);border:var(--rule-thin) solid var(--color-rule-strong);border-radius:var(--radius-sm);display:block;position:relative}.empty-state__mark:after,.empty-state__mark:before{inset-inline:var(--space-xs);height:var(--rule-thin);background:var(--color-rule-strong);content:"";position:absolute}.empty-state__mark:before{inset-block-start:var(--space-sm)}.empty-state__mark:after{inset-block-start:var(--space-lg)}.warning-list{gap:var(--space-xs);color:var(--color-neutral);font-size:var(--text-sm);padding-inline-start:var(--space-lg);display:grid}.allocation-section{scroll-margin-top:var(--space-xl);padding:var(--space-xl);border:var(--rule-thin) solid var(--color-rule-strong);border-radius:var(--radius-md);background:var(--color-paper-2);color:var(--color-ink-2)}.allocation-form{gap:var(--space-lg);align-items:start;display:grid}.allocation-meta{color:var(--color-neutral);font-size:var(--text-sm)}.source-section{padding-block:var(--space-xl);border-block:var(--rule-thin) solid var(--color-rule)}.source-section>div:first-child{gap:var(--space-xs);display:grid}.source-section p{max-width:60ch;color:var(--color-neutral)}.source-actions{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.app-footer{gap:var(--space-xs);padding-block:var(--space-lg);border-top:var(--rule-thin) solid var(--color-rule);color:var(--color-neutral);font-size:var(--text-sm);flex-direction:column;display:flex}.command-dialog{width:min(calc(100% - var(--space-md)*2),36rem);border:var(--rule-thin) solid var(--color-rule-strong);border-radius:var(--radius-md);background:var(--color-paper);height:fit-content;max-height:min(80dvh,40rem);color:var(--color-ink-2);box-shadow:var(--shadow-whisper);margin:auto;padding:0;position:fixed;inset:0}.command-dialog::backdrop{background:var(--color-overlay)}.command-panel{display:grid}.command-search{align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-bottom:var(--rule-thin) solid var(--color-rule);grid-template-columns:minmax(0,1fr) auto;display:grid}.command-search input{border-color:var(--color-transparent);background:var(--color-transparent)}.command-list{gap:var(--space-2xs);padding:var(--space-sm);list-style:none;display:grid}.command-list button{width:100%;min-height:var(--control-height);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:var(--color-transparent);color:var(--color-ink-2);cursor:pointer;text-align:start;justify-content:space-between;align-items:center;display:flex}.command-list button[aria-selected=true]{background:var(--color-accent-soft);color:var(--color-ink)}.command-list button:active{transform:translateY(var(--rule-thin))}.command-list button:disabled{cursor:not-allowed;opacity:.5}.command-empty{padding:var(--space-xl);color:var(--color-neutral);text-align:center}@media (hover:hover) and (pointer:fine){.button:not(:disabled):hover,.command-trigger:hover{transform:translateY(calc(var(--rule-thin)*-1))}.button--quiet:hover,.command-list button:hover,.command-trigger:hover{background:var(--color-paper-2)}.button--primary:hover{background:var(--color-accent-dark)}.text-action:hover{color:var(--color-ink)}.text-action--danger:hover{color:var(--color-danger-ink)}.command-search input:hover,input[type=number]:hover,select:hover{background:var(--color-paper-2)}}.command-search input:active,input[type=number]:active,select:active{border-color:var(--color-ink)}@media (width>=40rem){.login-action,.login-copy{padding-block:var(--space-2xl)}.signed-in{display:inline-block}.app-nav__actions>.text-action{display:inline-flex}.connection-band,.dashboard-head,.section-heading,.source-section{grid-template-columns:minmax(0,1fr) auto;align-items:end}.year-control{width:12rem}.summary{grid-template-columns:minmax(0,1.35fr) minmax(16rem,.65fr)}.summary-primary{min-height:19rem;border-inline-end:var(--rule-thin) solid var(--color-rule);padding-inline-end:var(--space-xl)}.summary-details{border-top:0;align-content:center;padding-inline-start:var(--space-xl)}.allocation-form{grid-template-columns:minmax(0,1fr) auto}.allocation-form .button{margin-top:calc(var(--space-lg) + var(--space-xs))}.app-footer{flex-direction:row;justify-content:space-between}}@media (width>=60rem){.login-shell{grid-template-columns:minmax(0,1.15fr) minmax(22rem,.85fr)}.login-action,.login-copy{min-height:100dvh;padding:var(--space-2xl)}.login-copy{justify-content:space-between}.login-action{padding-inline:var(--space-3xl)}.leave-table thead{display:table-header-group}.leave-table tbody{display:table-row-group}.leave-table tr{padding:0;display:table-row}.leave-table td,.leave-table th{padding:var(--space-md) var(--space-sm);border-bottom:var(--rule-thin) solid var(--color-rule);text-align:start;vertical-align:middle;display:table-cell}.leave-table th{color:var(--color-neutral);font-size:var(--text-sm);font-weight:500}.leave-table td:first-child,.leave-table th:first-child{padding-inline-start:0}.leave-table td:last-child,.leave-table th:last-child{text-align:end;padding-inline-end:0}.leave-table td:before{display:none}}@media (pointer:coarse){.button,.command-trigger,.text-action,input[type=number],select{min-height:3rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.15s!important;animation-duration:.15s!important;animation-iteration-count:1!important}.reveal{animation-name:reveal-reduced}@keyframes reveal-reduced{0%{opacity:0;transform:none}to{opacity:1;transform:none}}}
