.error-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background-color:var(--color-bg-subtle, #f8f9fa)}.error-screen-container{max-width:600px;width:100%;text-align:center;background:var(--color-bg, white);padding:3rem 2rem;border-radius:.5rem;box-shadow:0 2px 8px #0000001a}.error-screen-icon{font-size:4rem;line-height:1;margin-bottom:1.5rem}.error-screen-title{font-size:1.75rem;font-weight:700;margin:0 0 1rem;color:var(--color-text-primary, #212529)}.error-screen-message{font-size:1rem;line-height:1.6;margin:0 0 1.5rem;color:var(--color-text-secondary, #6c757d)}.error-screen-metadata{margin:1.5rem 0;padding:1rem;background:var(--color-bg-subtle, #f8f9fa);border:1px solid var(--color-border, #dee2e6);border-radius:.25rem;text-align:left}.error-screen-metadata-item{margin:.5rem 0;font-size:.875rem;color:var(--color-text-secondary, #6c757d)}.error-screen-metadata-item strong{color:var(--color-text-primary, #212529);margin-right:.5rem}.error-screen-metadata-item code{background:var(--color-bg, white);padding:.125rem .375rem;border-radius:.25rem;font-family:Consolas,Monaco,Courier New,monospace;font-size:.8125rem;color:var(--color-text-primary, #212529)}.error-screen-error-id{margin:1.5rem 0;padding:1rem;background:#fff3cd;border:2px solid #ffc107;border-radius:.5rem;text-align:center}.error-screen-error-id-label{font-size:.875rem;font-weight:600;color:#856404;margin-bottom:.5rem}.error-screen-error-id-value{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.5rem}.error-screen-error-id-value code{background:#fff;padding:.5rem .75rem;border-radius:.25rem;font-family:Consolas,Monaco,Courier New,monospace;font-size:.875rem;color:#212529;border:1px solid #ffc107;-webkit-user-select:all;user-select:all}.error-screen-error-id-copy{padding:.375rem .625rem;font-size:1rem;background:#fff;border:1px solid #ffc107;border-radius:.25rem;cursor:pointer;transition:all .2s;line-height:1}.error-screen-error-id-copy:hover:not(:disabled){background:#ffc107;transform:scale(1.1)}.error-screen-error-id-copy:active{transform:scale(.95)}.error-screen-error-id-copy:disabled{cursor:default;opacity:.7}.error-screen-error-id-help{font-size:.75rem;color:#856404;font-style:italic}.error-screen-details{margin:1.5rem 0;text-align:left;background:var(--color-bg-subtle, #f8f9fa);border:1px solid var(--color-border, #dee2e6);border-radius:.25rem;padding:1rem}.error-screen-details summary{cursor:pointer;font-weight:600;margin-bottom:.5rem;-webkit-user-select:none;user-select:none}.error-screen-details pre{margin:.5rem 0 0;padding:.5rem;background:var(--color-bg, white);border-radius:.25rem;overflow-x:auto;font-size:.875rem;color:var(--color-text-primary, #212529)}.error-screen-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:2rem}.error-screen-button{padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border-radius:.375rem;border:none;cursor:pointer;transition:all .2s}.error-screen-button-primary{background-color:var(--color-primary, #0d6efd);color:#fff}.error-screen-button-primary:hover{background-color:var(--color-primary-hover, #0b5ed7);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.error-screen-button-secondary{background-color:var(--color-bg-subtle, #f8f9fa);color:var(--color-text-primary, #212529);border:1px solid var(--color-border, #dee2e6)}.error-screen-button-secondary:hover{background-color:var(--color-bg-hover, #e9ecef)}.error-screen-button:active{transform:translateY(0)}@media(max-width:640px){.error-screen{padding:1rem}.error-screen-container{padding:2rem 1.5rem}.error-screen-title{font-size:1.5rem}.error-screen-actions{flex-direction:column}.error-screen-button{width:100%}}.service-status-banner{position:fixed;top:0;left:0;right:0;z-index:1000;padding:1rem;animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.service-status-checking{background-color:#e3f2fd;border-bottom:2px solid #2196f3;color:#1565c0}.service-status-degraded{background-color:#fff3e0;border-bottom:2px solid #ff9800;color:#e65100}.service-status-outage{background-color:#ffebee;border-bottom:2px solid #f44336;color:#c62828}.service-status-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:1rem}.service-status-icon{font-size:1.5rem;line-height:1}.service-status-text{flex:1}.service-status-text strong{display:block;margin-bottom:.25rem;font-size:1rem}.service-status-text p{margin:0;font-size:.875rem}.service-status-text small{display:block;margin-top:.25rem;opacity:.8;font-size:.75rem}.service-status-retry{padding:.5rem 1rem;border:none;border-radius:.25rem;background-color:#0000001a;color:inherit;font-weight:600;cursor:pointer;transition:background-color .2s}.service-status-retry:hover{background-color:#0003}.service-status-retry:active{background-color:#0000004d}.admin-panel-loading{padding:1rem;border:1px solid var(--color-border);border-radius:.5rem;background:var(--color-surface-soft)}.admin-overview{display:flex;flex-direction:column;gap:1rem}.admin-hero{align-items:flex-start}.admin-panel{padding:clamp(.9rem,2vw,1.25rem)}.admin-identity{display:grid;grid-template-columns:repeat(2,minmax(8.5rem,1fr));gap:.5rem;width:min(100%,28rem)}.identity-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .65rem;border:1px solid var(--color-border);border-radius:.5rem;background-color:var(--color-surface)}.identity-row .label{color:var(--color-text-secondary);font-size:.78rem}.admin-inline-1,.admin-inline-2{padding:1rem}.admin-inline-3{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.admin-inline-4{margin-bottom:1rem;padding:1rem;border:1px solid var(--color-border);border-radius:.75rem;background-color:var(--color-surface)}.admin-inline-5{margin-bottom:.25rem}.admin-inline-6{margin-bottom:.5rem}.admin-inline-7{margin-bottom:.75rem}.admin-inline-8{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem}.admin-inline-9{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15.625rem,1fr))}.admin-inline-10{border:1px solid var(--color-border);border-radius:.75rem;padding:1rem;background-color:var(--color-surface)}.admin-inline-11{display:flex;justify-content:space-between;gap:.5rem}.admin-inline-12{margin-top:.25rem}.admin-inline-13{margin:.25rem 0}.admin-inline-14{margin-bottom:.5rem}.admin-inline-15{font-size:.75rem;margin-bottom:.75rem}.admin-inline-16{display:flex;flex-wrap:wrap;gap:.5rem}.admin-inline-17,.admin-inline-18,.admin-inline-19{padding:1rem}.admin-inline-20{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.admin-inline-21,.admin-inline-22{margin:0}.admin-inline-23{font-size:.75rem}.admin-inline-24,.admin-inline-25{padding:1rem}.admin-inline-26{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(13.75rem,1fr))}.admin-inline-27{margin:0 0 .5rem;font-size:.875rem;font-weight:600}.admin-inline-28{margin:0;padding-left:1.25rem}.admin-inline-29{font-size:.875rem;margin-bottom:.25rem}.admin-inline-30,.admin-inline-31{padding:1rem}.admin-inline-32{margin-top:.75rem}.admin-inline-33,.admin-inline-34{padding:1rem}.admin-inline-35{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(13.75rem,1fr))}.admin-inline-36{font-size:.875rem}.admin-inline-37{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}.admin-inline-38{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));margin-bottom:1rem}.admin-count-default{color:inherit}.admin-count-warning{color:var(--color-warning)}.admin-count-danger{color:var(--color-danger)}.admin-seed-warning-box{margin-top:1rem;padding:1rem;border-radius:.25rem}.admin-seed-warning-box.is-critical{background:var(--color-danger-bg);border:1px solid var(--color-danger)}.admin-seed-warning-box.is-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning)}@media(max-width:640px){.admin-identity{grid-template-columns:1fr;width:100%}.admin-inline-11{flex-wrap:wrap}.admin-inline-15{margin-bottom:.5rem}}.saved-hub-page{padding:clamp(1rem,3vw,2.25rem);max-width:72rem;margin:0 auto;display:grid;gap:1rem}.saved-hub-error-shell{padding:clamp(1rem,3vw,2rem);max-width:56rem;margin:0 auto}.saved-hub-header{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:space-between;align-items:flex-end}.saved-hub-header h1{margin:0;font-size:clamp(1.5rem,3vw,2rem)}.saved-hub-header p{margin:.55rem 0 0;color:var(--color-text-subtle);max-width:46ch}.saved-hub-header-stats{display:flex;flex-wrap:wrap;gap:.45rem}.saved-hub-header-stats span{background:var(--color-surface-soft);border:1px solid var(--color-border-subtle);border-radius:999px;padding:.34rem .72rem;font-size:.78rem;color:var(--color-text-secondary);white-space:nowrap}.saved-hub-quick-actions,.saved-hub-section,.saved-hub-empty-state{border:1px solid var(--color-border-subtle);border-radius:.82rem;background:var(--color-surface-soft);padding:.95rem 1rem}.saved-hub-quick-actions h2,.saved-hub-section h2,.saved-hub-empty-state h2{margin:0;font-size:1.08rem}.saved-hub-quick-actions p,.saved-hub-empty-state p{margin:.45rem 0 0;color:var(--color-text-subtle)}.saved-hub-action-row{margin-top:.82rem;display:flex;flex-wrap:wrap;gap:.5rem}.saved-hub-start-grid{margin-top:.82rem;display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.saved-hub-start-card{border:1px solid var(--color-border-subtle);border-radius:.62rem;background:var(--control-bg);padding:.7rem}.saved-hub-start-card h3{margin:0;font-size:.95rem}.saved-hub-start-card p{margin:.45rem 0 .68rem;color:var(--color-text-subtle);font-size:.84rem}.saved-hub-error-inline{margin-bottom:.2rem}.saved-hub-store-picker{margin:.7rem 0 .95rem}.saved-hub-store-picker label{display:inline-flex;gap:.55rem;align-items:center;color:var(--color-text-secondary);font-size:.88rem}.saved-hub-store-picker select{border:1px solid var(--color-border-strong);border-radius:.46rem;background:var(--control-bg);color:var(--color-text);padding:.35rem .45rem}.saved-hub-list-grid{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}.saved-hub-card{border:1px solid var(--color-border-subtle);border-radius:.7rem;background:var(--control-bg);padding:.75rem}.saved-hub-card h3{margin:0;font-size:.99rem}.saved-hub-item-list{list-style:none;padding:0;margin:.6rem 0 0;display:grid;gap:.55rem}.saved-hub-item-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;border:1px solid var(--color-border-subtle);border-radius:.56rem;padding:.58rem .64rem;background:var(--color-surface)}.saved-hub-item-row a{font-weight:600}.saved-hub-item-row p{margin:.22rem 0 0;color:var(--color-text-subtle);font-size:.84rem}.saved-hub-inline-action{font-size:.82rem;border:1px solid var(--color-border-strong);border-radius:.42rem;background:var(--control-bg);color:var(--color-text);cursor:pointer;min-height:2.5rem;padding:.3rem .62rem;white-space:nowrap}.saved-hub-inline-action-link{font-size:.82rem;border:1px solid var(--color-border-strong);border-radius:.42rem;background:var(--control-bg);color:var(--color-text);cursor:pointer;min-height:2.5rem;padding:.3rem .62rem;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center}.saved-hub-inline-action:disabled{opacity:.56;cursor:wait}.saved-hub-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.saved-hub-empty-copy{margin:.6rem 0 0;color:var(--color-text-subtle)}.saved-hub-empty-block{margin-top:.55rem}.saved-hub-favorite-grid{list-style:none;margin:.7rem 0 0;padding:0;display:grid;gap:.65rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.saved-hub-favorite-card{border:1px solid var(--color-border-subtle);border-radius:.56rem;padding:.64rem;background:var(--color-surface);display:grid;gap:.55rem}.saved-hub-favorite-card a{font-weight:600}.saved-hub-favorite-card p{margin:.22rem 0 0;color:var(--color-text-subtle);font-size:.82rem}.saved-hub-favorite-description{margin-top:.3rem}@media(max-width:780px){.saved-hub-page{padding:.95rem}.saved-hub-item-row{flex-direction:column;align-items:flex-start}.saved-hub-row-actions{width:100%}}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(18rem,30rem) minmax(20rem,28rem);gap:clamp(1.25rem,3vw,2rem);justify-content:center;align-content:center;padding:clamp(1rem,4vw,3rem);background:radial-gradient(circle at 0% 0%,color-mix(in srgb,var(--color-primary-soft) 25%,transparent),transparent 60%),radial-gradient(circle at 100% 100%,color-mix(in srgb,var(--color-accent-soft) 26%,transparent),transparent 64%),var(--color-surface-soft)}.auth-value-panel{border:1px solid color-mix(in srgb,var(--color-border) 84%,transparent);border-radius:1.15rem;padding:clamp(1.25rem,2.6vw,2rem);background:linear-gradient(165deg,color-mix(in srgb,var(--color-surface) 95%,transparent),color-mix(in srgb,var(--color-primary-soft) 28%,var(--color-surface)));box-shadow:0 16px 36px color-mix(in srgb,var(--color-shadow) 26%,transparent)}.auth-form{margin-top:1rem;display:grid;gap:.95rem}.auth-field{display:grid;gap:.45rem}.auth-label{font-weight:600;color:var(--color-text)}.auth-input{width:100%;border-radius:.62rem;border:1px solid color-mix(in srgb,var(--color-border-strong) 78%,transparent);background:color-mix(in srgb,var(--control-bg) 92%,var(--color-surface));color:var(--color-text);padding:.68rem .72rem;font-size:.96rem}.auth-input:focus-visible{outline:2px solid color-mix(in srgb,var(--color-primary-strong) 62%,transparent);outline-offset:2px}.auth-state-panel{margin-top:1rem;border-radius:.78rem;padding:.82rem .92rem;border:1px solid var(--color-border)}.auth-state-panel-danger{background:color-mix(in srgb,var(--color-danger-bg) 88%,var(--color-surface));border-color:color-mix(in srgb,var(--color-danger-border) 84%,transparent)}.auth-state-panel-warning{background:color-mix(in srgb,var(--color-warning-bg) 84%,var(--color-surface));border-color:color-mix(in srgb,var(--color-warning-border) 90%,transparent)}.auth-state-title{font-weight:700;margin-bottom:.35rem}.auth-state-copy{color:var(--color-text);margin-bottom:.25rem}.auth-state-meta{font-size:.82rem;color:var(--color-text-secondary)}.auth-state-hints{margin-top:.68rem;padding-top:.66rem;border-top:1px dashed color-mix(in srgb,var(--color-border-strong) 44%,transparent)}.auth-state-hint-title{font-size:.78rem;font-weight:700;margin-bottom:.35rem}.auth-state-hint-item{font-size:.82rem;color:var(--color-text-secondary)}.auth-inline-link{color:var(--color-primary-strong);text-decoration:underline;text-underline-offset:.15rem}.login-submit-button{width:100%;padding:.72rem .8rem;border:none;border-radius:.72rem;background:linear-gradient(145deg,color-mix(in srgb,var(--color-primary-strong) 90%,white),color-mix(in srgb,var(--color-primary-strong) 68%,black));color:#fff;font-size:.97rem;font-weight:700;cursor:pointer;transition:transform .16s ease,filter .16s ease}.login-submit-button:hover{transform:translateY(-1px);filter:brightness(1.03)}.login-submit-button.is-disabled{cursor:not-allowed;opacity:.54;transform:none;filter:none}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(18rem,30rem) minmax(20rem,28rem);gap:clamp(1.25rem,3vw,2rem);justify-content:center;align-content:center;padding:clamp(1rem,4vw,3rem);background:radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--color-accent-soft) 30%,transparent),transparent 58%),radial-gradient(circle at 100% 96%,color-mix(in srgb,var(--color-primary-soft) 22%,transparent),transparent 64%),var(--color-surface-soft)}.auth-value-panel{border:1px solid color-mix(in srgb,var(--color-border) 84%,transparent);border-radius:1.15rem;padding:clamp(1.25rem,2.6vw,2rem);background:linear-gradient(165deg,color-mix(in srgb,var(--color-surface) 94%,transparent),color-mix(in srgb,var(--color-accent-soft) 30%,var(--color-surface)));box-shadow:0 16px 36px color-mix(in srgb,var(--color-shadow) 26%,transparent)}.auth-eyebrow{margin:0;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary-strong);font-weight:700}.auth-value-panel h1{margin:.65rem 0 0;font-size:clamp(1.5rem,2.5vw,2.1rem);line-height:1.2}.auth-value-panel>p{margin:.8rem 0 0;color:var(--color-text-secondary);line-height:1.5;max-width:36ch}.auth-value-list{margin:1rem 0 0;padding-left:1.1rem;display:grid;gap:.45rem;color:var(--color-text-secondary)}.auth-trust-strip{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem}.auth-trust-strip span{border:1px solid color-mix(in srgb,var(--color-border-strong) 66%,transparent);background:color-mix(in srgb,var(--color-surface) 82%,transparent);border-radius:999px;padding:.35rem .65rem;font-size:.76rem;color:var(--color-text-secondary)}.auth-form-shell{width:min(100%,28rem);padding:clamp(1.1rem,2.3vw,1.65rem);border-radius:1rem;border:1px solid color-mix(in srgb,var(--color-border) 88%,transparent)}.auth-form{margin-top:1rem}.register-inline-link{color:var(--color-primary-strong);text-decoration:underline;text-underline-offset:.15rem}.auth-secondary-cta{margin-top:1rem;text-align:center}.auth-secondary-copy{margin:0;color:var(--color-text-secondary);font-size:.88rem}.auth-secondary-link{display:inline-block;margin-top:.4rem;font-weight:700;color:var(--color-primary-strong);text-decoration:none}.auth-secondary-link:hover{text-decoration:underline;text-underline-offset:.16rem}@media(max-width:980px){.auth-page{grid-template-columns:1fr;align-content:start}.auth-value-panel,.auth-form-shell{width:min(100%,34rem);margin-inline:auto}}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;font-weight:400;color:var(--color-text);background-color:var(--color-bg);--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-md: 1.125rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-size-3xl: 2.5rem;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.6;--line-height-relaxed: 1.75;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.5rem;--spacing-2xl: 2rem;--spacing-3xl: 3rem;--radius-xs: .25rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .08);--shadow-sm: 0 4px 12px rgba(15, 23, 42, .12);--shadow-md: 0 12px 30px rgba(31, 31, 33, .12);--chip-bg: var(--color-neutral-pill);--chip-text: var(--color-text-secondary);--chip-border: transparent}[data-color-mode=dark]{color-scheme:dark}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.no-transitions *,.no-transitions *:before,.no-transitions *:after{transition:none!important;animation:none!important}body{margin:0;background-color:var(--color-bg);color:var(--color-text);font-size:var(--font-size-base);line-height:var(--line-height-normal);transition:background-color .2s ease,color .2s ease}h1,h2,h3,h4,h5,h6{margin:0 0 var(--spacing-md) 0;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text)}h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin-bottom:var(--spacing-lg)}h2{font-size:var(--font-size-xl);margin-bottom:var(--spacing-md)}h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}h4{font-size:var(--font-size-md);margin-bottom:var(--spacing-sm)}p{margin:0 0 var(--spacing-lg) 0;line-height:var(--line-height-normal)}.text-xs{font-size:var(--font-size-xs);line-height:var(--line-height-snug)}.text-sm{font-size:var(--font-size-sm);line-height:var(--line-height-snug)}.text-base{font-size:var(--font-size-base);line-height:var(--line-height-normal)}.text-lg{font-size:var(--font-size-lg);line-height:var(--line-height-snug)}.text-xl{font-size:var(--font-size-xl);line-height:var(--line-height-tight)}.text-2xl{font-size:var(--font-size-2xl);line-height:var(--line-height-tight)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.button{appearance:none;border:1px solid var(--control-border);border-radius:var(--radius-sm);background-color:var(--control-bg);color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);padding:var(--spacing-md) var(--spacing-xl);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);cursor:pointer;box-shadow:var(--shadow-xs);transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease;text-decoration:none}.button:hover:not(:disabled){background-color:var(--control-bg-hover);border-color:var(--control-border-strong)}.button:active:not(:disabled){transform:translateY(1px);box-shadow:none}.button:disabled{cursor:not-allowed;opacity:.65;box-shadow:none;color:var(--color-text-disabled)}.button-primary{background-color:var(--color-primary);border-color:var(--color-primary-strong);color:var(--color-primary-text)}.button-primary:hover:not(:disabled){background-color:var(--color-primary-strong);border-color:var(--color-primary-strong)}.button-secondary{background-color:var(--control-bg);border-color:var(--control-border-strong);color:var(--color-text)}.button-secondary:hover:not(:disabled){background-color:var(--control-bg-hover);border-color:var(--control-border-strong)}.button-soft{background-color:var(--color-primary-soft);border-color:transparent;color:var(--color-primary);box-shadow:none}.button-muted{background-color:var(--control-bg-muted);border-color:var(--control-border);color:var(--color-text-secondary)}.button-ghost{background-color:transparent;border-color:transparent;color:var(--color-text-secondary);box-shadow:none}.button-ghost:hover:not(:disabled){background-color:var(--control-bg-hover);border-color:transparent}.button-full-width{width:100%}.button-outline{background-color:transparent;border-color:var(--control-border-strong);box-shadow:none}.button-destructive,.button-danger{background-color:var(--color-danger);border-color:var(--color-danger-strong);color:var(--color-danger-button-text)}.button-destructive:hover:not(:disabled),.button-danger:hover:not(:disabled){background-color:var(--color-danger-strong);border-color:var(--color-danger-strong)}.button-pill{border-radius:var(--radius-pill);padding-inline:.9rem}.button-small{font-size:var(--font-size-xs);padding:var(--spacing-sm) var(--spacing-md)}.button-tonal{--button-tonal-bg: var(--color-surface-muted);--button-tonal-border: var(--control-border);--button-tonal-text: var(--color-text-secondary);background-color:var(--button-tonal-bg);border-color:var(--button-tonal-border);color:var(--button-tonal-text);box-shadow:none}.button-tonal:hover:not(:disabled){background-color:var(--button-tonal-bg-hover, var(--button-tonal-bg));border-color:var(--button-tonal-border-hover, var(--button-tonal-border))}.button-tonal:disabled{background-color:var(--color-surface-muted);border-color:var(--control-border)}.button-tonal-primary{--button-tonal-bg: var(--color-primary-soft);--button-tonal-border: var(--color-primary-strong);--button-tonal-text: var(--color-primary-deep)}.button-tonal-success{--button-tonal-bg: var(--color-success-pill);--button-tonal-bg-hover: var(--color-success-soft);--button-tonal-border: var(--color-success-border);--button-tonal-text: var(--color-success-strong)}.servings-button{min-width:2.5rem;font-size:1.2rem;line-height:1;padding-inline:.6rem}.segmented-control{display:inline-flex;gap:.5rem}.segmented-control--fluid{width:100%;display:flex}.segmented-control--fluid .segmented-button{flex:1}.segmented-button{border-radius:var(--radius-sm);border:1px solid var(--control-border);background-color:var(--color-surface-muted);color:var(--color-text-secondary);font-weight:600;font-size:.875rem;box-shadow:none;padding:var(--spacing-md) var(--spacing-lg)}.segmented-button.is-active{border-color:var(--control-border-strong);background-color:var(--control-bg);color:var(--color-text)}.button-icon{padding:.35rem .5rem;border-radius:var(--radius-pill);gap:.2rem}.input,.select,.textarea{width:100%;border-radius:var(--radius-sm);border:1px solid var(--control-border);background-color:var(--control-bg);color:var(--color-text);padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);line-height:var(--line-height-normal);font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease,color .15s ease;appearance:none}.input::placeholder,.textarea::placeholder{color:var(--control-placeholder)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:none;border-color:var(--control-focus, var(--color-primary));box-shadow:0 0 0 3px var(--control-focus-ring, var(--color-primary-soft))}.select{width:auto;min-width:10rem;padding-right:2.25rem;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.41.59L6 5.17l4.59-4.58L12 2l-6 6-6-6L1.41.59z' fill='currentColor'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center}.select-compact{min-width:unset}.chip{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-pill);background-color:var(--chip-bg, var(--color-neutral-pill));color:var(--chip-text, var(--color-text-secondary));border:1px solid var(--chip-border, transparent);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:.01em;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease}.chip-small{font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-sm)}.chip-medium{font-size:.85rem}.chip-large{font-size:.95rem;padding:.35rem 1rem}.chip-soft{--chip-bg: var(--color-primary-soft);--chip-text: var(--color-primary)}.chip-muted{--chip-bg: var(--color-neutral-pill);--chip-text: var(--color-text-secondary);--chip-border: var(--color-border)}.chip-danger{--chip-bg: var(--color-danger-soft-bg);--chip-text: var(--color-danger-strong);--chip-border: var(--color-danger-border);font-weight:var(--font-weight-semibold)}.chip-warning{--chip-bg: var(--color-warning-bg);--chip-text: var(--color-warning);--chip-border: var(--color-warning-border);font-weight:var(--font-weight-semibold)}.chip-accent{--chip-bg: var(--color-accent-teal-soft);--chip-text: var(--color-accent-teal)}.chip-success{--chip-bg: var(--color-success-pill);--chip-text: var(--color-success-strong);--chip-border: var(--color-success-border)}.chip-colored{color:var(--color-text-inverted);border-color:transparent}.chip-clickable{cursor:pointer}.chip-clickable:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.panel{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.1rem;box-shadow:var(--shadow-xs)}.panel-soft{background-color:var(--color-surface-soft);box-shadow:none}.panel-muted{background-color:var(--color-bg-alt)}.form-field{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-field-inline{flex-direction:row;align-items:center}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-xs)}.label{display:inline-flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.checkbox{width:1rem;height:1rem;margin:.15rem 0 0;flex-shrink:0;accent-color:var(--color-primary);cursor:pointer}.checkbox:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.preferences-page{max-width:1120px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-3xl)}.preferences-header{margin-bottom:var(--spacing-xl)}.preferences-header h1{margin:0}.preferences-eyebrow{margin:0 0 var(--spacing-xs) 0;text-transform:uppercase;letter-spacing:.1em;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-subtle)}.preferences-intro{margin:var(--spacing-sm) 0 0 0;max-width:48rem;color:var(--color-text-secondary)}.preferences-message-wrap{margin-bottom:var(--spacing-md)}.preferences-success-banner{margin-bottom:var(--spacing-md);border:1px solid var(--color-success-border);background:var(--color-success-pill);color:var(--color-success-strong);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.preferences-summary{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.preferences-summary-title{margin:0 0 var(--spacing-sm) 0;text-transform:uppercase;letter-spacing:.08em;font-size:var(--font-size-xs);color:var(--color-text-subtle);font-weight:var(--font-weight-semibold)}.preferences-summary-chips{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.preferences-save-semantics{margin-bottom:var(--spacing-lg);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface-soft);padding:var(--spacing-md) var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap}.preferences-save-semantics-title{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.preferences-layout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-lg)}.preferences-column{display:flex;flex-direction:column;gap:var(--spacing-lg)}.preferences-card{gap:var(--spacing-lg)}.preferences-card-secondary{background:var(--color-surface-soft)}.preferences-card-header{display:flex;flex-direction:column;gap:var(--spacing-xs)}.preferences-card-header .card-title{margin:0}.preferences-card-header .card-description{margin:0;color:var(--color-text-secondary)}.preferences-card-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.preferences-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.preferences-group-header h3{margin:0;font-size:var(--font-size-base)}.preferences-group-header p{margin:var(--spacing-xs) 0 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.preferences-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-sm)}.preferences-option-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr))}.preferences-checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-sm)}.preferences-checkbox-row{display:flex;align-items:center;gap:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-alt);padding:var(--spacing-sm);min-height:2.65rem}.preferences-option-card{display:flex;align-items:flex-start;gap:var(--spacing-sm);min-height:5.25rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-alt);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.preferences-option-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-xs)}.preferences-option-card:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-soft)}.preferences-option-card-compact{min-height:2.85rem;align-items:center}.preferences-option-text{display:flex;flex-direction:column;gap:var(--spacing-xs);min-width:0}.preferences-option-title{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:var(--line-height-snug);overflow-wrap:anywhere}.preferences-option-hint{display:block;font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:var(--line-height-snug);overflow-wrap:anywhere}.preferences-restriction-row,.preferences-invite-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--spacing-sm);align-items:center}.preferences-chip-row{margin-top:var(--spacing-sm);display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.preferences-muted-copy{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.preferences-muted-label{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.preferences-field-block{display:flex;flex-direction:column;gap:var(--spacing-sm)}.preferences-field-block .select{width:100%}.preferences-save-row{border-top:1px solid var(--color-border);padding-top:var(--spacing-md);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);flex-wrap:wrap}.preferences-save-row p{margin:0;color:var(--color-text-subtle);font-size:var(--font-size-xs);max-width:34rem}.preferences-access-panel{border:1px solid var(--color-info-border);background:var(--color-info-bg);border-radius:var(--radius-md);padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.preferences-access-panel h3{margin:0;font-size:var(--font-size-sm)}.preferences-access-panel p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.preferences-support-region{display:flex;flex-direction:column;gap:var(--spacing-sm)}.preferences-account-card{border-color:var(--color-border-subtle)}.preferences-account-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md)}.preferences-access-panel-compact{padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-xs)}.preferences-success-inline{border:1px solid var(--color-success-border);background:var(--color-success-pill);color:var(--color-success-strong);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md)}.preferences-error-inline{border:1px solid var(--color-danger-border);background:var(--color-danger-soft-bg);color:var(--color-danger-strong);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md)}.preferences-bottom-save{margin-top:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:var(--spacing-md) var(--spacing-lg);display:flex;justify-content:space-between;gap:var(--spacing-md);align-items:center;flex-wrap:wrap}.preferences-bottom-save p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);max-width:44rem}.preferences-loading-row{display:flex;justify-content:center;padding:var(--spacing-sm) 0}.location-management{display:flex;flex-direction:column}.location-management--compact{gap:var(--spacing-md)}.location-summary-shell{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md)}.location-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-sm) var(--spacing-md);width:100%}.location-summary-item{display:flex;flex-direction:column;gap:.1rem}.location-summary-label{font-size:var(--font-size-xs);color:var(--color-text-subtle);letter-spacing:.04em;text-transform:uppercase}.location-summary-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.location-store-card .card-content{padding-top:var(--spacing-sm)}.location-store-row{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:.65rem .75rem;background:var(--color-surface)}.location-store-main{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-sm)}.location-store-meta{margin:.2rem 0 0;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.location-store-actions{margin-top:var(--spacing-xs);display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.location-remove-action{color:var(--color-danger)}.location-bulk-actions{margin-top:var(--spacing-sm);display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.location-select-none{color:var(--color-danger)}.week-nav-rail{margin-bottom:var(--spacing-sm);padding:.55rem .7rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface)}.week-nav-main{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--spacing-sm)}.week-nav-controls{display:inline-flex;align-items:center;gap:.3rem}.week-nav-range{text-align:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.week-nav-jump{display:inline-flex;align-items:center;gap:.4rem}.week-nav-jump-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap}.meal-calendar-progress-rail{margin-top:.55rem;padding:.55rem .7rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);flex-wrap:wrap}.meal-calendar-progress-copy{display:flex;flex-direction:column;gap:.1rem}.meal-calendar-progress-label{margin:0;text-transform:uppercase;letter-spacing:.04em;font-size:var(--font-size-xs);color:var(--color-text-subtle)}.meal-calendar-progress-title{margin:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.meal-calendar-progress-meta{margin:0;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.meal-calendar-progress-badge{padding:.22rem .5rem;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border:1px solid var(--color-border-subtle);color:var(--color-text-secondary);background:var(--color-bg-soft)}.meal-calendar-progress-badge[data-progress-state=partial]{border-color:var(--color-info-border);background:var(--color-info-bg);color:var(--color-info-text)}.meal-calendar-progress-badge[data-progress-state=complete]{border-color:var(--color-success-border);background:var(--color-success-pill);color:var(--color-success-text)}.meal-calendar-grid{grid-template-columns:minmax(9rem,10.5rem) repeat(4,minmax(10rem,1fr))}@media(max-width:960px){.preferences-layout-grid,.preferences-option-grid,.preferences-checkbox-grid{grid-template-columns:minmax(0,1fr)}.preferences-save-semantics{align-items:flex-start}.location-summary-shell{flex-direction:column}.location-summary-grid{grid-template-columns:minmax(0,1fr)}.week-nav-main{grid-template-columns:minmax(0,1fr);gap:.45rem}.week-nav-controls{justify-content:space-between}.week-nav-range{text-align:left}.week-nav-jump{justify-content:flex-start;flex-wrap:wrap}.meal-calendar-progress-rail{align-items:flex-start}.meal-calendar-grid{grid-template-columns:minmax(8rem,9rem) repeat(4,minmax(8.5rem,1fr))}}.control-stack{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.scroll-panel{max-height:220px;overflow-y:auto;padding:.5rem;border:1px solid var(--control-border);border-radius:var(--radius-sm);background-color:var(--control-bg)}.checkbox-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .25rem;font-size:.9rem}.checkbox-row input[type=checkbox]{accent-color:var(--color-primary)}.input-compact{width:90px}.page-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.page-actions{display:flex;flex-wrap:wrap;gap:.5rem}.search-bar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1.5rem}.search-bar .input{flex:1 1 240px;max-width:420px}.search-bar .search-bar-size{margin-left:auto}.filters-container{margin-bottom:1.5rem}.filters-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}.filters-panel,.filters-scroll{margin-top:.5rem}.filters-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}.filters-section-title{font-size:.875rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text-secondary)}.filters-helper-text{margin-top:0;margin-bottom:.5rem;color:var(--color-text-subtle);font-size:.8rem}.filters-servings{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.filters-servings .control-stack{gap:1rem}.filters-servings-field{max-width:160px}.pagination{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center}.pagination-controls{display:flex;align-items:center;gap:.5rem}.text-muted{color:var(--color-text-subtle)}.eyebrow{text-transform:uppercase;font-size:.72rem;letter-spacing:.12em;color:var(--color-text-subtle);margin-bottom:.35rem}.theme-lab{display:flex;flex-direction:column;gap:1.5rem}.theme-lab-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:flex-start}.theme-lab-current{background-color:var(--color-surface);border-radius:var(--radius-md);padding:.75rem 1rem;min-width:180px;box-shadow:var(--shadow-xs)}.theme-lab-panel{padding:1.5rem}.theme-lab-grid{display:grid;grid-template-columns:minmax(280px,1.15fr) minmax(260px,.85fr);gap:2rem}@media(max-width:960px){.theme-lab-grid{grid-template-columns:1fr}}.theme-lab-controls{display:flex;flex-direction:column;gap:1rem}.theme-token-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-top:.5rem}.theme-token-field{background-color:var(--color-surface);border-radius:var(--radius-md);padding:.75rem;border:1px solid var(--color-border)}.theme-token-input{display:flex;align-items:center;gap:.5rem;margin-top:.35rem}.theme-token-input input[type=color]{width:42px;height:34px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;padding:0}.theme-token-helper{font-size:.75rem;color:var(--color-text-subtle);margin:.35rem 0 0}.theme-token-value{font-size:.8rem;color:var(--color-text-secondary);font-family:JetBrains Mono,Fira Mono,monospace}.theme-lab-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}.theme-lab-preview{background:var(--color-surface);border-radius:var(--radius-lg);padding:1.25rem;border:1px solid var(--color-border);min-height:100%}.theme-preview-card{background-color:var(--color-bg-alt);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:.9rem;color:var(--color-text)}.theme-preview-card h2{margin:0}.theme-preview-card p{margin:0;color:var(--color-text-secondary)}.theme-preview-tags{display:flex;flex-wrap:wrap;gap:.35rem}.theme-lab-panel-header{margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.theme-lab-presets{display:flex;flex-direction:column;gap:1rem}.theme-preset-card{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-neutral-card)}.theme-preset-card p{margin:.35rem 0 0}.theme-preset-meta{font-size:.75rem;color:var(--color-text-subtle)}.theme-preset-actions{display:flex;gap:.5rem;align-items:flex-start}.app-root{min-height:100vh;display:flex;flex-direction:column;background-color:var(--color-bg);transition:background-color .2s ease}.app-header{background:var(--color-header-bg);color:var(--color-header-text);padding:.75rem 1.5rem;border-bottom:1px solid var(--color-border-subtle);transition:background-color .2s ease,border-color .2s ease;position:relative;z-index:1001}.app-header-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}.app-logo{color:var(--color-header-text);text-decoration:none;font-weight:600;font-size:1.1rem}.app-nav{display:flex;flex-wrap:wrap;align-items:center}.app-nav-link{color:var(--color-nav-link);text-decoration:none;margin-left:1rem;font-size:.95rem;padding-bottom:.15rem;transition:color .15s ease,border-color .15s ease}.app-nav-link:hover,.app-nav-link:focus-visible{color:var(--color-nav-link-active)}.app-nav-link-active{color:var(--color-nav-link-active);border-bottom:2px solid var(--color-nav-accent)}.app-header-actions{margin-left:auto;display:flex;align-items:center;gap:.75rem}.app-header-user{font-size:.875rem;color:var(--color-text-subtle)}.theme-selector{display:inline-flex;align-items:center;gap:.4rem}.theme-selector-name{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-subtle)}.theme-selector .select{min-width:7.5rem}.app-main{flex:1;max-width:1024px;margin:var(--spacing-2xl) auto;padding:0 var(--spacing-xl) var(--spacing-3xl);width:100%;color:var(--color-text)}@media(max-width:768px){.app-main{margin:var(--spacing-lg) auto;padding:0 var(--spacing-lg) var(--spacing-2xl)}}.page{width:100%}.page-centered{text-align:center;margin-top:3rem}.recipes-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--spacing-lg);margin-bottom:1.5rem}.recipes-discovery-hero{margin-bottom:var(--spacing-lg)}.recipes-discovery-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.recipes-quick-picks{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center}.allergen-option:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.recipes-title{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text)}.recipes-search{width:100%;margin-bottom:var(--spacing-lg);padding:var(--spacing-sm) 0}.recipes-search .recipes-search-meta{margin-left:auto;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.recipes-search .button-small{white-space:nowrap}.recipes-search .input{min-width:min(380px,100%)}.recipes-search input,.recipes-search select,.recipes-search button,.recipes-search .recipes-search-control{border-radius:.5rem;border:1px solid var(--color-border-strong);background-color:var(--color-surface);color:var(--color-text)}.recipes-search input{width:100%;padding:.5rem .75rem;font-size:.95rem;transition:border-color .15s ease}.recipes-search input:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media(max-width:768px){.recipes-search .recipes-search-meta{margin-left:0;width:100%}.recipes-discovery-actions,.recipes-discovery-actions .button{width:100%}.recipes-quick-picks .button{flex:1 1 auto}}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:.6rem;border:1px solid var(--color-border);transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}.card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}.card-title{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:var(--line-height-snug)}.card-description{font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin:0}.card-footer{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--color-text-subtle)}.card-link{text-decoration:none;color:inherit}.tag-list,.allergen-list,.card-allergens,.card-tags{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-top:.75rem}.card-rating{display:flex;align-items:center;gap:.35rem;margin-top:.75rem}.card-rating-count{font-size:.75rem;color:var(--color-text-subtle)}.card-servings strong{font-size:.85rem;color:var(--color-text)}.recipe-card-shell{gap:var(--spacing-sm)}.recipe-card-image{margin-bottom:var(--spacing-sm)}.recipe-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm)}.recipe-card-title-link{text-decoration:none;color:inherit;flex:1}.recipe-card-header-actions{display:inline-flex;align-items:center;gap:var(--spacing-xs)}.recipe-card-description{margin:0;color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-card-utility-row{display:flex;align-items:center;gap:var(--spacing-sm) var(--spacing-md);flex-wrap:wrap;margin-top:0}.recipe-card-utility-pill{font-size:var(--font-size-sm);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:999px;padding:.2rem .55rem;background:var(--color-surface-soft)}.recipe-card-fact-price strong{color:var(--color-text)}.recipe-card-fact-muted{color:var(--color-text-muted)}.recipe-card-cta-row{margin-top:var(--spacing-xs);display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center}.recipe-card-support-line{margin:0;font-size:var(--font-size-xs);color:var(--color-text-muted)}.recipe-detail-page{max-width:1100px}.recipe-detail-section{display:grid;gap:var(--spacing-sm)}.recipe-detail-section>h2,.recipe-detail-section>h3{margin-bottom:0}.recipe-detail-page details{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-soft);padding:var(--spacing-sm) var(--spacing-md)}.recipe-detail-page details>summary{font-weight:var(--font-weight-medium)}.recipe-detail-page .list li{line-height:var(--line-height-relaxed)}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .5rem;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary);font-size:.75rem;border:1px solid transparent}.time-summary{font-size:.8rem;color:var(--color-text-muted)}.list{list-style:none;padding:0;margin:var(--spacing-md) 0 var(--spacing-xl)}.list li{margin-bottom:var(--spacing-sm);line-height:var(--line-height-relaxed)}ul,ol{margin:var(--spacing-md) 0 var(--spacing-xl);padding-left:var(--spacing-xl)}ul li,ol li{margin-bottom:var(--spacing-sm);line-height:var(--line-height-relaxed)}.section{margin-top:1.4rem;margin-bottom:1.4rem}.section h2{margin-bottom:var(--spacing-lg);color:var(--color-text);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-border)}.loading{display:inline-flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-base);color:var(--color-text-secondary)}.loading-shell{width:100%;justify-content:center;min-height:8rem;padding:var(--spacing-xl);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface-soft)}.loading-spinner-glyph{display:inline-block;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .9s linear infinite}.error{font-size:var(--font-size-base);color:var(--color-danger)}.sr-only{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.button:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 4px var(--control-focus-ring)}.chip:focus-visible,.chip-clickable:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.segmented-button:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;z-index:1}a:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-xs)}.card-link:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-md)}.skip-to-main:focus{position:absolute;left:0;top:0;z-index:999}@media(max-width:768px){.button,.chip-clickable,.segmented-button{min-height:44px;min-width:44px;padding:var(--spacing-md) var(--spacing-lg)}.button-small{min-height:40px;padding:var(--spacing-sm) var(--spacing-md)}.page-actions{gap:var(--spacing-md)}.control-stack{gap:var(--spacing-lg)}}@media(prefers-contrast:high){.badge{border:2px solid currentColor}.allergen-badge{border:2px solid var(--color-danger-strong)!important}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.modal-backdrop{position:fixed;inset:0;background-color:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;isolation:isolate}.modal-content{background-color:var(--color-bg-alt);color:var(--color-text);padding:2rem;border-radius:var(--radius-md);box-shadow:0 20px 60px #0000004d,0 0 0 1px #0000001a;max-width:90vw;max-height:90vh;overflow:auto;position:relative;z-index:1001;pointer-events:auto}body.modal-open{overflow:hidden;padding-right:var(--scrollbar-width, 0)}.card-shadow-sm{box-shadow:var(--shadow-xs)}.card-shadow{box-shadow:var(--shadow-sm)}.card-shadow-lg{box-shadow:var(--shadow-md)}@media(max-width:768px){.calendar-grid{display:flex!important;flex-direction:column!important;gap:var(--spacing-md)!important}.calendar-grid>div[style*="display: contents"]{display:flex!important;flex-direction:column!important;gap:var(--spacing-sm)!important;padding:var(--spacing-md);background-color:var(--color-surface);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}}@media(max-width:768px){.form-field{gap:var(--spacing-md)}.form-label{font-size:var(--font-size-base)}.input,.select,.textarea{font-size:16px;padding:var(--spacing-lg)}}@media(max-width:640px){.app-header{padding:.5rem 1rem}.app-header-inner{flex-wrap:wrap;gap:.5rem}.app-logo{font-size:1rem}.app-nav{width:100%;flex-direction:column;align-items:stretch;gap:.25rem}.app-nav-link{margin-left:0;padding:.5rem;text-align:center;border-bottom:none;border-radius:var(--radius-sm);background-color:var(--color-surface-muted)}.app-nav-link-active{background-color:var(--color-primary-soft);border-bottom:none}.app-header-actions{width:100%;justify-content:space-between;margin-left:0}.app-main{padding:0 var(--spacing-md) var(--spacing-lg);margin:var(--spacing-md) auto}.page-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md)}.recipes-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.recipes-title{font-size:var(--font-size-xl)}.page-actions{width:100%;flex-direction:column;gap:var(--spacing-sm)}.page-actions .button{width:100%;justify-content:center}.search-bar{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.search-bar .input{flex:1 1 auto;max-width:none;width:100%}.search-bar .search-bar-size{margin-left:0;width:100%}.search-bar .button{width:100%}.select,.select-compact{min-width:unset;width:100%}.filters-toolbar{flex-direction:column;align-items:stretch}.filters-toolbar .button{width:100%}.filters-columns,.recipes-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.card{padding:var(--spacing-lg)}.card-title{font-size:var(--font-size-base)}.panel{padding:var(--spacing-lg)}.control-stack{flex-direction:column;align-items:stretch;width:100%}.control-stack .button,.control-stack .select{width:100%}.segmented-control{flex-direction:column;width:100%}.segmented-button{width:100%;text-align:center}h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-lg)}h3{font-size:var(--font-size-md)}.pagination{flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-md)}.pagination-controls{width:100%;justify-content:center;flex-wrap:wrap}}@media(max-width:640px){.modal-content{width:100vw;max-width:100vw;max-height:100vh;min-height:100vh;margin:0;border-radius:0;padding:var(--spacing-lg);overflow-y:auto;-webkit-overflow-scrolling:touch;padding-top:max(var(--spacing-lg),env(safe-area-inset-top));padding-bottom:max(var(--spacing-lg),env(safe-area-inset-bottom));padding-left:max(var(--spacing-lg),env(safe-area-inset-left));padding-right:max(var(--spacing-lg),env(safe-area-inset-right))}.modal-content h2,.modal-content h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-md)}.modal-content form{display:flex;flex-direction:column;gap:var(--spacing-lg);padding-bottom:60vh}.modal-content .button-full-width{position:sticky;bottom:var(--spacing-md);z-index:10;box-shadow:0 -4px 12px #00000026}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.weekly-specials-card{border:1px solid var(--color-border);margin-bottom:var(--spacing-md)}.weekly-specials-card .card-title{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-xs)}.weekly-specials-card .offers-preview{margin-bottom:var(--spacing-md)}.weekly-specials-card .offer-list{list-style:none;padding:0;margin:0}.weekly-specials-card .offer-item{display:flex;justify-content:space-between;align-items:baseline;padding:var(--spacing-xs) 0;border-bottom:1px solid var(--color-border-light)}.weekly-specials-card .offer-item:last-child{border-bottom:none}.weekly-specials-card .offer-title{flex:1;font-size:var(--font-size-base)}.weekly-specials-card .offer-price{font-weight:600;color:var(--color-primary);margin-left:var(--spacing-md);white-space:nowrap}.weekly-specials-card .more-offers-text{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic}.weekly-specials-card .disclaimers{margin-top:var(--spacing-md);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border-light)}.weekly-specials-card .disclaimer-text{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.weekly-specials-card .view-all-link{display:inline-block;color:var(--color-primary);font-weight:600;text-decoration:none}.weekly-specials-card .view-all-link:hover{text-decoration:underline}
