:root{--font-family:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--text-2xs:clamp(.625rem, .59rem + .16vw, .71875rem);--text-xs:clamp(.6875rem, .65rem + .18vw, .78125rem);--text-sm:clamp(.78125rem, .74rem + .2vw, .84375rem);--text-base:clamp(.875rem, .83rem + .22vw, .96875rem);--text-lg:clamp(.9375rem, .89rem + .3vw, 1.0625rem);--text-xl:clamp(1rem, .95rem + .42vw, 1.15625rem);--text-2xl:clamp(1.125rem, 1.01rem + .72vw, 1.34375rem);--text-3xl:clamp(1.3125rem, 1.08rem + 1.2vw, 1.6875rem);--text-4xl:clamp(1.625rem, 1.2rem + 2.2vw, 2.125rem);--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.75;--letter-spacing-tight:-.3px;--letter-spacing-normal:0;--letter-spacing-loose:.2px;--letter-spacing-wider:.3px}h1,h2,h3,h4,h5,h6{font-family:var(--font-family);font-weight:var(--weight-semibold);line-height:var(--leading-tight);color:var(--color-text);margin:0}p{line-height:var(--leading-normal);margin:0}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}button{font-family:var(--font-family);cursor:pointer}input,select,textarea{font-family:var(--font-family);font-size:var(--text-base);color:var(--color-text)}ul,ol,dl{margin:0;padding:0}ul,ol{list-style:none}.content-wrapper{width:100%;max-width:var(--content-max-width);padding:0 var(--content-padding-x);margin:0 auto}:root{--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--row-list-gap:var(--space-2);--row-card-padding:var(--space-3);--row-card-radius:var(--radius-md);--content-max-width:480px;--content-padding-x:clamp(.875rem, .58rem + 1.5vw, 1.5rem);--content-padding-y:1.25rem;--main-max-width:58rem;--header-max-width:88rem;--page-gutter-desktop:clamp(1.5rem, .85rem + 1.6vw, 3rem);--main-padding-top:clamp(1.25rem, .9rem + 1vw, 2rem);--main-padding-bottom:var(--space-6);--header-padding-y:.625rem;--header-brand-gap:.625rem;--header-logo-size:clamp(1.75rem, 1.62rem + .35vw, 2rem);--header-control-size:2.375rem;--nav-tab-padding-y:.625rem;--nav-tab-padding-x:.875rem;--nav-tab-icon-size:1rem;--nav-tab-label-size:.71875rem;--scrollbar-compensation:0px;--dialog-max-width:var(--header-max-width);--dialog-max-height:78dvh;--dialog-overlay-padding:clamp(.75rem, .55rem + .8vw, 1.5rem);--dialog-padding-x:clamp(1rem, .9rem + .35vw, 1.375rem);--dialog-padding-y:clamp(.875rem, .8rem + .25vw, 1.125rem);--scrollbar-size:.875rem;--scrollbar-radius:9999px;--layout-max-width:1200px;--nav-height-mobile:4.5rem;--header-height:5rem;--subtab-height:2.5rem;--slide-up-panel-height:92dvh;--dropdown-max-height:16rem;--hint-max-height-lg:12rem;--hint-max-height-sm:6rem;--textarea-min-height:4.5rem;--expense-log-preview-table-min-width:28rem;--expense-log-preview-date-width:5.25rem;--expense-log-preview-type-width:5.75rem;--expense-log-preview-description-min-width:11rem;--expense-log-preview-amount-width:6.25rem;--expense-log-preview-edge-inset:var(--space-3);--expense-log-preview-type-gap:var(--space-5);--expense-log-preview-description-gap:var(--space-4);--expense-log-preview-mobile-table-min-width:25.5rem;--expense-log-preview-mobile-date-width:4.75rem;--expense-log-preview-mobile-type-width:5.25rem;--expense-log-preview-mobile-description-min-width:9.75rem;--expense-log-preview-mobile-amount-width:5.25rem;--expense-log-preview-mobile-edge-inset:var(--space-2);--expense-log-preview-mobile-date-gap:var(--space-2);--expense-log-preview-mobile-type-left-gap:var(--space-2);--expense-log-preview-mobile-type-right-gap:var(--space-4);--expense-log-preview-mobile-description-gap:var(--space-4);--indicator-dot-size:6px;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--border-width:1px;--border-width-strong:1.5px;--border-width-thick:2px;--select-arrow-left-width:5px;--select-arrow-right-width:5px;--select-arrow-top-height:6px;--scrollbar-thumb-border:3px;--motion-duration-fast:.14s;--motion-duration-base:.18s;--motion-duration-slow:.24s;--motion-duration-expand:.28s;--motion-ease-standard:cubic-bezier(.2, 0, 0, 1);--motion-ease-exit:cubic-bezier(.4, 0, 1, 1)}@media (width<=360px){:root{--text-2xs:.625rem;--text-xs:.6875rem;--text-sm:.78125rem;--text-base:.875rem;--text-lg:.9375rem;--text-xl:1rem;--text-2xl:1.125rem;--text-3xl:1.3125rem;--text-4xl:1.625rem;--content-padding-x:.875rem;--page-gutter-desktop:.875rem}}.select-wrapper{display:block;position:relative}.select-wrapper select{appearance:none;width:100%;color:var(--color-text);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--text-base);padding-right:2.5rem}.select-wrapper:after{content:"";right:var(--space-3);border-left:var(--select-arrow-left-width) solid transparent;border-right:var(--select-arrow-right-width) solid transparent;border-top:var(--select-arrow-top-height) solid var(--color-text-subtle);pointer-events:none;width:0;height:0;position:absolute;top:50%;transform:translateY(-50%)}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.form-input{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:var(--border-width-strong) solid var(--color-border);background:var(--color-bg-subtle);color:var(--color-text);font-size:var(--text-sm);font-family:var(--font-family);transition:border-color var(--motion-duration-fast);box-sizing:border-box}.form-input::placeholder{color:var(--color-text-subtle);opacity:1}.form-input:focus{border-color:var(--color-focus);background:var(--color-bg);outline:none}.form-input:-webkit-autofill{-webkit-box-shadow:0 0 0px 1000px var(--color-bg-subtle) inset;-webkit-text-fill-color:var(--color-text);caret-color:var(--color-text)}.form-input:-webkit-autofill:hover{-webkit-box-shadow:0 0 0px 1000px var(--color-bg-subtle) inset;-webkit-text-fill-color:var(--color-text);caret-color:var(--color-text)}.form-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0px 1000px var(--color-bg-subtle) inset;-webkit-text-fill-color:var(--color-text);caret-color:var(--color-text)}select.form-input{padding-right:var(--space-8)}.form-textarea{resize:vertical;min-height:var(--textarea-min-height)}.form-input[type=date]{appearance:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.form-input[type=date]::-webkit-datetime-edit{color:var(--color-text)}.form-input[type=date]::-webkit-datetime-edit-month-field:focus{background:var(--color-accent);color:var(--color-text-inverse);border-radius:2px}.form-input[type=date]::-webkit-datetime-edit-day-field:focus{background:var(--color-accent);color:var(--color-text-inverse);border-radius:2px}.form-input[type=date]::-webkit-datetime-edit-year-field:focus{background:var(--color-accent);color:var(--color-text-inverse);border-radius:2px}@media (width>=481px){.form-input[type=date]::-webkit-calendar-picker-indicator{opacity:.45;cursor:pointer}.form-input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:.8}}[data-theme=dark] .form-input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.input-currency{align-items:center;display:flex;position:relative}.currency-symbol{left:var(--space-3);font-size:var(--text-sm);color:var(--color-text-subtle);pointer-events:none;position:absolute}.input-currency .form-input{padding-left:var(--space-6)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-family:var(--font-family);cursor:pointer;transition:opacity var(--motion-duration-fast);border:none;display:inline-flex}.btn:hover{opacity:.85}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-text-inverse)}.btn-secondary{background:var(--color-bg-card);color:var(--color-text);border:var(--border-width-strong) solid var(--color-border);box-shadow:none;transition:background var(--motion-duration-fast), color var(--motion-duration-fast), opacity var(--motion-duration-fast)}.btn-secondary:hover,.btn-secondary:focus{background:var(--color-bg-subtle);color:var(--color-text);opacity:.92}@media (prefers-color-scheme:light){.btn-secondary{background:#f3f6fb;border-color:#b6c6e3}.btn-secondary:hover,.btn-secondary:focus{background:#e5edf8;border-color:#a5bce0}}.btn-sm{padding:var(--space-1) var(--space-4);font-size:var(--text-xs)}.btn-ghost{color:var(--color-text);border:var(--border-width) solid var(--color-border);background:0 0}.btn-ghost:hover,.btn-ghost:focus{background:var(--color-bg-subtle);color:var(--color-text);border-color:var(--color-accent)}.callout{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border-left:var(--border-width-thick) solid;font-size:var(--text-xs);line-height:var(--leading-relaxed);color:var(--color-text-subtle)}.callout__amount{font-weight:var(--weight-semibold)}.callout--danger{background:color-mix(in srgb, var(--color-danger) 8%, transparent);border-left-color:var(--color-danger)}.callout--danger .callout__amount{color:var(--color-danger)}.callout--success{background:color-mix(in srgb, var(--color-success) 8%, transparent);border-left-color:var(--color-success)}.callout--success .callout__amount{color:var(--color-success)}.callout--info{background:color-mix(in srgb, var(--color-primary) 10%, transparent);border-left-color:var(--color-primary)}.callout--info .callout__amount{color:var(--color-primary)}.callout--warning{background:color-mix(in srgb, var(--color-warning) 8%, transparent);border-left-color:var(--color-warning)}.callout--warning .callout__amount{color:var(--color-warning)}.data-row{justify-content:space-between;align-items:center;display:flex}.data-row__label{font-size:var(--text-sm);color:var(--color-text-subtle)}.data-row__value{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text)}.badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;display:inline-block}.status-badge--under{background:color-mix(in srgb, var(--color-warning) 10%, transparent);color:var(--color-warning)}.status-badge--met{background:color-mix(in srgb, var(--color-success) 10%, transparent);color:var(--color-success)}.status-badge--over{background:color-mix(in srgb, var(--color-danger) 10%, transparent);color:var(--color-danger)}.status-badge--ahead{background:color-mix(in srgb, var(--color-success) 10%, transparent);color:var(--color-success)}:root,[data-theme=light]{--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-accent:#38bdf8;--color-accent-hover:#0ea5e9;--color-bg:#eef3fb;--color-bg-subtle:#e5edf8;--color-bg-card:#f7f9ff;--color-border:#c3d4ee;--color-border-strong:#a5bce0;--color-text:#1e2b4a;--color-text-subtle:#6b7a9c;--color-text-inverse:#fff;--color-success:#16a34a;--color-warning:#d97706;--color-danger:#dc2626;--color-unbudgeted:#ea580c;--color-focus:#2563eb;--shadow-card:0 1px 4px #2563eb24, 0 1px 3px #2563eb14;--shadow-dialog:0 24px 48px #0f172a38, 0 12px 24px #0f172a24;--shadow-banner:0 1px 4px #0f172a14, 0 1px 2px #0f172a0a;--color-overlay-backdrop:#00000073;--color-nav-bg:#1a3668;--color-nav-bg-secondary:#142d5c;--color-nav-border:#142d5c;--color-nav-icon-bg:#0f2347;--color-nav-text:#fff;--color-nav-text-subtle:#ffffffa6;--color-nav-text-muted:#fff6;--shadow-nav:0 1px 3px #0003;--color-scrollbar-thumb:color-mix(in srgb, var(--color-primary) 38%, var(--color-bg-card));--color-scrollbar-thumb-hover:color-mix(in srgb, var(--color-primary) 55%, var(--color-bg-card));--color-scrollbar-track:color-mix(in srgb, var(--color-bg) 92%, var(--color-border))}[data-theme=dark]{--color-primary:#60a5fa;--color-primary-hover:#93c5fd;--color-accent:#7dd3fc;--color-accent-hover:#bae6fd;--color-bg:#0d1b35;--color-bg-subtle:#112040;--color-bg-card:#162848;--color-border:#1e3a68;--color-border-strong:#2a4f87;--color-text:#e0eaff;--color-text-subtle:#7b9cc8;--color-text-inverse:#0d1b35;--color-success:#4ade80;--color-warning:#fcd34d;--color-danger:#f87171;--color-unbudgeted:#fb923c;--color-focus:#60a5fa;--shadow-card:0 1px 3px #0006, 0 1px 2px #0000004d;--shadow-dialog:0 24px 48px #00000070, 0 12px 24px #00000052;--shadow-banner:0 1px 4px #0000004d, 0 1px 2px #0003;--color-overlay-backdrop:#0009;--color-nav-bg:#091428;--color-nav-bg-secondary:#0d1b35;--color-nav-border:#1e3a68;--color-nav-icon-bg:#0d1b35;--color-nav-text:#e0eaff;--color-nav-text-subtle:#7b9cc8;--color-nav-text-muted:#4a6a9c;--shadow-nav:0 1px 3px #0006;--color-scrollbar-thumb:color-mix(in srgb, var(--color-primary) 42%, var(--color-bg-card));--color-scrollbar-thumb-hover:color-mix(in srgb, var(--color-primary) 58%, var(--color-bg-card));--color-scrollbar-track:color-mix(in srgb, var(--color-bg) 90%, black 10%)}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--text-base);line-height:var(--leading-normal);background:var(--color-bg);color:var(--color-text);transition:background var(--motion-duration-base), color var(--motion-duration-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;overflow-x:hidden}#root{min-height:100svh}html{scrollbar-color:var(--color-scrollbar-thumb) var(--color-scrollbar-track)}html::-webkit-scrollbar{width:var(--scrollbar-size)}html::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb);border-radius:var(--scrollbar-radius);border:var(--scrollbar-thumb-border) solid transparent;background-clip:padding-box}html::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar-thumb-hover);border-radius:var(--scrollbar-radius);border:var(--scrollbar-thumb-border) solid transparent;background-clip:padding-box}html::-webkit-scrollbar-track{background:linear-gradient(to bottom, var(--color-nav-bg) 0, var(--color-nav-bg) calc(var(--header-height) + 1px), var(--color-scrollbar-track) calc(var(--header-height) + 1px), var(--color-scrollbar-track) 100%)}@media (prefers-reduced-motion:reduce){.form-input,.btn,body{transition-duration:0s}}.tab-content{justify-content:center;align-items:center;gap:var(--space-3);max-width:var(--content-max-width);padding:var(--space-10) var(--content-padding-x);color:var(--color-text-subtle);text-align:center;flex-direction:column;margin:0 auto;display:flex}.tab-content-icon{font-size:var(--text-3xl);line-height:1}.tab-content h2{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text);margin:0}.tab-content p{font-size:var(--text-sm);margin:0}main{width:100%;max-width:var(--main-max-width);box-sizing:border-box;padding:var(--main-padding-top) var(--page-gutter-desktop) var(--main-padding-bottom);margin:0 auto}@media (width<=480px){main{padding:var(--space-4) var(--content-padding-x) var(--nav-height-mobile)}}header{background:var(--color-nav-bg);border-bottom:var(--border-width) solid var(--color-nav-border);box-shadow:var(--shadow-nav);z-index:100;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:var(--space-3);max-width:var(--header-max-width);padding:var(--header-padding-y) var(--page-gutter-desktop);margin:0 auto;display:flex}@media (width>=481px){.header-inner{padding-right:calc(var(--page-gutter-desktop) + var(--scrollbar-compensation))}}@media (width<=480px){.header-inner{padding:var(--space-2) var(--content-padding-x)}}.header-brand{align-self:center;align-items:center;gap:var(--header-brand-gap);flex-direction:row;display:flex}.header-logo{width:var(--header-logo-size);height:var(--header-logo-size);flex-shrink:0}@media (width<=480px){.header-logo{display:none}}.header-identity{gap:var(--space-1);flex-direction:column;display:flex}.header-space-btn{cursor:pointer;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-nav-text);letter-spacing:var(--letter-spacing-tight);background:0 0;border:none;align-items:center;padding:0;display:inline-flex}.header-space-btn:hover{opacity:.65}@media (width<=480px){.header-space-btn{font-size:var(--text-base)}}.header-right{align-items:center;gap:var(--space-2);flex-shrink:0;margin-left:auto;display:flex}.header-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.auth-signin{color:var(--color-nav-text);border-color:var(--color-nav-text-muted)}.auth-signin:hover{border-color:var(--color-nav-text-subtle);opacity:1}.theme-toggle{width:var(--header-control-size);height:var(--header-control-size);background:var(--color-nav-icon-bg);border-radius:var(--radius-md);color:var(--color-nav-text-subtle);cursor:pointer;font-size:var(--text-base);transition:color var(--motion-duration-fast), background var(--motion-duration-fast);border:none;align-self:center;place-items:center;padding:0;line-height:1;display:grid}.theme-toggle:hover{color:var(--color-nav-text)}.app-loading{min-height:100dvh;font-size:var(--text-sm);color:var(--color-text-subtle);background:var(--color-bg);justify-content:center;align-items:center;display:flex}.live-clock{gap:var(--space-2);flex-direction:row;align-items:baseline;display:flex}@media (width<=480px){.live-clock{gap:var(--space-1);flex-direction:column}}.clock-date,.clock-time{font-size:var(--text-2xs);color:var(--color-nav-text-subtle);line-height:var(--leading-tight)}.clock-time{font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;letter-spacing:var(--letter-spacing-wider)}.more-sheet-overlay{background:var(--color-overlay-backdrop);z-index:200;align-items:flex-end;display:flex;position:fixed;inset:0}.more-sheet{background:var(--color-nav-bg);border-top:var(--border-width) solid var(--color-nav-border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;padding-bottom:env(safe-area-inset-bottom);animation:sheet-slide-up var(--motion-duration-slow) var(--motion-ease-standard)}@keyframes sheet-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.more-sheet-handle{background:var(--color-nav-border);border-radius:var(--radius-full);width:2.5rem;height:.25rem;margin:var(--space-3) auto var(--space-2)}.more-sheet-nav{padding:var(--space-2) var(--space-4) var(--space-4);gap:var(--space-1);flex-direction:column;display:flex}.more-sheet-item{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-2);border-radius:var(--radius-md);color:var(--color-nav-text-subtle);cursor:pointer;text-align:left;transition:background var(--motion-duration-fast) var(--motion-ease-standard), color var(--motion-duration-fast) var(--motion-ease-standard);background:0 0;border:none;flex-direction:row;display:flex}.more-sheet-item:hover{background:var(--color-nav-bg-secondary);color:var(--color-nav-text)}.more-sheet-item--active{color:var(--color-nav-text);background:var(--color-nav-bg-secondary)}.more-sheet-icon{font-size:var(--text-2xl);width:var(--space-8);text-align:center;flex-shrink:0;line-height:1}.more-sheet-label{font-size:var(--text-base);font-weight:var(--weight-medium)}.tab-bar{gap:var(--space-1);scrollbar-width:none;flex-direction:row;display:flex;overflow-x:auto}.tab-bar::-webkit-scrollbar{display:none}.tab-item{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--nav-tab-padding-y) var(--nav-tab-padding-x);border:none;border-bottom:var(--border-width-thick) solid transparent;color:var(--color-nav-text-muted);cursor:pointer;white-space:nowrap;transition:color var(--motion-duration-fast) var(--motion-ease-standard), border-color var(--motion-duration-fast) var(--motion-ease-standard);background:0 0;flex-direction:column;flex-shrink:0;display:flex}.tab-item:hover{color:var(--color-nav-text-subtle)}.tab-item--active{color:var(--color-nav-text);border-bottom-color:var(--color-accent)}.tab-icon{font-size:var(--nav-tab-icon-size);line-height:1}.tab-more-icon{font-size:var(--text-base);letter-spacing:3px}.tab-label{font-size:var(--nav-tab-label-size);font-weight:var(--weight-medium);letter-spacing:var(--letter-spacing-loose)}.tab-more{display:none}@media (width<=480px){.tab-bar{background:var(--color-nav-bg);border-top:var(--border-width) solid var(--color-nav-border);z-index:100;padding-bottom:env(safe-area-inset-bottom);justify-content:space-around;gap:0;margin-left:0;position:fixed;bottom:0;left:0;right:0}.tab-item{padding:var(--space-2) var(--space-1);gap:var(--space-1);border-bottom:none;border-top:var(--border-width-thick) solid transparent;flex:1}.tab-item--active{border-bottom-color:#0000;border-top-color:var(--color-accent);color:var(--color-nav-text)}.tab-icon{font-size:var(--text-lg)}.tab-item--overflow{display:none}.tab-more{display:flex}}@keyframes slide-up-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up-overlay-out{0%{opacity:1}to{opacity:0}}@keyframes slide-up-panel-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slide-up-panel-out{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes dialog-panel-in{0%{opacity:0;transform:translateY(.75rem)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes dialog-panel-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(.5rem)scale(.985)}}.slide-up-overlay{background:var(--color-overlay-backdrop);z-index:150;animation:slide-up-overlay-in var(--motion-duration-base) var(--motion-ease-standard);align-items:flex-end;display:flex;position:fixed;inset:0}.slide-up-overlay--closing{animation:slide-up-overlay-out var(--motion-duration-base) var(--motion-ease-exit) forwards;pointer-events:none}.slide-up-panel{width:100%;height:var(--slide-up-panel-height);background:var(--color-bg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation:slide-up-panel-in var(--motion-duration-slow) var(--motion-ease-standard);box-shadow:var(--shadow-card);flex-direction:column;display:flex;overflow:hidden}.slide-up-panel--closing{animation:slide-up-panel-out var(--motion-duration-base) var(--motion-ease-exit) forwards}.slide-up-panel__header{padding:var(--space-4) var(--content-padding-x);border-bottom:var(--border-width) solid var(--color-border);background:var(--color-bg);flex-shrink:0;grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.slide-up-panel__title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);text-align:center}.slide-up-panel__close,.slide-up-panel__back{padding:var(--space-1);color:var(--color-text-subtle);cursor:pointer;font-family:var(--font-family);background:0 0;border:none;line-height:1}.slide-up-panel__close{font-size:var(--text-lg);justify-self:end}.slide-up-panel__back{font-size:var(--text-sm);font-weight:var(--weight-semibold);justify-self:start}.slide-up-panel__close:hover,.slide-up-panel__back:hover{color:var(--color-text)}.slide-up-panel__content{padding:0 var(--content-padding-x);flex:1;overflow-y:auto}@media (width>=481px){.slide-up-overlay{padding:var(--dialog-overlay-padding);justify-content:center;align-items:center}.slide-up-panel{width:min(calc(100% - (2 * var(--dialog-overlay-padding))), var(--dialog-max-width));max-width:none;height:min(var(--dialog-max-height), 44rem);max-height:var(--dialog-max-height);border-radius:var(--radius-xl);border:var(--border-width) solid var(--color-border);box-shadow:var(--shadow-dialog);animation:dialog-panel-in var(--motion-duration-slow) var(--motion-ease-standard);margin:0}.slide-up-panel--closing{animation:dialog-panel-out var(--motion-duration-base) var(--motion-ease-exit) forwards}.slide-up-panel__header{padding:var(--dialog-padding-y) var(--dialog-padding-x)}.slide-up-panel__title{font-size:var(--text-sm)}.slide-up-panel__content{padding:0 var(--dialog-padding-x)}}.add-log-wizard{max-width:var(--content-max-width);padding:var(--space-5) var(--content-padding-x);gap:var(--space-4);flex-direction:column;margin:0 auto;display:flex;position:relative}.add-log-wizard__progress-wrap{gap:var(--space-1);flex-direction:column;display:flex}.add-log-wizard__progress-track{border-radius:var(--radius-full);background:var(--color-bg-subtle);height:.5rem;overflow:hidden}.add-log-wizard__progress-fill{background:linear-gradient(90deg, var(--color-primary), var(--color-accent));height:100%;transition:width var(--motion-duration-base) var(--motion-ease-standard)}.add-log-wizard__progress-label{font-size:var(--text-2xs);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider)}.add-log-wizard__step-card{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-card);padding:var(--space-4);gap:var(--space-3);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.add-log-wizard__prompt{font-size:var(--text-base);line-height:var(--leading-tight);font-weight:var(--weight-semibold);color:var(--color-text);margin:0}.add-log-wizard__step-body{gap:var(--space-3);flex-direction:column;display:flex}.add-log-wizard__hint-text{font-size:var(--text-xs);color:var(--color-text-subtle);margin:0}.add-log-wizard__date-meta{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-1) 0;display:flex}.add-log-wizard__date-meta-text{align-items:center;gap:var(--space-2);display:flex}.add-log-wizard__date-meta-label{font-size:var(--text-xs);color:var(--color-text-subtle)}.add-log-wizard__date-meta-value{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-subtle)}.add-log-wizard__date-meta-edit{color:var(--color-accent);font-size:var(--text-xs);font-weight:var(--weight-semibold);font-family:var(--font-family);cursor:pointer;background:0 0;border:none;padding:0}.add-log-wizard__date-meta-edit:hover{color:var(--color-accent-hover);text-decoration:underline}.add-log-wizard__date-meta-edit:focus-visible{outline:var(--border-width-thick) solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-sm)}.add-log-wizard__date-inline-editor{margin-top:calc(var(--space-2) * -1)}.add-log-wizard__step-body--row{gap:var(--space-3);grid-template-columns:1fr;display:grid}.add-log-wizard__chip-grid{gap:var(--space-2);grid-template-columns:1fr;display:grid}.add-log-wizard__chip{border:var(--border-width-strong) solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-bg);text-align:left;align-items:center;gap:var(--space-2);color:var(--color-text);font-family:var(--font-family);cursor:pointer;flex-direction:row;display:flex}.add-log-wizard__chip-avatar{border-radius:var(--radius-full);width:20px;height:20px;font-size:.5rem;font-weight:var(--weight-semibold);object-fit:cover;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.add-log-wizard__chip-avatar--proxy{background:var(--color-bg-subtle);border:var(--border-width) solid var(--color-border);color:var(--color-text-subtle)}.add-log-wizard__chip-avatar--linked{background:color-mix(in srgb, var(--color-primary) 15%, var(--color-bg-card));border:var(--border-width) solid color-mix(in srgb, var(--color-primary) 30%, transparent);color:var(--color-primary)}.add-log-wizard__chip-avatar--photo{border:var(--border-width) solid var(--color-border)}.add-log-wizard__chip:hover{border-color:var(--color-focus)}.add-log-wizard__chip--active{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 9%, var(--color-bg))}.add-log-wizard__chip-label{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.add-log-wizard__chip-description{font-size:var(--text-xs);color:var(--color-text-subtle)}.add-log-wizard__link-button{background:color-mix(in srgb, var(--color-accent) 8%, var(--color-bg-subtle));border:var(--border-width-strong) solid var(--color-border);border-radius:var(--radius-full);padding:var(--space-2) var(--space-3);align-items:center;gap:var(--space-1);width:fit-content;color:var(--color-text);font-size:var(--text-sm);line-height:var(--leading-tight);font-weight:var(--weight-medium);text-align:left;font-family:var(--font-family);cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-ease-standard), border-color var(--motion-duration-fast) var(--motion-ease-standard), color var(--motion-duration-fast) var(--motion-ease-standard), transform var(--motion-duration-fast) var(--motion-ease-standard);display:inline-flex}.add-log-wizard__link-button:hover{border-color:var(--color-focus);background:color-mix(in srgb, var(--color-focus) 10%, var(--color-bg-subtle))}.add-log-wizard__link-button:active{transform:translateY(1px)}.add-log-wizard__link-button:focus-visible{outline:var(--border-width-thick) solid var(--color-focus);outline-offset:1px}.add-log-wizard__inline-adder{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);border:var(--border-width-strong) solid var(--color-focus);background:var(--color-bg-subtle);flex-direction:column;display:flex}.add-log-wizard__inline-adder-actions{gap:var(--space-2);display:flex}.add-log-wizard__summary{gap:var(--space-2);flex-direction:column;display:flex}.add-log-wizard__review-date-picker-proxy{opacity:0;pointer-events:none;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute}.add-log-wizard__summary-groups{gap:var(--space-3);flex-direction:column;display:flex}.add-log-wizard__summary-group{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);box-shadow:var(--shadow-card);flex-direction:column;gap:0;display:flex;overflow:hidden}.add-log-wizard__summary-group-title{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--color-text-subtle);background:var(--color-bg-subtle);border-bottom:var(--border-width) solid var(--color-border);margin:0}.add-log-wizard__confirmation{gap:var(--space-2);flex-direction:column;display:flex}.add-log-wizard__summary-hint{font-size:var(--text-xs);color:var(--color-text-subtle);margin:0}.add-log-wizard__confirmation-hint{font-size:var(--text-sm);color:var(--color-text-subtle);margin:0}.add-log-wizard__summary p{font-size:var(--text-sm);color:var(--color-text);margin:0}.add-log-wizard__summary-row{align-items:center;column-gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:0;grid-template-columns:minmax(0,1fr) minmax(0,auto) auto;display:grid}.add-log-wizard__summary-row+.add-log-wizard__summary-row{border-top:var(--border-width) solid var(--color-border)}.add-log-wizard__summary-row:hover{background:color-mix(in srgb, var(--color-focus) 6%, var(--color-bg-card))}.add-log-wizard__summary-row:focus-visible{outline:var(--border-width-thick) solid var(--color-focus);outline-offset:-1px}.add-log-wizard__summary-row--static{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);cursor:default}.add-log-wizard__summary-row--static+.add-log-wizard__summary-row--static{border-top:var(--border-width) solid var(--color-border)}.add-log-wizard__summary-row--static:hover{background:var(--color-bg)}.add-log-wizard__saved-preview{gap:var(--space-2);flex-direction:column;max-height:13.5rem;display:flex;overflow:auto}.add-log-wizard__summary-label{font-size:var(--text-xs);color:var(--color-text-subtle);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.add-log-wizard__summary-value{font-size:var(--text-sm);color:var(--color-text);font-weight:var(--weight-medium);text-overflow:ellipsis;white-space:nowrap;text-align:right;max-width:100%;overflow:hidden}.add-log-wizard__summary-chevron{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-subtle);flex-shrink:0}.add-log-wizard__summary-row:hover .add-log-wizard__summary-chevron{color:var(--color-accent)}.add-log-wizard__review-inline-editor{gap:var(--space-2);padding:0 var(--space-3) var(--space-3);border-top:var(--border-width) solid var(--color-border);background:color-mix(in srgb, var(--color-focus) 4%, var(--color-bg-subtle));flex-direction:column;display:flex}.add-log-wizard__review-inline-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.add-log-wizard__review-inline-error{font-size:var(--text-xs);color:var(--color-danger);margin:0}.add-log-wizard__actions{justify-content:flex-end;gap:var(--space-2);display:flex}@keyframes form-spinner-spin{to{transform:rotate(360deg)}}.add-log-wizard__saving-spinner{border:3px solid color-mix(in srgb, var(--color-accent) 20%, transparent);border-top-color:var(--color-accent);border-radius:var(--radius-full);align-self:center;width:2rem;height:2rem;animation:.7s linear infinite form-spinner-spin}.add-log-wizard__overlay{padding:var(--space-4);background:color-mix(in srgb, var(--color-bg) 50%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.add-log-wizard__dialog{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-card);width:min(34rem,100%);box-shadow:var(--shadow-card);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}@keyframes add-log-success-dialog-in{0%{opacity:0;transform:translateY(.5rem)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes add-log-success-icon-pop{0%{transform:scale(.82)}55%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes add-log-success-ring-pulse{0%{opacity:.5;transform:scale(.86)}to{opacity:0;transform:scale(1.22)}}@keyframes add-log-success-check-draw{0%{stroke-dashoffset:24px}to{stroke-dashoffset:0}}@keyframes add-log-success-content-in{0%{opacity:0;transform:translateY(.2rem)}to{opacity:1;transform:translateY(0)}}.add-log-wizard__dialog--success{animation:add-log-success-dialog-in var(--motion-duration-slow) var(--motion-ease-standard)}.add-log-wizard__dialog-success-icon{border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-success) 14%, var(--color-bg-subtle));border:var(--border-width) solid color-mix(in srgb, var(--color-success) 36%, var(--color-border));width:3rem;height:3rem;animation:add-log-success-icon-pop var(--motion-duration-slow) var(--motion-ease-standard);place-items:center;margin:0 auto;display:grid;position:relative}.add-log-wizard__dialog--success .add-log-wizard__dialog-success-icon:after{content:"";border-radius:inherit;border:var(--border-width-thick) solid color-mix(in srgb, var(--color-success) 42%, transparent);animation:add-log-success-ring-pulse var(--motion-duration-slow) var(--motion-ease-standard);pointer-events:none;position:absolute;inset:0}.add-log-wizard__dialog-success-icon svg{width:1.4rem;height:1.4rem;stroke:var(--color-success);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;fill:none}.add-log-wizard__dialog--success .add-log-wizard__dialog-success-icon path{stroke-dasharray:24;stroke-dashoffset:24px;animation:add-log-success-check-draw var(--motion-duration-base) var(--motion-ease-standard) 60ms forwards}.add-log-wizard__dialog-title{font-size:var(--text-base);line-height:var(--leading-tight);color:var(--color-text);text-align:center;margin:0}.add-log-wizard__dialog--success .add-log-wizard__dialog-title{animation:add-log-success-content-in var(--motion-duration-base) var(--motion-ease-standard) 30ms both}.add-log-wizard__dialog-text{font-size:var(--text-sm);color:var(--color-text-subtle);text-align:center;margin:0}.add-log-wizard__dialog--success .add-log-wizard__dialog-text{animation:add-log-success-content-in var(--motion-duration-base) var(--motion-ease-standard) 80ms both}.add-log-wizard__dialog-actions{gap:var(--space-2);display:flex}.add-log-wizard__dialog--success .add-log-wizard__dialog-actions{animation:add-log-success-content-in var(--motion-duration-base) var(--motion-ease-standard) .12s both}.add-log-wizard__dialog-actions .btn{flex:1}.add-log-wizard__auto-advance-note{font-size:var(--text-xs);color:var(--color-text-subtle);align-self:center}@media (prefers-reduced-motion:reduce){.add-log-wizard__dialog--success,.add-log-wizard__dialog--success .add-log-wizard__dialog-success-icon,.add-log-wizard__dialog--success .add-log-wizard__dialog-success-icon:after,.add-log-wizard__dialog--success .add-log-wizard__dialog-success-icon path,.add-log-wizard__dialog--success .add-log-wizard__dialog-title,.add-log-wizard__dialog--success .add-log-wizard__dialog-text,.add-log-wizard__dialog--success .add-log-wizard__dialog-actions{animation:none}}@media (width>=481px){.add-log-wizard{padding:var(--space-6) 0}.add-log-wizard__step-body--row{grid-template-columns:1fr 1fr}.add-log-wizard__chip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.proof-attachment{gap:var(--space-3);flex-direction:column;display:flex}.proof-attachment__zone{border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-5) var(--space-4);align-items:center;gap:var(--space-3);background:var(--color-bg-subtle);flex-direction:column;transition:border-color .15s;display:flex}.proof-attachment__zone--disabled{opacity:.55;pointer-events:none}.proof-attachment__zone-content{gap:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.proof-attachment__upload-btn,.proof-attachment__camera-btn{min-width:7rem}.proof-attachment__hint{font-size:var(--text-xs);color:var(--color-text-subtle);text-align:center;margin:0}.proof-attachment__hidden-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.proof-attachment__file-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.proof-attachment__file-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-bg-card);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);display:flex}.proof-attachment__preview-card{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);overflow:hidden}.proof-attachment__image-preview{background:var(--color-bg-subtle);border-bottom:var(--border-width) solid var(--color-border);justify-content:center;align-items:center;max-height:12rem;display:flex;overflow:hidden}.proof-attachment__preview-img{object-fit:contain;width:100%;max-height:12rem;display:block}.proof-attachment__file-footer{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);display:flex}.proof-attachment__pdf-icon{background:var(--color-bg-subtle);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);width:2.5rem;height:2.5rem;font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-subtle);letter-spacing:var(--letter-spacing-wider);flex-shrink:0;justify-content:center;align-items:center;display:flex}.proof-attachment__file-info{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.proof-attachment__file-name{font-size:var(--text-sm);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.proof-attachment__file-size{font-size:var(--text-xs);color:var(--color-text-subtle)}.proof-attachment__remove-btn{padding:var(--space-1);cursor:pointer;font-size:var(--text-sm);color:var(--color-text-subtle);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;line-height:1;transition:color .1s}.proof-attachment__remove-btn:hover:not(:disabled){color:var(--color-danger)}.proof-attachment__remove-btn:disabled{opacity:.4;cursor:not-allowed}.proof-attachment__limit-notice{font-size:var(--text-xs);color:var(--color-text-subtle);text-align:center;padding:var(--space-2) 0;margin:0}.period-controls__bar{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);box-shadow:var(--shadow-card);display:flex}.period-controls__bar--panel{margin:var(--space-3) var(--content-padding-x) var(--space-3);box-shadow:none}[data-theme=dark] .period-controls__bar{box-shadow:var(--shadow-card)}.period-controls__period-filter{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.period-controls__period-label{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);white-space:nowrap}.period-controls__period-dropdown{width:var(--period-dropdown-width,auto);min-width:0}.period-controls__period-dropdown .dropdown__value{text-align:center}.period-controls__divider{width:var(--border-width);background:var(--color-border);margin:var(--space-1) var(--space-0);flex-shrink:0;align-self:stretch;display:block}.period-controls__scope{align-items:center;gap:var(--space-2);min-width:0;font-size:var(--text-xs);flex:1;display:flex}.period-controls__scope:before{content:"";width:var(--indicator-dot-size);height:var(--indicator-dot-size);border-radius:var(--radius-full);flex-shrink:0;display:block}.period-controls__scope--current:before{background:var(--color-success)}.period-controls__scope--historical:before{background:var(--color-warning)}.period-controls__scope-text{color:var(--color-text-subtle);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.period-controls__scope--historical .period-controls__scope-text{color:var(--color-warning)}.period-controls__banner{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);border:var(--border-width) solid color-mix(in srgb, var(--color-warning) 40%, var(--color-border));border-left:var(--border-width-thick) solid var(--color-warning);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-warning) 10%, var(--color-bg-card));box-shadow:var(--shadow-banner);flex-wrap:wrap;display:flex}.period-controls__banner--panel{margin:0 var(--content-padding-x) var(--space-3);border-radius:var(--radius-md)}.period-controls__banner__message{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text);min-width:0}.period-controls__banner__action{background:color-mix(in srgb, var(--color-warning) 15%, var(--color-bg-card));border:var(--border-width) solid color-mix(in srgb, var(--color-warning) 45%, var(--color-border));border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);color:var(--color-text);font-size:var(--text-xs);font-weight:var(--weight-semibold);font-family:var(--font-family);cursor:pointer;white-space:nowrap;flex-shrink:0}.period-controls__banner__action:hover{background:color-mix(in srgb, var(--color-warning) 22%, var(--color-bg-card))}@media (width<=480px){.period-controls__bar{gap:var(--space-2);padding:var(--space-2)}.period-controls__bar--panel{margin:var(--space-2) var(--content-padding-x) var(--space-3)}}@media (width>=481px){.period-controls__bar--panel{margin:var(--dialog-padding-y) var(--dialog-padding-x) var(--space-4)}}.dropdown{display:inline-block;position:relative}.dropdown__trigger{justify-content:space-between;align-items:center;gap:var(--space-2);background:var(--color-bg-card);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);width:100%;min-width:0;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;text-align:left;white-space:nowrap;transition:border-color var(--motion-duration-fast) ease;font-family:inherit;display:flex}.dropdown__trigger:hover,.dropdown--open .dropdown__trigger{border-color:var(--color-border-strong)}.dropdown__trigger:focus{outline:none}.dropdown__trigger:focus-visible{outline:var(--border-width-thick) solid var(--color-focus);outline-offset:2px}.dropdown__chevron{border-left:4px solid #0000;border-right:4px solid #0000;border-top:5px solid var(--color-text-subtle);width:0;height:0;transition:transform var(--motion-duration-fast) ease;flex-shrink:0}.dropdown--open .dropdown__chevron{transform:rotate(180deg)}.dropdown__value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dropdown__list{background:var(--color-bg-card);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-1) 0;z-index:400;max-height:var(--dropdown-max-height);margin:0;list-style:none;position:fixed;overflow-y:auto}.dropdown__option{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;white-space:nowrap;font-family:inherit}.dropdown__option--active{background:var(--color-bg-subtle)}.dropdown__option--selected{font-weight:var(--weight-semibold);color:var(--color-primary)}.type-badge{white-space:nowrap}.type-badge--expense{background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary)}.type-badge--contribution{background:color-mix(in srgb, var(--color-success) 12%, transparent);color:var(--color-success)}.expense-log-list__empty{font-size:var(--text-sm);color:var(--color-text-subtle);text-align:center;padding:var(--space-10) 0}.expense-log-table-wrapper{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-card);box-shadow:var(--shadow-card);overflow-x:auto}.expense-log-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.expense-log-table--preview{min-width:var(--expense-log-preview-table-min-width)}.expense-log-table thead tr{background:var(--color-bg-subtle);border-bottom:var(--border-width-strong) solid var(--color-border)}.expense-log-table th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);white-space:nowrap}.expense-log-table tbody tr{border-bottom:var(--border-width) solid var(--color-border)}.expense-log-table tbody tr:last-child{border-bottom:none}.expense-log-table tbody tr:hover{background:var(--color-bg-subtle)}.expense-log-table__row--voided td{opacity:.5}.expense-log-table__void-badge{margin-left:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger);white-space:nowrap;cursor:help;display:inline-block}.expense-log-table__correction-badge{margin-left:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-primary) 10%, transparent);color:var(--color-primary);white-space:nowrap;display:inline-block}.expense-log-table td{padding:var(--space-3) var(--space-4);color:var(--color-text);vertical-align:middle}.expense-log-table__col-date,.expense-log-table__col-type{white-space:nowrap}.expense-log-table--preview .expense-log-table__col-date{width:var(--expense-log-preview-date-width)}.expense-log-table--preview .expense-log-table__col-type{width:var(--expense-log-preview-type-width)}.expense-log-table--preview .expense-log-table__col-description{min-width:var(--expense-log-preview-description-min-width)}.expense-log-table--preview .expense-log-table__amount-col,.expense-log-table--preview .expense-log-table__amount{width:var(--expense-log-preview-amount-width)}.expense-log-table__col-description,.expense-log-table__col-category,.expense-log-table__col-expense-type,.expense-log-table__col-member,.expense-log-table__col-notes{min-width:0}.expense-log-table__type-cell{align-items:center;display:inline-flex}.expense-log-table__type-text{display:none}.expense-log-table__type-icon{font-size:1em;line-height:1}.expense-log-table__amount-col{text-align:right!important}.expense-log-table__amount{text-align:right;font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;white-space:nowrap}.expense-log-table__notes{color:var(--color-text-subtle);font-size:var(--text-xs)}.expense-log-table__dash{color:var(--color-text-subtle)}.expense-log-table__receipt-link{color:var(--color-accent);font-size:var(--text-xs);font-weight:var(--weight-medium)}.expense-log-table__receipt-link:hover{color:var(--color-accent-hover)}.expense-log-table__proof-badge{font-size:var(--text-xs);color:var(--color-text-subtle)}.expense-log-table__preview-content{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.expense-log-table__preview-primary{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text)}.expense-log-table__preview-secondary{font-size:var(--text-xs);color:var(--color-text-subtle)}@media (width<=640px){.expense-log-table{font-size:var(--text-xs)}.expense-log-table--preview{min-width:var(--expense-log-preview-mobile-table-min-width)}.expense-log-table th{padding:var(--space-2) var(--space-3);font-size:var(--text-2xs)}.expense-log-table td{padding:var(--space-2) var(--space-3)}.expense-log-table--preview .expense-log-table__col-date{width:var(--expense-log-preview-mobile-date-width);padding-right:var(--expense-log-preview-mobile-date-gap)}.expense-log-table--preview .expense-log-table__col-type{width:var(--expense-log-preview-mobile-type-width);padding-left:var(--expense-log-preview-mobile-type-left-gap);padding-right:var(--expense-log-preview-mobile-type-right-gap)}.expense-log-table--preview .expense-log-table__col-description{min-width:var(--expense-log-preview-mobile-description-min-width);padding-left:var(--expense-log-preview-mobile-description-gap)}.expense-log-table--preview .expense-log-table__amount-col,.expense-log-table--preview .expense-log-table__amount{width:var(--expense-log-preview-mobile-amount-width)}.expense-log-table__type-badge{display:none}.expense-log-table__type-text{align-items:center;gap:var(--space-1);font-size:var(--text-2xs);font-weight:var(--weight-semibold);white-space:nowrap;display:inline-flex}.expense-log-table__type-text--expense{color:var(--color-primary)}.expense-log-table__type-text--contribution{color:var(--color-success)}.expense-log-table__amount{font-size:var(--text-xs)}.expense-log-table__preview-content{gap:0}.expense-log-table__preview-primary{font-size:var(--text-xs)}.expense-log-table__preview-secondary,.expense-log-table__notes,.expense-log-table__proof-badge,.expense-log-table__receipt-link{font-size:var(--text-2xs)}}.expense-log-list--preview .expense-log-table-wrapper{box-shadow:none;background:0 0;border:none;border-radius:0}.expense-log-list--preview .expense-log-table thead tr{background:0 0}.expense-log-list--preview .expense-log-table tbody tr{transition:none}.expense-log-list--preview .expense-log-table tbody td{transition:background-color var(--motion-duration-fast) ease, color var(--motion-duration-fast) ease}.expense-log-list--preview .expense-log-table tbody tr:hover{background:0 0}.expense-log-list--preview .expense-log-table tbody tr:hover td{background:color-mix(in srgb, var(--color-bg-subtle) 72%, transparent)}.expense-log-list--preview .expense-log-table tbody tr:active td{background:color-mix(in srgb, var(--color-primary) 5%, var(--color-bg-subtle))}.expense-log-list--preview .expense-log-table tbody tr:hover td:first-child,.expense-log-list--preview .expense-log-table tbody tr:active td:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.expense-log-list--preview .expense-log-table tbody tr:hover td:last-child,.expense-log-list--preview .expense-log-table tbody tr:active td:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.expense-log-list--preview .expense-log-table th:first-child,.expense-log-list--preview .expense-log-table td:first-child{padding-left:var(--expense-log-preview-edge-inset)}.expense-log-list--preview .expense-log-table th:last-child,.expense-log-list--preview .expense-log-table td:last-child{padding-right:var(--expense-log-preview-edge-inset)}.expense-log-list--preview .expense-log-table__col-type{padding-right:var(--expense-log-preview-type-gap)}.expense-log-list--preview .expense-log-table__col-description{padding-left:var(--expense-log-preview-description-gap)}@media (width<=640px){.expense-log-list--preview .expense-log-table tbody tr:hover td:first-child,.expense-log-list--preview .expense-log-table tbody tr:active td:first-child{border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm)}.expense-log-list--preview .expense-log-table tbody tr:hover td:last-child,.expense-log-list--preview .expense-log-table tbody tr:active td:last-child{border-top-right-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}.expense-log-list--preview .expense-log-table th:first-child,.expense-log-list--preview .expense-log-table td:first-child{padding-left:var(--expense-log-preview-mobile-edge-inset)}.expense-log-list--preview .expense-log-table th:last-child,.expense-log-list--preview .expense-log-table td:last-child{padding-right:var(--expense-log-preview-mobile-edge-inset)}}.expense-log-table__col-recorder{white-space:nowrap;width:12rem}.recorder-badge{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);display:inline-flex}.recorder-badge__avatar{border-radius:var(--radius-full);background:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;overflow:hidden}.recorder-badge__avatar img{object-fit:cover;width:100%;height:100%;display:block}.recorder-badge__initials{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-inverse);line-height:1}.recorder-badge__name{white-space:nowrap;text-overflow:ellipsis;max-width:10rem;overflow:hidden}.log-table-wrapper{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-card);box-shadow:var(--shadow-card);overflow-x:auto}.log-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.log-table thead tr{background:var(--color-bg-subtle);border-bottom:var(--border-width-strong) solid var(--color-border)}.log-table th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);white-space:nowrap}.log-table tbody tr{border-bottom:var(--border-width) solid var(--color-border)}.log-table tbody tr:last-child{border-bottom:none}.log-table tbody tr:hover{background:var(--color-bg-subtle)}.log-table td{padding:var(--space-3) var(--space-4);color:var(--color-text);vertical-align:middle}.log-table__row--voided td{opacity:.5}.log-table__badge--void{margin-left:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger);white-space:nowrap;cursor:help;display:inline-block}.log-table__badge--correction{margin-left:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-primary) 10%, transparent);color:var(--color-primary);white-space:nowrap;display:inline-block}.log-table__col-date{white-space:nowrap}.log-table__col-description,.log-table__col-category,.log-table__col-expense-type,.log-table__col-member,.log-table__col-notes{min-width:0}.log-table__col-member{white-space:nowrap}.log-table__amount{text-align:right;font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;white-space:nowrap}.log-table__amount--income{color:var(--color-success);text-align:right;font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;white-space:nowrap}.log-table__notes{color:var(--color-text-subtle);font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis;max-width:120px;display:block;overflow:hidden}.log-table__proof{font-size:var(--text-xs);color:var(--color-text-subtle)}.log-table__dash{color:var(--color-text-subtle)}.log-table__receipt-link{color:var(--color-accent);font-size:var(--text-xs);font-weight:var(--weight-medium)}.log-table__receipt-link:hover{color:var(--color-accent-hover)}.log-table__empty{font-size:var(--text-sm);color:var(--color-text-subtle);text-align:center;padding:var(--space-10) 0}@media (width<=640px){.log-table{font-size:var(--text-xs)}.log-table th{padding:var(--space-2) var(--space-3);font-size:var(--text-2xs)}.log-table td{padding:var(--space-2) var(--space-3)}.log-table__amount{font-size:var(--text-xs)}.log-table__notes{font-size:var(--text-2xs);max-width:80px}.log-table__proof,.log-table__receipt-link{font-size:var(--text-2xs)}}.context-strip{font-size:var(--text-sm);color:var(--color-text-subtle);padding:var(--space-2) var(--space-3);background:var(--color-bg-subtle);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);margin:0}.log-history{padding:var(--space-6) var(--content-padding-x);gap:var(--space-4);flex-direction:column;display:flex}@media (width>=481px){.log-history{padding:0 0 var(--space-6)}}.log-history--modal{padding-top:0;padding-bottom:0}.log-history--modal .log-filters{top:0}@media (width<=480px){.log-history--modal .log-filters{margin-top:0}}.log-filters{gap:var(--space-3);top:calc(var(--header-height) + var(--subtab-height));z-index:80;background:var(--color-bg);border-bottom:var(--border-width) solid var(--color-border);padding:var(--space-3) 0;flex-wrap:wrap;display:flex;position:sticky}@media (width<=480px){.log-filters{padding:var(--space-3) var(--content-padding-x);margin:calc(-1 * var(--space-6)) calc(-1 * var(--content-padding-x)) 0;grid-template-columns:1fr 1fr;display:grid}}.log-filters .dropdown{min-width:10rem}.log-filters .dropdown__trigger{width:100%}@media (width<=480px){.log-filters .dropdown{width:100%;min-width:0}}.member-picker{width:100%;display:block;position:relative}.member-picker__trigger{align-items:center;gap:var(--space-2);background:var(--color-bg-subtle);border:var(--border-width-strong) solid var(--color-border);border-radius:var(--radius-md);width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-family:var(--font-family);color:var(--color-text);cursor:pointer;text-align:left;transition:border-color var(--motion-duration-fast);display:flex}.member-picker__trigger:hover,.member-picker--open .member-picker__trigger{border-color:var(--color-border-strong)}.member-picker__trigger:focus{outline:none}.member-picker__trigger:focus-visible{outline:var(--border-width-thick) solid var(--color-focus);outline-offset:2px}.member-picker__trigger-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.member-picker__placeholder{color:var(--color-text-subtle);font-size:var(--text-sm);flex:1}.member-picker__chevron{border-left:4px solid #0000;border-right:4px solid #0000;border-top:5px solid var(--color-text-subtle);width:0;height:0;transition:transform var(--motion-duration-fast) ease;flex-shrink:0;margin-left:auto}.member-picker--open .member-picker__chevron{transform:rotate(180deg)}.member-picker__avatar{border-radius:var(--radius-full);font-weight:var(--weight-semibold);font-family:var(--font-family);object-fit:cover;flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex;overflow:hidden}.member-picker__avatar--proxy{background:var(--color-bg-subtle);border:var(--border-width) solid var(--color-border);color:var(--color-text-subtle)}.member-picker__avatar--linked{background:color-mix(in srgb, var(--color-primary) 15%, var(--color-bg-card));border:var(--border-width) solid color-mix(in srgb, var(--color-primary) 30%, transparent);color:var(--color-primary)}.member-picker__avatar--photo{border:var(--border-width) solid var(--color-border)}.member-picker__list{background:var(--color-bg-card);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-1) 0;z-index:400;max-height:var(--dropdown-max-height);margin:0;list-style:none;position:fixed;overflow-y:auto}.member-picker__option{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;display:flex}.member-picker__option--active{background:var(--color-bg-subtle)}.member-picker__option--selected .member-picker__option-name{font-weight:var(--weight-semibold);color:var(--color-primary)}.member-picker__option-text{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.member-picker__option-name{font-size:var(--text-sm);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.member-picker__option-email{font-size:var(--text-2xs);color:var(--color-text-subtle);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.log-review-card{gap:var(--space-3);flex-direction:column;display:flex}.log-review-card__group{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);box-shadow:var(--shadow-card);overflow:hidden}.log-review-card__group-title{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--color-text-subtle);background:var(--color-bg-subtle);border-bottom:var(--border-width) solid var(--color-border);margin:0}.log-review-card__row{align-items:baseline;column-gap:var(--space-4);padding:var(--space-2) var(--space-3);grid-template-columns:minmax(0,auto) minmax(0,1fr);display:grid}.log-review-card__row+.log-review-card__row{border-top:var(--border-width) solid var(--color-border)}.log-review-card__label{font-size:var(--text-xs);color:var(--color-text-subtle);white-space:nowrap}.log-review-card__value{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);text-align:right;align-items:flex-end;gap:var(--space-1);flex-direction:column;display:flex}.log-review-card__link{color:var(--color-primary);font-size:var(--text-sm);text-decoration:none}.log-review-card__link:hover{text-decoration:underline}.log-review-card__muted{font-size:var(--text-xs);color:var(--color-text-subtle);font-style:italic;font-weight:var(--weight-normal);text-align:right}.log-review-card__badge--void{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger);white-space:nowrap}.log-review-card__badge--correction{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-primary) 10%, transparent);color:var(--color-primary);white-space:nowrap}.log-detail{padding:var(--space-4);gap:var(--space-5);flex-direction:column;display:flex}.log-detail__fields{flex-direction:column;margin:0;padding:0;display:flex}.log-detail__field{justify-content:space-between;align-items:baseline;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--color-border);display:flex}.log-detail__field:last-child{border-bottom:none}.log-detail__field dt{font-size:var(--text-xs);color:var(--color-text-subtle);font-weight:var(--weight-semibold);white-space:nowrap;flex-shrink:0}.log-detail__field dd{font-size:var(--text-sm);color:var(--color-text);text-align:right;align-items:flex-end;gap:var(--space-1);flex-direction:column;margin:0;display:flex}.log-detail__readonly-note{font-size:var(--text-xs);color:var(--color-text-subtle);text-align:right;font-style:italic}.log-detail__link{color:var(--color-primary);text-decoration:none}.log-detail__link:hover{text-decoration:underline}.log-detail__actions{justify-content:flex-end;display:flex}.log-detail__edit-btn{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-primary);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;transition:background .1s}.log-detail__edit-btn:hover{background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.log-detail__loading{font-size:var(--text-sm);color:var(--color-text-subtle);padding:var(--space-4) 0}.log-detail__form{gap:var(--space-4);flex-direction:column;display:flex}.log-detail__form-field{gap:var(--space-1);flex-direction:column;display:flex}.log-detail__form-field label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-subtle)}.log-detail__form-field input,.log-detail__form-field select,.log-detail__form-field textarea{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);box-sizing:border-box;width:100%}.log-detail__form-field textarea{resize:vertical;min-height:80px;font-family:inherit}.log-detail__field-error{font-size:var(--text-xs);color:var(--color-danger);margin:var(--space-1) 0 0}.log-detail__form-readonly{padding:var(--space-3);background:color-mix(in srgb, var(--color-text-subtle) 6%, transparent);border-radius:var(--radius-md);gap:var(--space-2);flex-direction:column;display:flex}.log-detail__form-readonly-row{justify-content:space-between;align-items:center;display:flex}.log-detail__form-readonly-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-subtle)}.log-detail__form-readonly-value{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.log-detail__save-error{font-size:var(--text-xs);color:var(--color-danger);margin:0}.log-detail__form-actions{justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-2);display:flex}.log-detail__cancel-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-border);color:var(--color-text-subtle);font-size:var(--text-sm);cursor:pointer;background:0 0}.log-detail__cancel-btn:hover:not(:disabled){background:color-mix(in srgb, var(--color-text-subtle) 8%, transparent)}.log-detail__save-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:none;transition:opacity .1s}.log-detail__save-btn:hover:not(:disabled){opacity:.88}.log-detail__save-btn:disabled,.log-detail__cancel-btn:disabled{opacity:.45;cursor:default}.log-detail__actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.log-detail__correct-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-primary);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;transition:background .1s}.log-detail__correct-btn:hover{background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.log-detail__void-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-danger);color:var(--color-danger);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;transition:background .1s}.log-detail__void-btn:hover{background:color-mix(in srgb, var(--color-danger) 8%, transparent)}.log-detail__void-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger);white-space:nowrap}.log-detail__correction-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-primary) 10%, transparent);color:var(--color-primary);white-space:nowrap}.log-detail__void-reason{color:var(--color-text-subtle);font-style:italic}.log-detail__void-warning{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-danger) 8%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-danger) 20%, transparent);gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);flex-direction:column;display:flex}.log-detail__void-warning p{margin:0}.log-detail__void-confirm-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-danger);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:none;transition:opacity .1s}.log-detail__void-confirm-btn:hover:not(:disabled){opacity:.88}.log-detail__void-confirm-btn:disabled{opacity:.45;cursor:default}.log-detail__correction-note{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-primary) 6%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-primary) 18%, transparent);font-size:var(--text-sm);color:var(--color-text)}.log-detail__correction-note p{margin:0}.log-detail__required{color:var(--color-danger)}.log-detail__field-hint{font-size:var(--text-xs);color:var(--color-text-subtle);margin:var(--space-1) 0 0}.log-detail__move-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-border-strong);color:var(--color-text-subtle);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-family:var(--font-family);cursor:pointer;transition:background var(--motion-duration-fast);background:0 0}.log-detail__move-btn:hover{background:color-mix(in srgb, var(--color-text-subtle) 8%, transparent)}.log-detail__transfer-warning{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-warning) 8%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-warning) 25%, transparent);gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-normal);flex-direction:column;display:flex}.log-detail__transfer-warning p{margin:0}.log-detail__transfer-warning-target{font-size:var(--text-xs);color:var(--color-text-subtle)}.log-detail__transfer-confirm-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-text-inverse);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-family:var(--font-family);cursor:pointer;transition:opacity var(--motion-duration-fast);border:none}.log-detail__transfer-confirm-btn:hover:not(:disabled){opacity:.88}.log-detail__transfer-confirm-btn:disabled{opacity:.45;cursor:default}.section-card{background:var(--color-bg-card);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5)}.section-card__header{justify-content:space-between;align-items:center;gap:var(--space-2);padding-bottom:var(--space-3);margin-bottom:var(--space-4);border-bottom:var(--border-width) solid var(--color-border);flex-wrap:wrap;display:flex}.section-card__header--no-divider{border-bottom:none;padding-bottom:0}.section-card__title{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider)}.section-card__divider{border:none;border-top:var(--border-width) solid var(--color-border);margin:var(--space-4) 0 var(--space-3)}.section-card__list{gap:var(--row-list-gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.section-card__info-trigger{margin-top:var(--space-3);justify-content:flex-end;display:flex}.section-card__info-trigger--in-summary{margin-top:var(--space-2);grid-column:1/-1;align-items:center}.section-card__section-header{justify-content:space-between;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.section-card__section-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider)}.section-card__footer{justify-content:flex-end;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:var(--border-width) solid var(--color-border);flex-wrap:wrap;display:flex}.summary-tile-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=481px){.summary-tile-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.summary-tile-grid__tile{gap:var(--space-2);background:var(--color-bg-subtle);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);box-sizing:border-box;flex-direction:column;min-width:0;min-height:5rem;display:flex}.summary-tile-grid__label{font-size:var(--text-2xs);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);word-break:break-word;line-height:var(--leading-tight)}@media (width>=481px){.summary-tile-grid__label{font-size:var(--text-xs);letter-spacing:var(--letter-spacing-wider)}}.summary-tile-grid__value{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text);line-height:var(--leading-tight);font-variant-numeric:tabular-nums}.summary-tile-grid__value--primary{color:var(--color-primary)}.summary-tile-grid__value--success{color:var(--color-success)}.summary-tile-grid__value--warning{color:var(--color-warning)}.summary-tile-grid__value--danger{color:var(--color-danger)}.expenses-tab{gap:var(--space-4);flex-direction:column;display:flex}.expenses-tab__sticky-rail{top:calc(var(--header-height) + var(--space-2));z-index:20;gap:var(--space-2);background:var(--color-bg);flex-direction:column;display:flex;position:sticky}@media (width<=480px){.expenses-tab__sticky-rail{gap:var(--space-1)}}@media (width>=481px){.expenses-tab{padding:0}}.loans-summary__loading{font-size:var(--text-sm);color:var(--color-text-subtle);padding:var(--space-2) 0;margin:0}.loans-summary__members{margin-top:var(--space-4);padding-top:var(--space-4);border-top:var(--border-width) solid var(--color-border)}.loans-summary__members-label{font-size:var(--text-2xs);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);margin-bottom:var(--space-3);display:block}.loans-summary__member-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.loans-summary__member-row{align-items:center;gap:var(--space-3);display:flex}.loans-summary__member-avatar{width:2rem;height:2rem;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.loans-summary__member-name{min-width:0;font-size:var(--text-sm);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.loans-summary__member-balance{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.loans-overview__filters{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.loans-overview__filter-btn{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:var(--border-width) solid var(--color-border);color:var(--color-text-subtle);font-size:var(--text-sm);font-weight:var(--weight-medium);font-family:var(--font-family);cursor:pointer;transition:background var(--motion-duration-fast) ease, color var(--motion-duration-fast) ease, border-color var(--motion-duration-fast) ease;background:0 0}.loans-overview__filter-btn:hover{border-color:var(--color-border-strong);color:var(--color-text)}.loans-overview__filter-btn--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.loans-overview__filter-btn--active:hover{background:var(--color-primary-hover,var(--color-primary));border-color:var(--color-primary-hover,var(--color-primary));color:var(--color-text-inverse)}.loans-overview__empty{font-size:var(--text-sm);color:var(--color-text-subtle);text-align:center;padding:var(--space-6) 0;margin:0}.loans-overview__list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.loan-card{gap:var(--space-2);background:var(--color-bg-subtle);border:var(--border-width) solid var(--color-border);border-radius:var(--row-card-radius);padding:var(--row-card-padding);flex-direction:column;display:flex}.loan-card__header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.loan-card__names{align-items:baseline;gap:var(--space-1);flex-wrap:wrap;min-width:0;display:flex}.loan-card__borrower{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.loan-card__lender-label{font-size:var(--text-xs);color:var(--color-text-subtle)}.loan-card__lender{font-size:var(--text-sm);color:var(--color-text-subtle)}.loan-card__badges{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.loan-card__type-badge{font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);padding:2px var(--space-2);border-radius:var(--radius-full);border:var(--border-width) solid currentColor;line-height:1.4}.loan-card__type-badge--external{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, transparent);border-color:color-mix(in srgb, var(--color-primary) 30%, transparent)}.loan-card__type-badge--internal{color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 10%, transparent);border-color:color-mix(in srgb, var(--color-accent) 30%, transparent)}.loan-card__priority-badge{font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);padding:2px var(--space-2);border-radius:var(--radius-full);color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-danger) 30%, transparent);line-height:1.4}.loan-card__amounts{align-items:baseline;gap:var(--space-2);display:flex}.loan-card__remaining{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text);font-variant-numeric:tabular-nums}.loan-card__total{font-size:var(--text-xs);color:var(--color-text-subtle);font-variant-numeric:tabular-nums}.loan-card__progress-bar{height:var(--space-2);background:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.loan-card__progress-fill{background:var(--color-primary);border-radius:var(--radius-full);height:100%;transition:width var(--motion-duration-slow) ease}.loan-card__meta{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-subtle);display:flex}.loan-card__schedule{text-transform:capitalize}.loan-card__due-date{font-weight:var(--weight-medium)}.loan-card__status{display:flex}.loan-card__status-chip{font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);padding:2px var(--space-2);border-radius:var(--radius-full);line-height:1.4}.loan-card__status-chip--on-track{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 10%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-success) 30%, transparent)}.loan-card__status-chip--due-soon{color:var(--color-warning,#b45309);background:color-mix(in srgb, var(--color-warning,#b45309) 10%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-warning,#b45309) 30%, transparent)}.loan-card__status-chip--overdue{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-danger) 30%, transparent)}.loan-card__actions{justify-content:flex-end;align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:var(--border-width) solid var(--color-border);margin-top:var(--space-1);display:flex}@media (width>=481px){.loan-card__names{flex-wrap:nowrap}}.recent-logs-card{min-width:0;padding:var(--space-4)}.recent-logs-card .section-card__header{margin-bottom:var(--space-2)}.recent-logs-card__empty{font-size:var(--text-sm);color:var(--color-text-subtle);margin:var(--space-4) 0;text-align:center}.recent-logs-card__list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.recent-logs-card__row{gap:var(--space-1);padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--color-border);flex-direction:column;display:flex}.recent-logs-card__row:last-child{border-bottom:none;padding-bottom:0}.recent-logs-card__meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.recent-logs-card__date{font-size:var(--text-xs);color:var(--color-text-subtle)}.recent-logs-card__badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:2px var(--space-2);border-radius:var(--radius-full)}@media (width>=481px){.recent-logs-card{padding:var(--space-5)}.recent-logs-card .section-card__header{margin-bottom:var(--space-3)}}.loans-recent-feed__row{align-items:flex-start;gap:var(--space-3);padding:var(--space-4) 0;cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-ease-standard);border-radius:var(--radius-sm);flex-direction:row}.loans-recent-feed__row:hover{background:color-mix(in srgb, var(--color-primary) 6%, transparent)}.loans-recent-feed__row:focus-visible{outline:var(--border-width-strong) solid var(--color-focus);outline-offset:-2px}.loans-recent-feed__icon{border-radius:var(--radius-full);width:2.5rem;height:2.5rem;font-size:var(--text-base);font-weight:var(--weight-bold);margin-top:var(--space-1);flex-shrink:0;justify-content:center;align-items:center;display:flex}.loans-recent-feed__icon--active{background:color-mix(in srgb, var(--color-warning) 14%, transparent);color:var(--color-warning)}.loans-recent-feed__icon--paid{background:color-mix(in srgb, var(--color-success) 14%, transparent);color:var(--color-success)}.loans-recent-feed__body{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.loans-recent-feed__headline{font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-normal);margin:0}.loans-recent-feed__actor{font-weight:var(--weight-semibold)}.loans-recent-feed__inline-amount{font-weight:var(--weight-bold);color:var(--color-text)}.loans-recent-feed__subject{font-weight:var(--weight-semibold)}.loans-recent-feed__detail-row{justify-content:space-between;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:flex}.loans-recent-feed__detail{font-size:var(--text-xs);color:var(--color-text-subtle);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.loans-recent-feed__datetime{font-size:var(--text-xs);color:var(--color-text-subtle);white-space:nowrap;flex-shrink:0}.interest-calc__toggle{padding:var(--space-1);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--motion-duration-fast) ease;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.interest-calc__toggle:hover{color:var(--color-primary)}.interest-calc__toggle:focus-visible{outline:var(--border-width-thick) solid var(--color-focus);outline-offset:2px}.interest-calc__toggle-icon{font-size:var(--text-xs);color:var(--color-text-subtle);line-height:1}.interest-calc__body{gap:var(--space-4);flex-direction:column;display:flex}.interest-calc__disclaimer{font-size:var(--text-xs);color:var(--color-text-subtle);margin:0;font-style:italic}.interest-calc__fields{gap:var(--space-3);grid-template-columns:1fr;display:grid}@media (width>=481px){.interest-calc__fields{grid-template-columns:repeat(3,minmax(0,1fr))}}.interest-calc__results{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);flex-direction:column;gap:0;display:flex;overflow:hidden}.interest-calc__result-row{justify-content:space-between;align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-3);display:flex}.interest-calc__result-row+.interest-calc__result-row{border-top:var(--border-width) solid var(--color-border)}.interest-calc__result-label{font-size:var(--text-xs);color:var(--color-text-subtle)}.interest-calc__result-value{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);font-variant-numeric:tabular-nums}.interest-calc__result-value--primary{font-size:var(--text-base);color:var(--color-primary)}.interest-calc__empty{font-size:var(--text-xs);color:var(--color-text-subtle);text-align:center;margin:0}.loan-contract-detail{gap:var(--space-4);flex-direction:column;display:flex}.loan-contract-detail__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.loan-contract-detail__readonly-note{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.loan-contract-detail__form{gap:var(--space-4);flex-direction:column;display:flex}.loan-contract-detail__form-field{gap:var(--space-1);flex-direction:column;display:flex}.loan-contract-detail__form-field label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary)}.loan-contract-detail__textarea{resize:vertical;min-height:72px}.loan-contract-detail__readonly-row{padding:var(--space-2) 0;border-top:var(--border-width) solid var(--color-border);justify-content:space-between;align-items:baseline;display:flex}.loan-contract-detail__readonly-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.loan-contract-detail__readonly-value{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted)}.loan-contract-detail__save-error{font-size:var(--text-sm);color:var(--color-danger);margin:0}.loan-contract-detail__form-actions{gap:var(--space-2);padding-top:var(--space-2);justify-content:flex-end;display:flex}.loan-history{gap:var(--space-4);padding:var(--space-4) var(--content-padding-x);flex-direction:column;display:flex}.loan-history__filters{gap:var(--space-2);flex-direction:column;display:flex}.loan-history__select{width:100%}@media (width>=481px){.loan-history__filters{flex-direction:row}}.loan-history__empty{font-size:var(--text-sm);color:var(--color-text-subtle);text-align:center;padding:var(--space-6) 0;margin:0}.loan-history__empty--error{color:var(--color-danger)}.loan-history__list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.payment-row{gap:var(--space-1);background:var(--color-bg-subtle);border:var(--border-width) solid var(--color-border);border-radius:var(--row-card-radius);padding:var(--row-card-padding);flex-direction:column;display:flex}.payment-row__top{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.payment-row__date{font-size:var(--text-sm);color:var(--color-text-subtle)}.payment-row__amount{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);font-variant-numeric:tabular-nums}.payment-row__meta{align-items:baseline;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-subtle);flex-wrap:wrap;display:flex}.payment-row__loan-label,.payment-row__member{font-weight:var(--weight-medium);color:var(--color-text)}.payment-row__paid-from{color:var(--color-text-subtle);font-style:italic}.payment-row__footer{align-items:center;gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.payment-row__proof{font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);padding:2px var(--space-2);border-radius:var(--radius-full);line-height:1.4}.proof--receipt{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 10%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-success) 30%, transparent)}.proof--alt{color:var(--color-warning,#b45309);background:color-mix(in srgb, var(--color-warning,#b45309) 10%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-warning,#b45309) 30%, transparent)}.proof--none{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-danger) 30%, transparent)}.payment-row__proof-note{font-size:var(--text-xs);color:var(--color-text-subtle);font-style:italic}.payment-row__balance{justify-content:space-between;align-items:baseline;gap:var(--space-2);padding-top:var(--space-2);border-top:var(--border-width) dashed var(--color-border);margin-top:var(--space-1);display:flex}.payment-row__balance-label{font-size:var(--text-xs);color:var(--color-text-subtle)}.payment-row__balance-value{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-subtle);font-variant-numeric:tabular-nums}.payment-row__notes{font-size:var(--text-xs);color:var(--color-text-subtle);margin:var(--space-1) 0 0;line-height:var(--leading-normal)}.payment-row__receipt-link{font-size:var(--text-xs);color:var(--color-accent);font-weight:var(--weight-medium);text-decoration:none}.payment-row__receipt-link:hover{text-decoration:underline}.loan-history__detail{padding:var(--space-4);gap:var(--space-4);flex-direction:column;display:flex}.loan-history__detail-grid{flex-direction:column;gap:0;display:flex}.loan-history__detail-row{justify-content:space-between;align-items:baseline;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border);display:flex}.loan-history__detail-row:last-child{border-bottom:none}.loan-history__detail-row--full{align-items:flex-start;gap:var(--space-1);flex-direction:column}.loan-history__detail-label{font-size:var(--text-sm);color:var(--color-text-subtle);flex-shrink:0}.loan-history__detail-value{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);text-align:right}.loan-history__detail-value--primary{color:var(--color-primary);font-weight:var(--weight-semibold)}.loan-history__detail-actions{justify-content:flex-end;display:flex}.loan-history__detail-recorder{align-items:center;gap:var(--space-3);padding-top:var(--space-2);border-top:var(--border-width) solid var(--color-border);display:flex}.loans-tab{gap:var(--space-4);flex-direction:column;display:flex}.mf-overview__list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.mf-overview__empty{font-size:var(--text-sm);color:var(--color-text-subtle);text-align:center;padding:var(--space-4) 0;margin:0}.mf-overview__card{gap:var(--space-2);padding:var(--row-card-padding);border:var(--border-width) solid var(--color-border);border-radius:var(--row-card-radius);background:var(--color-bg-subtle);flex-direction:column;display:flex}.mf-overview__card--at-risk{border-color:color-mix(in srgb, var(--color-danger) 40%, transparent);background:color-mix(in srgb, var(--color-danger) 4%, var(--color-bg))}.mf-overview__card-header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.mf-overview__member-name{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text)}.mf-overview__at-risk-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-danger) 30%, transparent);padding:2px var(--space-2);border-radius:var(--radius-full);white-space:nowrap}.mf-overview__financials{gap:var(--space-1);border-top:var(--border-width) solid var(--color-border);padding-top:var(--space-2);flex-direction:column;display:flex}.mf-overview__financial-item{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.mf-overview__financial-item--net{padding-top:var(--space-1);border-top:var(--border-width) solid var(--color-border);margin-top:var(--space-1)}.mf-overview__financial-label{font-size:var(--text-xs);color:var(--color-text-subtle)}.mf-overview__financial-item--net .mf-overview__financial-label{font-weight:var(--weight-semibold);color:var(--color-text)}.mf-overview__financial-value{font-size:var(--text-sm);font-weight:var(--weight-medium);font-variant-numeric:tabular-nums}.mf-overview__financial-value--income{color:var(--color-success)}.mf-overview__financial-value--expense{color:var(--color-text-subtle)}.mf-overview__financial-value--positive{color:var(--color-success);font-weight:var(--weight-semibold)}.mf-overview__financial-value--negative{color:var(--color-danger);font-weight:var(--weight-semibold)}.mf-overview__at-risk-note{font-size:var(--text-xs);color:var(--color-danger);line-height:var(--leading-normal);padding:var(--space-1) var(--space-2);background:color-mix(in srgb, var(--color-danger) 6%, transparent);border-radius:var(--radius-sm);margin:0}.mf-overview__history-link{font-size:var(--text-xs);color:var(--color-primary);cursor:pointer;font-family:var(--font-family);background:0 0;border:none;align-self:flex-end;padding:0}.mf-overview__history-link:hover{text-decoration:underline}.mf-detail{padding:var(--space-4);gap:var(--space-5);flex-direction:column;display:flex}.mf-detail__fields{flex-direction:column;margin:0;padding:0;display:flex}.mf-detail__field{justify-content:space-between;align-items:baseline;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--color-border);display:flex}.mf-detail__field:last-child{border-bottom:none}.mf-detail__field dt{font-size:var(--text-xs);color:var(--color-text-subtle);font-weight:var(--weight-semibold);white-space:nowrap;flex-shrink:0}.mf-detail__field dd{font-size:var(--text-sm);color:var(--color-text);text-align:right;align-items:flex-end;gap:var(--space-1);flex-direction:column;margin:0;display:flex}.mf-detail__readonly-note{font-size:var(--text-xs);color:var(--color-text-subtle);text-align:right;font-style:italic}.mf-detail__link{color:var(--color-primary);text-decoration:none}.mf-detail__link:hover{text-decoration:underline}.mf-detail__actions{justify-content:flex-end;display:flex}.mf-detail__edit-btn{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-primary);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;transition:background .1s}.mf-detail__edit-btn:hover{background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.mf-detail__loading{font-size:var(--text-sm);color:var(--color-text-subtle);padding:var(--space-4) 0}.mf-detail__form{gap:var(--space-4);flex-direction:column;display:flex}.mf-detail__form-field{gap:var(--space-1);flex-direction:column;display:flex}.mf-detail__form-field label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-subtle)}.mf-detail__form-field input,.mf-detail__form-field select,.mf-detail__form-field textarea{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);box-sizing:border-box;width:100%}.mf-detail__form-field textarea{resize:vertical;min-height:80px;font-family:inherit}.mf-detail__field-error{font-size:var(--text-xs);color:var(--color-danger);margin:var(--space-1) 0 0}.mf-detail__form-readonly{padding:var(--space-3);background:color-mix(in srgb, var(--color-text-subtle) 6%, transparent);border-radius:var(--radius-md);gap:var(--space-2);flex-direction:column;display:flex}.mf-detail__form-readonly-row{justify-content:space-between;align-items:center;display:flex}.mf-detail__form-readonly-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-subtle)}.mf-detail__form-readonly-value{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.mf-detail__save-error{font-size:var(--text-xs);color:var(--color-danger);margin:0}.mf-detail__form-actions{justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-2);display:flex}.mf-detail__cancel-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-border);color:var(--color-text-subtle);font-size:var(--text-sm);cursor:pointer;background:0 0}.mf-detail__cancel-btn:hover:not(:disabled){background:color-mix(in srgb, var(--color-text-subtle) 8%, transparent)}.mf-detail__save-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:none;transition:opacity .1s}.mf-detail__save-btn:hover:not(:disabled){opacity:.88}.mf-detail__save-btn:disabled,.mf-detail__cancel-btn:disabled{opacity:.45;cursor:default}.mf-detail__actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.mf-detail__correct-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-primary);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;transition:background .1s}.mf-detail__correct-btn:hover{background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.mf-detail__void-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-danger);color:var(--color-danger);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;transition:background .1s}.mf-detail__void-btn:hover{background:color-mix(in srgb, var(--color-danger) 8%, transparent)}.mf-detail__void-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger);white-space:nowrap}.mf-detail__correction-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-primary) 10%, transparent);color:var(--color-primary);white-space:nowrap}.mf-detail__void-reason{color:var(--color-text-subtle);font-style:italic}.mf-detail__void-warning{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-danger) 8%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-danger) 20%, transparent);gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);flex-direction:column;display:flex}.mf-detail__void-warning p{margin:0}.mf-detail__void-confirm-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-danger);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:none;transition:opacity .1s}.mf-detail__void-confirm-btn:hover:not(:disabled){opacity:.88}.mf-detail__void-confirm-btn:disabled{opacity:.45;cursor:default}.mf-detail__correction-note{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-primary) 6%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-primary) 18%, transparent);font-size:var(--text-sm);color:var(--color-text)}.mf-detail__correction-note p{margin:0}.mf-detail__required{color:var(--color-danger)}.mf-detail__field-hint{font-size:var(--text-xs);color:var(--color-text-subtle);margin:var(--space-1) 0 0}.mf-history{gap:var(--space-3);padding:var(--space-3) 0;flex-direction:column;display:flex}.mf-history__empty{padding:var(--space-6) 0;font-size:var(--text-sm);color:var(--color-text-subtle);justify-content:center;align-items:center;display:flex}.mf-history__filter-note{font-size:var(--text-xs);color:var(--color-text-subtle);margin:0}.mf-history__list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.mf-history__row{gap:var(--space-1);padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--color-border);flex-direction:column;display:flex}.mf-history__row:last-child{border-bottom:none}.mf-history__row-meta{align-items:center;gap:var(--space-2);display:flex}.mf-history__date{font-size:var(--text-xs);color:var(--color-text-subtle)}.mf-history__type-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:2px var(--space-2);border-radius:var(--radius-full)}.mf-history__type-badge--income{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 12%, transparent)}.mf-history__type-badge--personal_expense{color:var(--color-text-subtle);background:color-mix(in srgb, var(--color-text-subtle) 10%, transparent)}.mf-history__row-body{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.mf-history__row-info{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.mf-history__member{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.mf-history__category{font-size:var(--text-xs);color:var(--color-text-subtle)}.mf-history__stored-in{font-size:var(--text-xs);color:var(--color-text-subtle);font-style:italic}.mf-history__notes{font-size:var(--text-xs);color:var(--color-text-subtle)}.mf-history__row-right{align-items:flex-end;gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.mf-history__amount{font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.mf-history__amount--income{color:var(--color-success)}.mf-history__amount--expense{color:var(--color-text)}.mf-history__proof{font-size:var(--text-xs);color:var(--color-text-subtle)}.mf-history__row--voided{opacity:.5}.mf-history__void-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger);white-space:nowrap;cursor:help}.mf-history__correction-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-primary) 10%, transparent);color:var(--color-primary);white-space:nowrap}.mf-recent-feed__row{align-items:flex-start;gap:var(--space-3);padding:var(--space-4) 0;cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-ease-standard);border-radius:var(--radius-sm);flex-direction:row}.mf-recent-feed__row:hover{background:color-mix(in srgb, var(--color-primary) 6%, transparent)}.mf-recent-feed__row:focus-visible{outline:var(--border-width-strong) solid var(--color-focus);outline-offset:-2px}.mf-recent-feed__icon{border-radius:var(--radius-full);width:2.5rem;height:2.5rem;font-size:var(--text-base);font-weight:var(--weight-bold);margin-top:var(--space-1);flex-shrink:0;justify-content:center;align-items:center;display:flex}.mf-recent-feed__icon--income{background:color-mix(in srgb, var(--color-success) 14%, transparent);color:var(--color-success)}.mf-recent-feed__icon--expense{background:color-mix(in srgb, var(--color-text-subtle) 14%, transparent);color:var(--color-text-subtle)}.mf-recent-feed__body{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.mf-recent-feed__headline{font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-normal);margin:0}.mf-recent-feed__actor{font-weight:var(--weight-semibold)}.mf-recent-feed__inline-amount{font-weight:var(--weight-bold)}.mf-recent-feed__inline-amount--income{color:var(--color-success)}.mf-recent-feed__inline-amount--expense{color:var(--color-text)}.mf-recent-feed__subject{font-weight:var(--weight-semibold)}.mf-recent-feed__detail-row{justify-content:space-between;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:flex}.mf-recent-feed__detail{font-size:var(--text-xs);color:var(--color-text-subtle);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.mf-recent-feed__datetime{font-size:var(--text-xs);color:var(--color-text-subtle);white-space:nowrap;flex-shrink:0}.mf-tab{gap:var(--space-4);flex-direction:column;display:flex}.mf-tab__sticky-rail{top:calc(var(--header-height) + var(--space-2));z-index:20;gap:var(--space-2);background:var(--color-bg);flex-direction:column;display:flex;position:sticky}@media (width<=480px){.mf-tab__sticky-rail{gap:var(--space-1)}}@media (width>=481px){.mf-tab{padding:0}}.savings-overview__empty{font-size:var(--text-sm);color:var(--color-text-subtle);padding:var(--space-4) 0;text-align:center;margin:0}.savings-overview__list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.savings-overview__card{background:var(--color-bg-subtle);border:var(--border-width) solid var(--color-border);border-radius:var(--row-card-radius);padding:var(--row-card-padding);gap:var(--space-2);flex-direction:column;display:flex}.savings-overview__card--at-risk{border-left:3px solid var(--color-danger)}.savings-overview__card--completed{border-left:3px solid var(--color-success)}.savings-overview__card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.savings-overview__card-title-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.savings-overview__goal-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.savings-overview__member-badge{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-inverse);background:var(--color-accent);border-radius:var(--radius-full);padding:2px var(--space-2);white-space:nowrap;line-height:1.5}.savings-overview__status-chip{font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);border-radius:var(--radius-full);padding:2px var(--space-2);white-space:nowrap;flex-shrink:0;line-height:1.4}.savings-overview__status-chip--on-track{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 10%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-success) 30%, transparent)}.savings-overview__status-chip--at-risk{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-danger) 30%, transparent)}.savings-overview__status-chip--completed{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 10%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-success) 30%, transparent)}.savings-overview__progress-wrap{align-items:center;gap:var(--space-2);display:flex}.savings-overview__progress-track{height:var(--space-2);background:var(--color-border);border-radius:var(--radius-full);flex:1;overflow:hidden}.savings-overview__progress-fill{background:var(--color-primary);border-radius:var(--radius-full);height:100%;transition:width var(--motion-duration-slow) ease}.savings-overview__progress-fill--complete{background:var(--color-success)}.savings-overview__progress-label{font-size:var(--text-xs);color:var(--color-text-subtle);white-space:nowrap;text-align:right;min-width:2.5rem}.savings-overview__amounts{gap:var(--space-4);display:flex}.savings-overview__amount-item{flex-direction:column;gap:2px;display:flex}.savings-overview__amount-label{font-size:var(--text-2xs);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider)}.savings-overview__amount-value{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);font-variant-numeric:tabular-nums}.savings-overview__amount-value--balance{color:var(--color-primary)}.savings-overview__deadline{align-items:baseline;gap:var(--space-2);display:flex}.savings-overview__deadline-label{font-size:var(--text-xs);color:var(--color-text-subtle)}.savings-overview__deadline-value{font-size:var(--text-sm);color:var(--color-text);font-variant-numeric:tabular-nums}.savings-overview__days-left{font-size:var(--text-xs);color:var(--color-text-subtle)}.savings-overview__days-left--overdue{color:var(--color-danger)}.savings-overview__last-contrib{font-size:var(--text-xs);color:var(--color-text-subtle);margin:0}.savings-overview__surplus-note{font-size:var(--text-xs);color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 8%, transparent);border-left:var(--border-width-thick) solid var(--color-warning);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin:0}.savings-overview__card-actions{align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:var(--border-width) solid var(--color-border);margin-top:var(--space-1);display:flex}.savings-overview__history-link{font-size:var(--text-xs);font-family:var(--font-family);color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0}.savings-overview__history-link:hover{text-decoration:underline}.savings-detail{padding:var(--space-4);gap:var(--space-5);flex-direction:column;display:flex}.savings-detail__fields{flex-direction:column;margin:0;padding:0;display:flex}.savings-detail__field{justify-content:space-between;align-items:baseline;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--color-border);display:flex}.savings-detail__field:last-child{border-bottom:none}.savings-detail__field dt{font-size:var(--text-xs);color:var(--color-text-subtle);font-weight:var(--weight-semibold);white-space:nowrap;flex-shrink:0}.savings-detail__field dd{font-size:var(--text-sm);color:var(--color-text);text-align:right;align-items:flex-end;gap:var(--space-1);flex-direction:column;margin:0;display:flex}.savings-detail__readonly-note{font-size:var(--text-xs);color:var(--color-text-subtle);text-align:right;font-style:italic}.savings-detail__link{color:var(--color-primary);text-decoration:none}.savings-detail__link:hover{text-decoration:underline}.savings-detail__actions{justify-content:flex-end;display:flex}.savings-detail__edit-btn{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-primary);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;transition:background .1s}.savings-detail__edit-btn:hover{background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.savings-detail__loading{font-size:var(--text-sm);color:var(--color-text-subtle);padding:var(--space-4) 0}.savings-detail__form{gap:var(--space-4);flex-direction:column;display:flex}.savings-detail__form-field{gap:var(--space-1);flex-direction:column;display:flex}.savings-detail__form-field label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-subtle)}.savings-detail__form-field input,.savings-detail__form-field select,.savings-detail__form-field textarea{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);box-sizing:border-box;width:100%}.savings-detail__form-field textarea{resize:vertical;min-height:80px;font-family:inherit}.savings-detail__field-error{font-size:var(--text-xs);color:var(--color-danger);margin:var(--space-1) 0 0}.savings-detail__form-readonly{padding:var(--space-3);background:color-mix(in srgb, var(--color-text-subtle) 6%, transparent);border-radius:var(--radius-md);gap:var(--space-2);flex-direction:column;display:flex}.savings-detail__form-readonly-row{justify-content:space-between;align-items:center;display:flex}.savings-detail__form-readonly-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-subtle)}.savings-detail__form-readonly-value{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.savings-detail__save-error{font-size:var(--text-xs);color:var(--color-danger);margin:0}.savings-detail__form-actions{justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-2);display:flex}.savings-detail__cancel-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-border);color:var(--color-text-subtle);font-size:var(--text-sm);cursor:pointer;background:0 0}.savings-detail__cancel-btn:hover:not(:disabled){background:color-mix(in srgb, var(--color-text-subtle) 8%, transparent)}.savings-detail__save-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:none;transition:opacity .1s}.savings-detail__save-btn:hover:not(:disabled){opacity:.88}.savings-detail__save-btn:disabled,.savings-detail__cancel-btn:disabled{opacity:.45;cursor:default}.savings-detail__actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.savings-detail__correct-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-primary);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;transition:background .1s}.savings-detail__correct-btn:hover{background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.savings-detail__move-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-text-secondary);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;transition:background .1s}.savings-detail__move-btn:hover{background:color-mix(in srgb, var(--color-text-secondary) 8%, transparent)}.savings-detail__void-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-danger);color:var(--color-danger);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;transition:background .1s}.savings-detail__void-btn:hover{background:color-mix(in srgb, var(--color-danger) 8%, transparent)}.savings-detail__void-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger);white-space:nowrap}.savings-detail__correction-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-primary) 10%, transparent);color:var(--color-primary);white-space:nowrap}.savings-detail__void-reason{color:var(--color-text-subtle);font-style:italic}.savings-detail__void-warning{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-danger) 8%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-danger) 20%, transparent);gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);flex-direction:column;display:flex}.savings-detail__void-warning p{margin:0}.savings-detail__void-confirm-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-danger);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:none;transition:opacity .1s}.savings-detail__void-confirm-btn:hover:not(:disabled){opacity:.88}.savings-detail__void-confirm-btn:disabled{opacity:.45;cursor:default}.savings-detail__correction-note{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-primary) 6%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-primary) 18%, transparent);font-size:var(--text-sm);color:var(--color-text)}.savings-detail__correction-note p{margin:0}.savings-detail__required{color:var(--color-danger)}.savings-detail__field-hint{font-size:var(--text-xs);color:var(--color-text-subtle);margin:var(--space-1) 0 0}.savings-history__empty{padding:var(--space-8) var(--space-4);font-size:var(--text-sm);color:var(--color-text-subtle);justify-content:center;align-items:center;display:flex}.savings-history{padding:var(--space-4)}.savings-history__filter-note{font-size:var(--text-xs);color:var(--color-text-subtle);margin:0 0 var(--space-4)}.savings-history__list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.savings-history__row{gap:var(--space-1);padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--color-border);flex-direction:column;display:flex}.savings-history__row:last-child{border-bottom:none}.savings-history__row-meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.savings-history__date{font-size:var(--text-xs);color:var(--color-text-subtle);white-space:nowrap}.savings-history__type-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);border-radius:var(--radius-full);padding:2px var(--space-2);white-space:nowrap}.savings-history__type-badge--contribution{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 12%, transparent)}.savings-history__type-badge--withdrawal{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent)}.savings-history__type-badge--reallocation{color:var(--color-text-subtle);background:color-mix(in srgb, var(--color-text-subtle) 10%, transparent)}.savings-history__goal-name{font-size:var(--text-xs);color:var(--color-text-subtle);font-style:italic}.savings-history__row-body{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.savings-history__row-info{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.savings-history__member{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.savings-history__paid-from,.savings-history__destination,.savings-history__reason,.savings-history__notes{font-size:var(--text-xs);color:var(--color-text-subtle);word-break:break-word}.savings-history__row-right{align-items:flex-end;gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.savings-history__amount{font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.savings-history__amount--positive{color:var(--color-success)}.savings-history__amount--negative{color:var(--color-danger)}.savings-history__proof{font-size:var(--text-xs);color:var(--color-text-subtle)}.savings-history__row--voided{opacity:.5}.savings-history__void-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger);white-space:nowrap;cursor:help}.savings-history__correction-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-primary) 10%, transparent);color:var(--color-primary);white-space:nowrap}.savings-recent-feed__row{align-items:flex-start;gap:var(--space-3);padding:var(--space-4) 0;cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-ease-standard);border-radius:var(--radius-sm);flex-direction:row}.savings-recent-feed__row:hover{background:color-mix(in srgb, var(--color-primary) 6%, transparent)}.savings-recent-feed__row:focus-visible{outline:var(--border-width-strong) solid var(--color-focus);outline-offset:-2px}.savings-recent-feed__icon{border-radius:var(--radius-full);width:2.5rem;height:2.5rem;font-size:var(--text-base);font-weight:var(--weight-bold);margin-top:var(--space-1);flex-shrink:0;justify-content:center;align-items:center;display:flex}.savings-recent-feed__icon--contribution{background:color-mix(in srgb, var(--color-success) 14%, transparent);color:var(--color-success)}.savings-recent-feed__icon--withdrawal{background:color-mix(in srgb, var(--color-error) 14%, transparent);color:var(--color-error)}.savings-recent-feed__icon--reallocation{background:color-mix(in srgb, var(--color-warning) 14%, transparent);color:var(--color-warning)}.savings-recent-feed__body{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.savings-recent-feed__headline{font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-normal);margin:0}.savings-recent-feed__actor{font-weight:var(--weight-semibold)}.savings-recent-feed__inline-amount{font-weight:var(--weight-bold)}.savings-recent-feed__inline-amount--contribution{color:var(--color-success)}.savings-recent-feed__inline-amount--withdrawal{color:var(--color-error)}.savings-recent-feed__inline-amount--reallocation{color:var(--color-warning)}.savings-recent-feed__subject{font-weight:var(--weight-semibold)}.savings-recent-feed__detail-row{justify-content:space-between;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:flex}.savings-recent-feed__detail{font-size:var(--text-xs);color:var(--color-text-subtle);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.savings-recent-feed__datetime{font-size:var(--text-xs);color:var(--color-text-subtle);white-space:nowrap;flex-shrink:0}.savings-tab{gap:var(--space-4);flex-direction:column;display:flex}.savings-tab__sticky-rail{top:calc(var(--header-height) + var(--space-2));z-index:20;gap:var(--space-2);background:var(--color-bg);flex-direction:column;display:flex;position:sticky}@media (width<=480px){.savings-tab__sticky-rail{gap:var(--space-1)}}@media (width>=481px){.savings-tab{padding:0}}.savings-tab__actions{align-items:center;gap:var(--space-3);display:flex}.settings-tab{gap:var(--space-4);flex-direction:column;display:flex}.invite__desc{font-size:var(--text-sm);color:var(--color-text-subtle);line-height:var(--leading-normal);margin-bottom:var(--space-3)}.invite__row{align-items:center;gap:var(--space-3);display:flex}.invite__code{text-align:center;font-family:var(--font-mono,ui-monospace, monospace);font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:.2em;color:var(--color-text);background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);flex:1}.btn--copied{color:var(--color-success)!important;border-color:var(--color-success)!important}.switch-group__form{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.switch-group__input{min-width:140px;font-family:var(--font-mono,ui-monospace, monospace);letter-spacing:.1em;text-transform:uppercase;flex:1}.data-mgmt__list{flex-direction:column;gap:0;display:flex}.data-mgmt__row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--color-border);flex-wrap:wrap;display:flex}.data-mgmt__row:first-child{padding-top:0}.data-mgmt__row:last-child{border-bottom:none;padding-bottom:0}.data-mgmt__row-info{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.data-mgmt__row-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.data-mgmt__row-desc{font-size:var(--text-xs);color:var(--color-text-subtle);line-height:var(--leading-normal)}.data-mgmt__action{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.data-mgmt__confirm{gap:var(--space-2);width:100%;padding-top:var(--space-2);flex-direction:column;display:flex}.data-mgmt__confirm-label{font-size:var(--text-xs);color:var(--color-text-subtle)}.data-mgmt__confirm-input{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.data-mgmt__confirm-buttons{gap:var(--space-2);display:flex}.data-mgmt__done{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-success)}.data-mgmt__error{width:100%;font-size:var(--text-xs);color:var(--color-danger);padding-top:var(--space-1)}.rename-group__form{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.rename-group__input{flex:1;min-width:160px}.danger-zone{border:var(--border-width-strong) solid color-mix(in srgb, var(--color-danger) 45%, transparent);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-danger) 4%, var(--color-surface));overflow:hidden}.danger-zone__header{padding:var(--space-2) var(--space-4);border-bottom:var(--border-width) solid color-mix(in srgb, var(--color-danger) 30%, transparent);background:color-mix(in srgb, var(--color-danger) 8%, transparent)}.danger-zone__title{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-danger)}.danger-zone__row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);flex-wrap:wrap;display:flex}.danger-zone__row-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-danger)}.danger-zone__confirm{gap:var(--space-4);padding:0 var(--space-4) var(--space-4);flex-direction:column;display:flex}.danger-zone__warning{background:color-mix(in srgb, var(--color-danger) 8%, var(--color-surface));border:var(--border-width) solid color-mix(in srgb, var(--color-danger) 30%, transparent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-normal)}.danger-zone__warning-list{margin:var(--space-2) 0 var(--space-2) var(--space-4);gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-subtle);flex-direction:column;padding:0;display:flex}.danger-zone__checkbox-row{align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;line-height:var(--leading-normal);display:flex}.danger-zone__checkbox-row input[type=checkbox]{accent-color:var(--color-danger);flex-shrink:0;margin-top:2px}.danger-zone__name-confirm{gap:var(--space-2);flex-direction:column;display:flex}.danger-zone__name-label{font-size:var(--text-xs);color:var(--color-text-subtle);line-height:var(--leading-normal)}.danger-zone__buttons{gap:var(--space-2);flex-wrap:wrap;display:flex}.data-mgmt__divider{border:none;border-top:var(--border-width) solid var(--color-border);margin:var(--space-2) 0 0}.data-mgmt__row--danger .data-mgmt__row-label{color:var(--color-danger)}.btn-danger{background:color-mix(in srgb, var(--color-danger) 10%, transparent);color:var(--color-danger);border:var(--border-width-strong) solid color-mix(in srgb, var(--color-danger) 35%, transparent);padding:var(--space-1) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-semibold);font-family:var(--font-family);cursor:pointer;transition:background var(--motion-duration-fast)}.btn-danger:hover{background:color-mix(in srgb, var(--color-danger) 18%, transparent)}.btn-danger:disabled{opacity:.45;cursor:not-allowed}.btn-danger--filled{background:var(--color-danger);color:var(--color-text-inverse);border-color:var(--color-danger)}.btn-danger--filled:hover{background:color-mix(in srgb, var(--color-danger) 85%, black)}.settings-members__list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.settings-members__row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--color-border);flex-wrap:wrap;display:flex}.settings-members__row:last-child{border-bottom:none;padding-bottom:0}.settings-members__row:first-child{padding-top:0}.settings-members__info{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.settings-members__name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.settings-members__badge{font-size:var(--text-2xs);font-weight:var(--weight-semibold);border-radius:var(--radius-full);padding:1px var(--space-2);line-height:1.6;display:inline-block}.settings-members__badge--linked{background:color-mix(in srgb, var(--color-primary) 12%, var(--color-bg-card));color:var(--color-primary);border:var(--border-width) solid color-mix(in srgb, var(--color-primary) 28%, transparent)}.settings-members__badge--other{background:var(--color-bg-subtle);color:var(--color-text-subtle);border:var(--border-width) solid var(--color-border)}.settings-members__confirm{gap:var(--space-2);width:100%;padding-top:var(--space-2);flex-direction:column;display:flex}.settings-members__confirm-text{font-size:var(--text-xs);color:var(--color-text-subtle);line-height:var(--leading-normal)}.settings-members__confirm-buttons{gap:var(--space-2);display:flex}.group-overview-tab{gap:var(--space-4);padding-bottom:var(--space-6);flex-direction:column;display:flex}.group-overview-tab__sticky-rail{z-index:var(--z-sticky);background:var(--color-bg);position:sticky;top:0}.group-overview-tab__loading,.group-overview-tab__error{padding:var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.group-overview-tab__error{color:var(--color-danger)}.group-contributions-tab{gap:var(--space-4);padding-bottom:var(--space-6);flex-direction:column;display:flex}.group-contributions-tab__sticky-rail{z-index:var(--z-sticky);background:var(--color-bg);position:sticky;top:0}.group-contributions-tab__loading,.group-contributions-tab__error{padding:var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.group-contributions-tab__error{color:var(--color-danger)}.group-contributions-tab__member-list{margin:0;padding:0;list-style:none}.group-contributions-tab__member-row{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.group-contributions-tab__member-row:last-child{border-bottom:none}.group-contributions-tab__member-name{font-size:var(--font-size-sm);color:var(--color-text)}.group-contributions-tab__member-amount{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-success)}.personal-overview-tab{gap:var(--space-4,1rem);padding-bottom:var(--space-8,2rem);flex-direction:column;display:flex}.personal-overview-tab__sticky-rail{top:var(--tab-bar-height,56px);z-index:10;background:var(--color-bg);position:sticky}.personal-overview-tab__loading,.personal-overview-tab__error{padding:var(--space-4,1rem);color:var(--color-text-muted);font-size:var(--font-size-sm,.875rem);text-align:center}.personal-overview-tab__error{color:var(--color-danger,#ef4444)}.personal-income-tab{gap:var(--space-4);padding-bottom:var(--space-8);flex-direction:column;display:flex}.personal-income-tab__sticky-rail{top:var(--tab-bar-height,56px);z-index:10;background:var(--color-bg);position:sticky}.personal-income-tab__loading,.personal-income-tab__error{padding:var(--space-4);color:var(--color-text-subtle);font-size:var(--text-sm);text-align:center}.personal-income-tab__error{color:var(--color-danger)}.personal-loans-tab{gap:var(--space-4);padding-bottom:var(--space-8);flex-direction:column;display:flex}.personal-loans-tab__loading,.personal-loans-tab__empty{padding:var(--space-4);color:var(--color-text-subtle);font-size:var(--text-sm);text-align:center}.personal-loans-tab__error{padding:var(--space-4);color:var(--color-danger);font-size:var(--text-sm);text-align:center}.personal-loans-tab__card-body{gap:var(--space-2);cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;width:100%;padding:0;display:flex}.personal-loans-tab__status-chip--closed{color:var(--color-text-subtle);background:color-mix(in srgb, var(--color-text-subtle) 10%, transparent);border:var(--border-width) solid color-mix(in srgb, var(--color-text-subtle) 30%, transparent)}.personal-loans-tab__detail{padding:var(--space-4);gap:var(--space-4);flex-direction:column;display:flex}.personal-loans-tab__detail-grid{flex-direction:column;gap:0;display:flex}.personal-loans-tab__detail-row{justify-content:space-between;align-items:baseline;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);display:flex}.personal-loans-tab__detail-row:last-child{border-bottom:none}.personal-loans-tab__detail-row--full{align-items:flex-start;gap:var(--space-1);flex-direction:column}.personal-loans-tab__detail-label{font-size:var(--text-sm);color:var(--color-text-subtle);flex-shrink:0}.personal-loans-tab__detail-value{font-size:var(--text-sm);color:var(--color-text);text-align:right;font-weight:500}.personal-loans-tab__detail-value--primary{color:var(--color-primary);font-weight:700}.personal-loans-tab__detail-actions{padding-top:var(--space-2);justify-content:flex-end;display:flex}.personal-savings-tab{gap:var(--space-4);padding-bottom:var(--space-8);flex-direction:column;display:flex}.personal-savings-tab__loading,.personal-savings-tab__empty{padding:var(--space-4);color:var(--color-text-subtle);font-size:var(--text-sm);text-align:center}.personal-savings-tab__error{padding:var(--space-4);color:var(--color-danger);font-size:var(--text-sm);text-align:center}.personal-savings-tab__card-body{gap:var(--space-2);cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;width:100%;padding:0;display:flex}.personal-savings-tab__detail{padding:var(--space-4);gap:var(--space-4);flex-direction:column;display:flex}.personal-savings-tab__detail-header{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.personal-savings-tab__detail-goal-name{font-size:var(--text-base);color:var(--color-text);flex:1;font-weight:700}.personal-savings-tab__detail-progress-wrap{align-items:center;gap:var(--space-2);display:flex}.personal-savings-tab__progress-track{background:var(--color-surface-2);border-radius:9999px;flex:1;height:6px;overflow:hidden}.personal-savings-tab__progress-fill{background:var(--color-primary);border-radius:9999px;height:100%;transition:width .3s}.personal-savings-tab__progress-fill--complete{background:var(--color-success)}.personal-savings-tab__progress-label{font-size:var(--text-xs);color:var(--color-text-subtle);white-space:nowrap}.personal-savings-tab__status{font-size:var(--text-xs);background:var(--color-surface-2);color:var(--color-text-subtle);border-radius:9999px;padding:2px 6px;font-weight:600;display:inline-block}.personal-savings-tab__status--completed,.personal-savings-tab__status--on-track{background:color-mix(in srgb, var(--color-success) 15%, transparent);color:var(--color-success)}.personal-savings-tab__status--at-risk{background:color-mix(in srgb, var(--color-danger) 15%, transparent);color:var(--color-danger)}.personal-savings-tab__detail-grid{flex-direction:column;gap:0;display:flex}.personal-savings-tab__detail-row{justify-content:space-between;align-items:baseline;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);display:flex}.personal-savings-tab__detail-row:last-child{border-bottom:none}.personal-savings-tab__detail-row--full{align-items:flex-start;gap:var(--space-1);flex-direction:column}.personal-savings-tab__detail-label{font-size:var(--text-sm);color:var(--color-text-subtle);flex-shrink:0}.personal-savings-tab__detail-value{font-size:var(--text-sm);color:var(--color-text);text-align:right;font-weight:500}.personal-savings-tab__detail-value--primary{color:var(--color-primary);font-weight:700}.personal-savings-tab__days-left{color:var(--color-text-subtle)}.personal-savings-tab__days-left--overdue{color:var(--color-danger)}.personal-savings-tab__detail-actions{gap:var(--space-2);padding-top:var(--space-2);justify-content:flex-end;display:flex}.space-selector{max-width:var(--header-max-width);padding:0 var(--page-gutter-desktop) var(--space-2);margin:0 auto}@media (width<=480px){.space-selector{padding:0 var(--content-padding-x) var(--space-2)}}.space-selector__scroll{gap:var(--space-2);scrollbar-width:none;-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.space-selector__scroll::-webkit-scrollbar{display:none}.space-selector__pill{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full,9999px);border:var(--border-width) solid var(--color-nav-border);color:var(--color-nav-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;white-space:nowrap;background:0 0;flex-shrink:0;line-height:1.4;transition:background .15s,color .15s,border-color .15s}.space-selector__pill:hover:not(:disabled){background:color-mix(in srgb, var(--color-nav-text) 8%, transparent);color:var(--color-nav-text);border-color:var(--color-nav-text-muted)}.space-selector__pill--active{background:var(--color-primary,#3b82f6);color:#fff;border-color:#0000}.space-selector__pill--active:hover{background:var(--color-primary,#3b82f6);color:#fff}.space-selector__pill--new{opacity:.45;cursor:not-allowed;border-style:dashed}.user-menu{align-items:center;gap:var(--space-2);display:flex;position:relative}.user-menu__greeting{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-nav-text);white-space:nowrap}@media (width<=480px){.user-menu__greeting{display:none}}.user-menu__avatar{width:var(--header-control-size);height:var(--header-control-size);background:var(--color-accent);color:var(--color-text-inverse);border:var(--border-width-thick) solid var(--space-ring-color,transparent);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity var(--motion-duration-fast);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.user-menu__avatar:hover,.user-menu__avatar--open{opacity:.8}.user-menu__panel{top:calc(100% + var(--space-2));background:var(--color-bg-card);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);min-width:210px;box-shadow:var(--shadow-dialog);z-index:200;position:absolute;right:0;overflow:hidden}.user-menu__header{gap:var(--space-1);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.user-menu__display-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.user-menu__email{font-size:var(--text-xs);color:var(--color-text-subtle);word-break:break-all}.user-menu__divider{height:var(--border-width);background:var(--color-border)}.user-menu__item{width:100%;padding:var(--space-2) var(--space-4);text-align:left;font-size:var(--text-sm);font-family:var(--font-family);color:var(--color-text);cursor:pointer;transition:background var(--motion-duration-fast);background:0 0;border:none;display:block}.user-menu__item:hover{background:var(--color-bg-subtle)}.user-menu__item--danger{color:var(--color-danger)}.user-menu__item--theme{color:var(--color-text-subtle)}.user-menu__form{gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.user-menu__back{font-size:var(--text-sm);font-weight:var(--weight-semibold);font-family:var(--font-family);color:var(--color-text);cursor:pointer;text-align:left;transition:opacity var(--motion-duration-fast);background:0 0;border:none;padding:0}.user-menu__back:hover{opacity:.7}.user-menu__error{font-size:var(--text-xs);color:var(--color-danger);margin:0}.user-menu__actions{gap:var(--space-2);display:flex}.user-menu__space-row{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-4);text-align:left;font-size:var(--text-sm);font-family:var(--font-family);color:var(--color-text);cursor:pointer;transition:background var(--motion-duration-fast);background:0 0;border:none;display:flex}.user-menu__space-row:hover{background:var(--color-bg-subtle)}.user-menu__space-row--active{font-weight:var(--weight-semibold);cursor:default}.user-menu__space-row--active:hover{background:0 0}.user-menu__space-row--action{color:var(--color-text-subtle);font-size:var(--text-xs);padding-left:calc(var(--space-4) + 8px + var(--space-2))}.user-menu__space-row--action:hover{background:var(--color-bg-subtle)}.user-menu__space-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.user-menu__space-check{font-size:var(--text-xs);color:var(--color-text-subtle);margin-left:auto}.user-menu__group{padding-top:var(--space-2)}.auth-gate__link{color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:color var(--motion-duration-fast);background:0 0;border:none;margin:0;padding:0;text-decoration:underline}.auth-gate__link:hover,.auth-gate__link:focus{color:var(--color-accent-hover);outline:none}.auth-gate__link--xs{font-size:var(--text-xs);padding:0}.auth-gate__link--inline{margin:0 .25em;padding:0;display:inline}.auth-gate{min-height:100dvh;padding:var(--space-6);background:var(--color-bg);justify-content:center;align-items:center;display:flex;position:relative}.auth-gate__card{align-items:center;gap:var(--space-5);background:var(--color-bg-card);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:380px;box-shadow:var(--shadow-card);padding:var(--space-8);text-align:center;flex-direction:column;display:flex}.auth-gate__header{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.auth-gate__logo{width:48px;height:48px}.auth-gate__title{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text);margin:0}.auth-gate__sub{font-size:var(--text-sm);color:var(--color-text-subtle);margin:0}.auth-gate__form{gap:var(--space-3);text-align:left;flex-direction:column;width:100%;display:flex}.auth-gate__error{font-size:var(--text-sm);color:var(--color-danger);justify-content:space-between;align-items:center;display:flex}.auth-gate__divider{align-items:center;gap:var(--space-3);width:100%;font-size:var(--text-xs);color:var(--color-text-subtle);display:flex}.auth-gate__divider:before,.auth-gate__divider:after{content:"";background:var(--color-border);flex:1;height:1px}.auth-gate__full-btn{width:100%}.auth-gate__oauth{gap:var(--space-3);grid-template-columns:1fr 1fr;width:100%;display:grid}.auth-gate__oauth--single{grid-template-columns:1fr}.auth-gate__oauth-btn{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);background:var(--color-bg-card);color:var(--color-text);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);font-family:var(--font-family);cursor:pointer;transition:background var(--motion-duration-fast);display:flex}.auth-gate__oauth-btn:hover{background:var(--color-bg-subtle)}.auth-gate__oauth-icon{flex-shrink:0;width:18px;height:18px}.auth-gate__label-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.auth-gate__toggle{font-size:var(--text-sm);color:var(--color-text-subtle);margin:0}.space-picker{min-height:100dvh;padding:var(--space-6);background:var(--color-bg);justify-content:center;align-items:center;display:flex}.space-picker__inner{align-items:center;gap:var(--space-4);flex-direction:column;width:100%;max-width:480px;display:flex}.space-picker__logo{width:48px;height:48px}.space-picker__title{font-size:var(--text-xl);color:var(--color-text);text-align:center;margin:0;font-weight:700}.space-picker__sub{font-size:var(--text-sm);color:var(--color-text-subtle);text-align:center;margin:0}.space-picker__grid{gap:var(--space-3);width:100%;margin-top:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.space-picker__card{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-3);border-radius:var(--radius-lg);border:1.5px solid var(--color-border);background:var(--color-bg-card);cursor:pointer;text-align:center;flex-direction:column;min-height:120px;transition:border-color .15s,background .15s,transform .1s;display:flex}.space-picker__card:hover{border-color:var(--color-primary);background:var(--color-bg-subtle)}.space-picker__card:active{transform:scale(.97)}.space-picker__card--personal{border-color:var(--color-primary)}.space-picker__card--action{background:0 0;border-style:dashed}.space-picker__card--action:hover{background:var(--color-bg-card)}.space-picker__card--skeleton{background:var(--color-bg-card);border-color:var(--color-border);cursor:default;pointer-events:none;animation:1.4s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.space-picker__card-icon{font-size:1.75rem;line-height:1}.space-picker__card-name{font-size:var(--text-sm);color:var(--color-text);font-weight:600}.space-picker__card-sub{font-size:var(--text-xs);color:var(--color-text-subtle)}.space-picker__signout{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-subtle);cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:0 0;border:none}.space-picker__signout:hover{color:var(--color-text);text-decoration:underline}.space-picker-panel{gap:var(--space-3);padding:var(--space-4);flex-direction:column;display:flex}.space-picker-panel__label{font-size:var(--text-sm);color:var(--color-text);font-weight:500}.space-picker-panel__input{width:100%}.space-picker-panel__input--code{font-family:var(--font-mono,monospace);letter-spacing:.15em;text-transform:uppercase}.space-picker-panel__error{font-size:var(--text-sm);color:var(--color-danger);margin:0}.space-picker-panel__submit{width:100%;margin-top:var(--space-1)}.space-picker-panel__success{font-size:var(--text-base);color:var(--color-text);margin:0;font-weight:600}.space-picker-panel__hint{font-size:var(--text-sm);color:var(--color-text-subtle);margin:0}.space-picker-panel__invite-code{font-family:var(--font-mono,monospace);font-size:var(--text-xl);letter-spacing:.2em;text-align:center;padding:var(--space-4);background:var(--color-bg-subtle);border-radius:var(--radius-md);border:1.5px solid var(--color-border);color:var(--color-text);font-weight:700}
