@font-face{font-family:MavenPro;src:url(/assets/MavenPro-Regular-DIbU2SAh.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:MavenPro;src:url(/assets/MavenPro-Medium-DBQLODJt.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:MavenPro;src:url(/assets/MavenPro-SemiBold-BScGaohq.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}:root{--bg-canvas: #f7f6f3;--bg-surface: #ffffff;--bg-subtle: #f2f1ee;--bg-hover: #eeede9;--border: #e8e6e1;--border-strong:#d4d1ca;--text-primary: #1a1916;--text-secondary: #6b6860;--text-muted: #a09e99;--text-placeholder:#bfbdb7;--accent: #4a7c59;--accent-light:#eef4f0;--accent-mid: #c8ddd0;--accent-text: #2d5940;--red: #d94f4f;--red-light: #fdf1f1;--yellow-light: #fdf6e8;--yellow-border:#eddfc0;--plate-ring-1: #f0ede8;--plate-ring-2: #e8e4de;--plate-ring-3: #dedad3;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full:9999px;--shadow-sm: 0 1px 4px rgba(0,0,0,.06), 0 0 0 1px rgba(0,0,0,.03);--shadow-md: 0 4px 16px rgba(0,0,0,.07), 0 0 0 1px rgba(0,0,0,.03);--shadow-lg: 0 12px 40px rgba(0,0,0,.1), 0 0 0 1px rgba(0,0,0,.04);--shadow-plate: 0 2px 0 var(--plate-ring-3), 0 4px 0 var(--plate-ring-2), 0 6px 0 var(--plate-ring-1), 0 10px 40px rgba(0,0,0,.07)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--bg-canvas);color:var(--text-primary);font-family:MavenPro,ui-sans-serif,system-ui,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button{cursor:pointer;border:none;background:none;font-family:inherit}ul{list-style:none}input{font-family:inherit}.app-root{display:flex;flex-direction:column;min-height:100vh}.app-nav{display:flex;align-items:center;gap:0;height:60px;background:var(--bg-surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;padding:0 20px}.nav-logo-wrap{display:flex;align-items:center;flex-shrink:0;padding-right:20px}.nav-logo-img{height:54px;width:auto;display:block;-o-object-fit:contain;object-fit:contain}.nav-links{display:flex;align-items:center;gap:2px;flex:1}.nav-link{font-size:13px;font-weight:500;color:var(--text-secondary);padding:6px 14px;border-radius:var(--radius-sm);text-decoration:none;transition:all .15s}.nav-link:hover{color:var(--text-primary);background:var(--bg-hover)}.nav-link.active{color:var(--accent-text);background:var(--accent-light);font-weight:600}.nav-actions{display:flex;align-items:center;gap:10px}.nav-goal-badge{font-size:11px;font-weight:600;color:var(--accent-text);background:var(--accent-light);border:1px solid var(--accent-mid);border-radius:var(--radius-full);padding:3px 10px;text-transform:capitalize}.nav-clear-btn{font-size:12px;font-weight:500;color:var(--text-secondary);padding:5px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:all .15s}.nav-clear-btn:hover{color:var(--red);border-color:var(--red);background:var(--red-light)}.app-main{display:grid;grid-template-columns:260px 1fr 272px;flex:1}.ingredient-sidebar{background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;height:calc(100vh - 60px);position:sticky;top:60px;overflow:hidden}.sidebar-header{padding:16px 16px 12px;border-bottom:1px solid var(--border)}.sidebar-title{font-family:MavenPro,serif;font-size:15px;color:var(--text-primary);margin-bottom:10px}.search-input::-moz-placeholder{color:var(--text-placeholder)}.search-input::placeholder{color:var(--text-placeholder)}.search-clear{font-size:10px;color:var(--text-muted);padding:2px 3px;border-radius:3px;transition:background .1s}.search-clear:hover{background:var(--bg-hover);color:var(--text-secondary)}.search-container{padding:8px 12px 2px;display:flex;flex-direction:column;gap:4px}.search-wrap{display:flex;align-items:center;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 10px;gap:7px;transition:border-color .15s,box-shadow .15s}.search-wrap:focus-within,.search-wrap.searching{border-color:var(--accent-mid);box-shadow:0 0 0 3px var(--accent-light);background:var(--bg-surface)}.search-icon{font-size:11px;opacity:.4;flex-shrink:0;display:flex;align-items:center;width:14px}.search-input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:13px;padding:8px 0}.search-spinner{width:11px;height:11px;border-radius:50%;border:1.5px solid var(--accent-mid);border-top-color:var(--accent);animation:spin .6s linear infinite;display:inline-block}.admin-page{display:flex;align-items:flex-start;justify-content:center;min-height:calc(100vh - 56px);padding:40px 16px;background:var(--bg-canvas)}.admin-card{width:100%;max-width:480px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden}.admin-card-head{display:flex;align-items:center;gap:10px;padding:20px 24px;border-bottom:1px solid var(--border);background:var(--bg-canvas)}.admin-card-icon{font-size:20px;line-height:1}.admin-title{font-size:18px;font-weight:800;color:var(--text-primary);margin:0}.admin-section{padding:24px;border-bottom:1px solid var(--border)}.admin-section-title{font-size:14px;font-weight:700;color:var(--text-primary);margin:0 0 6px}.admin-section-desc{font-size:13px;color:var(--text-secondary);margin:0 0 20px;line-height:1.5}.admin-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-toggle-info{display:flex;align-items:center;gap:10px}.admin-toggle-status{font-size:11px;font-weight:700;letter-spacing:.05em;padding:2px 8px;border-radius:99px;background:var(--border);color:var(--text-muted)}.admin-toggle-status--on{background:#fef3c7;color:#92400e}.admin-toggle-label{font-size:13px;color:var(--text-secondary)}.admin-toggle{position:relative;flex-shrink:0;width:48px;height:26px;border-radius:99px;border:none;cursor:pointer;background:var(--border-strong);transition:background .2s;padding:0}.admin-toggle--on{background:#f59e0b}.admin-toggle-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #00000040;transition:transform .2s;display:block}.admin-toggle--on .admin-toggle-thumb{transform:translate(22px)}.admin-banner{display:flex;align-items:center;gap:8px;margin:16px 24px 24px;padding:10px 14px;border-radius:8px;font-size:13px;color:var(--text-secondary)}.admin-banner--ok{background:#f0fdf4;color:#166534}.admin-banner--warn{background:#fffbeb;color:#92400e}.dash-page{max-width:960px;margin:0 auto;padding:24px 16px 48px}.dash-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.dash-title{font-size:22px;font-weight:800;color:var(--text-primary);margin:0 0 2px}.dash-subtitle{font-size:13px;color:var(--text-muted);margin:0}.dash-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media(max-width:600px){.dash-grid{grid-template-columns:1fr}}.dash-card{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:12px}.dash-card-head{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border);padding-bottom:10px}.dash-card-icon{font-size:18px;line-height:1}.dash-card-title{font-size:14px;font-weight:700;color:var(--text-primary);margin:0}.dash-card-note{font-size:11px;color:var(--text-muted);margin:0}.dash-score-wrap{display:flex;flex-direction:column;align-items:center;gap:4px}.dash-score-big{font-size:52px;font-weight:900;line-height:1}.dash-score-label{font-size:13px;font-weight:600;margin-bottom:4px}.dash-sparkline{display:block}.dash-calories-row{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}.dash-calories-val{font-size:28px;font-weight:800;color:var(--text-primary)}.dash-calories-unit{font-size:12px;color:var(--text-muted)}.dash-macros{display:flex;flex-direction:column;gap:8px}.dash-macro-row{display:grid;grid-template-columns:60px 1fr 36px 36px;align-items:center;gap:6px}.dash-macro-label{font-size:12px;color:var(--text-secondary)}.dash-macro-track{height:7px;background:var(--border);border-radius:99px;overflow:hidden}.dash-macro-fill{height:100%;border-radius:99px;transition:width .3s}.dash-macro-val{font-size:11px;color:var(--text-secondary);text-align:right}.dash-macro-pct{font-size:11px;color:var(--text-muted);text-align:right}.dash-fill-row{display:flex;align-items:baseline;gap:8px}.dash-fill-big{font-size:28px;font-weight:800;color:var(--text-primary)}.dash-fill-label{font-size:12px;color:var(--text-muted)}.dash-activity-grid{display:flex;flex-direction:column;gap:4px}.dash-activity-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px}.dash-activity-day{font-size:10px;color:var(--text-muted);text-align:center}.dash-activity-row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dash-activity-dot{width:100%;aspect-ratio:1;border-radius:3px;background:var(--border);display:block}.dash-activity-dot--filled{background:var(--accent)}.dash-activity-legend{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted);margin-top:4px}.dash-dot-legend{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--border)}.dash-dot-legend--filled{background:var(--accent)}.dash-goal-chips{display:flex;flex-wrap:wrap;gap:8px}.dash-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;background:var(--bg-canvas);border:1px solid var(--border-strong);font-size:12px;color:var(--text-secondary)}.dash-chip--goal{background:var(--accent-bg);border-color:var(--accent-mid);color:var(--accent-dark);font-weight:600}.dash-chip--empty{color:var(--text-muted);font-style:italic}.dash-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 0;text-align:center}.dash-empty-icon{font-size:28px}.dash-empty p{font-size:13px;color:var(--text-muted);margin:0}.dash-cta-link{font-size:12px;color:var(--accent-dark);text-decoration:none;font-weight:600}.dash-cta-link:hover{text-decoration:underline}.planner-gate{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 56px);padding:24px;background:var(--bg-canvas)}.planner-gate-card{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;max-width:380px;width:100%;padding:40px 32px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 4px 24px #00000012}.planner-gate-icon{font-size:40px;line-height:1}.planner-gate-title{font-size:20px;font-weight:800;margin:0;color:var(--text-primary)}.planner-gate-desc{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.5}.planner-gate-btn{display:inline-block;margin-top:8px;padding:10px 28px;background:var(--accent);color:#fff;border-radius:8px;font-size:14px;font-weight:700;text-decoration:none;transition:opacity .15s}.planner-gate-btn:hover{opacity:.88}.planner-gate-link{font-size:12px;color:var(--accent-dark);text-decoration:none}.planner-gate-link:hover{text-decoration:underline}.ob-overlay{position:fixed;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.ob-modal{background:var(--bg-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:480px;display:flex;flex-direction:column;max-height:92vh;overflow:hidden}.ob-top{display:flex;align-items:center;gap:10px;padding:18px 24px 0}.ob-progress-track{flex:1;height:4px;background:var(--bg-subtle);border-radius:2px;overflow:hidden}.ob-progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .35s ease}.ob-step-count{font-size:12px;font-weight:600;color:var(--text-muted);white-space:nowrap}.ob-body{flex:1;overflow-y:auto;padding:24px 24px 8px;animation:ob-fade .18s ease}@keyframes ob-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ob-title{font-size:20px;font-weight:800;color:var(--text-primary);margin-bottom:6px}.ob-subtitle{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.ob-options{display:flex;flex-direction:column;gap:8px;margin-top:16px}.ob-option{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;background:var(--bg-canvas);border:1.5px solid var(--border);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color .12s,background .12s;font-family:inherit;position:relative}.ob-option:hover{border-color:var(--accent-mid);background:var(--accent-light)}.ob-option--selected{border-color:var(--accent);background:var(--accent-light)}.ob-opt-emoji{font-size:22px;line-height:1;flex-shrink:0}.ob-opt-text{flex:1;display:flex;flex-direction:column;gap:2px}.ob-opt-label{font-size:14px;font-weight:700;color:var(--text-primary)}.ob-opt-desc{font-size:12px;color:var(--text-secondary)}.ob-opt-check{font-size:14px;color:var(--accent);font-weight:800;opacity:0;transition:opacity .12s;flex-shrink:0}.ob-option--selected .ob-opt-check{opacity:1}.ob-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.ob-chip{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-canvas);border:1.5px solid var(--border);border-radius:var(--radius-full);cursor:pointer;font-size:14px;font-family:inherit;font-weight:500;color:var(--text-primary);transition:border-color .12s,background .12s}.ob-chip:hover{border-color:var(--accent-mid);background:var(--accent-light)}.ob-chip--selected{border-color:var(--accent);background:var(--accent-light);color:var(--accent-text);font-weight:700}.ob-chip-check{font-size:11px;color:var(--accent);font-weight:800}.ob-physical{display:flex;flex-direction:column;gap:12px;margin-top:16px}.ob-phys-row{display:flex;flex-direction:column;gap:4px}.ob-phys-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.ob-phys-input{padding:9px 12px;font-size:14px;font-family:inherit;color:var(--text-primary);background:var(--bg-canvas);border:1.5px solid var(--border);border-radius:var(--radius-md);outline:none;width:100%;transition:border-color .12s}.ob-phys-input:focus{border-color:var(--accent);background:var(--bg-surface)}.ob-nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px 20px;border-top:1px solid var(--border);margin-top:8px}.ob-skip-btn{background:none;border:none;font-size:13px;color:var(--text-muted);cursor:pointer;font-family:inherit;padding:6px 0;transition:color .12s}.ob-skip-btn:hover{color:var(--text-secondary)}.ob-back-btn{background:none;border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:13px;font-weight:600;color:var(--text-secondary);padding:8px 16px;cursor:pointer;font-family:inherit;transition:border-color .12s,color .12s}.ob-back-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.ob-next-btn{padding:9px 24px;font-size:14px;font-weight:700;font-family:inherit;color:#fff;background:var(--accent);border:none;border-radius:var(--radius-md);cursor:pointer;transition:opacity .15s}.ob-next-btn:hover{opacity:.88}.ob-next-btn:disabled{opacity:.35;cursor:default}.ob-phys-unit{font-weight:400;text-transform:none;letter-spacing:0;margin-left:6px;color:var(--text-muted)}.ob-gender-btns{display:flex;gap:8px;flex-wrap:wrap}.ob-gender-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 14px;background:var(--bg-canvas);border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:13px;font-weight:600;font-family:inherit;color:var(--text-secondary);cursor:pointer;transition:border-color .12s,background .12s,color .12s}.ob-gender-btn:hover{border-color:var(--accent-mid);color:var(--text-primary)}.ob-gender-btn--active{border-color:var(--accent);background:var(--accent-light);color:var(--accent-text)}.ob-select-row{display:flex;gap:8px;flex-wrap:wrap}.ob-mini-btn{padding:7px 14px;background:var(--bg-canvas);border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:13px;font-weight:600;font-family:inherit;color:var(--text-secondary);cursor:pointer;transition:border-color .12s,background .12s,color .12s}.ob-mini-btn:hover{border-color:var(--accent-mid);color:var(--text-primary)}.ob-mini-btn--active{border-color:var(--accent);background:var(--accent-light);color:var(--accent-text)}.ob-result{margin-top:8px}.ob-result-desc{font-size:13px;color:var(--text-secondary);margin-bottom:16px;line-height:1.5}.ob-result-cards{display:flex;gap:12px}.ob-result-card{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:16px 12px;border-radius:var(--radius-md);border:1.5px solid var(--border);background:var(--bg-canvas);text-align:center}.ob-result-card--maintain{border-color:var(--border)}.ob-result-card--target{border-color:var(--accent-mid);background:var(--accent-light)}.ob-result-card-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.ob-result-card-kcal{font-size:28px;font-weight:900;color:var(--text-primary);line-height:1.1;margin:4px 0}.ob-result-card--target .ob-result-card-kcal{color:var(--accent-text)}.ob-result-card-unit{font-size:11px;color:var(--text-muted);font-weight:600}.ob-result-card-adj{margin-top:4px;font-size:11px;color:var(--accent-text);font-weight:700}.ob-result-note{font-size:11px;color:var(--text-muted);margin-top:16px;line-height:1.5;text-align:center}.ob-result-no-physical{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 0;text-align:center}.ob-result-icon{font-size:40px;line-height:1}.ob-result-no-physical p{font-size:14px;color:var(--text-secondary);line-height:1.5}.profile-questionnaire-row{padding-top:0}.profile-retake-btn{background:none;border:1.5px solid var(--border);border-radius:var(--radius-md);padding:8px 16px;font-size:13px;font-weight:600;font-family:inherit;color:var(--text-secondary);cursor:pointer;transition:border-color .12s,color .12s}.profile-retake-btn:hover{border-color:var(--accent-mid);color:var(--accent-text)}@media(max-width:520px){.ob-modal{border-radius:var(--radius-lg)}.ob-body{padding:18px 16px 6px}.ob-nav{padding:14px 16px 18px}.ob-top{padding:14px 16px 0}}.support-page{flex:1;overflow-y:auto;padding:32px 16px 60px;background:var(--bg-canvas)}.support-container{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.support-header{text-align:center;padding-bottom:4px}.support-title{font-size:28px;font-weight:800;color:var(--text-primary);margin-bottom:6px}.support-desc{font-size:14px;color:var(--text-secondary)}.support-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}.support-section-title{font-size:16px;font-weight:700;color:var(--text-primary);margin-bottom:16px}.support-form{display:flex;flex-direction:column;gap:14px}.support-field{display:flex;flex-direction:column;gap:5px}.support-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.support-input,.support-textarea{width:100%;padding:9px 12px;font-size:14px;font-family:inherit;color:var(--text-primary);background:var(--bg-canvas);border:1.5px solid var(--border);border-radius:var(--radius-md);outline:none;transition:border-color .15s;resize:vertical}.support-input:focus,.support-textarea:focus{border-color:var(--accent);background:var(--bg-surface)}.support-submit-btn{align-self:flex-start;padding:9px 22px;font-size:14px;font-weight:600;font-family:inherit;color:#fff;background:var(--accent);border:none;border-radius:var(--radius-md);cursor:pointer;transition:opacity .15s}.support-submit-btn:hover{opacity:.85}.support-submit-btn:disabled{opacity:.5;cursor:default}.support-sent{display:flex;align-items:flex-start;gap:14px;padding:16px;background:var(--accent-light);border:1px solid var(--accent-mid);border-radius:var(--radius-md)}.support-sent-icon{font-size:22px;color:var(--accent);font-weight:800;line-height:1;margin-top:1px}.support-sent-title{font-size:14px;font-weight:700;color:var(--accent-text);margin-bottom:2px}.support-sent-sub{font-size:12px;color:var(--text-secondary)}.support-email-note{font-size:13px;color:var(--text-secondary);margin-bottom:12px}.support-email-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.support-email-address{font-size:14px;font-weight:600;color:var(--text-primary)}.support-email-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;font-size:13px;font-weight:600;color:var(--accent-text);background:var(--accent-light);border:1.5px solid var(--accent-mid);border-radius:var(--radius-md);text-decoration:none;transition:background .15s,border-color .15s}.support-email-btn:hover{background:var(--accent-mid);border-color:var(--accent)}.support-faq{display:flex;flex-direction:column;gap:2px}.faq-item{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.faq-item.open{border-color:var(--accent-mid)}.faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;font-size:14px;font-weight:600;font-family:inherit;color:var(--text-primary);background:transparent;border:none;cursor:pointer;text-align:left;transition:background .12s}.faq-question:hover{background:var(--bg-subtle)}.faq-item.open .faq-question{background:var(--accent-light);color:var(--accent-text)}.faq-arrow{font-size:10px;color:var(--text-muted);flex-shrink:0}.faq-answer{padding:0 16px 14px;font-size:13px;line-height:1.6;color:var(--text-secondary);background:var(--accent-light)}@media(max-width:600px){.support-page{padding:20px 12px 48px}.support-card{padding:18px}.support-email-row{flex-direction:column;align-items:flex-start}}.search-status{font-size:10.5px;color:var(--text-muted);display:flex;align-items:center;gap:6px;padding:0 2px}.status-dot{width:3px;height:3px;border-radius:50%;background:var(--border-strong);flex-shrink:0}.status-empty{color:var(--text-placeholder);font-style:italic}.search-error{margin:0 12px 6px;padding:8px 10px;background:#fdf1f1;border:1px solid #f5c6c6;border-radius:var(--radius-sm);font-size:11.5px;color:var(--red);display:flex;align-items:center;gap:6px}.search-results-wrap{flex:1;overflow-y:auto;padding-bottom:16px}.search-results-wrap::-webkit-scrollbar{width:3px}.search-results-wrap::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.results-section{padding:4px 0}.results-section-header{display:flex;align-items:center;gap:6px;padding:8px 14px 4px}.results-section-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);flex:1}.results-section-badge{font-size:10px;font-weight:600;background:var(--bg-subtle);border:1px solid var(--border);color:var(--text-secondary);padding:1px 6px;border-radius:99px}.results-loading-pill{font-size:10px;font-weight:500;background:var(--accent-light);border:1px solid var(--accent-mid);color:var(--accent-text);padding:1px 7px;border-radius:99px}.results-empty{font-size:11.5px;color:var(--text-muted);font-style:italic;padding:6px 14px 8px}.results-divider{height:1px;background:var(--border);margin:4px 14px}.api-card{align-items:flex-start;padding-top:7px;padding-bottom:7px}.ing-thumb{width:28px;height:28px;border-radius:5px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;border:1px solid var(--border)}.ing-brand{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-count{font-size:9.5px;font-weight:500;color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);padding:0 5px;border-radius:99px;margin-left:auto;margin-right:4px}.skeleton{pointer-events:none}.skel-dot{width:8px;height:8px;border-radius:50%;background:var(--bg-hover);flex-shrink:0;animation:pulse 1.4s ease-in-out infinite}.skel-emoji{width:18px;height:18px;border-radius:4px;background:var(--bg-hover);flex-shrink:0;animation:pulse 1.4s ease-in-out infinite}.skel-info{flex:1;display:flex;flex-direction:column;gap:4px}.skel-line{display:block;height:8px;border-radius:4px;background:var(--bg-hover);animation:pulse 1.4s ease-in-out infinite}.skel-line.long{width:75%}.skel-line.short{width:50%}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.ingredient-groups{flex:1;overflow-y:auto;padding:4px 0 20px}.ingredient-groups::-webkit-scrollbar{width:3px}.ingredient-groups::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.group-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:8px 16px 5px;font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);transition:color .1s}.group-header:hover{color:var(--text-secondary)}.group-arrow{font-size:10px;transition:transform .2s;opacity:.5}.group-arrow.open{transform:rotate(0)}.group-arrow:not(.open){transform:rotate(-90deg)}.ingredient-list{padding:0 8px 6px}.ingredient-card{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s;position:relative;overflow:hidden}.ingredient-card:hover{background:var(--bg-hover)}.ingredient-card.added{background:var(--accent-light)}.ingredient-card.added:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(74,124,89,.08),transparent);animation:shimmer .4s ease-out}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.ing-color-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ing-emoji{font-size:16px;flex-shrink:0;line-height:1}.ing-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ing-name{font-size:12.5px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ing-macro{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ing-add-btn{font-size:14px;font-weight:300;color:var(--border-strong);width:16px;text-align:center;flex-shrink:0;transition:color .12s}.ingredient-card:hover .ing-add-btn{color:var(--accent)}.ing-add-btn.popped{animation:pop .22s ease-out}@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.5)}to{transform:scale(1)}}.quick-meals{padding:10px 12px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;flex:1}.quick-meal-card{display:flex;align-items:center;gap:11px;padding:11px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:all .15s}.quick-meal-card:hover{border-color:var(--accent-mid);background:var(--accent-light)}.qm-emoji{font-size:20px;line-height:1}.qm-info{flex:1;display:flex;flex-direction:column;gap:2px}.qm-name{font-size:13px;font-weight:600;color:var(--text-primary)}.qm-count{font-size:11.5px;color:var(--text-muted)}.qm-arrow{font-size:13px;color:var(--accent);opacity:0;transition:opacity .15s,transform .15s}.quick-meal-card:hover .qm-arrow{opacity:1;transform:translate(2px)}.plate-section{display:flex;align-items:flex-start;background:var(--bg-canvas);overflow-y:auto;min-height:0;min-width:0}.plate-stage{display:flex;flex-direction:column;align-items:center;gap:18px}.plate-label-top{font-family:MavenPro,serif;font-size:11.5px;font-style:italic;color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase}.plate-wrap{position:relative;width:500px;height:500px}.plate-ring-3{position:absolute;inset:0;border-radius:50%;background:var(--plate-ring-3)}.plate-ring-2{position:absolute;inset:5px;border-radius:50%;background:var(--plate-ring-2)}.plate-ring-1{position:absolute;inset:10px;border-radius:50%;background:var(--plate-ring-1)}.plate-surface{position:absolute;inset:16px;border-radius:50%;background:var(--bg-surface);border:1px solid var(--border);overflow:hidden;transition:border-color .2s}.plate-surface.drag-over{border-color:var(--accent-mid);box-shadow:0 0 0 3px var(--accent-light)}.plate-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;pointer-events:none}.plate-empty-icon{font-size:32px;opacity:.18}.plate-empty-text{font-size:12px;color:var(--text-placeholder);text-align:center;max-width:130px;line-height:1.6}.plate-tooltip{position:absolute;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:7px 10px;font-size:11px;color:var(--text-primary);box-shadow:var(--shadow-md);white-space:nowrap;pointer-events:none;z-index:50;transition:opacity .1s}.tt-name{font-weight:600;margin-bottom:2px}.tt-row{color:var(--text-secondary)}.plate-legend{display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:center;max-width:320px}.legend-item{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--text-secondary)}.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.legend-grams{color:var(--text-muted);margin-left:2px}.plate-hint{font-size:11.5px;color:var(--text-muted)}.stats-panel{background:var(--bg-surface);border-left:1px solid var(--border);padding:24px 20px;display:flex;flex-direction:column;gap:20px;height:calc(100vh - 60px);position:sticky;top:60px;overflow-y:auto}.stats-panel::-webkit-scrollbar{width:3px}.stats-panel::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.stats-title{font-family:MavenPro,serif;font-size:15px;color:var(--text-primary)}.calorie-box{display:flex;flex-direction:column;gap:4px;padding:16px;background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--radius-lg)}.calorie-eyebrow{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.calorie-row{display:flex;align-items:baseline;gap:5px}.calorie-number{font-family:MavenPro,serif;font-size:48px;color:var(--text-primary);line-height:1;letter-spacing:-2px;transition:all .3s;font-variant-numeric:tabular-nums}.calorie-unit{font-size:15px;color:var(--text-secondary)}.score-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:500;border:1px solid;transition:all .3s}.macro-section{display:flex;flex-direction:column;gap:13px;padding:15px 16px;background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--radius-lg)}.macro-section-title{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:2px}.macro-row{display:flex;flex-direction:column;gap:5px}.macro-row-top{display:flex;justify-content:space-between;align-items:baseline}.macro-label{font-size:12px;font-weight:500;color:var(--text-secondary)}.macro-value{font-size:12.5px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.macro-pct{font-size:11px;color:var(--text-muted);font-weight:400}.macro-track{height:4px;background:var(--border);border-radius:var(--radius-full);overflow:hidden}.macro-fill{height:100%;border-radius:var(--radius-full);transition:width .5s cubic-bezier(.4,0,.2,1);min-width:3px;opacity:.85}.tips-section{display:flex;flex-direction:column;gap:8px}.tips-title{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.tips-list{display:flex;flex-direction:column;gap:4px}.tip-item{font-size:12.5px;color:var(--text-secondary);padding:8px 10px;background:var(--yellow-light);border:1px solid var(--yellow-border);border-radius:var(--radius-sm);line-height:1.45;animation:fade-slide .22s ease-out}@keyframes fade-slide{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.stats-footer{font-size:11.5px;color:var(--text-muted);padding-top:4px;border-top:1px solid var(--border)}.modal-backdrop{position:fixed;inset:0;background:#f7f6f3bf;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:200;display:flex;align-items:center;justify-content:center;animation:backdrop-in .15s ease}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:24px;width:340px;max-width:90vw;box-shadow:var(--shadow-lg);animation:modal-in .2s cubic-bezier(.34,1.56,.64,1);display:flex;flex-direction:column;gap:18px}@keyframes modal-in{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;align-items:center;gap:12px}.modal-emoji{font-size:26px;line-height:1}.modal-title{font-family:MavenPro,serif;font-size:16px;color:var(--text-primary)}.modal-subtitle{font-size:12px;color:var(--text-muted)}.modal-close{margin-left:auto;color:var(--text-muted);font-size:12px;padding:5px 7px;border-radius:var(--radius-sm);border:1px solid transparent;transition:all .12s}.modal-close:hover{background:var(--bg-subtle);border-color:var(--border);color:var(--text-primary)}.modal-grams-display{text-align:center;display:flex;align-items:baseline;justify-content:center;gap:4px;padding:8px 0 0}.modal-grams-number{font-family:MavenPro,serif;font-size:52px;color:var(--text-primary);line-height:1;letter-spacing:-3px;transition:all .1s}.modal-grams-unit{font-size:18px;color:var(--text-muted)}.modal-slider{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:var(--border);border-radius:var(--radius-full);cursor:pointer;outline:none}.modal-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid white;box-shadow:0 0 0 1px var(--accent-mid);cursor:pointer;-webkit-transition:transform .1s;transition:transform .1s}.modal-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.modal-slider-labels{display:flex;justify-content:space-between;font-size:10.5px;color:var(--text-muted);margin-top:-5px;padding:0 2px}.modal-presets{display:flex;gap:5px;justify-content:center;flex-wrap:wrap}.preset-btn{font-size:12px;font-weight:500;padding:4px 11px;border-radius:var(--radius-full);border:1px solid var(--border-strong);color:var(--text-secondary);transition:all .12s}.preset-btn:hover{border-color:var(--accent-mid);color:var(--accent-text);background:var(--accent-light)}.preset-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.modal-preview{display:flex;justify-content:space-between;padding:10px 14px;background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--radius-md)}.modal-preview span{font-size:12px;font-weight:500;color:var(--text-secondary)}.modal-preview span:first-child{color:var(--text-primary);font-weight:600}.modal-actions{display:flex;gap:8px}.modal-btn{flex:1;padding:10px;border-radius:var(--radius-md);font-size:13.5px;font-weight:500;transition:all .15s}.modal-btn.cancel{background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border)}.modal-btn.cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-btn.save{background:var(--accent);color:#fff;border:1px solid var(--accent);font-weight:600}.modal-btn.save:hover{background:var(--accent-text);border-color:var(--accent-text);box-shadow:0 2px 8px #4a7c5940}.modal-btn.remove{background:none;color:var(--red);border:1px solid var(--border);margin-top:-10px}.modal-btn.remove:hover{background:var(--red-light);border-color:var(--red)}.products-note{display:flex;align-items:center;gap:6px;margin:0 12px 4px;padding:5px 9px;background:var(--accent-light);border:1px solid var(--accent-mid);border-radius:var(--radius-sm);font-size:10.5px;color:var(--accent-text);font-weight:500}.products-note-icon{font-size:12px}.products-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 20px;text-align:center}.pes-icon{font-size:36px;opacity:.25}.pes-title{font-size:13px;font-weight:600;color:var(--text-secondary)}.pes-sub{font-size:11.5px;color:var(--text-muted);line-height:1.6;max-width:180px}.tab-row{display:flex;gap:2px;background:var(--bg-subtle);padding:2px;border-radius:var(--radius-sm);border:1px solid var(--border)}.tab-btn{flex:1;font-size:11px;font-weight:500;padding:4px 6px;border-radius:4px;color:var(--text-muted);transition:all .15s;white-space:nowrap}.tab-btn.active{background:var(--bg-surface);color:var(--text-primary);box-shadow:0 1px 2px #0000000a}.tab-btn:not(.active):hover{color:var(--text-secondary)}.container-grid{display:flex;flex-wrap:wrap;gap:24px;padding:40px 32px;justify-content:center;align-items:flex-start;width:100%}.container-card{display:flex;flex-direction:column;align-items:center;gap:10px;background:var(--bg-surface);border:2px solid var(--border);border-radius:var(--radius-xl);padding:14px 14px 16px;cursor:pointer;transition:border-color .2s,box-shadow .2s;min-width:0}.container-card:hover{border-color:var(--accent-mid)}.container-card.is-active{border-color:var(--accent-mid);box-shadow:0 0 0 3px var(--accent-light)}.container-card-header{display:flex;align-items:center;gap:7px;width:100%;padding:0 4px}.container-card-emoji{font-size:15px;line-height:1;flex-shrink:0}.container-card-label{flex:1;font-size:12.5px;font-weight:600;color:var(--text-primary);letter-spacing:-.1px}.container-card-remove{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--text-muted);border-radius:var(--radius-sm);opacity:0;transition:opacity .15s,color .12s,background .12s}.container-card:hover .container-card-remove{opacity:1}.container-card-remove:hover{color:var(--red);background:var(--red-light)}.container-card-totals{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}.cct-calories{font-size:12px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.cct-dot{width:3px;height:3px;border-radius:50%;background:var(--border-strong);flex-shrink:0}.cct-macro{font-size:11px;color:var(--text-muted)}.add-container-card{display:flex;flex-direction:column;align-items:center;gap:12px;border:2px dashed var(--border-strong);border-radius:var(--radius-xl);padding:20px 24px;min-width:180px;background:transparent;transition:border-color .2s}.add-container-card:hover{border-color:var(--accent-mid)}.add-container-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.add-container-options{display:flex;flex-direction:column;gap:6px;width:100%}.add-container-btn{display:flex;align-items:center;gap:9px;padding:7px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);transition:all .15s;text-align:left}.add-container-btn:hover{border-color:var(--accent-mid);background:var(--accent-light);color:var(--accent-text)}.add-container-emoji{font-size:15px;line-height:1}.add-container-name{font-size:12.5px;font-weight:500;color:var(--text-secondary)}.add-container-btn:hover .add-container-name{color:var(--accent-text)}.plate-stage.compact .plate-label-top,.plate-stage.compact .plate-hint{display:none}.plate-stage.compact .plate-wrap{width:260px;height:260px}.plate-stage.compact .plate-legend{max-width:260px;font-size:10.5px;gap:4px 10px}.ing-custom-badge{display:inline-block;margin-left:5px;font-size:9px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-text);background:var(--accent-light);border:1px solid var(--accent-mid);border-radius:var(--radius-full);padding:0 5px;line-height:16px;vertical-align:middle}.ing-delete-btn{flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;color:var(--text-muted);border-radius:4px;opacity:0;transition:opacity .12s,color .12s,background .12s}.ingredient-card:hover .ing-delete-btn{opacity:1}.ing-delete-btn:hover{color:var(--red);background:var(--red-light)}.create-toggle-btn{display:flex;align-items:center;gap:7px;margin:4px 12px 0;padding:6px 10px;font-size:12px;font-weight:500;color:var(--text-secondary);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:transparent;transition:all .15s;width:calc(100% - 24px)}.create-toggle-btn:hover{border-color:var(--accent-mid);color:var(--accent-text);background:var(--accent-light)}.create-toggle-btn.open{border-style:solid;border-color:var(--accent-mid);color:var(--accent-text);background:var(--accent-light)}.create-toggle-icon{font-size:14px;font-weight:300;line-height:1;width:14px;text-align:center}.custom-form{display:flex;flex-direction:column;gap:9px;margin:6px 12px 10px;padding:12px;background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--radius-md)}.custom-form-header{display:flex;align-items:center;justify-content:space-between}.custom-form-title{font-size:12px;font-weight:600;color:var(--text-primary)}.custom-form-close{font-size:11px;color:var(--text-muted);padding:2px 5px;border-radius:4px;transition:background .1s,color .1s}.custom-form-close:hover{background:var(--bg-hover);color:var(--text-primary)}.custom-form-hint{font-size:10.5px;color:var(--text-muted);padding:5px 8px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:4px;text-align:center}.custom-row{display:flex;gap:7px}.custom-field{display:flex;flex-direction:column;gap:3px}.custom-field--emoji{width:56px;flex-shrink:0}.custom-field--grow{flex:1;min-width:0}.custom-label{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.custom-unit{font-weight:400;text-transform:none;letter-spacing:0}.custom-input{width:100%;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px;font-size:12.5px;color:var(--text-primary);outline:none;transition:border-color .15s,box-shadow .15s}.custom-input:focus{border-color:var(--accent-mid);box-shadow:0 0 0 2px var(--accent-light)}.custom-input::-moz-placeholder{color:var(--text-placeholder)}.custom-input::placeholder{color:var(--text-placeholder)}.custom-input--number{-moz-appearance:textfield}.custom-input--number::-webkit-inner-spin-button,.custom-input--number::-webkit-outer-spin-button{-webkit-appearance:none}.custom-select{width:100%;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px;font-size:12.5px;font-family:inherit;color:var(--text-primary);outline:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}.custom-select:focus{border-color:var(--accent-mid);box-shadow:0 0 0 2px var(--accent-light)}.custom-macros{display:grid;grid-template-columns:1fr 1fr;gap:7px}.custom-error{font-size:11.5px;color:var(--red);padding:6px 8px;background:var(--red-light);border:1px solid #f5c6c6;border-radius:4px}.custom-submit{width:100%;padding:8px;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:12.5px;font-weight:600;font-family:inherit;transition:background .15s,box-shadow .15s}.custom-submit:hover{background:var(--accent-text);border-color:var(--accent-text);box-shadow:0 2px 8px #4a7c5940}.stats-header-row{display:flex;align-items:center;justify-content:space-between}.goal-trigger-btn{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:6px 14px;border:1.5px solid var(--accent-mid);border-radius:var(--radius-full);color:var(--accent-text);background:var(--accent-light);transition:all .15s;white-space:nowrap;cursor:pointer}.goal-trigger-btn:hover{border-color:var(--accent);background:var(--accent);color:#fff}.goal-trigger-btn--active{background:var(--accent);border-color:var(--accent);color:#fff}.goal-trigger-btn--active:hover{opacity:.85}.goal-trigger-btn--free{border-style:dashed;opacity:.85}.gtb-dot{width:7px;height:7px;border-radius:50%;background:#fff;display:inline-block;flex-shrink:0}.gtb-crown{font-size:11px;line-height:1}.meal-score-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--radius-lg)}.meal-score-header{display:flex;align-items:center;justify-content:space-between}.meal-score-eyebrow{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.meal-score-goal-badge{font-size:10px;font-weight:600;color:var(--accent-text);background:var(--accent-light);border:1px solid var(--accent-mid);border-radius:var(--radius-full);padding:1px 7px}.meal-score-body{display:flex;gap:14px;align-items:flex-start}.meal-score-ring-wrap{flex-shrink:0}.meal-score-detail{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0;padding-top:4px}.meal-score-label{font-size:15px;font-weight:700;letter-spacing:-.2px;transition:color .4s}.meal-score-empty{font-size:11.5px;color:var(--text-muted);font-style:italic}.meal-score-breakdown{display:flex;flex-direction:column;gap:5px}.msb-row{display:flex;align-items:center;gap:6px}.msb-name{font-size:10px;color:var(--text-muted);width:50px;flex-shrink:0}.msb-track{flex:1;height:3px;background:var(--border);border-radius:var(--radius-full);overflow:hidden}.msb-fill{height:100%;border-radius:var(--radius-full);transition:width .5s cubic-bezier(.4,0,.2,1)}.msb-val{font-size:9.5px;color:var(--text-muted);width:30px;text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}.auto-balance-btn{width:100%;padding:9px 14px;background:var(--bg-surface);border:1.5px solid var(--accent-mid);border-radius:var(--radius-md);font-size:13px;font-weight:600;font-family:inherit;color:var(--accent-text);transition:all .15s;display:flex;align-items:center;justify-content:center;gap:6px}.auto-balance-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 2px 10px #4a7c5940}.ab-panel{width:400px;max-width:92vw;gap:16px}.ab-header{display:flex;align-items:flex-start;gap:12px}.ab-icon{font-size:22px;line-height:1;flex-shrink:0}.ab-title{font-family:MavenPro,serif;font-size:16px;color:var(--text-primary)}.ab-subtitle{font-size:12px;color:var(--text-muted)}.ab-score-preview{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 16px;background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--radius-md)}.absp-item{display:flex;flex-direction:column;align-items:center;gap:2px}.absp-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.absp-score{font-size:28px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;transition:color .3s}.absp-arrow{font-size:18px;color:var(--text-muted)}.absp-delta{font-size:11px;font-weight:700;color:var(--accent-text);background:var(--accent-light);border:1px solid var(--accent-mid);border-radius:var(--radius-full);padding:2px 8px}.ab-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 0;text-align:center}.ab-empty-icon{font-size:32px}.ab-empty p{font-size:13px;color:var(--text-secondary)}.ab-suggestions{display:flex;flex-direction:column;gap:8px}.ab-suggestion-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--radius-md)}.ab-info-row{background:var(--yellow-light);border-color:var(--yellow-border)}.ab-sug-emoji{font-size:20px;flex-shrink:0}.ab-sug-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ab-sug-reason{font-size:12.5px;font-weight:500;color:var(--text-primary)}.ab-sug-detail{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}.ab-sug-tag{flex-shrink:0;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:var(--radius-full);background:var(--accent-light);color:var(--accent-text);border:1px solid var(--accent-mid)}.ab-sug-tag--info{background:var(--yellow-light);color:#92610a;border-color:var(--yellow-border)}.goal-modal{width:420px;max-width:93vw;gap:16px}.goal-premium-banner{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;background:linear-gradient(135deg,#fef9e7,#fef3c7);border:1px solid #f0d060;border-radius:var(--radius-md)}.gpb-icon{font-size:18px;flex-shrink:0}.gpb-title{font-size:12.5px;font-weight:600;color:#92610a}.gpb-sub{font-size:11.5px;color:#a07020;margin-top:1px;line-height:1.4}.goal-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.goal-card{display:flex;flex-direction:column;gap:4px;padding:12px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--radius-md);text-align:left;cursor:pointer;position:relative;transition:all .15s}.goal-card:hover{border-color:var(--accent-mid);background:var(--accent-light)}.goal-card.active{border-color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 2px var(--accent-light)}.goal-card-emoji{font-size:20px}.goal-card-label{font-size:12.5px;font-weight:700;color:var(--text-primary)}.goal-card-desc{font-size:10.5px;color:var(--text-muted);line-height:1.45}.goal-card-check{position:absolute;top:8px;right:8px;width:16px;height:16px;background:var(--accent);color:#fff;border-radius:50%;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center}.goal-clear-btn{font-size:11.5px;color:var(--text-muted);text-decoration:underline;padding:4px 0;width:100%;text-align:center;transition:color .12s}.goal-clear-btn:hover{color:var(--red)}.container-layout{display:flex;gap:28px;padding:32px 28px;align-items:flex-start;width:100%;min-height:0}.primary-area{flex:1;display:flex;justify-content:center;align-items:flex-start;cursor:default}.primary-area.inactive{cursor:pointer}.secondary-column{display:flex;flex-direction:column;gap:16px;width:290px;flex-shrink:0}.container-layout:not(.has-secondary){justify-content:center}.container-layout:not(.has-secondary) .primary-area{flex:0 0 auto}.glass-stage{display:flex;flex-direction:column;align-items:center;gap:14px}.glass-stage.compact{gap:8px}.glass-wrap{border-radius:8px;transition:box-shadow .2s;cursor:pointer}.glass-wrap.drag-over{box-shadow:0 0 0 3px var(--accent-light),0 0 0 1px var(--accent-mid)}.glass-stage.compact .glass-wrap{cursor:default}.container-card-label.renameable{cursor:text;border-radius:3px;padding:0 2px;transition:background .12s}.container-card-label.renameable:hover{background:var(--bg-hover)}.container-card-rename-input{flex:1;background:var(--bg-surface);border:1px solid var(--accent-mid);border-radius:var(--radius-sm);padding:2px 6px;font-size:12.5px;font-weight:600;color:var(--text-primary);font-family:inherit;outline:none;box-shadow:0 0 0 2px var(--accent-light);min-width:0}.toast-notification{position:fixed;bottom:28px;left:50%;transform:translate(-50%);z-index:500;background:var(--text-primary);color:var(--bg-surface);font-size:13px;font-weight:500;padding:10px 20px;border-radius:var(--radius-full);box-shadow:var(--shadow-lg);white-space:nowrap;animation:toast-in .22s cubic-bezier(.34,1.56,.64,1);pointer-events:none}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.recipes-page{display:flex;flex-direction:column;height:calc(100vh - 60px);overflow:hidden}.recipes-toolbar{padding:16px 24px 12px;border-bottom:1px solid var(--border);background:var(--bg-surface);display:flex;flex-direction:column;gap:10px;flex-shrink:0}.recipes-search-wrap{display:flex;align-items:center;gap:8px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 10px;transition:border-color .15s,box-shadow .15s;max-width:400px}.recipes-search-wrap:focus-within{border-color:var(--accent-mid);box-shadow:0 0 0 3px var(--accent-light);background:var(--bg-surface)}.recipes-search-icon{font-size:11px;opacity:.4}.recipes-search-input{flex:1;background:none;border:none;outline:none;font-family:inherit;font-size:13px;color:var(--text-primary);padding:8px 0}.recipes-tag-chips{display:flex;flex-wrap:wrap;gap:6px}.tag-chip{font-size:11px;font-weight:500;padding:3px 10px;border-radius:var(--radius-full);border:1px solid var(--border-strong);color:var(--text-secondary);background:var(--bg-surface);transition:all .12s;cursor:pointer}.tag-chip:hover{border-color:var(--accent-mid);color:var(--accent-text);background:var(--accent-light)}.tag-chip.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.recipes-layout{display:flex;flex:1;overflow:hidden}.recipes-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;padding:20px 24px;overflow-y:auto;align-content:start}.recipes-grid::-webkit-scrollbar{width:4px}.recipes-grid::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.recipes-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:10px;padding:60px 20px;color:var(--text-muted);font-size:14px}.recipes-empty span{font-size:40px;opacity:.2}.recipe-card{display:flex;align-items:flex-start;gap:12px;padding:14px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all .15s;position:relative}.recipe-card:hover{border-color:var(--accent-mid);box-shadow:var(--shadow-sm)}.recipe-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.rc-emoji{font-size:28px;flex-shrink:0;line-height:1}.rc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.rc-name{font-size:13.5px;font-weight:600;color:var(--text-primary)}.rc-tags{display:flex;flex-wrap:wrap;gap:4px}.rc-tag{font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-full);padding:1px 6px}.rc-macros{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-muted);flex-wrap:wrap}.rc-cal{font-weight:600;color:var(--text-secondary)}.rc-macro-dot{width:3px;height:3px;border-radius:50%;background:var(--border-strong);flex-shrink:0}.rc-actions{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.rc-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:15px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-subtle);transition:all .12s}.rc-btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.rc-btn--builder:hover{background:var(--accent-light);border-color:var(--accent-mid)}.rc-btn--planner:hover{background:var(--yellow-light);border-color:var(--yellow-border)}.recipe-detail{width:340px;flex-shrink:0;border-left:1px solid var(--border);background:var(--bg-surface);overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:14px;animation:slide-in-right .18s ease}@keyframes slide-in-right{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.recipe-detail::-webkit-scrollbar{width:3px}.recipe-detail::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.rd-header{display:flex;align-items:flex-start;gap:12px}.rd-emoji{font-size:32px;flex-shrink:0}.rd-title-group{flex:1;min-width:0}.rd-name{font-family:MavenPro,serif;font-size:17px;color:var(--text-primary);line-height:1.3}.rd-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.rd-desc{font-size:12.5px;color:var(--text-secondary);line-height:1.6}.rd-nutrition-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rd-nut-badge{display:flex;flex-direction:column;gap:2px;padding:9px 10px;background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--radius-md)}.rd-nut-label{font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.rd-nut-value{font-size:14px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.rd-section-title{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.rd-ingredients{display:flex;flex-direction:column;gap:6px}.rd-ing-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--border)}.rd-ing-emoji{font-size:16px}.rd-ing-name{flex:1;font-size:12.5px;color:var(--text-primary)}.rd-ing-grams{font-size:11.5px;color:var(--text-muted);font-variant-numeric:tabular-nums}.rd-actions{display:flex;gap:8px;padding-top:4px}.slot-picker{width:700px;max-width:95vw}.slot-picker-grid{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.sp-day{display:flex;flex-direction:column;gap:4px;min-width:84px}.sp-day-header{text-align:center;padding:4px 0 6px;border-bottom:1px solid var(--border);margin-bottom:2px}.sp-day-name{display:block;font-size:11px;font-weight:700;color:var(--text-primary)}.sp-day-date{display:block;font-size:10px;color:var(--text-muted)}.sp-slot{width:100%;text-align:left;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);transition:all .12s;display:flex;flex-direction:column;gap:2px}.sp-slot:hover{border-color:var(--accent-mid);background:var(--accent-light)}.sp-slot.occupied{background:var(--yellow-light);border-color:var(--yellow-border)}.sp-slot.occupied:hover{border-color:var(--accent);background:var(--accent-light)}.sp-slot-name{font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.sp-slot-recipe{font-size:10px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planner-page{display:flex;flex-direction:column;height:calc(100vh - 60px);overflow:hidden;background:var(--bg-canvas)}.planner-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0;gap:16px}.planner-week-nav{display:flex;align-items:center;gap:10px}.week-nav-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);transition:all .12s}.week-nav-btn:hover{border-color:var(--accent-mid);color:var(--accent);background:var(--accent-light)}.planner-week-label{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap}.week-today-btn{font-size:11.5px;font-weight:500;color:var(--accent-text);padding:4px 10px;border:1px solid var(--accent-mid);border-radius:var(--radius-full);background:var(--accent-light);transition:all .12s}.week-today-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.planner-toolbar-actions{display:flex;gap:8px}.planner-action-btn{font-size:12px;font-weight:500;font-family:inherit;padding:6px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-secondary);background:var(--bg-surface);transition:all .15s}.planner-action-btn:hover{border-color:var(--accent-mid);color:var(--accent-text);background:var(--accent-light)}.planner-action-btn.danger:hover{border-color:var(--red);color:var(--red);background:var(--red-light)}.planner-layout{display:flex;flex:1;gap:0;overflow:hidden}.planner-grid{flex:1;overflow:auto;padding:16px 20px;display:grid;grid-template-columns:72px repeat(7,1fr);grid-template-rows:auto;gap:6px;align-content:start}.planner-grid::-webkit-scrollbar{width:4px;height:4px}.planner-grid::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.planner-corner{position:sticky;top:0;z-index:2}.planner-day-header{display:flex;flex-direction:column;align-items:center;padding:8px 4px 6px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);position:sticky;top:0;z-index:1}.pdh-name{font-size:12px;font-weight:700;color:var(--text-primary)}.pdh-date{font-size:10px;color:var(--text-muted)}.pdh-actions{display:flex;gap:3px;margin-top:4px}.pdh-btn{width:20px;height:20px;font-size:12px;display:flex;align-items:center;justify-content:center;border-radius:4px;border:1px solid var(--border);color:var(--text-muted);background:var(--bg-subtle);transition:all .12s;padding:0}.pdh-btn:hover{background:var(--accent-light);border-color:var(--accent-mid);color:var(--accent-text)}.pdh-btn.danger:hover{background:var(--red-light);border-color:var(--red);color:var(--red)}.planner-slot-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px;font-weight:600;color:var(--text-muted);padding:6px 4px;text-align:center;text-transform:uppercase;letter-spacing:.04em}.planner-slot-label span:first-child{font-size:16px}.planner-cell{min-height:64px;border-radius:var(--radius-sm);border:1.5px dashed var(--border);display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s}.planner-cell.empty:hover{border-color:var(--accent-mid);background:var(--accent-light)}.planner-cell.filled{border-style:solid;border-color:var(--border);padding:4px;background:var(--bg-surface)}.planner-add-btn{width:28px;height:28px;border-radius:50%;border:1.5px dashed var(--border-strong);color:var(--text-muted);font-size:18px;font-weight:300;display:flex;align-items:center;justify-content:center;transition:all .12s}.planner-cell.empty:hover .planner-add-btn{border-color:var(--accent);color:var(--accent)}.planner-recipe-card{width:100%;cursor:grab}.planner-recipe-card:active{cursor:grabbing}.prc-top{display:flex;align-items:flex-start;gap:5px}.prc-emoji{font-size:16px;flex-shrink:0;line-height:1.2}.prc-info{flex:1;min-width:0}.prc-name{font-size:10.5px;font-weight:500;color:var(--text-primary);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prc-btns{display:flex;gap:2px;flex-shrink:0}.prc-btn{width:18px;height:18px;font-size:10px;display:flex;align-items:center;justify-content:center;border-radius:3px;border:1px solid transparent;color:var(--text-muted);opacity:0;transition:opacity .12s,background .12s;padding:0}.planner-recipe-card:hover .prc-btn{opacity:1}.prc-btn:hover{background:var(--bg-hover);border-color:var(--border);color:var(--text-primary)}.prc-btn.danger:hover{background:var(--red-light);color:var(--red);border-color:var(--red)}.planner-summary{width:220px;flex-shrink:0;border-left:1px solid var(--border);background:var(--bg-surface);padding:20px 16px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.ps-title{font-family:MavenPro,serif;font-size:14px;color:var(--text-primary)}.ps-stat-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.ps-stat-label{font-size:11.5px;color:var(--text-muted)}.ps-stat-value{font-size:12px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.ps-divider{height:1px;background:var(--border)}.ps-section-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.ps-empty{font-size:12px;color:var(--text-muted);line-height:1.6}.ps-shopping-btn{margin-top:6px;width:100%;padding:9px;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:var(--radius-md);font-size:12.5px;font-weight:600;font-family:inherit;transition:all .15s}.ps-shopping-btn:hover{background:var(--accent-text);border-color:var(--accent-text)}.ps-shopping-btn.locked{background:var(--text-muted);border-color:var(--text-muted);opacity:.85}.ps-shopping-btn.locked:hover{background:var(--text-secondary);border-color:var(--text-secondary)}.recipe-picker-modal{width:380px;max-width:93vw;gap:12px}.rp-search-wrap{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 10px}.rp-search{width:100%;background:none;border:none;outline:none;font-family:inherit;font-size:13px;color:var(--text-primary);padding:9px 0}.rp-list{display:flex;flex-direction:column;gap:4px;max-height:360px;overflow-y:auto}.rp-list::-webkit-scrollbar{width:3px}.rp-list::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.rp-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border);transition:all .12s;text-align:left}.rp-item:hover{border-color:var(--accent-mid);background:var(--accent-light)}.rp-emoji{font-size:20px;flex-shrink:0}.rp-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.rp-name{font-size:12.5px;font-weight:600;color:var(--text-primary)}.rp-tags{font-size:10.5px;color:var(--text-muted)}.dup-modal{width:320px;max-width:92vw}.dup-day-list{display:flex;flex-direction:column;gap:6px}.dup-day-btn{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);font-size:13px;font-weight:500;color:var(--text-primary);transition:all .12s}.dup-day-btn:hover{border-color:var(--accent-mid);background:var(--accent-light);color:var(--accent-text)}.ddb-date{font-size:11px;color:var(--text-muted)}.shopping-modal{width:480px;max-width:94vw;max-height:80vh;overflow-y:auto}.shopping-modal::-webkit-scrollbar{width:4px}.shopping-modal::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.shopping-list{display:flex;flex-direction:column;gap:16px;padding-top:4px}.sl-cat-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--border)}.sl-item{display:flex;align-items:center;gap:10px;padding:5px 0}.sl-emoji{font-size:16px;flex-shrink:0}.sl-name{flex:1;font-size:13px;color:var(--text-primary)}.sl-amount{font-size:12px;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums}.print-view{display:none}@media print{#root{display:none!important}.print-view{display:block!important;font-family:Georgia,Times New Roman,serif;color:#000;background:#fff}@page{size:A4 portrait;margin:12mm 15mm 15mm}.pv-page{padding:0}.pv-page-break{page-break-before:always}.pv-header{display:flex;align-items:center;border-bottom:2pt solid #000;padding-bottom:6pt;margin-bottom:14pt}.pv-brand-logo{height:38pt;width:auto;-o-object-fit:contain;object-fit:contain}.pv-header-center{flex:1;text-align:center}.pv-header-subtitle{font-size:11pt;color:#444}.pv-header-date{font-size:9pt;color:#666;white-space:nowrap}.pv-section-title{font-size:13pt;font-weight:700;margin:0 0 10pt;border-bottom:.5pt solid #ccc;padding-bottom:4pt}.pv-grid{display:grid;grid-template-columns:72pt repeat(7,1fr);border:.5pt solid #999;font-size:8pt}.pv-grid-corner,.pv-day-hd,.pv-slot-lbl,.pv-cell{border:.5pt solid #ddd;padding:3pt 4pt}.pv-grid-corner{background:#f5f5f5}.pv-day-hd{background:#f5f5f5;font-weight:700;text-align:center;font-size:8pt}.pv-slot-lbl{background:#fafafa;font-weight:600;font-size:7.5pt;display:flex;align-items:flex-start;gap:3pt}.pv-slot-mark{color:#666}.pv-cell{font-size:7.5pt;line-height:1.3}.pv-cell-empty{color:#bbb;text-align:center}.pv-meal-emoji{margin-right:2pt}.pv-meal-name{word-break:break-word}.pv-dash{color:#ccc}.pv-nutrition-strip{display:flex;align-items:center;flex-wrap:wrap;gap:6pt;padding:6pt 0;border-top:.5pt solid #ccc;margin-top:8pt;font-size:8pt}.pv-nut-label{color:#666;margin-right:2pt}.pv-nut-value{font-weight:700}.pv-nut-sep{width:.5pt;height:10pt;background:#ccc}.pv-shopping-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14pt}.pv-shop-group{-moz-column-break-inside:avoid;break-inside:avoid}.pv-shop-cat{font-size:9pt;font-weight:700;border-bottom:.5pt solid #999;padding-bottom:3pt;margin-bottom:5pt;margin-top:0}.pv-shop-list{list-style:none;margin:0;padding:0}.pv-shop-item{display:flex;align-items:baseline;gap:4pt;padding:2pt 0;border-bottom:.5pt solid #f0f0f0;font-size:8pt}.pv-shop-emoji{flex-shrink:0}.pv-shop-name{flex:1}.pv-shop-qty{font-weight:700;font-variant-numeric:tabular-nums;color:#333}.pv-footer{display:flex;justify-content:space-between;align-items:center;border-top:.5pt solid #ccc;padding-top:4pt;margin-top:12pt;font-size:7.5pt;color:#666}.pv-empty{color:#888;font-style:italic;text-align:center;padding:20pt 0}.ps-print-btn{display:none!important}}.stats-actions{display:flex;gap:8px;margin-bottom:4px}.stats-actions .auto-balance-btn,.save-meal-btn{flex:1}.save-meal-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 14px;font-size:12px;font-weight:700;border-radius:var(--radius-sm);border:1.5px solid var(--accent-mid);color:var(--accent-text);background:var(--accent-light);cursor:pointer;transition:all .15s;white-space:nowrap}.save-meal-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.recipes-tabs{display:flex;gap:4px;padding:12px 20px 0;border-bottom:1px solid var(--border);background:var(--bg-surface)}.recipes-tab{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;border-radius:var(--radius-sm) var(--radius-sm) 0 0;border:1px solid transparent;color:var(--text-secondary);background:transparent;cursor:pointer;transition:all .15s;position:relative;bottom:-1px}.recipes-tab:hover{color:var(--text-primary);background:var(--bg-subtle)}.recipes-tab.active{color:var(--accent-text);background:var(--bg-surface);border-color:var(--border) var(--border) var(--bg-surface)}.recipes-tab-count{font-size:10px;font-weight:700;padding:1px 6px;border-radius:var(--radius-full);background:var(--accent-light);color:var(--accent-text)}.recipes-tab.active .recipes-tab-count{background:var(--accent);color:#fff}.recipes-layout--global{flex-direction:column;overflow-y:auto;overflow-x:hidden;padding-bottom:8px}.recipes-grid--cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;padding:20px 24px;overflow-y:unset;flex:unset}.db-recipe-card{display:flex;flex-direction:column;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:box-shadow .15s,transform .15s,border-color .15s}.db-recipe-card:hover{border-color:var(--accent-mid);box-shadow:var(--shadow-md);transform:translateY(-2px)}.db-recipe-card--skeleton{height:280px;background:var(--bg-subtle);animation:skeleton-pulse 1.4s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.db-rc-image-wrap{position:relative;height:160px;overflow:hidden;background:var(--bg-subtle);flex-shrink:0}.db-rc-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;transition:transform .3s}.db-recipe-card:hover .db-rc-image{transform:scale(1.04)}.db-rc-image-emoji{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:52px}.db-rc-category-badge{position:absolute;bottom:8px;left:8px;font-size:10px;font-weight:700;text-transform:capitalize;letter-spacing:.03em;padding:3px 8px;border-radius:var(--radius-full);background:#00000085;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.db-rc-body{padding:12px 12px 8px;display:flex;flex-direction:column;gap:5px;flex:1}.db-rc-name{font-size:13.5px;font-weight:600;color:var(--text-primary);line-height:1.35;margin:0}.db-rc-meta{font-size:11px;color:var(--text-muted);margin:0}.db-rc-footer{padding:0 10px 10px}.db-rc-planner-btn{width:100%;padding:7px 0;font-size:12px;font-weight:600;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;transition:all .12s}.db-rc-planner-btn:hover{background:var(--yellow-light);border-color:var(--yellow-border);color:var(--text-primary)}.db-rc-planner-btn--locked{opacity:.65;cursor:default}.db-rc-planner-btn--locked:hover{background:var(--bg-subtle);border-color:var(--border-strong);color:var(--text-secondary)}.db-rc-attribution{position:absolute;bottom:32px;right:6px;font-size:9px;color:#ffffffb3;margin:0;line-height:1;pointer-events:auto}.db-rc-attribution a{color:#ffffffb3;text-decoration:none}.db-rc-attribution a:hover{color:#fff;text-decoration:underline}.rc-tag--category{background:var(--accent-light);color:var(--accent-text);font-weight:700;text-transform:capitalize}.rc-tag--light{background:#ffffff38;color:#fff;border-color:#ffffff4d}.recipe-modal-backdrop{align-items:center}.recipe-modal{background:var(--bg-surface);border-radius:var(--radius-lg);max-width:660px;width:calc(100vw - 32px);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;box-shadow:0 24px 60px #00000047;animation:modal-pop .2s cubic-bezier(.34,1.56,.64,1)}@keyframes modal-pop{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}.recipe-modal::-webkit-scrollbar{width:4px}.recipe-modal::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.rm-image-wrap{position:relative;height:240px;flex-shrink:0;overflow:hidden;background:var(--bg-subtle)}.rm-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.rm-image-emoji{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:72px}.rm-close{position:absolute;top:12px;right:12px;z-index:2;width:32px;height:32px;border-radius:50%;background:#00000073;color:#fff;border:none;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .12s}.rm-close:hover{background:#000000b3}.rm-image-overlay{position:absolute;bottom:0;left:0;right:0;padding:32px 20px 16px;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 100%)}.rm-title{font-family:MavenPro,serif;font-size:22px;font-weight:700;color:#fff;margin:0 0 8px;line-height:1.2}.rm-meta-row{display:flex;flex-wrap:wrap;gap:5px}.rm-attribution{position:absolute;bottom:6px;right:10px;font-size:10px;color:#ffffffa6;margin:0;line-height:1}.rm-attribution a{color:#ffffffa6;text-decoration:none}.rm-attribution a:hover{color:#fff;text-decoration:underline}.rm-body{padding:20px 24px 24px;display:flex;flex-direction:column;gap:14px}.rm-instructions{font-size:13px;color:var(--text-secondary);line-height:1.65;margin:0}.rm-section-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin:0}.rm-count{font-weight:400}.rm-ingredients{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;margin:0;padding:0;list-style:none}.rm-ing-item{font-size:13px;color:var(--text-primary);padding:5px 0;border-bottom:1px solid var(--border);line-height:1.3}.rm-actions{display:flex;gap:10px;padding-top:4px}.rm-print-btn{flex-shrink:0}.rm-print-btn--locked{opacity:.5;cursor:not-allowed}.pagination{display:flex;align-items:center;justify-content:center;gap:4px;padding:16px 24px 20px;flex-shrink:0}.pagination-btn{min-width:34px;height:34px;padding:0 6px;font-size:13px;font-weight:500;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;transition:all .12s}.pagination-btn:hover{border-color:var(--accent-mid);color:var(--accent-text)}.pagination-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}.pagination-nav{height:34px;padding:0 14px;font-size:12.5px;font-weight:600;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;transition:all .12s}.pagination-nav:hover:not(:disabled){border-color:var(--accent-mid);color:var(--accent-text)}.pagination-nav:disabled{opacity:.35;cursor:not-allowed}.pagination-ellipsis{font-size:14px;color:var(--text-muted);padding:0 4px;line-height:34px}.auth-gate-modal{max-width:380px;width:calc(100vw - 40px);text-align:center;padding:36px 28px 28px}.auth-gate-icon{font-size:40px;display:block;margin-bottom:12px}.auth-gate-title{font-size:17px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.auth-gate-desc{font-size:13px;color:var(--text-secondary);line-height:1.55;margin:0 0 20px}.auth-gate-actions{display:flex;flex-direction:column;gap:8px}.auth-gate-btn{text-decoration:none;display:block;text-align:center}.rm-print-header{display:none}@media print{body>*{display:none!important}.recipe-modal-backdrop{display:flex!important;position:fixed;inset:0;background:#fff;padding:0;align-items:flex-start}.recipe-modal{display:block!important;max-height:none;overflow:visible;box-shadow:none;border-radius:0;width:100%}.rm-image-wrap,.rm-actions,.rm-close,.modal-backdrop>*:not(.recipe-modal){display:none!important}.rm-print-header{display:block!important;padding:24px;border-bottom:2px solid #000}.rm-print-header h1{font-size:24px;margin:0 0 4px}.rm-print-header p{font-size:13px;color:#555;margin:0}.rm-print-instructions{margin-top:8px!important}.rm-body{padding:20px 24px}.rm-ingredients{grid-template-columns:1fr 1fr 1fr}}.saved-meal-card{border-left:3px solid var(--accent-mid)}.rc-btn--edit{color:var(--text-secondary)}.rc-btn--edit:hover{color:var(--accent-text);background:var(--accent-light)}.rc-btn--delete{color:var(--text-muted)}.rc-btn--delete:hover{color:var(--danger-text, #c0392b);background:var(--danger-bg, #fdf0ef)}.rc-desc{font-size:11px;color:var(--text-muted);margin:2px 0 4px;line-height:1.4}.save-meal-modal{max-width:460px;width:90vw}.smm-form{display:flex;flex-direction:column;gap:10px;padding:0 20px}.smm-name-row{display:flex;gap:8px;align-items:center}.smm-emoji-input{width:44px;text-align:center;font-size:22px;padding:6px 4px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-subtle)}.smm-name-input{flex:1;padding:8px 12px;font-size:14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-input, var(--bg-subtle));color:var(--text-primary)}.smm-name-input:focus{outline:none;border-color:var(--accent-mid)}.smm-desc{padding:8px 12px;font-size:13px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-input, var(--bg-subtle));color:var(--text-primary);resize:vertical;font-family:inherit}.smm-desc:focus{outline:none;border-color:var(--accent-mid)}.smm-tags-label{font-size:11px;font-weight:600;color:var(--text-muted);margin:0;text-transform:uppercase;letter-spacing:.05em}.smm-tags{display:flex;flex-wrap:wrap;gap:6px}.smm-actions{display:flex;gap:8px;justify-content:flex-end;padding:12px 20px 20px;border-top:1px solid var(--border);margin-top:4px}.smm-actions .modal-btn{min-width:100px}.pme-modal{max-width:500px;width:92vw;max-height:85vh;display:flex;flex-direction:column}.pme-macros{display:flex;align-items:center;gap:6px;padding:8px 20px;background:var(--bg-subtle);border-bottom:1px solid var(--border);font-size:13px;flex-shrink:0}.pme-macro-item{color:var(--text-primary)}.pme-macro-item b{color:var(--accent-text)}.pme-macro-sep{width:1px;height:12px;background:var(--border-strong)}.pme-ingredients{flex:1;overflow-y:auto;padding:8px 16px;display:flex;flex-direction:column;gap:4px}.pme-ing-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--bg-subtle)}.pme-ing-emoji{font-size:16px;flex-shrink:0}.pme-ing-name{flex:1;font-size:13px;color:var(--text-primary)}.pme-ing-grams{width:64px;padding:4px 6px;text-align:right;font-size:13px;font-weight:600;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary)}.pme-ing-grams:focus{outline:none;border-color:var(--accent-mid)}.pme-ing-unit{font-size:11px;color:var(--text-muted);width:18px;flex-shrink:0}.pme-ing-rm{width:22px;height:22px;border-radius:50%;font-size:14px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .1s}.pme-ing-rm:hover{background:var(--danger-bg, #fdf0ef);color:var(--danger-text, #c0392b)}.pme-add-wrap{position:relative;padding:8px 16px;flex-shrink:0}.pme-search{width:100%;padding:8px 12px;font-size:13px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-primary);box-sizing:border-box}.pme-search:focus{outline:none;border-color:var(--accent-mid);border-style:solid}.pme-search-results{position:absolute;left:16px;right:16px;top:calc(100% - 8px);background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0000001f;z-index:50;overflow:hidden}.pme-search-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;color:var(--text-primary);text-align:left;border-bottom:1px solid var(--border);transition:background .1s}.pme-search-item:last-child{border-bottom:none}.pme-search-item:hover{background:var(--accent-light)}.pme-search-cat{margin-left:auto;font-size:10px;color:var(--text-muted)}.pme-actions{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border);flex-shrink:0}.pme-actions .modal-btn{flex:1}.modal-btn.disabled{opacity:.45;cursor:not-allowed}.rp-section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:8px 12px 4px;margin:0}.rp-divider{height:1px;background:var(--border);margin:4px 0}.rp-item--saved{background:var(--accent-light)}.rp-item--saved:hover{background:var(--accent-mid, #d5e8f5)}.prc-badge{font-size:9px;font-weight:700;color:var(--accent-text);background:var(--accent-light);padding:1px 5px;border-radius:var(--radius-full);display:inline-block;margin-top:2px}@media(max-width:1300px){.app-main{grid-template-columns:260px 1fr 272px}.plate-wrap{width:380px;height:380px}}@media(max-width:1050px){.app-main{grid-template-columns:240px 1fr 248px}.plate-wrap{width:300px;height:300px}.recipe-detail{width:280px}}@media(max-width:820px){.app-main{grid-template-columns:1fr}.ingredient-sidebar,.stats-panel{height:auto;position:relative;top:0;border:none;border-bottom:1px solid var(--border)}.plate-wrap{width:280px;height:280px}.recipes-layout{flex-direction:column}.recipe-detail{width:100%;border-left:none;border-top:1px solid var(--border)}.planner-grid{grid-template-columns:60px repeat(7,minmax(80px,1fr))}.planner-summary{width:100%;border-left:none;border-top:1px solid var(--border)}}.planner-action-btn.locked{opacity:.75}.btn-lock{font-size:10px;line-height:1}.planner-repeat-wrap{display:flex;gap:4px}.sl-cost{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums;margin-left:4px}.sl-total-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;margin-top:8px;border-top:2px solid var(--border-strong)}.sl-total-label{font-size:13px;font-weight:700;color:var(--text-primary)}.sl-total-value{font-size:14px;font-weight:700;color:var(--accent-text)}.sl-empty{text-align:center;color:var(--text-muted);font-size:13px;padding:24px 0}.sl-raw-section{border-top:1.5px dashed var(--border-strong);margin-top:8px;padding-top:4px}.sl-raw-hint{font-size:10px;font-weight:400;color:var(--text-muted)}.sl-raw-item .sl-name{flex:1}.sl-raw-source{font-size:10.5px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.pme-raw-section{padding:10px 20px 4px;border-bottom:1px solid var(--border)}.pme-raw-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 8px}.pme-raw-hint{font-weight:400;text-transform:none;letter-spacing:0;font-size:10.5px}.pme-raw-list{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;max-height:180px;overflow-y:auto}.pme-raw-item{font-size:12.5px;color:var(--text-primary);padding:4px 0;border-bottom:1px solid var(--border);line-height:1.4}.pme-raw-list::-webkit-scrollbar{width:3px}.pme-raw-list::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.autofill-modal{max-width:480px;width:92vw}.af-section{padding:12px 20px}.af-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 10px}.af-goal-note{font-size:12px;color:var(--text-secondary);margin:0 0 10px}.af-lazy-btns{display:flex;flex-wrap:wrap;gap:8px}.af-lazy-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-primary);cursor:pointer;transition:all .15s}.af-lazy-btn:hover{border-color:var(--accent-mid);background:var(--accent-light);color:var(--accent-text)}.af-divider{height:1px;background:var(--border);margin:0 20px}.af-prefs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.af-pref-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;border:1.5px solid var(--border-strong);border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;transition:all .15s}.af-pref-btn:hover{border-color:var(--accent-mid)}.af-pref-btn.active{border-color:var(--accent);background:var(--accent);color:#fff}.af-overwrite-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);cursor:pointer}.af-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 20px;border-top:1px solid var(--border);gap:12px}.af-fill-count{font-size:12px;color:var(--text-muted)}.af-actions{display:flex;gap:8px}.af-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px 24px;color:var(--text-muted);font-size:14px}.af-loading-spinner{display:block;width:32px;height:32px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent-mid);animation:af-spin .7s linear infinite}@keyframes af-spin{to{transform:rotate(360deg)}}.af-error{margin:0 20px 4px;padding:10px 14px;border-radius:8px;background:color-mix(in srgb,#ef4444 12%,transparent);border:1px solid color-mix(in srgb,#ef4444 30%,transparent);color:#ef4444;font-size:13px;line-height:1.4}.wd-modal{max-width:440px;width:92vw}.wd-body{padding:4px 0 8px;overflow-y:auto;max-height:65vh}.wd-section{padding:12px 20px;border-bottom:1px solid var(--border)}.wd-section:last-child{border-bottom:none}.wd-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 10px;display:flex;align-items:center;gap:6px}.wd-premium-chip{font-size:10px;font-weight:700;padding:1px 6px;border-radius:var(--radius-full);background:#fff3cd;color:#856404}.wd-stat-row{display:flex;align-items:baseline;justify-content:space-between;padding:3px 0;font-size:13px}.wd-stat-label{color:var(--text-secondary)}.wd-stat-value{font-weight:700;color:var(--text-primary)}.wd-stat-sub{font-size:11px;font-weight:400;color:var(--text-muted)}.wd-completion-row{display:flex;align-items:baseline;gap:4px;margin-bottom:6px}.wd-completion-num{font-size:28px;font-weight:800;color:var(--accent-text);line-height:1}.wd-completion-total{font-size:13px;color:var(--text-secondary);flex:1}.wd-completion-pct{font-size:20px;font-weight:700;color:var(--text-primary)}.wd-progress-track{height:6px;background:var(--bg-subtle);border-radius:3px;overflow:hidden}.wd-progress-fill{height:100%;border-radius:3px;transition:width .4s}.wd-macro-bars{display:flex;flex-direction:column;gap:6px;margin-top:10px}.wd-macro-line{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-muted)}.wd-macro-line .wd-progress-track{flex:1}.wd-lock{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg-subtle);font-size:12px;color:var(--text-muted)}.wd-lock-icon{font-size:16px}.wd-export-btn{padding:8px 16px;font-size:13px;font-weight:600;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-primary);cursor:pointer;transition:all .15s}.wd-export-btn:hover{border-color:var(--accent-mid);background:var(--accent-light)}.tab-premium{opacity:.8}.pantry-locked{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 20px}.pantry-lock-card{max-width:360px;text-align:center;padding:32px;background:var(--bg-surface);border:1.5px solid var(--border-strong);border-radius:var(--radius)}.pantry-lock-icon{font-size:40px;display:block;margin-bottom:12px}.pantry-lock-card h3{font-size:18px;margin:0 0 8px}.pantry-lock-card p{font-size:13px;color:var(--text-secondary);margin:0 0 6px}.pantry-lock-sub{font-size:12px;color:var(--text-muted)}.pantry-layout{display:flex;flex-direction:column;flex:1;overflow:hidden}.pantry-picker{border-bottom:1px solid var(--border);padding:12px 20px;background:var(--bg-surface);flex-shrink:0}.pantry-picker-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.pantry-title{font-size:15px;font-weight:700;margin:0;flex:1}.pantry-header-actions{display:flex;align-items:center;gap:8px}.pantry-count{font-size:12px;color:var(--text-muted)}.pantry-clear-btn,.pantry-toggle-btn{font-size:11px;font-weight:600;padding:3px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-full);color:var(--text-secondary);background:var(--bg-subtle);cursor:pointer}.pantry-clear-btn:hover{border-color:var(--danger-text, #c0392b);color:var(--danger-text, #c0392b)}.pantry-categories{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto}.pantry-cat-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 4px}.pantry-cat-items{display:flex;flex-wrap:wrap;gap:6px}.pantry-ing-chip{display:flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px;border:1px solid var(--border-strong);border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;transition:all .1s}.pantry-ing-chip:hover{border-color:var(--accent-mid)}.pantry-ing-chip.active{border-color:var(--accent);background:var(--accent-light);color:var(--accent-text);font-weight:600}.pantry-results{flex:1;overflow-y:auto;padding:16px 20px}.pantry-results-title{font-size:14px;font-weight:700;color:var(--text-secondary);margin:0 0 12px}.pantry-match-list{display:flex;flex-direction:column;gap:8px}.pantry-match-card{padding:10px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.pmc-header{display:flex;align-items:center;gap:8px}.pmc-emoji{font-size:20px;flex-shrink:0}.pmc-info{flex:1;min-width:0}.pmc-name{font-size:13px;font-weight:600;color:var(--text-primary);display:block}.pmc-have{font-size:11px;color:var(--text-muted)}.pmc-match-bar-wrap{width:60px;height:4px;background:var(--bg-subtle);border-radius:2px;overflow:hidden;flex-shrink:0}.pmc-match-bar{height:100%;background:var(--accent);border-radius:2px}.pmc-actions{display:flex;gap:4px;flex-shrink:0}.pmc-missing{font-size:11px;color:var(--text-muted);margin-top:6px;padding-top:6px;border-top:1px solid var(--border)}.auth-page{min-height:100vh;display:flex;font-family:MavenPro,system-ui,sans-serif}.auth-brand-panel{flex:0 0 44%;background:linear-gradient(160deg,#0d1f12,#1a2d1f 55%,#1a1916);display:flex;flex-direction:column;padding:48px 52px;position:relative;overflow:hidden}.auth-brand-dots{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.045) 1px,transparent 1px);background-size:26px 26px}.auth-brand-inner{position:relative;z-index:1;display:flex;flex-direction:column;height:100%}.auth-brand-logo{height:36px;width:auto;-o-object-fit:contain;object-fit:contain;filter:brightness(0) invert(1);margin-bottom:64px;align-self:flex-start}.auth-brand-content{flex:1}.auth-brand-headline{font-size:clamp(26px,2.8vw,38px);font-weight:800;line-height:1.18;letter-spacing:-.025em;color:#ffffffeb;margin-bottom:16px}.auth-brand-accent{color:#6fbf8c}.auth-brand-sub{font-size:15px;line-height:1.65;color:#ffffff73;margin-bottom:36px}.auth-brand-features{display:flex;flex-direction:column;gap:12px}.auth-brand-feature{display:flex;align-items:flex-start;gap:11px;font-size:14px;color:#ffffff9e;line-height:1.4}.auth-brand-check{flex-shrink:0;width:18px;height:18px;border-radius:50%;background:#4a7c5959;border:1px solid rgba(74,124,89,.6);color:#6fbf8c;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}.auth-brand-footer{font-size:12px;color:#ffffff40;margin-top:48px}.auth-form-panel{flex:1;background:#fff;display:flex;align-items:center;justify-content:center;padding:40px 32px;min-height:100vh}.auth-form-wrap{width:100%;max-width:380px}.auth-mobile-logo-wrap{display:none;justify-content:center;margin-bottom:36px}.auth-mobile-logo{height:40px;width:auto}.auth-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:28px}.auth-tab{flex:1;padding:12px 0;font-size:14px;font-weight:700;border:none;background:transparent;cursor:pointer;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;font-family:inherit;transition:color .15s,border-color .15s}.auth-tab:hover{color:var(--text-primary)}.auth-tab.active{color:var(--accent-text);border-bottom-color:var(--accent)}.auth-form{display:flex;flex-direction:column;gap:18px}.auth-form--modal{padding:16px 20px;gap:10px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.auth-input-wrap{position:relative;display:flex;align-items:center}.auth-input-wrap .auth-input{padding-right:52px}.auth-input{width:100%;padding:11px 14px;font-size:14.5px;border:1.5px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-canvas);color:var(--text-primary);font-family:inherit;transition:border-color .15s,background .15s,box-shadow .15s}.auth-input::-moz-placeholder{color:var(--text-placeholder)}.auth-input::placeholder{color:var(--text-placeholder)}.auth-input:focus{outline:none;border-color:var(--accent);background:var(--bg-surface);box-shadow:0 0 0 3px #4a7c591f}.auth-input.has-error{border-color:var(--red)}.auth-input.has-error:focus{box-shadow:0 0 0 3px #d94f4f1f}.auth-pw-toggle{position:absolute;right:12px;background:none;border:none;cursor:pointer;font-size:11px;font-weight:700;color:var(--text-muted);font-family:inherit;padding:4px 2px;transition:color .12s}.auth-pw-toggle:hover{color:var(--text-secondary)}.auth-field-error{font-size:12px;color:var(--red);margin-top:2px}.auth-error{font-size:13px;color:var(--red);background:var(--red-light);border:1px solid rgba(217,79,79,.2);border-radius:var(--radius-md);padding:10px 14px}.auth-forgot-link{align-self:flex-end;font-size:12px;color:var(--text-muted);background:none;border:none;padding:2px 0;cursor:pointer;font-family:inherit;text-decoration:underline;text-underline-offset:2px;transition:color .12s}.auth-forgot-link:hover{color:var(--accent-text)}.auth-submit{width:100%;padding:12px;font-size:15px;font-weight:700;border:none;border-radius:var(--radius-md);background:var(--accent);color:#fff;cursor:pointer;font-family:inherit;transition:background .15s,opacity .15s,transform .1s}.auth-submit:hover:not(:disabled){background:var(--accent-text)}.auth-submit:active:not(:disabled){transform:translateY(1px)}.auth-submit:disabled{opacity:.55;cursor:not-allowed}.auth-pw-strength{display:flex;flex-direction:column;gap:10px;padding-top:8px}.auth-pw-bars-row{display:flex;align-items:center;gap:10px}.auth-pw-bars{display:flex;gap:4px;flex:1}.auth-pw-bar{flex:1;height:4px;border-radius:2px;background:var(--border);transition:background .25s}.auth-pw-label{font-size:11px;font-weight:700;letter-spacing:.03em;white-space:nowrap;min-width:36px;text-align:right;transition:color .25s}.auth-pw-reqs{display:flex;flex-direction:column;gap:4px}.auth-pw-req{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-muted);transition:color .2s}.auth-pw-req.met{color:var(--accent)}.auth-pw-req-icon{width:14px;text-align:center;font-size:11px;font-weight:800}.auth-tos-row{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.auth-tos-check{width:16px;height:16px;flex-shrink:0;margin-top:1px;accent-color:var(--accent)}.auth-tos-text{font-size:13px;color:var(--text-secondary);line-height:1.5}.auth-tos-link{color:var(--accent-text);text-decoration:underline;text-underline-offset:2px}.auth-section-title{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:4px}.auth-verify{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.auth-verify-icon{font-size:52px;line-height:1;margin-bottom:4px}.auth-verify-title{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--text-primary)}.auth-verify-desc{font-size:14px;color:var(--text-secondary);line-height:1.6;max-width:320px}.auth-verify-email{color:var(--accent-text)}.auth-dev-box{width:100%;background:#fffbeb;border:1px solid #f0d060;border-radius:var(--radius-md);padding:12px 14px;text-align:left;display:flex;flex-direction:column;gap:4px}.auth-dev-label{font-size:11px;font-weight:700;color:#b08000}.auth-dev-hint{font-size:11px;color:var(--text-muted)}.auth-dev-token,.auth-dev-code{font-family:monospace;font-size:12px;word-break:break-all;color:var(--accent-text);font-weight:700}.auth-dev-code{font-size:24px;letter-spacing:.15em;word-break:normal}.auth-verify-sent{font-size:12px;color:var(--accent);font-weight:600}.auth-verify-actions{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;margin-top:8px}.auth-resend-btn{width:100%;padding:11px;font-size:14px;font-weight:700;border:1.5px solid var(--border-strong);border-radius:var(--radius-md);background:transparent;color:var(--text-primary);cursor:pointer;font-family:inherit;transition:border-color .12s,background .12s}.auth-resend-btn:hover:not(:disabled){border-color:var(--accent-mid);background:var(--accent-light)}.auth-resend-btn:disabled{opacity:.5;cursor:not-allowed}.auth-switch-btn{background:none;border:none;cursor:pointer;font-family:inherit;font-size:13px;color:var(--text-muted);text-decoration:underline;text-underline-offset:2px;transition:color .12s}.auth-switch-btn:hover{color:var(--text-secondary)}.auth-forgot-wrap{display:flex;flex-direction:column;gap:20px}.auth-forgot-back{align-self:flex-start;background:none;border:none;cursor:pointer;font-family:inherit;font-size:13px;color:var(--text-muted);text-decoration:underline;text-underline-offset:2px;padding:0;transition:color .12s}.auth-forgot-back:hover{color:var(--text-secondary)}.auth-forgot-desc{font-size:14px;color:var(--text-secondary);line-height:1.5}.auth-forgot-success{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}.verify-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-canvas);padding:24px;font-family:MavenPro,system-ui,sans-serif}.verify-card{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:48px 40px;width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}.verify-logo{height:36px;margin-bottom:8px}.verify-icon{width:56px;height:56px;border-radius:50%;font-size:22px;font-weight:900;display:flex;align-items:center;justify-content:center}.verify-icon--success{background:var(--accent-light);color:var(--accent-text);border:2px solid var(--accent-mid)}.verify-icon--error{background:var(--red-light);color:var(--red);border:2px solid rgba(217,79,79,.2)}.verify-title{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--text-primary)}.verify-desc{font-size:14px;color:var(--text-secondary);line-height:1.6}.verify-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.verify-btn{padding:11px 28px;font-size:14px;font-weight:700;border:none;border-radius:var(--radius-md);background:var(--accent);color:#fff;cursor:pointer;font-family:inherit;transition:background .15s}.verify-btn:hover{background:var(--accent-text)}.verify-btn--outline{background:transparent;border:1.5px solid var(--border-strong);color:var(--text-primary)}.verify-btn--outline:hover{background:var(--bg-subtle)}@media(max-width:768px){.auth-brand-panel{display:none}.auth-form-panel{padding:32px 20px}.auth-mobile-logo-wrap{display:flex}}@media(max-width:400px){.auth-form-panel{padding:24px 16px}}.auth-modal{max-width:420px;width:92vw}.auth-modal-msg{font-size:13px;color:var(--text-secondary);background:var(--accent-light);border-left:3px solid var(--accent);padding:8px 12px;margin:0}.nav-user-wrap{display:flex;align-items:center;gap:4px}.nav-user-btn{display:flex;align-items:center;gap:7px;padding:5px 10px 5px 5px;border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--bg-subtle);color:var(--text-primary);font-size:12px;font-weight:600;text-decoration:none;transition:all .15s}.nav-user-btn:hover{background:var(--accent-light);border-color:var(--accent-mid);color:var(--accent-text)}.nav-avatar{width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nav-avatar-img{width:24px;height:24px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.nav-user-email{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-logout-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--border-strong);background:var(--bg-subtle);color:var(--text-secondary);font-size:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.nav-logout-btn:hover{background:#fdf0ef;color:#c0392b;border-color:#f5c6c6}.nav-login-btn{padding:6px 14px;font-size:12px;font-weight:700;border-radius:var(--radius-full);border:1.5px solid var(--accent);color:var(--accent-text);background:var(--accent-light);text-decoration:none;transition:all .15s}.nav-login-btn:hover{background:var(--accent);color:#fff}.profile-page{display:flex;justify-content:center;padding:32px 16px;background:var(--bg-canvas);min-height:calc(100vh - 56px)}.profile-card{width:100%;max-width:560px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 2px 12px #0000000d;overflow:hidden}.profile-identity{display:flex;align-items:center;gap:12px;padding:20px 24px;border-bottom:1px solid var(--border)}.profile-avatar{width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;font-size:16px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.profile-avatar--large{width:52px;height:52px;font-size:18px}.profile-avatar-img{width:44px;height:44px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.profile-avatar-img--large{width:52px;height:52px}.profile-avatar-wrap{position:relative;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}.profile-avatar-edit{position:absolute;bottom:-2px;right:-2px;background:var(--accent);color:#fff;font-size:9px;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.profile-avatar-wrap:hover .profile-avatar-edit{opacity:1}.profile-identity-info{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.profile-email{font-size:14px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-badge{font-size:10px;font-weight:700;padding:1px 7px;border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-muted);align-self:flex-start}.profile-logout-btn{padding:6px 14px;font-size:12px;font-weight:600;border:1px solid var(--border-strong);border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;transition:all .15s;flex-shrink:0}.profile-logout-btn:hover{background:#fdf0ef;color:#c0392b;border-color:#f5c6c6}.profile-section{padding:20px 24px;border-bottom:1px solid var(--border)}.profile-section:last-child{border-bottom:none}.profile-section-title{font-size:13px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.profile-section-desc{font-size:12px;color:var(--text-muted);margin:0 0 14px}.profile-goal-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.profile-goal-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-subtle);text-align:left;cursor:pointer;transition:all .15s}.profile-goal-btn:hover{border-color:var(--accent-mid);background:var(--accent-light)}.profile-goal-btn.active{border-color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 2px var(--accent-mid)}.profile-goal-emoji{font-size:20px}.profile-goal-label{font-size:13px;font-weight:700;color:var(--text-primary)}.profile-goal-desc{font-size:11px;color:var(--text-muted)}.profile-goal-active{font-size:12px;color:var(--accent-text);background:var(--accent-light);border-radius:var(--radius-sm);padding:6px 10px;margin-top:10px}.profile-stats-row{display:flex;gap:24px}.profile-stat{display:flex;flex-direction:column;gap:2px}.profile-stat-value{font-size:28px;font-weight:800;color:var(--accent-text);line-height:1}.profile-stat-label{font-size:11px;color:var(--text-muted)}.recipes-auth-gate{display:flex;align-items:center;justify-content:center;padding:60px 20px;flex:1}.recipes-auth-card{max-width:360px;text-align:center;padding:36px 32px;background:var(--bg-surface);border:1.5px solid var(--border-strong);border-radius:var(--radius)}.recipes-auth-icon{font-size:40px;display:block;margin-bottom:12px}.recipes-auth-card h3{font-size:17px;font-weight:700;margin:0 0 8px;color:var(--text-primary)}.recipes-auth-card p{font-size:13px;color:var(--text-secondary);margin:0 0 20px}.recipes-auth-btn{display:inline-block;padding:10px 24px;font-size:13px;font-weight:700;border-radius:var(--radius-full);background:var(--accent);color:#fff;text-decoration:none;transition:background .15s}.recipes-auth-btn:hover{background:var(--accent-text)}.modal-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:999;display:flex;align-items:center;justify-content:center;animation:backdrop-in .15s ease}.modal-box{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 20px 60px #0000004d}.premium-modal{max-width:440px;width:92vw}.premium-modal .modal-title{flex:1;text-align:center}.pm-feature-highlight{display:flex;align-items:center;gap:14px;padding:14px 20px;background:linear-gradient(135deg,var(--accent-light) 0%,#fff8e1 100%);border-bottom:1px solid var(--border)}.pm-feature-icon{font-size:32px;flex-shrink:0}.pm-feature-name{font-size:14px;font-weight:700;color:var(--text-primary);margin-bottom:2px}.pm-feature-desc{font-size:12px;color:var(--text-secondary)}.pm-body{padding:20px;display:flex;flex-direction:column;gap:14px}.pm-price-row{display:flex;align-items:baseline;gap:4px;justify-content:center;padding:8px 0}.pm-price{font-size:36px;font-weight:800;color:var(--accent-text)}.pm-price-period{font-size:16px;color:var(--text-secondary)}.pm-features-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pm-features-list li{font-size:13px;color:var(--text-primary);padding:4px 0;border-bottom:1px solid var(--border)}.pm-features-list li:last-child{border-bottom:none}.pm-features-list--compact li{font-size:12px}.pm-upgrade-btn{width:100%;padding:12px;font-size:14px;font-weight:700;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;transition:background .15s}.pm-upgrade-btn:hover:not(:disabled){background:var(--accent-text)}.pm-upgrade-btn:disabled{opacity:.65;cursor:not-allowed}.pm-cancel-btn{width:100%;padding:8px;font-size:12px;border:none;background:transparent;color:var(--text-muted);cursor:pointer}.pm-cancel-btn:hover{color:var(--text-secondary)}.profile-badge--premium{background:#fff3cd;color:#856404}.profile-sub-active{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--accent-light);border:1px solid var(--accent-mid);border-radius:var(--radius-sm)}.profile-sub-icon{font-size:24px;flex-shrink:0}.profile-sub-label{font-size:14px;font-weight:700;color:var(--accent-text)}.profile-sub-desc{font-size:12px;color:var(--text-muted)}.profile-sub-upgrade{display:flex;flex-direction:column;gap:10px}.sub-manage{display:flex;flex-direction:column;gap:10px;margin-top:14px}.sub-loading{font-size:12px;color:var(--text-muted);margin-top:10px}.sub-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sub-info-item{display:flex;flex-direction:column;gap:2px;padding:8px 10px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm)}.sub-info-item:last-child{grid-column:1 / -1}.sub-info-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.sub-info-value{font-size:13px;font-weight:600;color:var(--text-primary)}.sub-status-badge{font-size:12px;font-weight:700;color:#2d7a3a}.sub-status-badge.canceling{color:#c07000}.sub-status-badge.canceled{color:#c0392b}.sub-upgrade-yearly-btn{width:100%;padding:9px 12px;font-size:12.5px;font-weight:700;font-family:inherit;background:var(--bg-subtle);color:var(--accent-text);border:1.5px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s}.sub-upgrade-yearly-btn:hover:not(:disabled){background:var(--accent-light)}.sub-upgrade-yearly-btn:disabled{opacity:.65;cursor:not-allowed}.sub-portal-btn{width:100%;padding:9px 12px;font-size:12.5px;font-weight:600;font-family:inherit;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.sub-portal-btn:hover:not(:disabled){background:var(--bg-subtle);color:var(--text-primary)}.sub-portal-btn:disabled{opacity:.65;cursor:not-allowed}.sub-portal-note{font-size:11px;color:var(--text-muted);margin:0;text-align:center}.sub-canceled-note{font-size:11.5px;color:#8b4513;background:#fff5ec;border:1px solid #f0c8a0;border-radius:var(--radius-sm);padding:7px 10px;margin:0}.lang-selector{display:grid;grid-template-columns:1fr 1fr;gap:6px}.lang-btn{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-subtle);border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:12.5px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s}.lang-btn:hover{border-color:var(--accent-mid);color:var(--text-primary);background:var(--accent-light)}.lang-btn.active{border-color:var(--accent);background:var(--accent-light);color:var(--accent-text);font-weight:700}.lang-flag{font-size:16px;line-height:1}.lang-label{font-size:12px}.nav-gopremium-btn{padding:5px 12px;font-size:12px;font-weight:700;border-radius:var(--radius-full);border:1.5px solid #f0c040;background:#fffbeb;color:#856404;text-decoration:none;transition:all .15s;white-space:nowrap}.nav-gopremium-btn:hover{background:#f0c040;color:#5a4000}.nav-premium-star{font-size:12px;line-height:1}.payment-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 56px);background:var(--bg-canvas);padding:24px}.payment-card{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;max-width:360px;width:100%;padding:40px 32px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 4px 24px #00000014}.payment-card--success{border-color:var(--accent-mid)}.payment-card--error{border-color:#f5c6c6}.payment-icon{font-size:48px;line-height:1}.payment-title{font-size:22px;font-weight:800;margin:0;color:var(--text-primary)}.payment-msg{font-size:13px;color:var(--text-secondary);margin:0}.payment-spinner{width:36px;height:36px;border:3px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
