:root{color-scheme:light;--color-canvas:#f3f6fb;--color-surface:#fff;--color-surface-muted:#edf2fa;--color-text:#14213d;--color-text-muted:#53627c;--color-brand:#155eef;--color-brand-strong:#0c47c7;--color-border:#d8e0ed;--color-danger:#b42318;--color-danger-surface:#fff1f0;--color-warning:#7a4d00;--color-warning-surface:#fff7df;--shadow-card:0 1.25rem 3.75rem rgba(28,47,89,.1);--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);background:var(--color-canvas);color:var(--color-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none}html.dark{color-scheme:dark;--color-canvas:#0e1628;--color-surface:#172238;--color-surface-muted:#202e49;--color-text:#f4f7fc;--color-text-muted:#bdc9dc;--color-brand:#8db5ff;--color-brand-strong:#b8d0ff;--color-border:#34445f;--color-danger:#ffb4ab;--color-danger-surface:#44201e;--color-warning:#ffd88a;--color-warning-surface:#3b2d12;--shadow-card:0 1.25rem 3.75rem rgba(0,0,0,.28)}*{box-sizing:border-box}html{background:var(--color-canvas);scroll-behavior:smooth}body,html{min-height:100%}body{background:radial-gradient(circle at 15% 0,rgb(21 94 239/9%),transparent 32rem),var(--color-canvas);margin:0}button,input,select,textarea{color:inherit;font:inherit}a,button{-webkit-tap-highlight-color:transparent}a{color:var(--color-brand)}:focus-visible{outline:3px solid #f79009;outline-offset:3px}.visually-hidden{height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;clip:rect(0,0,0,0)!important;border:0!important;white-space:nowrap!important}.skip-link{background:var(--color-text);border-radius:.75rem;color:var(--color-surface);left:calc(var(--safe-left) + .75rem);min-height:2.75rem;padding:.75rem 1rem;position:fixed;top:calc(var(--safe-top) + .5rem);transform:translateY(-160%);z-index:100}.skip-link:focus{transform:translateY(0)}.app-frame{min-height:100svh}.top-bar{align-items:center;-webkit-backdrop-filter:blur(1.25rem) saturate(135%);backdrop-filter:blur(1.25rem) saturate(135%);background:#ffffffdb;border-bottom:1px solid rgba(216,224,237,.8);display:flex;gap:1rem;justify-content:space-between;min-height:calc(4rem + var(--safe-top));padding:calc(.625rem + var(--safe-top)) calc(1rem + var(--safe-right)) .625rem calc(1rem + var(--safe-left));position:sticky;top:0;z-index:20}html.dark .primary-navigation,html.dark .top-bar{background:#172238e6;border-color:#34445fe6}@supports not (backdrop-filter:blur(1px)){.primary-navigation,.top-bar{background:var(--color-surface)}}.brand{align-items:center;color:var(--color-text);display:inline-flex;font-weight:800;gap:.65rem;letter-spacing:.03em;min-height:2.75rem;text-decoration:none}.brand__mark{background:var(--color-brand);border-radius:.75rem;color:var(--color-surface);display:grid;font-weight:900;height:2.25rem;place-items:center;width:2.25rem}.management-link{align-items:center;border-radius:.75rem;color:var(--color-text);display:inline-flex;font-size:.875rem;font-weight:700;min-height:2.75rem;padding:.5rem .8rem;text-decoration:none}.management-link:hover{background:var(--color-surface-muted)}.app-content{margin:0 auto;padding:clamp(1.25rem,4vw,2.5rem) max(clamp(1rem,4vw,2rem),var(--safe-right)) calc(7rem + var(--safe-bottom)) max(clamp(1rem,4vw,2rem),var(--safe-left));width:min(100%,70rem)}.app-frame:not(.app-frame--group) .app-content{display:grid;min-height:calc(100svh - 4rem);place-items:center}.primary-navigation{-webkit-backdrop-filter:blur(1.25rem) saturate(135%);backdrop-filter:blur(1.25rem) saturate(135%);background:#ffffffe0;border-top:1px solid rgba(216,224,237,.85);bottom:0;display:grid;gap:.35rem;grid-template-columns:repeat(3,minmax(0,1fr));left:0;padding:.5rem max(.75rem,var(--safe-right)) calc(.5rem + var(--safe-bottom)) max(.75rem,var(--safe-left));position:fixed;right:0;z-index:20}.primary-navigation a{border-radius:.9rem;color:var(--color-text-muted);display:grid;font-size:.8125rem;font-weight:750;min-height:3rem;place-items:center;text-decoration:none}.primary-navigation a[aria-current=page]{background:#155eef1f;color:var(--color-brand-strong)}.runtime-banner{border:1px solid;border-radius:1rem;display:grid;gap:.2rem;margin-bottom:1.25rem;padding:.9rem 1rem}.runtime-banner span{line-height:1.5}.runtime-banner--warning{background:var(--color-warning-surface);color:var(--color-warning)}.runtime-banner--danger{background:var(--color-danger-surface);color:var(--color-danger)}.group-overview{margin-bottom:1.25rem}.overview-facts{display:grid;gap:.75rem;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.overview-facts>div{background:var(--color-surface-muted);border-radius:.85rem;padding:.85rem}.overview-facts dt{color:var(--color-text-muted);font-size:.8125rem;font-weight:700}.overview-facts dd{font-weight:750;margin:.25rem 0 0}.overview-list{margin-top:1.25rem}.overview-list h3{font-size:1rem;margin:0 0 .6rem}.overview-list ul{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}.overview-list li{background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.45rem .7rem}@media(max-width:36rem){.overview-facts{grid-template-columns:1fr}}.page-heading{margin-bottom:1.5rem;max-width:44rem}.content-card__eyebrow,.page-heading__eyebrow{color:var(--color-brand-strong);font-size:.75rem;font-weight:800;letter-spacing:.12em;margin:0 0 .4rem;text-transform:uppercase}.page-heading h1,.welcome-card h1{font-size:clamp(2rem,7vw,3.75rem);letter-spacing:-.045em;line-height:1.1;margin:0}.page-heading>p:last-child,.welcome-card>p{color:var(--color-text-muted);font-size:1rem;line-height:1.7}.content-card,.welcome-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:1.5rem;box-shadow:var(--shadow-card)}.content-card{padding:clamp(1.1rem,4vw,2rem)}.welcome-card{padding:clamp(1.5rem,6vw,3.25rem);width:min(100%,42rem)}.welcome-card .primary-button{margin-top:1rem}.welcome-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.welcome-actions .primary-button{margin-top:0}.group-create-layout{width:min(100%,44rem)}.group-create-layout .content-card>h2{margin:0 0 1.5rem}.content-card__heading{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.content-card h2,.dialog-panel h2{font-size:1.35rem;margin:0}.status-chip{align-items:center;background:var(--color-surface-muted);border-radius:999px;color:var(--color-text-muted);display:inline-flex;font-size:.75rem;font-weight:700;min-height:2rem;padding:.25rem .65rem}.foundation-form{display:grid;gap:1.25rem}.field,.field-grid{display:grid;gap:.45rem}.field-grid{gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.field label,.field legend{font-weight:750}.field input,.field select,.field textarea{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.875rem;min-height:2.75rem;padding:.7rem .8rem;width:100%}.field textarea{resize:vertical}.field input[aria-invalid=true]{border-color:var(--color-danger)}.field-error,.field-hint{font-size:.875rem;line-height:1.5;margin:0}.field-hint{color:var(--color-text-muted)}.field-error{color:var(--color-danger);font-weight:650}.amount-field{align-items:center;display:grid;gap:.65rem;grid-template-columns:1fr auto}fieldset.field{border:0;padding:0}.checkbox-row{align-items:center;display:flex;gap:.65rem;min-height:2.75rem;padding:.5rem .25rem}.checkbox-row input{min-height:1.25rem;width:1.25rem}.repeatable-field{display:grid;gap:.65rem;grid-template-columns:minmax(0,1fr) auto}.repeatable-field input{min-width:0}.member-create-form,.member-management{display:grid;gap:1rem}.member-list{display:grid;gap:.5rem;list-style:none;margin:0;padding:0}.member-list li{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:1rem;justify-content:space-between;padding:.75rem 0}.member-list__identity{display:grid;gap:.2rem;min-width:0}.member-list__order{color:var(--color-text-muted);font-size:.875rem}.member-list__actions{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.member-list__delete,.member-list__rename{flex:0 0 auto;padding:.55rem .75rem}.member-rename-form{display:grid;gap:.75rem;width:100%}.member-rename-form__actions{display:flex;flex-wrap:wrap;gap:.5rem}button:disabled{cursor:not-allowed;opacity:.62}.danger-button,.icon-button,.primary-button,.secondary-button{border-radius:.875rem;cursor:pointer;font-weight:750;text-decoration:none}.danger-button,.primary-button,.secondary-button{align-items:center;display:inline-flex;justify-content:center;min-height:2.75rem;padding:.7rem 1rem}.primary-button{background:var(--color-brand);border:1px solid var(--color-brand-strong);color:#fff}.primary-button:hover{background:var(--color-brand-strong)}.secondary-button{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}.secondary-button:hover{background:var(--color-surface-muted)}.danger-button{background:var(--color-danger-surface);border:1px solid var(--color-danger);color:var(--color-danger)}.danger-button:hover{background:var(--color-surface-muted)}.icon-button{background:transparent;border:0;color:var(--color-text);display:grid;font-size:1.5rem;height:2.75rem;min-width:2.75rem;place-items:center;width:2.75rem}.icon-button:hover{background:var(--color-surface-muted)}.dialog-backdrop{align-items:end;background:#08102094;display:grid;inset:0;padding:max(1rem,var(--safe-top)) max(1rem,var(--safe-right)) max(1rem,var(--safe-bottom)) max(1rem,var(--safe-left));position:fixed;z-index:50}.dialog-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:1.5rem;box-shadow:0 1.5rem 5rem #00000047;margin:0 auto;max-height:min(88svh,44rem);overflow:auto;padding:1.25rem;width:min(100%,34rem)}.dialog-panel__header{align-items:center;display:flex;gap:1rem;justify-content:space-between}.dialog-panel>p{color:var(--color-text-muted);line-height:1.7}.dialog-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.25rem}.carryover-form{display:grid;gap:.75rem}.carryover-form fieldset{border:1px solid var(--color-border);border-radius:.875rem;display:grid;gap:.5rem;padding:.75rem}.placeholder-card p{color:var(--color-text-muted);line-height:1.7}.category-management{margin-top:1rem}.category-list{display:grid;gap:.75rem;list-style:none;padding:0}.category-list>li{align-items:center;border:1px solid var(--color-border);border-radius:1rem;display:flex;gap:1rem;justify-content:space-between;padding:.75rem}.category-list__identity{align-items:center;display:inline-flex;gap:.5rem}.category-list__actions{display:flex;flex-wrap:wrap;gap:.5rem}.category-swatch{border:1px solid;border-radius:50%;height:1rem;width:1rem}.category-form{align-items:end;display:grid;gap:.75rem;grid-template-columns:minmax(7rem,1fr) minmax(5rem,.7fr) 4rem auto;width:100%}.category-form label{grid-row:1}.category-form input{grid-row:2;min-width:0}.category-form .category-list__actions{grid-row:2}.category-form--add{margin-top:1.5rem}.category-form--add h3{grid-column:1/-1}.category-history{margin-top:1.5rem}@media(max-width:42rem){.category-form,.category-list>li{align-items:stretch;flex-direction:column;grid-template-columns:1fr}.category-form .category-list__actions,.category-form input,.category-form label{grid-row:auto}}@media(min-width:48rem){.app-content{padding-bottom:3rem}.app-frame--group{padding-left:6.5rem}.app-frame--group .top-bar{margin-left:-6.5rem}.primary-navigation{align-content:start;border-right:1px solid var(--color-border);border-top:0;gap:.5rem;grid-template-columns:1fr;padding:1rem .75rem calc(1rem + var(--safe-bottom)) max(.75rem,var(--safe-left));right:auto;top:calc(4rem + var(--safe-top));width:calc(6.5rem + var(--safe-left))}.primary-navigation a{min-height:3.5rem}.dialog-backdrop{align-items:center}}@media(max-width:34rem){.field-grid{grid-template-columns:1fr}.dialog-actions{flex-direction:column-reverse}.dialog-actions>*{width:100%}}@media(orientation:landscape)and (max-height:32rem){.foundation-form:focus-within~.primary-navigation,body:has(input:focus,select:focus,textarea:focus) .primary-navigation{display:none}body:has(input:focus,select:focus,textarea:focus) .app-content{padding-bottom:2rem}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:0s!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:0s!important}}@media(prefers-contrast:more){:root{--color-border:currentColor}.primary-navigation,.top-bar{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--color-surface)}}
