:root{--color-primary-50:#e3f2fd;--color-primary-100:#bbdefb;--color-primary-200:#90caf9;--color-primary-300:#64b5f6;--color-primary-400:#42a5f5;--color-primary-500:#2196f3;--color-primary-600:#1e88e5;--color-primary-700:#1976d2;--color-primary-800:#1565c0;--color-primary-900:#0d47a1;--color-neutral-50:#fafafa;--color-neutral-100:#f5f5f5;--color-neutral-200:#eee;--color-neutral-300:#e0e0e0;--color-neutral-400:#bdbdbd;--color-neutral-500:#9e9e9e;--color-neutral-600:#757575;--color-neutral-700:#616161;--color-neutral-800:#424242;--color-neutral-900:#212121;--color-success-50:#e8f5e9;--color-success-500:#4caf50;--color-success-700:#2e7d32;--color-error-50:#ffebee;--color-error-500:#f44336;--color-error-700:#c62828;--color-error-800:#b71c1c;--color-error-900:#7f0000;--color-warning-50:#fff8e1;--color-warning-500:#ffc107;--color-warning-700:#ffa000;--color-warning-900:#b45309;--color-info-50:#e1f5fe;--color-info-500:#03a9f4;--color-info-700:#0288d1;--color-debt:var(--color-error-700);--color-credit:var(--color-success-700);--color-neutral-balance:#757575;--font-family-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono:"Menlo", "Monaco", "Courier New", monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--spacing-0:0;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-16:4rem;--spacing-20:5rem;--radius-none:0;--radius-sm:.125rem;--radius-base:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-base:0 1px 3px 0 #0000001a, 0 1px 2px 0 #0000000f;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a, 0 10px 10px -5px #0000000a;--shadow-2xl:0 25px 50px -12px #00000040;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.2s cubic-bezier(.4, 0, .2, 1);--transition-slow:.3s cubic-bezier(.4, 0, .2, 1);--focus-ring-color:var(--color-primary-600);--focus-ring-width:2px;--focus-ring-offset:2px;--focus-ring-halo:0 0 0 4px #2196f34d;--touch-target-min:44px;--mobile-nav-tab-height:56px;--mobile-nav-height:calc(var(--mobile-nav-tab-height) + 1px);--quick-fab-size:56px;--quick-fab-mini-size:40px;--navbar-height:64px;--safe-top:env(safe-area-inset-top,0px);--app-top-offset:var(--navbar-height);--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--breakpoint-2xl:1536px;--color-overlay-dark:#0009;--color-success-tint:#4caf501a;--color-success-tint-soft:#4caf500f;--color-danger-bg:#f4433614;--color-danger-tint:#f443361a;--color-danger-tint-soft:#f443360a;--color-danger-border:#f443364d;--color-warning-tint:#ff980014;--color-info-tint:#2196f314;--page-min-height:100vh;--page-padding-block:var(--spacing-8);--page-padding-inline:var(--spacing-4);--page-max-wide:1400px;--page-max-narrow:720px;--page-max-auth:450px;--page-header-gap:var(--spacing-8);--page-state-padding-block:var(--spacing-16);--page-state-padding-inline:var(--spacing-4);--bg-primary:var(--color-neutral-50);--bg-secondary:white;--bg-tertiary:var(--color-neutral-100);--text-primary:var(--color-neutral-900);--text-secondary:var(--color-neutral-700);--text-disabled:var(--color-neutral-400);--border-color:var(--color-neutral-300);--border-color-light:var(--color-neutral-200);--input-bg:white;--input-border:var(--color-neutral-300);--input-focus-border:var(--color-primary-500);--input-disabled-bg:var(--color-neutral-100);--input-text:var(--color-neutral-900);--input-placeholder:var(--color-neutral-700);--button-primary-bg:var(--color-primary-700);--button-primary-hover:var(--color-primary-900);--button-primary-text:white;--button-secondary-bg:var(--color-neutral-200);--button-secondary-hover:var(--color-neutral-300);--button-secondary-text:var(--color-neutral-900);--card-bg:white;--card-border:var(--color-neutral-200);--color-background:white;--color-background-soft:var(--color-neutral-100);--color-background-mute:var(--color-neutral-200);--color-background-hover:#00000005;--color-surface:white;--color-text:var(--color-neutral-900);--color-text-light:var(--color-neutral-700);--color-primary:var(--color-primary-600);--color-border:var(--color-neutral-300);--color-danger:var(--color-error-500);--color-success:var(--color-success-700);--color-info:var(--color-info-700)}@media (width<=768px){:root{--app-top-offset:var(--safe-top)}}@media (prefers-color-scheme:dark){:root{--bg-primary:var(--color-neutral-900);--bg-secondary:var(--color-neutral-800);--bg-tertiary:var(--color-neutral-700);--text-primary:var(--color-neutral-50);--text-secondary:var(--color-neutral-300);--text-disabled:var(--color-neutral-600);--border-color:var(--color-neutral-700);--border-color-light:var(--color-neutral-800);--input-bg:var(--color-neutral-800);--input-border:var(--color-neutral-700);--input-focus-border:var(--color-primary-400);--input-disabled-bg:var(--color-neutral-700);--input-text:var(--color-neutral-50);--input-placeholder:var(--color-neutral-400);--button-secondary-bg:var(--color-neutral-700);--button-secondary-hover:var(--color-neutral-600);--button-secondary-text:var(--color-neutral-50);--card-bg:var(--color-neutral-800);--card-border:var(--color-neutral-700);--focus-ring-color:var(--color-primary-300);--focus-ring-halo:0 0 0 4px #64b5f659;--color-error-50:#472725;--color-error-700:#ef9a9a;--color-warning-50:#493e1c;--color-warning-900:#ffd54f;--color-info-700:#4fc3f7;--color-success-50:#25472b;--color-success-700:#a5d6a7;--color-primary-50:#1e3a5f;--color-primary-800:#90caf9;--color-background:var(--color-neutral-900);--color-background-soft:var(--color-neutral-800);--color-background-mute:var(--color-neutral-700);--color-background-hover:#ffffff05;--color-surface:var(--color-neutral-800);--color-text:var(--color-neutral-50);--color-text-light:var(--color-neutral-300);--color-primary:var(--color-primary-500);--color-border:var(--color-neutral-700);--color-danger:var(--color-error-500);--color-neutral-balance:var(--color-neutral-300)}}[data-theme=light]{--color-error-50:#ffebee;--color-error-700:#c62828;--color-warning-50:#fff8e1;--color-warning-900:#b45309;--color-info-700:#0288d1;--color-success-50:#e8f5e9;--color-success-700:#2e7d32;--color-primary-50:#e3f2fd;--color-primary-800:#1565c0;--bg-primary:var(--color-neutral-50);--bg-secondary:white;--bg-tertiary:var(--color-neutral-100);--text-primary:var(--color-neutral-900);--text-secondary:var(--color-neutral-700);--border-color:var(--color-neutral-300);--focus-ring-color:var(--color-primary-600);--focus-ring-halo:0 0 0 4px #2196f34d;--color-background:white;--color-background-soft:var(--color-neutral-100);--color-background-mute:var(--color-neutral-200);--color-background-hover:#00000005;--color-surface:white;--color-text:var(--color-neutral-900);--color-text-light:var(--color-neutral-700);--card-bg:white;--card-border:var(--color-neutral-200)}[data-theme=dark]{--color-error-50:#472725;--color-error-700:#ef9a9a;--color-warning-50:#493e1c;--color-warning-900:#ffd54f;--color-info-700:#4fc3f7;--color-success-50:#25472b;--color-success-700:#a5d6a7;--color-primary-50:#1e3a5f;--color-primary-800:#90caf9;--bg-primary:var(--color-neutral-900);--bg-secondary:var(--color-neutral-800);--bg-tertiary:var(--color-neutral-700);--text-primary:var(--color-neutral-50);--text-secondary:var(--color-neutral-300);--border-color:var(--color-neutral-700);--color-neutral-balance:var(--color-neutral-300);--focus-ring-color:var(--color-primary-300);--focus-ring-halo:0 0 0 4px #64b5f659;--color-background:var(--color-neutral-900);--color-background-soft:var(--color-neutral-800);--color-background-mute:var(--color-neutral-700);--color-background-hover:#ffffff05;--color-surface:var(--color-neutral-800);--color-text:var(--color-neutral-50);--color-text-light:var(--color-neutral-300);--card-bg:var(--color-neutral-800);--card-border:var(--color-neutral-700)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{min-height:100vh;font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-primary);overflow-x:hidden}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}p{margin-bottom:var(--spacing-4)}p:last-child{margin-bottom:0}:is(a,button,input,textarea,select,summary,[tabindex],[role=button],[role=switch]):focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);box-shadow:var(--focus-ring-halo)}:focus:not(:focus-visible){outline:none}@supports (-webkit-touch-callout:none){input,select,textarea{font-size:max(16px,1em)!important}}*{-webkit-tap-highlight-color:transparent}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html{scroll-behavior:auto}}.page{min-height:var(--page-min-height);padding:var(--page-padding-block) var(--page-padding-inline);box-sizing:border-box;width:100%}.page--wide{max-width:var(--page-max-wide);margin-inline:auto}.page--narrow{max-width:var(--page-max-narrow);gap:var(--spacing-5);flex-direction:column;margin-inline:auto;display:flex}.page--auth{justify-content:center;align-items:center;display:flex}.page--auth>.page-content{width:100%;max-width:var(--page-max-auth)}.page--fullscreen{background:var(--color-background,var(--bg-primary,#f5f5f5));flex-direction:column;min-height:100dvh;padding:0;display:flex}.page-header{justify-content:space-between;align-items:center;gap:var(--spacing-4);margin-bottom:var(--page-header-gap);flex-wrap:wrap;display:flex}.page-header--stacked{flex-direction:column;align-items:flex-start}.page-header__text{gap:var(--spacing-2);flex-direction:column;min-width:0;display:flex}.page-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text,var(--text-primary,#212121));line-height:var(--line-height-tight,1.25);margin:0}.page-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary,var(--text-secondary,#757575));margin:0}.page-header__actions{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.page-state{text-align:center;padding:var(--page-state-padding-block) var(--page-state-padding-inline);align-items:center;gap:var(--spacing-3);flex-direction:column;display:flex}.page-state__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text,var(--text-primary,#212121));margin:0}.page-state__hint{font-size:var(--font-size-base);color:var(--color-text-secondary,var(--text-secondary,#757575));max-width:480px;margin:0}.page-state__actions{margin-top:var(--spacing-3);gap:var(--spacing-2);flex-wrap:wrap;justify-content:center;display:flex}.page-state__spinner{border:4px solid var(--color-border,var(--color-neutral-200,#e0e0e0));border-top-color:var(--color-primary,var(--color-primary-600,#1976d2));border-radius:50%;width:48px;height:48px;animation:.9s linear infinite page-state-spin}@keyframes page-state-spin{to{transform:rotate(360deg)}}input[type=text],input[type=search],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=url],input[type=date],input[type=time],input[type=datetime-local],input:not([type]),select,textarea,.form-input{width:100%;padding:var(--spacing-3) var(--spacing-4);background-color:var(--input-bg,var(--color-surface,#fff));color:var(--input-text,var(--color-text,#212121));border:1px solid var(--input-border,var(--color-border,#e0e0e0));border-radius:var(--radius-md,6px);font-size:var(--font-size-base,1rem);font-family:inherit;line-height:var(--line-height-normal,1.5);transition:border-color var(--transition-fast,.15s), box-shadow var(--transition-fast,.15s);box-sizing:border-box}textarea{min-height:calc(var(--spacing-3) * 2 + var(--line-height-normal,1.5) * 3em);resize:vertical}select{cursor:pointer;appearance:none;padding-right:var(--spacing-8);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px,5px 5px}input[type=text]::placeholder,input[type=search]::placeholder,input[type=email]::placeholder,input[type=password]::placeholder,input[type=number]::placeholder,input[type=tel]::placeholder,input[type=url]::placeholder,input:not([type])::placeholder,textarea::placeholder,.form-input::placeholder{color:var(--input-placeholder,var(--color-text-secondary,#888));opacity:1}input[type=text]:focus,input[type=search]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=tel]:focus,input[type=url]:focus,input[type=date]:focus,input[type=time]:focus,input[type=datetime-local]:focus,input:not([type]):focus,select:focus,textarea:focus,.form-input:focus{border-color:var(--input-focus-border,var(--color-primary,#1976d2));box-shadow:0 0 0 3px #1976d226}input:disabled,select:disabled,textarea:disabled,.form-input:disabled{background-color:var(--input-disabled-bg,#f3f3f3);cursor:not-allowed;opacity:.7}.form-label{font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-medium,500);color:var(--color-text,var(--text-primary,#212121));margin-bottom:var(--spacing-2);display:block}.form-hint{font-size:var(--font-size-xs,.75rem);color:var(--color-text-secondary,var(--text-secondary,#757575))}.form-error{font-size:var(--font-size-sm,.875rem);color:var(--color-error-dark,var(--color-error-700,#c62828))}.field-row>input,.field-row>select,.field-row>.form-input{flex:auto;min-width:0}.field-row>.field-row__fixed{flex:none}.checkbox-inline{align-items:center;gap:var(--spacing-2,.5rem);cursor:pointer;min-height:var(--touch-target-min,44px);display:inline-flex;font-weight:var(--font-weight-normal,400)!important}.checkbox-inline input[type=checkbox]{cursor:pointer;flex:none;margin:0;width:auto!important}.option-list{border:1px solid var(--color-border,#e0e0e0);border-radius:var(--radius-md,6px);background-color:var(--color-surface,#fff);max-height:320px;margin:0;padding:0;list-style:none;overflow-y:auto}.option-row{align-items:center;gap:var(--spacing-3,.75rem);padding:var(--spacing-3,.75rem);cursor:pointer;border-bottom:1px solid var(--color-border,#e0e0e0);transition:background-color var(--transition-fast,.15s);display:flex}.option-row:last-child{border-bottom:none}.option-row.is-active,.option-row.is-selected{background-color:var(--color-background-soft,var(--color-background-mute,#f3f3f3));box-shadow:inset 3px 0 0 var(--color-primary,#1976d2)}@media (hover:hover) and (pointer:fine){.option-row:hover{background-color:var(--color-background-soft,var(--color-background-mute,#f3f3f3));box-shadow:inset 3px 0 0 var(--color-primary,#1976d2)}}.option-row__image{border-radius:var(--radius-base,var(--radius-md,6px));background-color:var(--color-background-mute,#f3f3f3);flex:none;width:3rem;height:3rem;overflow:hidden}.option-row__image img{object-fit:cover;width:100%;height:100%}.option-row__info{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.option-row__title{font-weight:var(--font-weight-medium,500);color:var(--color-text,#212121)}.option-row__subtitle{font-size:var(--font-size-sm,.875rem);color:var(--color-text-light,var(--color-text-secondary,#616161))}.option-row__meta{font-size:var(--font-size-xs,.75rem);color:var(--color-text-light,var(--color-text-secondary,#616161))}.tabs{gap:var(--spacing-2,.5rem);margin-bottom:var(--spacing-8,2rem);display:flex;overflow-x:auto}.tab-button{align-items:center;gap:var(--spacing-2,.5rem);padding:var(--spacing-3,.75rem) var(--spacing-6,1.5rem);cursor:pointer;font-weight:var(--font-weight-medium,500);font-size:var(--font-size-base,1rem);color:var(--color-text-light,var(--color-text-secondary,#757575));transition:color var(--transition-base,.2s), border-color var(--transition-base,.2s), background-color var(--transition-base,.2s);white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;display:inline-flex}@media (hover:hover) and (pointer:fine){.tab-button:hover:not(:disabled){color:var(--color-text,var(--text-primary,#212121));background:var(--color-background-soft,var(--color-background-mute,#f5f5f5))}}.tab-button.active,.tab-button.is-active{color:var(--color-primary-dark,var(--color-primary-800,#1565c0));border-bottom-color:var(--color-primary,#1976d2)}.tab-icon{stroke-width:2px;width:20px;height:20px}.data-table{background:var(--color-background-soft,var(--color-surface,#fafafa));border-radius:var(--radius-lg,8px);box-shadow:var(--shadow-md,0 4px 6px #0000001a);overflow:hidden}.data-table table{border-collapse:collapse;width:100%}.data-table th{background:var(--color-background-mute,var(--color-background-soft,#f3f3f3));padding:var(--spacing-4,1rem);text-align:left;font-weight:var(--font-weight-semibold,600);color:var(--color-text,var(--text-primary,#212121));border-bottom:2px solid var(--color-border,#e0e0e0)}.data-table td{padding:var(--spacing-4,1rem);border-bottom:1px solid var(--color-border,#e0e0e0);vertical-align:middle;color:var(--color-text,var(--text-primary,#212121))}.data-table tr:last-child td{border-bottom:none}@media (hover:hover) and (pointer:fine){.data-table tbody tr:hover{background:var(--color-background-hover,var(--color-background-mute,#f5f5f5))}}.btn-icon{border-radius:var(--radius-full,9999px);width:32px;height:32px;color:var(--color-text-secondary,var(--text-secondary,#757575));cursor:pointer;font-size:var(--font-size-base,1rem);transition:background-color var(--transition-fast,.15s), color var(--transition-fast,.15s), transform var(--transition-fast,.15s);user-select:none;background-color:#0000;border:1px solid #0000;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}@media (hover:hover) and (pointer:fine){.btn-icon:hover:not(:disabled){background-color:var(--color-background-mute,var(--color-background-soft,#f3f3f3));color:var(--color-text,var(--text-primary,#212121))}}.btn-icon:active:not(:disabled){transform:scale(.95)}.btn-icon:focus-visible{box-shadow:var(--focus-ring-halo,0 0 0 4px #1976d240)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.btn-icon--lg{width:40px;height:40px;font-size:var(--font-size-lg,1.125rem)}.btn-icon--sm{width:24px;height:24px;font-size:var(--font-size-sm,.875rem)}.btn-icon--danger{color:var(--color-error-dark,var(--color-error-700,#c62828))}@media (hover:hover) and (pointer:fine){.btn-icon--danger:hover:not(:disabled){background-color:var(--color-danger-bg,#f4433614);color:var(--color-error-dark,var(--color-error-700,#c62828))}}.btn-icon--success{color:var(--color-success-dark,var(--color-success-700,#2e7d32))}@media (hover:hover) and (pointer:fine){.btn-icon--success:hover:not(:disabled){background-color:var(--color-success-tint,#4caf501a);color:var(--color-success-dark,var(--color-success-700,#2e7d32))}}.btn-icon--solid{background-color:var(--color-background-mute,#f3f3f3)}.btn-icon--solid.btn-icon--danger{background-color:var(--color-error,var(--color-error-500,#f44336));color:#fff}@media (hover:hover) and (pointer:fine){.btn-icon--solid.btn-icon--danger:hover:not(:disabled){background-color:var(--color-error-dark,#c62828);color:#fff}}.btn-icon--solid.btn-icon--success{background-color:var(--color-success-500,#4caf50);color:var(--color-neutral-900,#212121)}@media (hover:hover) and (pointer:fine){.btn-icon--solid.btn-icon--success:hover:not(:disabled){background-color:var(--color-success-dark,#2e7d32);color:#fff}}.btn-icon.is-active.btn-icon--success{background-color:var(--color-success-500,#4caf50);color:var(--color-neutral-900,#212121)}.btn-icon.is-active.btn-icon--danger{background-color:var(--color-error,var(--color-error-500,#f44336));color:#fff}.btn-icon.is-readonly{cursor:default;pointer-events:none}.card{background-color:var(--card-bg,var(--color-surface,#fff));border:1px solid var(--card-border,var(--color-border,#e0e0e0));border-radius:var(--radius-xl,var(--radius-lg,8px));transition:all var(--transition-base,.2s ease);box-sizing:border-box}.card-padding-none{padding:0}.card-padding-sm{padding:var(--spacing-4,1rem)}.card-padding-md{padding:var(--spacing-6,1.5rem)}.card-padding-lg{padding:var(--spacing-8,2rem)}.card-shadow-none{box-shadow:none}.card-shadow-sm{box-shadow:var(--shadow-sm,0 1px 2px #0000000d)}.card-shadow-base{box-shadow:var(--shadow-base,0 1px 3px #0000001a)}.card-shadow-md{box-shadow:var(--shadow-md,0 4px 6px #0000001a)}.card-shadow-lg{box-shadow:var(--shadow-lg,0 10px 15px #0000001a)}.card-hoverable{cursor:pointer}@media (hover:hover) and (pointer:fine){.card-hoverable:hover{box-shadow:var(--shadow-lg,0 10px 15px #0000001a);transform:translateY(-2px)}}.card--compact{padding:var(--spacing-4,1rem)}.card--stack{gap:var(--spacing-4,1rem);padding:var(--spacing-5,1.25rem);flex-direction:column;display:flex}.modal{max-width:var(--modal-width,600px)}.modal-sm{--modal-width:400px}.modal-md{--modal-width:500px}.modal-lg{--modal-width:600px}.modal-xl{--modal-width:880px}.modal-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.modal-close{width:1.75rem;height:1.75rem;color:var(--color-text-light,var(--color-text-secondary,#616161));cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}@media (hover:hover) and (pointer:fine){.modal-close:hover{color:var(--color-text,var(--text-primary,#000))}}.modal-grab{display:none}.modal-actions{flex-wrap:wrap}.modal-actions .btn{min-height:var(--touch-target-min,44px)}.confirm-message{color:var(--color-text,var(--text-primary,#212121));font-size:var(--font-size-base,1rem);line-height:var(--line-height-relaxed,1.6);margin:0}.modal-enter-active,.modal-leave-active{transition:opacity .15s}.modal-enter-from,.modal-leave-to{opacity:0}.modal-leave-active{pointer-events:none}.empty-state{text-align:center;padding:var(--spacing-12,3rem) var(--spacing-4,1rem);color:var(--color-text-light,var(--color-text-secondary,#757575));align-items:center;gap:var(--spacing-3,.75rem);flex-direction:column;display:flex}.empty-state-icon{margin-bottom:.75rem;font-size:2rem}.empty-state-title{color:var(--color-text);margin-bottom:.5rem;font-weight:500}.empty-state-hint{color:var(--color-text-light,var(--color-text-secondary,#616161));font-size:.875rem}.empty-state-actions{justify-content:center;gap:.5rem;margin-top:1rem;display:flex}.badge{border-radius:var(--radius-pill,var(--radius-full,9999px));padding:.25rem .75rem;font-size:.75rem;font-weight:500;display:inline-block}.badge-success{background:var(--color-success-bg,var(--color-success-50,#d4edda));color:var(--color-success-dark,var(--color-success-700,#155724))}.badge-warning{background:var(--color-warning-bg,var(--color-warning-50,#fff3cd));color:var(--color-warning-dark,var(--color-warning-900,#856404))}.badge-error{background:var(--color-error-bg,var(--color-error-50,#f8d7da));color:var(--color-error-dark,var(--color-error-700,#721c24))}.badge-info{background:var(--color-primary-light,var(--color-primary-50,#cfe2ff));color:var(--color-primary-dark,var(--color-primary-800,#084298))}.badge-neutral{background:var(--color-background-mute,var(--color-neutral-100,#f3f3f3));color:var(--color-text-light,var(--color-text-secondary,var(--color-neutral-600,#666)))}.badge--icon{align-items:center;gap:var(--spacing-1,.25rem);width:fit-content;display:inline-flex}.searchable-input{border:1px solid var(--color-border);border-radius:var(--radius-base,var(--radius-md,6px));background:var(--color-background-soft,var(--color-surface,#fff));width:100%;color:var(--color-text);box-sizing:border-box;padding:.5rem 2rem .5rem .75rem;font-size:1rem}.searchable-input:focus{border-color:var(--color-primary)}.searchable-input:disabled{opacity:.6;cursor:not-allowed}.searchable-clear{width:1.5rem;height:1.5rem;color:var(--color-text-light,var(--color-text-secondary,#616161));cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}@media (hover:hover) and (pointer:fine){.searchable-clear:hover{color:var(--color-text)}}.searchable-options{z-index:50;background:var(--color-background,var(--color-surface,#fff));border:1px solid var(--color-border);border-radius:var(--radius-base,var(--radius-md,6px));max-height:260px;margin:0;padding:.25rem 0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000014}.searchable-option{cursor:pointer;color:var(--color-text);padding:.5rem .75rem;font-size:.95rem}.searchable-option.is-active{background:var(--color-primary-light,var(--color-background-mute,#f0f0f0));color:var(--color-primary-dark,var(--color-primary-800,#1565c0))}@media (hover:hover) and (pointer:fine){.searchable-option:hover{background:var(--color-primary-light,var(--color-background-mute,#f0f0f0));color:var(--color-primary-dark,var(--color-primary-800,#1565c0))}}.searchable-empty{color:var(--color-text-light,var(--color-text-secondary,#616161));padding:.5rem .75rem;font-size:.875rem;font-style:italic}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:.5rem;max-width:min(420px,100vw - 2rem);display:flex;position:fixed;top:1rem;right:1rem}.toast{pointer-events:auto;background:var(--color-surface,#fff);color:var(--color-text);border-left:4px solid var(--color-text-secondary,var(--text-secondary,#757575));cursor:pointer;border-radius:6px;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;display:flex;box-shadow:0 4px 16px #0000001f}.toast-success{border-left-color:var(--color-success-dark,var(--color-success-700,#2e7d32))}.toast-error{border-left-color:var(--color-error,var(--color-error-700,#c62828))}.toast-info{border-left-color:var(--color-info,var(--color-info-700,#1565c0))}.toast-warning{border-left-color:var(--color-warning-dark,var(--color-warning-900,#ef6c00))}.toast-message{flex:1;font-size:.9rem;line-height:1.4}.toast-close{width:1.5rem;height:1.5rem;color:var(--color-text-secondary,var(--text-secondary,#757575));cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}@media (hover:hover) and (pointer:fine){.toast-close:hover{color:var(--color-text)}}.toast-enter-active,.toast-leave-active{transition:opacity .2s,transform .2s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(20px)}.base-switch{align-items:center;gap:var(--spacing-2,8px);cursor:pointer;color:inherit;font:inherit;background:0 0;border:none;padding:0;display:inline-flex}.base-switch:focus-visible{outline:var(--focus-ring-width,2px) solid var(--focus-ring-color,var(--color-primary,#3b82f6));outline-offset:3px;border-radius:999px}.base-switch.is-disabled{cursor:not-allowed;opacity:.5}.base-switch__track{background-color:var(--color-border,#cbd5e1);border-radius:999px;flex-shrink:0;width:38px;height:22px;transition:background-color .18s;position:relative}.base-switch.is-on .base-switch__track{background-color:var(--color-primary,#3b82f6)}.base-switch__thumb{background-color:#fff;border-radius:50%;width:18px;height:18px;transition:transform .18s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000002e}.base-switch.is-on .base-switch__thumb{transform:translate(16px)}.base-switch__label{font-size:var(--font-size-sm,.875rem);line-height:1.2}.tab-button,.option-row,.base-switch{min-height:var(--touch-target-min,44px)}.base-switch{min-width:var(--touch-target-min,44px);justify-content:center}.btn-icon,.modal-close,.searchable-clear,.toast-close{position:relative}@media (pointer:coarse){.btn-icon:after,.modal-close:after,.searchable-clear:after,.toast-close:after{content:"";position:absolute;inset:-6px}.btn-icon--sm:after{inset:-10px}.btn-icon--lg:after{inset:-2px}.modal-close:after,.searchable-clear:after,.toast-close:after{inset:-10px}}.tab-button:active:not(:disabled){background:var(--color-background-mute,var(--color-background-soft,#f5f5f5));color:var(--color-text,var(--text-primary,#212121))}.option-row:active{background-color:var(--color-background-mute,var(--color-background-soft,#f3f3f3))}.card-hoverable:active{box-shadow:var(--shadow-sm,0 1px 2px #0000000d);transform:scale(.99)}.modal-close:active,.searchable-clear:active,.toast-close:active{color:var(--color-text,var(--text-primary,#000));transform:scale(.92)}.searchable-option:active{background:var(--color-primary-light,var(--color-background-mute,#f0f0f0))}.app-icon{--app-icon-size:20px;width:var(--app-icon-size);height:var(--app-icon-size);vertical-align:-.15em;color:inherit;stroke:currentColor;fill:none;pointer-events:none;flex:none;display:inline-block}.btn{padding:var(--spacing-3) var(--spacing-4);justify-content:center;align-items:center;gap:var(--spacing-2);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-lg);transition:all var(--transition-base);cursor:pointer;white-space:nowrap;user-select:none;border:1px solid #0000;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);gap:var(--spacing-1)}.btn-md{padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-base);gap:var(--spacing-2)}.btn-lg{padding:var(--spacing-4) var(--spacing-6);font-size:var(--font-size-lg);gap:var(--spacing-2)}.btn-primary{background-color:var(--button-primary-bg);color:var(--button-primary-text)}@media (hover:hover) and (pointer:fine){.btn-primary:hover:not(:disabled){background-color:var(--button-primary-hover)}}.btn-secondary{background-color:var(--button-secondary-bg);color:var(--button-secondary-text)}@media (hover:hover) and (pointer:fine){.btn-secondary:hover:not(:disabled){background-color:var(--button-secondary-hover)}}.btn-outline{border-color:var(--border-color);color:var(--text-primary);background-color:#0000}@media (hover:hover) and (pointer:fine){.btn-outline:hover:not(:disabled){background-color:var(--bg-tertiary)}}.btn-ghost{color:var(--text-primary);background-color:#0000}@media (hover:hover) and (pointer:fine){.btn-ghost:hover:not(:disabled){background-color:var(--bg-tertiary)}}.btn-danger{background-color:var(--color-error-800);color:#fff}@media (hover:hover) and (pointer:fine){.btn-danger:hover:not(:disabled){background-color:var(--color-error-900)}}.btn-full-width{width:100%}.btn .spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:1em;height:1em;animation:.6s linear infinite btn-spin}@keyframes btn-spin{to{transform:rotate(360deg)}}.avatar-uploader{align-items:flex-start;gap:var(--spacing-3);flex-direction:column;display:flex}.avatar-uploader__actions{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.input{border:1px solid var(--input-border);border-radius:var(--radius-md);background-color:var(--input-bg);width:100%;color:var(--text-primary);transition:all var(--transition-base)}.input::placeholder{color:var(--input-placeholder)}.input:focus{border-color:var(--input-focus-border);box-shadow:none}.input:disabled{background-color:var(--input-disabled-bg);cursor:not-allowed;opacity:.7}.input-sm{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-base)}.input-md{padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-base)}.input-lg{padding:var(--spacing-4) var(--spacing-5);font-size:var(--font-size-lg)}.input-select{cursor:pointer;appearance:none;padding-right:var(--spacing-8);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px,5px 5px}.input-textarea{min-height:calc(var(--spacing-3) * 2 + var(--line-height-normal) * 3em);resize:vertical}.input.input-error{border-color:var(--color-error-700)}.input.input-error:focus{border-color:var(--color-error-700);box-shadow:0 0 0 3px #f443361a}.form-field{gap:var(--spacing-2);flex-direction:column;display:flex}.form-field__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.form-field__required{color:var(--color-error-700);margin-left:var(--spacing-1)}.form-field__error{font-size:var(--font-size-sm);color:var(--color-error-700);margin:0}.form-field__hint{font-size:var(--font-size-sm);color:var(--color-text-light);margin:0}.pwa-banners{z-index:var(--z-sticky);flex-direction:column;gap:0;display:flex;position:fixed;top:0;left:0;right:0}.banner{padding:var(--spacing-3) var(--spacing-4);justify-content:space-between;align-items:center;gap:var(--spacing-4);animation:banner-slideDown var(--transition-slow) ease-out;display:flex}@keyframes banner-slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.banner-content{align-items:center;gap:var(--spacing-3);flex:1;display:flex}.banner-icon{font-size:var(--font-size-2xl);flex-shrink:0}.banner-icon.spinner{animation:1s linear infinite banner-spin}@keyframes banner-spin{to{transform:rotate(360deg)}}.banner-text{flex:1}.banner-text strong{font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-1);display:block}.banner-text p{font-size:var(--font-size-sm);margin:0}.banner-actions{gap:var(--spacing-2);flex-shrink:0;display:flex}.banner-warning{background-color:var(--color-warning-500);color:var(--color-neutral-900)}.banner-info{background-color:var(--color-info-500);color:var(--color-neutral-900)}.banner-primary{background-color:var(--color-primary-500);color:var(--color-neutral-900)}.banner-success{background-color:var(--color-success-500);color:var(--color-neutral-900)}.banner .btn-ghost{color:var(--color-neutral-900)}.banner .btn-ghost:hover:not(:disabled),.banner .btn-ghost:active:not(:disabled){background-color:var(--color-neutral-100)}@media (width<=640px){.banner{flex-direction:column;align-items:stretch}.banner-actions{justify-content:flex-end;width:100%}.banner-text p{font-size:var(--font-size-xs)}}.navbar{height:var(--navbar-height);z-index:var(--z-sticky);background:var(--color-background);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);position:sticky;top:0}.navbar-container{max-width:1400px;padding:0 var(--spacing-4);justify-content:space-between;align-items:center;height:100%;margin:0 auto;display:flex}.navbar-brand{align-items:center;gap:var(--spacing-3);min-height:var(--touch-target-min);color:var(--color-text);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xl);text-decoration:none;display:flex}.navbar-brand .brand-icon{stroke-width:2px;width:28px;height:28px;color:var(--color-primary-800)}.navbar-brand .brand-text{color:var(--color-text)}.navbar-menu{align-items:center;gap:var(--spacing-8);display:flex}.navbar-links{gap:var(--spacing-6);display:flex}.nav-link{align-items:center;gap:var(--spacing-2);color:var(--color-text);font-weight:var(--font-weight-medium);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);transition:all var(--transition-base);text-decoration:none;display:flex}@media (hover:hover) and (pointer:fine){.nav-link:hover{background:var(--color-background-soft);color:var(--color-primary-800)}}.nav-link.router-link-active,.nav-link.is-active{color:var(--color-primary-800);background:var(--color-background-soft)}.nav-link .nav-icon{stroke-width:2px;width:18px;height:18px}.nav-link .badge{min-width:18px;height:18px;padding:0 var(--spacing-1);background:var(--color-primary-700);color:#fff;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;display:inline-flex}.navbar-actions{align-items:center;gap:var(--spacing-4);display:flex}.user-menu{position:relative}.user-menu-button{align-items:center;gap:var(--spacing-3);cursor:pointer;padding:var(--spacing-2);border-radius:var(--radius-lg);transition:background var(--transition-base);background:0 0;border:none;display:flex}@media (hover:hover) and (pointer:fine){.user-menu-button:hover{background:var(--color-background-soft)}}.user-avatar{border-radius:var(--radius-full);background:var(--color-primary-700);color:#fff;width:36px;height:36px;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.user-avatar img{object-fit:cover;width:100%;height:100%;display:block}.user-avatar--sm{width:24px;height:24px;font-size:var(--font-size-xs)}.user-avatar--md{width:36px;height:36px;font-size:var(--font-size-sm)}.user-avatar--lg{width:48px;height:48px;font-size:var(--font-size-xl)}.user-avatar--xl{width:128px;height:128px;font-size:var(--font-size-4xl)}.user-dropdown{top:calc(100% + var(--spacing-2));background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:260px;padding:var(--spacing-3);z-index:var(--z-dropdown);position:absolute;right:0}.user-info{gap:var(--spacing-4);padding:var(--spacing-3);display:flex}.user-avatar-large{border-radius:var(--radius-full);background:var(--color-primary-700);color:#fff;width:48px;height:48px;font-weight:var(--font-weight-semibold);font-size:var(--font-size-xl);flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-details{flex:1;min-width:0}.user-name-large{font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-1);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-email{font-size:var(--font-size-sm);color:var(--color-text-light);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dropdown-divider{background:var(--color-border);height:1px;margin:var(--spacing-2) 0}.dropdown-item{align-items:center;gap:var(--spacing-3);width:100%;padding:var(--spacing-3);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text);font-weight:var(--font-weight-medium);text-align:left;transition:background var(--transition-base);background:0 0;border:none;display:flex}@media (hover:hover) and (pointer:fine){.dropdown-item:hover{background:var(--color-background-soft)}}.dropdown-item .dropdown-icon{stroke-width:2px;width:18px;height:18px}.dropdown-section{padding:var(--spacing-2) var(--spacing-3)}.dropdown-section-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-2);display:block}.locale-switcher{gap:var(--spacing-2);display:flex}.locale-btn{padding:var(--spacing-2) var(--spacing-3);background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:all var(--transition-base);flex:1}@media (hover:hover) and (pointer:fine){.locale-btn:hover{background:var(--color-background)}}.locale-btn.active{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:var(--button-primary-bg)}.navbar .auth-buttons{gap:var(--spacing-4);display:flex}.navbar .btn-login,.navbar .btn-register{padding:var(--spacing-3) var(--spacing-5);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);transition:all var(--transition-base);text-decoration:none}.navbar .btn-login{color:var(--color-text);background:var(--color-background-soft)}@media (hover:hover) and (pointer:fine){.navbar .btn-login:hover{background:var(--color-background-mute)}}.navbar .btn-register{color:var(--button-primary-text);background:var(--button-primary-bg)}@media (hover:hover) and (pointer:fine){.navbar .btn-register:hover{background:var(--button-primary-hover)}}.modal-overlay{z-index:var(--z-modal);padding:var(--spacing-4);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-background);padding:var(--spacing-8);border-radius:var(--radius-lg);width:100%;max-height:90vh;overflow-y:auto}.modal h2{margin:0 0 var(--spacing-4) 0;color:var(--color-text)}.modal-actions{gap:var(--spacing-4);margin-top:var(--spacing-8);justify-content:flex-end;display:flex}.modal-header{padding:0 0 var(--spacing-4);margin-bottom:var(--spacing-6);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.modal-header h2{margin:0}.modal-close{color:var(--color-text-light);cursor:pointer;border-radius:var(--radius-base);width:32px;height:32px;transition:all var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}@media (hover:hover) and (pointer:fine){.modal-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}}@media (width<=768px){.modal h2{font-size:var(--font-size-xl);margin-bottom:var(--spacing-3)}.modal-header h2{margin:0}.form-group{margin-bottom:var(--spacing-3)}}.form-group{margin-bottom:var(--spacing-6)}.form-group label{margin-bottom:var(--spacing-2);color:var(--color-text);font-weight:var(--font-weight-medium);display:block}.form-group input,.form-group textarea,.form-group select{padding:var(--spacing-3) var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-base);background:var(--color-background-soft);color:var(--color-text)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--color-primary)}.form-group textarea{resize:vertical;min-height:80px}.form-row{gap:var(--spacing-4);grid-template-columns:1fr 1fr;display:grid}.form-row--wide-end{grid-template-columns:1fr 2fr}.form-row .form-col{flex-direction:column;display:flex}.form-row .form-col label{margin-bottom:var(--spacing-2);color:var(--color-text);font-weight:var(--font-weight-medium)}.form-row .form-col input,.form-row .form-col select{width:100%;padding:var(--spacing-3) var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-base);background:var(--color-background-soft);color:var(--color-text)}.form-row .form-col input:focus,.form-row .form-col select:focus{border-color:var(--color-primary)}.convert-form{gap:var(--spacing-4);flex-direction:column;display:flex}:where(.convert-form) .form-row{gap:var(--spacing-4);grid-template-columns:minmax(140px,200px) 1fr;align-items:center;display:grid}.convert-form .form-row>label{font-weight:var(--font-weight-medium);color:var(--color-text);margin:0}.convert-form .form-row>input,.convert-form .form-row>select,.convert-form .form-row>textarea{width:100%;padding:var(--spacing-3);background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--radius-base);color:var(--color-text);font-size:var(--font-size-base);font-family:inherit}.convert-form .form-row>input:focus,.convert-form .form-row>select:focus,.convert-form .form-row>textarea:focus{border-color:var(--color-primary)}.convert-form .form-row>textarea{resize:vertical;min-height:64px}.convert-form .form-row:has(textarea){align-items:start}.convert-form .form-row:has(textarea)>label{padding-top:var(--spacing-2)}.form-row-inline{align-items:center;gap:var(--spacing-3);grid-template-columns:none;display:flex}.form-row>.hint{grid-column:2}@media (width<=768px){.form-row{grid-template-columns:1fr}.form-row:has(>label),.convert-form .form-row:has(>label){row-gap:var(--spacing-2)}.form-row>.hint{grid-column:auto;margin-top:0}.convert-form .form-row:has(textarea)>label{padding-top:0}}.convert-form{container-type:inline-size}@container (width<=27.99rem){:where(.convert-form) .form-row{row-gap:var(--spacing-2);grid-template-columns:1fr}.convert-form .form-row>.hint{grid-column:auto;margin-top:0}.convert-form .form-row:has(textarea)>label{padding-top:0}}.convert-form .picker-toggle{justify-content:space-between}.convert-form .link-button{color:var(--color-primary-800);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.convert-form .picker-summary{font-size:var(--font-size-sm);color:var(--color-text-light)}.convert-form .picker-list{gap:var(--spacing-1);max-height:240px;padding:var(--spacing-2);background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--radius-base);flex-direction:column;display:flex;overflow-y:auto}.convert-form .picker-item{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2);border-radius:var(--radius-base);cursor:pointer;display:flex}@media (hover:hover) and (pointer:fine){.convert-form .picker-item:hover{background:var(--color-background-soft)}}.convert-form .picker-item-name{font-size:var(--font-size-sm);flex:1}.convert-form .picker-item-store{font-size:var(--font-size-xs);color:var(--color-text-light)}.convert-form .picker-item.is-foreign .picker-item-store{color:var(--color-warning-900);font-weight:var(--font-weight-medium)}.convert-form .picker-item.is-unpriced{color:var(--color-text-light);cursor:not-allowed}.convert-form .picker-item.is-unpriced .picker-item-store{color:var(--color-warning-900);font-weight:var(--font-weight-medium)}.field-row{gap:var(--spacing-2);align-items:stretch;display:flex}.field-row>input,.field-row>select,.field-row>textarea{min-width:0;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-base);background:var(--color-background-soft);color:var(--color-text)}.field-row>input:focus,.field-row>select:focus,.field-row>textarea:focus{border-color:var(--color-primary)}.field-row>:not(.field-row__fixed){flex:1}.field-row__fixed{flex:none}.option-list{border-radius:var(--radius-base);background:var(--color-background-soft)}@media (hover:hover) and (pointer:fine){.option-row:hover{background:var(--color-background-mute)}}.option-row.is-selected{background:var(--color-background-mute)}.option-row__image{width:40px;height:40px}.option-row__image img{display:block}.option-row__info{gap:var(--spacing-1)}.option-row__title{font-size:var(--font-size-base)}.option-row__meta{font-size:var(--font-size-sm)}.form-fieldset{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-5);margin:0 0 var(--spacing-5) 0}.form-fieldset legend{padding:0 var(--spacing-2);font-weight:var(--font-weight-semibold);color:var(--color-primary-800);font-size:var(--font-size-sm)}.modal-stack{gap:var(--spacing-3);flex-direction:column;display:flex}.status-note{padding:var(--spacing-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);text-align:center}.status-note--success{background:var(--color-success-50);color:var(--color-success-700)}.status-note--info{background:var(--color-primary-50);color:var(--color-primary-800)}.status-note--warning{background:var(--color-warning-50);color:var(--color-warning-900)}.status-note__actions{justify-content:center;gap:var(--spacing-2);margin-top:var(--spacing-2);flex-wrap:wrap;display:flex}.ugc-submission__target{padding:var(--spacing-3);background:var(--color-background-soft);border-radius:var(--radius-md);gap:var(--spacing-1);flex-direction:column;margin:0;display:flex}.ugc-submission__variant{font-size:var(--font-size-sm);color:var(--color-text-light)}.ugc-submission .field-row{align-items:center}.ugc-submission .price-currency{font-weight:var(--font-weight-semibold);color:var(--color-text-light)}.ugc-submission__choice{gap:var(--spacing-4);flex-wrap:wrap;display:flex}.ugc-submission__photo-picker{gap:var(--spacing-1);padding:var(--spacing-3);border:1px dashed var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:center;background:var(--color-background-soft);min-height:var(--touch-target-min);flex-direction:column;justify-content:center;display:flex}.ugc-submission__photo-picker input[type=file]{display:none}.ugc-submission__photo-picker small{color:var(--color-text-light);font-size:var(--font-size-xs)}.ugc-submission__photo-preview{align-items:flex-start;gap:var(--spacing-2);display:flex}.ugc-submission__photo-preview img{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--color-border);max-width:96px;max-height:96px}.camera-stage{align-items:center;gap:var(--spacing-3);flex-direction:column;display:flex}.camera-stage__video{aspect-ratio:4/3;border-radius:var(--radius-md);object-fit:cover;background:#000;width:100%;max-width:480px}.scan-prompt{align-items:center;gap:var(--spacing-4);padding:var(--spacing-8) var(--spacing-4);flex-direction:column;display:flex}.manual-fallback{gap:var(--spacing-3);padding-top:var(--spacing-4);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.manual-divider{text-align:center;color:var(--color-text-light);font-size:var(--font-size-sm)}.manual-input-row{gap:var(--spacing-2);display:flex}.manual-input{flex:1;min-width:0}.requests-list.requests-list--divided{gap:0;margin:0;padding:0;list-style:none;display:block}.request-row{gap:var(--spacing-1);padding:var(--spacing-3) 0;border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.request-row:last-child{border-bottom:none}.request-row__main{align-items:center;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.recognized-strip{align-items:center;gap:var(--spacing-2);margin-top:var(--spacing-2);flex-wrap:wrap;display:flex}.recognized-strip__label{font-size:var(--font-size-xs);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.05em}.recognized-strip__action{margin-left:auto}.muted{color:var(--color-text-light)}.btn-cancel{padding:var(--spacing-3) var(--spacing-6);background:var(--color-background-mute);color:var(--color-text);border-radius:var(--radius-base);cursor:pointer;font-weight:var(--font-weight-medium);transition:opacity var(--transition-base);border:none}.btn-submit{padding:var(--spacing-3) var(--spacing-6);background:var(--button-primary-bg);color:var(--button-primary-text);border-radius:var(--radius-base);cursor:pointer;font-weight:var(--font-weight-medium);transition:opacity var(--transition-base);border:none}@media (hover:hover) and (pointer:fine){.btn-cancel:hover{opacity:.9}.btn-submit:hover:not(:disabled){background:var(--button-primary-hover)}}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.permission-list{gap:var(--spacing-3);flex-direction:column;display:flex}.permission-row{justify-content:space-between;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);background:var(--color-background-soft);border-radius:var(--radius-md);transition:background var(--transition-base);display:flex}@media (hover:hover) and (pointer:fine){.permission-row:hover{background:var(--color-background-mute)}}.permission-meta{flex:1;min-width:0}.permission-meta strong{color:var(--color-text);margin-bottom:var(--spacing-1);display:block}.permission-meta p{font-size:var(--font-size-sm);color:var(--color-text-light);margin:0}.status-badge{padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.status-badge.pending{background:var(--color-warning-50);color:var(--color-warning-900)}.status-badge.approved{background:var(--color-success-50);color:var(--color-success-700)}.status-badge.rejected{background:var(--color-error-50);color:var(--color-error-700)}.status-badge.active{background:var(--color-success-50);color:var(--color-success-700)}.status-badge.completed{background:var(--color-primary-50);color:var(--color-primary-800)}.status-badge.archived{background:var(--color-background-soft);color:var(--color-text-light)}.role-badge{padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.role-badge.owner{background:var(--color-primary-500);color:var(--color-neutral-900)}.role-badge.member{background:var(--color-background-mute);color:var(--color-text)}.role-badge.admin{background:var(--color-primary-500);color:var(--color-neutral-900)}.role-badge.user{background:var(--color-background-mute);color:var(--color-text)}.error-message{padding:var(--spacing-3) var(--spacing-4);background-color:var(--color-error-50);color:var(--color-error-700);border-radius:var(--radius-lg);font-size:var(--font-size-sm);text-align:center}.success-message{padding:var(--spacing-3) var(--spacing-4);background-color:var(--color-success-50);color:var(--color-success-700);border-radius:var(--radius-lg);font-size:var(--font-size-sm);text-align:center}.warning-message{padding:var(--spacing-3) var(--spacing-4);background-color:var(--color-warning-50);color:var(--color-warning-900);border-radius:var(--radius-lg);font-size:var(--font-size-sm);text-align:center}.auth-divider{text-align:center;margin:var(--spacing-6) 0;color:var(--color-text-light);font-size:var(--font-size-sm);align-items:center;display:flex}.auth-divider:before,.auth-divider:after{content:"";border-bottom:1px solid var(--border-color);flex:1}.auth-divider span{padding:0 var(--spacing-3)}.social-buttons{gap:var(--spacing-3);flex-direction:column;display:flex}.auth-link{color:var(--color-primary-800);font-weight:var(--font-weight-medium);transition:color var(--transition-base)}@media (hover:hover) and (pointer:fine){.auth-link:hover{color:var(--color-primary-800);text-decoration:underline}}.resend-link{margin:var(--spacing-2) auto 0;color:var(--color-error-700);font-weight:var(--font-weight-medium);cursor:pointer;font-size:var(--font-size-sm);text-align:center;background:0 0;border:none;text-decoration:underline;display:block}@media (hover:hover) and (pointer:fine){.resend-link:hover:not(:disabled){text-decoration-thickness:2px}}.resend-link:disabled{opacity:.6;cursor:not-allowed}.error-text{margin-top:var(--spacing-2);color:var(--color-danger);font-size:var(--font-size-sm);display:block}.searchable-select{width:100%;position:relative}.searchable-select .searchable-input{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-base);background:var(--color-background-soft);color:var(--color-text);font-size:var(--font-size-base)}.searchable-select .searchable-input:focus{border-color:var(--color-primary)}.searchable-select.is-disabled .searchable-input{opacity:.6;cursor:not-allowed}.searchable-select .searchable-clear{right:var(--spacing-2);width:1.5rem;height:1.5rem;color:var(--color-text-light);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}@media (hover:hover) and (pointer:fine){.searchable-select .searchable-clear:hover{background:var(--color-background-mute);color:var(--color-text)}}.searchable-select .searchable-options{z-index:50;max-height:16rem;padding:var(--spacing-1);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-base);margin:0;list-style:none;position:absolute;top:calc(100% + .25rem);left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001a}.searchable-select .searchable-option{padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text)}.searchable-select .searchable-option.is-active{background:var(--color-background-soft)}@media (hover:hover) and (pointer:fine){.searchable-select .searchable-option:hover{background:var(--color-background-soft)}}.searchable-select .searchable-empty{padding:var(--spacing-3);text-align:center;color:var(--color-text-light);font-style:italic}.catalog-picker-overlay{z-index:var(--z-modal);background:#00000080;justify-content:center;align-items:stretch;padding:0;display:flex;position:fixed;inset:0}.catalog-picker-modal{background:var(--color-background);flex-direction:column;width:100%;max-width:600px;max-height:100dvh;display:flex}.catalog-picker-modal .picker-header{padding:var(--spacing-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.catalog-picker-modal .picker-header h2{font-size:var(--font-size-lg);margin:0}.catalog-picker-modal .close-btn{font-size:var(--font-size-2xl);cursor:pointer;background:0 0;border:none;line-height:1}.catalog-picker-modal .picker-hint{padding:0 var(--spacing-4);margin:var(--spacing-2) 0 0;color:var(--color-text-light);font-size:var(--font-size-sm)}.catalog-picker-modal .picker-search{margin:var(--spacing-4);padding:var(--spacing-3);font-size:var(--font-size-base);border:1px solid var(--color-border);border-radius:var(--radius-md)}.catalog-picker-modal .picker-results{padding:0 var(--spacing-4);flex:1;overflow-y:auto}.catalog-picker-modal .picker-status{text-align:center;padding:var(--spacing-4)}.catalog-picker-modal .picker-list{gap:var(--spacing-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.catalog-picker-modal .picker-row{padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:var(--color-surface)}@media (hover:hover) and (pointer:fine){.catalog-picker-modal .picker-row:hover{background:var(--color-background-mute)}}.catalog-picker-modal .picker-row.disabled{opacity:.5;cursor:not-allowed}.catalog-picker-modal .picker-row-main{gap:var(--spacing-1);flex-wrap:wrap;display:flex}.catalog-picker-modal .picker-footer{padding:var(--spacing-4);border-top:1px solid var(--color-border);justify-content:space-between;gap:var(--spacing-2);display:flex}.content-header{justify-content:space-between;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-4);flex-wrap:wrap;display:flex}.btn-request{justify-content:center;align-items:center;gap:var(--spacing-2);background:var(--button-primary-bg);color:var(--button-primary-text);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-sm);cursor:pointer;border:none;display:inline-flex}.requests-list{gap:var(--spacing-3);display:grid}.request-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-4)}.request-header{justify-content:space-between;align-items:flex-start;display:flex}.request-meta{gap:var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-text-light);flex-wrap:wrap;display:flex}.urgent{background:var(--color-warning-500);color:var(--color-neutral-900);padding:0 var(--spacing-2);border-radius:var(--radius-sm);font-weight:var(--font-weight-semibold)}.hint{margin-top:var(--spacing-1);color:var(--color-text-light);font-size:var(--font-size-xs);display:block}.rejection-reason{margin-top:var(--spacing-2);padding:var(--spacing-2);background:var(--color-error-50);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.empty-state{text-align:center;padding:var(--spacing-8);color:var(--color-text-light)}.inventory-picker__question{margin:0 0 var(--spacing-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-light)}.inventory-picker{max-height:none;overflow:hidden}.inventory-picker__item+.inventory-picker__item{border-top:1px solid var(--color-border)}.inventory-picker .option-row{width:100%;min-height:var(--touch-target-min);text-align:start}.inventory-picker .option-row:focus-visible{outline-offset:calc(-1 * var(--focus-ring-width))}.inventory-picker__heading{align-items:center;gap:var(--spacing-1) var(--spacing-2);flex-wrap:wrap;display:flex}.inventory-picker .option-row__title{overflow-wrap:anywhere}.inventory-picker__chevron{color:var(--color-text-light);flex:none}.btn{min-height:var(--touch-target-min);position:relative}.btn-sm{min-height:0}@media (pointer:coarse){.btn-sm{min-height:var(--touch-target-min)}}.nav-link,.locale-btn,.dropdown-item,.btn-cancel,.btn-submit,.btn-request,.permission-row,.allocation-picker-add,.catalog-picker-modal .close-btn,.catalog-picker-modal .picker-row{min-height:var(--touch-target-min)}.catalog-picker-modal .close-btn{min-width:var(--touch-target-min)}.modal-close,.searchable-select .searchable-clear,.convert-form .link-button,.resend-link,.btn-primary--compact-mobile{position:relative}@media (pointer:coarse){.modal-close:after,.searchable-select .searchable-clear:after,.convert-form .link-button:after,.resend-link:after,.btn-primary--compact-mobile:after{content:"";position:absolute;inset:-4px}.modal-close:after{inset:-6px}.btn-primary--compact-mobile:after{inset:-2px}.searchable-select .searchable-clear:after{inset:-10px}.convert-form .link-button:after,.resend-link:after{inset:-12px}summary{min-height:var(--touch-target-min);padding-block:max(0px, calc((var(--touch-target-min) - 1lh) / 2))}}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary:active:not(:disabled){background-color:var(--color-primary-900)}.btn-secondary:active:not(:disabled){background-color:var(--button-secondary-hover)}.btn-outline:active:not(:disabled),.btn-ghost:active:not(:disabled){background-color:var(--bg-tertiary)}.btn-danger:active:not(:disabled){background-color:var(--color-error-900)}.nav-link:active,.dropdown-item:active,.user-menu-button:active,.permission-row:active,.convert-form .picker-item:active,.catalog-picker-modal .picker-row:active{background:var(--color-background-mute)}.locale-btn:active{background:var(--color-background);transform:scale(.97)}.navbar .btn-login:active{background:var(--color-background-mute)}.navbar .btn-register:active,.btn-submit:active:not(:disabled){background:var(--color-primary-900)}.btn-submit:active:not(:disabled){transform:scale(.97)}.btn-cancel:active,.btn-request:active{opacity:.85;transform:scale(.97)}.modal-close:active,.searchable-select .searchable-clear:active,.catalog-picker-modal .close-btn:active{background-color:var(--bg-tertiary);color:var(--text-primary)}.searchable-select .searchable-option:active{background:var(--color-background-mute)}.auth-link:active,.resend-link:active:not(:disabled){opacity:.7}.btn-add{padding:var(--spacing-3) var(--spacing-5);background:var(--button-primary-bg);color:var(--button-primary-text);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);cursor:pointer;align-items:center;gap:var(--spacing-2);transition:background var(--transition-fast);border:none;display:inline-flex}@media (hover:hover) and (pointer:fine){.btn-add:hover{background:var(--button-primary-hover)}}.btn-add:active{background:var(--color-primary-900)}.login-page .login-header{text-align:center;margin-bottom:var(--spacing-8)}.login-page .login-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--spacing-2)}.login-page .login-subtitle{font-size:var(--font-size-base);color:var(--text-secondary);margin:0}.login-page .login-form{gap:var(--spacing-5);flex-direction:column;display:flex}.login-page .login-footer{margin-top:var(--spacing-6);text-align:center;font-size:var(--font-size-sm);color:var(--text-secondary)}.login-page .login-footer p{margin:0}.register-page .register-header{text-align:center;margin-bottom:var(--spacing-8)}.register-page .register-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--spacing-2)}.register-page .register-subtitle{font-size:var(--font-size-base);color:var(--text-secondary);margin:0}.register-page .register-form{gap:var(--spacing-5);flex-direction:column;display:flex}.register-page .register-footer{margin-top:var(--spacing-6);text-align:center;font-size:var(--font-size-sm);color:var(--text-secondary)}.register-page .register-footer p{margin:0}.verify-email-page .verify-card{text-align:center}.verify-email-page .verify-loading{padding:var(--spacing-8) 0}.verify-email-page .verify-loading .spinner{border:4px solid var(--color-neutral-200);border-top-color:var(--color-primary-600);width:48px;height:48px;margin:0 auto var(--spacing-4);border-radius:50%;animation:1s linear infinite verify-spin}@keyframes verify-spin{to{transform:rotate(360deg)}}.verify-email-page .verify-loading p{color:var(--text-secondary);font-size:var(--font-size-base)}.verify-email-page .verify-success,.verify-email-page .verify-error{padding:var(--spacing-4) 0}.verify-email-page .icon-success{background-color:var(--color-success-50);width:64px;height:64px;color:var(--color-success-700);font-size:32px;font-weight:var(--font-weight-bold);margin:0 auto var(--spacing-4);border-radius:50%;justify-content:center;align-items:center;display:flex}.verify-email-page .icon-error{background-color:var(--color-error-50);width:64px;height:64px;color:var(--color-error-700);font-size:32px;font-weight:var(--font-weight-bold);margin:0 auto var(--spacing-4);border-radius:50%;justify-content:center;align-items:center;display:flex}.verify-email-page .verify-success h1,.verify-email-page .verify-error h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--spacing-2)}.verify-email-page .verify-success p,.verify-email-page .verify-error p{color:var(--text-secondary);font-size:var(--font-size-base);margin-bottom:var(--spacing-6)}.verify-email-page .verify-actions{gap:var(--spacing-3);flex-direction:column;display:flex}.household-detail-page .back-button{margin-bottom:var(--spacing-2);padding-left:0}.household-detail-page .lockdown-banner{justify-content:space-between;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);margin:var(--spacing-3) 0;background-color:var(--color-error-50);color:var(--color-error-700);border-radius:var(--radius-base);border-left:4px solid;display:flex}.household-detail-page .lockdown-content{gap:var(--spacing-1);font-size:var(--font-size-sm);flex-direction:column;display:flex}.household-detail-page .lockdown-actions{gap:var(--spacing-2);flex-wrap:wrap;flex-shrink:0;display:flex}@media (width<=768px){.household-detail-page .lockdown-banner{flex-direction:column;align-items:stretch}.household-detail-page .lockdown-actions{width:100%}}.household-detail-page .lockdown-banner.lockdown-banner--soft{background-color:var(--color-warning-50);color:var(--color-warning-900)}.household-detail-page .tab-button,.household-detail-page .tabs-strip{position:relative}.household-detail-page .tabs-strip:before,.household-detail-page .tabs-strip:after{content:"";width:var(--spacing-8);pointer-events:none;opacity:0;transition:opacity var(--transition-base);z-index:1;position:absolute;top:0;bottom:0}.household-detail-page .tabs-strip:before{background:linear-gradient(to right, var(--bg-primary), transparent);left:0}.household-detail-page .tabs-strip:after{background:linear-gradient(to left, var(--bg-primary), transparent);right:0}.household-detail-page .tabs-strip--overflow-start:before,.household-detail-page .tabs-strip--overflow-end:after{opacity:1}.household-detail-page .tabs{scrollbar-width:thin;scrollbar-color:var(--color-neutral-400) transparent;scroll-snap-type:x proximity;scroll-padding-inline:var(--spacing-4);-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;padding-bottom:6px;position:relative}.household-detail-page .tab-button{scroll-snap-align:center}.household-detail-page .tab-button.active{font-weight:var(--font-weight-semibold);background:var(--color-info-tint);border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.household-detail-page .tabs::-webkit-scrollbar{height:6px}.household-detail-page .tabs::-webkit-scrollbar-track{background:0 0}.household-detail-page .tabs::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:var(--radius-full)}@media (hover:hover) and (pointer:fine){.household-detail-page .tabs::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-500)}}.household-detail-page .tab-attention-dot{background:var(--color-warning-500);width:8px;height:8px;box-shadow:0 0 0 2px var(--color-background);border-radius:50%;position:absolute;top:6px;right:8px}.household-detail-page .tab-label{white-space:nowrap}.household-detail-page .tab-content{background:var(--color-background);border-radius:var(--radius-lg);padding:var(--spacing-8);box-shadow:var(--shadow-sm)}.btn-primary--compact-mobile .btn-icon-glyph{display:none}@media (width<=768px){.household-detail-page{--page-padding-block:var(--spacing-4);--page-header-gap:var(--spacing-4)}.household-detail-page .back-button{margin-bottom:0}.household-detail-page .page-header__text{gap:var(--spacing-1)}.household-detail-page .page-title{font-size:var(--font-size-2xl)}.household-detail-page .tab-button{gap:var(--spacing-1);padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-xs);line-height:var(--line-height-tight);min-width:var(--touch-target-min);flex-direction:column;flex:none}.household-detail-page .tab-icon{width:22px;height:22px}.household-detail-page .tabs-strip:before,.household-detail-page .tabs-strip:after{width:var(--spacing-5)}.household-detail-page .tab-content{box-shadow:none;background:0 0;padding:0}.shopping-lists-tab,.pantry-tab,.budgets-tab{padding:0}.btn-primary--compact-mobile{background:var(--button-primary-bg);color:var(--button-primary-text);cursor:pointer;transition:background var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;padding:var(--spacing-2)!important;border-radius:var(--radius-full)!important;width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important}.btn-primary--compact-mobile:active{background:var(--color-primary-900)}@media (hover:hover) and (pointer:fine){.btn-primary--compact-mobile:hover{background:var(--button-primary-hover)}}.btn-primary--compact-mobile .btn-label{display:none}.btn-primary--compact-mobile .btn-icon-glyph{display:inline-block!important}}.products-tab{gap:var(--spacing-6);flex-direction:column;display:flex}.products-tab .content-header{justify-content:space-between;align-items:center;display:flex}.products-tab .content-header h3{font-size:var(--font-size-xl);color:var(--color-text);margin:0}.products-tab .btn-request{padding:var(--spacing-3) var(--spacing-5);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity var(--transition-base);background:var(--color-background-mute);color:var(--color-text);border:none}@media (hover:hover) and (pointer:fine){.products-tab .btn-request:hover{opacity:.9}}.products-tab .category{color:var(--color-primary-800);font-size:var(--font-size-sm);margin:0 0 var(--spacing-3) 0;font-weight:var(--font-weight-medium)}.products-tab .description{color:var(--color-text-light);font-size:var(--font-size-sm);margin:0 0 var(--spacing-4) 0;line-height:var(--line-height-normal)}.products-tab .requests-list{gap:var(--spacing-4);flex-direction:column;display:flex}.products-tab .request-card{background:var(--color-background-soft);border-radius:var(--radius-lg);padding:var(--spacing-6);box-shadow:var(--shadow-md)}.products-tab .request-header{margin-bottom:var(--spacing-4);justify-content:space-between;align-items:flex-start;display:flex}.products-tab .request-header h4{margin:0 0 var(--spacing-2) 0;color:var(--color-text)}.products-tab .request-body{margin-bottom:var(--spacing-4)}.products-tab .request-meta{gap:var(--spacing-6);font-size:var(--font-size-sm);color:var(--color-text-light);margin-top:var(--spacing-3);display:flex}.products-tab .rejection-reason{margin-top:var(--spacing-4);padding:var(--spacing-3);background:var(--color-background-mute);border-radius:var(--radius-base);font-size:var(--font-size-sm);color:var(--color-text-light)}.shopping-lists-tab .shopping-lists{gap:var(--spacing-4);margin-bottom:var(--spacing-8);display:grid}.shopping-lists-tab .shopping-list-card{background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-4);cursor:pointer;transition:all var(--transition-base);position:relative}@media (hover:hover) and (pointer:fine){.shopping-lists-tab .shopping-list-card:hover{border-color:var(--color-primary)}}.shopping-lists-tab .list-header{margin-bottom:var(--spacing-2);justify-content:space-between;align-items:center;display:flex}.shopping-lists-tab .list-header h3{color:var(--color-text);margin:0}.shopping-lists-tab .list-description{color:var(--color-text-light);font-size:var(--font-size-sm);margin-bottom:var(--spacing-2)}.shopping-lists-tab .list-stats{gap:var(--spacing-4);font-size:var(--font-size-sm);color:var(--color-text-light);display:flex}.shopping-lists-tab .stat-value{font-weight:var(--font-weight-semibold);color:var(--color-text)}.shopping-lists-tab .list-footer{margin-top:var(--spacing-3);justify-content:space-between;align-items:center;display:flex}.shopping-lists-tab .list-detail{border-top:none;margin-top:0;padding-top:0}.shopping-lists-tab .detail-header{gap:var(--spacing-3);margin-bottom:var(--spacing-4);align-items:center;display:flex}.shopping-lists-tab .detail-header-actions{gap:var(--spacing-2);display:flex}.shopping-lists-tab .btn-back{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-2) var(--spacing-3);cursor:pointer;font-size:var(--font-size-lg);color:var(--color-text);background:0 0}@media (hover:hover) and (pointer:fine){.shopping-lists-tab .btn-back:hover{background:var(--color-background-soft)}}.shopping-lists-tab .detail-header h3{margin:0}.shopping-lists-tab .empty-items{text-align:center;padding:var(--spacing-8);color:var(--color-text-light)}.shopping-lists-tab .item-card{align-items:center;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--spacing-2);transition:background .15s,border-color .15s,box-shadow .15s;display:flex}@media (hover:hover) and (pointer:fine){.shopping-lists-tab .item-card:hover{background:var(--color-background-soft);border-color:var(--color-primary-300)}}.shopping-lists-tab .item-card:is(.bought,.skipped) .item-name{color:var(--color-text-light);text-decoration:line-through}.shopping-lists-tab .item-card:is(.bought,.skipped)>.item-image{opacity:.6}.shopping-lists-tab .item-image{border-radius:var(--radius-base);width:48px;height:48px;overflow:hidden}.shopping-lists-tab .item-image img{object-fit:cover;width:100%;height:100%}.shopping-lists-tab .item-info{flex-direction:column;flex:1;display:flex}.shopping-lists-tab .item-name{font-weight:var(--font-weight-medium);color:var(--color-text)}.shopping-lists-tab .item-brand{font-size:var(--font-size-xs);color:var(--color-text-light)}.shopping-lists-tab .item-notes{font-size:var(--font-size-xs);color:var(--color-text-light);font-style:italic}.shopping-lists-tab .matched-row{gap:var(--spacing-1);margin-top:var(--spacing-1);flex-wrap:wrap;align-items:center;display:flex}.shopping-lists-tab .matched-chip{font-size:var(--font-size-xs);padding:2px var(--spacing-2);border-radius:var(--radius-full);background:var(--color-background-soft);color:var(--color-text-light);border:1px solid var(--border-color-light);display:inline-block}.shopping-lists-tab .matched-compare{font-size:var(--font-size-xs);color:var(--color-primary-800);padding:2px var(--spacing-2);margin-left:auto;text-decoration:none}@media (hover:hover) and (pointer:fine){.shopping-lists-tab .matched-compare:hover{text-decoration:underline}}.shopping-lists-tab .item-quantity-price{align-items:flex-end;gap:var(--spacing-1);text-align:right;flex-direction:column;flex-shrink:0;display:flex}.shopping-lists-tab .item-quantity{font-weight:var(--font-weight-medium);color:var(--color-text-light)}.shopping-lists-tab .item-picked{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary-800)}.shopping-lists-tab .item-estimate{font-size:var(--font-size-sm);color:var(--color-text-light)}.shopping-lists-tab .item-actual{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.quantity-selector{gap:var(--spacing-3);margin-top:var(--spacing-4);padding:var(--spacing-4);background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;display:flex}.unit-select{flex:none;width:auto;min-width:110px}.add-item-form{gap:var(--spacing-5);flex-direction:column;display:flex}.add-item-form .form-group{margin-bottom:0}.add-item-form .quantity-selector{margin-top:0}.shopping-lists-tab .btn{padding:var(--spacing-3) var(--spacing-6);border-radius:var(--radius-md);font-size:var(--font-size-base);cursor:pointer;transition:opacity var(--transition-base);border:none}.shopping-lists-tab .btn:disabled{opacity:.6;cursor:not-allowed}.shopping-lists-tab .btn-primary{background:var(--button-primary-bg);color:var(--button-primary-text)}.shopping-lists-tab .btn-secondary{background:var(--color-background-soft);border:1px solid var(--color-border);color:var(--color-text)}.shopping-lists-tab .groupby-toggle{margin:var(--spacing-4) 0;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--radius-full);gap:0;padding:3px;display:inline-flex}.shopping-lists-tab .groupby-toggle__btn{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-light);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:none}@media (hover:hover) and (pointer:fine){.shopping-lists-tab .groupby-toggle__btn:hover:not(.is-active){color:var(--color-text)}}.shopping-lists-tab .groupby-toggle__btn.is-active{background:var(--color-surface);color:var(--color-primary-800);box-shadow:var(--shadow-sm)}.shopping-lists-tab .item-group{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--spacing-4);box-shadow:var(--shadow-sm);overflow:hidden}.shopping-lists-tab .item-group[open]>.item-group-header{border-bottom:1px solid var(--color-border)}.shopping-lists-tab .item-group-header{align-items:center;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-5);cursor:pointer;user-select:none;background:var(--color-background-soft);list-style:none;display:flex}.shopping-lists-tab .item-group-header::-webkit-details-marker{display:none}.shopping-lists-tab .item-group-header:before{content:"";border-right:2px solid var(--color-text-light);border-bottom:2px solid var(--color-text-light);flex-shrink:0;width:.5em;height:.5em;transition:transform .18s;transform:rotate(45deg)}.shopping-lists-tab .item-group:not([open])>.item-group-header:before{transform:rotate(-45deg)}.shopping-lists-tab .item-group-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:-.01em;flex:1}.shopping-lists-tab .item-group-counter{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-light);background:var(--color-background-mute);border-radius:var(--radius-full);padding:2px var(--spacing-3);text-align:center;min-width:1.75rem}.shopping-lists-tab .item-group--completed .item-group-name{color:var(--color-text-light)}.shopping-lists-tab .item-group>.item-card{margin-left:var(--spacing-4);margin-right:var(--spacing-4);margin-bottom:var(--spacing-2)}.shopping-lists-tab .item-group>.item-group-header+.item-card{margin-top:var(--spacing-3)}.shopping-lists-tab .item-group>.item-card:last-child{margin-bottom:var(--spacing-3)}.shopping-lists-tab .list-split-section,.shopping-lists-tab .completion-banner,.shopping-lists-tab .convert-cta{margin-top:var(--spacing-4)}.shopping-lists-tab .completion-banner{align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);background-color:var(--color-success-tint);color:var(--color-success-700);border:1px solid color-mix(in srgb, var(--color-success) 40%, transparent);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);display:flex}.shopping-lists-tab .convert-cta{justify-content:flex-end;display:flex}.shopping-lists-tab .group-bucket{padding:var(--spacing-4) var(--spacing-4) var(--spacing-2);position:relative}.shopping-lists-tab .group-bucket+.group-bucket{border-top:1px solid var(--color-border);margin-top:0}.shopping-lists-tab .group-label{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:var(--font-weight-bold);color:var(--color-primary-800);margin:0 0 var(--spacing-3) 0;background:0 0;padding:0;display:inline-flex}.shopping-lists-tab .group-label:before{content:"";background:var(--color-primary);border-radius:2px;width:4px;height:1em;display:inline-block}.shopping-lists-tab .category-bucket{padding-left:var(--spacing-3);margin-bottom:var(--spacing-3);position:relative}.shopping-lists-tab .category-bucket+.category-bucket{margin-top:var(--spacing-3);border-top:none}.shopping-lists-tab .category-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-weight-medium);color:var(--color-text-light);padding:0 0 var(--spacing-2) 0;background:0 0;margin:0}.shopping-lists-tab .item-actions-left{gap:var(--spacing-1);flex-shrink:0;display:flex}.shopping-lists-tab .item-actions-left .btn-icon--success{background-color:var(--color-success-tint);border:1px solid color-mix(in srgb, var(--color-success) 30%, transparent);color:var(--color-success)}@media (hover:hover) and (pointer:fine){.shopping-lists-tab .item-actions-left .btn-icon--success:hover:not(:disabled){background-color:var(--color-success-500);color:var(--color-neutral-900);border-color:var(--color-success-500)}}.shopping-lists-tab .item-actions-left .btn-icon--danger{background-color:var(--color-danger-bg);border:1px solid color-mix(in srgb, var(--color-error-700) 30%, transparent);color:var(--color-error-700)}@media (hover:hover) and (pointer:fine){.shopping-lists-tab .item-actions-left .btn-icon--danger:hover:not(:disabled){background-color:var(--color-error-800);color:#fff;border-color:var(--color-error-800)}}.closed-chip,.purchases-tab .closed-badge{align-items:center;gap:var(--spacing-1);margin-top:var(--spacing-1);border-radius:var(--radius-full);background-color:var(--color-warning-50);color:var(--color-warning-900);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);width:fit-content;padding:2px 8px;display:inline-flex}.purchases-tab .purchase-store{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-light);display:inline-flex}.purchases-tab .stats-section{margin-bottom:var(--spacing-5);padding:var(--spacing-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.purchases-tab .stats-section__header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-3);margin-bottom:var(--spacing-3);display:flex}.purchases-tab .stats-section__title{gap:var(--spacing-1);flex-direction:column;min-width:0;display:flex}.purchases-tab .stats-section__title h4{font-size:var(--font-size-lg);color:var(--color-text);margin:0}.purchases-tab .stats-section__summary{font-size:var(--font-size-sm);color:var(--color-text-light);margin:0}.purchases-tab .btn-icon-inline{flex-shrink:0;width:16px;height:16px}.stats-filters-modal{gap:var(--spacing-5);flex-direction:column;display:flex}.stats-filters-group{gap:var(--spacing-2);flex-direction:column;display:flex}.stats-filters-group__label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light)}.stats-filters-modal .stats-toggle,.stats-filters-modal .stats-presets{gap:var(--spacing-2);border:none;flex-wrap:wrap;display:flex;overflow:visible}.stats-filters-modal .stats-toggle button,.stats-filters-modal .stats-presets button{min-width:96px;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;font-size:var(--font-size-sm);background:0 0;flex:auto}.stats-filters-modal .stats-toggle button.active,.stats-filters-modal .stats-presets button.active{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:var(--button-primary-bg)}.stats-filters-modal .stats-range{gap:var(--spacing-3);flex-wrap:wrap;display:flex}.stats-filters-modal .stats-range label{gap:var(--spacing-1);font-size:var(--font-size-sm);color:var(--text-secondary);flex-direction:column;flex:140px;display:flex}.stats-filters-modal .stats-range input[type=date]{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background:var(--input-bg);color:var(--input-text)}.purchases-tab .stats-toggle{border:1px solid var(--color-border);border-radius:var(--radius-base);display:inline-flex;overflow:hidden}.purchases-tab .stats-toggle button{padding:var(--spacing-2) var(--spacing-3);color:var(--color-text-light);cursor:pointer;font-size:var(--font-size-sm);background:0 0;border:none}.purchases-tab .stats-toggle button.active{background:var(--button-primary-bg);color:var(--button-primary-text)}.purchases-tab .stats-total{margin-bottom:var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-text-light)}.purchases-tab .stats-total strong{color:var(--color-text);font-size:var(--font-size-base)}.purchases-tab .stats-list{gap:var(--spacing-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.purchases-tab .stats-row{padding:var(--spacing-3);background:var(--color-background-soft);border-radius:var(--radius-base)}.purchases-tab .stats-row-head{justify-content:space-between;align-items:center;gap:var(--spacing-3);display:flex}.purchases-tab .stats-row-head .stats-amount{font-weight:var(--font-weight-semibold)}.purchases-tab .stats-meta{margin-top:var(--spacing-1);font-size:var(--font-size-xs);color:var(--color-text-light)}.purchases-tab .stats-sublist{padding:var(--spacing-2) 0 0 var(--spacing-3);margin:var(--spacing-2) 0 0;border-top:1px dashed var(--color-border);gap:var(--spacing-1);flex-direction:column;list-style:none;display:flex}.purchases-tab .stats-subrow{font-size:var(--font-size-sm);color:var(--color-text-light);justify-content:space-between;align-items:center;display:flex}.members-tab{gap:var(--spacing-6);flex-direction:column;display:flex}.members-tab .content-header{justify-content:space-between;align-items:center;display:flex}.members-tab .content-header h3{font-size:var(--font-size-xl);color:var(--color-text);margin:0}.members-tab .btn-add{padding:var(--spacing-3) var(--spacing-5);background:var(--button-primary-bg);color:var(--button-primary-text);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity var(--transition-base);border:none}@media (hover:hover) and (pointer:fine){.members-tab .btn-add:hover{background:var(--button-primary-hover)}}.members-tab .members-list{gap:var(--spacing-4);flex-direction:column;display:flex}.members-tab .pending-invitations{gap:var(--spacing-3);padding:var(--spacing-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;display:flex}.members-tab .pending-invitations h4{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-base);color:var(--color-text)}.members-tab .invitation-card{justify-content:space-between;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);background:var(--color-background);border-radius:var(--radius-sm);display:flex}.members-tab .invitation-info{flex-direction:column;display:flex}.members-tab .invitation-meta{font-size:var(--font-size-sm);color:var(--color-text-light)}.members-tab .member-card{padding:var(--spacing-6);background:var(--color-background-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);justify-content:space-between;align-items:center;display:flex}.members-tab .member-info{gap:var(--spacing-4);flex:1;display:flex}.members-tab .member-avatar{border-radius:var(--radius-full);background:var(--color-primary-700);color:#fff;width:56px;height:56px;font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.members-tab .member-details{flex:1}.members-tab .member-details h4{margin:0 0 var(--spacing-1) 0;color:var(--color-text);font-size:var(--font-size-lg)}.members-tab .member-email{margin:0 0 var(--spacing-2) 0;color:var(--color-text-light);font-size:var(--font-size-sm)}.members-tab .member-permissions{margin-bottom:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text)}.members-tab .permission-label{font-weight:var(--font-weight-medium);margin-right:var(--spacing-2)}.members-tab .member-meta{gap:var(--spacing-4);align-items:center;display:flex}.members-tab .joined-date{font-size:var(--font-size-xs);color:var(--color-text-light)}.members-tab .member-actions{gap:var(--spacing-3);display:flex}.members-tab .subtitle{margin:0 0 var(--spacing-6) 0;color:var(--color-text-light);font-size:var(--font-size-sm)}@media (width<=768px){.members-tab .member-card{align-items:stretch;gap:var(--spacing-3);padding:var(--spacing-4);flex-direction:column}.members-tab .member-info{gap:var(--spacing-3)}.members-tab .member-avatar{width:40px;height:40px;font-size:var(--font-size-lg)}.members-tab .member-details h4{font-size:var(--font-size-base)}.members-tab .member-permissions{font-size:var(--font-size-xs);line-height:1.4}.members-tab .member-meta{gap:var(--spacing-2);flex-wrap:wrap}.members-tab .member-actions{flex-wrap:wrap;justify-content:flex-end}.members-tab .header-actions__optional{display:none}}.settings-tab{gap:var(--spacing-6);flex-direction:column;display:flex}.settings-tab .content-header h3{font-size:var(--font-size-xl);color:var(--color-text);margin:0}.settings-tab .settings-form{gap:var(--spacing-4);flex-direction:column;max-width:480px;display:flex}.settings-tab .form-group{gap:var(--spacing-2);flex-direction:column;display:flex}.settings-tab .btn-submit{padding:var(--spacing-3) var(--spacing-5);background:var(--button-primary-bg);color:var(--button-primary-text);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);cursor:pointer;border:none;align-self:flex-start}.settings-tab .btn-submit:disabled{opacity:.6;cursor:not-allowed}.settings-tab .settings-readonly p{margin:var(--spacing-1) 0}.profile-page .card-header{justify-content:space-between;align-items:center;display:flex}.profile-page .profile-form{gap:var(--spacing-3);flex-direction:column;display:flex}.profile-page .readonly-field{gap:var(--spacing-1);flex-direction:column;display:flex}.profile-page .readonly-field label{font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:var(--font-weight-medium)}.profile-page .readonly-value{padding:var(--spacing-2) var(--spacing-3);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text)}.profile-page .readonly-hint{font-size:var(--font-size-sm);color:var(--color-text-light);margin:0}.profile-page .sessions-list{gap:var(--spacing-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.profile-page .session-card{justify-content:space-between;align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-3);background:var(--color-background);border-radius:var(--radius-sm);display:flex}.profile-page .session-info{gap:var(--spacing-1);flex-direction:column;display:flex}.profile-page .session-meta{font-size:var(--font-size-sm);color:var(--color-text-light)}.invitations-page .invitations-list{gap:var(--spacing-3);flex-direction:column;display:flex}.invitations-page .invitation-card{justify-content:space-between;align-items:center;gap:var(--spacing-3);padding:var(--spacing-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex}.invitations-page .invitation-body h3{margin:0 0 var(--spacing-2) 0}.invitations-page .invitation-body p{margin:0 0 var(--spacing-1) 0}.invitations-page .invitation-actions{gap:var(--spacing-2);flex-shrink:0;display:flex}@media (width<=768px){.invitations-page .invitation-card{align-items:stretch;gap:var(--spacing-3);flex-direction:column}.invitations-page .invitation-actions{justify-content:stretch}.invitations-page .invitation-actions button{padding:var(--spacing-3) var(--spacing-4);flex:1 1 0}}.invitations-page .alert{padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md)}.invitations-page .alert-success{background:var(--color-success-tint);color:var(--color-success-700)}.invitations-page .alert-error{background:var(--color-danger-tint);color:var(--color-error-700)}.notifications-page .notifications-list{gap:var(--spacing-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.notifications-page .notification-item{align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base);border-left-width:4px;display:flex;position:relative}@media (hover:hover) and (pointer:fine){.notifications-page .notification-item:hover{background:var(--color-background-soft)}}.notifications-page .notification-item--unread{background:var(--color-background-soft);font-weight:var(--font-weight-medium)}.notifications-page .notification-item--info{border-left-color:var(--color-primary)}.notifications-page .notification-item--success{border-left-color:var(--color-success-700)}.notifications-page .notification-item--warning{border-left-color:var(--color-warning-900)}.notifications-page .notification-item--error{border-left-color:var(--color-error-700)}.notifications-page .notification-body{flex:1;min-width:0}.notifications-page .notification-title{font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-1)}.notifications-page .notification-text{color:var(--color-text);margin-bottom:var(--spacing-2)}.notifications-page .notification-meta{color:var(--color-text-light);font-size:var(--font-size-sm)}.notifications-page .notification-unread-dot{background:var(--color-primary);border-radius:50%;flex-shrink:0;align-self:center;width:10px;height:10px}.notifications-page .notifications-more{margin-top:var(--spacing-4);justify-content:center;display:flex}.purchases-tab{gap:var(--spacing-4);flex-direction:column;display:flex}.purchases-tab .info-banner{padding:var(--spacing-3) var(--spacing-4);background:var(--color-background-soft);border-left:3px solid var(--color-primary);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-sm);line-height:1.5}.purchases-tab .content-header{justify-content:space-between;align-items:center;display:flex}.purchases-tab .purchases-list{gap:var(--spacing-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.purchases-tab .purchase-card{padding:var(--spacing-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.purchases-tab .purchase-info{gap:var(--spacing-1);flex-direction:column;display:flex}.purchases-tab .purchase-meta{font-size:var(--font-size-sm);color:var(--color-text-light)}.budget-form{gap:var(--spacing-4);flex-direction:column;display:flex}.purchases-tab label,.budget-form>label{gap:var(--spacing-1);font-size:var(--font-size-sm);color:var(--color-text);font-weight:var(--font-weight-medium);flex-direction:column;display:flex}.purchases-tab label input,.purchases-tab label select,.purchases-tab label textarea,.budget-form>label>input,.budget-form>label>select,.budget-form>label>textarea{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-base);background:var(--color-background-soft);color:var(--color-text);font-weight:var(--font-weight-normal)}.purchases-tab label input:focus,.purchases-tab label select:focus,.purchases-tab label textarea:focus,.budget-form>label>input:focus,.budget-form>label>select:focus,.budget-form>label>textarea:focus{border-color:var(--color-primary)}.budget-form .form-section-label{margin-top:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text);font-weight:var(--font-weight-medium)}.budgets-tab{gap:var(--spacing-4);flex-direction:column;display:flex}.budgets-tab .content-header{justify-content:space-between;align-items:center;display:flex}.budgets-tab .budgets-list{gap:var(--spacing-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.budgets-tab .budget-card{padding:var(--spacing-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:var(--spacing-2);flex-direction:column;display:flex}.budgets-tab .budget-header{justify-content:space-between;align-items:center;display:flex}.budgets-tab .budget-period{font-size:var(--font-size-sm);color:var(--color-text-light)}.budgets-tab .budget-progress{background:var(--color-border);border-radius:var(--radius-full);height:6px;overflow:hidden}.budgets-tab .budget-bar{height:100%;transition:width var(--transition-base)}.budgets-tab .budget-stats{gap:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-light);display:flex}.budgets-tab .budget-remaining{margin-left:auto}.budgets-tab .budget-header-actions{gap:var(--spacing-2);align-items:center;display:flex}.budgets-tab .budget-action-btn{color:var(--color-text-light);cursor:pointer;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-base);font-size:var(--font-size-sm);background:0 0;border:none}@media (hover:hover) and (pointer:fine){.budgets-tab .budget-action-btn:hover{background:var(--color-background-soft);color:var(--color-text)}.budgets-tab .budget-action-btn--danger:hover{color:var(--color-error-700)}}.budgets-tab .budget-forecast{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-base);background:var(--color-background-soft);display:flex}.budgets-tab .budget-forecast--ok{color:var(--color-success-700);background:var(--color-success-50)}.budgets-tab .budget-forecast--warn{color:var(--color-warning-900);background:var(--color-warning-50)}.budgets-tab .budget-forecast--over{color:var(--color-error-700);background:var(--color-error-50)}.budgets-tab .budget-forecast-confidence{font-size:var(--font-size-xs);margin-left:auto}.budgets-tab .budget-allocations{gap:var(--spacing-2);margin-top:var(--spacing-2);flex-direction:column;display:flex}.budgets-tab .budget-allocation-bar{border-radius:var(--radius-full);background:var(--color-border);height:10px;display:flex;overflow:hidden}.budgets-tab .budget-allocation-bar-slice{height:100%}.budgets-tab .budget-allocation-rows{gap:var(--spacing-1);font-size:var(--font-size-sm);flex-direction:column;display:flex}.budgets-tab .budget-allocation-row{gap:var(--spacing-2);grid-template-columns:12px 1fr auto auto;align-items:center;display:grid}.budgets-tab .budget-allocation-row .dot{border-radius:50%;width:10px;height:10px}.budgets-tab .budget-allocation-row .alloc-stats{color:var(--color-text-light);font-variant-numeric:tabular-nums}.budgets-tab .budget-chart-wrap{padding:var(--spacing-3) 0;justify-content:center;max-height:220px;display:flex}.allocation-picker{gap:var(--spacing-2);padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-base);background:var(--color-background-soft);flex-direction:column;display:flex}.allocation-picker-hint{font-size:var(--font-size-xs);color:var(--color-text-light)}.allocation-picker-row{gap:var(--spacing-2);padding:var(--spacing-3);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-base);grid-template-columns:1fr 80px auto;grid-template-areas:"kind kind kind""target percent remove""dedup dedup dedup";align-items:center;display:grid}.allocation-picker-row>.searchable-select{grid-area:target}.allocation-picker-kind{border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-xs);grid-area:kind;justify-self:start;display:inline-flex;overflow:hidden}.allocation-picker-kind button{padding:var(--spacing-1) var(--spacing-3);color:var(--color-text-light);cursor:pointer;font-size:var(--font-size-xs);background:0 0;border:none}.allocation-picker-kind button+button{border-left:1px solid var(--color-border)}.allocation-picker-kind button.active{background:var(--button-primary-bg);color:var(--button-primary-text)}.allocation-picker-dedup{align-items:center;gap:var(--spacing-1);font-size:var(--font-size-xs);color:var(--color-text-light);cursor:pointer;flex-wrap:wrap;grid-area:dedup;display:flex}.allocation-picker-dedup small{font-size:var(--font-size-xs);color:var(--color-text-light);opacity:.8;flex-basis:100%}.allocation-picker-row>input[type=number]{padding:var(--spacing-2);grid-area:percent}.allocation-picker-row>.btn-remove{grid-area:remove}.allocation-picker-row .btn-remove{border:1px solid var(--color-border);border-radius:var(--radius-base);width:32px;height:32px;color:var(--color-error-700);cursor:pointer;font-size:var(--font-size-lg);background:0 0;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .12s,border-color .12s;display:inline-flex}@media (hover:hover) and (pointer:fine){.allocation-picker-row .btn-remove:hover{background:var(--color-error-50);border-color:var(--color-error-700)}}.allocation-picker-add{justify-content:center;align-items:center;gap:var(--spacing-2);border:1px dashed var(--color-border);border-radius:var(--radius-base);padding:var(--spacing-2) var(--spacing-3);cursor:pointer;color:var(--color-primary-800);font-size:var(--font-size-sm);text-align:center;background:0 0;align-self:stretch;display:inline-flex}.allocation-picker-sum{padding:var(--spacing-1) var(--spacing-3) 0;text-align:right;font-size:var(--font-size-xs);color:var(--color-text-light);align-self:stretch}.allocation-picker-sum--invalid{color:var(--color-error-700)}.household-policy-section{gap:var(--spacing-3);margin-top:var(--spacing-4);padding:var(--spacing-3);background:var(--color-background-soft);border-radius:var(--radius-base);flex-direction:column;display:flex}.household-policy-section .section-header{justify-content:space-between;align-items:center;gap:var(--spacing-3);display:flex}.household-policy-section .section-subtitle{font-size:var(--font-size-xs);color:var(--color-text-light)}.household-policy-section .empty-hint{font-size:var(--font-size-sm);color:var(--color-text-light);padding:var(--spacing-2) 0}.household-policy-section .policy-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);padding:var(--spacing-3)}.household-policy-section .policy-meta{margin-bottom:var(--spacing-2)}.household-policy-section .policy-type-badge{font-size:var(--font-size-xs);background:var(--color-primary-700);color:#fff;border-radius:var(--radius-base);padding:2px 8px;display:inline-block}.household-policy-section .policy-card .table-scroll{--table-scroll-bg:var(--color-surface)}.household-policy-section .rules-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.household-policy-section .rules-table th,.household-policy-section .rules-table td{padding:var(--spacing-1) var(--spacing-2);text-align:left;border-bottom:1px solid var(--border-color-light)}.household-policy-section .rules-table tbody th{font-weight:var(--font-weight-normal);white-space:nowrap}.household-policy-section .needs-review-banner{padding:var(--spacing-3);background:var(--color-error-50);color:var(--color-error-700);border-radius:var(--radius-base);border-left:4px solid}.split-config-modal{gap:var(--spacing-3);flex-direction:column;display:flex}.split-config-modal .type-toggle{border:1px solid var(--color-border);border-radius:var(--radius-base);align-self:flex-start;display:inline-flex;overflow:hidden}.split-config-modal .type-btn{padding:var(--spacing-2) var(--spacing-4);min-height:var(--touch-target-min);cursor:pointer;color:var(--color-text);background:0 0;border:none}.split-config-modal .type-btn.active{background:var(--button-primary-bg);color:var(--button-primary-text)}.split-config-modal .type-hint{font-size:var(--font-size-xs);color:var(--color-text-light);margin:0}.split-config-modal .members-table{border-collapse:collapse;width:100%}.split-config-modal .members-table th,.split-config-modal .members-table td{padding:var(--spacing-2);text-align:left;border-bottom:1px solid var(--border-color-light)}.split-config-modal .members-table tbody th{font-weight:var(--font-weight-normal)}.split-config-modal .members-table input[type=number]{width:90px}.split-config-modal .col-exempt{text-align:center;width:64px}.split-config-modal .col-pct,.split-config-modal .col-fixed{width:110px}.split-config-modal .remainder{align-items:center;gap:var(--spacing-3);padding:var(--spacing-2) var(--spacing-3);background-color:var(--color-warning-50);color:var(--color-warning-900);border-radius:var(--radius-base);display:flex}.split-config-modal .remainder.ok{background-color:var(--color-success-50);color:var(--color-success-700)}.split-config-modal .distribute-btn{padding:var(--spacing-1) var(--spacing-3);min-height:var(--touch-target-min);border-radius:var(--radius-base);cursor:pointer;color:inherit;font-size:var(--font-size-xs);background:0 0;border:1px solid;margin-left:auto}@media (width<=768px){.split-config-modal .col-exempt,.split-config-modal .col-pct,.split-config-modal .col-fixed{text-align:left;width:auto}.split-config-modal .members-table input[type=number]{width:100%;min-height:var(--touch-target-min)}.split-config-modal .remainder{flex-wrap:wrap}}.settlements-view{gap:var(--spacing-6);padding:var(--spacing-4);flex-direction:column;display:flex}.settlements-view section{gap:var(--spacing-3);flex-direction:column;display:flex}.settlements-view section>h3{margin:0}.settlements-view .settlements-header{justify-content:space-between;align-items:center;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.settlements-view .mode-switch{gap:var(--spacing-1);background:var(--color-background-soft);border-radius:var(--radius-md);padding:2px;display:flex}.settlements-view .mode-switch button{padding:var(--spacing-1) var(--spacing-3);cursor:pointer;color:var(--color-text-light);border-radius:var(--radius-base);font-size:var(--font-size-sm);background:0 0;border:none}.settlements-view .mode-switch button.is-active{background:var(--button-primary-bg);color:var(--button-primary-text);box-shadow:0 1px 2px #00000026}.settlements-view .balance-list{gap:var(--spacing-2);flex-direction:column;display:flex}.settlements-view .balance-row{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-base);background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.settlements-view .balance-amount{font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.settlements-view .balance-amount--debt{color:var(--color-debt)}.settlements-view .balance-amount--credit{color:var(--color-credit)}.settlements-view .balance-amount--neutral{color:var(--color-neutral-balance)}.settlements-view .tx-list{gap:var(--spacing-2);flex-direction:column;display:flex}.settlements-view .tx-row{gap:var(--spacing-3);padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);grid-template-columns:1fr auto auto;align-items:center;display:grid}.settlements-view .tx-row .tx-flow{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);display:flex}.settlements-view .tx-row .arrow{color:var(--color-text-light)}.settlements-view .tx-amount{font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.settlements-view .tx-row .btn-settle{padding:var(--spacing-1) var(--spacing-3);border:1px solid var(--color-credit);color:var(--color-credit);border-radius:var(--radius-base);cursor:pointer;font-size:var(--font-size-sm);background:0 0}@media (hover:hover) and (pointer:fine){.settlements-view .tx-row .btn-settle:hover{background:var(--color-success-50)}}.settlements-view .tx-row .btn-settle:disabled{opacity:.5;cursor:not-allowed}.settlements-view .simplified-note{font-size:var(--font-size-xs);color:var(--color-text-light);padding:var(--spacing-2) var(--spacing-3);background:var(--color-background-soft);border-radius:var(--radius-base)}.settings-tab .settlements-toggle{align-items:stretch;gap:var(--spacing-1);margin-top:var(--spacing-4);padding:var(--spacing-3);background:var(--color-background-soft);border-radius:var(--radius-base);flex-direction:column;display:flex}.settings-tab .settlements-toggle>label{align-items:center;gap:var(--spacing-2);cursor:pointer;display:inline-flex}.settings-tab .settlements-toggle-hint{font-size:var(--font-size-xs);color:var(--color-text-light);line-height:1.45}.settlements-view .balance-name{align-items:center;gap:var(--spacing-2);display:inline-flex}.settlements-view .badge{padding:2px var(--spacing-2);font-size:var(--font-size-xs);border-radius:var(--radius-full);font-weight:var(--font-weight-medium);text-transform:lowercase;display:inline-block}.settlements-view .badge-provisional{background:var(--color-background-soft);color:var(--color-text-light);border:1px solid var(--color-border)}.settlements-view .badge-former{background:var(--color-background-soft);color:var(--color-text-light);border:1px dashed var(--color-border)}.settlements-view .payments-list{gap:var(--spacing-2);flex-direction:column;display:flex}.settlements-view .payment-row{gap:var(--spacing-3);padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-base);background:var(--color-surface);grid-template-columns:1fr auto auto;align-items:center;display:grid}.settlements-view .payment-row .tx-flow{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);display:flex}.settlements-view .payment-row .payment-date{color:var(--color-text-light)}.members-tab .header-actions{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.members-tab .btn-secondary{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-base);cursor:pointer;font-size:var(--font-size-sm)}@media (hover:hover) and (pointer:fine){.members-tab .btn-secondary:hover{background:var(--color-background-soft)}}.members-tab .btn-danger{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-debt);color:var(--color-debt);border-radius:var(--radius-base);cursor:pointer;font-size:var(--font-size-sm);background:0 0}@media (hover:hover) and (pointer:fine){.members-tab .btn-danger:hover{background:var(--color-error-50)}}.profile-page .danger-zone{border-color:var(--color-danger-border);background:var(--color-danger-tint-soft)}.profile-page .danger-zone h2{color:var(--color-error-700)}.table-scroll{--table-scroll-bg:var(--bg-primary);-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:thin;background-color:var(--table-scroll-bg);background-image:linear-gradient(to right, var(--table-scroll-bg) 30%, transparent), linear-gradient(to left, var(--table-scroll-bg) 30%, transparent), linear-gradient(to right, #8080804d, transparent), linear-gradient(to left, #8080804d, transparent);background-position:0 0,100% 0,0 0,100% 0;background-repeat:no-repeat;background-size:var(--spacing-10) 100%, var(--spacing-10) 100%, var(--spacing-3) 100%, var(--spacing-3) 100%;background-attachment:local,local,scroll,scroll;overflow-x:auto}.table-scroll>table{min-width:max-content}.compare-page{padding:var(--spacing-4)}.compare-page .compare-header{margin-bottom:var(--spacing-4)}.compare-page .compare-filters{gap:var(--spacing-2);margin-top:var(--spacing-2);flex-wrap:wrap;display:flex}.compare-page .compare-chip{background:var(--color-background-soft);color:var(--color-text-light);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);font-size:var(--font-size-sm)}.compare-page .compare-loading,.compare-page .compare-empty{padding:var(--spacing-6);text-align:center;color:var(--color-text-light)}.compare-page .compare-table{border-collapse:collapse;width:100%;margin-top:var(--spacing-3)}.compare-page .compare-table th,.compare-page .compare-table td{padding:var(--spacing-2) var(--spacing-3);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.compare-page .compare-table th{font-weight:var(--font-weight-medium);color:var(--color-text-light);font-size:var(--font-size-sm)}.compare-page .compare-row-cheapest{background:var(--color-success-tint-soft)}.compare-page .compare-price{font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.compare-page .compare-thumb{width:64px}.compare-page .compare-thumb img{object-fit:cover;border-radius:var(--radius-sm);width:48px;height:48px}.compare-page .compare-muted{color:var(--color-text-light);font-size:var(--font-size-sm)}.compare-page .compare-cheap-badge{margin-left:var(--spacing-2);background:var(--color-success-50);color:var(--color-success);padding:.125rem var(--spacing-2);border-radius:var(--radius-full);font-size:var(--font-size-xs)}@media (width<=768px){.compare-page .compare-table th:first-child,.compare-page .compare-thumb{display:none}.compare-page .compare-table th:nth-child(2),.compare-page .compare-table td:nth-child(2){z-index:1;background:var(--table-scroll-bg);max-width:44vw;box-shadow:inset -1px 0 0 var(--color-border);position:sticky;left:0}.compare-page .compare-row-cheapest td:nth-child(2){background-image:linear-gradient(var(--color-success-tint-soft), var(--color-success-tint-soft))}.compare-page .compare-actions{text-align:left}}.compare-prices-view .hint{margin-bottom:var(--spacing-3)}.compare-prices-view .loading{padding:var(--spacing-6);text-align:center;color:var(--color-text-light)}.compare-prices-view .price-compare-table{border-collapse:collapse;width:100%}.compare-prices-view .price-compare-table th,.compare-prices-view .price-compare-table td{padding:var(--spacing-2) var(--spacing-3);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.compare-prices-view .price-compare-table thead th{font-weight:var(--font-weight-medium);color:var(--color-text-light);font-size:var(--font-size-sm);white-space:nowrap}.compare-prices-view .price-compare-table tbody th{font-weight:var(--font-weight-medium)}.compare-prices-view .price-compare-table .cheapest{background:var(--color-success-tint-soft)}@media (width<=768px){.compare-prices-view .price-compare-table thead th:first-child,.compare-prices-view .price-compare-table tbody th{z-index:1;background:var(--table-scroll-bg);max-width:40vw;box-shadow:inset -1px 0 0 var(--color-border);position:sticky;left:0}.compare-prices-view .price-compare-table .cheapest th{background-image:linear-gradient(var(--color-success-tint-soft), var(--color-success-tint-soft))}}.browse-page{gap:var(--spacing-5);flex-direction:column;display:flex}.browse-page .page-header{align-items:flex-start;gap:var(--spacing-2);flex-direction:column}.browse-page .page-subtitle{color:var(--color-text-light);font-size:var(--font-size-sm);margin:0}.browse-page .card{padding:var(--spacing-5)}.browse-page .browse-grid{gap:var(--spacing-4);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.browse-page .browse-card{justify-content:center;align-items:center;gap:var(--spacing-2);padding:var(--spacing-5) var(--spacing-4);background:var(--color-surface);border:1px solid var(--border-color-light);border-radius:var(--radius-md);color:var(--color-text);text-align:center;flex-direction:column;text-decoration:none;transition:border-color .12s,transform .12s;display:flex}@media (hover:hover) and (pointer:fine){.browse-page .browse-card:hover{border-color:var(--color-primary);transform:translateY(-1px)}}.browse-page .browse-icon{font-size:2rem;line-height:1}.browse-page .browse-name{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.browse-page .back-link{color:var(--color-text);margin-right:var(--spacing-2);text-decoration:none}.browse-page .facet-pickers .facet-row{padding:var(--spacing-2) 0;border-bottom:1px solid var(--border-color-light)}.browse-page .facet-pickers .facet-row:last-child{border-bottom:none}.browse-page .facet-pickers .facet-label{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-1);display:flex}.browse-page .facet-pickers .facet-label .hint{color:var(--color-text-light);font-size:var(--font-size-xs)}.browse-page .facet-pickers .facet-clear{font-size:var(--font-size-sm);border:1px solid var(--color-border);color:var(--color-primary-800);cursor:pointer;padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);background:0 0;margin-left:auto;transition:border-color .12s,background .12s}@media (hover:hover) and (pointer:fine){.browse-page .facet-pickers .facet-clear:hover{border-color:var(--color-primary);background:var(--color-info-tint)}}.browse-page .facet-pickers .facet-chips{gap:var(--spacing-1);flex-wrap:wrap;display:flex}.browse-page .facet-pickers .facet-chip{font-size:var(--font-size-xs);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-full);background:var(--color-background-mute);color:var(--color-text);border:1px solid var(--border-color-light);cursor:pointer;transition:background .12s,border-color .12s;display:inline-block}@media (hover:hover) and (pointer:fine){.browse-page .facet-pickers .facet-chip:hover{border-color:var(--color-primary)}}.browse-page .facet-pickers .facet-chip.selected{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:var(--button-primary-bg)}.scan-page .scan-header{align-items:center;gap:var(--spacing-4);padding:var(--spacing-2) var(--spacing-4);border-bottom:1px solid var(--color-border);display:flex}.scan-page .back-btn{align-items:center;gap:var(--spacing-1);min-height:var(--touch-target-min);font-size:var(--font-size-base);cursor:pointer;background:0 0;border:none;display:inline-flex}.scan-page .scan-header h1{font-size:var(--font-size-lg);margin:0}.scan-page .scan-stage{padding:var(--spacing-4);gap:var(--spacing-4);flex-direction:column;flex:1;display:flex}.scan-page .scan-stage--center{justify-content:center;align-items:center}.scan-page .scan-icon{width:96px;height:96px;color:var(--color-primary-800)}.scan-page .scan-hint{text-align:center;color:var(--color-text-light);margin:0}.scan-page .scan-error{color:var(--color-danger);text-align:center}.scan-page .cta-group{gap:var(--spacing-3);margin-top:var(--spacing-4);flex-direction:column;display:flex}.scan-page .result-card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--spacing-4);gap:var(--spacing-2);flex-direction:column;display:flex}.scan-page .result-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.scan-page .result-code{color:var(--color-text-light);font-family:monospace;font-size:var(--font-size-sm)}.scan-page .vote-progress-row{justify-content:space-between;align-items:center;display:flex}.scan-page .vote-badge{background:var(--color-warning-50);color:var(--color-warning-900);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.scan-page .vote-actions{gap:var(--spacing-2);flex-direction:column;display:flex}.scan-page .vote-result{text-align:center;padding:var(--spacing-4);background:var(--color-surface);border-radius:var(--radius-md)}.scan-page .vote-result.approved{background:var(--color-success-50);color:var(--color-success-700)}.scan-page .submit-form{gap:var(--spacing-3);flex-direction:column;display:flex}.scan-page .submit-form label{gap:var(--spacing-1);font-size:var(--font-size-sm);flex-direction:column;display:flex}.scan-page .submit-form label>input,.scan-page .submit-form label>select,.scan-page .submit-form label>textarea{font-size:var(--font-size-base)}.scan-page .form-actions{justify-content:space-between;gap:var(--spacing-2);display:flex}.request-store-view{max-width:48rem;padding:var(--spacing-4)}.request-store-view .page-header{margin-bottom:var(--spacing-4);justify-content:space-between;align-items:center;display:flex}.request-store-view .card{margin-bottom:var(--spacing-4)}.request-store-view .actions{justify-content:flex-end;display:flex}.purchases-tab .stats-range{gap:var(--spacing-3);margin-bottom:var(--spacing-3);font-size:var(--font-size-sm);flex-wrap:wrap;align-items:center;display:flex}.purchases-tab .stats-range label{align-items:center;gap:var(--spacing-1);color:var(--color-text-light);display:inline-flex}.purchases-tab .stats-range input[type=date]{padding:var(--spacing-1) var(--spacing-2);border:1px solid var(--color-border);border-radius:var(--radius-base);background:var(--color-surface);color:var(--color-text)}.purchases-tab .stats-presets{gap:var(--spacing-1);margin-left:auto;display:inline-flex}.purchases-tab .stats-presets button{padding:var(--spacing-1) var(--spacing-2);border:1px solid var(--color-border);border-radius:var(--radius-base);color:var(--color-text-light);cursor:pointer;font-size:var(--font-size-xs);background:0 0}.purchases-tab .stats-presets button.active{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:var(--button-primary-bg)}.purchases-tab .stats-bar{margin-top:var(--spacing-2);background:var(--color-background-mute);border-radius:var(--radius-full);height:6px;overflow:hidden}.purchases-tab .stats-bar-fill{background:var(--color-primary);border-radius:var(--radius-full);min-width:2px;height:100%;transition:width .2s ease-out}.purchases-tab .stats-pie-wrap{align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-3);padding:var(--spacing-3);background:var(--color-background-soft);border-radius:var(--radius-base);display:flex}.purchases-tab .stats-pie{width:140px;height:140px;box-shadow:0 0 0 4px var(--color-surface) inset;border-radius:50%;flex-shrink:0}.purchases-tab .stats-pie-legend{gap:var(--spacing-1);font-size:var(--font-size-xs);flex-direction:column;flex:1;margin:0;padding:0;list-style:none;display:flex}.purchases-tab .stats-pie-legend li{align-items:center;gap:var(--spacing-2);display:flex}.purchases-tab .legend-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px}.purchases-tab .legend-label{color:var(--color-text);flex:1}.purchases-tab .legend-pct{color:var(--color-text-light);font-variant-numeric:tabular-nums}.purchases-tab .stats-bar-fill.is-warning{background:#f59e0b}.purchases-tab .stats-bar-fill.is-critical{background:#ef4444}.purchases-tab .stats-bar-fill.is-over{background:#b91c1c}.purchases-tab .stats-amount .muted{color:var(--color-text-light);font-weight:var(--font-weight-normal);font-size:var(--font-size-xs)}.shopping-lists-tab .item-actions-right{gap:var(--spacing-1);flex-shrink:0;display:flex}.edit-item-form{gap:var(--spacing-3);flex-direction:column;display:flex}.browse-page .browse-results-header{align-items:baseline;gap:var(--spacing-2);margin-bottom:var(--spacing-3);color:var(--color-text);display:flex}.browse-page .browse-results-list{gap:var(--spacing-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.browse-page .browse-result-row{gap:var(--spacing-3);padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);grid-template-columns:48px 1fr auto;align-items:center;display:grid}.browse-page .browse-result-row.is-cheapest{border-color:var(--color-primary)}.browse-page .browse-result-image{background:var(--color-background-soft);border-radius:var(--radius-base);justify-content:center;align-items:center;width:48px;height:48px;display:flex;overflow:hidden}.browse-page .browse-result-image img{object-fit:contain;width:100%;height:100%}.browse-page .browse-result-info{min-width:0}.browse-page .browse-result-sub{font-size:var(--font-size-sm);color:var(--color-text-light)}.browse-page .browse-result-store{margin-top:var(--spacing-1);font-size:var(--font-size-xs);color:var(--color-text-light)}.browse-page .browse-result-loc{color:var(--color-text-light)}.browse-page .browse-result-price{font-variant-numeric:tabular-nums;text-align:right;align-items:flex-end;gap:var(--spacing-1);flex-direction:column;display:flex}.browse-page .browse-cheapest-badge{font-size:var(--font-size-xs);padding:.125rem var(--spacing-2);border-radius:var(--radius-full);background:var(--color-success-tint);color:var(--color-success)}.browse-page .browse-search{gap:var(--spacing-3);flex-direction:column;display:flex}.browse-page .browse-search-row{position:relative}.browse-page .browse-search-input{width:100%;padding:var(--spacing-3) var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-base)}.browse-page .browse-search-input:focus{border-color:var(--color-primary)}.browse-page .browse-search-clear{right:var(--spacing-2);background:var(--color-background-soft);width:28px;height:28px;color:var(--color-text);cursor:pointer;font-size:var(--font-size-base);border:none;border-radius:50%;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}@media (hover:hover) and (pointer:fine){.browse-page .browse-search-clear:hover{background:var(--color-background-mute)}}.browse-page .browse-search-row{gap:var(--spacing-2);align-items:stretch;display:flex}.browse-page .browse-search-row .browse-search-input{flex:1}.browse-page .browse-search-input-wrap{flex:1;min-width:0;position:relative}.browse-page .browse-search-input-wrap .browse-search-input{width:100%;padding-right:36px}.browse-page .browse-filter-toggle{align-items:center;gap:var(--spacing-2);padding:0 var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--button-secondary-bg);color:var(--button-secondary-text);font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap;display:inline-flex}@media (hover:hover) and (pointer:fine){.browse-page .browse-filter-toggle:hover{border-color:var(--color-primary)}}.browse-page .browse-filter-count{border-radius:var(--radius-full);background:var(--color-primary-700);color:#fff;min-width:20px;height:20px;font-size:var(--font-size-xs);justify-content:center;align-items:center;padding:0 6px;font-weight:600;display:inline-flex}.browse-page .browse-active-chips{gap:var(--spacing-1);margin-top:var(--spacing-2);flex-wrap:wrap;display:flex}.browse-page .browse-chip-remove{margin-left:var(--spacing-1);color:inherit;cursor:pointer;font-size:var(--font-size-base);background:0 0;border:none;padding:0;line-height:1}.browse-brand-search{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);margin-bottom:var(--spacing-3)}.browse-brand-dropdown{margin:var(--spacing-2) 0 0 0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);max-height:32vh;padding:0;list-style:none;overflow-y:auto}.browse-brand-dropdown-item{padding:var(--spacing-2) var(--spacing-3);cursor:pointer;color:var(--color-text);font-size:var(--font-size-sm);border-bottom:1px solid var(--border-color-light);justify-content:space-between;align-items:center;display:flex}.browse-brand-dropdown-item:last-child{border-bottom:none}@media (hover:hover) and (pointer:fine){.browse-brand-dropdown-item:hover{background:var(--color-background-soft)}}.browse-brand-dropdown-item.selected{color:var(--color-primary-800);font-weight:600}.browse-brand-tick{font-weight:700}.browse-brand-dropdown-empty{padding:var(--spacing-3);color:var(--color-text-light);font-size:var(--font-size-sm);text-align:center}.browse-brand-selected{gap:var(--spacing-1);margin-top:var(--spacing-3);flex-wrap:wrap;display:flex}.browse-price-range{align-items:center;gap:var(--spacing-2);display:flex}.browse-price-input{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-base);flex:1}.browse-price-separator{color:var(--color-text-light);font-weight:600}.browse-facet-block{margin-top:var(--spacing-3)}.browse-facet-block:first-child{margin-top:0}.browse-facet-name{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);margin-bottom:var(--spacing-1)}.browse-facet-chips{gap:var(--spacing-1);-webkit-overflow-scrolling:touch;padding-bottom:var(--spacing-1);flex-wrap:nowrap;display:flex;overflow-x:auto;mask-image:linear-gradient(90deg,#000 0% calc(100% - 24px),#0000 100%)}.browse-facet-chips::-webkit-scrollbar{height:4px}.browse-facet-chips::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.browse-facet-chips .facet-chip{white-space:nowrap;flex-shrink:0}.browse-size-range{align-items:center;gap:var(--spacing-2);display:flex}.browse-size-unit{width:120px;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-base);flex:none}.browse-size-range .browse-price-input{flex:1;min-width:0}.browse-page .browse-facet-inline{gap:var(--spacing-3);margin-top:var(--spacing-3);padding-top:var(--spacing-3);border-top:1px solid var(--border-color-light);flex-direction:column;display:flex}.browse-page .browse-facet-inline-row{gap:var(--spacing-1);flex-direction:column;display:flex}.browse-page .browse-facet-inline-name{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light)}.browse-page .browse-facet-inline-chips{gap:var(--spacing-1);-webkit-overflow-scrolling:touch;padding-bottom:var(--spacing-1);flex-wrap:nowrap;display:flex;overflow-x:auto;mask-image:linear-gradient(90deg,#000 0% calc(100% - 24px),#0000 100%)}.browse-page .browse-facet-inline-chips::-webkit-scrollbar{height:4px}.browse-page .browse-facet-inline-chips::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.browse-facet-inline-chips .facet-chip,.recognized-strip .facet-chip,.browse-active-chips .facet-chip,.browse-facet-chips .facet-chip{align-items:center;gap:var(--spacing-1);font-size:var(--font-size-xs);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);background:var(--color-background-soft);color:var(--color-text);border:1px solid var(--color-border);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .12s,border-color .12s;display:inline-flex}@media (hover:hover) and (pointer:fine){.browse-facet-inline-chips .facet-chip:hover,.recognized-strip .facet-chip:hover,.browse-active-chips .facet-chip:hover,.browse-facet-chips .facet-chip:hover{border-color:var(--color-primary)}}.browse-facet-inline-chips .facet-chip.selected,.recognized-strip .facet-chip.selected,.browse-active-chips .facet-chip.selected,.browse-facet-chips .facet-chip.selected{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:var(--button-primary-bg)}.browse-page .browse-search-input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.browse-page .browse-search-input::-webkit-search-decoration{-webkit-appearance:none}.browse-page .browse-result-unit-price{font-size:var(--font-size-xs);color:var(--color-text-light);font-weight:400;display:block}.browse-page .browse-bestvalue-badge{font-size:var(--font-size-xs);padding:.125rem var(--spacing-2);border-radius:var(--radius-full);background:var(--color-info-tint);color:var(--color-primary-800);margin-top:var(--spacing-1)}.browse-page .browse-result-row.is-best-value{border-color:var(--color-primary)}.cheapest-modal{gap:var(--spacing-3);flex-direction:column;display:flex}.cheapest-empty{text-align:center;padding:var(--spacing-4);color:var(--color-text-light)}.cheapest-empty .hint{margin-top:var(--spacing-2);font-size:var(--font-size-sm);display:block}.cheapest-list{gap:var(--spacing-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.cheapest-row{background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-3);gap:var(--spacing-2);flex-direction:column;display:flex}.cheapest-row--best{border-color:var(--color-success);background:var(--color-success-tint)}.cheapest-row__head{justify-content:space-between;align-items:center;gap:var(--spacing-3);display:flex}.cheapest-row__title{align-items:center;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.cheapest-row__store{font-weight:var(--font-weight-semibold);color:var(--color-text)}.cheapest-row__total{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);white-space:nowrap}.cheapest-row--best .cheapest-row__total{color:var(--color-success)}.cheapest-badge{font-size:var(--font-size-xs);padding:.125rem var(--spacing-2);border-radius:var(--radius-full);white-space:nowrap}.cheapest-badge--best{background:var(--color-success-tint);color:var(--color-success)}.cheapest-badge--approx{background:var(--color-warning-50);color:var(--color-warning-900);cursor:help}.cheapest-row__meta{justify-content:space-between;align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-light);display:flex}.cheapest-row__count{flex:auto}.cheapest-missing{flex:none}.cheapest-missing>summary{cursor:pointer;color:var(--color-primary-800);list-style-position:outside}.cheapest-missing__body{margin-top:var(--spacing-2);padding:var(--spacing-2);background:var(--color-background);border-radius:var(--radius-sm)}.cheapest-missing__body ul{margin:var(--spacing-1) 0 0;padding-left:var(--spacing-5)}.cheapest-excluded{margin-top:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-light);text-align:center}.compare-page .compare-actions{white-space:nowrap;text-align:right}.wallet-page .wallet-header{margin-bottom:var(--spacing-2)}.wallet-page .wallet-header h1{color:var(--color-text);margin:0}.wallet-page .wallet-empty{text-align:center;padding:var(--spacing-8) var(--spacing-3);color:var(--color-text-light)}.wallet-page .wallet-empty .hint{margin-top:var(--spacing-2);display:block}.wallet-page .wallet-stack{margin:var(--spacing-4) 0 0;gap:var(--spacing-3);flex-direction:column;padding:0;list-style:none;display:flex}.wallet-page .wallet-card{align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--transition-base), transform var(--transition-base);display:flex}.wallet-page .wallet-card:active{border-color:var(--color-primary);transform:translateY(-1px)}@media (hover:hover) and (pointer:fine){.wallet-page .wallet-card:hover{border-color:var(--color-primary);transform:translateY(-1px)}}.wallet-page .wallet-card__logo{border-radius:var(--radius-md);background:var(--color-background);border:1px solid var(--color-border);flex:0 0 56px;justify-content:center;align-items:center;width:56px;height:56px;display:flex;overflow:hidden}.wallet-page .wallet-card__logo img{object-fit:contain;max-width:100%;max-height:100%}.wallet-page .wallet-card__logo-fallback{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-light)}.wallet-page .wallet-card__body{flex:auto;min-width:0}.wallet-page .wallet-card__store{font-weight:var(--font-weight-semibold);color:var(--color-text)}.wallet-page .wallet-card__program{font-size:var(--font-size-sm);color:var(--color-text-light)}.wallet-page .wallet-card__nick{font-size:var(--font-size-xs);color:var(--color-text-light);margin-top:var(--spacing-1);font-style:italic}.wallet-page .wallet-card__meta{align-items:flex-end;gap:var(--spacing-2);flex-direction:column;display:flex}.wallet-page .wallet-card__number{font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--color-text-light);letter-spacing:.1em}.wallet-page .wallet-card__remove{cursor:pointer;font-size:var(--font-size-base);padding:var(--spacing-1);background:0 0;border:none}.add-card-modal{gap:var(--spacing-3);flex-direction:column;display:flex}.card-barcode-modal{align-items:center;gap:var(--spacing-4);padding:var(--spacing-3);background:#fff;flex-direction:column;display:flex}.card-barcode-modal .card-barcode-header{align-items:center;gap:var(--spacing-3);width:100%;display:flex}.card-barcode-modal .card-barcode-logo{object-fit:contain;max-width:64px;max-height:64px}.card-barcode-modal .card-barcode-store{flex:1;min-width:0}.card-barcode-modal .card-barcode-storename{font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);color:#000}.card-barcode-modal .card-barcode-displayname{font-size:var(--font-size-sm);color:#555;font-style:italic}.card-barcode-modal .card-barcode-canvas-wrap{width:100%;padding:var(--spacing-3);border-radius:var(--radius-md);background:#fff;justify-content:center;display:flex}.card-barcode-modal .card-barcode-canvas{max-width:100%;height:auto}.card-barcode-modal .card-barcode-fallback{text-align:center;color:#555;margin:0}.card-barcode-modal .card-barcode-number{font-family:var(--font-family-mono);font-size:var(--font-size-lg);letter-spacing:.15em;color:#000;text-align:center;margin:0}.cheapest-row__totals{flex-direction:column;align-items:flex-end;gap:.125rem;display:flex}.cheapest-row__total-base{font-size:var(--font-size-xs);color:var(--color-text-light);text-decoration:line-through}.cheapest-badge--promo{background:var(--color-warning-50);color:var(--color-warning-900);cursor:help}.cheapest-promos,.cheapest-loyalty{margin-top:var(--spacing-2)}@media (pointer:coarse){.cheapest-promos,.cheapest-loyalty{margin-top:0}}.cheapest-promos>summary,.cheapest-loyalty>summary{cursor:pointer;color:var(--color-primary-800);font-size:var(--font-size-sm)}.cheapest-promos__list{margin:var(--spacing-2) 0 0;gap:var(--spacing-1);flex-direction:column;padding:0;list-style:none;display:flex}.cheapest-promos__item{gap:var(--spacing-1) var(--spacing-2);font-size:var(--font-size-sm);grid-template-columns:1fr auto;align-items:baseline;display:grid}.cheapest-promos__item-name{font-weight:var(--font-weight-medium);color:var(--color-text)}.cheapest-promos__item-reason{color:var(--color-text-light);font-size:var(--font-size-xs);grid-column:1/2}.cheapest-promos__item-amount{color:var(--color-success);white-space:nowrap;font-weight:var(--font-weight-semibold)}.cheapest-loyalty__cta{margin-top:var(--spacing-2);display:inline-block}.compare-page .compare-price-base{color:var(--color-text-light);font-size:var(--font-size-xs);margin-right:var(--spacing-1);text-decoration:line-through}.compare-page .compare-promo-badge{margin-left:var(--spacing-1);font-size:var(--font-size-xs);padding:.125rem var(--spacing-2);border-radius:var(--radius-full);background:var(--color-warning-50);color:var(--color-warning-900);cursor:help;display:inline-block}.compare-page .compare-loyalty-badge{margin-left:var(--spacing-1);font-size:var(--font-size-xs);padding:.125rem var(--spacing-2);border-radius:var(--radius-full);background:var(--color-info-tint);color:var(--color-primary-800);cursor:help;display:inline-block}.shopping-lists-tab .item-estimate-base{color:var(--color-text-light);font-size:var(--font-size-xs);margin-right:var(--spacing-1);text-decoration:line-through}.shopping-lists-tab .item-promo-badge{font-size:var(--font-size-xs);padding:.125rem var(--spacing-1);border-radius:var(--radius-full);background:var(--color-warning-50);color:var(--color-warning-900);cursor:help;margin-top:var(--spacing-1);display:inline-block}.convert-form .convert-estimate-hint{margin-top:var(--spacing-1);cursor:pointer;color:var(--color-primary-800);font-weight:var(--font-weight-medium);display:block}.pantry-tab{gap:var(--spacing-4);flex-direction:column;display:flex}.pantry-tab .content-header{justify-content:space-between;align-items:center;display:flex}.pantry-tab__error,.pantry-tab__empty{padding:var(--spacing-6);text-align:center;color:var(--color-text-light)}.pantry-tab__error{color:var(--color-error-700)}.pantry-tab__grid{gap:var(--spacing-3);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.pantry-card{gap:var(--spacing-2);padding:var(--spacing-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;flex-direction:column;transition:box-shadow .15s ease-in-out;display:flex}@media (hover:hover) and (pointer:fine){.pantry-card:hover{box-shadow:0 2px 6px #00000014}}.pantry-card--open{border-left:3px solid var(--color-primary)}.pantry-card__head{flex-direction:column;display:flex}.pantry-card__name{font-weight:var(--font-weight-semibold);font-size:.95rem}.pantry-card__brand{color:var(--color-text-light);font-size:.8rem}.pantry-card__progress{border-radius:var(--radius-sm);background:var(--color-neutral-200);height:6px;overflow:hidden}.pantry-card__bar{height:100%;transition:width .2s ease-in-out,background .2s ease-in-out}.pantry-card__stats{color:var(--color-text-light);justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.pantry-card__badge{background:var(--color-primary-50);color:var(--color-primary-800);border-radius:var(--radius-sm);font-size:.7rem;font-weight:var(--font-weight-medium);padding:.15rem .5rem}.pantry-detail{gap:var(--spacing-4);flex-direction:column;display:flex}.pantry-detail__error{padding:var(--spacing-4);text-align:center;color:var(--color-error-700)}.pantry-detail__meta{padding-bottom:var(--spacing-2);border-bottom:1px solid var(--color-border);color:var(--color-text-light);justify-content:space-between;font-size:.9rem;display:flex}.pantry-detail__section{gap:var(--spacing-2);flex-direction:column;display:flex}.pantry-detail__section h3{font-size:.9rem;font-weight:var(--font-weight-semibold);margin:0}.pantry-detail__hint{color:var(--color-text-light);margin:0;font-size:.8rem}.pantry-detail__row{align-items:center;gap:var(--spacing-2);display:flex}.pantry-detail__row input[type=number],.pantry-detail__row input[type=text]{flex:1}.pantry-detail__unit{color:var(--color-text-light);min-width:2rem;font-size:.9rem}.pantry-detail__note{width:100%}.pantry-detail__actions{gap:var(--spacing-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.pantry-detail__empty{color:var(--color-text-light);font-size:.85rem}.pantry-detail__history{gap:var(--spacing-1);flex-direction:column;max-height:240px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.pantry-detail__history-row{gap:var(--spacing-2);background:var(--bg-primary);border-radius:var(--radius-sm);grid-template-columns:auto 1fr auto;align-items:center;padding:.4rem .5rem;font-size:.85rem;display:grid}.pantry-detail__history-row--consume{border-left:3px solid var(--color-success-700)}.pantry-detail__history-row--correction{border-left:3px solid var(--color-warning-900)}.pantry-detail__history-row--discard{border-left:3px solid var(--color-error-700)}.pantry-detail__history-kind{font-weight:var(--font-weight-medium);color:var(--color-text-light)}.pantry-detail__history-amount{font-variant-numeric:tabular-nums}.pantry-detail__history-time{color:var(--color-text-light);font-size:var(--font-size-xs)}.pantry-detail__history-note{color:var(--color-text-light);padding-left:var(--spacing-1);grid-column:1/-1;font-size:.8rem}.pantry-add__subtitle{margin-bottom:var(--spacing-3);color:var(--color-text-light);font-size:.9rem}.pantry-add__field{gap:var(--spacing-1);margin-bottom:var(--spacing-3);flex-direction:column;font-size:.85rem;display:flex}.pantry-add__field>input,.pantry-add__field>select,.pantry-add__field>textarea{font-size:var(--font-size-base)}.pantry-add__field small{color:var(--color-text-light);font-size:var(--font-size-xs)}.pantry-add__search-results{margin:var(--spacing-1) 0 0 0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);max-height:180px;padding:0;list-style:none;overflow-y:auto}.pantry-add__search-item{cursor:pointer;padding:.4rem .6rem}@media (hover:hover) and (pointer:fine){.pantry-add__search-item:hover{background:var(--color-neutral-100)}}.pantry-add__error{color:var(--color-error-700);padding:var(--spacing-2);background:var(--color-error-50);border-radius:var(--radius-sm);font-size:.85rem}.pantry-stock-badge{align-items:center;gap:var(--spacing-1);border-radius:var(--radius-sm);font-size:.72rem;font-weight:var(--font-weight-medium);white-space:nowrap;padding:.1rem .5rem;line-height:1.2;display:inline-flex}.pantry-stock-badge--ok{background:var(--color-primary-50);color:var(--color-primary-800)}.btn-add,.shopping-lists-tab .btn-back,.shopping-lists-tab .groupby-toggle__btn,.products-tab .btn-request,.members-tab .btn-add,.members-tab .btn-edit,.members-tab .btn-remove,.browse-page .browse-filter-toggle,.browse-brand-dropdown-item,.pantry-add__search-item{min-height:var(--touch-target-min)}.shopping-lists-tab .btn-back{min-width:var(--touch-target-min)}.budgets-tab .budget-action-btn,.allocation-picker-row .btn-remove,.settlements-view .tx-row .btn-settle,.settlements-view .mode-switch button,.browse-page .browse-search-clear,.browse-page .facet-pickers .facet-clear,.browse-page .facet-pickers .facet-chip,.browse-facet-inline-chips .facet-chip,.recognized-strip .facet-chip,.browse-active-chips .facet-chip,.browse-facet-chips .facet-chip{position:relative}@media (pointer:coarse){.budgets-tab .budget-action-btn:after,.allocation-picker-row .btn-remove:after,.settlements-view .tx-row .btn-settle:after,.browse-page .browse-search-clear:after,.browse-page .facet-pickers .facet-clear:after,.browse-page .facet-pickers .facet-chip:after,.browse-facet-inline-chips .facet-chip:after,.recognized-strip .facet-chip:after,.browse-active-chips .facet-chip:after,.browse-facet-chips .facet-chip:after{content:"";position:absolute;inset:-8px}.allocation-picker-row .btn-remove:after{inset:-6px}.settlements-view .mode-switch button:after{content:"";position:absolute;inset:-8px 0}.browse-page .facet-pickers .facet-chip:after,.browse-facet-inline-chips .facet-chip:after,.recognized-strip .facet-chip:after,.browse-active-chips .facet-chip:after,.browse-facet-chips .facet-chip:after{inset:-9px}}.shopping-lists-tab .shopping-list-card:active,.browse-page .browse-card:active{border-color:var(--color-primary);transform:scale(.99)}.shopping-lists-tab .item-card:active,.notifications-page .notification-item:active,.browse-brand-dropdown-item:active,.pantry-add__search-item:active{background:var(--color-background-mute)}.pantry-card:active{box-shadow:var(--shadow-sm);transform:scale(.99)}.members-tab .btn-add:active,.products-tab .btn-request:active,.members-tab .btn-edit:active,.members-tab .btn-remove:active{opacity:.85;transform:scale(.97)}.shopping-lists-tab .btn-back:active,.budgets-tab .budget-action-btn:active,.browse-page .browse-search-clear:active{background:var(--color-background-mute)}.shopping-lists-tab .groupby-toggle__btn:active:not(.is-active){background:var(--color-background-mute);color:var(--color-text)}.browse-page .browse-filter-toggle:active,.browse-page .facet-pickers .facet-clear:active,.browse-page .facet-pickers .facet-chip:active,.browse-facet-inline-chips .facet-chip:active,.recognized-strip .facet-chip:active,.browse-active-chips .facet-chip:active,.browse-facet-chips .facet-chip:active{border-color:var(--color-primary);transform:scale(.96)}.allocation-picker-row .btn-remove:active{background:var(--color-error-50);border-color:var(--color-error-700)}.settlements-view .tx-row .btn-settle:active{background:var(--color-success-50)}@media (width<=768px){.table-cards>table,.table-cards>table>tbody,.table-cards>table>tbody>tr,.table-cards>table>tbody>tr>td,.table-cards>table>tbody>tr>th{display:block}.table-cards{box-shadow:none;background:0 0;border-radius:0;overflow:visible}.table-cards>table>thead{display:none}.table-cards>table>tbody>tr{background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-2) var(--spacing-4);margin-bottom:var(--spacing-3)}.table-cards>table>tbody>tr:last-child{margin-bottom:0}.table-cards>table>tbody>tr>td,.table-cards>table>tbody>tr>th{gap:var(--spacing-3);padding:var(--spacing-2) 0;border:none;border-bottom:1px solid var(--border-color-light);text-align:left;overflow-wrap:anywhere;grid-template-columns:minmax(5.5rem,34%) 1fr;align-items:baseline;display:grid}.table-cards>table>tbody>tr>td:last-child,.table-cards>table>tbody>tr>th:last-child{border-bottom:none}.table-cards>table>tbody>tr>td[data-label]:before,.table-cards>table>tbody>tr>th[data-label]:before{content:attr(data-label);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-light)}.table-cards>table>tbody>tr>td:not([data-label]){display:block}.table-cards>table>tbody>tr>th:not([data-label]){padding-top:var(--spacing-1);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);display:block}}.shopping-lists-tab .sl-swipe{border-radius:var(--radius-md);margin-bottom:var(--spacing-2);position:relative;overflow:hidden}.shopping-lists-tab .sl-swipe>.item-card{z-index:1;transition:transform var(--transition-base), background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);margin-bottom:0;position:relative}.shopping-lists-tab .sl-swipe--dragging>.item-card{user-select:none;transition:none}.shopping-lists-tab .item-group>.sl-swipe{margin-left:var(--spacing-4);margin-right:var(--spacing-4)}.shopping-lists-tab .item-group>.item-group-header+.sl-swipe{margin-top:var(--spacing-3)}.shopping-lists-tab .item-group>.sl-swipe:last-child{margin-bottom:var(--spacing-3)}@media (pointer:coarse){.shopping-lists-tab .sl-swipe>.item-card{touch-action:pan-y}}.shopping-lists-tab .sl-swipe__lane{z-index:0;padding:0 var(--spacing-4);border-radius:inherit;background:var(--color-background-mute);color:var(--color-neutral-900);transition:background var(--transition-fast);justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0}.shopping-lists-tab .sl-swipe--right .sl-swipe__lane{background:var(--color-success-500)}.shopping-lists-tab .sl-swipe--left .sl-swipe__lane{background:var(--color-warning-700)}.shopping-lists-tab .sl-swipe__action{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);opacity:0;transition:opacity var(--transition-fast), transform var(--transition-fast);display:inline-flex;transform:scale(.85)}.shopping-lists-tab .sl-swipe--right .sl-swipe__action--bought,.shopping-lists-tab .sl-swipe--left .sl-swipe__action--skip{opacity:.9;transform:scale(1)}.shopping-lists-tab .sl-swipe--armed .sl-swipe__action--bought,.shopping-lists-tab .sl-swipe--armed .sl-swipe__action--skip{opacity:1;transform:scale(1.08)}.shopping-lists-tab .sl-swipe__action-label{white-space:nowrap}.shopping-lists-tab .detail-header{flex-wrap:wrap}.shopping-lists-tab .detail-header h3{overflow-wrap:anywhere;flex:1 1 0;min-width:0}.shopping-lists-tab .detail-header-actions{flex-wrap:wrap;align-items:center}.shopping-lists-tab .detail-header-actions .btn{justify-content:center;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);min-height:var(--touch-target-min);display:inline-flex}.shopping-lists-tab .detail-header__primary{background-color:var(--button-primary-bg);color:var(--button-primary-text);font-weight:var(--font-weight-semibold)}@media (hover:hover) and (pointer:fine){.shopping-lists-tab .detail-header__primary:hover:not(:disabled){background-color:var(--button-primary-hover)}}.shopping-lists-tab .btn-back{min-width:var(--touch-target-min);min-height:var(--touch-target-min);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}@media (width<=768px){.shopping-lists-tab .detail-header-actions{flex-wrap:nowrap;flex:1 0 100%}.shopping-lists-tab .detail-header-actions .detail-header__secondary{width:var(--touch-target-min);flex-shrink:0;padding:0}.shopping-lists-tab .detail-header__secondary .btn-label{display:none}.shopping-lists-tab .detail-header__primary{flex:auto;min-width:0}}.shopping-lists-tab .item-name{overflow-wrap:anywhere}.shopping-lists-tab .item-info{min-width:0}.shopping-lists-tab .item-actions-right{align-items:center;gap:var(--spacing-1);flex-shrink:0;display:flex}.shopping-lists-tab .sl-row__more{display:none}.shopping-lists-tab .item-actions-left .btn-icon.is-active.btn-icon--success{background-color:var(--color-success-500);border-color:var(--color-success-500);color:var(--color-neutral-900)}.shopping-lists-tab .item-actions-left .btn-icon.is-active.btn-icon--danger{background-color:var(--color-error-800);border-color:var(--color-error-800);color:#fff}@media (width<=768px){.shopping-lists-tab .sl-row__inline-action{display:none}.shopping-lists-tab .sl-row__more{display:inline-flex}.shopping-lists-tab .item-card .btn-icon,.shopping-lists-tab .list-footer .btn-icon{width:var(--touch-target-min);height:var(--touch-target-min)}.shopping-lists-tab .item-card .btn-icon:after,.shopping-lists-tab .list-footer .btn-icon:after{inset:0}.shopping-lists-tab .item-card{padding:var(--spacing-2) var(--spacing-1) var(--spacing-2) var(--spacing-1);grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:2px 0;display:grid}.shopping-lists-tab .item-card>.item-actions-left{margin-right:var(--spacing-2);grid-area:1/1/span 2}.shopping-lists-tab .item-card>.item-image{width:40px;height:40px;margin-right:var(--spacing-3);grid-area:1/2/span 2}.shopping-lists-tab .item-card>.item-info{grid-area:1/3;align-self:end}.shopping-lists-tab .item-card>.item-quantity-price{justify-content:flex-start;align-self:start;align-items:baseline;column-gap:var(--spacing-2);text-align:left;font-size:var(--font-size-sm);flex-flow:wrap;grid-area:2/3;row-gap:2px}.shopping-lists-tab .item-card>.item-actions-right{margin-left:var(--spacing-1);grid-area:1/4/span 2}.shopping-lists-tab .group-bucket{padding-left:var(--spacing-3);padding-right:var(--spacing-3)}.shopping-lists-tab .category-bucket{padding-left:0}.shopping-lists-tab .item-group>.sl-swipe,.shopping-lists-tab .item-group>.item-card{margin-left:var(--spacing-3);margin-right:var(--spacing-3)}}.sl-row-sheet{gap:var(--spacing-1);flex-direction:column;display:flex}.sl-row-sheet__action{align-items:center;gap:var(--spacing-3);width:100%;min-height:48px;padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.sl-row-sheet__action:active{background:var(--color-background-mute)}@media (hover:hover) and (pointer:fine){.sl-row-sheet__action:hover{background:var(--color-background-soft)}}.sl-row-sheet__action--danger{color:var(--color-error-700)}.shopping-lists-tab .sl-swipe>.item-card{flex-wrap:wrap}.shopping-lists-tab .sl-swipe-hint-row{flex:1 0 100%;display:flex}@media (width<=768px){.shopping-lists-tab .item-card>.sl-swipe-hint-row{padding-left:var(--spacing-1);grid-area:3/1/auto/-1}}.shopping-lists-tab .sl-swipe-hint{align-items:center;gap:var(--spacing-1);margin-top:var(--spacing-1);padding:2px var(--spacing-2);border:1px dashed var(--color-border);border-radius:var(--radius-full);background:var(--color-background-soft);color:var(--color-text-light);font-size:var(--font-size-xs);flex-wrap:wrap;display:inline-flex}.shopping-lists-tab .sl-swipe-hint__dismiss{min-width:var(--touch-target-min);min-height:var(--touch-target-min);margin:-12px calc(-1 * var(--spacing-2)) -12px 0;padding:0 var(--spacing-2);color:var(--color-primary-800);font-size:inherit;font-weight:var(--font-weight-semibold);white-space:nowrap;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}@media (width<=768px){.shopping-lists-tab .matched-compare{align-items:center;gap:var(--spacing-1);min-height:var(--touch-target-min);margin-top:-11px;margin-bottom:-11px;display:inline-flex}.shopping-lists-tab .detail-header__secondary .app-icon{flex-shrink:0}}.sl-undo{left:50%;bottom:calc(var(--spacing-4) + env(safe-area-inset-bottom,0px));z-index:var(--z-tooltip);align-items:center;gap:var(--spacing-3);max-width:min(520px, calc(100vw - 2 * var(--spacing-4)));padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);background:var(--color-text);color:var(--color-surface);box-shadow:var(--shadow-lg);display:flex;position:fixed;transform:translate(-50%)}@media (width<=768px){.sl-undo{bottom:calc(var(--mobile-nav-height) + var(--spacing-3) + env(safe-area-inset-bottom,0px))}}.sl-undo__message{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--font-size-sm);flex:1;overflow:hidden}.sl-undo__action{min-height:var(--touch-target-min);padding:0 var(--spacing-3);border-radius:var(--radius-base);color:var(--color-primary-300);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;background:0 0;border:0;flex-shrink:0}@media (hover:hover) and (pointer:fine){.sl-undo__action:hover{background:#ffffff1f}}.sl-undo__action:active{background:#fff3}.sl-undo__close{width:var(--touch-target-min);height:var(--touch-target-min);margin-right:calc(-1 * var(--spacing-2));color:inherit;opacity:.7;cursor:pointer;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.sl-undo-enter-active,.sl-undo-leave-active{transition:opacity var(--transition-base), transform var(--transition-base)}.sl-undo-enter-from,.sl-undo-leave-to{opacity:0;transform:translate(-50%,12px)}.list-split-section{gap:var(--spacing-2);padding:var(--spacing-3);background:var(--color-background-soft);border-radius:var(--radius-base);flex-direction:column;display:flex}.list-split-section .header{justify-content:space-between;align-items:center;gap:var(--spacing-3);display:flex}.list-split-section .subtitle{font-size:var(--font-size-xs);color:var(--color-text-light)}.list-split-section .empty{font-size:var(--font-size-sm);color:var(--color-text-light)}.list-split-section .override-summary{align-items:center;gap:var(--spacing-2);display:flex}.list-split-section .split-type-badge{border-radius:var(--radius-base);background:var(--color-primary-700);color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:2px 8px;display:inline-block}.list-split-section .info-message{padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-base);font-size:var(--font-size-sm)}.list-split-section .info-message.is-success{background-color:var(--color-success-50);color:var(--color-success-700)}.list-split-section .info-message.is-error{background-color:var(--color-error-50);color:var(--color-error-700)}.dashboard-page{gap:var(--spacing-8);flex-direction:column;display:flex}.dashboard-hero{padding:var(--spacing-10) var(--spacing-6);border-radius:var(--radius-2xl);background:linear-gradient(135deg, var(--color-primary-700) 0%, var(--color-primary-900) 100%);color:#fff;position:relative;overflow:hidden}.dashboard-hero:before{content:"";border-radius:var(--radius-full);pointer-events:none;background:radial-gradient(circle,#ffffff26 0%,#0000 70%);width:320px;height:320px;position:absolute;top:-80px;right:-80px}.dashboard-hero__body{z-index:1;position:relative}.dashboard-hero__title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin:0 0 var(--spacing-2) 0}.dashboard-hero__subtitle{font-size:var(--font-size-lg);opacity:.9;margin:0}.dashboard-highlights{gap:var(--spacing-2);flex-direction:column;display:flex}.dashboard-widgets{gap:var(--spacing-3);grid-template-columns:1fr;display:grid}@media (width>=640px){.dashboard-widgets{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.dashboard-widgets{grid-template-columns:repeat(4,1fr)}}.dashboard-widget{align-items:center;gap:var(--spacing-3);padding:var(--spacing-4);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-xl);color:inherit;transition:var(--transition-fast);text-decoration:none;display:flex}@media (hover:hover) and (pointer:fine){.dashboard-widget--clickable:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary-300);transform:translateY(-2px)}}.dashboard-widget--danger{border-color:var(--color-danger-border);background:var(--color-danger-tint-soft)}.dashboard-widget__icon{border-radius:var(--radius-lg);background:var(--color-primary-50);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.3rem;display:flex}.dashboard-widget__icon--shopping{background:var(--color-primary-50)}.dashboard-widget__icon--pantry{background:var(--color-warning-50)}.dashboard-widget__icon--budget{background:var(--color-warning-tint)}.dashboard-widget__icon--settlements{background:var(--color-info-50)}.dashboard-widget__icon--danger{background:var(--color-danger-tint)}.dashboard-widget__icon--success{background:var(--color-success-tint)}.dashboard-widget__body{gap:var(--spacing-1);flex-direction:column;flex:1;min-width:0;display:flex}.dashboard-widget__eyebrow{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);font-weight:var(--font-weight-semibold)}.dashboard-widget__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary);line-height:var(--line-height-tight);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dashboard-widget__extra{color:var(--color-text-light);font-weight:var(--font-weight-normal)}.dashboard-widget__meta{font-size:var(--font-size-sm);color:var(--text-secondary)}.dashboard-widget__accent{color:var(--color-warning-900);font-weight:var(--font-weight-medium)}.dashboard-widget__cta,.dashboard-widget__cta-btn{color:var(--color-text-light);font-size:var(--font-size-2xl);flex-shrink:0;line-height:1}.dashboard-widget__cta-btn{padding:var(--spacing-2);cursor:pointer;background:0 0;border:none;text-decoration:none}@media (hover:hover) and (pointer:fine){.dashboard-widget__cta-btn:hover{color:var(--color-primary-800)}}.dashboard-widget__progress{border-radius:var(--radius-full);background:var(--bg-tertiary);height:4px;margin-top:var(--spacing-1);overflow:hidden}.dashboard-widget__progress-bar{height:100%;transition:width var(--transition-slow)}.dashboard-quick-actions{gap:var(--spacing-2);flex-direction:column;display:flex}.dashboard-quick-actions__label,.dashboard-highlights__title{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin:0}.dashboard-quick-actions__grid{gap:var(--spacing-2);grid-template-columns:repeat(2,1fr);display:grid}@media (width>=640px){.dashboard-quick-actions__grid{grid-template-columns:repeat(4,1fr)}}.dashboard-quick-action{align-items:center;gap:var(--spacing-2);padding:var(--spacing-4);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-align:center;transition:var(--transition-fast);flex-direction:column;text-decoration:none;display:flex}@media (hover:hover) and (pointer:fine){.dashboard-quick-action:hover{border-color:var(--color-primary-400);box-shadow:var(--shadow-sm);transform:translateY(-2px)}}.dashboard-quick-action__icon{font-size:var(--font-size-2xl)}.dashboard-households__header{margin-bottom:var(--spacing-4);justify-content:space-between;align-items:center;display:flex}.dashboard-households__header h2{font-size:var(--font-size-lg);margin:0}.dashboard-households__grid{gap:var(--spacing-3);grid-template-columns:1fr;display:grid}@media (width>=640px){.dashboard-households__grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}.dashboard-household-card{cursor:pointer;transition:var(--transition-fast)}.dashboard-household-card--active{border-left:4px solid var(--color-primary-600)}.dashboard-households{gap:var(--spacing-2);flex-direction:column;display:flex}.dashboard-households .household-title-row{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-3);flex-wrap:wrap;display:flex}.dashboard-households .household-name{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.dashboard-households .household-meta{gap:var(--spacing-4);font-size:var(--font-size-sm);color:var(--text-secondary);flex-wrap:wrap;display:flex}.dashboard-households .household-role{font-weight:var(--font-weight-medium);color:var(--color-primary-800)}.landing{background:var(--bg-primary);flex-direction:column;min-height:100vh;display:flex}.landing-hero{padding:var(--spacing-16) var(--spacing-6);color:#fff;position:relative;overflow:hidden}.landing-hero__bg{background:linear-gradient(135deg, var(--color-primary-700) 0%, var(--color-primary-900) 60%, #4a148c 100%);z-index:0;position:absolute;inset:0}.landing-hero__bg:after{content:"";pointer-events:none;background:radial-gradient(circle at 20% 30%,#fff3 0%,#0000 30%),radial-gradient(circle at 80% 70%,#ffffff26 0%,#0000 35%);position:absolute;inset:0}.landing-hero__inner{z-index:1;gap:var(--spacing-8);align-items:center;max-width:1100px;margin:0 auto;display:grid;position:relative}@media (width>=768px){.landing-hero__inner{gap:var(--spacing-12);grid-template-columns:1.1fr 1fr}}.landing-hero__eyebrow{align-items:center;gap:var(--spacing-2);backdrop-filter:blur(10px);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:.02em;color:#fff;background:#ffffff38;border:1px solid #ffffff40;display:inline-flex;box-shadow:0 4px 20px #00000026}.landing-hero__eyebrow:before{content:"";background:var(--color-success-500);border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #4caf5099}.landing-hero__title{font-size:clamp(2rem,5vw,3.25rem);font-weight:var(--font-weight-bold);margin:var(--spacing-4) 0 var(--spacing-4) 0;letter-spacing:-.01em;line-height:1.1}.landing-hero__subtitle{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);opacity:.92;margin:0 0 var(--spacing-6) 0;max-width:32rem}.landing-hero__actions{gap:var(--spacing-3);flex-wrap:wrap;display:flex}.landing-hero .btn-outline{color:#fff;background-color:color-mix(in srgb, var(--color-primary-900) 45%, transparent);border-color:#fff}.landing-hero .btn-outline:active:not(:disabled){background-color:color-mix(in srgb, var(--color-primary-900) 60%, transparent)}@media (hover:hover) and (pointer:fine){.landing-hero .btn-outline:hover:not(:disabled){background-color:color-mix(in srgb, var(--color-primary-900) 60%, transparent)}}@media (width<=768px){.landing-hero__actions{display:none}}.landing-hero__trust{margin-top:var(--spacing-4);font-size:var(--font-size-sm);opacity:.75}.landing-hero__mockup{gap:var(--spacing-3);perspective:1000px;display:grid;position:relative}.landing-mockup{color:var(--color-neutral-900);border-radius:var(--radius-xl);padding:var(--spacing-4);box-shadow:var(--shadow-xl);background:#fff;transform:rotate(-2deg)}.landing-mockup--list{margin-top:-20px;transform:rotate(3deg)translate(20px)}.landing-mockup__header{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);margin-bottom:var(--spacing-3);color:var(--color-neutral-900)}.landing-mockup__row{gap:var(--spacing-3);padding:var(--spacing-1) 0;font-size:var(--font-size-sm);color:var(--color-neutral-900);grid-template-columns:1fr 100px;align-items:center;display:grid}.landing-mockup__bar{background:var(--color-neutral-200);border-radius:var(--radius-full);height:6px;display:block;overflow:hidden}.landing-mockup__bar-fill{border-radius:var(--radius-full);height:100%;display:block}.landing-mockup__bar-fill--low{background:var(--color-error-500);width:15%}.landing-mockup__bar-fill--mid{background:var(--color-warning-500);width:40%}.landing-mockup__bar-fill--high{background:var(--color-success-500);width:80%}.landing-mockup__item{align-items:center;gap:var(--spacing-2);padding:var(--spacing-1) 0;font-size:var(--font-size-sm);color:var(--color-neutral-900);display:flex}.landing-mockup__check{border-radius:var(--radius-full);background:var(--color-success-500);width:18px;height:18px;color:var(--color-neutral-900);justify-content:center;align-items:center;font-size:.7rem;display:inline-flex}.landing-mockup__check--open{border:2px solid var(--color-neutral-300);color:#0000;background:0 0}.landing-mockup__badge{border-radius:var(--radius-sm);background:var(--color-primary-100);color:var(--color-neutral-900);font-size:.65rem;font-weight:var(--font-weight-semibold);margin-left:auto;padding:.15rem .4rem}.landing-features{padding:var(--spacing-16) var(--spacing-6);max-width:1100px;margin:0 auto}.landing-features__title{text-align:center;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-10) 0;color:var(--text-primary)}.landing-features__grid{gap:var(--spacing-4);grid-template-columns:1fr;display:grid}@media (width>=640px){.landing-features__grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.landing-features__grid{grid-template-columns:repeat(3,1fr)}}.landing-feature{padding:var(--spacing-6);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-xl);gap:var(--spacing-3);transition:var(--transition-fast);flex-direction:column;display:flex}@media (hover:hover) and (pointer:fine){.landing-feature:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary-200);transform:translateY(-4px)}}.landing-feature__icon{border-radius:var(--radius-lg);background:var(--color-primary-50);justify-content:center;align-items:center;width:56px;height:56px;font-size:2rem;display:inline-flex}.landing-feature h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.landing-feature p{color:var(--text-secondary);line-height:var(--line-height-relaxed);margin:0}.landing-how{padding:var(--spacing-16) var(--spacing-6);background:var(--bg-tertiary)}.landing-how__title{text-align:center;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-10) 0;color:var(--text-primary)}.landing-how__steps{gap:var(--spacing-4);flex-direction:column;max-width:640px;margin:0 auto;padding:0;list-style:none;display:flex}.landing-how__steps li{align-items:center;gap:var(--spacing-4);padding:var(--spacing-4);background:var(--bg-primary);border-radius:var(--radius-lg);color:var(--text-primary);display:flex}.landing-how__step-number{border-radius:var(--radius-full);background:var(--color-primary-700);color:#fff;width:40px;height:40px;font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.landing-cta{text-align:center;padding:var(--spacing-16) var(--spacing-6);background:linear-gradient(135deg, var(--color-primary-700) 0%, var(--color-primary-900) 100%);color:#fff}.landing-cta__title{font-size:clamp(1.5rem,3vw,2rem);font-weight:var(--font-weight-bold);margin:0 auto var(--spacing-6) auto;color:#fff;max-width:600px;line-height:1.25}.landing-footer{padding:var(--spacing-6);text-align:center;color:var(--color-text-light);font-size:var(--font-size-sm);border-top:1px solid var(--border-color-light)}.dashboard-widget__cta-btn{min-width:var(--touch-target-min);min-height:var(--touch-target-min);justify-content:center;align-items:center;display:inline-flex}.dashboard-widget--clickable:active{box-shadow:var(--shadow-sm);border-color:var(--color-primary-300);transform:scale(.99)}.dashboard-widget__cta-btn:active{color:var(--color-primary-800);transform:scale(.9)}.dashboard-quick-action:active{border-color:var(--color-primary-400);transform:scale(.97)}@media (width<=768px){.navbar{display:none}.app-shell{padding-top:var(--safe-top)}.app-shell:before{content:"";height:var(--safe-top);background:var(--bg-primary);z-index:var(--z-sticky);pointer-events:none;position:fixed;top:0;left:0;right:0}}.pwa-banners{top:var(--safe-top)}.toast-container{top:calc(var(--spacing-4) + var(--safe-top))}.catalog-picker-overlay{padding-top:var(--safe-top)}.app--has-bottom-bar{padding-bottom:0}@media (width<=768px){.app--has-bottom-bar{padding-bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom,0px))}.has-quick-fab .app--has-bottom-bar{padding-bottom:calc(var(--mobile-nav-height) + var(--quick-fab-size) + 2 * var(--spacing-4) + env(safe-area-inset-bottom,0px))}}.mobile-bottom-nav{display:none}@media (width<=768px){.mobile-bottom-nav{background:var(--bg-secondary);border-top:1px solid var(--border-color);padding-bottom:env(safe-area-inset-bottom,0px);z-index:var(--z-sticky);grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 8px #0000000f}}.mobile-bottom-nav__tab{min-width:0;color:var(--color-text-light);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);transition:color var(--transition-fast);min-height:var(--mobile-nav-tab-height);flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 2px 6px;text-decoration:none;display:flex;position:relative}.mobile-bottom-nav__tab.is-active{color:var(--color-primary-800);font-weight:var(--font-weight-bold)}.mobile-bottom-nav__tab.is-active:before{content:"";border-radius:0 0 var(--radius-full) var(--radius-full);background:var(--color-primary-800);height:3px;position:absolute;top:0;left:25%;right:25%}@media (hover:hover) and (pointer:fine){.mobile-bottom-nav__tab:hover{color:var(--color-primary-800)}}.mobile-bottom-nav__tab:focus-visible{outline-offset:calc(-1 * var(--focus-ring-width) - 2px)}.mobile-bottom-nav__icon{display:inline-flex;position:relative}.mobile-bottom-nav__label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.mobile-bottom-nav__badge,.section-nav__badge{min-width:16px;height:16px;padding:0 var(--spacing-1);border-radius:var(--radius-full);background:var(--color-error-800);color:#fff;font-size:10px;font-weight:var(--font-weight-bold);justify-content:center;align-items:center;line-height:1;display:inline-flex}.mobile-bottom-nav__badge{box-shadow:0 0 0 2px var(--bg-secondary);position:absolute;top:-4px;left:calc(100% - 8px)}.section-nav{top:var(--app-top-offset);z-index:calc(var(--z-sticky) - 1);background:var(--color-background);border-bottom:1px solid var(--color-border);position:sticky}.section-nav__inner.tabs{max-width:1400px;padding:0 var(--page-padding-inline);justify-content:center;gap:var(--spacing-2);margin:0 auto}.section-nav__link{text-decoration:none}.section-nav__link.active{font-weight:var(--font-weight-semibold)}@media (width<=768px){.section-nav__inner.tabs{gap:0;padding:0}.section-nav__link{justify-content:center;gap:var(--spacing-1);min-width:0;padding:var(--spacing-2) var(--spacing-1);font-size:var(--font-size-xs);line-height:var(--line-height-tight);flex-direction:column;flex:1 1 0;position:relative}.section-nav__link .tab-label{text-overflow:ellipsis;max-width:100%;overflow:hidden}.section-nav__badge{position:absolute;top:4px;left:calc(50% + 6px)}}.quick-fab{--quick-fab-gap:var(--spacing-4)}@media (width>=769px){.quick-fab{display:none}}.quick-fab__scrim{background:var(--color-overlay-dark);z-index:var(--z-fixed);position:fixed;inset:0}.quick-fab__toggle,.quick-fab__menu{right:calc(var(--quick-fab-gap) + env(safe-area-inset-right,0px));z-index:calc(var(--z-fixed) + 1);position:fixed}.quick-fab__toggle{bottom:calc(var(--mobile-nav-height) + var(--quick-fab-gap) + env(safe-area-inset-bottom,0px));width:var(--quick-fab-size);height:var(--quick-fab-size);border-radius:var(--radius-full);background:var(--color-primary-500);color:var(--color-neutral-900);box-shadow:var(--shadow-lg);cursor:pointer;transition:background-color var(--transition-fast), box-shadow var(--transition-fast);border:none;justify-content:center;align-items:center;display:inline-flex}.quick-fab__toggle-icon{transition:transform var(--transition-base)}.quick-fab.is-open .quick-fab__toggle-icon{transform:rotate(45deg)}.quick-fab__toggle:active{background:var(--color-primary-400)}@media (hover:hover) and (pointer:fine){.quick-fab__toggle:hover{background:var(--color-primary-400);box-shadow:var(--shadow-xl)}}.quick-fab__menu{bottom:calc(var(--mobile-nav-height) + var(--quick-fab-gap) + var(--quick-fab-size) + var(--spacing-3) + env(safe-area-inset-bottom,0px));align-items:flex-end;gap:var(--spacing-3);flex-direction:column-reverse;margin:0;padding:0;list-style:none;display:flex}.quick-fab__action{align-items:center;gap:var(--spacing-3);min-height:var(--touch-target-min);padding:0 calc((var(--quick-fab-size) - var(--quick-fab-mini-size)) / 2) 0 0;cursor:pointer;color:var(--color-text);font:inherit;background:0 0;border:none;display:flex}.quick-fab__label{padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-lg);background:var(--bg-secondary);color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-md);white-space:nowrap}.quick-fab__mini{width:var(--quick-fab-mini-size);height:var(--quick-fab-mini-size);border-radius:var(--radius-full);background:var(--color-primary-500);color:var(--color-neutral-900);box-shadow:var(--shadow-md);flex:none;justify-content:center;align-items:center;display:inline-flex}.quick-fab__action:active .quick-fab__mini{background:var(--color-primary-400)}.quick-fab__action:active .quick-fab__label{background:var(--bg-tertiary)}@media (hover:hover) and (pointer:fine){.quick-fab__action:hover .quick-fab__mini{background:var(--color-primary-400)}.quick-fab__action:hover .quick-fab__label{background:var(--bg-tertiary)}}.quick-fab__action:focus-visible{box-shadow:none;outline:none}.quick-fab__action:focus-visible .quick-fab__label,.quick-fab__action:focus-visible .quick-fab__mini{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.quick-fab.is-open .quick-fab__item{animation:.16s ease-out both quick-fab-item-in}.quick-fab.is-open .quick-fab__item:nth-child(2){animation-delay:30ms}.quick-fab.is-open .quick-fab__item:nth-child(3){animation-delay:60ms}.quick-fab.is-open .quick-fab__item:nth-child(4){animation-delay:90ms}@keyframes quick-fab-item-in{0%{opacity:0;transform:translateY(8px)scale(.9)}to{opacity:1;transform:none}}.quick-fab-fade-enter-active,.quick-fab-fade-leave-active{transition:opacity var(--transition-fast)}.quick-fab-fade-enter-from,.quick-fab-fade-leave-to{opacity:0}@media (prefers-reduced-motion:reduce){.quick-fab__toggle,.quick-fab__toggle-icon,.quick-fab-fade-enter-active,.quick-fab-fade-leave-active{transition:none}.quick-fab.is-open .quick-fab__item{animation:none}}@media (width<=768px){.has-quick-fab .pantry-tab .content-header .btn-add,.has-quick-fab .shopping-lists-tab .detail-header__primary,.has-quick-fab .shopping-lists-tab .detail-header__scan{display:none}.has-quick-fab .shopping-lists-tab .detail-header-actions{flex:none}.has-quick-fab .sl-undo{bottom:calc(var(--mobile-nav-height) + var(--quick-fab-size) + 2 * var(--spacing-4) + env(safe-area-inset-bottom,0px))}}.landing-bottom-cta{display:none}@media (width<=768px){.landing-bottom-cta{align-items:center;gap:var(--spacing-2);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px)) 16px;background:var(--bg-secondary);border-top:1px solid var(--border-color);z-index:var(--z-sticky);flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 12px #00000014}}.landing-bottom-cta__primary{background:linear-gradient(135deg, var(--color-primary-700) 0%, var(--color-primary-900) 100%);color:#fff;border-radius:var(--radius-full);width:100%;font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);transition:transform var(--transition-fast), box-shadow var(--transition-fast);justify-content:center;align-items:center;padding:14px 20px;text-decoration:none;display:flex;box-shadow:0 4px 12px #1565c059}.landing-bottom-cta__primary:active{transform:translateY(-1px);box-shadow:0 6px 16px #1565c073}@media (hover:hover) and (pointer:fine){.landing-bottom-cta__primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px #1565c073}}.landing-bottom-cta__secondary{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-decoration:none}@media (hover:hover) and (pointer:fine){.landing-bottom-cta__secondary:hover{color:var(--color-primary-800);text-decoration:underline}}@media (width<=768px){.landing-footer{padding-bottom:calc(var(--spacing-6) + 96px + env(safe-area-inset-bottom,0px))}}.landing-bottom-cta__secondary{min-height:var(--touch-target-min);justify-content:center;align-items:center;display:inline-flex}.mobile-bottom-nav__tab:active{color:var(--color-primary-800);background:var(--bg-tertiary)}.landing-bottom-cta__secondary:active{color:var(--color-primary-800);text-decoration:underline}:root{--skeleton-bg:var(--color-background-mute);--skeleton-sheen:#fff9;--skeleton-radius:var(--radius-base);--skeleton-text-height:.75rem;--skeleton-title-height:1.25rem;--skeleton-shimmer-duration:1.4s}@media (prefers-color-scheme:dark){:root{--skeleton-sheen:#ffffff12}}[data-theme=light]{--skeleton-sheen:#fff9}[data-theme=dark]{--skeleton-sheen:#ffffff12}.skeleton{background-color:var(--skeleton-bg);border-radius:var(--skeleton-radius);min-height:var(--skeleton-text-height);user-select:none;display:block;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--skeleton-sheen) 50%, transparent 100%);animation:skeleton-shimmer var(--skeleton-shimmer-duration) ease-in-out infinite;position:absolute;inset:0;transform:translate(-100%)}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.skeleton:after{content:none;animation:none}}.skeleton--text{height:var(--skeleton-text-height)}.skeleton--title{height:var(--skeleton-title-height);border-radius:var(--radius-md)}.skeleton--circle{border-radius:var(--radius-full);flex:none;min-height:0}.skeleton--rect{border-radius:var(--radius-md);flex:none;min-height:0}.skeleton--card{border-radius:var(--radius-lg);min-height:88px}.skeleton-lines{gap:var(--spacing-2);flex-direction:column;width:100%;display:flex}.skeleton-stack{gap:var(--spacing-2);flex-direction:column;flex:1;min-width:0;display:flex}.skeleton-list{gap:var(--spacing-3);flex-direction:column;display:flex}.skeleton-item{pointer-events:none}.skeleton-group{position:relative}.skeleton-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=768px){.modal-overlay{padding:0;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);align-items:flex-end}.modal{border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;width:100%;max-width:none;max-height:92dvh;box-shadow:var(--shadow-xl);will-change:transform;border-bottom:none;flex-direction:column;padding:0;transition:transform .22s cubic-bezier(.32,.72,0,1);display:flex;overflow:hidden}.modal--dragging{transition:none}.modal--settling{transition:transform .22s cubic-bezier(.32,.72,0,1)}.modal-grab{padding:var(--spacing-3) 0 var(--spacing-2);cursor:grab;touch-action:none;flex:none;justify-content:center;align-items:center;display:flex}.modal-grab:before{content:"";border-radius:var(--radius-full);background:var(--border-color);width:36px;height:4px}.modal--dragging .modal-grab{cursor:grabbing}.modal-header{padding:0 var(--spacing-4) var(--spacing-3);border-bottom:1px solid var(--border-color);touch-action:none;flex:none;align-items:center;margin-bottom:0}.modal-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;padding:var(--spacing-4);flex:auto;overflow-y:auto}.modal-actions{gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);padding-bottom:calc(var(--spacing-3) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-color);background:var(--color-background);flex:none;margin-top:0}.modal-body .modal-actions:last-child{z-index:1;margin-bottom:calc(-1 * var(--spacing-4));position:sticky;bottom:0}.modal-body>.modal-actions:last-child,.modal-body>*>.modal-actions:last-child{margin-inline:calc(-1 * var(--spacing-4))}.modal-sm .modal-actions .btn{flex:1 1 0;min-width:fit-content}.modal-enter-active .modal,.modal-leave-active .modal{transition:transform .26s cubic-bezier(.32,.72,0,1)}.modal-enter-from .modal,.modal-leave-to .modal{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.modal-enter-from .modal,.modal-leave-to .modal{transform:none}.modal-grab{cursor:default}}.container{width:100%;max-width:1280px;padding-left:var(--spacing-4);padding-right:var(--spacing-4);margin-left:auto;margin-right:auto}.container-sm{max-width:640px}.container-md{max-width:768px}.container-lg{max-width:1024px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--spacing-2)}.gap-4{gap:var(--spacing-4)}.gap-6{gap:var(--spacing-6)}.text-center{text-align:center}.text-sm{font-size:var(--font-size-sm)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.mt-2{margin-top:var(--spacing-2)}.mt-4{margin-top:var(--spacing-4)}.mt-6{margin-top:var(--spacing-6)}.mt-8{margin-top:var(--spacing-8)}.mb-2{margin-bottom:var(--spacing-2)}.mb-4{margin-bottom:var(--spacing-4)}.mb-6{margin-bottom:var(--spacing-6)}.mb-8{margin-bottom:var(--spacing-8)}.w-full{width:100%}.hidden{display:none}.loading{opacity:.6;pointer-events:none}#app{min-height:100vh}.route-enter-active{transition:opacity var(--transition-fast), transform var(--transition-fast)}.route-leave-active{transition:opacity .1s cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1)}.route-enter-from{opacity:0;transform:translateY(6px)}.route-leave-to{opacity:0;transform:translateY(-4px)}@media (prefers-reduced-motion:reduce){.route-enter-active,.route-leave-active{transition:none}.route-enter-from,.route-leave-to{opacity:1;transform:none}}
