:root{color-scheme:dark}body{margin:0;background:#1f2a24}.pp-root{--bg: #1f2a24;--surface: #263630;--surface-2: #2d3f37;--ink: #f3efe4;--ink-muted: #a9b6ac;--gold: #e8a33d;--gold-ink: #2a1f0c;--paprika: #c1543c;--sage: #7ea082;--border: rgba(243, 239, 228, .14);--border-strong: rgba(243, 239, 228, .28);background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;padding:28px;max-width:720px;margin:0 auto;box-sizing:border-box;min-height:100vh}.pp-root *,.pp-root *:before,.pp-root *:after{box-sizing:border-box}.pp-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;gap:12px;flex-wrap:wrap}.pp-title{font-family:Fraunces,serif;font-weight:600;font-size:26px;letter-spacing:-.01em;margin:0;display:flex;align-items:center;gap:10px}.pp-title .eyebrow{display:block;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:4px}.pp-nav{display:flex;gap:6px;background:var(--surface);padding:4px;border-radius:10px;border:1px solid var(--border)}.pp-nav button{font-family:Inter,sans-serif;font-size:13px;font-weight:600;padding:7px 12px;border-radius:7px;border:none;background:transparent;color:var(--ink-muted);cursor:pointer;display:flex;align-items:center;gap:6px;transition:background .15s ease,color .15s ease}.pp-nav button:hover{color:var(--ink)}.pp-nav button.active{background:var(--gold);color:var(--gold-ink)}.pp-nav button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.pp-panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px}.pp-demo-notice{background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:10px;padding:12px 14px;margin-bottom:18px;font-size:13px;line-height:1.5;color:var(--ink-muted)}.pp-demo-notice p{margin:0;display:flex;align-items:flex-start;gap:8px}.pp-demo-notice svg{flex-shrink:0;margin-top:2px;color:var(--gold)}.pp-demo-notice strong{color:var(--ink)}.pp-samples{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}.pp-samples-label{font-family:IBM Plex Mono,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.1em;margin-right:2px}.pp-sample-btn{font-family:Inter,sans-serif;font-size:12.5px;font-weight:600;padding:5px 10px;border-radius:999px;border:1px solid var(--border-strong);background:transparent;color:var(--ink);cursor:pointer;transition:border-color .15s ease,color .15s ease}.pp-sample-btn:hover{border-color:var(--gold);color:var(--gold)}.pp-sample-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.pp-label{font-family:IBM Plex Mono,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-muted);margin:0 0 10px}.pp-add-form{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.pp-add-form input{background:var(--surface-2);border:1px solid var(--border);color:var(--ink);border-radius:8px;padding:9px 11px;font-size:14px;font-family:Inter,sans-serif}.pp-add-form input::placeholder{color:var(--ink-muted)}.pp-add-form input:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.pp-add-form input.name{flex:2 1 160px}.pp-add-form input.amount{flex:1 1 110px}.pp-add-btn{background:var(--gold);color:var(--gold-ink);border:none;border-radius:8px;padding:9px 14px;font-weight:600;font-size:14px;display:flex;align-items:center;gap:6px;cursor:pointer}.pp-add-btn:hover{filter:brightness(1.08)}.pp-add-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.pp-chips{display:flex;flex-wrap:wrap;gap:8px;min-height:34px;margin-bottom:18px}.pp-chip{display:flex;align-items:center;gap:6px;background:var(--surface-2);border:1px dashed var(--border-strong);color:var(--ink);border-radius:999px;padding:6px 6px 6px 12px;font-size:13px}.pp-chip .amt{color:var(--ink-muted);font-family:IBM Plex Mono,monospace;font-size:11px}.pp-chip button{background:transparent;border:none;color:var(--ink-muted);cursor:pointer;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.pp-chip button:hover{color:var(--paprika);background:#0003}.pp-empty-note{color:var(--ink-muted);font-size:13px;font-style:italic}.pp-controls-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.pp-servings{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-muted)}.pp-servings input{width:52px;background:var(--surface-2);border:1px solid var(--border);color:var(--ink);border-radius:8px;padding:6px 8px;font-size:14px;text-align:center}.pp-generate-btn{background:var(--paprika);color:#fff5ee;border:none;border-radius:9px;padding:11px 18px;font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px;cursor:pointer}.pp-generate-btn:disabled{opacity:.45;cursor:not-allowed}.pp-generate-btn:not(:disabled):hover{filter:brightness(1.08)}.pp-generate-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.pp-status-msg{margin-top:16px;font-size:13.5px;color:var(--ink-muted);display:flex;align-items:flex-start;gap:8px;line-height:1.5}.pp-status-msg.error{color:#f3b3a3}.pp-status-msg svg{flex-shrink:0;margin-top:2px}.pp-result-intro{margin-top:18px;font-size:13.5px;color:var(--sage);font-style:italic}.pp-dish-grid{margin-top:12px;display:grid;grid-template-columns:1fr;gap:14px}.pp-dish-card{position:relative;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:18px 18px 16px;cursor:pointer;text-align:left}.pp-dish-card:before{content:"";position:absolute;top:-8px;left:22px;width:16px;height:16px;background:var(--bg);border-radius:50%;border:1px solid var(--border)}.pp-dish-card:hover{border-color:var(--gold)}.pp-dish-card:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.pp-dish-num{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--gold);letter-spacing:.08em}.pp-dish-name{font-family:Fraunces,serif;font-size:19px;font-weight:600;margin:4px 0 6px}.pp-dish-tagline{font-size:13.5px;color:var(--ink-muted);margin:0 0 10px;line-height:1.45}.pp-dish-meta{display:flex;gap:10px;font-size:12px;color:var(--sage);font-family:IBM Plex Mono,monospace}.pp-back-btn{background:transparent;border:none;color:var(--ink-muted);display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;margin-bottom:14px;padding:4px 2px}.pp-back-btn:hover{color:var(--ink)}.pp-back-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.pp-recipe-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px}.pp-recipe-title{font-family:Fraunces,serif;font-size:24px;font-weight:600;margin:0}.pp-save-btn{flex-shrink:0;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--gold);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;cursor:pointer}.pp-save-btn.saved{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}.pp-save-btn:hover{filter:brightness(1.1)}.pp-save-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.pp-recipe-tagline{color:var(--ink-muted);font-size:14px;margin:0 0 18px}.pp-recipe-section-label{font-family:IBM Plex Mono,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);margin:22px 0 10px}.pp-ing-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}.pp-ing-list li{display:flex;justify-content:space-between;font-size:14px;padding:7px 10px;background:var(--surface-2);border-radius:7px;border:1px solid var(--border)}.pp-ing-list li .qty{color:var(--ink-muted);font-family:IBM Plex Mono,monospace;font-size:12.5px}.pp-ing-list li.staple{border-style:dashed;opacity:.85}.pp-steps{list-style:none;padding:0;margin:0;display:grid;gap:12px}.pp-steps li{display:flex;gap:12px;font-size:14.5px;line-height:1.55}.pp-step-num{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--gold);display:flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600}.pp-saved-grid{display:grid;grid-template-columns:1fr;gap:12px}.pp-saved-card{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:14px 16px}.pp-saved-card button.pp-open{background:transparent;border:none;text-align:left;color:var(--ink);cursor:pointer;flex:1}.pp-saved-card .pp-open .pp-dish-name{font-size:16.5px;margin:0 0 3px}.pp-saved-card .pp-open .pp-dish-tagline{margin:0;font-size:12.5px}.pp-del-btn{background:transparent;border:none;color:var(--ink-muted);cursor:pointer;padding:6px;border-radius:6px;flex-shrink:0}.pp-del-btn:hover{color:var(--paprika);background:#0003}.pp-saved-empty{text-align:center;padding:40px 20px;color:var(--ink-muted)}.pp-saved-empty svg{margin-bottom:10px;opacity:.6}@media(min-width:560px){.pp-dish-grid{grid-template-columns:1fr 1fr}}@keyframes pp-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.pp-root *{transition:none!important}}
