:root{--accent: #e76f51;--accent-dark: #c65a3f;--accent-soft: #fbe6df;--bg: #fff8f0;--card: #ffffff;--text: #33302c;--text-soft: #7d766e;--border: #eee3d6;--green: #2a9d8f;--radius: 14px;--nav-height: 58px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.app{min-height:100vh;padding-bottom:calc(var(--nav-height) + 120px)}main{padding:16px}h1{font-size:1.5rem;margin:8px 0 16px}h2{font-size:1.15rem;margin:20px 0 10px}p{line-height:1.5}a{color:var(--accent-dark);text-decoration:none}button,.btn{font:inherit;border:none;border-radius:var(--radius);padding:12px 18px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}button:active{transform:scale(.98)}button:disabled{opacity:.5}button.secondary{background:var(--accent-soft);color:var(--accent-dark)}button.ghost{background:transparent;color:var(--text-soft);padding:6px 10px;font-weight:500}button.small{padding:7px 12px;font-size:.85rem;border-radius:10px}input[type=text],input[type=url],input[type=number],textarea{font:inherit;width:100%;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--text)}textarea{min-height:100px;resize:vertical}input:focus,textarea:focus{outline:2px solid var(--accent);border-color:transparent}.row{display:flex;gap:8px;align-items:center}.row>input{flex:1}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px}.recipe-card{display:flex;justify-content:space-between;align-items:center}.recipe-card .title{font-weight:600}.recipe-card .meta{font-size:.8rem;color:var(--text-soft);margin-top:3px}.star{background:none;padding:4px 8px;font-size:1.3rem;line-height:1}.empty{text-align:center;color:var(--text-soft);padding:40px 20px;line-height:1.6}.error{color:#c0392b;background:#fdecea;padding:10px 14px;border-radius:10px;margin:10px 0}.notice{color:var(--green);background:#e8f6f4;padding:10px 14px;border-radius:10px;margin:10px 0}.meta-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.chip{background:var(--accent-soft);color:var(--accent-dark);border-radius:999px;padding:4px 12px;font-size:.8rem;font-weight:600}.ingredients li{margin:6px 0}.ingredients label{display:flex;gap:10px;align-items:baseline}.ingredients input[type=checkbox]{width:auto;transform:scale(1.2)}.ingredients .done{text-decoration:line-through;color:var(--text-soft)}.steps{padding-left:22px}.steps li{margin:0 0 18px;line-height:1.55}.steps details{margin-top:6px;background:var(--accent-soft);border-radius:10px;padding:8px 12px;font-size:.9rem}.steps summary{cursor:pointer;font-weight:600;color:var(--accent-dark)}.steps details p{margin:8px 0 2px}.steps .step-timer{margin-top:8px;display:block}.mode-tabs{display:flex;gap:6px;margin-bottom:16px}.mode-tabs button{flex:1;background:var(--card);color:var(--text-soft);border:1px solid var(--border);padding:10px 4px;font-size:.9rem}.mode-tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.loading{text-align:center;color:var(--text-soft);padding:30px}.suggestion .reason{margin:6px 0}.suggestion .missing{font-size:.85rem;color:var(--text-soft)}.shopping-item{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--border)}.shopping-item input[type=checkbox]{width:auto;transform:scale(1.3)}.shopping-item .label{flex:1}.shopping-item .from{font-size:.75rem;color:var(--text-soft);display:block}.shopping-item.checked .label{text-decoration:line-through;color:var(--text-soft)}.timer-bar{position:fixed;left:0;right:0;bottom:var(--nav-height);padding:8px 12px calc(8px + env(safe-area-inset-bottom)*0);display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:linear-gradient(to top,var(--bg) 80%,transparent);z-index:20}.timer-chip{display:flex;align-items:center;gap:8px;background:var(--text);color:#fff;border-radius:999px;padding:8px 8px 8px 14px;font-size:.85rem;font-variant-numeric:tabular-nums}.timer-chip.done{background:var(--green);animation:pulse 1.2s infinite}.timer-chip .cancel{background:#ffffff40;border-radius:999px;padding:2px 9px;font-size:.8rem}@keyframes pulse{50%{opacity:.75}}.timer-add{border-radius:999px;padding:8px 14px;font-size:.9rem}.timer-form{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;gap:8px;width:100%}.timer-form input{padding:8px 10px}.timer-form input.mins{width:74px;flex:none}.push-banner{position:fixed;bottom:calc(var(--nav-height) + 56px);left:12px;right:12px;background:var(--text);color:#fff;border-radius:var(--radius);padding:12px 14px;display:flex;gap:10px;align-items:center;justify-content:space-between;z-index:30;font-size:.9rem}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--border);display:flex;z-index:25}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.7rem;color:var(--text-soft);font-weight:600}.bottom-nav a .icon{font-size:1.35rem}.bottom-nav a.active{color:var(--accent-dark)}.fab-row{display:flex;justify-content:flex-end;margin-bottom:12px}@media (min-width: 761px){main,.timer-bar,.push-banner{max-width:680px;margin-left:auto;margin-right:auto;left:50%;transform:translate(-50%)}main{transform:none;left:auto}.bottom-nav{justify-content:center}.bottom-nav a{flex:none;width:120px}}
