: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:#388e3c;--color-error-50:#ffebee;--color-error-500:#f44336;--color-error-700:#d32f2f;--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:#d32f2f;--color-credit:#2e7d32;--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);--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-success-tint-strong:#4caf5026;--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-tertiary:var(--color-neutral-500);--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-500);--button-primary-bg:var(--color-primary-600);--button-primary-hover:var(--color-primary-700);--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-600);--color-primary:var(--color-primary-600);--color-border:var(--color-neutral-300);--color-danger:var(--color-error-500);--color-success:var(--color-success-500)}@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-tertiary:var(--color-neutral-500);--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-500);--button-primary-bg:var(--color-primary-600);--button-primary-hover:var(--color-primary-500);--button-primary-text:white;--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);--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-400);--color-primary:var(--color-primary-500);--color-border:var(--color-neutral-700);--color-danger:var(--color-error-500);--color-success:var(--color-success-500);--color-neutral-balance:var(--color-neutral-300)}}[data-theme=light]{--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-tertiary:var(--color-neutral-500);--border-color:var(--color-neutral-300)}[data-theme=dark]{--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-tertiary:var(--color-neutral-500);--border-color:var(--color-neutral-700);--color-neutral-balance:var(--color-neutral-300)}*,: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}input:focus,textarea:focus,select:focus{outline:none}*{-webkit-tap-highlight-color:transparent}.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);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,.form-select,.form-textarea{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,.form-textarea{min-height:calc(var(--spacing-3) * 2 + var(--line-height-normal,1.5) * 3em);resize:vertical}select,.form-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,.form-textarea::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,.form-select:focus,.form-textarea:focus{border-color:var(--input-focus-border,var(--color-primary,#1976d2));outline:none;box-shadow:0 0 0 3px #1976d226}input:disabled,select:disabled,textarea:disabled,.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background-color:var(--input-disabled-bg,#f3f3f3);cursor:not-allowed;opacity:.7}input[type=number].no-spinner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number].no-spinner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number].no-spinner{-moz-appearance:textfield}.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,var(--color-error-500,#f44336))}.field-row>input,.field-row>select,.field-row>.form-input,.field-row>.form-select{flex:auto;min-width:0}.field-row>.field-row__fixed{flex:none}.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:hover,.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)}.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-primary,#1976d2)}.option-row__meta{font-size:var(--font-size-xs,.75rem);color:var(--color-text-secondary,var(--text-tertiary,#888))}.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}.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,#1976d2);border-bottom-color:var(--color-primary,#1976d2)}.tab-icon{stroke-width:2px;width:20px;height:20px}.toolbar{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4,1rem);margin-bottom:var(--spacing-8,2rem);flex-wrap:wrap;display:flex}.toolbar__title{margin:0 0 var(--spacing-2,.5rem) 0;color:var(--color-text,var(--text-primary,#212121));font-size:var(--font-size-3xl,1.875rem);font-weight:var(--font-weight-bold,700)}.toolbar__subtitle{color:var(--color-text-light,var(--color-text-secondary,var(--text-secondary,#757575)));font-size:var(--font-size-base,1rem);margin:0}.toolbar__actions{gap:var(--spacing-2,.5rem);flex-wrap:wrap;display:flex}.toolbar>div>h1,.toolbar>h1{margin:0 0 var(--spacing-2,.5rem) 0;color:var(--color-text,var(--text-primary,#212121));font-size:var(--font-size-3xl,1.875rem);font-weight:var(--font-weight-bold,700)}.toolbar>div>.subtitle,.toolbar>.subtitle{color:var(--color-text-light,var(--color-text-secondary,var(--text-secondary,#757575)));font-size:var(--font-size-base,1rem);margin:0}.filter-bar{gap:var(--spacing-3,.75rem);margin-bottom:var(--spacing-4,1rem);flex-wrap:wrap;align-items:center;display:flex}.filter-bar>*{flex:0 auto}.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}.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}.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{outline:none;box-shadow:0 0 0 3px #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,var(--color-error-500,#f44336))}.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,var(--color-success-500,#4caf50))}.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,#f44336);color:#fff}.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,#4caf50);color:#fff}.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,#4caf50);color:#fff}.btn-icon.is-active.btn-icon--danger{background-color:var(--color-error,#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}.card-hoverable:hover{box-shadow:var(--shadow-lg,0 10px 15px #0000001a);transform:translateY(-2px)}.card--compact{padding:var(--spacing-4,1rem)}.card--flat{border-radius:var(--radius-md,6px);box-shadow:none}.card--stack{gap:var(--spacing-4,1rem);padding:var(--spacing-5,1.25rem);flex-direction:column;display:flex}.modal-sm{max-width:400px}.modal-md{max-width:500px}.modal-xl{max-width:880px}.modal-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.modal-header h2{margin:0}.modal-close{color:var(--color-text-secondary,var(--text-tertiary,#888));cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.5rem;line-height:1}.modal-close:hover{color:var(--color-text,var(--text-primary,#000))}.modal-enter-active,.modal-leave-active{transition:opacity .15s}.modal-enter-from,.modal-leave-to{opacity:0}.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-secondary,var(--text-tertiary,#888));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-700,#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-secondary,var(--color-neutral-600,#666))}.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:.95rem}.searchable-input:focus{border-color:var(--color-primary);outline:none}.searchable-input:disabled{opacity:.6;cursor:not-allowed}.searchable-clear{color:var(--color-text-secondary,var(--text-tertiary,#888));cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.1rem;line-height:1;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.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,.searchable-option:hover{background:var(--color-primary-light,var(--color-background-mute,#f0f0f0));color:var(--color-primary-dark,var(--color-primary,#06c))}.searchable-empty{color:var(--color-text-secondary,var(--text-tertiary,#888));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);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,#2e7d32)}.toast-error{border-left-color:var(--color-error,#c62828)}.toast-info{border-left-color:var(--color-info,#1565c0)}.toast-warning{border-left-color:var(--color-warning,#ef6c00)}.toast-message{flex:1;font-size:.9rem;line-height:1.4}.toast-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.25rem;line-height:1}.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:2px solid 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}.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)}.btn-primary:hover:not(:disabled){background-color:var(--button-primary-hover)}.btn-secondary{background-color:var(--button-secondary-bg);color:var(--button-secondary-text)}.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}.btn-outline:hover:not(:disabled){background-color:var(--bg-tertiary)}.btn-ghost{color:var(--text-primary);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--bg-tertiary)}.btn-danger{background-color:var(--color-error-500);color:#fff}.btn-danger:hover:not(:disabled){background-color:var(--color-error-700)}.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-lg);background-color:var(--input-bg);width:100%;color:var(--text-primary);transition:all var(--transition-base)}.input::placeholder{color:var(--text-tertiary)}.input:focus{border-color:var(--input-focus-border);outline:none;box-shadow:0 0 0 3px #2196f31a}.input:disabled{background-color:var(--input-disabled-bg);cursor:not-allowed;opacity:.6}.input-sm{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm)}.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-error{border-color:var(--color-error-500)}.input-error:focus{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-500);margin-left:var(--spacing-1)}.form-field__error{font-size:var(--font-size-sm);color:var(--color-error-500);margin:0}.form-field__hint{font-size:var(--font-size-sm);color:var(--text-tertiary);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);opacity:.9;margin:0}.banner-actions{gap:var(--spacing-2);flex-shrink:0;display:flex}.banner-warning{background-color:var(--color-warning-500);color:#fff}.banner-info{background-color:var(--color-info-500);color:#fff}.banner-primary{background-color:var(--color-primary-600);color:#fff}.banner-success{background-color:var(--color-success-500);color:#fff}@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{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:64px;margin:0 auto;display:flex}.navbar-brand{align-items:center;gap:var(--spacing-3);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)}.navbar-brand .brand-text{color:var(--color-text)}.mobile-menu-toggle{cursor:pointer;padding:var(--spacing-2);color:var(--color-text);background:0 0;border:none;display:none}.mobile-menu-toggle svg{stroke-width:2px;width:24px;height:24px}.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}.nav-link:hover{background:var(--color-background-soft);color:var(--color-primary)}.nav-link.router-link-active{color:var(--color-primary);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);color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:999px;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}.user-menu-button:hover{background:var(--color-background-soft)}.user-avatar{border-radius:var(--radius-full);background:var(--color-primary);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,2.5rem)}.user-name{color:var(--color-text);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.navbar .chevron{stroke-width:2px;width:16px;height:16px;color:var(--color-text-light)}.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);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}.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-muted);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}.locale-btn:hover{background:var(--color-background)}.locale-btn.active{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.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)}.navbar .btn-login:hover{background:var(--color-background-mute)}.navbar .btn-register{color:#fff;background:var(--color-primary)}.navbar .btn-register:hover{opacity:.9}@media (width<=768px){.mobile-menu-toggle{display:block}.navbar-menu{background:var(--color-background);border-top:1px solid var(--color-border);padding:var(--spacing-4);opacity:0;max-height:0;transition:all var(--transition-slow);box-shadow:var(--shadow-lg);flex-direction:column;align-items:stretch;gap:0;position:fixed;top:64px;left:0;right:0;overflow:hidden}.navbar-menu.open{opacity:1;max-height:calc(100vh - 64px);overflow-y:auto}.navbar-links{gap:var(--spacing-2);flex-direction:column}.nav-link{width:100%;padding:var(--spacing-4)}.navbar-actions{margin-top:var(--spacing-4);flex-direction:column;align-items:stretch}.user-menu-button{width:100%;padding:var(--spacing-4);justify-content:flex-start}.user-name{flex:1;max-width:none}.user-dropdown{margin-top:var(--spacing-2);box-shadow:none;border:1px solid var(--color-border);position:static}.navbar .auth-buttons{gap:var(--spacing-2);flex-direction:column}.navbar .btn-login,.navbar .btn-register{text-align:center;padding:var(--spacing-4)}}.image-uploader{width:100%}.upload-zone{width:100%;min-height:120px;padding:var(--spacing-4);border:2px dashed var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--transition-base), background var(--transition-base);background:var(--color-background-soft);justify-content:center;align-items:center;display:flex}.upload-zone:hover:not(.uploading){border-color:var(--color-primary);background:var(--color-background-mute)}.upload-zone.uploading{cursor:wait;opacity:.7}.upload-zone.error{border-color:var(--color-danger)}.upload-zone input[type=file]{display:none}.upload-status{align-items:center;gap:var(--spacing-1);text-align:center;color:var(--color-text-light);font-size:var(--font-size-sm);flex-direction:column;display:flex}.upload-status strong{font-size:var(--font-size-2xl);color:var(--color-text)}.upload-status small{font-size:var(--font-size-xs)}.upload-status.error-text{color:var(--color-danger)}.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-width:600px;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:var(--spacing-6);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.modal-close{font-size:var(--font-size-3xl);color:var(--text-tertiary);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}.modal-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.modal-form{padding:var(--spacing-6);gap:var(--spacing-5);flex-direction:column;display:flex}@media (width<=768px){.modal-overlay{padding:var(--spacing-2)}.modal{padding:var(--spacing-4);border-radius:var(--radius-lg);max-height:92vh}.modal h2{font-size:var(--font-size-xl);margin-bottom:var(--spacing-3)}.modal-header h2{margin:0}.modal-header{padding:0 0 var(--spacing-3)}.modal-form{padding:var(--spacing-4);gap:var(--spacing-4)}.modal-actions{gap:var(--spacing-2);margin-top:var(--spacing-4)}.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);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);outline:none}.form-group textarea{resize:vertical;min-height:80px}.form-row{gap:var(--spacing-4);grid-template-columns:1fr 1fr;display:grid}.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);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);outline:none}.convert-form{gap:var(--spacing-4);flex-direction:column;display:flex}.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);outline:none}.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)}.convert-form .form-row-inline{align-items:center;gap:var(--spacing-3);grid-template-columns:none;display:flex}.convert-form .picker-toggle{justify-content:space-between}.convert-form .link-button{color:var(--color-primary,#3b82f6);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}.convert-form .picker-item:hover{background:var(--color-background-mute,#eef)}.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-700,#c66700);font-weight:var(--font-weight-medium)}.convert-form .picker-item.is-unpriced{opacity:.7;cursor:not-allowed}.convert-form .picker-item.is-unpriced .picker-item-store{color:var(--color-warning-700,#c66700);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);outline:none}.field-row>:not(.field-row__fixed){flex:1}.field-row__fixed{flex:none}.option-list{border:1px solid var(--color-border);border-radius:var(--radius-base);background:var(--color-background-soft);max-height:320px;margin:0;padding:0;list-style:none;overflow-y:auto}.option-row{gap:var(--spacing-3);padding:var(--spacing-3);cursor:pointer;border-bottom:1px solid var(--color-border);align-items:center;transition:background .15s;display:flex}.option-row:last-child{border-bottom:none}.option-row:hover{background:var(--color-background-mute)}.option-row.is-selected{background:var(--color-primary-soft,var(--color-background-mute))}.option-row__image{border-radius:var(--radius-base);background:var(--color-background-mute);flex:none;width:40px;height:40px;overflow:hidden}.option-row__image img{object-fit:cover;width:100%;height:100%;display:block}.option-row__info{gap:var(--spacing-1);flex-direction:column;flex:1;min-width:0;display:flex}.option-row__title{color:var(--color-text);font-weight:var(--font-weight-medium);font-size:var(--font-size-base)}.option-row__subtitle,.option-row__meta{color:var(--color-text-light);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);font-size:var(--font-size-sm)}.checkbox-inline{align-items:center;gap:var(--spacing-2);cursor:pointer;display:inline-flex;font-weight:var(--font-weight-normal)!important}.checkbox-inline input[type=checkbox]{margin:0;width:auto!important}.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(--color-primary);color:#fff;border-radius:var(--radius-base);cursor:pointer;font-weight:var(--font-weight-medium);transition:opacity var(--transition-base);border:none}.btn-cancel:hover,.btn-submit:hover{opacity:.9}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.checkbox-group{gap:var(--spacing-4);flex-direction:column;display:flex}.checkbox-label{gap:var(--spacing-3);padding:var(--spacing-3);background:var(--color-background-soft);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base);display:flex}.checkbox-label:hover{background:var(--color-background-mute)}.checkbox-label input[type=checkbox]{cursor:pointer;flex-shrink:0;width:20px;height:20px;margin-top:2px}.checkbox-label strong{color:var(--color-text);margin-bottom:var(--spacing-1);display:block}.checkbox-label p{font-size:var(--font-size-sm);color:var(--color-text-light);margin:0}.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}.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-500);color:#fff}.status-badge.approved{background:var(--color-success-500);color:#fff}.status-badge.rejected{background:var(--color-error-500);color:#fff}.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-neutral-100);color:var(--color-neutral-600)}.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-600);color:#fff}.role-badge.member{background:var(--color-background-mute);color:var(--color-text)}.role-badge.admin{background:var(--color-primary-600);color:#fff}.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(--text-tertiary);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-600);font-weight:var(--font-weight-medium);transition:color var(--transition-base)}.auth-link:hover{color:var(--color-primary-700);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}.resend-link:hover:not(:disabled){color:var(--color-error-500)}.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);outline:none}.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%;font-size:1rem;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.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,.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-secondary,#6b7280);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,#f9fafb)}.catalog-picker-modal .picker-row:hover{background:var(--color-surface-hover,#f3f4f6)}.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}.catalog-picker-modal .muted{color:var(--color-text-secondary,#6b7280)}.content-header{margin-bottom:var(--spacing-4);justify-content:space-between;align-items:center;display:flex}.btn-request{background:var(--color-primary);color:#fff;padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-sm);cursor:pointer;border:none}.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-secondary);flex-wrap:wrap;display:flex}.urgent{background:var(--color-warning-500,#ffc107);color:#fff;padding:0 var(--spacing-2);border-radius:var(--radius-sm);font-weight:var(--font-weight-semibold)}.modal-lg{max-width:40rem}.hint{margin-top:var(--spacing-1);color:var(--color-text-secondary);font-size:var(--font-size-xs);display:block}.rejection-reason{margin-top:var(--spacing-2);padding:var(--spacing-2);background:var(--color-error-50,#ffebee);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.empty-state{text-align:center;padding:var(--spacing-8);color:var(--color-text-secondary)}.btn-add{padding:var(--spacing-3) var(--spacing-5);background:var(--color-primary-600);color:#fff;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}.btn-add:hover{background:var(--color-primary-700)}.btn-add:active{background:var(--color-primary-800)}.home-page .hero{text-align:center;padding:var(--spacing-20) 0;max-width:800px;margin:0 auto}.home-page .hero-title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--spacing-4)}.home-page .hero-subtitle{font-size:var(--font-size-xl);color:var(--text-secondary);margin-bottom:var(--spacing-8);line-height:var(--line-height-relaxed)}.home-page .hero-actions{gap:var(--spacing-4);flex-wrap:wrap;justify-content:center;display:flex}.home-page .features{gap:var(--spacing-6);margin-top:var(--spacing-16);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));max-width:1200px;margin-left:auto;margin-right:auto;display:grid}.home-page .feature-card{text-align:center}.home-page .feature-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-3)}.home-page .feature-description{font-size:var(--font-size-base);color:var(--text-secondary);line-height:var(--line-height-relaxed);margin:0}.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}.households-page .households-grid{gap:var(--spacing-6);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.households-page .household-card{cursor:pointer}.households-page .household-title-row{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-3);flex-wrap:wrap;display:flex}.households-page .household-name{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.households-page .needs-review-badge{border-radius:var(--radius-base);background-color:var(--color-error-50,#fde8e8);color:var(--color-error-700,#c81e1e);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.households-page .household-meta{gap:var(--spacing-4);font-size:var(--font-size-sm);color:var(--text-secondary);display:flex}.households-page .household-role{font-weight:var(--font-weight-medium);color:var(--color-primary-600)}.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-banner.lockdown-banner--soft{background-color:var(--color-warning-50,#fff7e6);color:var(--color-warning-700,#b85c00)}.household-detail-page .tab-button{position:relative}.household-detail-page .tabs{scrollbar-width:thin;scrollbar-color:var(--color-neutral-400) transparent;padding-bottom:6px}.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)}.household-detail-page .tabs::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-500)}.household-detail-page .tab-attention-dot{background:var(--color-warning-500,#f59e0b);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-icon{flex-shrink:0}.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{padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-sm)}.household-detail-page .tab-button span{display:none}.household-detail-page .tab-icon{width:24px;height:24px}.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(--color-primary-600);color:#fff;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:hover,.btn-primary--compact-mobile:active{background:var(--color-primary-700)}.btn-primary--compact-mobile .btn-label{display:none}.btn-primary--compact-mobile .btn-icon-glyph{font-size:1.4rem;line-height:1;font-weight:var(--font-weight-bold);display:inline!important}}.products-tab,.products-tab .tab-content{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 .header-actions{gap:var(--spacing-3);display:flex}.products-tab .btn-import,.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);border:none}.products-tab .btn-import{background:var(--color-primary);color:#fff}.products-tab .btn-request{background:var(--color-background-mute);color:var(--color-text)}.products-tab .btn-import:hover,.products-tab .btn-request:hover{opacity:.9}.products-tab .loading,.products-tab .products-grid{gap:var(--spacing-6);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.products-tab .product-card{background:var(--color-background-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:transform var(--transition-base);overflow:hidden}.products-tab .product-card:hover{transform:translateY(-2px)}.products-tab .product-image{width:100%;height:180px;overflow:hidden}.products-tab .product-image img{object-fit:cover;width:100%;height:100%}.products-tab .product-image-placeholder{background:var(--color-background-mute);width:100%;height:180px;color:var(--color-text-light);justify-content:center;align-items:center;display:flex}.products-tab .product-info{padding:var(--spacing-5)}.products-tab .product-info h4{margin:0 0 var(--spacing-2) 0;color:var(--color-text)}.products-tab .category{color:var(--color-primary);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 .tags{gap:var(--spacing-2);margin-bottom:var(--spacing-4);flex-wrap:wrap;display:flex}.products-tab .tag{padding:var(--spacing-1) var(--spacing-3);background:var(--color-background-mute);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-text)}.products-tab .variants-section{margin:var(--spacing-4) 0;border-top:1px solid var(--color-border);padding-top:var(--spacing-3)}.products-tab .variants-toggle{width:100%;padding:var(--spacing-2) 0;cursor:pointer;font-weight:var(--font-weight-medium);color:var(--color-text);font-size:var(--font-size-sm);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex}.products-tab .variants-toggle .chevron{transition:transform var(--transition-base);color:var(--color-text-light)}.products-tab .variants-toggle .chevron.open{transform:rotate(180deg)}.products-tab .variants-body{padding:var(--spacing-3) 0 var(--spacing-2) 0;gap:var(--spacing-3);flex-direction:column;display:flex}.products-tab .variants-empty{color:var(--color-text-light);font-size:var(--font-size-sm);font-style:italic}.products-tab .variant-row{background:var(--color-background);border-radius:var(--radius-md);padding:var(--spacing-3);border:1px solid var(--color-border)}.products-tab .variant-header{gap:var(--spacing-2);margin-bottom:var(--spacing-2);flex-wrap:wrap;align-items:baseline;display:flex}.products-tab .variant-brand{font-weight:var(--font-weight-semibold);color:var(--color-text)}.products-tab .variant-size{color:var(--color-primary);font-size:var(--font-size-sm)}.products-tab .variant-barcode{font-family:var(--font-family-mono,monospace);font-size:var(--font-size-xs);color:var(--color-text-light)}.products-tab .listings-list{gap:var(--spacing-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.products-tab .listing-row{gap:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text);flex-wrap:wrap;display:flex}.products-tab .listing-store{color:var(--color-text-light)}.products-tab .listing-price{font-weight:var(--font-weight-semibold)}.products-tab .listing-promo{background:var(--color-success-500);color:#fff;padding:0 var(--spacing-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.products-tab .listings-empty{font-size:var(--font-size-sm);color:var(--color-text-light);margin:0;font-style:italic}.products-tab .btn-add-variant{padding:var(--spacing-2) var(--spacing-4);background:var(--color-background-mute);color:var(--color-text);border:1px dashed var(--color-border);border-radius:var(--radius-base);cursor:pointer;font-size:var(--font-size-sm);transition:background var(--transition-base);align-self:flex-start}.products-tab .btn-add-variant:hover{background:var(--color-background-hover)}.products-tab .product-footer{padding-top:var(--spacing-4);border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.products-tab .added-by{font-size:var(--font-size-xs);color:var(--color-text-light)}.products-tab .btn-remove{padding:var(--spacing-1) var(--spacing-3);background:var(--color-danger);color:#fff;border-radius:var(--radius-base);font-size:var(--font-size-sm);cursor:pointer;transition:opacity var(--transition-base);border:none}.products-tab .btn-remove:hover{opacity:.9}.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 .request-actions{gap:var(--spacing-3);padding-top:var(--spacing-4);border-top:1px solid var(--color-border);display:flex}.products-tab .btn-approve,.products-tab .btn-reject{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity var(--transition-base);border:none}.products-tab .btn-approve{background:var(--color-success-500);color:#fff}.products-tab .btn-reject{background:var(--color-danger);color:#fff}.products-tab .btn-approve:hover,.products-tab .btn-reject:hover{opacity:.9}.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)}.products-tab .global-products-list{gap:var(--spacing-3);margin:var(--spacing-6) 0;flex-direction:column;max-height:400px;display:flex;overflow-y:auto}.products-tab .global-product-item{gap:var(--spacing-4);padding:var(--spacing-4);background:var(--color-background-soft);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base);display:flex}.products-tab .global-product-item:hover{background:var(--color-background-mute)}.products-tab .product-thumb{border-radius:var(--radius-base);width:60px;height:60px;overflow:hidden}.products-tab .product-thumb img{object-fit:cover;width:100%;height:100%}.products-tab .product-thumb-placeholder{background:var(--color-background-mute);border-radius:var(--radius-base);width:60px;height:60px;color:var(--color-text-light);font-size:var(--font-size-2xl);justify-content:center;align-items:center;display:flex}.products-tab .product-details h5{margin:0 0 var(--spacing-1) 0;color:var(--color-text)}.products-tab .product-details p{font-size:var(--font-size-sm);color:var(--color-text-light);margin:0}.shopping-lists-tab .tab-header{margin-bottom:var(--spacing-6);justify-content:space-between;align-items:center;display:flex}.shopping-lists-tab .tab-header h2{color:var(--color-text);margin:0}.shopping-lists-tab .loading{text-align:center;padding:var(--spacing-8);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}.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 h3{flex:1}.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}.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 .items-section{margin-bottom:var(--spacing-6)}.shopping-lists-tab .items-section h4{margin-bottom:var(--spacing-3);color:var(--color-text)}.shopping-lists-tab .bought-section h4{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,white);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}.shopping-lists-tab .item-card:hover{background:var(--color-background-soft);border-color:var(--color-primary-300,var(--color-primary,#3b82f6))}.shopping-lists-tab .item-card.bought{opacity:.6}.shopping-lists-tab .item-card.bought .btn-icon{opacity:1}.shopping-lists-tab .item-checkbox{cursor:pointer}.shopping-lists-tab .checkbox{border:2px solid var(--color-border);border-radius:var(--radius-base);width:24px;height:24px;color:var(--color-primary);justify-content:center;align-items:center;display:flex}.shopping-lists-tab .item-checkbox.checked .checkbox{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.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-category{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-pill,999px);background:var(--color-surface-2,#0000000d);color:var(--color-text-light);border:1px solid var(--color-border-subtle,#00000014);display:inline-block}.shopping-lists-tab .matched-compare{font-size:var(--font-size-xs);color:var(--color-primary);padding:2px var(--spacing-2);margin-left:auto;text-decoration:none}.shopping-lists-tab .matched-compare:hover{text-decoration:underline}.shopping-lists-tab .item-quantity{font-weight:var(--font-weight-medium);color:var(--color-text-light)}.shopping-lists-tab .products-grid{gap:var(--spacing-3);margin-bottom:var(--spacing-4);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));max-height:300px;display:grid;overflow-y:auto}.shopping-lists-tab .product-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-2);cursor:pointer;transition:all var(--transition-base)}.shopping-lists-tab .product-card:hover{border-color:var(--color-primary)}.shopping-lists-tab .product-card.selected{border-color:var(--color-primary);background:var(--color-background-soft);box-shadow:inset 3px 0 0 var(--color-primary)}.shopping-lists-tab .product-image{aspect-ratio:1;border-radius:var(--radius-base);width:100%;margin-bottom:var(--spacing-2);overflow:hidden}.shopping-lists-tab .product-image img{object-fit:cover;width:100%;height:100%}.shopping-lists-tab .product-info{text-align:center}.shopping-lists-tab .product-name{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);display:block}.shopping-lists-tab .product-category{font-size:var(--font-size-xs);color:var(--color-text-light);display:block}.quantity-selector{gap:var(--spacing-3);margin-top:var(--spacing-4);padding:var(--spacing-4);background:var(--color-background-soft,#fafafa);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(--color-primary);color:#fff}.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}.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,white);color:var(--color-primary);box-shadow:var(--shadow-sm)}.shopping-lists-tab .item-group{background:var(--color-surface,white);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{opacity:.85}.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,#4caf501f);color:var(--color-success-dark,var(--color-success-700,#2e7d32));border:1px solid color-mix(in srgb, var(--color-success,#4caf50) 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);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,#4caf501a);border:1px solid color-mix(in srgb, var(--color-success,#4caf50) 30%, transparent);color:var(--color-success,#4caf50)}.shopping-lists-tab .item-actions-left .btn-icon--success:hover:not(:disabled){background-color:var(--color-success,#4caf50);color:#fff;border-color:var(--color-success,#4caf50)}.shopping-lists-tab .item-actions-left .btn-icon--danger{background-color:var(--color-danger-bg,#f4433614);border:1px solid color-mix(in srgb, var(--color-error,#f44336) 30%, transparent);color:var(--color-error,#f44336)}.shopping-lists-tab .item-actions-left .btn-icon--danger:hover:not(:disabled){background-color:var(--color-error,#f44336);color:#fff;border-color:var(--color-error,#f44336)}.closed-chip,.purchases-tab .closed-badge{margin-top:var(--spacing-1);border-radius:var(--radius-full);background-color:var(--color-warning-50,#ef6c001f);color:var(--color-warning-700,#c66700);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);align-items:center;gap:4px;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,white);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.purchases-tab .stats-header{margin-bottom:var(--spacing-3);justify-content:space-between;align-items:center;display:flex}.purchases-tab .stats-header h4{font-size:var(--font-size-lg);color:var(--color-text);margin:0}.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(--text-tertiary)}.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(--color-primary-600);color:#fff;border-color:var(--color-primary-600)}.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(--color-primary);color:#fff}.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}.shopping-lists-tab .item-picked{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.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(--color-primary);color:#fff;border-radius:var(--radius-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity var(--transition-base);border:none}.members-tab .btn-add:hover{opacity:.9}.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-bg);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-muted)}.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);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 .btn-edit,.members-tab .btn-remove{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-base);font-weight:var(--font-weight-medium);cursor:pointer;font-size:var(--font-size-sm);transition:opacity var(--transition-base);border:none}.members-tab .btn-edit{background:var(--color-background-mute);color:var(--color-text)}.members-tab .btn-remove{background:var(--color-danger);color:#fff}.members-tab .btn-edit:hover,.members-tab .btn-remove:hover{opacity:.9}.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}}.admin-layout{background:var(--color-background);min-height:100vh}.admin-layout .admin-header{background:var(--color-background-soft);border-bottom:1px solid var(--color-border);z-index:var(--z-sticky);position:sticky;top:0}.admin-layout .header-content{max-width:1600px;padding:var(--spacing-4) var(--spacing-8);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.admin-layout .brand h1{font-size:var(--font-size-2xl);color:var(--color-text);margin:0}.admin-layout .btn-back{padding:var(--spacing-2) var(--spacing-4);background:var(--color-background-mute);color:var(--color-text);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);transition:background var(--transition-base);text-decoration:none}.admin-layout .btn-back:hover{background:var(--color-border)}.admin-layout .admin-container{max-width:1600px;min-height:calc(100vh - 73px);margin:0 auto;display:flex}.admin-layout .admin-sidebar{background:var(--color-background-soft);border-right:1px solid var(--color-border);width:250px;padding:var(--spacing-8) 0}.admin-layout .admin-nav{gap:var(--spacing-2);padding:0 var(--spacing-4);flex-direction:column;display:flex}.admin-layout .nav-item{align-items:center;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);color:var(--color-text);border-radius:var(--radius-md);transition:all var(--transition-base);font-weight:var(--font-weight-medium);text-decoration:none;display:flex}.admin-layout .nav-item:hover{background:var(--color-background-mute)}.admin-layout .nav-item.active{background:var(--color-primary);color:#fff}.admin-layout .nav-icon{stroke-width:2px;width:20px;height:20px}.admin-layout .admin-main{flex:1;overflow-x:hidden}@media (width<=768px){.admin-layout .admin-container{flex-direction:column}.admin-layout .admin-sidebar{border-right:none;border-bottom:1px solid var(--color-border);width:100%;padding:var(--spacing-4) 0}.admin-layout .admin-nav{flex-direction:row;overflow-x:auto}.admin-layout .nav-item span{white-space:nowrap}}.users-view .subtitle{color:var(--color-text-light);margin:0}.users-view .loading,.users-view .error{text-align:center;padding:var(--spacing-12);color:var(--color-text-light)}.users-view .error{color:var(--color-danger)}.users-view .btn-retry{margin-left:var(--spacing-4);padding:var(--spacing-2) var(--spacing-4);background:var(--color-primary);color:#fff;border-radius:var(--radius-base);cursor:pointer;border:none}.users-view .users-table{background:var(--color-background-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.users-view table{border-collapse:collapse;width:100%}.users-view th{background:var(--color-background-mute);padding:var(--spacing-4);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text);border-bottom:2px solid var(--color-border)}.users-view td{padding:var(--spacing-4);border-bottom:1px solid var(--color-border)}.users-view tr:hover{background:var(--color-background-hover)}.users-view tr.admin{background:var(--color-background-mute)}.users-view .status-badge{color:var(--color-text-light)}.users-view .status-badge.verified{color:var(--color-success-500)}.users-view .btn-promote{padding:var(--spacing-2) var(--spacing-4);background:var(--color-primary);color:#fff;border-radius:var(--radius-base);cursor:pointer;font-size:var(--font-size-sm);transition:opacity var(--transition-base);border:none}.users-view .btn-promote:hover:not(:disabled){opacity:.9}.users-view .btn-promote:disabled{opacity:.6;cursor:not-allowed}.users-view .already-admin{color:var(--color-text-light);font-size:var(--font-size-sm)}.global-products-view .btn-create{padding:var(--spacing-3) var(--spacing-6);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity var(--transition-base);border:none}.global-products-view .btn-create:hover{opacity:.9}.global-products-view .loading,.global-products-view .error{text-align:center;padding:var(--spacing-12);color:var(--color-text-light)}.global-products-view .error{color:var(--color-danger)}.global-products-view .btn-retry{margin-left:var(--spacing-4);padding:var(--spacing-2) var(--spacing-4);background:var(--color-primary);color:#fff;border-radius:var(--radius-base);cursor:pointer;border:none}.global-products-view .products-grid{gap:var(--spacing-6);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.global-products-view .product-card{background:var(--color-background-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:transform var(--transition-base);overflow:hidden}.global-products-view .product-card:hover{transform:translateY(-2px)}.global-products-view .product-image{width:100%;height:200px;position:relative;overflow:hidden}.global-products-view .product-image img{object-fit:cover;width:100%;height:100%}.global-products-view .image-count{bottom:var(--spacing-2);right:var(--spacing-2);background:var(--color-overlay-dark);color:#fff;padding:2px var(--spacing-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);position:absolute}.global-products-view .product-image-placeholder{background:var(--color-background-mute);width:100%;height:200px;color:var(--color-text-light);justify-content:center;align-items:center;display:flex}.global-products-view .product-info{padding:var(--spacing-6)}.global-products-view .product-info h3{margin:0 0 var(--spacing-2) 0;color:var(--color-text)}.global-products-view .code{color:var(--color-text-light);font-size:var(--font-size-xs);font-family:var(--font-family-mono,monospace);margin:0 0 var(--spacing-2) 0}.global-products-view .category{color:var(--color-primary);font-size:var(--font-size-sm);margin:0 0 var(--spacing-3) 0;font-weight:var(--font-weight-medium)}.global-products-view .translation-row{gap:var(--spacing-3);margin-bottom:var(--spacing-3);grid-template-columns:auto 1fr 1fr;align-items:center;display:grid}.global-products-view .translation-lang{font-weight:var(--font-weight-semibold);color:var(--color-primary);font-size:var(--font-size-sm);min-width:2.5rem}.global-products-view .translation-name,.global-products-view .translation-description{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);background:var(--color-background)}.global-products-view .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)}.global-products-view .tags{gap:var(--spacing-2);margin-bottom:var(--spacing-4);flex-wrap:wrap;display:flex}.global-products-view .tag{padding:var(--spacing-1) var(--spacing-3);background:var(--color-background-mute);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-text)}.global-products-view .product-meta{padding-top:var(--spacing-4);border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.global-products-view .status{padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-background-mute);color:var(--color-text-light)}.global-products-view .status.active{background:var(--color-success-500);color:#fff}.global-products-view .tags-grid{gap:var(--spacing-2);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.global-products-view .tag-checkbox{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text);display:flex}.global-products-view .tag-checkbox:hover{background:var(--color-background-mute)}.global-products-view .image-gallery{gap:var(--spacing-2);margin-bottom:var(--spacing-4);grid-template-columns:repeat(auto-fill,minmax(100px,1fr));display:grid}.global-products-view .gallery-item{aspect-ratio:1;border-radius:var(--radius-md);background:var(--color-background-soft);border:2px solid #0000;position:relative;overflow:hidden}.global-products-view .gallery-item.cover{border-color:var(--color-primary)}.global-products-view .gallery-item img{object-fit:cover;width:100%;height:100%}.global-products-view .cover-badge{top:var(--spacing-1);left:var(--spacing-1);background:var(--color-primary);color:#fff;font-size:.625rem;font-weight:var(--font-weight-semibold);padding:2px var(--spacing-1);border-radius:var(--radius-base);letter-spacing:.05em;position:absolute}.global-products-view .gallery-actions{bottom:var(--spacing-1);right:var(--spacing-1);gap:var(--spacing-1);display:flex;position:absolute}.global-products-view .btn-icon{background:var(--color-overlay-dark);color:#fff;border-radius:var(--radius-base);cursor:pointer;width:1.5rem;height:1.5rem;font-size:var(--font-size-sm);border:none;justify-content:center;align-items:center;padding:0;display:flex}.global-products-view .btn-icon:disabled{opacity:.4;cursor:not-allowed}.global-products-view .btn-icon.danger{background:var(--color-danger)}.global-products-view .hint{margin-top:var(--spacing-2);font-size:var(--font-size-xs);color:var(--color-text-light)}.global-products-view .empty-state{grid-column:1/-1}.global-products-view .btn-edit{padding:var(--spacing-1) var(--spacing-3);background:var(--color-primary);color:#fff;border-radius:var(--radius-base);cursor:pointer;font-size:var(--font-size-sm);transition:opacity var(--transition-base);border:none}.global-products-view .btn-edit:hover{opacity:.9}.global-products-view .code-display{font-family:var(--font-family-mono,monospace);font-size:var(--font-size-sm);padding:var(--spacing-1) var(--spacing-2);background:var(--color-background-mute);border-radius:var(--radius-base);margin:0;display:inline-block}.global-products-view .translation-row.readonly{gap:var(--spacing-3);padding:var(--spacing-2) 0;grid-template-columns:auto 1fr 2fr;align-items:center;display:grid}.global-products-view .image-gallery.readonly .gallery-item{pointer-events:none}.global-products-view .variants-admin-section{margin-top:var(--spacing-6);padding-top:var(--spacing-6);border-top:1px solid var(--color-border)}.global-products-view .variants-admin-section h3{margin:0 0 var(--spacing-4) 0;color:var(--color-text);font-size:var(--font-size-lg)}.global-products-view .variants-admin-section h4{margin:0 0 var(--spacing-3) 0;color:var(--color-text);font-size:var(--font-size-base)}.global-products-view .variants-empty{padding:var(--spacing-4);text-align:center;color:var(--color-text-light);background:var(--color-background-mute);border-radius:var(--radius-md)}.global-products-view .variant-list{margin:0 0 var(--spacing-4) 0;gap:var(--spacing-2);flex-direction:column;padding:0;list-style:none;display:flex}.global-products-view .variant-row{justify-content:space-between;align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-3);background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex}.global-products-view .variant-info{gap:var(--spacing-2);flex-wrap:wrap;flex:1;align-items:center;display:flex}.global-products-view .variant-brand{font-weight:var(--font-weight-semibold);color:var(--color-text)}.global-products-view .variant-size{font-size:var(--font-size-sm);color:var(--color-text-light);padding:2px var(--spacing-2);background:var(--color-background-mute);border-radius:var(--radius-base)}.global-products-view .variant-barcode{font-family:var(--font-family-mono,monospace);font-size:var(--font-size-xs);color:var(--color-text-light)}.global-products-view .variant-stores{gap:var(--spacing-1);width:100%;margin-top:var(--spacing-1);flex-wrap:wrap;display:flex}.global-products-view .store-chip{padding:2px var(--spacing-2);background:var(--color-primary-100,var(--color-background-mute));color:var(--color-text);border-radius:var(--radius-full);font-size:var(--font-size-xs)}.global-products-view .variant-actions{gap:var(--spacing-1);display:flex}.global-products-view .variant-actions .btn-icon{background:var(--color-background-mute);color:var(--color-text);width:2rem;height:2rem;position:static}.global-products-view .variant-actions .btn-icon.danger{background:var(--color-danger);color:#fff}.global-products-view .variant-form{padding:var(--spacing-4);background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--radius-md)}.global-products-view .variant-form .form-row{gap:var(--spacing-3);display:flex}.global-products-view .variant-form .form-col{flex:1}.global-products-view .variant-form-actions{justify-content:flex-end;gap:var(--spacing-2);margin-top:var(--spacing-3);display:flex}.brands-view .btn-create,.stores-view .btn-create{padding:var(--spacing-3) var(--spacing-6);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity var(--transition-base);white-space:nowrap;border:none}.brands-view .btn-create:hover,.stores-view .btn-create:hover{opacity:.9}.brands-view .loading,.brands-view .error,.stores-view .loading,.stores-view .error{text-align:center;padding:var(--spacing-12);color:var(--color-text-light)}.brands-view .error,.stores-view .error{color:var(--color-danger)}.brands-view .btn-retry,.stores-view .btn-retry{margin-left:var(--spacing-4);padding:var(--spacing-2) var(--spacing-4);background:var(--color-primary);color:#fff;border-radius:var(--radius-base);cursor:pointer;border:none}.brands-view .logo-thumb,.stores-view .logo-thumb{object-fit:contain;border-radius:var(--radius-base);background:var(--color-background);width:40px;height:40px}.brands-view .logo-placeholder,.stores-view .logo-placeholder{color:var(--color-text-light)}.brands-view .actions-cell,.stores-view .actions-cell{gap:var(--spacing-2);display:flex}.brands-view .btn-edit,.stores-view .btn-edit{padding:var(--spacing-2) var(--spacing-4);background:var(--color-primary);color:#fff;border-radius:var(--radius-base);cursor:pointer;font-size:var(--font-size-sm);transition:opacity var(--transition-base);border:none}.brands-view .btn-edit:hover,.stores-view .btn-edit:hover{opacity:.9}.brands-view .btn-delete,.stores-view .btn-delete{padding:var(--spacing-2) var(--spacing-4);background:var(--color-danger);color:#fff;border-radius:var(--radius-base);cursor:pointer;font-size:var(--font-size-sm);transition:opacity var(--transition-base);border:none}.brands-view .btn-delete:hover,.stores-view .btn-delete:hover{opacity:.9}.brands-view code,.stores-view code{font-family:var(--font-family-mono,monospace);font-size:var(--font-size-sm);padding:2px var(--spacing-2);background:var(--color-background-mute);border-radius:var(--radius-base);color:var(--color-text)}.brands-view .hint,.stores-view .hint{margin-top:var(--spacing-2);font-size:var(--font-size-xs);color:var(--color-text-light)}.brands-view .logo-preview,.stores-view .logo-preview{margin-top:var(--spacing-3);border-radius:var(--radius-md);background:var(--color-background-mute);width:80px;height:80px;overflow:hidden}.brands-view .logo-preview img,.stores-view .logo-preview img{object-fit:contain;width:100%;height:100%}.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(--color-primary);color:#fff;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-muted);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-muted);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-muted)}.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}.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,var(--color-primary))}.notifications-page .notification-item--warning{border-left-color:var(--color-warning-700,#d97706)}.notifications-page .notification-item--error{border-left-color:var(--color-error-700,var(--color-danger))}.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 .btn-add{padding:var(--spacing-3) var(--spacing-5);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none}.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-muted)}.purchases-tab .purchase-form,.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-regular)}.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);outline:none}.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 .btn-add{padding:var(--spacing-3) var(--spacing-5);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none}.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-muted)}.budgets-tab .budget-progress{background:var(--color-border);border-radius:999px;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-muted);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-muted);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}.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,#e8f5e9)}.budgets-tab .budget-forecast--warn{color:var(--color-warning-700);background:#ffc1071f}.budgets-tab .budget-forecast--over{color:var(--color-error-700);background:var(--color-error-50,#ffebee)}.budgets-tab .budget-forecast-confidence{font-size:var(--font-size-xs);opacity:.75;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{background:var(--color-border);border-radius:999px;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-muted);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-muted)}.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(--color-primary);color:#fff}.allocation-picker-dedup{align-items:center;gap:var(--spacing-1);font-size:var(--font-size-xs);color:var(--color-text-muted);cursor:pointer;flex-wrap:wrap;grid-area:dedup;display:flex}.allocation-picker-dedup small{font-size:var(--font-size-xs);color:var(--color-text-muted);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}.allocation-picker-row .btn-remove:hover{background:var(--color-error-50,#dc262614);border-color:var(--color-error-700)}.allocation-picker-add{border:1px dashed var(--color-border);border-radius:var(--radius-base);padding:var(--spacing-2) var(--spacing-3);cursor:pointer;color:var(--color-primary);font-size:var(--font-size-sm);text-align:center;background:0 0;align-self:stretch}.allocation-picker-sum{padding:var(--spacing-1) var(--spacing-3) 0;text-align:right;font-size:var(--font-size-xs);color:var(--color-text-muted);align-self:stretch}.allocation-picker-sum--invalid{color:var(--color-error-700)}.split-policies{gap:var(--spacing-4);flex-direction:column;display:flex}.split-policies-header{justify-content:space-between;align-items:center;display:flex}.split-policies-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted)}.split-policy-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}.split-policy-card .split-policy-card-header{justify-content:space-between;align-items:center;gap:var(--spacing-2);display:flex}.split-policy-card .split-policy-card-name{align-items:center;gap:var(--spacing-2);display:flex}.split-policy-card .split-policy-default-badge{font-size:var(--font-size-xs);background:var(--color-success-50,#e8f5e9);color:var(--color-success-700);border-radius:999px;padding:2px 6px}.split-policy-card .split-policy-mode{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.split-policy-card .split-policy-actions{gap:var(--spacing-2);display:flex}.split-policy-card .split-policy-actions button{color:var(--color-text-muted);cursor:pointer;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-base);background:0 0;border:none}.split-policy-card .split-policy-actions button:hover{background:var(--color-background-soft);color:var(--color-text)}.split-policy-rules-table{gap:var(--spacing-1);font-size:var(--font-size-sm);flex-direction:column;display:flex}.split-policy-rules-header,.split-policy-rules-row{gap:var(--spacing-2);grid-template-columns:1.5fr 70px 90px 70px 28px;align-items:center;display:grid}.split-policy-rules-header{color:var(--color-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;padding-bottom:var(--spacing-1);border-bottom:1px solid var(--color-border)}.split-policy-rules-row input[type=number],.split-policy-rules-row select{padding:var(--spacing-1) var(--spacing-2);font-size:var(--font-size-sm)}.split-policy-rules-row .btn-remove{color:var(--color-error-700);cursor:pointer;background:0 0;border:none}.split-policy-modal-form{gap:var(--spacing-3);flex-direction:column;display:flex}.split-policy-modal-form .mode-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.shopping-list-detail .split-policy-selector{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);display:flex}.shopping-list-detail .split-policy-selector select{padding:var(--spacing-1) var(--spacing-2)}.shopping-list-detail .convert-to-purchase{margin-top:var(--spacing-3)}.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-muted);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(--color-primary);color:#fff;box-shadow:0 1px 2px #00000026}.settlements-view .currency-pill{font-size:var(--font-size-sm);color:var(--color-text-muted);padding:var(--spacing-1) var(--spacing-2);background:var(--color-background-soft);border-radius:999px}.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-muted)}.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}.settlements-view .tx-row .btn-settle:hover{background:var(--color-success-50,#e8f5e9)}.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-muted);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-muted);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);font-weight:var(--font-weight-medium);text-transform:lowercase;border-radius:999px;display:inline-block}.settlements-view .badge-provisional{background:var(--color-background-soft);color:var(--color-text-muted);border:1px solid var(--color-border)}.settlements-view .badge-former{background:var(--color-background-soft);color:var(--color-text-muted);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-muted)}.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)}.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}.members-tab .btn-danger:hover{background:var(--color-error-50,#fdecea)}.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,#c62828)}.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-surface-muted,#f4f4f6);color:var(--color-text-muted);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-pill,999px);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-muted)}.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-muted);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-muted);font-size:var(--font-size-sm)}.compare-page .compare-cheap-badge{margin-left:var(--spacing-2);background:var(--color-success-tint-strong);color:var(--color-success,#2e7d32);padding:.125rem var(--spacing-2);border-radius:var(--radius-pill,999px);font-size:var(--font-size-xs)}.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,#fff);border:1px solid var(--color-border-subtle,#00000014);border-radius:var(--radius-md,.5rem);color:var(--color-text);text-align:center;flex-direction:column;text-decoration:none;transition:border-color .12s,transform .12s;display:flex}.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(--color-border-subtle,#0000000f)}.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);cursor:pointer;padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-pill,999px);background:0 0;margin-left:auto;transition:border-color .12s,background .12s}.browse-page .facet-pickers .facet-clear:hover{border-color:var(--color-primary);background:var(--color-primary-light,#2196f314)}.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-pill,999px);background:var(--color-surface-2,#0000000a);color:var(--color-text);border:1px solid var(--color-border-subtle,#00000014);cursor:pointer;transition:background .12s,border-color .12s;display:inline-block}.browse-page .facet-pickers .facet-chip:hover{border-color:var(--color-primary)}.browse-page .facet-pickers .facet-chip.selected{background:var(--color-primary);color:var(--color-on-primary,#fff);border-color:var(--color-primary)}.browse-page .browse-actions{bottom:var(--spacing-4);justify-content:space-between;align-items:center;gap:var(--spacing-4);margin-top:var(--spacing-4);z-index:1;display:flex;position:sticky}.browse-page .browse-count{color:var(--color-text);font-size:var(--font-size-sm)}.scan-page .scan-header{align-items:center;gap:var(--spacing-4);padding:var(--spacing-4);border-bottom:1px solid var(--color-border);display:flex}.scan-page .back-btn{font-size:var(--font-size-base);cursor:pointer;background:0 0;border:none}.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-prompt{align-items:center;gap:var(--spacing-4);padding:var(--spacing-8) var(--spacing-4);flex-direction:column;display:flex}.scan-page .scan-stream{align-items:center;gap:var(--spacing-3);flex-direction:column;display:flex}.scan-page .scan-video{aspect-ratio:4/3;border-radius:var(--radius-md);object-fit:cover;background:#000;width:100%;max-width:480px}.scan-page .scan-icon{width:96px;height:96px;color:var(--color-primary)}.scan-page .scan-hint{text-align:center;color:var(--color-text-secondary,#6b7280);margin:0}.scan-page .manual-fallback{gap:var(--spacing-3);padding-top:var(--spacing-4);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.scan-page .manual-divider{text-align:center;color:var(--color-text-secondary,#6b7280);font-size:var(--font-size-sm)}.scan-page .manual-input-row{gap:var(--spacing-2);display:flex}.scan-page .manual-input{padding:var(--spacing-2);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);flex:1}.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,#f9fafb);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-secondary,#6b7280);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,#fff8e1);color:var(--color-warning-700,#ffa000);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,#f9fafb);border-radius:var(--radius-md)}.scan-page .vote-result.approved{background:var(--color-success-50,#e8f5e9);color:var(--color-success-700,#388e3c)}.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 .form-actions{justify-content:space-between;gap:var(--spacing-2);display:flex}.scan-page .muted{color:var(--color-text-secondary,#6b7280)}.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}.request-store-view .requests-list{padding:0;list-style:none;display:block}.request-store-view .request-item{padding:var(--spacing-3) 0;border-bottom:1px solid var(--color-border)}.request-store-view .request-item:last-child{border-bottom:none}.request-store-view .meta{gap:var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--spacing-1);align-items:center;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(--color-primary);color:#fff;border-color:var(--color-primary)}.purchases-tab .stats-bar{margin-top:var(--spacing-2);background:var(--color-background-mute,var(--color-border));border-radius:999px;height:6px;overflow:hidden}.purchases-tab .stats-bar-fill{background:var(--color-primary);border-radius:999px;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-pill,999px);background:var(--color-success-tint,#2e7d3226);color:var(--color-success,#2e7d32)}.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);outline:none}.browse-page .browse-search-clear{right:var(--spacing-2);background:var(--color-background-soft);width:28px;height:28px;color:var(--color-text);cursor:pointer;border:none;border-radius:50%;font-size:1rem;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.browse-page .browse-search-clear:hover{background:var(--color-background-mute,var(--color-border))}.browse-page .browse-brand-label{font-size:var(--font-size-sm);color:var(--color-text-light);margin-bottom:var(--spacing-2);display:block}.browse-page .browse-brand-chips{gap:var(--spacing-1);flex-wrap:wrap;display:flex}.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}.browse-page .browse-filter-toggle:hover{border-color:var(--color-primary)}.browse-page .browse-filter-count{background:var(--color-primary);color:#fff;min-width:20px;height:20px;font-size:var(--font-size-xs);border-radius:999px;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;background:0 0;border:none;padding:0;font-size:1rem;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-list{gap:var(--spacing-1);flex-wrap:wrap;max-height:40vh;display:flex;overflow-y:auto}.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(--color-border-subtle,var(--color-border));justify-content:space-between;align-items:center;display:flex}.browse-brand-dropdown-item:last-child{border-bottom:none}.browse-brand-dropdown-item:hover{background:var(--color-background-soft)}.browse-brand-dropdown-item.selected{color:var(--color-primary);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-page .browse-recognized{align-items:center;gap:var(--spacing-2);margin-top:var(--spacing-2);flex-wrap:wrap;display:flex}.browse-page .browse-recognized-label{font-size:var(--font-size-xs);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.05em}.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(--color-border-subtle,var(--color-border));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,.browse-recognized .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-pill,999px);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}.browse-facet-inline-chips .facet-chip:hover,.browse-recognized .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,.browse-recognized .facet-chip.selected,.browse-active-chips .facet-chip.selected,.browse-facet-chips .facet-chip.selected{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.browse-page .browse-search-input::-webkit-search-cancel-button{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-pill,999px);background:var(--color-info-tint,#2196f31f);color:var(--color-primary);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-loading,.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,#2e7d32);background:var(--color-success-tint,#2e7d3214)}.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,#2e7d32)}.cheapest-badge{font-size:var(--font-size-xs);padding:.125rem var(--spacing-2);border-radius:var(--radius-pill,999px);white-space:nowrap}.cheapest-badge--best{background:var(--color-success-tint,#2e7d3229);color:var(--color-success,#2e7d32)}.cheapest-badge--approx{background:var(--color-warning-tint,#ff980029);color:var(--color-warning,#ef6c00);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);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}.price-obs-modal{gap:var(--spacing-3);flex-direction:column;display:flex}.price-obs-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}.price-obs-variant{font-size:var(--font-size-sm);color:var(--color-text-light)}.price-obs-modal .field-row{gap:var(--spacing-2);align-items:center;display:flex}.price-obs-modal .field-row__fixed{flex:none}.price-obs-modal .price-currency{font-weight:var(--font-weight-semibold);color:var(--color-text-light)}.price-obs-result{padding:var(--spacing-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);text-align:center}.price-obs-result--success{background:var(--color-success-tint,#2e7d321f);color:var(--color-success,#2e7d32)}.price-obs-result--pending{background:var(--color-info-tint,#2196f31f);color:var(--color-primary)}.price-obs-result--conflict{background:var(--color-warning-tint,#ff980029);color:var(--color-warning,#ef6c00)}.compare-page .compare-actions{white-space:nowrap;text-align:right}.price-obs-modal .price-obs-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);flex-direction:column;display:flex}.price-obs-modal .price-obs-photo-picker input[type=file]{display:none}.price-obs-modal .price-obs-photo-picker small{color:var(--color-text-light);font-size:var(--font-size-xs)}.price-obs-modal .price-obs-photo-preview{align-items:flex-start;gap:var(--spacing-2);display:flex}.price-obs-modal .price-obs-photo-preview img{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--color-border);max-width:96px;max-height:96px}.wallet-page .wallet-header{justify-content:space-between;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-2);display:flex}.wallet-page .wallet-header h1{color:var(--color-text);margin:0}.wallet-page .wallet-loading,.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:hover,.wallet-page .wallet-card:active{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-mono,monospace);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-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:var(--color-text-light);margin:0}.card-barcode-modal .card-barcode-number{font-family:var(--font-mono,monospace);font-size:var(--font-size-lg);letter-spacing:.15em;color:#000;text-align:center;margin:0}.card-barcode-modal .card-barcode-loading{padding:var(--spacing-6);color:var(--color-text-light)}.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-tint,#ff980029);color:var(--color-warning,#ef6c00);cursor:help}.cheapest-promos,.cheapest-loyalty{margin-top:var(--spacing-2)}.cheapest-promos>summary,.cheapest-loyalty>summary{cursor:pointer;color:var(--color-primary);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,#2e7d32);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-pill,999px);background:var(--color-warning-tint,#ff980029);color:var(--color-warning,#ef6c00);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-pill,999px);background:var(--color-info-tint,#2196f31f);color:var(--color-primary);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-pill,999px);background:var(--color-warning-tint,#ff980029);color:var(--color-warning,#ef6c00);cursor:help;margin-top:var(--spacing-1);display:inline-block}.convert-form .convert-estimate-hint{cursor:pointer;color:var(--color-primary);font-weight:var(--font-weight-medium);margin-top:.25rem;display:block}.pantry-tab{flex-direction:column;gap:1rem;display:flex}.pantry-tab .content-header{justify-content:space-between;align-items:center;display:flex}.pantry-tab__loading,.pantry-tab__error,.pantry-tab__empty{text-align:center;color:var(--color-text-secondary,#666);padding:1.5rem}.pantry-tab__error{color:var(--color-error,#c62828)}.pantry-tab__grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem;display:grid}.pantry-card{background:var(--color-surface,#fff);border:1px solid var(--color-border,#e0e0e0);border-radius:var(--radius-md,8px);cursor:pointer;text-align:left;flex-direction:column;gap:.5rem;padding:.75rem;transition:box-shadow .15s ease-in-out;display:flex}.pantry-card:hover{box-shadow:0 2px 6px #00000014}.pantry-card--open{border-left:3px solid var(--color-primary,#1976d2)}.pantry-card__head{flex-direction:column;display:flex}.pantry-card__name{font-weight:var(--font-weight-semibold,600);font-size:.95rem}.pantry-card__brand{color:var(--color-text-secondary,#666);font-size:.8rem}.pantry-card__progress{border-radius:var(--radius-sm,4px);background:var(--color-neutral-200,#eee);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-secondary,#666);justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.pantry-card__badge{background:var(--color-primary-100,#e3f2fd);color:var(--color-primary-800,#1565c0);border-radius:var(--radius-sm,4px);font-size:.7rem;font-weight:var(--font-weight-medium,500);padding:.15rem .5rem}.pantry-detail{flex-direction:column;gap:1rem;display:flex}.pantry-detail__loading,.pantry-detail__error{text-align:center;padding:1rem}.pantry-detail__error{color:var(--color-error,#c62828)}.pantry-detail__meta{border-bottom:1px solid var(--color-border,#e0e0e0);color:var(--color-text-secondary,#666);justify-content:space-between;padding-bottom:.5rem;font-size:.9rem;display:flex}.pantry-detail__section{flex-direction:column;gap:.5rem;display:flex}.pantry-detail__section h3{font-size:.9rem;font-weight:var(--font-weight-semibold,600);margin:0}.pantry-detail__hint{color:var(--color-text-secondary,#666);margin:0;font-size:.8rem}.pantry-detail__row{align-items:center;gap:.5rem;display:flex}.pantry-detail__row input[type=number],.pantry-detail__row input[type=text]{flex:1}.pantry-detail__unit{color:var(--color-text-secondary,#666);min-width:2rem;font-size:.9rem}.pantry-detail__note{width:100%}.pantry-detail__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.pantry-detail__empty{color:var(--color-text-secondary,#666);font-size:.85rem}.pantry-detail__history{flex-direction:column;gap:.25rem;max-height:240px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.pantry-detail__history-row{background:var(--color-neutral-50,#fafafa);border-radius:var(--radius-sm,4px);grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.85rem;display:grid}.pantry-detail__history-row--correction{border-left:3px solid var(--color-warning,#f9a825)}.pantry-detail__history-row--discard{border-left:3px solid var(--color-error,#c62828)}.pantry-detail__history-kind{font-weight:var(--font-weight-medium,500);color:var(--color-text-secondary,#666)}.pantry-detail__history-amount{font-variant-numeric:tabular-nums}.pantry-detail__history-time{color:var(--color-text-secondary,#666);font-size:.75rem}.pantry-detail__history-note{color:var(--color-text-secondary,#666);grid-column:1/-1;padding-left:.25rem;font-size:.8rem}.pantry-add__subtitle{color:var(--color-text-secondary,#666);margin-bottom:.75rem;font-size:.9rem}.pantry-add__field{flex-direction:column;gap:.25rem;margin-bottom:.75rem;font-size:.85rem;display:flex}.pantry-add__field small{color:var(--color-text-secondary,#666);font-size:.75rem}.pantry-add__search-results{border:1px solid var(--color-border,#e0e0e0);border-radius:var(--radius-sm,4px);background:var(--color-surface,#fff);max-height:180px;margin:.25rem 0 0;padding:0;list-style:none;overflow-y:auto}.pantry-add__search-item{cursor:pointer;padding:.4rem .6rem}.pantry-add__search-item:hover{background:var(--color-neutral-100,#f5f5f5)}.pantry-add__error{color:var(--color-error,#c62828);background:var(--color-error-50,#ffebee);border-radius:var(--radius-sm,4px);padding:.5rem;font-size:.85rem}.pantry-stock-badge{border-radius:var(--radius-sm,4px);font-size:.72rem;font-weight:var(--font-weight-medium,500);white-space:nowrap;align-items:center;gap:.25rem;padding:.1rem .5rem;line-height:1.2;display:inline-flex}.pantry-stock-badge--ok{background:var(--color-primary-50,#e3f2fd);color:var(--color-primary-800,#1565c0)}.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-600) 0%, var(--color-primary-800) 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-switcher{align-items:center;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.dashboard-switcher__label{font-size:var(--font-size-sm);color:var(--text-tertiary);font-weight:var(--font-weight-medium)}.dashboard-switcher__pills{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.dashboard-switcher__pill{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;align-items:center;gap:var(--spacing-1);transition:var(--transition-fast);display:inline-flex}.dashboard-switcher__pill:hover{border-color:var(--color-primary-400);color:var(--color-primary-700)}.dashboard-switcher__pill--active{background:var(--color-primary-600);border-color:var(--color-primary-600);color:#fff}.dashboard-switcher__attention{font-size:.9em}.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}.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(--text-tertiary);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(--text-tertiary);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(--text-tertiary);flex-shrink:0;font-size:1.5rem;line-height:1}.dashboard-widget__cta-btn{padding:var(--spacing-2);cursor:pointer;background:0 0;border:none;text-decoration:none}.dashboard-widget__cta-btn:hover{color:var(--color-primary-700)}.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{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:var(--font-weight-semibold)}.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}.dashboard-quick-action:hover{border-color:var(--color-primary-400);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.dashboard-quick-action__icon{font-size:1.5rem}.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)}.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__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__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);color:#fff;justify-content:center;align-items:center;width:18px;height:18px;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-50);color:var(--color-primary-800);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}.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-600);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(--text-tertiary);font-size:var(--font-size-sm);border-top:1px solid var(--border-color-light)}@media (width<=768px){.mobile-menu-toggle,.navbar-menu{display:none!important}.navbar{height:56px}}.app--has-bottom-bar{padding-bottom:0}@media (width<=768px){.app--has-bottom-bar{padding-bottom:calc(64px + 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,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 8px #0000000f}}.mobile-bottom-nav__tab{color:var(--text-tertiary);font-size:10px;font-weight:var(--font-weight-medium);transition:color var(--transition-fast);flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:56px;padding:8px 4px 6px;text-decoration:none;display:flex}.mobile-bottom-nav__tab:hover,.mobile-bottom-nav__tab.router-link-active{color:var(--color-primary-600)}.mobile-bottom-nav__icon-wrap{display:inline-flex;position:relative}.mobile-bottom-nav__icon{stroke-width:2px;width:22px;height:22px}.mobile-bottom-nav__label{letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;max-width:100%;line-height:1;overflow:hidden}.mobile-bottom-nav__badge{border-radius:var(--radius-full);background:var(--color-error-500);color:#fff;min-width:16px;height:16px;font-size:10px;font-weight:var(--font-weight-bold);justify-content:center;align-items:center;padding:0 4px;line-height:1;display:inline-flex;position:absolute;top:-4px;right:-8px}.mobile-invitations-fab{display:none}@media (width<=768px){.mobile-invitations-fab{right:12px;bottom:calc(64px + 12px + env(safe-area-inset-bottom,0px));background:var(--color-primary-600);color:#fff;border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);z-index:calc(var(--z-sticky) + 1);align-items:center;gap:6px;padding:8px 12px 8px 10px;text-decoration:none;animation:.22s ease-out mobile-invitations-fab-pop;display:inline-flex;position:fixed;box-shadow:0 6px 16px #1565c066}}.mobile-invitations-fab:hover,.mobile-invitations-fab:active{background:var(--color-primary-700)}.mobile-invitations-fab__icon{stroke-width:2px;width:18px;height:18px}.mobile-invitations-fab__count{border-radius:var(--radius-full);background:var(--color-error-500);color:#fff;min-width:18px;height:18px;font-size:11px;font-weight:var(--font-weight-bold);justify-content:center;align-items:center;padding:0 6px;line-height:1;display:inline-flex}@keyframes mobile-invitations-fab-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.landing-bottom-cta{display:none}@media (width<=768px){.landing-bottom-cta{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;align-items:center;gap:8px;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-600) 0%, var(--color-primary-800) 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:hover,.landing-bottom-cta__primary:active{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}.landing-bottom-cta__secondary:hover{color:var(--color-primary-700);text-decoration:underline}@media (width<=768px){.landing-footer{padding-bottom:calc(var(--spacing-6) + 96px + env(safe-area-inset-bottom,0px))}}.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}
