*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:#111;color:#e5e0d8;font-family:Palatino Linotype,Palatino,Georgia,serif;-webkit-font-smoothing:antialiased;min-height:100vh}#app{min-height:100vh}::selection{background:#c4926740}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#2a2723;border-radius:3px}textarea::placeholder,input::placeholder{color:#3e3a35}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.recipe-app{--bg: #111;--bg-card: #191816;--bg-surface: #151311;--bg-elevated: #1e1c19;--border: #2a2723;--border-light: #222;--text: #e5e0d8;--text-heading: #f5efe6;--text-body: #c8bfb3;--text-muted: #807668;--text-faint: #6b6259;--text-dim: #5e564d;--text-ghost: #4a4540;--text-hint: #3e3a35;--accent: #c49267;--accent-soft: #d4a87c;--accent-active-bg: #2a2520;--btn-active-text: #111;--overlay-bg: rgba(17, 17, 17, .92);--selection: rgba(196, 146, 103, .25);--error-bg: rgba(180, 90, 70, .08);--error-border: rgba(180, 90, 70, .18);--error-text: #c89080;--tips-bg: rgba(196, 146, 103, .04);--tips-border: rgba(196, 146, 103, .12);min-height:100vh;background:var(--bg);color:var(--text);font-family:Palatino Linotype,Palatino,Georgia,serif;transition:background .3s,color .3s}.recipe-app.theme-dim{--bg: #1e1b18;--bg-card: #272320;--bg-surface: #222019;--bg-elevated: #2e2a25;--border: #3a3530;--border-light: #332e29;--text: #e8e2d9;--text-heading: #f5efe6;--text-body: #d0c7bb;--text-muted: #9a8e80;--text-faint: #807468;--text-dim: #706458;--text-ghost: #5e5448;--text-hint: #4e4438;--accent: #c49267;--accent-soft: #d4a87c;--accent-active-bg: #352e28;--btn-active-text: #1a1714;--overlay-bg: rgba(30, 27, 24, .94);--error-bg: rgba(180, 90, 70, .1);--error-border: rgba(180, 90, 70, .2);--tips-bg: rgba(196, 146, 103, .06);--tips-border: rgba(196, 146, 103, .14)}.recipe-app.theme-light{--bg: #faf7f4;--bg-card: #ffffff;--bg-surface: #f5f1ed;--bg-elevated: #ede8e2;--border: #e0d8cf;--border-light: #e8e1d9;--text: #3d3228;--text-heading: #2a2118;--text-body: #4a3f34;--text-muted: #7a6e60;--text-faint: #8a7e70;--text-dim: #998d7f;--text-ghost: #b0a698;--text-hint: #c5bcb0;--accent: #a87442;--accent-soft: #c49267;--accent-active-bg: #f0e8df;--btn-active-text: #fff;--overlay-bg: rgba(250, 247, 244, .94);--selection: rgba(168, 116, 66, .2);--error-bg: rgba(180, 70, 50, .06);--error-border: rgba(180, 70, 50, .15);--error-text: #a85040;--tips-bg: rgba(168, 116, 66, .05);--tips-border: rgba(168, 116, 66, .15)}.container{max-width:720px;margin:0 auto;padding:36px 20px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:background .3s,border-color .3s}.card-gap{margin-top:16px}.card-body{padding:20px 28px}.border-top{border-top:1px solid var(--bg-elevated)}.fade-up{animation:fadeUp .5s ease}.mb-16{margin-bottom:16px}.mb-18{margin-bottom:18px}.mt-6{margin-top:6px}.footer{text-align:center;padding:32px 20px 24px;font-size:12px;color:var(--text-hint);font-family:system-ui,sans-serif;letter-spacing:.3px}.spinner{width:12px;height:12px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.spinner-btn{width:16px;height:16px;border:2px solid var(--text-hint);border-top-color:var(--accent)}@media(max-width:600px){.container{padding:24px 14px}.card-body{padding:16px 18px}}@media print{*,*:before,*:after{background:#fff!important;color:#222!important;box-shadow:none!important;text-shadow:none!important;border-color:#ccc!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}body{font-size:12pt;line-height:1.5;background:#fff!important}.container{max-width:100%;padding:0;margin:0}.card{border:none!important;border-radius:0!important;page-break-inside:avoid;break-inside:avoid}.card-gap{margin-top:8px}.no-print,.footer,.toast,.action-bar,.controls-bar .view-toggle,.reset-btn,.raw-section,.shop-link,.pantry-badge,.fav-btn,.history-section,.mode-tabs,.how-it-works,.setting-panel{display:none!important}.stagger,.page-enter-active,.page-leave-active{animation:none!important;opacity:1!important;transform:none!important}.hero-image{max-height:200px;border:none!important;border-radius:0!important;margin-bottom:12px}.hero-image img{height:200px}.recipe-title{font-size:20pt!important;font-weight:700!important}.recipe-title-area{padding:12px 0 8px!important}.servings-control{padding:8px 0!important}.serving-btn{border:1px solid #ccc!important;width:24px!important;height:24px!important;font-size:11pt!important}.serving-btn.active{background:#222!important;color:#fff!important}.ingredient-row{padding:3px 0!important;border-bottom:1px solid #eee!important}.ingredient-tick,.chalk-strike{display:none!important}.ingredient-amount{font-size:11pt!important;color:#444!important}.ingredient-item{font-size:11pt!important}.step-row{margin-bottom:8px!important;page-break-inside:avoid;break-inside:avoid}.step-number{background:#f0f0f0!important;border:1px solid #ccc!important;font-size:10pt!important;width:20px!important;height:20px!important;min-width:20px!important}.step-text{font-size:11pt!important}.section-label{font-size:10pt!important;color:#666!important;margin-bottom:8px!important}.sub-section-label{font-size:10pt!important;color:#888!important}.tips-card{border-top:1px solid #ccc!important}.tip-text{font-size:10pt!important}@page{margin:1.5cm}}.anim-bounce-in{animation:bounceIn .5s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(var(--anim-i, 0) * 60ms)}@keyframes bounceIn{0%{opacity:0;transform:scale(.8) translateY(40px)}60%{opacity:1;transform:scale(1.05) translateY(-5px)}to{transform:scale(1) translateY(0)}}.anim-heart-pop{animation:heartPop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes heartPop{0%{transform:scale(1)}30%{transform:scale(1.4)}60%{transform:scale(.9)}to{transform:scale(1)}}.anim-shake{animation:shake .3s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.anim-fly-away{animation:flyAway .4s cubic-bezier(.55,0,1,.45) forwards}@keyframes flyAway{to{opacity:0;transform:translate(calc(var(--fly-dir, 1) * 120%)) rotate(calc(var(--fly-dir, 1) * 15deg)) scale(.8)}}.anim-slide-left{animation:slideInLeft .4s ease both;animation-delay:calc(var(--anim-i, 0) * 40ms)}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.anim-fade-scale{animation:fadeScale .4s ease both}@keyframes fadeScale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.anim-bounce-in,.anim-heart-pop,.anim-shake,.anim-fly-away,.anim-slide-left,.anim-fade-scale{animation:none!important;opacity:1!important;transform:none!important}}
