*{box-sizing:border-box;margin:0}body{font-family:var(--font-sans);background:var(--color-paper);color:var(--color-ink);line-height:1.55;font-size:var(--font-size-md)}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:var(--font-serif);font-weight:600;line-height:1.2;letter-spacing:-.01em}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--color-saffron);outline-offset:2px}.shell{max-width:960px;margin:0 auto;padding:var(--space-lg) var(--space-md) var(--space-xxl)}.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent);font-weight:700;margin-bottom:6px}.display{font-family:var(--font-serif);font-weight:600;font-size:var(--font-size-display);line-height:1.08;margin-bottom:var(--space-md)}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--color-accent-deep);color:var(--color-accent-contrast);border:1.5px solid transparent;border-radius:12px;padding:9px 16px;font-size:var(--font-size-sm);font-weight:700;transition:filter .12s}.btn:hover{filter:brightness(1.12)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.secondary{background:var(--color-surface);color:var(--color-accent-deep);border-color:var(--color-border)}.btn.danger{background:var(--color-danger-soft);color:var(--color-danger)}.btn.ghost{background:transparent;color:var(--color-accent);padding:9px 8px}.btn.small{padding:5px 11px;font-size:var(--font-size-xs);border-radius:10px}.btn.light{background:var(--color-surface);color:var(--color-accent-deep)}.btn.ghost-light{background:transparent;color:#fff;border-color:#fff6}.icon-btn{width:34px;height:34px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);display:inline-flex;align-items:center;justify-content:center;color:var(--color-ink);flex-shrink:0}.icon-btn:hover{color:var(--color-accent-deep)}.icon-btn.light{background:#ffffff24;border-color:#ffffff40;color:#fff}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--space-md)}.field label{font-size:var(--font-size-xs);font-weight:700;color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.05em}.input,.field input,.field select,.field textarea{border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:8px 11px;background:var(--color-surface);width:100%}.field input:focus,.field select:focus,.field textarea:focus,.input:focus{outline:none;border-color:var(--color-accent)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-card)}.badge{display:inline-block;font-size:var(--font-size-xs);font-weight:700;border-radius:var(--radius-pill);padding:2px 10px}.badge.premium{background:var(--color-premium-soft);color:var(--color-premium)}.badge.draft{background:var(--color-draft-soft);color:var(--color-draft)}.badge.muted{background:var(--color-surface-sunken);color:var(--color-ink-muted)}.badge.warn{background:var(--color-warning-soft);color:var(--color-warning)}.pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:4px 10px;border-radius:var(--radius-pill);background:var(--color-surface-sunken);color:var(--color-ink-muted);border:1px solid var(--color-border)}.pill.saffron{background:var(--color-saffron-soft);color:var(--color-warning);border-color:transparent}.pill.tomato{background:var(--color-danger-soft);color:var(--color-danger);border-color:transparent}.banner{border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.banner.info{background:var(--color-accent-soft);color:var(--color-accent)}.banner.warn{background:var(--color-warning-soft);color:var(--color-warning)}.banner.error{background:var(--color-danger-soft);color:var(--color-danger)}.banner.draft{background:var(--color-draft-soft);color:var(--color-draft)}.muted{color:var(--color-ink-muted)}.small{font-size:var(--font-size-sm)}.row{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.linkish{border:0;background:none;color:var(--color-accent);font-weight:700;font-size:var(--font-size-xs);cursor:pointer;display:inline-flex;gap:4px;align-items:center;padding:0}.meter-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap}.meter{display:flex;gap:4px}.meter-slot{width:22px;height:8px;border-radius:4px;background:var(--color-border)}.meter-slot.full{background:var(--color-accent)}.meter-slot.over{background:var(--color-danger)}.meter-label{font-size:var(--font-size-xs);color:var(--color-ink-muted)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-md)}.recipe-card{position:relative;overflow:hidden;padding:0;display:flex;flex-direction:column;transition:transform .12s,box-shadow .12s}.recipe-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #26201a1a}.recipe-card .tab{position:absolute;top:-1px;left:22px;width:44px;height:7px;background:var(--color-saffron);border-radius:0 0 6px 6px;z-index:1}.recipe-card .cover{height:140px;background:var(--color-surface-sunken);object-fit:cover;width:100%;display:flex;align-items:center;justify-content:center;font-size:40px}.recipe-card .body{padding:var(--space-sm) var(--space-md) var(--space-md)}.recipe-card h3{font-size:var(--font-size-lg);margin-bottom:7px}.recipe-card .rule{height:1px;background:var(--color-border);margin-bottom:7px}.recipe-card .meta{font-size:var(--font-size-xs);color:var(--color-ink-muted)}.empty{text-align:center;color:var(--color-ink-muted);font-size:var(--font-size-sm);padding:var(--space-xl) var(--space-md);border:1.5px dashed var(--color-border);border-radius:var(--radius-lg)}.recipe-view h1{font-size:var(--font-size-display);margin-bottom:var(--space-xs)}.recipe-view .description{font-family:var(--font-serif);font-size:var(--font-size-lg);margin:var(--space-md) 0}.recipe-view .cover-photo{width:100%;max-height:380px;object-fit:cover;border-radius:var(--radius-lg);margin-top:var(--space-md)}.section-title{font-size:var(--font-size-xl);margin:var(--space-lg) 0 var(--space-sm);padding-bottom:6px;border-bottom:1px solid var(--color-border)}.meta-line{display:flex;gap:6px;flex-wrap:wrap;margin:var(--space-sm) 0 4px}.source-line{font-size:var(--font-size-xs);color:var(--color-ink-muted);font-style:italic}.dish-photo figcaption{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-top:6px}.dish-photo figcaption .muted{flex:1;min-width:180px}.dish-invite{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap;background:var(--color-surface);border:1.5px dashed var(--color-saffron);border-radius:var(--radius-lg);padding:var(--space-md);margin-top:var(--space-lg)}.dish-invite .icon{font-size:30px;line-height:1}.dish-invite b{font-family:var(--font-serif);font-size:var(--font-size-lg);font-weight:600}.dish-cheer{max-width:440px;text-align:center}.dish-cheer .plate{font-size:46px;line-height:1;margin-bottom:4px}.photo-later{font-size:var(--font-size-sm);color:var(--color-ink-muted);border-left:3px solid var(--color-saffron);padding:2px 0 2px var(--space-sm);margin-top:var(--space-md)}.more-menu{position:relative}.more-menu summary{list-style:none}.more-menu summary::-webkit-details-marker{display:none}.more-menu .menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:180px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:6px;display:flex;flex-direction:column}.more-menu .menu button{border:0;background:none;text-align:left;padding:8px 10px;border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-ink);display:flex;gap:8px;align-items:center}.more-menu .menu button:hover{background:var(--color-surface-sunken)}.more-menu .menu button.danger{color:var(--color-danger)}.dial{display:inline-flex;align-items:center;gap:10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:8px 14px}.dial-label{font-size:var(--font-size-xs);font-weight:700;color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.08em}.dial button.step{width:28px;height:28px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface-sunken);display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:var(--color-ink)}.dial .value{font-family:var(--font-serif);font-size:22px;font-weight:600;min-width:30px;text-align:center;font-variant-numeric:tabular-nums}.dial .note{font-size:11px;color:var(--color-warning);font-weight:700}.ingredients-list{list-style:none;padding:0;font-family:var(--font-serif);font-size:17px}.ingredients-list li{padding:8px 0;border-bottom:1px dotted var(--color-border)}.ingredients-list .amount{font-weight:700;color:var(--color-accent-deep);font-variant-numeric:tabular-nums}.ingredients-list .note{color:var(--color-ink-muted);font-size:var(--font-size-sm);font-family:var(--font-sans)}.alt-toggle{border:0;background:var(--color-surface-sunken);border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:10.5px;font-weight:700;color:var(--color-accent);padding:3px 9px;margin-left:8px;display:inline-flex;align-items:center;gap:3px;vertical-align:2px}.alt-box{background:var(--color-saffron-soft);border:1px solid var(--color-saffron);border-radius:var(--radius-md);padding:9px 12px;font-family:var(--font-sans);font-size:12.5px;margin-top:6px;line-height:1.6}.alt-box b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-warning);margin-bottom:2px}.steps-list{padding-left:26px;font-family:var(--font-serif);font-size:17px}.steps-list li{margin-bottom:var(--space-md)}.steps-list .pill{font-family:var(--font-sans);margin-left:8px;vertical-align:2px}.editor-row{display:flex;gap:var(--space-sm);align-items:flex-start;margin-bottom:var(--space-sm)}.editor-row input,.editor-row select,.editor-row textarea{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);padding:7px 9px;background:var(--color-surface)}.editor-row .amount{width:76px}.editor-row .unit{width:92px}.editor-row .name{flex:2}.editor-row .note{flex:1.4}.editor-row textarea{flex:1;min-height:56px;resize:vertical}.editor-row.low-confidence input,.editor-row.low-confidence textarea{background:var(--color-low-confidence);border-color:var(--color-saffron);border-style:dashed}.stepper{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-md)}.step-chip{display:inline-flex;align-items:center;gap:8px;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-pill);padding:7px 15px 7px 8px;font-size:var(--font-size-sm);font-weight:600;color:var(--color-ink-muted);transition:border-color .12s,color .12s}.step-chip:hover{border-color:var(--color-accent);color:var(--color-accent-deep)}.step-chip .num{width:22px;height:22px;border-radius:50%;flex-shrink:0;background:var(--color-surface-sunken);color:var(--color-ink-muted);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.step-chip.active{border-color:var(--color-accent-deep);color:var(--color-accent-deep);background:var(--color-accent-soft)}.step-chip.active .num{background:var(--color-accent-deep);color:var(--color-accent-contrast)}.step-chip.done .num{background:var(--color-accent-soft);color:var(--color-accent)}.step-chip .count{font-size:var(--font-size-xs);color:var(--color-ink-muted);font-weight:700}.step-chip .warn-dot{font-size:10.5px;font-weight:700;color:var(--color-warning);background:var(--color-saffron-soft);border-radius:var(--radius-pill);padding:1px 7px}.wizard-panel{margin-bottom:var(--space-sm)}.step-intro{font-size:var(--font-size-sm);color:var(--color-ink-muted);margin-bottom:var(--space-md)}.field-error{font-size:var(--font-size-xs);font-weight:700;color:var(--color-danger)}.wizard-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.preview-title{font-size:var(--font-size-xxl)}.preview-desc{font-family:var(--font-serif);font-size:var(--font-size-md);color:var(--color-ink-muted);margin:4px 0 var(--space-sm)}.preview-heading{font-size:var(--font-size-lg)}.ingredients-list.compact{font-size:15px}.ingredients-list.compact li{padding:5px 0}.steps-list.compact{font-size:15px}.steps-list.compact li{margin-bottom:var(--space-sm)}.conf-banner{display:flex;gap:6px;align-items:center;background:var(--color-saffron-soft);color:var(--color-warning);font-size:var(--font-size-xs);font-weight:700;border-radius:var(--radius-md);padding:8px 12px;margin-bottom:var(--space-md)}.ing-item{padding:7px 0;border-bottom:1px dotted var(--color-border)}.ing-item .editor-row{margin-bottom:0}.ing-line{display:flex;align-items:center;gap:var(--space-sm)}.ing-text{flex:1;font-family:var(--font-serif);font-size:16.5px;line-height:1.45}.ing-text .amount{font-weight:700;color:var(--color-accent-deep);font-variant-numeric:tabular-nums}.ing-text .note{color:var(--color-ink-muted);font-size:var(--font-size-sm);font-family:var(--font-sans)}.ing-text.low-confidence{background:var(--color-low-confidence);outline:1.5px dashed var(--color-saffron);border-radius:var(--radius-sm);padding:3px 9px}.ing-alts{display:block;border:0;background:none;text-align:left;cursor:pointer;padding:0;margin-top:3px;font-size:var(--font-size-xs);font-weight:600;color:var(--color-ink-muted)}.ing-alts:hover{color:var(--color-accent)}.icon-btn.done{color:var(--color-accent);font-weight:700}.ing-item .alt-editor{margin:6px 0 2px}.step-item{padding:7px 0;border-bottom:1px dotted var(--color-border)}.step-item .editor-row{margin-bottom:0}.step-item.dragging{opacity:.4}.step-item.drag-over{box-shadow:inset 0 3px 0 var(--color-saffron)}.step-line{display:flex;align-items:flex-start;gap:var(--space-sm)}.drag-handle{cursor:grab;color:var(--color-ink-muted);font-size:15px;line-height:1.45;user-select:none;-webkit-user-select:none;flex-shrink:0;opacity:.65}.step-item:hover .drag-handle{opacity:1;color:var(--color-accent-deep)}.step-num{font-family:var(--font-serif);font-weight:700;color:var(--color-accent-deep);width:26px;flex-shrink:0;line-height:1.45;font-variant-numeric:tabular-nums}.step-item .editor-row .step-num{padding-top:7px}.step-text{flex:1;font-family:var(--font-serif);font-size:16.5px;line-height:1.45}.step-text .pill{font-family:var(--font-sans);margin-left:8px;vertical-align:2px}.step-text.low-confidence{background:var(--color-low-confidence);outline:1.5px dashed var(--color-saffron);border-radius:var(--radius-sm);padding:3px 9px}.timer-field{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);padding:7px 10px;background:var(--color-surface);font-size:var(--font-size-xs);font-weight:700;color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.04em;cursor:text}.timer-field input{border:0;background:transparent;width:44px;padding:0;font-size:var(--font-size-sm);text-align:right;font-variant-numeric:tabular-nums}.timer-field input:focus{outline:none}.timer-field:focus-within{border-color:var(--color-accent)}.alt-editor{margin:-4px 0 var(--space-sm) 84px;font-size:var(--font-size-sm);color:var(--color-ink-muted)}.alt-editor .alt-line{display:flex;gap:6px;margin-bottom:4px}.alt-editor input{flex:1;padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.nutrition-panel{margin-top:var(--space-lg)}.nutrition-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:var(--space-sm)}.nutrition-facts .fact{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm);text-align:center}.nutrition-facts .fact b{display:block;font-size:var(--font-size-lg);font-family:var(--font-serif)}.nutrition-facts .fact span{font-size:var(--font-size-xs);color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.05em}.nutrition-locked{position:relative}.nutrition-locked .nutrition-facts{filter:blur(5px);opacity:.55;pointer-events:none;-webkit-user-select:none;user-select:none}.nutrition-locked .lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.provenance{font-size:var(--font-size-xs);color:var(--color-ink-muted);margin-top:var(--space-sm)}.provenance li{margin-bottom:2px}.cook-mode{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-accent-deep);color:#fff;z-index:50;display:flex;flex-direction:column;padding:var(--space-lg)}.cook-mode .cook-top{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm);opacity:.92}.cook-mode .cook-progress{display:flex;gap:5px;margin:var(--space-md) 0 var(--space-lg)}.cook-mode .cook-seg{flex:1;height:4px;border-radius:2px;background:#fff3;border:0;padding:0;cursor:pointer}.cook-mode .cook-seg.on{background:var(--color-saffron)}.cook-mode .step-text{font-family:var(--font-serif);font-size:clamp(26px,4.5vw,44px);line-height:1.35;flex:1;max-width:820px}.cook-mode .cook-timer{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding-bottom:var(--space-md)}.cook-mode .timer-face{font-variant-numeric:tabular-nums;font-family:var(--font-serif);font-size:56px}.cook-mode .timer-face.done{color:var(--color-saffron)}.cook-mode .cook-nav{display:flex;justify-content:space-between;gap:var(--space-sm)}.cook-mode .cook-nav .btn{flex:1;justify-content:center;font-size:var(--font-size-md);padding:var(--space-md);max-width:320px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14100c73;display:flex;align-items:center;justify-content:center;z-index:40;padding:var(--space-md)}.dialog{background:var(--color-paper);border-radius:20px;box-shadow:var(--shadow-sheet);max-width:640px;width:100%;max-height:85vh;overflow-y:auto;padding:var(--space-lg)}.dialog h3{font-size:var(--font-size-lg)}.sheet-note{font-size:var(--font-size-xs);color:var(--color-ink-muted);margin-top:var(--space-sm);line-height:1.5}.vis-row{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:11px 14px;margin-bottom:var(--space-sm);color:var(--color-ink)}.vis-row.on{border-color:var(--color-accent)}.vis-row .check{color:var(--color-accent);font-weight:700}.vis-row b{display:block;font-size:var(--font-size-sm)}.vis-row span{font-size:var(--font-size-xs);color:var(--color-ink-muted)}.url-row{display:flex;align-items:center;gap:var(--space-sm);background:var(--color-surface-sunken);border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:8px 12px;margin-top:6px}.url-row input{flex:1;border:0;background:transparent;font-size:var(--font-size-xs);font-weight:700;color:var(--color-accent-deep);padding:0;min-width:0}.url-row input:focus{outline:none}.pick-list{list-style:none;padding:0}.pick-list li{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.tag-chip{background:var(--color-accent-soft);color:var(--color-accent);border-radius:var(--radius-pill);padding:2px 10px;font-size:var(--font-size-xs);font-weight:600}.chip-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:var(--space-md)}.chip{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink-muted);border-radius:var(--radius-pill);padding:5px 12px;font-size:var(--font-size-xs);font-weight:600}.chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.chip.on{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-deep)}.label-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.attach-btn{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink-muted);border-radius:var(--radius-pill);padding:4px 11px;font-size:var(--font-size-xs);font-weight:700;cursor:pointer;text-transform:none;letter-spacing:0}.attach-btn:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.attach-btn:disabled{opacity:.5;cursor:not-allowed}.photo-chip{display:flex;align-items:center;gap:var(--space-sm);margin-top:6px;background:var(--color-surface-sunken);border-radius:var(--radius-md);padding:8px}.photo-chip img{width:46px;height:46px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.photo-chip b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.taste-toggle{display:flex;gap:var(--space-sm);align-items:flex-start;background:var(--color-surface-sunken);border-radius:var(--radius-md);padding:10px 12px;margin-bottom:var(--space-md)}.switch{position:relative;width:40px;height:24px;flex-shrink:0;margin-top:1px;border-radius:12px;border:1.5px solid var(--color-border);background:var(--color-surface);transition:background .15s,border-color .15s;padding:0}.switch .knob{position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:var(--color-ink-muted);transition:transform .15s,background .15s}.switch.on{background:var(--color-accent-deep);border-color:var(--color-accent-deep)}.switch.on .knob{transform:translate(16px);background:#fff}.switch:disabled{opacity:.5;cursor:not-allowed}.profile-head{display:flex;gap:var(--space-lg);align-items:flex-start;flex-wrap:wrap;padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-lg)}.avatar-wrap{position:relative;flex-shrink:0}.avatar{width:92px;height:92px;border-radius:50%;flex-shrink:0;background:var(--color-accent-soft);color:var(--color-accent-deep);display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:40px;font-weight:700;border:2px solid var(--color-border)}.avatar-wrap .chef-hat{position:absolute;top:-13px;left:-9px;z-index:1;width:38px;height:auto;transform:rotate(-20deg);filter:drop-shadow(0 1px 2px rgba(38,32,26,.22))}.profile-stats{display:flex;gap:var(--space-lg);font-size:var(--font-size-sm);flex-wrap:wrap}.profile-stats b{font-family:var(--font-serif);font-size:var(--font-size-lg);margin-right:4px}.statlink{border:0;background:none;padding:0;color:inherit;font-size:inherit;cursor:pointer}.statlink:hover{color:var(--color-accent)}.taste-line{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}.vis-tabs{display:inline-flex;gap:2px;padding:3px;background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-pill)}.vis-tab{border:0;background:none;border-radius:var(--radius-pill);padding:5px 12px;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--color-ink-muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px}.vis-tab:hover{color:var(--color-ink)}.vis-tab.on{background:var(--color-surface);color:var(--color-accent-deep);box-shadow:var(--shadow-card)}.vis-tab .count{font-family:var(--font-serif);font-size:var(--font-size-sm);font-weight:600}.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.ptile{position:relative;aspect-ratio:1;overflow:hidden;border:0;padding:0;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.ptile img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.ptile .tile-emoji{font-size:clamp(40px,8vw,64px)}.ptile .tile-lock{position:absolute;top:8px;right:8px;z-index:2;font-size:14px;background:#14100c8c;color:#fff;border-radius:var(--radius-pill);padding:2px 8px}.ptile .tile-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:var(--space-sm);text-align:center;background:#14100c8c;color:#fff;opacity:0;transition:opacity .12s}.ptile:hover .tile-overlay,.ptile:focus-visible .tile-overlay{opacity:1}.ptile .tile-title{font-family:var(--font-serif);font-weight:600;font-size:var(--font-size-md);line-height:1.25}.ptile .tile-meta{font-size:var(--font-size-xs);opacity:.85}.follow-list{list-style:none;padding:0}.follow-list li{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.quota-wall{background:var(--color-surface);border:1.5px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-md);text-align:center}.quota-wall p{font-size:var(--font-size-sm);color:var(--color-ink-muted);margin-bottom:var(--space-sm)}.viewfinder{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1c1712;color:#f6f0e4;border-radius:18px;min-height:240px;width:100%;border:0;cursor:pointer;padding:var(--space-lg);text-align:center}.viewfinder:disabled{cursor:not-allowed;opacity:.7}.viewfinder .vf-corner{position:absolute;width:22px;height:22px;border:3px solid var(--color-saffron)}.viewfinder .vf-corner.tl{top:12px;left:12px;border-right:0;border-bottom:0;border-radius:6px 0 0}.viewfinder .vf-corner.tr{top:12px;right:12px;border-left:0;border-bottom:0;border-radius:0 6px 0 0}.viewfinder .vf-corner.bl{bottom:12px;left:12px;border-right:0;border-top:0;border-radius:0 0 0 6px}.viewfinder .vf-corner.br{bottom:12px;right:12px;border-left:0;border-top:0;border-radius:0 0 6px}.viewfinder .vf-title{font-family:var(--font-serif);font-size:20px}.viewfinder .vf-hint{font-size:var(--font-size-xs);color:#f6f0e4b3;margin-top:4px}.viewfinder img.preview{max-height:160px;border-radius:8px;margin-bottom:var(--space-sm)}.scan-line{height:3px;width:60%;background:var(--color-saffron);border-radius:2px;margin-bottom:var(--space-md);animation:sweep 1.2s ease-in-out infinite alternate}@keyframes sweep{0%{transform:translateY(0);opacity:.4}to{transform:translateY(40px);opacity:1}}.recon-tag{font-size:var(--font-size-xs);font-weight:700;color:var(--color-warning);background:var(--color-saffron-soft);border-radius:var(--radius-md);padding:6px 10px;margin-top:var(--space-sm);text-align:center}.pill.draft{background:var(--color-draft-soft);color:var(--color-draft);border-color:transparent}.draft-card{border-left:4px solid var(--color-draft)}.draft-card .preview-title{margin:6px 0 0}.draft-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:var(--space-md);margin-top:var(--space-sm)}.draft-cols .preview-heading{font-size:var(--font-size-md);margin-bottom:4px}.followup{margin-top:var(--space-md);padding:var(--space-md);background:var(--color-surface-sunken);border:1.5px dashed var(--color-border);border-radius:var(--radius-lg)}.followup .btn.secondary.on{border-color:var(--color-accent);color:var(--color-accent)}.idea-panel{margin-top:var(--space-md);border-top:1px solid var(--color-border);padding-top:var(--space-md)}.idea-panel .chip-row{margin:var(--space-sm) 0}.idea-panel .field{margin-bottom:var(--space-sm)}.idea-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-sm)}.idea-card{display:flex;flex-direction:column;gap:5px;text-align:left;cursor:pointer;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) 12px;font:inherit;color:inherit}.idea-card:hover:not(:disabled){border-color:var(--color-accent);box-shadow:var(--shadow-card)}.idea-card:disabled{opacity:.5;cursor:not-allowed}.idea-card b{font-family:var(--font-serif);font-size:var(--font-size-md);line-height:1.25}.idea-card .idea-cta{margin-top:auto;padding-top:4px;font-size:var(--font-size-xs);font-weight:700;color:var(--color-accent)}.draft-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap}.plan-card.prem{border-color:var(--color-saffron)}.plan-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:var(--font-size-sm)}.plan-list li:before{content:"✓";color:var(--color-accent);font-weight:700;margin-right:7px}.plan-list.muted li:before{content:"·"}.fineprint{font-size:var(--font-size-xs);color:var(--color-ink-muted);margin-top:var(--space-md);line-height:1.5}.invite-card{border-color:var(--color-saffron)}.invite-code{font-family:var(--font-mono, ui-monospace, monospace);letter-spacing:.08em;color:var(--color-accent-deep)}.reward-list{list-style:none;margin:var(--space-md) 0 0;padding:var(--space-sm) 0 0;border-top:1px solid var(--color-border)}.reward-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:5px 0;font-size:var(--font-size-sm)}.invite-compact{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px dashed var(--color-border)}.explore-page{max-width:560px;margin:0 auto}.explore-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-lg)}.deck{position:relative}.deck-peek{position:absolute;top:16px;right:10px;bottom:-14px;left:10px;z-index:0;background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.deck-end{position:relative;z-index:1;text-align:center;background:var(--color-surface);border:1.5px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-md)}.deck-end .plate{font-size:42px;line-height:1;margin-bottom:var(--space-sm)}.swipe-card{position:relative;z-index:1;overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab;animation:card-deal .22s ease-out}.swipe-card.grabbing{cursor:grabbing}.swipe-card:not(.grabbing){transition:transform .19s ease-out,opacity .19s ease-out}@keyframes card-deal{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1}}.sc-cover{display:block;height:230px;background:var(--color-surface-sunken)}.sc-cover img{width:100%;height:100%;object-fit:cover;display:block}.sc-cover .sc-emoji{display:flex;height:100%;align-items:center;justify-content:center;font-size:74px;line-height:1}.sc-body{padding:var(--space-md)}.sc-body h2{font-size:var(--font-size-xl);line-height:1.2}.sc-body h2 a{color:var(--color-ink)}.sc-by{font-size:var(--font-size-xs);color:var(--color-ink-muted);margin-top:4px}.sc-desc{font-family:var(--font-serif);font-size:var(--font-size-md);margin:var(--space-sm) 0}.sc-facts{display:flex;flex-wrap:wrap;gap:4px 8px;margin-bottom:var(--space-sm);font-size:var(--font-size-xs);color:var(--color-ink-muted)}.sc-facts span+span:before{content:"·";margin-right:8px}.sc-open{margin-top:var(--space-md)}.deck-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-top:var(--space-lg)}.explore-count{font-size:var(--font-size-xs);color:var(--color-ink-muted);font-variant-numeric:tabular-nums}.swipe-hint{text-align:center;font-size:var(--font-size-xs);color:var(--color-ink-muted);margin-top:var(--space-sm)}.auth-page{max-width:380px;margin:8vh auto;padding:0 var(--space-md)}.auth-page .brand-mark{text-align:center;font-family:var(--font-serif);font-size:30px;font-weight:700;color:var(--color-accent-deep);margin-bottom:4px}.auth-page .tagline{text-align:center;font-family:var(--font-serif);font-size:var(--font-size-lg);color:var(--color-ink-muted);margin-bottom:var(--space-lg)}@media(max-width:640px){.display{font-size:var(--font-size-xxl)}.editor-row{flex-wrap:wrap}.editor-row .name{flex-basis:100%}.overlay{align-items:flex-end;padding:0}.dialog{border-radius:22px 22px 0 0;max-width:none}.pgrid{gap:3px}.draft-cols,.idea-grid{grid-template-columns:minmax(0,1fr)}.draft-actions .btn{flex:1;justify-content:center}.avatar{width:72px;height:72px;font-size:30px}.avatar-wrap .chef-hat{width:31px;top:-11px;left:-7px}.sc-cover{height:190px}}@media(prefers-reduced-motion:reduce){.scan-line{animation:none}.recipe-card,.btn,.ptile .tile-overlay,.switch,.switch .knob{transition:none}.swipe-card{animation:none}.swipe-card:not(.grabbing){transition:opacity .19s linear}}
