:root,[data-theme=dark]{color-scheme:dark;--bg: #0b1220;--surface: #111b2f;--surface-2: #172339;--field: #0d1628;--border: rgba(148, 163, 184, .16);--text: #eaf0f8;--muted: #93a1b8;--placeholder: var(--muted);--accent: #10b981;--accent-ui: #10b981;--accent-text: #34d399;--on-accent: #04281c;--accent-soft: color-mix(in srgb, var(--accent-ui) 14%, transparent);--btn-solid: var(--accent);--on-btn-solid: var(--on-accent);--focus-ring: var(--accent-ui);--warn: #f59e0b;--warn-bg: rgba(245, 158, 11, .13);--warn-text: #fcd34d;--danger: #f43f5e;--on-danger: #2a0510;--danger-bg: rgba(244, 63, 94, .13);--danger-text: #fda4af;--info: #818cf8;--info-text: #a5b4fc;--rose: #fb7185;--on-rose: #2a0510;--bar-strong: #475a78;--shadow: none;--shadow-pop: 0 12px 40px rgba(0, 0, 0, .45);--scrim: rgba(3, 7, 15, .62);--track: rgba(147, 161, 184, .22);--nav-bg: rgba(11, 18, 32, .94);--nav-inactive: #8796ad;--nav-active: var(--accent-text)}[data-theme=light]{color-scheme:light;--bg: #f1f4f9;--surface: #ffffff;--surface-2: #f5f7fb;--field: #ffffff;--border: #e1e7f0;--text: #0b1220;--muted: #566680;--accent-ui: #059669;--accent-text: #047857;--btn-solid: #0b1220;--on-btn-solid: #ffffff;--warn: #b45309;--warn-bg: #fff6e0;--warn-text: #8a5a00;--danger: #e11d48;--on-danger: #ffffff;--danger-bg: #ffe9ee;--danger-text: #be123c;--info: #4f46e5;--info-text: #4338ca;--rose: #e11d48;--on-rose: #ffffff;--bar-strong: #1e2b45;--shadow: 0 1px 2px rgba(11, 18, 32, .04), 0 4px 14px rgba(11, 18, 32, .05);--shadow-pop: 0 12px 40px rgba(11, 18, 32, .18);--scrim: rgba(11, 18, 32, .42);--track: rgba(86, 102, 128, .2);--nav-bg: rgba(255, 255, 255, .94);--nav-inactive: #64748b;--nav-active: var(--accent-text)}:root{--hero-from: #0b1220;--hero-to: #15233f;--hero-text: #eaf0f8;--hero-muted: #a7b4c9;--hero-glow: #10b981;--hero-accent: #34d399;--hero-danger: #fda4af;--avatar-neutral: #64748b;--avatar-default: #475569;--avatar-on: #ffffff;--avatar-bank-pko: #0c3b8c;--avatar-bank-nest: #0f766e;--bar-stripe: rgba(255, 255, 255, .22);--sidebar-bg: #0b1220;--sidebar-border: rgba(148, 163, 184, .14);--sidebar-text: #d5deeb;--sidebar-muted: #8d9db6;--sidebar-hover: rgba(148, 163, 184, .1);--sidebar-active-bg: rgba(16, 185, 129, .14);--sidebar-active-text: #34d399;--mod-shopping: #10b981;--mod-recipes: #f59e0b;--mod-home: #818cf8;--mod-finance: #10b981;--mod-period: #fb7185;--mod-wishlist: #f472b6;--mod-loyalty: #a3e635;--code-paper: #ffffff;--code-ink: #111111;--r-sm: 10px;--r-md: 12px;--r-lg: 18px;--r-xl: 24px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--fs-title: 1.875rem;--fs-h2: 1.375rem;--fs-card: 1rem;--fs-body: .9375rem;--fs-caption: .8125rem;--tap: 44px;--tabbar-h: 56px;--sidebar-w: 248px;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);--z-bar: 40;--z-scrim: 60;--z-sheet: 70;--z-toast: 80;--z-cover: 90;--ease: cubic-bezier(.4, 0, .2, 1)}:root{--bg-color: var(--bg);--card-bg: var(--surface);--text-main: var(--text);--text-muted: var(--muted);--primary: var(--accent-ui);--primary-hover: color-mix(in srgb, var(--accent-ui) 82%, var(--text));--success: var(--accent-text);--danger-hover: color-mix(in srgb, var(--danger) 85%, var(--text));--radius: var(--r-lg);--radius-sm: var(--r-sm);--transition: all .2s var(--ease);--safe-area-inset-top: var(--safe-t);--safe-area-inset-right: var(--safe-r);--safe-area-inset-bottom: var(--safe-b);--safe-area-inset-left: var(--safe-l);--fin-ink: #0b1220;--fin-bg: var(--bg);--fin-card: var(--surface);--fin-card-2: var(--surface-2);--fin-field: var(--field);--fin-border: var(--border);--fin-text: var(--text);--fin-muted: var(--muted);--fin-mint: var(--accent-ui);--fin-mint-strong: var(--accent-ui);--fin-mint-text: var(--accent-text);--fin-amber: var(--warn);--fin-coral: var(--danger);--fin-indigo: var(--info);--fin-spend-bar: var(--bar-strong);--fin-warn-bg: var(--warn-bg);--fin-warn-text: var(--warn-text);--fin-shadow: var(--shadow)}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}::placeholder{color:var(--placeholder);opacity:1}.ui-scroll-locked,.ui-scroll-locked body{overflow:hidden}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.ui-icon{flex-shrink:0}.ui-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}html[data-privacy=on] .ui-private,html[data-privacy=on] .fin-amount{filter:blur(7px);-webkit-user-select:none;user-select:none}html[data-privacy-cover=on] body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-cover);background:var(--sidebar-bg)}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:44px;padding:0 var(--s-4);border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:700;font-size:var(--fs-body);line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease),transform .1s var(--ease)}.ui-btn:hover{background:var(--surface-2)}.ui-btn:active{transform:translateY(1px)}.ui-btn:disabled,.ui-btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.ui-btn--sm{min-height:36px;padding:0 var(--s-3);font-size:var(--fs-caption);border-radius:var(--r-sm)}.ui-btn--lg{min-height:52px;padding:0 var(--s-5);font-size:1rem}.ui-btn--block{width:100%}.ui-btn--solid{background:var(--btn-solid);border-color:var(--btn-solid);color:var(--on-btn-solid)}.ui-btn--solid:hover{background:var(--btn-solid);filter:brightness(1.1)}.ui-btn--mint{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.ui-btn--mint:hover{background:var(--accent);filter:brightness(1.08)}.ui-btn--outline{background:transparent}.ui-btn--ghost{background:transparent;border-color:transparent;color:var(--text)}.ui-btn--danger{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.ui-btn--danger:hover{background:var(--danger);filter:brightness(1.08)}.ui-icon-btn{display:inline-grid;place-items:center;flex-shrink:0;width:40px;height:40px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);cursor:pointer;text-decoration:none;transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}.ui-icon-btn:hover{background:var(--surface-2)}.ui-icon-btn--sm{width:32px;height:32px;border-radius:var(--r-sm)}.ui-icon-btn--ghost{background:transparent;border-color:transparent}.ui-icon-btn[aria-pressed=true]{color:var(--accent-text);border-color:var(--accent-ui)}@media(pointer:coarse){.ui-icon-btn{width:var(--tap);height:var(--tap)}.ui-icon-btn--sm{width:36px;height:36px}}.ui-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);color:var(--text)}.ui-card--none{padding:0}.ui-card--sm{padding:var(--s-3)}.ui-card--md{padding:var(--s-4)}.ui-card--lg{padding:var(--s-5)}.ui-card--interactive{cursor:pointer;transition:background .15s var(--ease)}.ui-card--interactive:hover{background:var(--surface-2)}.ui-hero{--hero-glow-color: var(--hero-glow);position:relative;overflow:hidden;padding:var(--s-5) var(--s-4);border-radius:var(--r-xl);color:var(--hero-text);background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--hero-glow-color) 30%,transparent),transparent 60%),linear-gradient(160deg,var(--hero-from),var(--hero-to));border:1px solid var(--sidebar-border);container-type:inline-size}.ui-hero--amber{--hero-glow-color: var(--mod-recipes)}.ui-hero--indigo{--hero-glow-color: var(--mod-home)}.ui-hero--rose{--hero-glow-color: var(--mod-period)}.ui-hero p{margin:0}.ui-hero__eyebrow{color:var(--hero-muted);font-size:var(--fs-caption);font-weight:600}.ui-hero__value{margin-top:var(--s-1)!important;font-size:clamp(2rem,11cqi,2.75rem);font-weight:800;letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums}.ui-hero__caption{margin-top:var(--s-2)!important;color:var(--hero-muted);font-size:var(--fs-body)}.ui-kpi{display:flex;flex-direction:column;gap:2px;min-width:0;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border)}.ui-kpi__label{color:var(--muted);font-size:var(--fs-caption);font-weight:600}.ui-kpi__value{font-size:1.15rem;font-weight:800;font-variant-numeric:tabular-nums}.ui-kpi--danger .ui-kpi__value{color:var(--danger-text)}.ui-kpi--ok .ui-kpi__value{color:var(--accent-text)}.ui-field{display:flex;flex-direction:column;gap:6px;min-width:0}.ui-field__label{color:var(--text);font-size:var(--fs-caption);font-weight:700}.ui-field__hint{margin:0;color:var(--muted);font-size:var(--fs-caption)}.ui-field__error{display:flex;align-items:center;gap:6px;margin:0;color:var(--danger-text);font-size:var(--fs-caption);font-weight:600}.ui-input{width:100%;min-height:46px;padding:0 var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--field);color:var(--text);font:inherit;font-size:1rem;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.ui-input:focus{outline:none;border-color:var(--focus-ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus-ring) 24%,transparent)}.ui-input[aria-invalid=true]{border-color:var(--danger)}.ui-textarea{padding:var(--s-3);resize:vertical;line-height:1.4}.ui-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-inline-end:36px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}.ui-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);min-height:var(--tap)}.ui-toggle-row__text{display:flex;flex-direction:column;min-width:0}.ui-toggle-row__label{font-weight:650}.ui-toggle-row__hint{color:var(--muted);font-size:var(--fs-caption)}.ui-toggle{position:relative;flex-shrink:0;width:48px;height:28px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--track);cursor:pointer;transition:background .15s var(--ease)}.ui-toggle__knob{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:var(--text);transition:transform .18s var(--ease)}.ui-toggle[aria-checked=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.ui-toggle[aria-checked=true] .ui-toggle__knob{transform:translate(20px);background:var(--on-accent)}.ui-toggle:disabled{opacity:.5}.ui-stepper{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:var(--r-md);background:var(--field)}.ui-stepper__btn{display:grid;place-items:center;width:44px;height:44px;border:0;background:transparent;color:var(--text);cursor:pointer}.ui-stepper__btn:disabled{opacity:.4;cursor:not-allowed}.ui-stepper__value{min-width:40px;text-align:center;font-weight:800;font-variant-numeric:tabular-nums}.ui-segmented{display:flex;gap:2px;padding:3px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.ui-segmented__item{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 var(--s-3);border:0;border-radius:var(--r-sm);background:transparent;color:var(--muted);font:inherit;font-size:var(--fs-caption);font-weight:700;cursor:pointer}.ui-segmented__item.is-active{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--border),var(--shadow)}.ui-chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}.ui-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 var(--s-3);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-caption);font-weight:650;cursor:pointer}.ui-chip.is-active{background:var(--accent-soft);border-color:var(--accent-ui);color:var(--accent-text)}.ui-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-sheet);display:flex;align-items:flex-end;justify-content:center;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:ui-fade .18s var(--ease)}.ui-sheet{display:flex;flex-direction:column;width:100%;max-height:min(92dvh,760px);padding:0 var(--s-4) max(var(--s-4),var(--safe-b));border:1px solid var(--border);border-bottom:0;border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--surface);color:var(--text);box-shadow:var(--shadow-pop);animation:ui-rise .24s var(--ease);touch-action:pan-y}.ui-sheet:focus{outline:none}.ui-sheet__grab{display:grid;place-items:center;height:24px;margin:0 calc(var(--s-4) * -1);cursor:grab;touch-action:none}.ui-sheet__grab span{width:40px;height:4px;border-radius:var(--r-pill);background:var(--track)}.ui-sheet__header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding-bottom:var(--s-3)}.ui-sheet__title{margin:0;font-size:var(--fs-h2);font-weight:800;letter-spacing:-.01em}.ui-sheet__body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.ui-sheet__footer,.ui-sheet__actions{display:flex;gap:var(--s-2);justify-content:flex-end;padding-top:var(--s-4)}.ui-sheet__form{display:flex;flex-direction:column;gap:var(--s-4)}.ui-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}.ui-sheet__message{margin:0;color:var(--muted);line-height:1.45}@media(min-width:720px){.ui-sheet-backdrop{align-items:center;padding:var(--s-5)}.ui-sheet{max-width:480px;border-bottom:1px solid var(--border);border-radius:var(--r-xl);animation-name:ui-pop}.ui-sheet--lg{max-width:640px}.ui-sheet__grab{display:none}.ui-sheet__header{padding-top:var(--s-4)}}@keyframes ui-fade{0%{opacity:0}}@keyframes ui-rise{0%{transform:translateY(40px);opacity:.6}}@keyframes ui-pop{0%{transform:scale(.97);opacity:0}}.ui-section-tabs{display:flex;gap:var(--s-2);overflow-x:auto;scrollbar-width:none;padding:2px 0}.ui-section-tabs::-webkit-scrollbar{display:none}.ui-section-tab{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 var(--s-3);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--muted);font:inherit;font-size:var(--fs-caption);font-weight:700;text-decoration:none;white-space:nowrap;cursor:pointer}.ui-section-tab.is-active{background:var(--btn-solid);border-color:var(--btn-solid);color:var(--on-btn-solid)}.ui-section-tabs__count{min-width:18px;padding:0 5px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-text);font-size:.7rem;text-align:center}.ui-section-tab.is-active .ui-section-tabs__count{background:color-mix(in srgb,var(--on-btn-solid) 20%,transparent);color:var(--on-btn-solid)}.ui-fab{display:grid;place-items:center;width:58px;height:58px;border:0;border-radius:50%;background:linear-gradient(145deg,var(--accent),var(--accent-ui));color:var(--on-accent);box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 38%,transparent),0 0 0 5px var(--bg);cursor:pointer;touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;transition:transform .12s var(--ease)}.ui-fab:active{transform:scale(.94)}.ui-empty{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-6) var(--s-4);text-align:center}.ui-empty h2{margin:var(--s-2) 0 0;font-size:var(--fs-h2);font-weight:800}.ui-empty p{max-width:34ch;margin:0;color:var(--muted);line-height:1.45}.ui-empty__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2);margin-top:var(--s-3)}.ui-banner{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-size:var(--fs-body)}.ui-banner__text{flex:1;min-width:0}.ui-banner__text p{margin:0}.ui-banner--warn{background:var(--warn-bg);color:var(--warn-text);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.ui-banner--danger{background:var(--danger-bg);color:var(--danger-text);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}.ui-banner--ok{background:var(--accent-soft);color:var(--accent-text);border-color:color-mix(in srgb,var(--accent-ui) 40%,transparent)}.ui-banner__dismiss{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:var(--r-sm);background:transparent;color:inherit;cursor:pointer}.ui-skeleton{display:inline-block;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--surface-2),var(--track),var(--surface-2));background-size:200% 100%;animation:ui-shimmer 1.4s linear infinite}@keyframes ui-shimmer{to{background-position:-200% 0}}.ui-toast-region{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-b) + var(--s-5));z-index:var(--z-toast);display:flex;justify-content:center;padding:0 var(--s-4);pointer-events:none}.ui-toast{display:flex;align-items:center;gap:var(--s-3);max-width:480px;padding:var(--s-2) var(--s-3) var(--s-2) var(--s-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);color:var(--text);box-shadow:var(--shadow-pop);pointer-events:auto;animation:ui-rise .2s var(--ease)}.ui-toast--error{border-color:var(--danger)}.ui-toast__close{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--muted);cursor:pointer}@media(min-width:1024px){.ui-toast-region{bottom:var(--s-5)}}.ui-badge{display:inline-flex;align-items:center;gap:4px;min-height:22px;padding:0 var(--s-2);border-radius:var(--r-pill);background:var(--surface-2);color:var(--muted);font-size:.72rem;font-weight:700;white-space:nowrap}.ui-badge--ok{background:var(--accent-soft);color:var(--accent-text)}.ui-badge--warn{background:var(--warn-bg);color:var(--warn-text)}.ui-badge--danger{background:var(--danger-bg);color:var(--danger-text)}.ui-badge--info{background:color-mix(in srgb,var(--info) 14%,transparent);color:var(--info-text)}.ui-tile{--tile-color: var(--muted);--tile-tint: var(--surface-2);display:inline-grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:var(--r-md);background:var(--tile-tint);color:var(--tile-color)}.ui-tile--lg{width:48px;height:48px}.ui-tile--xl{width:72px;height:72px;border-radius:var(--r-xl)}.ui-tile--mint{--tile-color: var(--accent-text);--tile-tint: color-mix(in srgb, var(--mod-shopping) 16%, transparent)}.ui-tile--amber{--tile-color: var(--warn-text);--tile-tint: color-mix(in srgb, var(--mod-recipes) 16%, transparent)}.ui-tile--indigo{--tile-color: var(--info-text);--tile-tint: color-mix(in srgb, var(--mod-home) 16%, transparent)}.ui-tile--rose{--tile-color: var(--rose);--tile-tint: color-mix(in srgb, var(--mod-period) 16%, transparent)}.ui-tile--pink{--tile-color: var(--text);--tile-tint: color-mix(in srgb, var(--mod-wishlist) 22%, transparent)}.ui-tile--lime{--tile-color: var(--text);--tile-tint: color-mix(in srgb, var(--mod-loyalty) 22%, transparent)}.ui-tile__emoji{font-size:1.2rem;line-height:1}.ui-date-tile{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:48px;border-radius:var(--r-md);background:var(--surface-2);line-height:1.1}.ui-date-tile strong{font-size:1.05rem}.ui-date-tile small{color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase}.ui-avatar{display:inline-grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);font-weight:800}.ui-avatar--sm{width:32px;height:32px;font-size:var(--fs-caption)}.ui-progress{height:8px;overflow:hidden;border-radius:var(--r-pill);background:var(--track)}.ui-progress span{color:var(--on-accent);display:block;height:100%;border-radius:inherit;background:var(--accent-ui);transition:width .3s var(--ease)}.ui-progress--warn span{color:var(--on-accent);background:var(--warn)}.ui-progress--danger span{color:var(--on-danger);background:var(--danger)}.ui-rowgroup{overflow:hidden;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow)}.ui-rowgroup>.ui-row+.ui-row{border-top:1px solid var(--border)}.ui-group-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin:var(--s-5) var(--s-1) var(--s-2)}.ui-group-header h3{display:flex;align-items:center;gap:var(--s-2);margin:0;color:var(--muted);font-size:var(--fs-caption);font-weight:800;letter-spacing:.04em;text-transform:uppercase}.ui-group-header--danger h3{color:var(--danger-text)}.ui-group-header__count{padding:0 6px;border-radius:var(--r-pill);background:var(--surface-2);font-size:.7rem}.ui-row{display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:56px;padding:var(--s-2) var(--s-4);border:0;background:transparent;color:var(--text);font:inherit;text-align:start;text-decoration:none}.ui-row--pressable{cursor:pointer}.ui-row--pressable:hover{background:var(--surface-2)}.ui-row__leading{display:inline-flex;flex-shrink:0}.ui-row__main{display:flex;flex:1;flex-direction:column;min-width:0}.ui-row__title{overflow:hidden;font-weight:650;text-overflow:ellipsis}.ui-row__subtitle{overflow:hidden;color:var(--muted);font-size:var(--fs-caption);text-overflow:ellipsis}.ui-row__trailing{display:inline-flex;align-items:center;flex-shrink:0;gap:var(--s-2);font-variant-numeric:tabular-nums}.ui-period{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow)}.ui-period span{min-width:140px;text-align:center;font-size:.95rem;font-weight:700}.ui-period button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}.ui-period button:hover{background:var(--surface-2);color:var(--text)}*{box-sizing:border-box}body{margin:0;background-color:var(--bg-color);color:var(--text-main);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:background-color var(--transition);overscroll-behavior:none}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.header{display:flex;justify-content:space-between;align-items:center;padding:24px 0 16px;gap:12px}.offline-banner{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px;padding:10px 16px;font-size:14px;font-weight:500;text-align:center;color:var(--danger);background:var(--card-bg);border:1px solid var(--danger);border-radius:var(--radius-sm)}.plan-expired-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;padding:12px 16px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--warn) 12%,var(--card-bg));border:1px solid color-mix(in srgb,var(--warn) 35%,var(--border));font-size:14px}.plan-expired-banner p{margin:0;flex:1 1 200px}.plan-expired-banner-actions{display:flex;align-items:center;gap:8px}.plan-expired-banner-link{font-weight:700;color:var(--primary);text-decoration:none}.plan-expired-banner-dismiss{background:transparent;border:none;color:var(--text-muted, var(--text));cursor:pointer;font-size:13px;padding:4px 8px}.header h1{margin:0;font-size:26px;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,var(--accent-text),var(--info-text));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.tab{flex:1;background:transparent;border:none;padding:10px;font-size:14px;font-weight:600;color:var(--text-muted);cursor:pointer;border-radius:8px;transition:var(--transition)}.tab.active{background:var(--card-bg);color:var(--primary);box-shadow:var(--shadow)}.card-title{margin:0 0 14px;font-size:17px}.empty-hint{text-align:center;color:var(--text-muted);margin-top:40px}.input-main{flex:1;min-width:0;background:var(--bg-color);border:1px solid var(--border);color:var(--text-main);border-radius:var(--radius-sm);padding:12px 14px;font-size:16px;outline:none;transition:var(--transition)}.input-main:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus-ring) 25%,transparent)}.btn-primary{background:var(--btn-solid);color:var(--on-btn-solid);border:none;font-weight:700;border-radius:var(--radius-sm);padding:12px 18px;font-size:15px;cursor:pointer;transition:var(--transition);white-space:nowrap}.btn-primary:hover{filter:brightness(1.08)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-block{width:100%}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);padding:10px 14px;font-weight:600;font-size:14px;cursor:pointer;transition:var(--transition)}.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}.btn-danger{background:var(--danger);color:var(--on-danger);border:none;border-radius:var(--radius-sm);padding:10px 16px;font-weight:700;cursor:pointer;transition:var(--transition)}.btn-danger:hover{filter:brightness(1.08)}.icon-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;font-size:15px;cursor:pointer;line-height:1;transition:var(--transition)}.icon-btn:hover{border-color:var(--primary)}.view-toggle{display:flex;gap:4px;background:var(--border);padding:4px;border-radius:12px;margin-bottom:14px}.group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:8px;padding:4px 4px 8px;border-bottom:2px solid var(--border)}.login-screen,.splash-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;flex-direction:column;gap:12px}.splash-screen{background:var(--hero-from);color:var(--hero-muted)}.splash-screen .login-emoji{filter:drop-shadow(0 0 18px var(--hero-glow))}.login-card{width:100%;max-width:380px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 24px;display:flex;flex-direction:column;gap:16px}.login-brand{text-align:center}.login-emoji{font-size:44px}.login-brand h1{margin:8px 0 4px;font-size:24px;font-weight:800;background:linear-gradient(135deg,var(--accent-text),var(--info-text));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.login-brand p{margin:0;color:var(--muted);font-size:14px}.field{display:flex;flex-direction:column;gap:6px}.page-stack{display:flex;flex-direction:column;gap:16px}.page-title{margin:0;font-size:22px}.warranties-back{display:inline-block;margin-bottom:8px}.danger-text{color:var(--danger-text)}.legal-content p{margin:0 0 12px}@keyframes slideIn{0%{transform:translate(-12px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeInOutBanner{0%{opacity:0;transform:scale(.5)}20%{opacity:1;transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes fadeInOutCenter{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.8)}}.finance-form{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.finance-form-row{display:flex;flex-wrap:wrap;gap:8px}.finance-form-row>*{flex:1 1 120px;min-width:0}.finance-paste{width:100%;min-height:100px;resize:vertical;font:inherit;color:var(--text-main);background:var(--bg-color);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px}.period-page{display:grid;gap:var(--s-3);grid-template-columns:minmax(0,1fr);grid-template-areas:"note" "hero" "calendar" "stats" "reminder" "history" "footer";align-items:start}.period-page>*{min-width:0}.period-side{display:contents}.period-note-card{grid-area:note}.period-hero-slot{grid-area:hero}.period-calendar-card{grid-area:calendar}.period-stats{grid-area:stats}.period-reminder{grid-area:reminder}.period-history{grid-area:history}.period-footer{grid-area:footer}@media(min-width:1024px){.period-page{gap:var(--s-4);grid-template-columns:minmax(280px,1fr) minmax(340px,1.1fr) minmax(240px,.75fr);grid-template-areas:"hero calendar side" "stats calendar side" "reminder calendar side" "footer footer footer"}.period-side{display:flex;flex-direction:column;gap:var(--s-4);grid-area:side}.period-side .period-history{order:1}.period-side .period-note-card{order:2}}.period-reminder-banner{margin-bottom:var(--s-3)}.period-hero{display:flex;flex-direction:column;gap:var(--s-4)}.period-hero__eyebrow{display:flex;align-items:center;gap:var(--s-2)}.period-hero__eyebrow .ui-icon{color:var(--hero-danger)}.period-hero__main{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-3)}.period-hero__text{min-width:0}.period-hero__text .ui-hero__value{margin-top:0!important}.period-hero__note{font-size:var(--fs-caption)!important}.period-ring{position:relative;flex-shrink:0;width:60px;height:60px}.period-ring svg{display:block;transform:rotate(-90deg)}.period-ring__track{fill:none;stroke:color-mix(in srgb,var(--hero-text) 16%,transparent);stroke-width:5}.period-ring__bar{fill:none;stroke:var(--mod-period);stroke-width:5;stroke-linecap:round}.period-ring__label{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:1rem;font-weight:800;font-variant-numeric:tabular-nums}.period-hero__actions{display:flex;gap:var(--s-2)}.period-hero .period-hero__btn{flex:1;min-width:0;padding-inline:var(--s-3);white-space:normal;line-height:1.15}.period-hero .period-hero__btn--solid{flex:1.25;background:var(--mod-period);border-color:var(--mod-period);color:var(--hero-from)}.period-hero .period-hero__btn--solid:hover:not(:disabled){background:color-mix(in srgb,var(--mod-period) 86%,var(--hero-text))}.period-hero .period-hero__btn--ghost{background:color-mix(in srgb,var(--hero-text) 9%,transparent);border-color:var(--sidebar-border);color:var(--hero-text)}.period-hero .period-hero__btn--ghost:hover:not(:disabled){background:color-mix(in srgb,var(--hero-text) 16%,transparent)}.period-calendar-card{display:flex;flex-direction:column;gap:var(--s-3)}.period-calendar-head{position:relative;display:flex;align-items:center;justify-content:center}.period-switcher span:first-letter{text-transform:uppercase}.period-calendar-today{position:absolute;inset-inline-end:0;min-height:32px;padding:0 var(--s-2);border:0;border-radius:var(--r-sm);background:transparent;color:var(--accent-text);font:inherit;font-size:var(--fs-caption);font-weight:800;cursor:pointer}.period-calendar-today:hover{background:var(--accent-soft)}.period-weekdays,.period-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px 2px}.period-weekdays span{padding:var(--s-1) 0;color:var(--muted);font-size:var(--fs-caption);font-weight:700;text-align:center}.period-day{position:relative;display:grid;place-items:center;width:100%;max-width:48px;aspect-ratio:1;min-height:36px;margin-inline:auto;padding:0;border:2px solid transparent;border-radius:50%;background:transparent;color:var(--text);font:inherit;font-size:.9375rem;font-weight:650;font-variant-numeric:tabular-nums;cursor:pointer}.period-day:hover{background:var(--surface-2)}.period-day.is-out{color:var(--muted);opacity:.6}.period-day.flow-light{background:color-mix(in srgb,var(--rose) 22%,var(--surface));color:var(--text)}.period-day.flow-medium{background:color-mix(in srgb,var(--rose) 48%,var(--surface));color:var(--text)}.period-day.flow-heavy{background:var(--rose);color:var(--on-rose)}.period-day.is-fertile-ext{background:color-mix(in srgb,var(--info) 12%,transparent)}.period-day.is-fertile-core{background:color-mix(in srgb,var(--info) 28%,transparent)}.period-day.is-predicted{border-color:var(--rose);border-style:dashed}.period-day.is-range-low,.period-day.is-range-high{border-color:var(--rose);border-style:dotted}.period-day.is-ovulation{box-shadow:inset 0 0 0 2px var(--info)}.period-day.is-today{border-color:var(--accent-ui);border-style:solid}.period-day.is-selected{outline:2px solid var(--text);outline-offset:2px}.period-day.has-note:after{content:"";position:absolute;bottom:5px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor}.period-legend{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-4);margin:0;padding:0;list-style:none;color:var(--muted);font-size:var(--fs-caption);font-weight:600}.period-legend__item{display:inline-flex;align-items:center;gap:6px}.period-legend__swatch{flex-shrink:0;width:12px;height:12px;border:2px solid transparent;border-radius:50%}.period-legend__swatch.is-logged{background:var(--rose);color:var(--on-rose)}.period-legend__swatch.is-predicted{border-color:var(--rose);border-style:dashed}.period-legend__swatch.is-range{border-color:var(--rose);border-style:dotted}.period-legend__swatch.is-fertile{background:color-mix(in srgb,var(--info) 35%,transparent)}.period-legend__swatch.is-ovulation{box-shadow:inset 0 0 0 2px var(--info)}.period-skeleton{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.period-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2)}@media(min-width:1024px){.period-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.period-stats .ui-kpi:nth-child(3){grid-column:1 / -1}}.period-reminder{display:flex;flex-direction:column;gap:var(--s-2)}.period-reminder__card{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3) var(--s-4)}.period-reminder__row{display:flex;align-items:center;gap:var(--s-3)}.period-reminder__row .ui-toggle-row{flex:1;min-width:0}.period-reminder__hint{margin:0;color:var(--muted);font-size:var(--fs-caption);line-height:1.45}.period-history__title{margin:0 0 var(--s-2);font-size:var(--fs-card);font-weight:800}.period-history__empty{margin:0;padding:var(--s-4);color:var(--muted);font-size:var(--fs-body)}.period-footer{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2);color:var(--muted);font-size:var(--fs-caption);line-height:1.5}.period-footer p{margin:0}.period-footer .ui-btn{align-self:flex-start}.period-sheet__sub{margin:calc(var(--s-1) * -1) 0 var(--s-3);color:var(--muted);font-size:var(--fs-caption)}.period-sheet__sub:first-letter{text-transform:uppercase}.period-sheet__actions{display:flex;gap:var(--s-2)}.period-sheet__actions .ui-btn{flex:1}.period-sheet__actions .ui-btn:last-child{flex:1.6}.period-sheet__actions .period-sheet__clear{background:transparent;border-color:var(--danger);color:var(--danger-text)}.period-consent__list{margin:0 0 var(--s-3);padding-inline-start:1.25rem;line-height:1.5}.period-consent__list li+li{margin-top:var(--s-1)}.period-consent__p{margin:0 0 var(--s-3);color:var(--muted);font-size:var(--fs-caption);line-height:1.5}.period-consent__check{display:flex;gap:var(--s-3);align-items:flex-start;margin:var(--s-3) 0;padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-body);cursor:pointer}.period-consent__check input{flex-shrink:0;width:20px;height:20px;margin:1px 0 0;accent-color:var(--accent-ui)}.period-consent__link{color:var(--accent-text);font-weight:700}.shell{min-height:100dvh;background:var(--bg);color:var(--text)}.shell-skip{position:absolute;left:-9999px;top:var(--s-3);z-index:calc(var(--z-cover) + 1);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-weight:700}.shell-skip:focus{left:var(--s-3)}.shell-main{min-width:0}.shell-sidebar,.shell-only-desktop{display:none}.shell-topbar{width:100%;max-width:1320px;margin:0 auto;padding:calc(var(--s-4) + var(--safe-t)) max(var(--s-4),var(--safe-r)) var(--s-2) max(var(--s-4),var(--safe-l))}.shell-topbar__row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.shell-topbar__title{min-width:0}.shell-topbar h1{margin:0;font-size:var(--fs-title);font-weight:800;letter-spacing:-.02em;line-height:1.1;overflow-wrap:anywhere}.shell-topbar__title p{margin:2px 0 0;color:var(--muted);font-size:var(--fs-caption)}.shell-topbar__actions{display:flex;align-items:center;flex-shrink:0;gap:var(--s-2)}.shell-topbar__below{display:flex;justify-content:center;margin-top:var(--s-3)}.shell-topbar__tabs{margin-top:var(--s-3)}.shell-content{width:100%;max-width:1320px;margin:0 auto;padding:var(--s-1) max(var(--s-4),var(--safe-r)) calc(var(--tabbar-h) + var(--safe-b) + 40px) max(var(--s-4),var(--safe-l))}.shell-content:focus{outline:none}.shell--guest .shell-content{padding-bottom:calc(var(--s-6) + var(--safe-b))}.shell-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-bar);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;align-items:start;height:calc(var(--tabbar-h) + var(--safe-b));padding:0 var(--safe-r) var(--safe-b) var(--safe-l);border-top:1px solid var(--border);background:var(--nav-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}html.keyboard-open .shell-tabbar{display:none}.shell-tabbar__fab{display:grid;place-items:center;margin-top:-20px}.shell-tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:var(--tabbar-h);min-width:0;border:0;background:transparent;color:var(--nav-inactive);font:inherit;font-size:.7rem;font-weight:700;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.shell-tab>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-tab__icon{position:relative;display:grid;place-items:center;padding:3px 16px;border-radius:var(--r-pill);transition:background .15s var(--ease)}.shell-tab.is-active{color:var(--nav-active)}.shell-tab.is-active .shell-tab__icon{background:var(--accent-soft)}.shell-tab__badge{position:absolute;top:1px;right:12px;width:9px;height:9px;border-radius:50%;background:var(--danger);color:var(--on-danger);box-shadow:0 0 0 2px var(--bg)}.shell-more__account{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2)}.shell-more__group{display:flex;flex-direction:column;gap:var(--s-3);margin-top:var(--s-5)}.shell-more__group h3{margin:0;color:var(--muted);font-size:var(--fs-caption);font-weight:800;letter-spacing:.04em;text-transform:uppercase}.shell-more__tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2)}.shell-more__tile{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;padding:var(--s-3) var(--s-1);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2);color:var(--text);font:inherit;font-size:var(--fs-caption);font-weight:650;text-align:center;text-decoration:none;cursor:pointer}.shell-more__tile:hover{border-color:var(--accent-ui)}.shell-more__tile span:last-child{max-width:100%;overflow-wrap:anywhere}.shell-quick__tiles{margin-top:var(--s-3)}.shell-more__foot{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-5)}@media(min-width:1024px){.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.shell--guest{display:block}.shell-sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100dvh;padding:calc(var(--s-5) + var(--safe-t)) var(--s-3) var(--s-3);overflow-y:auto;border-right:1px solid var(--sidebar-border);background:var(--sidebar-bg);color:var(--sidebar-text)}.shell-tabbar{display:none}.shell-only-desktop{display:inline-flex}.shell-topbar{padding-top:calc(var(--s-5) + var(--safe-t))}.shell-topbar__tabs{display:none}.shell-content{padding-bottom:var(--s-6)}.ui-toast-region{left:var(--sidebar-w)}}.shell-brand{display:flex;align-items:center;gap:var(--s-3);padding:0 var(--s-2) var(--s-3);color:var(--sidebar-text);text-decoration:none}.shell-brand__mark{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-md);background:linear-gradient(145deg,var(--accent),var(--accent-ui));color:var(--on-accent);font-size:1.1rem;font-weight:900}.shell-brand__text strong{font-size:1.05rem;letter-spacing:-.01em}.shell-sidebar__nav{display:flex;flex-direction:column}.shell-sidebar__label{margin:var(--s-5) var(--s-3) var(--s-2);color:var(--sidebar-muted);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.shell-nav-link{display:flex;align-items:center;gap:var(--s-3);min-height:42px;padding:0 var(--s-3);border-radius:var(--r-md);color:var(--sidebar-text);font-weight:650;text-decoration:none}.shell-nav-link:hover,.shell-subnav__link:hover{background:var(--sidebar-hover)}.shell-nav-link.is-active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text)}.shell-subnav{display:flex;flex-direction:column;gap:2px;margin:2px 0 var(--s-2) 22px;padding-left:var(--s-3);border-left:1px solid var(--sidebar-border)}.shell-subnav__link{display:flex;align-items:center;gap:var(--s-2);min-height:36px;padding:0 var(--s-3);border:0;border-radius:var(--r-sm);background:transparent;color:var(--sidebar-muted);font:inherit;font-size:var(--fs-body);font-weight:600;text-align:start;text-decoration:none;cursor:pointer}.shell-subnav__link.is-active{color:var(--sidebar-active-text)}.shell-subnav__link small{margin-left:auto;font-size:.7rem}.shell-sidebar__foot{display:flex;flex-direction:column;gap:var(--s-3);margin-top:auto;padding-top:var(--s-4);border-top:1px solid var(--sidebar-border)}.shell-sidebar__tools{display:flex;gap:var(--s-2)}.shell-sidebar .ui-icon-btn{border-color:var(--sidebar-border);background:transparent;color:var(--sidebar-text)}.shell-sidebar .ui-icon-btn:hover{background:var(--sidebar-hover)}.shell-sidebar .ui-icon-btn[aria-pressed=true]{border-color:var(--sidebar-active-text);color:var(--sidebar-active-text)}.shell-sidebar .ui-chip{min-height:30px;padding:0 var(--s-2);border-color:var(--sidebar-border);background:transparent;color:var(--sidebar-text);font-size:.72rem}.shell-sidebar .ui-chip.is-active{background:var(--sidebar-active-bg);border-color:var(--sidebar-active-text);color:var(--sidebar-active-text)}.shell-user{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2);border-radius:var(--r-md);color:var(--sidebar-text);text-decoration:none}.shell-user:hover,.shell-user.is-active{background:var(--sidebar-hover)}.shell-user__text{display:flex;flex:1;flex-direction:column;min-width:0}.shell-user__text strong,.shell-user__text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-user__text small{color:var(--sidebar-muted)}.auth{--auth-glow: color-mix(in srgb, var(--accent-ui) 16%, transparent);min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);background:radial-gradient(120% 50% at 50% 0%,var(--auth-glow),transparent 70%),var(--bg);color:var(--text)}.auth__hero{display:none}.auth__panel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-4);min-width:0;padding:calc(var(--s-5) + var(--safe-t)) max(var(--s-4),var(--safe-r)) calc(var(--s-5) + var(--safe-b)) max(var(--s-4),var(--safe-l))}.auth__card{display:flex;flex-direction:column;gap:var(--s-4);width:100%;max-width:420px}.auth__card--wide,.auth__foot--wide{max-width:720px}.auth__brand{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);margin-bottom:var(--s-2);text-align:center}.auth__wordmark{margin:0;font-size:var(--fs-h2);font-weight:800;letter-spacing:-.02em}.auth__brand h1{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.auth__brand--titled h1{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal;font-size:var(--fs-title);font-weight:800;letter-spacing:-.02em}.auth__brand--titled .auth__mark--lg{width:44px;height:44px;border-radius:var(--r-md);font-size:1.3rem}.auth__subtitle{margin:0;color:var(--muted);font-size:var(--fs-body)}.auth-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-md);background:linear-gradient(145deg,var(--accent),var(--accent-ui));color:var(--on-accent);font-size:1.1rem;font-weight:900}.auth__mark--lg{width:64px;height:64px;border-radius:var(--r-xl);font-size:1.9rem}.auth__form{display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow)}.auth__password{position:relative}.auth__password .ui-input{padding-inline-end:52px}.auth__reveal{position:absolute;inset-block:0;inset-inline-end:0;display:grid;place-items:center;width:var(--tap);border:0;background:transparent;color:var(--muted);cursor:pointer}.auth__reveal:hover{color:var(--text)}.auth__message{display:flex;align-items:flex-start;gap:var(--s-2);margin:0;font-size:var(--fs-caption);font-weight:600}.auth__message--error{color:var(--danger-text)}.auth__message--ok{color:var(--accent-text)}.auth__switch{margin:0;color:var(--muted);font-size:var(--fs-body);text-align:center}.auth__link{padding:0;border:0;background:transparent;color:var(--accent-text);font:inherit;font-weight:700;text-decoration:none;cursor:pointer}.auth__link:hover{text-decoration:underline}.auth__foot{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);width:100%;max-width:420px}.auth__features{margin:0;padding:0;list-style:none}.auth__features li{display:flex;align-items:center;gap:var(--s-3);min-height:56px;padding:var(--s-2) var(--s-4);font-weight:650}.auth__price{margin:0;color:var(--muted);font-size:var(--fs-caption);text-align:center}.auth__stack{display:flex;flex-direction:column;gap:var(--s-3)}.auth__prose{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface);line-height:1.55}.auth__prose h2{margin:0;font-size:var(--fs-h2)}.auth__prose p{margin:0;color:var(--muted)}.auth__prose img{width:100%;max-height:220px;object-fit:cover;border-radius:var(--r-md)}@media(min-width:960px){.auth{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:var(--bg)}.auth__hero{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:var(--s-6);padding:var(--s-6) clamp(var(--s-6),5vw,72px);overflow:hidden;color:var(--hero-text);background:radial-gradient(90% 70% at 0% 0%,color-mix(in srgb,var(--hero-glow) 28%,transparent),transparent 65%),linear-gradient(160deg,var(--hero-from),var(--hero-to))}.auth__hero-brand{display:flex;align-items:center;gap:var(--s-3);font-size:1.05rem}.auth__hero-copy{max-width:420px}.auth__hero-title{margin:0 0 var(--s-3);font-size:clamp(2rem,3.2vw,2.8rem);font-weight:800;line-height:1.08;letter-spacing:-.03em}.auth__hero-text{margin:0;color:var(--hero-muted);line-height:1.5}.auth__hero-chips{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:0;padding:0;list-style:none}.auth__hero-chips li{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--sidebar-border);border-radius:var(--r-pill);background:var(--sidebar-hover);color:var(--hero-text);font-size:var(--fs-caption);font-weight:700}.auth__panel{padding:var(--s-6)}.auth__brand{align-items:flex-start;margin-bottom:0;text-align:start}.auth__brand .auth-mark,.auth__wordmark{display:none}.auth__brand--titled h1{font-size:var(--fs-title)}.auth__brand h1{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal;font-size:var(--fs-title);font-weight:800;letter-spacing:-.02em}.auth__form{padding:0;border:0;background:transparent;box-shadow:none}.auth__foot{align-items:flex-start}.auth__switch{text-align:start}.auth__card--wide .auth__brand h1{font-size:var(--fs-h2)}.auth__subtitle{font-size:var(--fs-caption)}}.language-switcher{position:relative;display:inline-flex;align-items:center;gap:var(--s-2);min-height:40px;padding:0 var(--s-3);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text);font-size:var(--fs-caption);font-weight:700}.language-switcher__select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.language-switcher__select option{background:var(--surface);color:var(--text)}.language-switcher:focus-within{outline:2px solid var(--focus-ring);outline-offset:2px}.language-switcher__select:focus{outline:none}.onboarding-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-cover);pointer-events:none}.onboarding-scrim{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:auto}.onboarding-highlight{position:absolute;z-index:1;border-radius:var(--r-md);box-shadow:0 0 0 9999px var(--scrim);outline:2px solid var(--accent-ui);pointer-events:none}.onboarding-tooltip{position:absolute;z-index:2;width:min(280px,calc(100vw - 24px));padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-pop);color:var(--text);pointer-events:auto}.onboarding-step{margin:0 0 var(--s-1);color:var(--muted);font-size:var(--fs-caption)}.onboarding-message{margin:0 0 var(--s-3);font-size:var(--fs-body);line-height:1.4}.onboarding-actions{display:flex;justify-content:flex-end;gap:var(--s-2)}.shop{display:flex;flex-direction:column;gap:var(--s-4);padding-top:var(--s-2)}.shop-skeletons{display:flex;flex-direction:column;gap:var(--s-3)}.shop-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-4);min-width:0}.shop-layout>*{min-width:0}.shop-main{display:flex;flex-direction:column;gap:var(--s-3);min-width:0}.shop-lists__head{display:none}.shop-lists__scroller{display:flex;align-items:center;gap:var(--s-2);margin-inline:calc(var(--s-4) * -1);padding:2px var(--s-4);overflow-x:auto;scrollbar-width:none}.shop-lists__scroller::-webkit-scrollbar{display:none}.shop-list-chip{display:inline-flex;flex:none;align-items:center;min-height:40px;padding:0 var(--s-3);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-caption);font-weight:700;white-space:nowrap;cursor:pointer}.shop-list-chip:hover{background:var(--surface-2)}.shop-list-chip.is-active{border-color:var(--btn-solid);background:var(--btn-solid);color:var(--on-btn-solid)}.shop-list-chip--add{border-style:dashed;color:var(--muted)}.shop-list-chip__name{display:inline-flex;align-items:center;gap:6px}.shop-list-chip__count{min-width:20px;padding:0 6px;border-radius:var(--r-pill);background:color-mix(in srgb,currentColor 18%,transparent);font-size:.7rem;line-height:20px;text-align:center;font-variant-numeric:tabular-nums}.shop-list-chip__meta{display:none}.shop-hero{display:flex;flex-direction:column;gap:var(--s-3)}.shop-hero__row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.shop-hero__eyebrow{margin:0;color:var(--muted);font-size:var(--fs-caption);font-weight:600}.shop-hero__value{margin:2px 0 0;color:var(--muted);font-size:var(--fs-caption);font-weight:600}.shop-hero__value strong{color:var(--text);font-size:1.75rem;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.shop-hero__done{color:var(--accent-text);font-size:var(--fs-card);font-weight:800}.shop-hero__controls{display:flex;align-items:center;gap:var(--s-2)}.shop-view-toggle .ui-segmented__item{min-width:44px;min-height:40px}.shop-view-toggle .ui-segmented__item span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.shop-quick{display:flex;align-items:center;gap:var(--s-2);min-height:54px;padding:0 var(--s-2) 0 var(--s-3);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.shop-quick:focus-within{border-color:var(--focus-ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus-ring) 24%,transparent)}.shop-quick__icon{flex:none;color:var(--muted)}.shop-quick__input{flex:1;min-width:0;min-height:50px;padding:0;border:0;background:transparent;color:var(--text);font:inherit;font-size:1rem;outline:none}.shop-quick__input::placeholder{color:var(--placeholder)}.shop-quick__submit{display:grid;flex:none;place-items:center;width:40px;height:40px;border:0;border-radius:var(--r-md);background:var(--accent);color:var(--on-accent);cursor:pointer}.shop-quick__submit:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.shop-quick__error{margin:calc(var(--s-2) * -1) var(--s-1) 0}.shop-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.shop-btn-danger{border-color:var(--danger);color:var(--danger-text)}.shop-group__tag{margin-inline-start:var(--s-2);color:var(--accent-text);font-weight:700;letter-spacing:0;text-transform:none}.shop-group .ui-group-header{margin-top:var(--s-4)}.shop-row{display:flex;align-items:center;gap:var(--s-2);min-height:52px;padding:0 var(--s-2) 0 var(--s-4)}.shop-row__main{display:flex;flex:1;align-items:center;gap:var(--s-3);min-width:0;min-height:var(--tap);cursor:pointer}.shop-row__name{min-width:0;font-weight:650;overflow-wrap:anywhere}.shop-row.is-checked .shop-row__name{color:var(--muted);text-decoration:line-through}.shop-check{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;display:grid;flex:none;place-items:center;width:24px;height:24px;margin:0;border:2px solid var(--muted);border-radius:50%;background:transparent;cursor:pointer}.shop-check:checked{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.shop-check:checked:after{content:"";width:6px;height:11px;margin-top:-2px;border:solid var(--on-accent);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}.shop-check:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.shop-qty{flex:none;padding:2px 10px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface-2);color:var(--text);font-size:var(--fs-caption);font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.shop-row.is-checked .shop-qty{color:var(--muted)}.shop-row__actions{display:inline-flex;flex:none}@media(hover:hover)and (min-width:1024px){.shop-row__actions{opacity:0;transition:opacity .12s var(--ease)}.shop-row:hover .shop-row__actions,.shop-row:focus-within .shop-row__actions{opacity:1}}.shop-linkish{max-width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:650;text-align:start;cursor:pointer}.shop-linkish[aria-current=true]{color:var(--accent-text)}.shop-form{display:flex;flex-direction:column;gap:var(--s-4)}.shop-form__qty,.shop-form__units,.shop-form__suggestions{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-2);min-width:0}.shop-form__units,.shop-form__suggestions{align-items:stretch}.shop-sheet .ui-field__label{color:var(--muted);font-size:var(--fs-caption);font-weight:700}.shop-unit-chips{flex-wrap:nowrap;padding:2px;overflow-x:auto;scrollbar-width:none}.shop-unit-chips::-webkit-scrollbar{display:none}.shop-unit-chips .ui-chip{flex:none}.shop-favorites{display:flex;flex-direction:column;gap:var(--s-4)}.shop-favorites__target{max-width:420px}.shop-fav-grid{display:grid;grid-template-columns:1fr;gap:var(--s-3)}.shop-fav{display:flex;align-items:center;gap:var(--s-3);min-width:0;padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow)}.shop-fav__info{display:flex;flex:1;flex-direction:column;min-width:0}.shop-fav__info strong{overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.shop-fav__info span{color:var(--muted);font-size:var(--fs-caption)}.shop-fav__actions{display:inline-flex;flex:none;align-items:center;gap:var(--s-1)}.shop-fav__add{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.shop-fav__add:hover{background:var(--accent);filter:brightness(1.08)}@media(min-width:720px){.shop-fav-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.shop-unit-chips{flex-wrap:wrap;overflow:visible}.shop-hero{flex-direction:row;align-items:center}.shop-hero__row{flex:1}.shop-hero__bar{flex:0 0 38%}}@media(min-width:1024px){.shop-layout{grid-template-columns:240px minmax(0,1fr);gap:var(--s-5);align-items:start}.shop-lists{position:sticky;top:var(--s-4)}.shop-lists__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-2)}.shop-lists__head h2{margin:0;color:var(--muted);font-size:var(--fs-caption);font-weight:800;letter-spacing:.04em;text-transform:uppercase}.shop-lists__new{padding:0;border:0;background:transparent;color:var(--accent-text);font:inherit;font-size:var(--fs-caption);font-weight:700;cursor:pointer}.shop-lists__scroller{flex-direction:column;align-items:stretch;margin:0;padding:0;overflow:visible}.shop-list-chip{flex-direction:column;align-items:flex-start;gap:var(--s-2);min-height:56px;padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);box-shadow:var(--shadow);white-space:normal}.shop-list-chip.is-active{border-color:var(--accent-ui);background:var(--surface);color:var(--text)}.shop-list-chip__count{display:none}.shop-list-chip__meta{display:flex;flex-direction:column;gap:var(--s-2);width:100%;color:var(--muted);font-size:var(--fs-caption);font-weight:500;text-align:start}.shop-list-chip--add{display:none}.shop-lists__manage{align-self:flex-start}.shop-hero{flex-direction:row}}@media(min-width:1280px){.shop-layout--rail{grid-template-columns:240px minmax(0,1fr) 290px}}.shop-rail{position:sticky;top:var(--s-4)}.shop-rail__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-3)}.shop-rail__head h2{margin:0;font-size:var(--fs-card);font-weight:750}.shop-rail__head a{color:var(--accent-text);font-size:var(--fs-caption);font-weight:700;text-decoration:none}.shop-rail__chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}.shop-rail__empty{margin:0;color:var(--muted);font-size:var(--fs-caption);line-height:1.45}
