@font-face{font-family:"Source Sans 3";src:url(/fonts/source-sans-3-var.woff2)format("woff2");font-weight:400 900;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/montserrat-var.woff2)format("woff2");font-weight:600 700;font-style:normal;font-display:swap}@font-face{font-family:Lato;src:url(/fonts/lato-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Lato;src:url(/fonts/lato-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#fbf9f5;--surface:#fff;--surface-raised:#f6f3ed;--surface-sunken:#ece7dd;--surface-selected:#eef1f6;--surface-hover:#f7f5f0;--ink:#14120d;--ink-muted:#55503f;--line:#e2ddd3;--line-control:#8b8272;--accent:#1f3a5e;--accent-hover:#2f4f7a;--accent-active:#152a47;--accent-fg:#fff;--link:#1f3a5e;--ok-bg:#e2eedf;--ok-fg:#2c5a39;--ok-solid:#3e7a4e;--warn-bg:#fff1b8;--warn-fg:#715405;--warn-line:#9a7307;--danger-bg:#fbd3cd;--danger-fg:#7e0f08;--info-bg:#d3dcea;--info-solid:#1f3a5e;--unknown-bg:#f3f0fa;--unknown-fg:#4a3f73;--unknown-line:#8578ae;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--step-1:#86b6ef;--step-2:#2a78d6;--step-3:#184f95;--meter-track:#cde2fb;--focus-ring:var(--accent);--focus-width:2px;--focus-offset:2px;--space-0-5:.125rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:2.5rem;--space-8:3rem;--font-display:"Source Sans 3", ui-sans-serif, system-ui, sans-serif;--font-ui:"Montserrat", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-body:"Lato", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-2xs:.6875rem;--text-xs:.75rem;--text-sm:.8125rem;--text-md:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:2rem;--weight-normal:400;--weight-medium:600;--tracking-wide:.04em;--radius-sm:3px;--radius-md:4px;--radius-lg:6px;--radius-pill:999px;--shadow-md:0 6px 24px #0000001f;--dur-1:.12s;--dur-2:.16s;--ease:cubic-bezier(.22, 1, .36, 1);--z-sticky:100;--z-overlay:300;--z-toast:400;font-family:var(--font-body);color:var(--ink);background:var(--ground)}@media (prefers-reduced-motion:reduce){:root{--dur-1:.01ms;--dur-2:.01ms}}*{box-sizing:border-box}body{margin:0}h1,h2,h3,.headline__value{font-family:var(--font-display);letter-spacing:-.015em;text-wrap:balance;font-weight:700;line-height:1.15}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}th,.nav__link,.nav__heading,.badge,.due__flag,.totals__label,.headline__label,.shell__brand,.shell__actions{font-family:var(--font-ui);font-weight:var(--weight-medium)}td,.headline__value,.totals strong,.one-time-password{font-variant-numeric:tabular-nums}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset)}a{color:var(--link)}a:hover{color:var(--accent-hover)}.lockup{align-items:center;gap:var(--space-3);display:inline-flex}.lockup--full{flex-wrap:wrap;justify-content:center}.lockup__badge{width:auto;display:block}.lockup--full .lockup__badge{height:44px}.lockup--compact .lockup__badge{height:28px}.lockup__rule{background:var(--line);width:1px;height:34px}.lockup__mark{width:auto;height:26px;display:block}.lockup__name{font-family:var(--font-display);letter-spacing:-.015em;font-weight:700;line-height:1}.lockup--full .lockup__name{font-size:var(--text-2xl)}.lockup--compact .lockup__name{font-size:var(--text-lg)}.skip{left:var(--space-2);z-index:var(--z-toast);background:var(--surface);color:var(--link);padding:var(--space-2) var(--space-3);border:1px solid var(--line-control);border-radius:var(--radius-md);transition:top var(--dur-1) var(--ease);position:absolute;top:-3rem}.skip:focus{top:var(--space-2)}.shell{grid-template-rows:auto 1fr;grid-template-columns:260px 1fr;min-height:100vh;display:grid}.shell__nav{border-right:1px solid var(--line);padding:var(--space-4);background:var(--surface)}.shell__main{padding:var(--space-5) var(--space-6);min-width:0}.shell__navtoggle{display:none}.shell__header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--line);background:var(--surface);grid-column:1/-1;display:flex}.shell__brand{color:inherit;text-decoration:none;display:inline-flex}.shell__actions{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.nav__link{justify-content:space-between;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);color:var(--ink);font-size:var(--text-md);transition:background-color var(--dur-1) var(--ease);text-decoration:none;display:flex}.nav__link:hover{background:var(--surface-hover);color:var(--ink)}.nav__link[aria-current=page]{background:var(--surface-selected);font-weight:var(--weight-medium)}.nav__count{color:var(--ink-muted)}.nav__group{margin-top:var(--space-5);border-top:1px solid var(--line);padding-top:var(--space-3)}.nav__heading{margin:0 0 var(--space-1) var(--space-2);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--ink-muted)}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:var(--space-2);border-bottom:1px solid var(--line)}th{font-size:var(--text-sm);text-transform:uppercase;color:var(--ink-muted)}tbody tr{transition:background-color var(--dur-1) var(--ease)}tbody tr:hover{background:var(--surface-hover)}tbody tr[data-linked=true]{background:var(--surface-selected);box-shadow:inset 3px 0 0 var(--accent)}.table-scroll{overflow-x:auto}.table-scroll>table{min-width:max-content}@media (width<=30rem){.table-scroll--pin-last th:last-child,.table-scroll--pin-last td:last-child{border-left:0;position:static}}.table-scroll--pin-last th:last-child,.table-scroll--pin-last td:last-child{background:var(--surface);border-left:1px solid var(--line);position:sticky;right:0}.table-scroll--pin-last tbody tr:hover td:last-child{background:var(--surface-hover)}.table-scroll--pin-last{scroll-padding-right:12rem}.table-scroll--pin-last th:last-child,.table-scroll--pin-last td:last-child{box-shadow:-6px 0 8px -6px #0000001f}.table-scroll{background:linear-gradient(to right, var(--ground) 30%, transparent) 0 0 / 2.5rem 100% no-repeat local, linear-gradient(to left, var(--ground) 30%, transparent) 100% 0 / 2.5rem 100% no-repeat local, linear-gradient(to right, color-mix(in srgb, var(--ink) 22%, transparent), transparent) 0 0 / 1rem 100% no-repeat scroll, linear-gradient(to left, color-mix(in srgb, var(--ink) 22%, transparent), transparent) 100% 0 / 1rem 100% no-repeat scroll}button,.button{font:inherit;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--line-control);background:var(--surface-raised);color:var(--ink);cursor:pointer;transition:background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease)}.button{text-decoration:none;display:inline-block}button:hover:not(:disabled),.button:hover:not([aria-disabled=true]){background:var(--surface-selected);border-color:var(--accent);color:var(--ink)}button:active:not(:disabled),.button:active:not([aria-disabled=true]){background:var(--surface-sunken)}button:disabled,.button[aria-disabled=true]{opacity:.55;cursor:not-allowed}button[type=submit]{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}button[type=submit]:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-fg)}button[type=submit]:active:not(:disabled){background:var(--accent-active);border-color:var(--accent-active)}[aria-busy=true]{cursor:progress}button[aria-busy=true]{opacity:.7}label{font-size:var(--text-sm);margin-bottom:var(--space-3);display:block}label>span{color:var(--ink-muted);margin-bottom:var(--space-1);display:block}.field{font-size:var(--text-sm);margin-bottom:var(--space-3);display:block}.field>label{color:var(--ink-muted);margin-bottom:var(--space-1);display:block}input,select,textarea{font:inherit;padding:var(--space-2);border:1px solid var(--line-control);border-radius:var(--radius-md);background:var(--surface);width:100%;color:var(--ink);transition:border-color var(--dur-1) var(--ease)}select{cursor:pointer}input:hover:not(:disabled):not([readonly]),select:hover:not(:disabled),textarea:hover:not(:disabled):not([readonly]){border-color:var(--accent)}input:disabled,select:disabled,textarea:disabled{background:var(--surface-raised);color:var(--ink-muted);cursor:not-allowed}input[readonly],textarea[readonly]{background:var(--surface-raised);color:var(--ink-muted);cursor:default}::placeholder{color:var(--ink-muted);opacity:1}[aria-invalid=true]{border-color:var(--danger-fg)}input:user-invalid{border-color:var(--danger-fg)}textarea:user-invalid{border-color:var(--danger-fg)}.linklike{font:inherit;color:var(--link);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.linklike:hover:not(:disabled){color:var(--accent-hover);background:0 0;border:none}.badge{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);border:1px solid var(--line);white-space:nowrap}.badge--done{background:var(--ok-bg)}.badge--blocked{background:var(--danger-bg)}.badge--in_progress{background:var(--surface-selected)}.badge--not_applicable{color:var(--ink-muted)}.badge--ok{background:var(--ok-bg)}.badge--muted{color:var(--ink-muted)}.badge--current{background:var(--ok-bg)}.badge--due_soon{background:var(--warn-bg);color:var(--warn-fg)}.badge--overdue{background:var(--danger-bg);color:var(--danger-fg);font-weight:700}.badge--unknown{background:var(--unknown-bg);border-style:dashed;border-color:var(--unknown-line);color:var(--unknown-fg);font-style:italic}.risk--low{background:var(--ok-bg)}.risk--medium{background:var(--warn-bg)}.risk--high{background:var(--danger-bg)}.purchase--draft{background:var(--surface-selected)}.purchase--ordered{background:var(--info-bg)}.purchase--partially_received{background:var(--warn-bg)}.purchase--received{background:var(--ok-bg)}.purchase--cancelled{color:var(--ink-muted);text-decoration:line-through}.due{white-space:nowrap}.due__flag{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-left:var(--space-1);padding:var(--space-0-5) var(--space-1);border-radius:var(--radius-sm)}.due--overdue{color:var(--danger-fg);font-weight:var(--weight-medium)}.due--overdue .due__flag{background:var(--danger-bg)}.due--due_soon .due__flag{background:var(--warn-bg);color:var(--warn-fg)}.error{color:var(--danger-fg)}.muted{color:var(--ink-muted)}.warn{color:var(--warn-fg)}.bar{background:var(--surface-sunken);border-radius:var(--radius-pill);width:120px;height:8px}.bar__fill{background:var(--ok-solid);border-radius:var(--radius-pill);height:100%}.spend{border-radius:var(--radius-pill);background:var(--surface-sunken);width:120px;height:8px;display:inline-flex;overflow:hidden}.spend--wide{width:100%;height:12px;margin-bottom:var(--space-2)}.spend__spent{background:var(--ok-solid)}.spend__committed{background:var(--info-solid);box-shadow:inset 1px 0 0 var(--ground)}.totals{gap:var(--space-6);margin:0 0 var(--space-4);flex-wrap:wrap;display:flex}.totals>div{flex-direction:column;display:flex}.totals__label{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--ink-muted)}.totals strong{font-size:var(--text-lg)}.guard{inset:auto var(--space-5) var(--space-5) auto;max-width:26rem;z-index:var(--z-toast);background:var(--surface);border:1px solid var(--warn-line);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-md);position:fixed}.guard p{margin:0 0 var(--space-2)}.guard--inline{margin:var(--space-2) 0;box-shadow:none;position:static}.callout{border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--surface-raised);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-5)}.callout p{margin:0 0 var(--space-2)}.one-time-password{font-family:var(--font-mono);font-size:var(--text-xl);letter-spacing:.08em;-webkit-user-select:all;user-select:all;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-1) var(--space-2);display:inline-block}.row-form{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-5)}.row-form h2{margin:0 0 var(--space-3);font-size:var(--text-base)}.group{margin-bottom:var(--space-3)}.group__heading{margin:0 0 var(--space-2);font-size:var(--text-md)}.group__toggle{padding:var(--space-1) 0;font:inherit;font-weight:var(--weight-medium);color:var(--ink);cursor:pointer;background:0 0;border:none}.group__toggle:hover:not(:disabled){color:var(--accent-hover);background:0 0;border:none}.centered{padding:var(--space-8) var(--space-5);justify-content:center;display:flex}.signin{min-height:100vh;padding:var(--space-6) var(--space-4);place-items:center;display:grid}.signin__card{gap:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(24rem,100%);padding:var(--space-6);box-shadow:var(--shadow-md);flex-flow:column;display:flex}.signin__strapline{font-size:var(--text-sm);margin:0}.signin__card form{flex-flow:column;display:flex}.signin__card button[type=submit]{width:100%}.skeleton{gap:var(--space-3);margin:var(--space-4) 0;flex-direction:column;display:flex}.skeleton__row{gap:var(--space-4);align-items:center;display:flex}.skeleton__bar{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-sunken) 30%, var(--surface-hover) 50%, var(--surface-sunken) 70%) 0 0 / 220% 100%;flex:1;height:.75rem;animation:1.4s linear infinite skeleton-sweep}.skeleton__row>.skeleton__bar:first-child{flex:2}.skeleton__row>.skeleton__bar:nth-child(3){flex:1.5}.skeleton__row>.skeleton__bar:nth-child(4){flex:.6}@keyframes skeleton-sweep{0%{background-position:120% 0}to{background-position:-120% 0}}@media (prefers-reduced-motion:reduce){.skeleton__bar{background:var(--surface-sunken);animation:none}}.headlines{gap:var(--space-7);margin:var(--space-5) 0;flex-wrap:wrap;display:flex}.headline{min-width:9rem}.headline__value{font-size:var(--text-2xl);font-weight:var(--weight-medium);margin:0}.headline__label{margin:0}.panels{gap:var(--space-6);flex-wrap:wrap;display:flex}.panel{flex:1;min-width:22rem}.dash-section{margin-top:var(--space-6)}.filterbar{gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:end;display:flex}.filterbar>*{min-width:0}.filterbar__grow{flex:16rem}.filterbar>label,.filterbar>.field{flex:12rem;min-width:11rem}.tiles{gap:var(--space-4);margin:var(--space-5) 0 var(--space-6);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));display:grid}.tile{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line-control);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-1);flex-flow:column;display:flex}.tile--1{border-left-color:var(--series-1)}.tile--2{border-left-color:var(--series-2)}.tile--3{border-left-color:var(--series-3)}.tile--danger{border-left-color:var(--danger-fg)}.tile--neutral{border-left-color:var(--line-control)}.tile__label{font-family:var(--font-ui);font-weight:var(--weight-medium);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--ink-muted)}.tile__value{font-family:var(--font-display);font-size:var(--text-2xl);font-variant-numeric:proportional-nums;line-height:1.05}.tile__value--long{font-size:var(--text-xl)}.tile--danger .tile__value{color:var(--danger-fg)}.tile .meter{align-items:stretch;gap:var(--space-1);flex-direction:column}.tile .meter__track{flex:none}.tile .meter__text{white-space:normal}.tile__note{font-size:var(--text-sm);color:var(--ink-muted)}.meter{align-items:center;gap:var(--space-2);display:flex}.meter__track{background:var(--meter-track);border-radius:var(--radius-pill);flex:1;min-width:3rem;height:8px;overflow:hidden}.meter__fill{background:var(--step-2);border-radius:var(--radius-pill);height:100%;transition:width var(--dur-2) var(--ease);display:block}.meter--warn .meter__fill{background:var(--warn-line)}.meter--danger .meter__fill{background:var(--danger-fg)}.meter__text{font-size:var(--text-sm);color:var(--ink-muted);white-space:nowrap}.dash-section .meter{max-width:42rem}.stackbar{align-items:stretch;gap:2px;width:100%;min-width:6rem;height:10px;display:flex}.stackbar__seg{min-width:2px;display:block}.stackbar__seg:last-child{border-radius:0 var(--radius-md) var(--radius-md) 0}.stackbar__seg--not_started{background:var(--step-1)}.stackbar__seg--in_progress{background:var(--step-2)}.stackbar__seg--done{background:var(--step-3)}.stackbar__seg--blocked{background:var(--danger-fg)}.stackbar__seg--not_applicable{background:var(--surface-sunken)}@media (forced-colors:active){.stackbar__seg,.meter__track,.meter__fill,.timeline__dot,.timeline__mark,.legend__swatch,.spend__spent,.spend__committed{forced-color-adjust:none}.tile{border-left-color:canvastext}}.versions{grid-template-columns:auto 6.5rem 1fr auto;margin:0;padding:0;list-style:none;display:grid}.versions li{grid-template-columns:subgrid;align-items:baseline;gap:var(--space-2);padding:var(--space-1) 0;grid-column:1/-1;display:grid}.versions__note{min-width:0}.versions li>button{justify-self:end}@media (width<=30rem){.versions{display:block}.versions li{flex-wrap:wrap;grid-column:auto;display:flex}}.legend{gap:var(--space-2) var(--space-4);margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--ink-muted);flex-wrap:wrap;padding:0;list-style:none;display:flex}.legend li{align-items:center;gap:var(--space-1);display:inline-flex}.legend__swatch--spent{background:var(--ok-solid)}.legend__swatch--committed{background:var(--info-solid)}.legend__swatch--unspent{background:var(--surface-sunken)}.legend__swatch{border-radius:var(--radius-sm);border:1px solid var(--line-control);width:12px;height:12px;display:inline-block}.timeline__caption{font-size:var(--text-sm);margin:0 0 var(--space-3)}.timeline__rail{height:14px;margin:0 var(--space-2) var(--space-1);border-bottom:1px solid var(--line);position:relative}.timeline__mark{border-radius:var(--radius-pill);background:var(--series-1);width:10px;height:10px;box-shadow:0 0 0 2px var(--surface);margin-left:-5px;position:absolute;bottom:-5px}.timeline__mark--due_soon{background:var(--warn-line)}.timeline__mark--overdue{background:var(--danger-fg)}.timeline__scale{font-size:var(--text-2xs);margin:0 0 var(--space-4);justify-content:space-between;display:flex}.timeline__list{grid-template-columns:auto 6.5rem max-content 1fr;margin:0;padding:0;list-style:none;display:grid}.timeline__item{grid-template-columns:subgrid;align-items:baseline;gap:var(--space-2);padding:var(--space-2) 0;border-top:1px solid var(--line);grid-column:1/-1;display:grid}.timeline__kind{justify-self:start}.timeline__dot{border-radius:var(--radius-pill);background:var(--series-1);flex:none;width:8px;height:8px}.timeline__dot--due_soon{background:var(--warn-line)}.timeline__dot--overdue{background:var(--danger-fg)}.timeline__date{font-variant-numeric:tabular-nums;color:var(--ink-muted);font-size:var(--text-sm);white-space:nowrap;min-width:6.5rem}.timeline__label{flex:1}@media (width<=30rem){.timeline__list{display:block}.timeline__item{flex-wrap:wrap;grid-column:auto;display:flex}.timeline__date{min-width:0}.timeline__label{flex-basis:100%}}.pager{justify-content:space-between;align-items:end;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.pager__search{flex:1;min-width:16rem;margin-bottom:0}.pager__controls{align-items:center;gap:var(--space-2);display:flex}.pager__controls [role=status]{white-space:nowrap;margin-right:var(--space-1)}@media (width<=899px){.shell{grid-template-rows:auto auto 1fr;grid-template-columns:1fr}.shell__header{padding:var(--space-2) var(--space-4);flex-wrap:wrap}.shell__navtoggle{display:inline-flex}.shell__nav{border-right:none;border-bottom:1px solid var(--line)}.shell__nav[data-open=false]{display:none}.shell__main{padding:var(--space-4)}.panels{flex-flow:column}.panel{min-width:0}}
