:root{--bg: #ffffff;--bg-subtle: #f5f5f5;--border: #e5e5e5;--text-primary: #111111;--text-secondary: #666666;--text-tertiary: #999999;--inverse: #111111;--inverse-text: #ffffff;--color-bg-main: #f5f5f5;--color-card-surface: #ffffff;--color-brand-primary: #111111;--color-brand-primary-dark: #111111;--color-brand-tint: #f5f5f5;--color-text-primary: #111111;--color-text-secondary: #666666;--color-status-success: #111111;--color-status-success-text: #111111;--color-status-success-bg: #f5f5f5;--color-status-warning: #111111;--color-status-danger: #111111;--color-status-danger-text: #111111;--color-status-danger-bg: #f5f5f5;--color-border-input: #cccccc;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-h1-size: 22px;--font-h1-weight: 600;--font-title-large-size: 28px;--font-h2-size: 18px;--font-h2-weight: 600;--font-body-size: 14px;--font-caption-size: 12px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--radius-card: 12px;--radius-button: 8px;--radius-pill: 20px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.auth{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--color-card-surface);font-family:var(--font-family);color:var(--color-text-primary);-webkit-tap-highlight-color:transparent}.auth *,.auth *:before,.auth *:after{box-sizing:border-box}.auth--hero{background:var(--color-brand-primary-dark)}.auth button{touch-action:manipulation}.auth__screen{flex:1;display:flex;flex-direction:column;width:100%}.auth__hero{padding:calc(env(safe-area-inset-top,0px) + 48px) var(--space-lg) 56px;background:var(--color-brand-primary-dark);color:#fff;text-align:center}.auth__logo{width:64px;height:64px;margin:0 auto var(--space-md);display:grid;place-items:center;border-radius:18px;background:#fff;color:var(--color-brand-primary-dark);font-weight:700;font-size:22px;letter-spacing:.5px;border:1px solid var(--border)}.auth__brand{margin:0;font-size:var(--font-h1-size);font-weight:700}.auth__tagline{margin:var(--space-xs) 0 0;font-size:var(--font-body-size);color:#ffffffe0}.auth__appbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;min-height:calc(56px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) var(--space-sm) 0;background:var(--color-card-surface)}.auth__back{width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--color-text-primary);cursor:pointer}.auth__back:active{background:var(--color-bg-main)}.auth__sheet{flex:1;display:flex;flex-direction:column;padding:var(--space-xl) 20px calc(20px + env(safe-area-inset-bottom,0px));background:var(--color-card-surface)}.auth--hero .auth__sheet{position:relative;margin-top:-24px;border-radius:24px 24px 0 0}.auth--appbar .auth__sheet{padding-top:var(--space-sm)}.auth--plain .auth__sheet{padding-top:calc(env(safe-area-inset-top,0px) + 72px)}.auth__intro{margin-bottom:var(--space-lg)}.auth--plain .auth__intro{text-align:center}.auth__icon{width:72px;height:72px;margin:0 auto var(--space-lg);display:grid;place-items:center;border-radius:50%;background:var(--color-brand-tint);color:var(--color-brand-primary-dark)}.auth__title{margin:0;font-size:var(--font-title-large-size);font-weight:var(--font-h1-weight);line-height:1.2;letter-spacing:-.3px}.auth__title:focus{outline:none}.auth__subtitle{margin:var(--space-sm) 0 0;font-size:15px;line-height:1.5;color:var(--color-text-secondary)}.auth__alert{margin-bottom:var(--space-lg);padding:12px var(--space-md);border-radius:var(--radius-card);border-left:4px solid var(--color-status-danger);background:var(--color-status-danger-bg);color:var(--color-status-danger-text);font-size:var(--font-body-size);font-weight:500;line-height:1.45}.auth__alert--success{border-left-color:var(--color-status-success);background:var(--color-status-success-bg);color:var(--color-status-success-text)}.auth__message{margin:0 0 var(--space-lg);font-size:15px;line-height:1.55;text-align:center;color:var(--color-text-secondary)}.auth__message p{margin:0}.auth__message p+p{margin-top:var(--space-sm)}.auth__message strong{color:var(--color-text-primary)}.auth__message:focus{outline:none}.auth__form{flex:1;display:flex;flex-direction:column}.auth__fields{display:flex;flex-direction:column;gap:20px}.auth__field{display:flex;flex-direction:column;gap:var(--space-sm)}.auth__label-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm)}.auth__label{font-size:var(--font-body-size);font-weight:600}.auth__input{width:100%;height:52px;padding:0 var(--space-md);border:1px solid var(--color-border-input);border-radius:var(--radius-card);background:var(--color-card-surface);color:var(--color-text-primary);font:inherit;font-size:16px;transition:border-color .12s ease,box-shadow .12s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.auth__input:focus{outline:none;border-color:var(--color-brand-primary-dark)}.auth__input[aria-invalid=true]{border-color:var(--color-status-danger-text)}.auth__input:disabled{opacity:.6}.auth__password{position:relative}.auth__input--with-toggle{padding-right:56px}.auth__toggle{position:absolute;top:50%;right:4px;transform:translateY(-50%);width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--color-text-secondary);cursor:pointer}.auth__toggle[aria-pressed=true]{color:var(--color-brand-primary-dark)}.auth__hint,.auth__error{margin:0;font-size:13px;line-height:1.4}.auth__hint{color:var(--color-text-secondary)}.auth__error{font-weight:500;color:var(--color-status-danger-text)}.auth__actions{margin-top:auto;padding-top:var(--space-xl);display:flex;flex-direction:column;align-items:stretch;gap:var(--space-md)}.auth__submit,.auth__button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;min-height:52px;border:0;border-radius:var(--radius-card);background:var(--color-brand-primary-dark);color:#fff;font:inherit;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .12s ease,transform 80ms ease}.auth__submit:active:not(:disabled),.auth__button:active{opacity:.85;transform:scale(.985)}@media(hover:hover){.auth__submit:hover:not(:disabled),.auth__button:hover{opacity:.85}}.auth__submit:disabled{opacity:.75;cursor:progress}.auth__spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:auth-spin .7s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth__link{min-height:44px;padding:0 var(--space-xs);border:0;background:none;color:var(--color-brand-primary-dark);font:inherit;font-size:var(--font-body-size);font-weight:600;cursor:pointer}.auth__label-row .auth__link{min-height:0;padding:0}.auth__link:disabled{color:var(--color-text-secondary);cursor:not-allowed}.auth__link--inline{min-height:0;padding:0;color:inherit;text-decoration:underline;text-underline-offset:2px}.auth__footer{margin:0;text-align:center;font-size:var(--font-body-size);color:var(--color-text-secondary)}.auth__toggle:focus-visible,.auth__back:focus-visible,.auth__link:focus-visible,.auth__submit:focus-visible,.auth__button:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.auth--enter-forward .auth__screen{animation:auth-push .28s cubic-bezier(.2,.8,.2,1)}.auth--enter-back .auth__screen{animation:auth-pop .28s cubic-bezier(.2,.8,.2,1)}@keyframes auth-push{0%{transform:translate(24%);opacity:0}}@keyframes auth-pop{0%{transform:translate(-24%);opacity:0}}@media(max-width:767px)and (max-height:700px){.auth__hero{padding-top:calc(env(safe-area-inset-top,0px) + 28px);padding-bottom:44px}.auth__logo{width:52px;height:52px;margin-bottom:12px;border-radius:15px;font-size:18px}.auth__sheet{padding-top:var(--space-lg)}.auth__intro{margin-bottom:20px}.auth__fields{gap:var(--space-md)}.auth__actions{padding-top:var(--space-lg)}}@media(min-width:768px){.auth,.auth--hero{align-items:center;justify-content:center;padding:var(--space-lg);background:var(--color-bg-main)}.auth__screen{flex:none;max-width:420px;border-radius:16px;overflow:hidden;background:var(--color-card-surface);border:1px solid var(--border)}.auth__hero{padding:40px var(--space-xl) 52px}.auth__appbar{position:static;min-height:56px;padding:var(--space-sm) var(--space-sm) 0}.auth__sheet{padding:var(--space-xl)}.auth--appbar .auth__sheet{padding-top:var(--space-sm)}.auth--plain .auth__sheet{padding-top:48px}.auth__actions{padding-top:28px}}@media(prefers-reduced-motion:reduce){.auth--enter-forward .auth__screen,.auth--enter-back .auth__screen{animation:none}.auth__spinner{animation-duration:2s}.auth__input,.auth__submit,.auth__button{transition:none}}@media(min-width:768px){.auth__title{font-size:24px}}.auth__affix,.auth__select{position:relative}.auth__prefix{position:absolute;top:50%;left:var(--space-md);transform:translateY(-50%);font-size:16px;font-weight:500;color:var(--color-text-secondary);pointer-events:none}.auth__input--with-prefix{padding-left:34px}.auth__select .auth__input{padding-right:44px;cursor:pointer}.auth__chevron{position:absolute;top:50%;right:14px;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none}.auth__status{margin:0;font-size:13px;font-weight:500;line-height:1.4;color:var(--color-text-secondary)}.auth__status--ok{color:var(--color-status-success-text)}.auth__status--bad{color:var(--color-status-danger-text)}a.auth__back,a.auth__button,a.auth__link{text-decoration:none}a.auth__link{display:inline-flex;align-items:center}a.auth__link--inline{display:inline;text-decoration:underline}.login__switch-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);min-height:44px;font-size:15px;cursor:pointer}.login__switch{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;flex:none;width:51px;height:31px;margin:0;border-radius:31px;background:var(--color-border-input);cursor:pointer;transition:background-color .18s ease}.login__switch:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;border:1px solid var(--border);transition:transform .18s ease}.login__switch:checked{background:var(--color-brand-primary-dark)}.login__switch:checked:after{transform:translate(20px)}.login__switch:disabled{opacity:.6}.login__switch:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.login__switch,.login__switch:after{transition:none}}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:flex;align-items:flex-end;justify-content:center;font-family:var(--font-family);color:var(--color-text-primary)}.sheet *,.sheet *:before,.sheet *:after{box-sizing:border-box}.sheet__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#1c1c1e73;animation:sheet-fade .2s ease}.sheet__panel{position:relative;display:flex;flex-direction:column;width:100%;max-height:92vh;max-height:92dvh;padding:var(--space-sm) 20px calc(20px + env(safe-area-inset-bottom,0px));border-radius:20px 20px 0 0;background:var(--color-card-surface);border-top:1px solid var(--border);animation:sheet-up .26s cubic-bezier(.2,.8,.2,1)}.sheet__panel:focus{outline:none}.sheet__grabber{width:36px;height:5px;margin:0 auto var(--space-sm);border-radius:3px;background:var(--text-tertiary)}.sheet__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:44px}.sheet__title{margin:0;font-size:20px;font-weight:700}.sheet__close{width:44px;height:44px;margin-right:-10px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--color-text-secondary);cursor:pointer;touch-action:manipulation}.sheet__close:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.sheet__description{margin:var(--space-xs) 0 0;font-size:var(--font-body-size);line-height:1.5;color:var(--color-text-secondary)}.sheet__body{flex:1;min-height:0;margin:var(--space-md) -20px 0;padding:0 20px;overflow-y:auto;overscroll-behavior:contain}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes sheet-fade{0%{opacity:0}}@media(min-width:768px){.sheet{align-items:center;padding:var(--space-lg)}.sheet__panel{max-width:480px;max-height:85vh;padding:var(--space-lg) var(--space-lg) var(--space-lg);border-radius:16px;animation:sheet-pop .2s ease}.sheet__grabber{display:none}.sheet__body{margin:var(--space-md) calc(-1 * var(--space-lg)) 0;padding:0 var(--space-lg)}}@keyframes sheet-pop{0%{opacity:0;transform:scale(.97)}}@media(prefers-reduced-motion:reduce){.sheet__backdrop,.sheet__panel{animation:none}}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--color-bg-main);font-family:var(--font-family);color:var(--color-text-primary);-webkit-tap-highlight-color:transparent}.app *,.app *:before,.app *:after{box-sizing:border-box}.app button{touch-action:manipulation}.app__topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:12px;min-height:calc(60px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) var(--space-md) 0;background:var(--color-card-surface);border-bottom:1px solid var(--border)}.app__brand{flex:none;width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--color-brand-primary-dark);color:#fff;font-size:13px;font-weight:700}.app__heading{flex:1;min-width:0}.app__title,.app__subtitle{margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.app__title{font-size:17px;font-weight:700}.app__subtitle{font-size:13px;color:var(--color-text-secondary)}.app__bell{position:relative;flex:none;margin-left:auto;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:var(--color-text-primary)}.app__bell-badge{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border-radius:var(--radius-pill);background:var(--color-status-danger-text);color:#fff;font-size:11px;font-weight:700;line-height:1}.app__avatar{flex:none;width:40px;height:40px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:var(--color-brand-tint);color:var(--color-brand-primary-dark);font:inherit;font-size:14px;font-weight:700;cursor:pointer}.app__main{flex:1;width:100%;padding:var(--space-md) var(--space-md) calc(var(--space-lg) + env(safe-area-inset-bottom,0px))}.app--with-tabs .app__main{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.nav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:repeat(5,1fr);padding:4px 4px env(safe-area-inset-bottom,0px);background:#fffffff5;border-top:1px solid var(--border);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px)}.nav__tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:4px 0;border:0;border-radius:var(--radius-button);background:none;color:var(--color-text-secondary);font:inherit;font-size:11px;font-weight:600;cursor:pointer}.nav__tab[aria-current=page]{color:var(--color-brand-primary-dark)}.nav__tab:focus-visible,.app__bell:focus-visible,.app__avatar:focus-visible,.app__signout:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.account{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0 var(--space-lg)}.account__avatar{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:var(--color-brand-tint);color:var(--color-brand-primary-dark);font-size:18px;font-weight:700}.account__name{margin:0;font-size:16px;font-weight:600}.account__email{margin:2px 0 0;font-size:var(--font-body-size);color:var(--color-text-secondary)}.app__signout{width:100%;min-height:52px;border:1px solid var(--color-status-danger-text);border-radius:var(--radius-card);background:var(--color-card-surface);color:var(--color-status-danger-text);font:inherit;font-size:16px;font-weight:600;cursor:pointer}@media(min-width:768px){.app__topbar{gap:var(--space-md);min-height:64px;padding:0 var(--space-lg)}.app__heading{flex:0 1 auto;max-width:240px}.nav{position:static;flex:1;display:flex;justify-content:center;gap:var(--space-xs);padding:0;background:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none}.nav__tab{flex-direction:row;gap:6px;min-height:40px;padding:0 12px;font-size:var(--font-body-size)}.nav__tab:hover{background:var(--color-bg-main)}.nav__tab[aria-current=page]{background:var(--color-brand-tint)}.app__main,.app--with-tabs .app__main{max-width:1120px;margin:0 auto;padding:var(--space-lg)}}.account__section{margin-bottom:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border)}.account__row{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:0 4px;border:0;border-radius:var(--radius-card);background:none;color:var(--color-text-primary);font:inherit;font-size:16px;font-weight:600;text-align:left;cursor:pointer}.account__row:active{background:var(--color-bg-main)}.account__row:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.account__row-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--color-brand-tint);color:var(--color-brand-primary-dark)}.account__row-text{flex:1;display:flex;flex-direction:column}.account__row-meta{font-size:13px;font-weight:400;color:var(--color-text-secondary)}.account__badge{min-width:22px;padding:2px 8px;border-radius:var(--radius-pill);background:var(--color-status-danger-text);color:#fff;font-size:12px;font-weight:700;text-align:center}a.nav__tab,a.app__bell{text-decoration:none}.onboard{display:flex;flex-direction:column;min-height:calc(100dvh - 100px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));max-width:520px;margin:0 auto;padding-top:var(--space-md)}.onboard__intro{margin-bottom:var(--space-lg)}.onboard__icon,.soon__icon{width:60px;height:60px;margin-bottom:var(--space-md);display:grid;place-items:center;border-radius:18px;background:var(--color-brand-tint);color:var(--color-brand-primary-dark)}.onboard__title{margin:0;font-size:var(--font-title-large-size);font-weight:700;line-height:1.2;letter-spacing:-.3px}.onboard__subtitle{margin:var(--space-sm) 0 0;font-size:15px;line-height:1.5;color:var(--color-text-secondary)}.onboard__form{flex:1;display:flex;flex-direction:column}.onboard__actions{margin-top:auto;padding-top:var(--space-xl)}.dash__header{margin-bottom:20px}.dash__header--row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}.dash__title{margin:0;font-size:var(--font-title-large-size);font-weight:700;line-height:1.2;letter-spacing:-.3px;overflow-wrap:anywhere}.dash__title:focus{outline:none}.dash__meta{margin:var(--space-xs) 0 0;font-size:var(--font-body-size);color:var(--color-text-secondary)}.quick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.quick__action{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-height:104px;padding:var(--space-md);border:0;border-radius:16px;background:var(--color-card-surface);border:1px solid var(--border);color:var(--color-text-primary);font:inherit;font-size:15px;font-weight:600;text-align:left;cursor:pointer;transition:transform 80ms ease}.quick__action:active{transform:scale(.98)}.quick__icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--color-brand-primary-dark);color:#fff}.dash__grid{display:grid;gap:var(--space-md)}.card{padding:var(--space-md);border-radius:16px;background:var(--color-card-surface);border:1px solid var(--border)}.card__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-xs)}.card__title{margin:0;font-size:var(--font-h2-size);font-weight:var(--font-h2-weight)}.card__count{display:inline-block;min-width:22px;margin-left:6px;padding:1px 7px;border-radius:var(--radius-pill);background:var(--color-bg-main);color:var(--color-text-secondary);font-size:12px;font-weight:600;text-align:center}.card__total{margin:0;font-size:var(--font-body-size);font-weight:600}.card__empty{margin:var(--space-sm) 0 0;font-size:var(--font-body-size);line-height:1.5;color:var(--color-text-secondary)}.rows{margin:0;padding:0;list-style:none}.rows__item{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 0;border-bottom:1px solid var(--border)}.rows__item:last-child{border-bottom:0}.rows__item--stacked{flex-direction:column;align-items:stretch;gap:8px;padding:14px 0}.rows__line{display:flex;align-items:center;gap:10px}.rows__avatar{flex:none;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--color-brand-tint);color:var(--color-brand-primary-dark);font-size:14px;font-weight:700}.rows__dot{flex:none;width:12px;height:12px;border-radius:50%;background:var(--color-text-primary)}.rows__main{flex:1;min-width:0;display:flex;flex-direction:column}.rows__title{flex:1;min-width:0;font-size:15px;font-weight:600;overflow-wrap:anywhere}.rows__meta{font-size:13px;color:var(--color-text-secondary);overflow-wrap:anywhere}.rows__amount{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.amount--over{font-weight:700;text-decoration:underline;text-underline-offset:3px}.badge{flex:none;padding:3px 10px;border-radius:var(--radius-pill);font-size:12px;font-weight:600}.badge--admin{background:var(--color-brand-tint);color:var(--color-brand-primary-dark)}.badge--editor{background:var(--color-bg-main);color:var(--color-text-primary)}.badge--viewer{background:var(--color-bg-main);color:var(--color-text-secondary)}.badge--pending{background:var(--color-brand-tint);color:var(--color-brand-primary-dark)}.badge--accepted{background:var(--color-status-success-bg);color:var(--color-status-success-text)}.badge--declined,.badge--revoked{background:var(--color-status-danger-bg);color:var(--color-status-danger-text)}.invite-mode{display:flex;gap:var(--space-xs);margin-bottom:var(--space-md)}.invite-mode__tab{flex:1;min-height:40px;border:1px solid var(--border);border-radius:var(--radius-button);background:var(--color-card-surface);color:var(--color-text-secondary);font:inherit;font-size:var(--font-body-size);font-weight:600;cursor:pointer}.invite-mode__tab[aria-pressed=true]{background:var(--color-brand-tint);color:var(--color-brand-primary-dark);border-color:var(--color-brand-tint)}.progress{height:8px;border-radius:4px;background:var(--border);overflow:hidden}.progress__bar{display:block;height:100%;border-radius:4px;background:var(--color-text-primary)}.empty{padding:var(--space-md) 0 var(--space-xs)}.empty__text{margin:0 0 12px;font-size:var(--font-body-size);line-height:1.5;color:var(--color-text-secondary)}.empty__action,.pill-button{min-height:44px;padding:0 18px;border:0;border-radius:var(--radius-pill);background:var(--color-brand-tint);color:var(--color-brand-primary-dark);font:inherit;font-size:var(--font-body-size);font-weight:600;cursor:pointer;white-space:nowrap}.quick__action:focus-visible,.empty__action:focus-visible,.pill-button:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.quick__action:disabled,.empty__action:disabled,.pill-button:disabled,.group__add:disabled,.btn-text-danger:disabled{opacity:.6;cursor:not-allowed}.sheet-form{display:flex;flex-direction:column}.sheet-form__actions{position:sticky;bottom:0;padding:var(--space-lg) 0 2px;background:linear-gradient(to bottom,rgba(255,255,255,0),var(--color-card-surface) 30%)}.toast{position:fixed;left:50%;bottom:calc(80px + env(safe-area-inset-bottom,0px));z-index:800;width:max-content;max-width:min(440px,calc(100vw - 32px));padding:12px 18px;border-radius:14px;background:var(--color-text-primary);color:#fff;font-size:var(--font-body-size);font-weight:500;line-height:1.4;transform:translate(-50%,16px);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.toast--visible{transform:translate(-50%);opacity:1}.loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:50vh;color:var(--color-text-secondary);font-size:15px}.loading__spinner{width:22px;height:22px;border:2.5px solid var(--color-brand-tint);border-top-color:var(--color-brand-primary-dark);border-radius:50%;animation:household-spin .7s linear infinite}.alert-box{padding:var(--space-md);border-radius:var(--radius-card);background:var(--color-status-danger-bg);color:var(--color-status-danger-text);font-weight:500}.soon{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:55vh;text-align:center}.soon__text{margin:var(--space-sm) 0 0;font-size:15px;color:var(--color-text-secondary)}.rows__item--link{position:relative}.rows__link{flex:1;min-width:0;padding:0;border:0;background:none;color:var(--color-text-primary);font:inherit;font-size:15px;font-weight:600;text-align:left;overflow-wrap:anywhere;cursor:pointer}.rows__link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.rows__link:focus-visible{outline:none}.rows__link:focus-visible:after{outline:3px solid var(--color-brand-primary);outline-offset:2px;border-radius:var(--radius-button)}.rows__item--link:active{background:var(--color-bg-main)}.rows__chevron{flex:none;color:var(--color-text-secondary)}.rows__flag{display:inline-block;padding:1px 8px;border-radius:var(--radius-pill);background:var(--color-brand-tint);color:var(--color-brand-primary-dark);font-size:12px;font-weight:600}.rows__dot--lg{width:14px;height:14px}.detail .dash__header{margin-top:var(--space-sm)}.detail__title{display:flex;align-items:center;gap:10px}.back{display:inline-flex;align-items:center;gap:2px;min-height:44px;margin-left:-6px;padding:0 8px 0 2px;border:0;border-radius:var(--radius-button);background:none;color:var(--color-brand-primary-dark);font:inherit;font-size:15px;font-weight:600;cursor:pointer}.back:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.summary{margin-bottom:var(--space-md)}.summary__label{margin:0;font-size:var(--font-body-size);font-weight:600;color:var(--color-text-secondary)}.summary__amount{margin:2px 0 var(--space-sm);font-size:32px;font-weight:700;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.summary__note{margin:0 0 var(--space-md);font-size:var(--font-body-size);line-height:1.5;color:var(--color-text-secondary)}.summary__note .rows__flag{margin-right:4px}.progress--lg{height:10px;border-radius:5px}.summary__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm);margin:var(--space-md) 0 0}.summary__stats dt{font-size:12px;color:var(--color-text-secondary)}.summary__stats dd{margin:2px 0 0;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.item-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:12px;align-items:start}.item-total{display:flex;align-items:baseline;justify-content:space-between;margin:0;padding:12px var(--space-md);border-radius:var(--radius-card);background:var(--color-bg-main);font-size:15px}.item-total strong{font-size:18px;font-variant-numeric:tabular-nums}.sheet-form__actions{display:flex;flex-direction:column;gap:var(--space-sm)}.btn-text-danger,.btn-secondary,.btn-danger{min-height:48px;border-radius:var(--radius-card);font:inherit;font-size:16px;font-weight:600;cursor:pointer}.btn-text-danger{border:0;background:none;color:var(--color-status-danger-text)}.btn-secondary{border:1px solid var(--color-border-input);background:var(--color-card-surface);color:var(--color-text-primary)}.btn-danger{border:0;background:var(--color-status-danger-text);color:#fff}.btn-text-danger:focus-visible,.btn-secondary:focus-visible,.btn-danger:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.confirm__text{margin:0 0 12px;font-size:15px;font-weight:500;text-align:center}.confirm__buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px}.month{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md);padding:6px;border-radius:16px;background:var(--color-card-surface);border:1px solid var(--border)}.month__step{flex:none;width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:12px;background:var(--color-bg-main);color:var(--color-brand-primary-dark);cursor:pointer}.month__step:disabled{color:var(--color-border-input);cursor:not-allowed}.month__label{display:flex;flex-direction:column;align-items:center;text-align:center}.month__name{font-size:16px;font-weight:700}.month__tag{font-size:12px;color:var(--color-text-secondary)}.month__today{min-height:24px;padding:0;border:0;background:none;color:var(--color-brand-primary-dark);font:inherit;font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.month__step:focus-visible,.month__today:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.copied{margin:4px 0 var(--space-sm);font-size:13px;line-height:1.45;color:var(--color-text-secondary)}.copied--page{margin:0 0 var(--space-md)}.locked-banner{display:flex;align-items:flex-start;gap:8px;margin:4px 0 var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border-input);border-radius:var(--radius-card);font-size:13px;line-height:1.45;color:var(--color-text-secondary)}.locked-banner .rows__flag{flex-shrink:0}.offline-banner{display:flex;align-items:flex-start;gap:8px;margin:0 var(--space-md) var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border-input);border-radius:var(--radius-card);font-size:13px;line-height:1.45;color:var(--color-text-secondary)}.offline-banner .rows__flag{flex-shrink:0}.groups{display:grid;gap:var(--space-md)}.group__head{display:flex;align-items:center;gap:10px;min-height:44px}.group__title{flex:1;min-width:0;margin:0;font-size:17px}.group__title .rows__link{font-size:17px;font-weight:700}.group__meta{margin:0 0 var(--space-xs);font-size:13px;color:var(--color-text-secondary)}.group .rows{margin-left:22px}.group__empty{margin:var(--space-sm) 0 0 22px;font-size:var(--font-body-size);color:var(--color-text-secondary)}.group__add{min-height:44px;margin:4px 0 -4px 22px;padding:0;border:0;background:none;color:var(--color-brand-primary-dark);font:inherit;font-size:var(--font-body-size);font-weight:600;cursor:pointer}.group__add:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.dash__header--stack .pill-row{justify-content:flex-start;margin-top:12px}.pill-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-sm)}.saved{margin-bottom:20px}.saved__label{margin:0 0 var(--space-sm);font-size:var(--font-body-size);font-weight:600}.saved__list{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border:1px solid var(--color-border-input);border-radius:var(--radius-pill);background:var(--color-card-surface);color:var(--color-text-primary);font:inherit;font-size:var(--font-body-size);font-weight:600;cursor:pointer}.chip[aria-pressed=true]{border-color:var(--color-brand-primary-dark);background:var(--color-brand-tint);color:var(--color-brand-primary-dark)}.chip__meta{font-weight:500;color:var(--color-text-secondary)}.chip:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.confirm__stack{display:flex;flex-direction:column;gap:var(--space-sm)}.btn-secondary--danger{border-color:var(--color-status-danger-text);color:var(--color-status-danger-text)}.btn-text{min-height:44px;border:0;background:none;color:var(--color-text-primary);font:inherit;font-size:16px;font-weight:600;cursor:pointer}.danger-zone{margin-top:var(--space-md);padding:var(--space-sm) 0;text-align:center}.danger-zone .btn-text-danger{min-height:44px}.rows__item--wrap{flex-wrap:wrap}.rows__avatar--muted{background:var(--color-bg-main);color:var(--color-text-secondary)}.request__actions{display:flex;flex-basis:100%;justify-content:flex-end;gap:var(--space-sm)}@media(min-width:480px){.request__actions{flex-basis:auto;margin-left:auto}}.btn-small{min-height:40px;padding:0 14px;border:0;border-radius:var(--radius-pill);background:var(--color-brand-primary-dark);color:#fff;font:inherit;font-size:var(--font-body-size);font-weight:600;white-space:nowrap;cursor:pointer}.btn-small--ghost{border:1px solid var(--color-border-input);background:var(--color-card-surface);color:var(--color-text-primary)}.btn-small:disabled{opacity:.6}.btn-small:focus-visible,.btn-text:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.detail .card+.card{margin-top:var(--space-md)}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:var(--space-lg);padding:4px;border-radius:14px;background:var(--color-bg-main)}.segmented button{min-height:44px;border:0;border-radius:10px;background:none;color:var(--color-text-secondary);font:inherit;font-size:15px;font-weight:600;cursor:pointer}.segmented button[aria-pressed=true]{background:var(--color-card-surface);color:var(--color-text-primary);border:1px solid var(--border)}.segmented button:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.join{display:flex;flex-direction:column;gap:20px}.found{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-top:20px}.found p{margin:0}.onboard__actions--stack{display:flex;flex-direction:column;gap:var(--space-sm)}@media(min-width:768px){.onboard{min-height:0;margin-top:var(--space-lg);padding:var(--space-xl);border-radius:16px;background:var(--color-card-surface);border:1px solid var(--border)}.quick{grid-template-columns:repeat(2,minmax(0,260px))}.quick__action{flex-direction:row;align-items:center;min-height:72px}.dash__grid,.groups{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.toast{bottom:var(--space-lg)}}@media(prefers-reduced-motion:reduce){.quick__action,.swatches__dot,.toast{transition:none}.loading__spinner{animation-duration:2s}}@keyframes household-spin{to{transform:rotate(360deg)}}a.back{text-decoration:none}.invite-code{margin:4px 0 0}.invite-code input{width:100%;box-sizing:border-box;padding:14px 16px;border-radius:var(--radius-md, 10px);border:1px solid var(--border);background:var(--color-bg-main);color:var(--color-text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:20px;font-weight:600;letter-spacing:.12em;text-align:center}.select-small{min-height:40px;padding:0 10px;border:1px solid var(--color-border-input);border-radius:var(--radius-pill);background:var(--color-card-surface);color:var(--color-text-primary);font:inherit;font-size:var(--font-body-size)}.btn-small--danger{background:var(--color-status-danger-text)}.card--danger{background:transparent;box-shadow:none;padding:var(--space-sm) 0 0;text-align:center}.filters{padding:var(--space-md)}.filters__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm) var(--space-md)}@media(min-width:640px){.filters__grid{grid-template-columns:repeat(3,1fr)}}.trend{padding-top:var(--space-xs)}.trend__chart{display:block;width:100%;overflow:visible}.trend__bar{fill:var(--color-text-primary)}.trend__label{fill:var(--color-text-secondary);font-size:11px;font-family:var(--font-family)}.security__actions,.account__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}.lock-shield{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:var(--color-bg-main, #f5f5f5)}.lock__links{display:flex;justify-content:center;align-items:center;gap:var(--space-md, 16px);margin-top:var(--space-md, 16px)}.marketing-site{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--color-text-primary);font-family:var(--font-family)}.marketing-nav{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border)}.marketing-nav__brand{font-weight:700;font-size:18px;color:inherit;text-decoration:none}.marketing-nav__links{display:flex;align-items:center;gap:var(--space-md)}.marketing-nav__links a{color:inherit;text-decoration:none;font-weight:500}.marketing-nav__cta{padding:8px 16px;border-radius:var(--radius-button);background:var(--inverse);color:var(--inverse-text)}.marketing-main{flex:1;max-width:960px;margin:0 auto;padding:var(--space-xl) var(--space-lg)}.marketing-hero{text-align:center;padding:var(--space-xl) 0}.marketing-hero--compact{padding:var(--space-lg) 0}.marketing-hero h1{font-size:clamp(28px,5vw,44px);margin:0 0 var(--space-md)}.marketing-hero p{max-width:560px;margin:0 auto var(--space-lg);color:var(--color-text-secondary);line-height:1.6}.marketing-hero__cta{display:inline-block;padding:12px 28px;border-radius:var(--radius-button);background:var(--inverse);color:var(--inverse-text);font-weight:600;text-decoration:none}.marketing-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-lg);margin-top:var(--space-xl)}.marketing-feature{padding:var(--space-lg);border-radius:var(--radius-card);background:var(--color-card-surface);border:1px solid var(--border)}.marketing-feature h2{font-size:18px;margin:0 0 8px}.marketing-feature p{margin:0;color:var(--color-text-secondary);line-height:1.5}.marketing-footer{text-align:center;padding:var(--space-lg);color:var(--color-text-secondary);font-size:13px;border-top:1px solid var(--border)}.update-prompt{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:1000;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm) var(--space-md);padding:12px var(--space-md);background:var(--color-card-surface);border-radius:var(--radius-card);border:1px solid var(--border);font-family:var(--font-family);font-size:var(--font-body-size);color:var(--color-text-primary)}.update-prompt__text{margin:0;font-weight:500}.update-prompt__actions{display:flex;gap:var(--space-sm);margin-left:auto}.update-prompt__actions button{min-height:40px;padding:0 var(--space-md);border-radius:var(--radius-button);font:inherit;font-weight:600;cursor:pointer}.update-prompt__later{border:1px solid var(--color-border-input);background:transparent;color:var(--color-text-primary)}.update-prompt__reload{border:0;background:var(--color-brand-primary-dark);color:#fff}.update-prompt__reload:disabled{opacity:.75;cursor:progress}.update-prompt__actions button:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}@media(min-width:768px){.update-prompt{left:auto;right:24px;bottom:24px;max-width:440px}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-lg);background:var(--bg-subtle)}.error-boundary__card{max-width:420px;width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-xl);text-align:center}.error-boundary__title{font-size:var(--font-h1-size);font-weight:var(--font-h1-weight);color:var(--text-primary);margin:0 0 var(--space-sm)}.error-boundary__body{font-size:var(--font-body-size);color:var(--text-secondary);margin:0 0 var(--space-lg)}.error-boundary__actions{display:flex;flex-direction:column;gap:var(--space-sm)}.error-boundary__button{font-size:var(--font-body-size);font-weight:600;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-button);border:1px solid var(--text-primary);background:var(--text-primary);color:var(--inverse-text);cursor:pointer}.error-boundary__button--ghost{background:transparent;color:var(--text-primary);border-color:var(--border)}
