:root{color-scheme:light;--bg: #f5f5f7;--surface: rgba(255, 255, 255, .86);--surface-strong: #ffffff;--surface-muted: #eceef2;--text: #1d1d1f;--muted: #6e6e73;--border: rgba(0, 0, 0, .1);--shadow: 0 16px 44px rgba(15, 23, 42, .1);--accent: #007aff;--accent-strong: #0063cc;--green: #2f9e44;--coral: #e86d4a;--danger: #d92d20;--radius: 8px;--control: 40px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg: #0f1012;--surface: rgba(29, 29, 31, .88);--surface-strong: #1f2024;--surface-muted: #2b2c31;--text: #f5f5f7;--muted: #a1a1aa;--border: rgba(255, 255, 255, .12);--shadow: 0 18px 50px rgba(0, 0, 0, .42);--accent: #0a84ff;--accent-strong: #49a5ff;--green: #32d74b;--coral: #ff7f50;--danger: #ff6961}*{box-sizing:border-box}html{min-width:320px;background:var(--bg)}body{min-width:320px;margin:0;color:var(--text);background:linear-gradient(180deg,#ffffffc7,#fff0 260px),var(--bg);font-family:var(--font);font-size:15px;line-height:1.45;letter-spacing:0;-webkit-font-smoothing:antialiased}:root[data-theme=dark] body{background:linear-gradient(180deg,#ffffff0d,#fff0 260px),var(--bg)}button,input,textarea,select{font:inherit;letter-spacing:0}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}img{display:block;max-width:100%}.app{min-height:100vh;padding:18px}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(220px,1fr);gap:16px;align-items:center;max-width:1680px;margin:0 auto 18px;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.brand{display:inline-flex;min-width:0;align-items:center;gap:10px;font-weight:700;font-size:18px}.brand-mark{display:inline-grid;width:36px;height:36px;flex:0 0 auto;place-items:center;border-radius:var(--radius);color:#fff;background:linear-gradient(135deg,var(--accent),var(--green))}.tabs,.segmented{display:inline-flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.tabs button,.segmented button{display:inline-flex;min-height:34px;align-items:center;justify-content:center;gap:7px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;white-space:nowrap}.tabs button{min-width:104px;padding:0 12px}.segmented.compact button{width:34px;padding:0}.tabs button.is-active,.segmented button.is-active{color:var(--text);background:var(--surface-strong);box-shadow:0 1px 3px #0000001f}.count-badge{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;padding:0 6px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px}.toolbar{display:inline-flex;justify-content:flex-end;gap:10px}.workspace{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr) minmax(320px,390px);gap:18px;max-width:1680px;margin:0 auto;align-items:start}.workspace-shopping{grid-template-columns:minmax(0,900px);justify-content:center}.control-panel,.results-panel,.detail-panel,.shopping-page,.detail-card,.shopping-card{min-width:0}.control-panel,.results-panel,.detail-card,.shopping-card,.shopping-page{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.control-panel,.results-panel,.detail-card,.shopping-card,.shopping-page{padding:16px}.detail-panel{display:grid;gap:18px;position:sticky;top:94px}.stack{display:grid;gap:14px}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.stack .panel-header,.detail-card .panel-header,.shopping-card .panel-header{margin-bottom:0}.panel-title{display:inline-flex;min-width:0;align-items:center;gap:8px}.panel-title svg{color:var(--accent);flex:0 0 auto}h1,h2,h3,p{margin:0}h2{min-width:0;font-size:18px;line-height:1.2}h3{font-size:15px;line-height:1.25}.muted{color:var(--muted);font-size:13px}label,.field-group{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:600}input,textarea,select{width:100%;min-height:var(--control);border:1px solid var(--border);border-radius:var(--radius);padding:9px 11px;color:var(--text);background:var(--surface-strong);outline:none}textarea{resize:vertical;min-height:92px}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.input-with-suffix{position:relative}.input-with-suffix input{padding-right:46px}.input-with-suffix span{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px;pointer-events:none}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.chip-grid,.region-grid,.quick-ingredient-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.chip-check{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;min-height:34px;padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);color:var(--text);font-size:13px;font-weight:500}.region-chip,.quick-ingredient{display:inline-flex;min-width:0;min-height:36px;align-items:center;justify-content:flex-start;gap:8px;border:1px solid var(--border);border-radius:var(--radius);padding:8px 9px;background:var(--surface-strong);color:var(--text);cursor:pointer;font-size:13px;font-weight:600}.region-chip span,.quick-ingredient span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.region-chip svg,.quick-ingredient svg{flex:0 0 auto;color:var(--accent)}.region-chip:hover,.quick-ingredient:hover,.region-chip.is-active{border-color:color-mix(in srgb,var(--accent) 48%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--surface-strong))}.region-chip.is-active{color:var(--accent)}.chip-check input,.toggle-row input,.shopping-list input{width:16px;min-height:16px;accent-color:var(--accent)}.toggle-row{display:flex;align-items:center;gap:10px;color:var(--text)}.primary-button,.secondary-button,.icon-text-button{display:inline-flex;min-height:var(--control);align-items:center;justify-content:center;gap:8px;border-radius:var(--radius);border:1px solid transparent;padding:0 13px;text-decoration:none;cursor:pointer;white-space:nowrap}.primary-button{color:#fff;background:var(--accent);font-weight:700}.primary-button:hover{background:var(--accent-strong)}.secondary-button,.icon-text-button{border-color:var(--border);color:var(--text);background:var(--surface-strong);font-weight:600}.secondary-button:hover,.icon-text-button:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}button:disabled{cursor:not-allowed;opacity:.55}.danger{color:var(--danger)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.load-more-row{display:flex;justify-content:center;padding-top:16px}.recipe-card{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.recipe-card:hover,.recipe-card.is-selected{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:0 10px 26px #007aff24}.recipe-card:hover{transform:translateY(-1px)}.image-button,.title-button{width:100%;border:0;background:transparent;cursor:pointer;text-align:left}.image-button{display:block;aspect-ratio:16 / 10;padding:0}.image-button img,.image-placeholder{width:100%;height:100%;object-fit:cover}.image-placeholder{display:grid;place-items:center;color:var(--muted);background:var(--surface-muted)}.recipe-card-body{display:grid;gap:10px;padding:12px}.title-button{min-height:42px;padding:0;color:var(--text);font-weight:700;line-height:1.25}.meta-row,.ingredient-score,.card-actions,.detail-actions,.shopping-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.meta-row span,.ingredient-score span{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:12px}.ingredient-score span:first-child{color:var(--green)}.ingredient-score span:last-child{color:var(--coral)}.card-actions{margin-top:2px}.card-actions .secondary-button{min-height:34px;padding:0 10px;font-size:13px}.detail-card,.shopping-card{display:grid;gap:14px}.detail-content{display:grid;gap:15px}.detail-image{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:var(--radius);background:var(--surface-muted)}.detail-heading{display:grid;gap:8px}.detail-heading h2{font-size:22px}.summary-text{color:var(--muted)}.fact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fact-tile{display:grid;grid-template-columns:18px minmax(0,1fr);gap:4px 8px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.fact-tile svg{color:var(--accent);grid-row:span 2}.fact-tile span{color:var(--muted);font-size:12px}.fact-tile strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag-list span{max-width:100%;overflow:hidden;border:1px solid var(--border);border-radius:999px;padding:4px 8px;background:var(--surface-muted);color:var(--text);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.detail-actions .primary-button,.detail-actions .secondary-button{flex:1 1 150px}.detail-section{display:grid;gap:10px}.nutrition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.nutrition-tile{display:grid;gap:2px;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.nutrition-tile span{color:var(--muted);font-size:12px}.nutrition-tile strong{font-size:18px}.nutrition-tile small{margin-left:3px;color:var(--muted);font-size:11px;font-weight:600}.ingredient-list,.shopping-list,.step-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.ingredient-list li,.shopping-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong)}.ingredient-list li{align-items:flex-start;flex-direction:column}.ingredient-list small,.shopping-list small{color:var(--muted);font-size:12px}.step-list{counter-reset:steps}.step-list li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start}.step-list li>span{display:grid;width:28px;height:28px;place-items:center;border-radius:999px;color:#fff;background:var(--accent);font-size:13px;font-weight:700}.step-content{display:grid;gap:7px}.step-meta{display:flex;flex-wrap:wrap;gap:5px}.step-meta small{border:1px solid var(--border);border-radius:999px;padding:3px 7px;color:var(--muted);background:var(--surface-muted);font-size:11px}.shopping-page{width:100%}.shopping-card.is-compact{max-height:60vh;overflow:auto}.shopping-actions{justify-content:space-between}.shopping-list li label{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:10px;min-width:0;color:var(--text);font-size:14px;font-weight:500}.shopping-list li label span{display:grid;min-width:0}.shopping-list strong{overflow-wrap:anywhere}.shopping-list li.is-checked strong{color:var(--muted);text-decoration:line-through}.shopping-list li button{display:inline-grid;width:32px;height:32px;flex:0 0 auto;place-items:center;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);color:var(--muted);cursor:pointer}.empty-state{display:grid;min-height:180px;place-items:center;gap:10px;padding:24px;color:var(--muted);text-align:center}.error-banner{padding:11px 12px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));border-radius:var(--radius);color:var(--danger);background:color-mix(in srgb,var(--danger) 9%,transparent)}.skeleton{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--surface-muted)}.skeleton:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent);animation:shimmer 1.25s infinite}.image-skeleton{aspect-ratio:16 / 10;border-radius:0}.line{height:13px}.line.wide{width:86%}.line.short{width:46%}@keyframes shimmer{to{transform:translate(100%)}}@media(max-width:1160px){.topbar{grid-template-columns:1fr}.toolbar,.tabs{justify-self:stretch}.toolbar{justify-content:space-between}.tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.tabs button{min-width:0}.workspace{grid-template-columns:minmax(250px,320px) minmax(0,1fr)}.detail-panel{grid-column:1 / -1;position:static;grid-template-columns:minmax(0,1fr) minmax(280px,360px)}.shopping-card.is-compact{max-height:none}}@media(max-width:760px){.app{padding:10px}.topbar{margin-bottom:10px;padding:8px}.brand{font-size:17px}.tabs button span:not(.count-badge){display:none}.workspace,.detail-panel{grid-template-columns:1fr;gap:10px}.control-panel,.results-panel,.detail-card,.shopping-card,.shopping-page{padding:12px}.two-col,.chip-grid,.region-grid,.quick-ingredient-grid,.fact-grid,.nutrition-grid,.recipe-grid{grid-template-columns:1fr}.toolbar{gap:8px}.icon-text-button span{max-width:66px;overflow:hidden;text-overflow:ellipsis}}
