:root{--bg-canvas:#faf8f5;--bg-surface:#fff;--bg-subtle:#f3efea;--bg-subtle-hover:#ece7e0;--text-main:#18181b;--text-secondary:#52525b;--text-muted:#827e77;--text-inverted:#fff;--accent-primary:#c2410c;--accent-subtle:#fff7ed;--ink-primary:#18181b;--ink-hover:#27272a;--status-success:#15803d;--status-success-bg:#f0fdf4;--status-danger:#b91c1c;--status-warning:#b45309;--border-hairline:#e8e3da;--border-subtle:#ddd7cd;--border-strong:#18181b;--radius-xs:3px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;--shadow-subtle:0 1px 3px #18181b0a;--shadow-dropdown:0 8px 24px #18181b14;--content-max-width:640px;--header-height:54px;--ease-snappy:cubic-bezier(.16, 1, .3, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--duration-fast:.16s;--duration-normal:.24s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-canvas);min-height:100%;color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Be Vietnam Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;overflow-x:hidden}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none}input{font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none;outline:none}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-main-content{width:100%;max-width:var(--content-max-width);flex:1;margin:0 auto;padding:24px 20px 60px}@media (width<=480px){.app-main-content{padding:18px 16px 48px}}.masthead-header{width:100%;max-width:var(--content-max-width);border-bottom:1px solid var(--border-hairline);margin:0 auto;padding:16px 20px 10px}@media (width<=480px){.masthead-header{padding:14px 16px 8px}}.masthead-top-row{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.masthead-title-btn{text-align:left;align-items:baseline;gap:6px;display:inline-flex}.masthead-title{letter-spacing:.08em;color:var(--text-main);text-transform:uppercase;font-size:15px;font-weight:900}.masthead-dot{color:var(--border-subtle);font-weight:400}.masthead-tagline{color:var(--text-muted);font-size:13px;font-weight:500}.masthead-account-block{color:var(--text-secondary);font-size:12px}.masthead-guest-meta,.masthead-user-meta{align-items:center;gap:6px;display:flex}.guest-state-label{color:var(--text-muted)}.user-email-text{white-space:nowrap;text-overflow:ellipsis;max-width:130px;color:var(--text-secondary);overflow:hidden}.meta-sep{color:var(--border-subtle)}.masthead-auth-link{color:var(--text-main);text-underline-offset:3px;transition:opacity var(--duration-fast) ease;font-size:12px;font-weight:600;text-decoration:underline}.masthead-auth-link:hover{opacity:.7}.masthead-nav-row{align-items:center;gap:20px;padding-top:2px;display:flex}.nav-tab-item{color:var(--text-muted);transition:color var(--duration-fast) ease;padding:4px 0 8px;font-size:13px;font-weight:500;position:relative}.nav-tab-item:hover{color:var(--text-main)}.nav-tab-item.is-active{color:var(--text-main);font-weight:700}.nav-tab-item.is-active:after{content:"";background-color:var(--ink-primary);height:2px;position:absolute;bottom:-1px;left:0;right:0}.editorial-guest-notice{background:var(--bg-subtle);border:1px solid var(--border-hairline);border-radius:var(--radius-sm);color:var(--text-secondary);justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px;padding:8px 12px;font-size:12px;display:flex}.guest-notice-link{color:var(--text-main);white-space:nowrap;text-underline-offset:2px;font-weight:700;text-decoration:underline}.editorial-meta-line{color:var(--text-muted);text-transform:capitalize;align-items:baseline;gap:8px;margin-bottom:16px;font-size:12px;display:flex}.editorial-meta-sep{color:var(--border-subtle)}.editorial-meal-target{color:var(--text-secondary);font-weight:600}.editorial-hero-block{margin-bottom:28px}.hero-context-line{letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:700;display:flex}.hero-context-tag{color:var(--accent-primary)}.hero-history-tag{color:var(--text-muted)}.hero-presentation-body{transition:opacity var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-snappy)}.hero-presentation-body.is-exiting{opacity:.2;transform:translateY(3px)}.hero-presentation-body.is-entering{opacity:1;transform:translateY(0)}.dish-heading-row{align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.dish-main-title{letter-spacing:-.025em;color:var(--text-main);font-size:32px;font-weight:900;line-height:1.15}@media (width>=600px){.dish-main-title{font-size:38px}}.dish-emoji-inline{flex-shrink:0;font-size:24px}.dish-metadata-line{color:var(--text-secondary);margin-bottom:8px;font-size:13.5px;line-height:1.5}.dish-curator-note{color:var(--text-muted);margin-bottom:20px;font-size:13px;line-height:1.45}.hero-decision-bar{align-items:center;gap:10px;display:flex}.btn-commit-ink{background-color:var(--ink-primary);height:48px;color:var(--text-inverted);border-radius:var(--radius-sm);transition:background-color var(--duration-fast) ease, transform var(--duration-fast) var(--ease-snappy);justify-content:center;align-items:center;gap:8px;padding:0 24px;font-size:14px;font-weight:700;display:inline-flex}.btn-commit-ink:hover:not(:disabled){background-color:var(--ink-hover)}.btn-commit-ink:active:not(:disabled){transform:scale(.98)}.btn-commit-ink:disabled{opacity:.6;cursor:wait}.btn-swap-quiet{height:48px;color:var(--text-main);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:all var(--duration-fast) ease;background-color:#0000;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:13.5px;font-weight:600;display:inline-flex}.btn-swap-quiet:hover{background-color:var(--bg-subtle);border-color:var(--border-strong)}.btn-swap-quiet:active{transform:scale(.98)}.swap-badge{border-radius:var(--radius-xs);background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border-hairline);padding:1px 5px;font-size:11px}.editorial-divider{background-color:var(--border-hairline);height:1px;margin:24px 0 20px}.editorial-category-control{margin-bottom:14px;position:relative}.category-trigger-row{align-items:center;gap:8px;display:flex}.btn-category-trigger{color:var(--text-secondary);transition:color var(--duration-fast) ease;align-items:center;gap:6px;padding:6px 10px 6px 0;font-size:13px;display:inline-flex}.btn-category-trigger:hover{color:var(--text-main)}.trigger-prefix{color:var(--text-muted)}.trigger-value{color:var(--text-main);text-underline-offset:3px;font-weight:700;text-decoration:underline}.btn-category-trigger.has-filter .trigger-value{color:var(--accent-primary)}.trigger-chevron{transition:transform var(--duration-fast) var(--ease-snappy);color:var(--text-muted)}.trigger-chevron.is-open{transform:rotate(180deg)}.btn-clear-category{color:var(--status-danger);border-radius:var(--radius-xs);transition:background var(--duration-fast) ease;background:#fef2f2;align-items:center;gap:4px;padding:3px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.btn-clear-category:hover{background:#fee2e2}.category-dropdown-panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:280px;max-width:90vw;box-shadow:var(--shadow-dropdown);z-index:50;padding:4px;position:absolute;top:calc(100% + 4px);left:0}.category-option-row{width:100%;color:var(--text-secondary);border-radius:var(--radius-xs);text-align:left;transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease;justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;display:flex}.category-option-row:hover{background-color:var(--bg-subtle);color:var(--text-main)}.category-option-row.is-selected{color:var(--text-main);background-color:var(--bg-subtle);font-weight:700}.option-check{color:var(--text-main)}.editorial-intents-row{flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;display:flex}.intents-label{color:var(--text-muted);flex-shrink:0;font-size:12.5px}.intents-button-list{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.btn-intent-tag{color:var(--text-secondary);border-radius:var(--radius-xs);transition:all var(--duration-fast) ease;border:1px solid #0000;padding:4px 8px;font-size:12.5px}.btn-intent-tag:hover{color:var(--text-main);background-color:var(--bg-subtle)}.btn-intent-tag.is-active{color:var(--text-main);background-color:var(--bg-subtle);border-color:var(--border-subtle);font-weight:700}.intents-sep{color:var(--border-subtle);font-size:11px}.btn-intent-random{color:var(--text-secondary);border-radius:var(--radius-xs);transition:all var(--duration-fast) ease;padding:4px 8px;font-size:12.5px;font-weight:600}.btn-intent-random:hover{color:var(--text-main);background-color:var(--bg-subtle)}.editorial-committed-block{padding:24px 0}.committed-status-header{letter-spacing:.08em;color:var(--status-success);align-items:center;gap:6px;margin-bottom:10px;font-size:12px;font-weight:800;display:flex}.committed-check-icon{justify-content:center;align-items:center;display:flex}.committed-dish-title{letter-spacing:-.025em;color:var(--text-main);margin-bottom:8px;font-size:34px;font-weight:900}.committed-note{color:var(--text-secondary);margin-bottom:20px;font-size:14px}.btn-undo-quiet{color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:all var(--duration-fast) ease;background:0 0;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.btn-undo-quiet:hover{background:var(--bg-subtle);color:var(--text-main);border-color:var(--border-strong)}.view-page-container{padding-top:8px}.page-header{margin-bottom:20px}.page-title{letter-spacing:-.02em;color:var(--text-main);margin-bottom:4px;font-size:24px;font-weight:800}.page-subtitle{color:var(--text-muted);font-size:13.5px}.dishes-search-row{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;display:flex}.dishes-search-input{color:var(--text-main);flex:1;font-size:13.5px}.dishes-search-input::placeholder{color:var(--text-muted)}.dishes-cat-filter{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.dishes-cat-btn{color:var(--text-secondary);border-radius:var(--radius-xs);transition:all var(--duration-fast) ease;border:1px solid #0000;padding:4px 8px;font-size:12.5px}.dishes-cat-btn:hover{color:var(--text-main);background-color:var(--bg-subtle)}.dishes-cat-btn.is-active{color:var(--text-main);background-color:var(--bg-subtle);border-color:var(--border-subtle);font-weight:700}.dishes-editorial-list{flex-direction:column;display:flex}.dish-editorial-row{border-bottom:1px solid var(--border-hairline);justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;display:flex}.dish-row-info{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.dish-row-name{color:var(--text-main);font-size:15px;font-weight:700}.dish-row-meta{color:var(--text-muted);font-size:12.5px}.dish-row-price{color:var(--text-secondary);white-space:nowrap;font-size:13px;font-weight:600}.stats-editorial-grid{border-top:1px solid var(--border-hairline);border-bottom:1px solid var(--border-hairline);grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;padding:20px 0;display:grid}@media (width<=480px){.stats-editorial-grid{grid-template-columns:1fr;gap:12px}}.stat-item{flex-direction:column;gap:4px;display:flex}.stat-number{color:var(--text-main);font-size:28px;font-weight:900;line-height:1}.stat-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px}.stats-breakdown-section{padding-top:8px}.breakdown-list{flex-direction:column;gap:12px;display:flex}.breakdown-row{flex-direction:column;gap:4px;display:flex}.breakdown-label-line{justify-content:space-between;font-size:13px;display:flex}.breakdown-cat{color:var(--text-main);font-weight:600}.breakdown-val{color:var(--text-muted);font-size:12px}.breakdown-bar-track{background:var(--bg-subtle);border-radius:2px;height:4px;overflow:hidden}.breakdown-bar-fill{background:var(--ink-primary);height:100%;transition:width var(--duration-normal) var(--ease-snappy);border-radius:2px}.history-editorial-list{flex-direction:column;display:flex}.history-item-row{border-bottom:1px solid var(--border-hairline);justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;display:flex}.history-item-date{color:var(--text-muted);min-width:80px;font-size:12px}.history-item-name{color:var(--text-main);flex:1;font-size:14.5px;font-weight:700}.history-item-meal{color:var(--text-secondary);font-size:12px}.btn-history-remove{color:var(--text-muted);transition:color var(--duration-fast) ease;padding:2px 6px;font-size:12px}.btn-history-remove:hover{color:var(--status-danger)}.auth-editorial-shell{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px 20px;display:flex}.auth-editorial-box{width:100%;max-width:360px}.auth-masthead{margin-bottom:24px}.auth-brand-eyebrow{letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;margin-bottom:4px;font-size:12px;font-weight:800}.auth-title{color:var(--text-main);font-size:28px;font-weight:900;line-height:1.2}.auth-mode-switch{border-bottom:1px solid var(--border-hairline);gap:16px;margin-bottom:20px;display:flex}.auth-tab-link{color:var(--text-muted);transition:color var(--duration-fast) ease;padding-bottom:8px;font-size:13.5px;font-weight:500;position:relative}.auth-tab-link.is-active{color:var(--text-main);font-weight:700}.auth-tab-link.is-active:after{content:"";background-color:var(--ink-primary);height:2px;position:absolute;bottom:-1px;left:0;right:0}.auth-form-block{flex-direction:column;gap:14px;display:flex}.auth-input-group{flex-direction:column;gap:4px;display:flex}.auth-label{color:var(--text-secondary);font-size:12px;font-weight:600}.auth-text-field{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-surface);height:44px;color:var(--text-main);transition:border-color var(--duration-fast) ease;padding:0 12px;font-size:14px}.auth-text-field:focus{border-color:var(--ink-primary)}.btn-auth-primary{background:var(--ink-primary);height:46px;color:var(--text-inverted);border-radius:var(--radius-sm);transition:background var(--duration-fast) ease;justify-content:center;align-items:center;margin-top:6px;font-size:14px;font-weight:700;display:flex}.btn-auth-primary:hover:not(:disabled){background:var(--ink-hover)}.auth-separator{color:var(--text-muted);align-items:center;gap:10px;margin:20px 0;font-size:12px;display:flex}.auth-separator:before,.auth-separator:after{content:"";background:var(--border-hairline);flex:1;height:1px}.btn-guest-direct{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;height:46px;color:var(--text-main);transition:all var(--duration-fast) ease;background:0 0;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.btn-guest-direct:hover{background:var(--bg-subtle);border-color:var(--border-strong)}.auth-alert-message{border-radius:var(--radius-xs);padding:8px 12px;font-size:12px}.auth-alert-message.error{color:var(--status-danger);background:#fef2f2;border:1px solid #fee2e2}.auth-alert-message.success{color:var(--status-success);background:#f0fdf4;border:1px solid #dcfce7}.editorial-loading-shell{min-height:100vh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex}.quiet-spinner{border:2px solid var(--border-subtle);border-top-color:var(--ink-primary);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.editorial-empty-state{padding:32px 0}.empty-message{color:var(--text-muted);font-size:14px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
