@font-face{font-family:__Playfair_Display_0a80b4;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/47f136985ef5b5cb-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Playfair_Display_0a80b4;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/4ead58c4dcc3f285-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Playfair_Display_0a80b4;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/28a2004cf8372660-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Playfair_Display_0a80b4;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/eaead17c7dbfcd5d-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Playfair_Display_Fallback_0a80b4;src:local("Times New Roman");ascent-override:97.25%;descent-override:22.56%;line-gap-override:0.00%;size-adjust:111.26%}.__className_0a80b4{font-family:__Playfair_Display_0a80b4,__Playfair_Display_Fallback_0a80b4;font-style:normal}.__variable_0a80b4{--font-playfair:"__Playfair_Display_0a80b4","__Playfair_Display_Fallback_0a80b4"}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Inter_Fallback_f367f3;src:local("Arial");ascent-override:90.49%;descent-override:22.56%;line-gap-override:0.00%;size-adjust:107.06%}.__className_f367f3{font-family:__Inter_f367f3,__Inter_Fallback_f367f3;font-style:normal}.__variable_f367f3{--font-inter:"__Inter_f367f3","__Inter_Fallback_f367f3"}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__JetBrains_Mono_Fallback_3c557b;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_3c557b{font-family:__JetBrains_Mono_3c557b,__JetBrains_Mono_Fallback_3c557b;font-style:normal}.__variable_3c557b{--font-jetbrains:"__JetBrains_Mono_3c557b","__JetBrains_Mono_Fallback_3c557b"}:root{--willow-phthalo:#19350c;--willow-mustard:#687d31;--willow-sparkle:#406768;--willow-moonstone:#6fa9bb;--willow-lightgray:#d5d3cc;--willow-brown:#67472c;--willow-ink:#182430;--green-900:#0f2107;--green-800:#19350c;--green-700:#254a15;--green-600:#375f1f;--green-500:#687d31;--green-400:#8b9f55;--green-300:#b3c185;--green-200:#d6debe;--green-100:#eaeedf;--green-50:#f3f5ec;--teal-700:#2c4a4b;--teal-600:#406768;--teal-500:#568687;--teal-400:#6fa9bb;--teal-300:#9cc5d2;--teal-200:#c9e0e7;--teal-100:#e7f1f4;--paper-000:#fff;--paper-050:#faf8f2;--paper-100:#f5f1e8;--paper-200:#ede8db;--paper-300:#e2dccc;--paper-400:#d5d3cc;--paper-500:#b6b3a8;--paper-600:#8a877d;--paper-700:#5e5c55;--paper-800:#33322e;--ink-900:#0e1620;--ink-800:#182430;--ink-600:#3d4a56;--ink-400:#6b7681;--brown-600:#67472c;--brown-400:#8e6a47;--brown-200:#d8c6b2;--status-done:#2f6b12;--status-done-bg:#e3efd4;--status-info:#1f5d6b;--status-info-bg:#dceef3;--status-waiting:#8a5400;--status-waiting-bg:#fbebcb;--status-overdue:#a32e1c;--status-overdue-bg:#fadfd9;--text-body:var(--ink-800);--text-strong:var(--willow-phthalo);--text-muted:var(--ink-400);--text-subtle:var(--paper-600);--text-inverse:var(--paper-100);--text-accent:var(--willow-mustard);--text-link:var(--willow-phthalo);--text-link-hover:var(--willow-mustard);--text-on-brand:#f1efe4;--surface-page:var(--paper-100);--surface-card:var(--paper-050);--surface-raised:var(--paper-000);--surface-sunken:var(--paper-200);--surface-brand:var(--willow-phthalo);--surface-brand-soft:var(--green-100);--surface-accent:var(--willow-mustard);--surface-secondary:var(--willow-sparkle);--surface-inverse:var(--ink-900);--surface-overlay:rgba(14,22,32,.44);--border-hairline:rgba(24,36,48,.1);--border-default:var(--paper-300);--border-strong:var(--paper-400);--border-brand:var(--willow-phthalo);--border-focus:var(--willow-mustard);--chart-1:#19350c;--chart-2:#687d31;--chart-3:#406768;--chart-4:#6fa9bb;--chart-5:#67472c;--chart-6:#b3c185;--chart-grid:rgba(24,36,48,.08);--chart-track:var(--paper-300);--font-display:var(--font-playfair,"Playfair Display"),Georgia,"Times New Roman",serif;--font-text:var(--font-inter,"Inter"),-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--font-mono:var(--font-jetbrains,"JetBrains Mono"),ui-monospace,SFMono-Regular,Menlo,monospace;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fs-display-xl:56px;--lh-display-xl:1.06;--fs-display-lg:44px;--lh-display-lg:1.10;--fs-display-md:36px;--lh-display-md:1.14;--fs-display-sm:30px;--lh-display-sm:1.20;--fs-title:22px;--lh-title:1.32;--fs-subtitle:18px;--lh-subtitle:1.44;--fs-body-lg:17px;--lh-body-lg:1.70;--fs-body:15px;--lh-body:1.62;--fs-body-sm:14px;--lh-body-sm:1.55;--fs-caption:13px;--lh-caption:1.46;--fs-eyebrow:12px;--lh-eyebrow:1.20;--fs-micro:11px;--lh-micro:1.30;--ls-display:-0.01em;--ls-tight:-0.011em;--ls-normal:0;--ls-eyebrow:0.14em;--ls-caps:0.06em;--space-0:0px;--space-1:2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:20px;--space-7:24px;--space-8:32px;--space-9:40px;--space-10:48px;--space-11:64px;--space-12:80px;--space-13:104px;--space-14:136px;--gutter-card:20px;--gutter-panel:24px;--gutter-section:96px;--gutter-section-sm:56px;--content-max:1160px;--prose-max:64ch;--sidebar-w:248px;--topbar-h:64px;--control-h-sm:32px;--control-h-md:40px;--control-h-lg:48px;--hit-min:44px;--radius-xs:3px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:999px;--radius-card:var(--radius-lg);--radius-control:var(--radius-sm);--radius-sheet:var(--radius-xl);--border-w:1px;--border-w-strong:1.5px;--focus-ring:0 0 0 3px rgba(104,125,49,.34);--shadow-none:none;--shadow-hairline:0 0 0 1px var(--border-hairline);--shadow-1:0 1px 2px rgba(24,36,48,.05),0 1px 1px rgba(24,36,48,.03);--shadow-2:0 2px 6px rgba(24,36,48,.06),0 1px 2px rgba(24,36,48,.04);--shadow-3:0 8px 24px rgba(24,36,48,.09),0 2px 6px rgba(24,36,48,.05);--shadow-4:0 20px 56px rgba(14,22,32,.16),0 4px 12px rgba(14,22,32,.07);--shadow-inset-top:inset 0 1px 0 hsla(0,0%,100%,.5);--scrim-top:linear-gradient(180deg,rgba(14,22,32,.55),rgba(14,22,32,0));--scrim-bottom:linear-gradient(0deg,rgba(14,22,32,.62),rgba(14,22,32,0));--blur-veil:saturate(140%) blur(14px);--ease-standard:cubic-bezier(.2,0,0,1);--ease-out:cubic-bezier(.16,1,.3,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--dur-instant:80ms;--dur-fast:140ms;--dur-base:220ms;--dur-slow:380ms;--dur-drift:900ms;--motion-hover:background-color var(--dur-fast) linear,color var(--dur-fast) linear,border-color var(--dur-fast) linear,box-shadow var(--dur-fast) linear}[data-theme=dark]{--surface-page:#101a0c;--surface-card:#16230f;--surface-raised:#1c2c13;--surface-sunken:#0c1408;--text-body:#e6e7dc;--text-strong:#f1efe4;--text-muted:#9fa795;--text-subtle:#7c846f;--border-default:hsla(47,10%,82%,.16);--border-hairline:hsla(47,10%,82%,.1);--border-strong:hsla(47,10%,82%,.26)}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0ms;--dur-base:0ms;--dur-slow:0ms;--dur-drift:0ms}}*,:after,:before{box-sizing:border-box}html{color-scheme:light}body{background:var(--surface-page);color:var(--text-body);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-wrap:pretty}body,h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font-text)}h1,h2,h3,h4,h5,h6{font-weight:var(--fw-semibold);color:var(--text-strong);letter-spacing:var(--ls-tight)}h1{font-size:var(--fs-title);line-height:var(--lh-title)}h2{font-size:var(--fs-subtitle);line-height:var(--lh-subtitle)}h3{font-size:var(--fs-body);line-height:var(--lh-body)}h4,h5,h6{font-size:var(--fs-body-sm);line-height:var(--lh-body-sm)}p{margin:0}img{max-width:100%;height:auto}a{color:var(--text-link);-webkit-text-decoration-color:rgba(25,53,12,.32);text-decoration-color:rgba(25,53,12,.32);text-underline-offset:3px;transition:var(--motion-hover)}a:hover{color:var(--text-link-hover);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-xs)}@keyframes willow-spin{to{transform:rotate(1turn)}}@keyframes willow-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.display-lg,.display-md,.display-sm,.display-xl{font-family:var(--font-display);font-weight:var(--fw-semibold);letter-spacing:var(--ls-display);color:var(--text-strong);text-wrap:pretty}.display-xl{font-size:var(--fs-display-xl);line-height:var(--lh-display-xl)}.display-lg{font-size:var(--fs-display-lg);line-height:var(--lh-display-lg)}.display-md{font-size:var(--fs-display-md);line-height:var(--lh-display-md)}.display-sm{font-size:var(--fs-display-sm);line-height:var(--lh-display-sm)}.willow-eyebrow{font-size:var(--fs-eyebrow);line-height:var(--lh-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;font-weight:var(--fw-medium);color:var(--text-accent)}.willow-eyebrow.subtle{color:var(--text-subtle)}.text-muted{color:var(--text-muted)}.text-subtle{color:var(--text-subtle)}.text-strong{color:var(--text-strong)}.text-done{color:var(--status-done)}.text-waiting{color:var(--status-waiting)}.text-overdue{color:var(--status-overdue)}.caption{font-size:var(--fs-caption);line-height:var(--lh-caption)}.micro{font-size:var(--fs-micro);line-height:var(--lh-micro)}.mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.capitalize{text-transform:capitalize}.willow-mark{display:inline-block;flex-shrink:0;background:currentColor;-webkit-mask:url(/brand/willow-mark.png) center/contain no-repeat;mask:url(/brand/willow-mark.png) center/contain no-repeat}.willow-logo{display:inline-flex;align-items:center;text-decoration:none}.willow-wordmark{font-family:var(--font-display);font-weight:var(--fw-semibold);letter-spacing:var(--ls-display);line-height:1;white-space:nowrap}.stack{display:flex;flex-direction:column;gap:16px}.stack-sm{gap:8px}.stack-lg{gap:24px}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.row-between{justify-content:space-between}.row-end{justify-content:flex-end}.row-tight{gap:8px}.row-nowrap{flex-wrap:nowrap}.row-grow{flex:1 1 auto;min-width:0}.row-split>*{flex:1 1}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px}.grid-2,.grid-3{display:grid;gap:20px;align-items:start}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:20px}@media (max-width:900px){.grid-2,.grid-3{grid-template-columns:minmax(0,1fr)}}.animate-fade-in{animation:willow-rise var(--dur-base) var(--ease-out) both}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--control-h-md);padding:0 16px;font-family:var(--font-text);font-size:var(--fs-body-sm);font-weight:var(--fw-medium);letter-spacing:var(--ls-tight);line-height:1;color:var(--text-on-brand);background:var(--willow-phthalo);border:var(--border-w) solid var(--willow-phthalo);border-radius:var(--radius-control);cursor:pointer;text-decoration:none;white-space:nowrap;transition:var(--motion-hover),transform var(--dur-instant) var(--ease-out)}.btn:hover:not(:disabled){color:var(--text-on-brand);background:var(--green-700);border-color:var(--green-700)}.btn:active:not(:disabled){background:var(--green-900);border-color:var(--green-900);transform:translateY(.5px)}.btn:disabled{cursor:not-allowed;opacity:.55;color:var(--text-subtle);border-color:var(--border-default)}.btn>svg{flex:0 0 auto}.btn-accent{background:var(--willow-mustard);border-color:var(--willow-mustard);color:#fbfaf4}.btn-accent:hover:not(:disabled){background:var(--green-600);border-color:var(--green-600);color:#fbfaf4}.btn-accent:active:not(:disabled){background:var(--green-700);border-color:var(--green-700)}.btn-secondary{background:transparent}.btn-secondary,.btn-secondary:hover:not(:disabled){color:var(--willow-phthalo);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--green-100)}.btn-secondary:active:not(:disabled){background:var(--green-200);border-color:var(--border-strong)}.btn-ghost{background:transparent}.btn-ghost,.btn-ghost:hover:not(:disabled){color:var(--willow-phthalo);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--green-100)}.btn-ghost:active:not(:disabled){background:var(--green-200);border-color:transparent}.btn-quiet{background:transparent;color:var(--text-muted);border-color:transparent}.btn-quiet:hover:not(:disabled){background:var(--surface-sunken);color:var(--text-body);border-color:transparent}.btn-quiet:active:not(:disabled){background:var(--paper-300);border-color:transparent}.btn-danger{background:transparent}.btn-danger,.btn-danger:hover:not(:disabled){color:var(--status-overdue);border-color:var(--border-strong)}.btn-danger:hover:not(:disabled){background:var(--status-overdue-bg)}.btn-danger:active:not(:disabled){background:#efd5cf;border-color:var(--border-strong)}.btn-inverse{background:transparent;color:var(--text-on-brand);border-color:hsla(51,32%,92%,.3)}.btn-inverse:hover:not(:disabled){background:hsla(51,32%,92%,.1);color:var(--text-on-brand);border-color:hsla(51,32%,92%,.45)}.btn-sm{height:var(--control-h-sm);padding:0 12px;font-size:var(--fs-caption);gap:6px}.btn-lg{height:var(--control-h-lg);padding:0 22px;font-size:var(--fs-body);gap:9px}.btn-block{display:flex;width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;color:var(--text-muted);background:transparent;border:var(--border-w) solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:var(--motion-hover);flex:0 0 auto}.icon-btn.active,.icon-btn:hover:not(:disabled){color:var(--willow-phthalo);background:var(--green-100)}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn-outline{border-color:var(--border-default)}.icon-btn-solid{color:var(--text-on-brand);background:var(--willow-phthalo);border-color:var(--willow-phthalo)}.icon-btn-solid:hover:not(:disabled){color:var(--text-on-brand);background:var(--green-700)}.icon-btn-sm{width:32px;height:32px}.icon-btn-lg{width:44px;height:44px}.icon-btn-inverse{color:hsla(51,32%,92%,.6)}.icon-btn-inverse:hover:not(:disabled){color:#f1efe4;background:hsla(51,32%,92%,.08)}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;font-family:var(--font-text);font-size:var(--fs-micro);font-weight:var(--fw-medium);letter-spacing:var(--ls-caps);text-transform:uppercase;line-height:1;color:var(--text-muted);background:var(--surface-sunken);border:var(--border-w) solid var(--border-default);border-radius:var(--radius-pill);white-space:nowrap;flex:0 0 auto}.badge-dot:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex:0 0 auto}.badge-brand{color:var(--willow-phthalo);border-color:var(--green-200)}.badge-accent,.badge-brand{background:var(--green-100)}.badge-accent{color:#4e5f23;border-color:var(--green-300)}.badge-done{color:var(--status-done);background:var(--status-done-bg);border-color:var(--green-200)}.badge-info{color:var(--status-info);background:var(--status-info-bg);border-color:var(--teal-200)}.badge-waiting{color:var(--status-waiting);background:var(--status-waiting-bg);border-color:#e8d8b4}.badge-overdue{color:var(--status-overdue);background:var(--status-overdue-bg);border-color:#ebcfc8}.badge-inverse{height:auto;padding:2px 7px;font-size:10px;letter-spacing:.12em;color:hsla(51,32%,92%,.5);background:transparent;border-color:hsla(51,32%,92%,.24)}.tag{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 11px;font-family:var(--font-text);font-size:var(--fs-caption);font-weight:var(--fw-regular);line-height:1;color:var(--text-body);background:var(--surface-card);border:var(--border-w) solid var(--border-default);border-radius:var(--radius-pill);white-space:nowrap}.tag-dot{width:7px;height:7px;border-radius:50%;background:var(--willow-mustard);flex:0 0 auto}.tag-sm{height:22px;padding:0 9px;font-size:var(--fs-micro)}.tag-sm .tag-dot{width:6px;height:6px}.input,.select,.textarea{width:100%;height:var(--control-h-md);padding:0 12px;font-family:var(--font-text);font-size:var(--fs-body-sm);color:var(--text-body);background:var(--surface-raised);border:var(--border-w) solid var(--border-default);border-radius:var(--radius-control);outline:none;transition:var(--motion-hover)}.input::placeholder,.textarea::placeholder{color:var(--text-subtle)}.input:focus,.select:focus,.textarea:focus{border-color:var(--willow-mustard);box-shadow:var(--focus-ring)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-sunken);cursor:not-allowed}.input-invalid,.input-invalid:focus{border-color:var(--status-overdue)}.input-sm{height:var(--control-h-sm);font-size:var(--fs-caption)}.input-lg{height:var(--control-h-lg);font-size:var(--fs-body)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238A877D' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}.select-auto{width:auto}.textarea{height:auto;padding:10px 12px;line-height:var(--lh-body);resize:vertical}.textarea-mono{font-family:var(--font-mono);font-size:var(--fs-caption);line-height:1.6}.input-wrap{position:relative;display:flex;align-items:center;width:100%}.input-wrap>.input-icon{position:absolute;left:11px;display:flex;color:var(--text-subtle);pointer-events:none}.input-wrap:focus-within>.input-icon{color:var(--willow-mustard)}.input-wrap>.input{padding-left:34px}.input-wrap>.input-trailing{position:absolute;right:4px;display:flex}.input-wrap.has-trailing>.input{padding-right:40px}.field{display:flex;flex-direction:column;gap:6px}.field-label{display:flex;align-items:center;gap:4px;font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--text-body)}.field-label .optional{color:var(--text-muted);font-weight:var(--fw-regular)}.field-label .required{color:var(--willow-mustard)}.field-hint{color:var(--text-muted)}.field-error,.field-hint{font-size:var(--fs-caption)}.field-error{color:var(--status-overdue)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:640px){.form-grid{grid-template-columns:1fr}}.checkbox{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:0 0 auto;padding:0;border-radius:var(--radius-xs);border:var(--border-w-strong) solid var(--border-strong);background:var(--surface-raised);color:var(--text-on-brand);cursor:pointer;transition:var(--motion-hover)}.checkbox.checked,.checkbox:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--willow-phthalo)}.checkbox.checked{background:var(--willow-phthalo)}.checkbox-sm{width:16px;height:16px}.checkbox:disabled,.checkbox[aria-disabled=true]{opacity:.5;cursor:not-allowed}.switch{position:relative;width:40px;height:23px;flex:0 0 auto;padding:0;border:0;border-radius:var(--radius-pill);background:var(--paper-400);cursor:pointer;transition:background-color var(--dur-base) var(--ease-out)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:var(--paper-000);box-shadow:var(--shadow-1);transition:left var(--dur-base) var(--ease-out)}.switch.on{background:var(--willow-phthalo)}.switch.on:after{left:20px}.switch:disabled{opacity:.5;cursor:not-allowed}.segmented{display:inline-flex;gap:2px;padding:3px;background:var(--surface-sunken);border:var(--border-w) solid var(--border-default);border-radius:var(--radius-sm)}.segmented>button{height:34px;padding:0 14px;font-family:var(--font-text);font-size:var(--fs-caption);font-weight:var(--fw-regular);color:var(--text-muted);background:transparent;border:0;border-radius:var(--radius-xs);cursor:pointer;white-space:nowrap;transition:var(--motion-hover)}.segmented>button.active{color:var(--willow-phthalo);font-weight:var(--fw-medium);background:var(--surface-raised);box-shadow:var(--shadow-1)}.segmented-sm>button{height:28px;padding:0 10px}.segmented-full{display:flex}.segmented-full>button{flex:1 1}.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);border:var(--border-w) solid var(--border-default);border-radius:var(--radius-md);color:var(--text-body);background:var(--surface-sunken)}.alert>svg{flex:0 0 auto;margin-top:2px}.alert-done{color:var(--status-done);background:var(--status-done-bg);border-color:var(--green-200)}.alert-info{color:var(--status-info);background:var(--status-info-bg);border-color:var(--teal-200)}.alert-waiting{color:var(--status-waiting);background:var(--status-waiting-bg);border-color:#e8d8b4}.alert-overdue{color:var(--status-overdue);background:var(--status-overdue-bg);border-color:#ebcfc8}.tabs{display:flex;gap:24px;border-bottom:var(--border-w) solid var(--border-default)}.tab,.tabs{align-items:center}.tab{display:inline-flex;gap:7px;padding:0 0 11px;font-family:var(--font-text);font-size:var(--fs-body-sm);font-weight:var(--fw-regular);color:var(--text-muted);background:transparent;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap;transition:var(--motion-hover)}.tab.active,.tab:hover{color:var(--willow-phthalo)}.tab.active{font-weight:var(--fw-medium);border-bottom-color:var(--willow-mustard)}.tab-count{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-subtle)}.tabs-pill{gap:6px;border-bottom:0}.tabs-pill .tab{padding:7px 12px;border-bottom:0;margin-bottom:0;border-radius:var(--radius-pill)}.tabs-pill .tab.active{background:var(--green-100)}.tab-bar{display:flex;gap:24px;padding:14px 24px 0;background:var(--surface-card);border-bottom:var(--border-w) solid var(--border-default);flex-shrink:0}.tab-bar .tab{margin-bottom:-1px}.card{background:var(--surface-card);color:var(--text-body);border:var(--border-w) solid var(--border-default);border-radius:var(--radius-card);box-shadow:var(--shadow-1)}.card-raised{background:var(--surface-raised)}.card-brand{background:var(--surface-brand-soft);border-color:var(--green-200)}.card-inverse{background:var(--surface-brand);border-color:var(--green-900);color:var(--text-on-brand)}.card-quiet{background:var(--surface-sunken);border-color:transparent;box-shadow:none}.card-elevated{box-shadow:var(--shadow-3)}.card-interactive{cursor:pointer;transition:box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),border-color var(--dur-fast) linear}.card-interactive:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.card-body{padding:var(--gutter-card)}.card-body-sm{padding:14px}.card-body-lg{padding:28px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px var(--gutter-card);border-bottom:var(--border-w) solid var(--border-hairline)}.card-title{display:flex;align-items:center;gap:8px;font-family:var(--font-text);font-size:var(--fs-body-sm);font-weight:var(--fw-semibold);color:var(--text-strong);letter-spacing:var(--ls-tight);line-height:var(--lh-body-sm)}.card-subtitle{margin-top:2px;line-height:var(--lh-caption)}.card-foot,.card-subtitle{font-size:var(--fs-caption);color:var(--text-muted)}.card-foot{padding:12px var(--gutter-card);border-top:var(--border-w) solid var(--border-hairline)}.card-rows{padding:0 var(--gutter-card)}.row-line{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:var(--border-w) solid var(--border-hairline)}.row-line:last-child{border-bottom:0}.row-line-label{font-size:var(--fs-body-sm);color:var(--text-muted);min-width:110px}.row-line-value{justify-content:flex-end;gap:8px;text-align:right;flex-wrap:wrap}.row-line-lead,.row-line-value{display:inline-flex;align-items:center;font-size:var(--fs-body-sm);color:var(--text-body)}.row-line-lead{gap:10px}.row-line-lead>.icon-well{width:28px;height:28px}.value-empty{color:var(--text-subtle);font-style:italic}.icon-well{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border-radius:50%;background:var(--surface-brand-soft);color:var(--willow-mustard)}.icon-well-sunken{background:var(--surface-sunken)}.icon-well-info{background:var(--status-info-bg);color:var(--status-info)}.icon-well-raised{background:var(--surface-raised)}.icon-well-lg{width:44px;height:44px}.icon-well-sm{width:28px;height:28px}.icon-well-xs{width:22px;height:22px}.stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.stats-row.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-row.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{display:flex;flex-direction:column;gap:8px;padding:18px;background:var(--surface-card);border:var(--border-w) solid var(--border-default);border-radius:var(--radius-card);box-shadow:var(--shadow-1);min-width:0}.stat-label{font-size:var(--fs-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;font-weight:var(--fw-medium);color:var(--text-subtle);line-height:var(--lh-eyebrow)}.stat-row{display:flex;align-items:baseline;gap:7px}.stat-value{font-family:var(--font-display);font-size:var(--fs-display-sm);line-height:1;font-weight:var(--fw-semibold);color:var(--text-strong);letter-spacing:var(--ls-display)}.stat-delta,.stat-unit{font-size:var(--fs-caption);color:var(--text-muted)}.stat-delta{display:inline-flex;align-items:center;gap:3px;margin-left:auto}.stat-delta.up{color:var(--status-done)}.stat-delta.down{color:var(--status-overdue)}.stat-sub{font-size:var(--fs-caption);color:var(--text-muted);line-height:var(--lh-caption)}@media (max-width:900px){.stats-row,.stats-row.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.stats-row,.stats-row.cols-2,.stats-row.cols-3{grid-template-columns:minmax(0,1fr)}}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:52px 24px}.empty-state.compact{padding:28px 20px}.empty-state-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--surface-brand-soft);color:var(--willow-mustard);margin-bottom:4px}.empty-state-title{font-family:var(--font-display);font-size:var(--fs-title);font-weight:var(--fw-semibold);color:var(--text-strong);letter-spacing:var(--ls-display)}.empty-state-desc{font-size:var(--fs-body-sm);color:var(--text-muted);max-width:40ch}.empty-state-action{margin-top:8px}.progress{height:6px;background:var(--chart-track);overflow:hidden}.progress,.progress>span{border-radius:var(--radius-pill)}.progress>span{display:block;height:100%;background:var(--willow-phthalo);transition:width var(--dur-slow) var(--ease-out)}.progress-sm{height:4px}.progress-lg{height:10px}.avatar{display:inline-flex;justify-content:center;flex:0 0 auto;border-radius:50%;overflow:hidden;color:var(--text-on-brand);font-family:var(--font-text);font-weight:var(--fw-medium);letter-spacing:.02em;line-height:1;box-shadow:inset 0 0 0 1px rgba(24,36,48,.08)}.avatar,.divider{align-items:center}.divider{display:flex;gap:12px;margin:20px 0}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--border-default)}.divider-label{font-size:var(--fs-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-subtle);font-weight:var(--fw-medium)}.section-divider{padding-top:14px;border-top:var(--border-w) solid var(--border-default)}.table-wrap{width:100%;overflow-x:auto}.table{width:100%;border-collapse:collapse;font-family:var(--font-text)}.table th{text-align:left;padding:10px 14px;font-size:var(--fs-micro);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;font-weight:var(--fw-medium);color:var(--text-subtle);border-bottom:var(--border-w) solid var(--border-default);white-space:nowrap}.table td{padding:13px 14px;font-size:var(--fs-body-sm);color:var(--text-body);border-bottom:var(--border-w) solid var(--border-hairline);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--surface-sunken)}.table-dense th{padding:8px 12px}.table-dense td{padding:9px 12px}.table .num{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table .align-right{text-align:right}.table.is-loading{opacity:.6;transition:opacity var(--dur-fast) linear}.cell-primary{display:flex;align-items:center;gap:10px}.cell-title{font-weight:var(--fw-medium);color:var(--text-strong)}.cell-sub{font-size:var(--fs-caption);color:var(--text-subtle);margin-top:1px}.cell-badges{display:flex;gap:4px;flex-wrap:wrap}.table-controls{gap:10px;flex-wrap:wrap;border-bottom:var(--border-w) solid var(--border-hairline)}.table-controls,.table-pagination{display:flex;align-items:center;padding:12px 14px}.table-pagination{justify-content:space-between;gap:16px;border-top:var(--border-w) solid var(--border-hairline);font-size:var(--fs-caption);color:var(--text-subtle)}.table-pagination-controls{display:flex;gap:6px}.sidebar-nav{width:var(--sidebar-w);flex:0 0 auto;display:flex;flex-direction:column;gap:18px;padding:18px 12px;background:var(--surface-card);border-right:var(--border-w) solid var(--border-default);overflow:hidden;min-height:0}.sidebar-nav-header{padding:0 8px}.sidebar-nav-list{display:flex;flex-direction:column;gap:2px;flex:1 1;min-height:0;overflow-y:auto}.sidebar-nav-section{padding:16px 8px 6px;font-size:var(--fs-micro);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;font-weight:var(--fw-medium);color:var(--text-subtle)}.sidebar-nav-list>.sidebar-nav-section:first-child{padding-top:4px}.sidebar-nav-item{display:flex;align-items:center;gap:10px;width:100%;height:36px;padding:0 10px;text-align:left;font-family:var(--font-text);font-size:var(--fs-body-sm);font-weight:var(--fw-regular);color:var(--text-muted);background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer;text-decoration:none;white-space:nowrap;transition:var(--motion-hover)}.sidebar-nav-item:hover{color:var(--willow-phthalo);background:var(--surface-sunken)}.sidebar-nav-item.active{color:var(--willow-phthalo);background:var(--green-100);font-weight:var(--fw-medium)}.sidebar-nav-item>svg{flex:0 0 auto;opacity:.85}.sidebar-nav-item.active>svg{opacity:1}.sidebar-nav-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis}.sidebar-nav-count{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-subtle)}.sidebar-nav-footer{margin-top:auto;padding:12px 8px 0;border-top:var(--border-w) solid var(--border-default)}.sidebar-nav.dark{background:var(--surface-brand);border-right-color:var(--green-900);color:var(--text-on-brand)}.sidebar-nav.dark .sidebar-nav-section{color:hsla(51,32%,92%,.45)}.sidebar-nav.dark .sidebar-nav-item{color:hsla(51,32%,92%,.72)}.sidebar-nav.dark .sidebar-nav-item:hover{color:#e2e4d6;background:hsla(51,32%,92%,.06)}.sidebar-nav.dark .sidebar-nav-item.active{color:#f1efe4;background:hsla(51,32%,92%,.12)}.sidebar-nav.dark .sidebar-nav-count{color:hsla(51,32%,92%,.6)}.sidebar-nav.dark .sidebar-nav-footer{border-top-color:hsla(51,32%,92%,.14)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;min-height:var(--topbar-h);padding:0 24px;background:color-mix(in srgb,var(--surface-page) 88%,transparent);-webkit-backdrop-filter:var(--blur-veil);backdrop-filter:var(--blur-veil);border-bottom:var(--border-w) solid var(--border-default);flex-shrink:0}.topbar-main{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1 1}.topbar-crumbs{display:flex;align-items:center;gap:6px;font-size:var(--fs-micro);color:var(--text-subtle)}.topbar-title{font-size:var(--fs-subtitle);line-height:var(--lh-subtitle);font-weight:var(--fw-semibold);color:var(--text-strong);letter-spacing:var(--ls-tight)}.topbar-subtitle{font-size:var(--fs-caption);color:var(--text-muted)}.topbar-actions{display:flex;align-items:center;gap:8px}.user-btn{display:inline-flex;align-items:center;gap:10px;height:38px;padding:0 10px 0 4px;background:transparent;border:var(--border-w) solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:var(--motion-hover);text-decoration:none}.user-btn:hover{background:var(--surface-sunken)}.u-name{font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--text-body)}.u-action{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-micro);color:var(--text-subtle)}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--paper-100) 86%,transparent);-webkit-backdrop-filter:var(--blur-veil);backdrop-filter:var(--blur-veil);border-bottom:var(--border-w) solid var(--border-hairline)}.site-header-inner{max-width:var(--content-max);margin:0 auto;padding:0 32px;height:72px;display:flex;align-items:center;gap:40px}.site-header-plain{position:static;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:0}.site-nav{display:flex;gap:28px;flex:1 1;list-style:none;margin:0;padding:0}.site-nav a{font-size:var(--fs-body-sm);text-decoration:none;color:var(--text-muted);font-weight:var(--fw-regular)}.site-nav a.active,.site-nav a:hover{color:var(--willow-phthalo)}.site-nav a.active{font-weight:var(--fw-medium)}.site-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.site-container{max-width:var(--content-max);margin:0 auto;padding:0 32px}.site-section{padding:var(--gutter-section) 32px}.site-band{background:var(--paper-200)}.site-footer{background:var(--willow-phthalo);color:var(--text-on-brand);padding:64px 32px 40px}.site-footer-inner{max-width:var(--content-max);margin:0 auto}.site-footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);grid-gap:48px;gap:48px}.site-footer-brand{display:flex;flex-direction:column;gap:16px}.site-footer-tagline{font-size:var(--fs-body-sm);line-height:1.7;color:hsla(51,32%,92%,.72);max-width:34ch}.site-footer-fine{font-size:var(--fs-caption);line-height:1.6;color:hsla(51,32%,92%,.5);max-width:40ch}.site-footer-fine a{color:hsla(51,32%,92%,.78)}.site-footer-col{display:flex;flex-direction:column;gap:12px}.site-footer-col h4{font-family:var(--font-text);font-size:var(--fs-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:hsla(51,32%,92%,.5);font-weight:var(--fw-medium);margin:0}.site-footer-col a{font-size:var(--fs-body-sm);color:hsla(51,32%,92%,.78);text-decoration:none}.site-footer-col a:hover{color:#f1efe4}.site-footer-bottom{max-width:var(--content-max);margin:48px auto 0;padding-top:24px;border-top:1px solid hsla(51,32%,92%,.14);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:var(--fs-caption);color:hsla(51,32%,92%,.5)}.site-footer-bottom a{color:hsla(51,32%,92%,.78);text-decoration:none}.site-footer-bottom a:hover{color:#f1efe4}.site-footer-links{display:flex;gap:20px;flex-wrap:wrap}.site-footer.simple{padding:32px}.site-footer.simple .site-footer-bottom{margin-top:0;padding-top:0;border-top:0;align-items:center}@media (max-width:900px){.site-header-inner{padding:0 20px;gap:20px}.site-nav{display:none}.site-section{padding-left:20px;padding-right:20px}.site-container{padding:0 20px}.site-footer{padding:48px 20px 32px}.site-footer-grid{grid-template-columns:1fr 1fr;gap:32px}}@media (max-width:600px){.site-footer-grid{grid-template-columns:1fr}.site-footer-bottom{flex-direction:column}}.auth-field-group{display:flex;flex-direction:column;gap:16px;margin-bottom:18px}.auth-label-row{display:flex;align-items:center;justify-content:space-between}.auth-forgot{font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--text-link);text-decoration:none}.auth-forgot:hover{color:var(--text-link-hover);text-decoration:underline}.auth-remember-row{display:flex;align-items:center;gap:10px;margin-bottom:20px;cursor:pointer;font-size:var(--fs-body-sm);color:var(--text-body)}.auth-social-row{display:flex;flex-direction:column;gap:10px}.auth-sms-tip{display:flex;gap:12px;align-items:flex-start;margin-top:20px;padding:14px;background:var(--status-info-bg);border:var(--border-w) solid var(--teal-200);border-radius:var(--radius-md);font-size:var(--fs-caption);line-height:1.5;color:var(--text-body)}.auth-sms-tip strong{color:var(--text-strong);font-weight:var(--fw-semibold)}.auth-sms-tip code{font-family:var(--font-mono);font-size:var(--fs-micro);background:var(--surface-raised);padding:1px 5px;border-radius:var(--radius-xs)}.auth-signup-line{margin-top:20px;text-align:center;font-size:var(--fs-caption);color:var(--text-muted)}.auth-signup-line a{color:var(--text-link);font-weight:var(--fw-medium);text-decoration:none}.auth-signup-line a:hover{color:var(--text-link-hover);text-decoration:underline}.consent-row{display:flex;align-items:flex-start;gap:10px;padding:12px 0;cursor:pointer}.consent-checkbox{margin-top:2px}.consent-label{font-size:var(--fs-body-sm);line-height:1.55;color:var(--text-body);cursor:pointer}.consent-link{color:var(--text-link);font-weight:var(--fw-medium);text-decoration:underline}.consent-link:hover{color:var(--text-link-hover)}.consent-note{margin:0 0 8px 28px;font-size:var(--fs-caption);color:var(--text-muted)}.consent-prefs{display:flex;flex-direction:column}.consent-pref-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:var(--border-w) solid var(--border-hairline)}.consent-pref-row:last-of-type{border-bottom:0}.consent-pref-meta{display:flex;align-items:flex-start;gap:12px}.consent-pref-name{font-size:var(--fs-body-sm);color:var(--text-body)}.consent-pref-hint{margin-top:2px;font-size:var(--fs-caption);line-height:1.5;color:var(--text-muted);max-width:46ch}.consent-pref-error{margin-top:12px;font-size:var(--fs-caption);color:var(--status-overdue)}.consent-pref-footer{margin-top:14px;font-size:var(--fs-caption);line-height:1.5;color:var(--text-muted)}.consent-pref-footer a{color:var(--text-link);text-decoration:underline}.portal{display:flex;height:100vh;background:var(--surface-page);overflow:hidden}.portal-main{min-width:0}.portal-body,.portal-main{flex:1 1;display:flex;flex-direction:column;overflow:hidden}.portal-body{min-height:0}.content{overflow:hidden;min-height:0}.content,.main-pane{flex:1 1;display:flex}.main-pane{flex-direction:column;gap:20px}.main-pane,.portal-scroll{overflow-y:auto;padding:24px;min-width:0}.portal-scroll{flex:1 1}.portal-narrow{max-width:720px;display:flex;flex-direction:column;gap:20px}.household-pill{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 8px;padding:10px 12px;background:var(--green-100);border:var(--border-w) solid var(--green-200);border-radius:var(--radius-sm);color:var(--willow-phthalo)}.household-name{font-size:var(--fs-body-sm);font-weight:var(--fw-medium)}.household-sub{font-size:var(--fs-micro);color:var(--text-muted);margin-top:1px}.members-list{display:flex;flex-direction:column;gap:6px}.member-row{display:flex;align-items:center;gap:8px}.m-name{font-size:var(--fs-caption);color:var(--text-body);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-add{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 14px;background:var(--surface-card);border:var(--border-w) solid var(--border-default);border-radius:var(--radius-card);box-shadow:var(--shadow-1);color:var(--text-subtle)}.quick-add-input{flex:1 1;min-width:200px;height:32px;border:0;outline:none;background:none;font-size:var(--fs-body-sm);color:var(--text-body)}.quick-add-input::placeholder{color:var(--text-subtle)}.section-head{justify-content:space-between;padding:0 14px 8px}.section-head,.section-head-title{display:flex;align-items:baseline;gap:8px}.section-head h3{font-family:var(--font-text);font-size:var(--fs-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;font-weight:var(--fw-medium);color:var(--text-subtle);line-height:var(--lh-eyebrow)}.section-count{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-subtle)}.section-action{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--willow-phthalo);background:none;border:0;padding:0;cursor:pointer;text-decoration:none}.section-action:hover{color:var(--willow-mustard)}.task-group{display:flex;flex-direction:column;gap:2px}.task-item{display:flex;align-items:flex-start;gap:12px;padding:14px;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--dur-fast) linear}.task-item.editing,.task-item:hover{background:var(--surface-sunken)}.task-item.editing{cursor:default;flex-wrap:wrap;align-items:center;gap:8px}.task-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:4px}.task-title{font-size:var(--fs-body-sm);line-height:1.45;color:var(--text-body)}.task-title.done{text-decoration:line-through;color:var(--text-subtle)}.task-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:var(--fs-caption);color:var(--text-muted)}.task-meta-item{display:inline-flex;align-items:center;gap:5px}.task-meta-item.overdue{color:var(--status-overdue)}.task-side{display:flex;align-items:center;gap:8px;flex:0 0 auto}.task-actions{display:flex;gap:2px;opacity:0;transition:opacity var(--dur-fast) linear}.task-item:focus-within .task-actions,.task-item:hover .task-actions{opacity:1}.list-card{overflow:hidden}.list-items{padding:6px 8px}.list-item-row{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--dur-fast) linear}.list-item-row:hover{background:var(--surface-sunken)}.li-name{flex:1 1;min-width:0;font-size:var(--fs-body-sm);color:var(--text-body)}.li-name.done{text-decoration:line-through}.li-name.done,.li-qty{color:var(--text-subtle)}.li-qty{font-family:var(--font-mono);font-size:var(--fs-micro)}.list-add-row{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:var(--border-w) solid var(--border-hairline);color:var(--text-subtle)}.list-add-input{flex:1 1;min-width:0;border:0;outline:none;background:none;font-size:var(--fs-body-sm);color:var(--text-body)}.list-add-input::placeholder{color:var(--text-subtle)}.sms-panel{width:340px;flex:0 0 auto;background:var(--surface-card);border-left:var(--border-w) solid var(--border-default)}.sms-panel,.sms-panel-head{display:flex;flex-direction:column}.sms-panel-head{gap:10px;padding:14px 16px;border-bottom:var(--border-w) solid var(--border-default)}.sms-panel-title{display:flex;align-items:center;gap:8px;font-size:var(--fs-body-sm);font-weight:var(--fw-semibold);color:var(--text-strong)}.sms-live-dot{margin-left:auto;width:8px;height:8px;border-radius:50%;background:var(--status-done)}.sms-messages{flex:1 1;overflow-y:auto;padding:16px;gap:12px}.sms-messages,.sms-msg{display:flex;flex-direction:column}.sms-msg{gap:5px;align-items:flex-start}.sms-msg.out{align-items:flex-end}.sms-bubble{max-width:92%;padding:10px 13px;font-size:var(--fs-body-sm);line-height:var(--lh-body);border-radius:var(--radius-lg);white-space:pre-line;overflow-wrap:anywhere}.sms-bubble.willow{background:var(--surface-raised);border:var(--border-w) solid var(--border-default)}.sms-bubble.in,.sms-bubble.willow{color:var(--text-body);border-bottom-left-radius:var(--radius-xs)}.sms-bubble.in{background:var(--surface-sunken)}.sms-bubble.out{background:var(--willow-phthalo);color:var(--text-on-brand);border-bottom-right-radius:var(--radius-xs)}.sms-sender{display:inline-flex;align-items:center;gap:5px}.sms-sender,.sms-time-label{font-size:var(--fs-micro);color:var(--text-subtle)}.sms-time-label{font-family:var(--font-mono);text-align:center}.sms-input-wrap{display:flex;gap:8px;padding:12px 16px;border-top:var(--border-w) solid var(--border-default)}.sms-hint{font-size:var(--fs-micro);color:var(--text-subtle);text-align:center;padding:0 16px 10px}@media (max-width:1024px){.sms-panel{display:none}}.feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.feed-item{display:flex;gap:14px;position:relative;padding-bottom:20px}.feed-item:last-child{padding-bottom:0}.feed-rail{display:flex;flex-direction:column;align-items:center;flex:0 0 auto}.feed-line{flex:1 1;width:1px;background:var(--border-default);margin-top:6px}.feed-body{display:flex;flex-direction:column;gap:2px;padding-top:1px;min-width:0}.feed-text{font-size:var(--fs-body-sm);color:var(--text-body)}.feed-text strong{color:var(--text-strong);font-weight:var(--fw-medium)}.feed-time{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-subtle)}.bar-chart{position:relative;display:flex;align-items:flex-end;gap:10px;height:160px}.bar-chart-grid{position:absolute;left:0;right:0;height:1px;background:var(--chart-grid)}.bar-col{flex:1 1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;position:relative;min-width:0}.bar{width:100%;max-width:46px;background:var(--chart-1);border-radius:3px 3px 0 0;transition:height var(--dur-slow) var(--ease-out)}.bar-axis{display:flex;justify-content:space-between;gap:10px;margin-top:10px;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-subtle)}.bar-rows{display:flex;flex-direction:column;gap:12px}.bar-row{display:flex;align-items:center;gap:10px}.bar-row-label{width:80px;font-size:var(--fs-caption);text-transform:capitalize}.bar-row-label,.bar-row-value{flex:0 0 auto;color:var(--text-muted)}.bar-row-value{width:64px;text-align:right;font-family:var(--font-mono);font-size:var(--fs-micro)}.bar-rows-wide .bar-row-label{width:200px;text-transform:none}.bar-rows-wide .bar-row-value{width:110px}.bar-row-label-mono{font-family:var(--font-mono);font-size:var(--fs-micro)}.bar-chart-dense{gap:2px}.bar-chart-dense .bar{border-radius:2px 2px 0 0}.chart-table{margin-top:12px}.chart-table>summary{cursor:pointer;font-size:var(--fs-caption);color:var(--text-muted);list-style:none}.chart-table>summary::-webkit-details-marker{display:none}.chart-table>summary:hover{color:var(--willow-phthalo)}.chart-table[open]>summary{margin-bottom:8px}.admin-app{display:flex;height:100vh;overflow:hidden;background:var(--surface-page);color:var(--text-body)}.admin-main{min-width:0;overflow:hidden}.admin-content,.admin-main{flex:1 1;display:flex;flex-direction:column}.admin-content{overflow-y:auto;padding:24px;gap:20px;min-height:0}.admin-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-page-title{font-family:var(--font-text);font-size:var(--fs-title);line-height:var(--lh-title);font-weight:var(--fw-semibold);color:var(--text-strong);letter-spacing:var(--ls-tight)}.admin-page-sub{font-size:var(--fs-caption);color:var(--text-muted);margin-top:2px}.admin-page-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}.admin-col{display:flex;flex-direction:column;gap:20px;min-width:0}.usage-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.usage-filters .tabs-pill .tab{text-decoration:none}.usage-note{font-size:var(--fs-caption);color:var(--text-muted);line-height:1.5}.usage-note+.usage-note{margin-top:6px}.admin-prompt-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:20px;gap:20px;align-items:start}.admin-prompt-row .admin-prompt-preview,.admin-prompt-row .admin-tools{max-height:380px;overflow-y:auto}@media (max-width:1100px){.admin-grid,.admin-prompt-row{grid-template-columns:minmax(0,1fr)}}.admin-prompt-preview{margin:0;padding:14px 16px;border:var(--border-w) solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-sunken);font-family:var(--font-mono);font-size:var(--fs-caption);line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--text-body)}.admin-prompt-suffix{color:var(--text-muted)}.admin-prompt-block-label{display:inline-block;font-family:var(--font-text);font-size:var(--fs-micro);font-weight:var(--fw-medium);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-accent)}.admin-diff{margin:0;border:var(--border-w) solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;font-family:var(--font-mono);font-size:var(--fs-caption);line-height:1.5;background:var(--surface-raised)}.admin-diff-line{display:flex;gap:8px;padding:1px 12px;white-space:pre-wrap;word-break:break-word}.admin-diff-sign{flex:none;width:1ch;opacity:.7;-webkit-user-select:none;-moz-user-select:none;user-select:none}.admin-diff-unchanged{color:var(--text-muted)}.admin-diff-added{background:var(--status-done-bg);color:var(--status-done)}.admin-diff-removed{background:var(--status-overdue-bg);color:var(--status-overdue)}.admin-tools{display:flex;flex-direction:column;gap:12px}.admin-tool{padding:12px 14px;border:var(--border-w) solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-sunken)}.admin-tool-name{font-family:var(--font-mono);font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--text-strong)}.admin-tool-writes{margin-left:8px;padding:1px 6px;border-radius:var(--radius-sm);background:var(--status-overdue-bg);color:var(--status-overdue);font-size:var(--fs-micro);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;vertical-align:middle}.admin-tool-desc{margin-top:6px;font-size:var(--fs-caption);line-height:1.5;color:var(--text-body)}.admin-tool-params{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.admin-tool-params li{font-size:var(--fs-caption);line-height:1.5;color:var(--text-muted)}.admin-tool-param-name{font-family:var(--font-mono);color:var(--text-body)}.admin-tool-param-type{margin-left:6px;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--teal-600)}.admin-tool-noparams,.admin-tool-param-desc{color:var(--text-subtle)}.admin-tool-noparams{margin-top:8px;font-size:var(--fs-caption)}.console{background:var(--surface-inverse);color:var(--text-inverse);font-family:var(--font-mono);font-size:var(--fs-caption);line-height:1.7;padding:12px 16px;overflow-y:auto}.console-dim{color:hsla(51,32%,92%,.4)}.console-key{color:var(--chart-4)}.console-accent{color:var(--chart-6)}.console-warn{color:#e3b341}.admin-login{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100%;padding:24px;background:var(--surface-page);color:var(--text-body)}.admin-login-card{width:100%;max-width:400px;padding:28px;background:var(--surface-raised);border:var(--border-w) solid var(--border-default);border-radius:var(--radius-sheet);box-shadow:var(--shadow-2)}.admin-login-logo{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:20px}.admin-login-sub,.admin-login-title{text-align:center}.admin-login-sub{font-size:var(--fs-caption);color:var(--text-muted);margin:6px 0 22px}.admin-login-form{display:flex;flex-direction:column;gap:16px}@media (max-width:700px){.sidebar-nav{display:none}}.page-shell{display:flex;align-items:center;justify-content:center;padding:24px}.page-pad,.page-shell{min-height:100vh;background:var(--surface-page)}.page-pad{padding:40px 24px}.page-narrow{max-width:460px}.page-narrow,.page-wide{width:100%;margin-inline:auto}.page-wide{max-width:720px}.page-title{font-family:var(--font-display);font-size:var(--fs-display-sm);line-height:var(--lh-display-sm);font-weight:var(--fw-semibold);letter-spacing:var(--ls-display);color:var(--text-strong)}.page-sub{font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);color:var(--text-muted);margin-top:6px}.page-section-title{font-family:var(--font-text);font-size:var(--fs-body);font-weight:var(--fw-semibold);color:var(--text-strong);letter-spacing:var(--ls-tight)}.page-center{text-align:center;align-items:center}.page-meta{color:var(--text-subtle)}.page-link,.page-meta{font-size:var(--fs-caption)}.page-link{display:inline-flex;align-items:center;gap:4px;font-weight:var(--fw-medium);color:var(--text-link);text-decoration:none}.page-link:hover{color:var(--text-link-hover);text-decoration:underline}.kv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px 16px;gap:8px 16px;font-size:var(--fs-body-sm)}@media (max-width:480px){.kv-grid{grid-template-columns:minmax(0,1fr)}}.tile-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:var(--border-w) solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-raised)}.tile-row-link{text-decoration:none;color:inherit;transition:var(--motion-hover)}.tile-row-link:hover{border-color:var(--border-strong);background:var(--surface-card);color:inherit}.tile-name{font-size:var(--fs-body-sm);color:var(--text-strong)}.link-danger,.tile-name{font-weight:var(--fw-medium)}.link-danger{background:none;border:0;padding:0;font-size:var(--fs-caption);color:var(--status-overdue);cursor:pointer}.link-danger:hover{text-decoration:underline}.link-danger:disabled{opacity:.5;cursor:default;text-decoration:none}.text-ok{color:var(--status-done)}.text-ok,.text-warn{font-weight:var(--fw-medium)}.text-warn{color:var(--status-waiting)}