/* Kitchen */
.tab svg{width:16px;height:16px;flex-shrink:0}
.badge{background:var(--accent);color:var(--bg);font-size:10px;font-weight:700;border-radius:10px;padding:var(--sp-xs) var(--sp-sm)}
.filters{display:flex;gap:var(--sp-sm);margin-bottom:var(--sp-lg);flex-wrap:wrap}
.fbtn{padding:var(--sp-sm) var(--sp-md);border-radius:var(--radius);border:1px solid var(--border);background:transparent;color:var(--text);font-size:11.5px;font-weight:500;cursor:pointer;font-family:inherit;transition:all 0.2s}.fbtn:hover{border-color:var(--border-warm)}.fbtn.active{border-color:var(--accent);background:var(--accent);color:var(--bg);font-weight:600}
.hint{font-size:12.5px;color:var(--text-secondary);margin-bottom:var(--sp-md);font-weight:400}
.recipes{display:flex;flex-direction:column;gap:var(--sp-md)}
.rcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-md) var(--sp-lg);cursor:pointer;transition:all 0.2s}.rcard:hover{border-color:var(--border-warm)}.rcard.on{background:var(--beige-25);border-color:var(--beige-300)}
.rcard-top{display:flex;align-items:flex-start;gap:var(--sp-md)}
.cbox{width:22px;height:22px;border-radius:6px;flex-shrink:0;border:2px solid var(--beige-300);display:flex;align-items:center;justify-content:center;transition:all 0.2s;color:transparent}.rcard.on .cbox{border-color:var(--accent);background:var(--accent);color:var(--bg)}
.rname{font-family:'Fraunces',serif;font-size:16px;font-weight:600;color:var(--text);line-height:1.3}
.rmeta{display:flex;gap:var(--sp-md);margin-top:var(--sp-sm);font-size:11.5px;color:var(--text-secondary);align-items:center;flex-wrap:wrap}.rmeta span{display:flex;align-items:center;gap:var(--sp-xs)}
.pill{padding:var(--sp-xs) var(--sp-sm);border-radius:4px;font-size:10.5px;font-weight:600}.pill-e{background:var(--green-bg);color:var(--green)}.pill-m{background:var(--yellow-bg);color:var(--yellow)}.pill-h{background:var(--red-bg);color:var(--red)}.pill-c{background:var(--blue-bg);color:var(--blue)}
.cal-pill{font-size:10.5px;font-weight:600;color:var(--accent);background:rgba(139,41,66,0.08);border:1px solid rgba(139,41,66,0.15);padding:var(--sp-xs) var(--sp-sm);border-radius:4px}
.heart-btn{border:none;background:transparent;cursor:pointer;padding:var(--sp-sm);display:flex;align-items:center;transition:transform 0.15s;flex-shrink:0}.heart-btn:hover{transform:scale(1.15)}.heart-btn svg{width:20px;height:20px}.heart-btn .heart-empty{stroke:var(--text-secondary);fill:none}.heart-btn .heart-full{stroke:var(--pink);fill:var(--pink)}
.rexp{margin-top:var(--sp-md);margin-left:32px;display:none}.rcard.on .rexp{display:block}
.scale-row{display:flex;align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-md)}
.scale-label{font-size:11.5px;color:var(--text)}
.serv-stepper{display:flex;align-items:center;gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.serv-btn{width:30px;height:28px;border:none;background:var(--surface-2);color:var(--text);font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;transition:all 0.15s}.serv-btn:hover{background:var(--accent);color:var(--bg)}
.serv-val{width:32px;height:28px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--accent);background:var(--bg);border-left:1px solid var(--border);border-right:1px solid var(--border)}
.serv-orig{font-size:10.5px;color:var(--text-secondary);font-style:italic}
.ing-tags{display:flex;flex-wrap:wrap;gap:var(--sp-sm)}
.itag{padding:var(--sp-xs) var(--sp-md);border-radius:6px;font-size:11px;font-weight:500;border:1px solid var(--border)}.itag-need{background:var(--surface-2);color:var(--text)}.itag-have{background:var(--green-bg);color:var(--green);border-color:var(--green-border)}
.pantry-input{display:flex;gap:var(--sp-md);margin-bottom:var(--sp-lg)}.pantry-input input{flex:1;padding:var(--sp-md);border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;font-family:inherit;outline:none;font-weight:400}.pantry-input input:focus{border-color:var(--accent-dim)}.pantry-input input::placeholder{color:var(--text-tertiary)}
.add-btn{width:44px;height:44px;border-radius:10px;border:none;background:var(--accent);color:var(--bg);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px}
.pantry-list{display:flex;flex-direction:column;gap:var(--sp-sm)}
.pitem{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-md);border-radius:10px;background:var(--surface);border:1px solid var(--border);cursor:pointer;transition:border-color 0.15s}.pitem:hover{border-color:var(--accent)}.pitem-name{font-size:14px;font-weight:500}.pitem-qty{font-size:12px;color:var(--text-secondary);margin-left:var(--sp-md)}
.pantry-hist-btn{padding:var(--sp-sm) var(--sp-md);border-radius:8px;border:1px dashed var(--border);background:transparent;color:var(--text);font-size:12px;font-weight:500;cursor:pointer;font-family:'Outfit',sans-serif;transition:all 0.15s}.pantry-hist-btn:hover{border-color:var(--accent);color:var(--accent);border-style:solid}
.del-btn{border:none;background:transparent;color:var(--text-secondary);cursor:pointer;padding:var(--sp-sm);display:flex;opacity:0.4}.del-btn:hover{opacity:1;color:var(--red)}
.shop-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-md)}.shop-header span{font-size:13px;color:var(--text)}
.clear-btn{border:none;background:transparent;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.cat-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--accent-dim);margin-bottom:var(--sp-sm);padding-bottom:var(--sp-sm);border-bottom:1px solid var(--border)}
.cat-group{margin-bottom:var(--sp-lg)}
.sitem{display:flex;align-items:center;gap:var(--sp-md);padding:var(--sp-md);border-radius:8px;cursor:pointer;transition:opacity 0.2s}.sitem.checked{opacity:0.3}
.sbox{width:20px;height:20px;border-radius:5px;flex-shrink:0;border:2px solid var(--beige-300);display:flex;align-items:center;justify-content:center;transition:all 0.15s;color:transparent}.sitem.checked .sbox{border-color:var(--accent);background:var(--accent);color:var(--bg)}
.sitem-name{font-size:13.5px;font-weight:500;flex:1}.sitem.checked .sitem-name{text-decoration:line-through}.sitem-qty{font-size:11.5px;color:var(--text-secondary)}.sitem-count{font-size:10px;color:var(--text-secondary)}
.sitem-pantry{display:flex;align-items:center;gap:var(--sp-md);padding:var(--sp-sm) var(--sp-md);opacity:0.3}.sitem-pantry .sbox{background:var(--green-bg);border-color:var(--green-border);color:var(--green)}
.empty{text-align:center;padding:var(--sp-2xl) var(--sp-lg);color:var(--text-tertiary)}.empty-icon{font-size:36px;margin-bottom:var(--sp-md)}.empty p{font-size:14px;font-weight:400}.empty p+p{font-size:12px;margin-top:var(--sp-sm)}
.challenge-card{background:linear-gradient(145deg,var(--beige-25),var(--beige-50));border:1px solid var(--border-warm);border-radius:var(--radius);padding:var(--sp-xl) var(--sp-xl);text-align:center;position:relative;overflow:hidden}.challenge-card::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(139,41,66,0.06) 0%,transparent 70%);pointer-events:none}
.challenge-title{font-family:'Fraunces',serif;font-size:20px;font-weight:600;color:var(--text);margin-bottom:var(--sp-sm)}.challenge-sub{font-size:13px;color:var(--text);margin-bottom:var(--sp-xl);font-weight:400}
.challenge-btn{padding:var(--sp-md) var(--sp-xl);border-radius:var(--sp-md);border:none;background:linear-gradient(145deg,var(--accent),var(--accent-dim));color:var(--bg);font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 4px 20px rgba(139,41,66,0.2);transition:transform 0.15s}.challenge-btn:hover{transform:scale(1.03)}.challenge-btn:disabled{opacity:0.5;cursor:default;transform:none}
.challenge-result{margin-top:var(--sp-xl);display:none}.challenge-result.visible{display:block;animation:fadeIn 0.4s ease}
.challenge-recipe-name{font-family:'Fraunces',serif;font-size:24px;font-weight:600;color:var(--accent);margin-bottom:var(--sp-md)}
.challenge-meta{font-size:13px;color:var(--text);margin-bottom:var(--sp-lg);display:flex;justify-content:center;gap:var(--sp-md)}
.challenge-ings{display:flex;flex-wrap:wrap;gap:var(--sp-sm);justify-content:center;margin-bottom:var(--sp-lg)}
.challenge-actions{display:flex;gap:var(--sp-md);justify-content:center}
.ch-btn{padding:var(--sp-md) var(--sp-lg);border-radius:10px;border:1px solid var(--border-warm);background:transparent;color:var(--accent);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all 0.15s}.ch-btn:hover{background:rgba(139,41,66,0.08)}.ch-btn-primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.ai-box{background:linear-gradient(145deg,var(--beige-25),var(--beige-50));border:1px solid var(--border-warm);border-radius:14px;padding:var(--sp-xl);margin-bottom:var(--sp-lg);text-align:center;position:relative}
.ai-title{font-family:'Fraunces',serif;font-size:18px;font-weight:600;color:var(--accent);margin-bottom:var(--sp-sm);display:flex;align-items:center;justify-content:center;gap:var(--sp-md)}
.ai-desc{font-size:13px;color:var(--text);margin-bottom:var(--sp-lg);font-weight:400}
.ai-btn{padding:var(--sp-md) var(--sp-xl);border-radius:10px;border:none;background:linear-gradient(145deg,var(--accent),var(--accent-dim));color:var(--bg);font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 2px 16px rgba(139,41,66,0.15)}.ai-btn:disabled{opacity:0.5;cursor:default}
.api-row{display:flex;gap:var(--sp-md);margin-bottom:var(--sp-md)}.api-row input{flex:1;padding:var(--sp-md);border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;font-family:'Outfit',monospace;outline:none}.api-row input:focus{border-color:var(--accent-dim)}
.api-save{padding:var(--sp-md) var(--sp-lg);border-radius:8px;border:1px solid var(--accent-dim);background:transparent;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.api-status{font-size:11px;margin-bottom:var(--sp-md);font-weight:500}.api-ok{color:var(--green)}.api-missing{color:var(--text-secondary)}
.spinner-wrap{text-align:center;padding:var(--sp-xl)}.spinner-text{font-size:13px;color:var(--text-secondary);font-weight:400}
.ai-results{display:flex;flex-direction:column;gap:var(--sp-md)}
.ai-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-lg);position:relative;overflow:hidden}.ai-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-dim))}
.ai-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--sp-md)}.ai-card-name{font-family:'Fraunces',serif;font-size:17px;font-weight:600;color:var(--text);flex:1}.ai-card-meta{font-size:11.5px;color:var(--text-secondary);display:flex;gap:var(--sp-sm);flex-shrink:0;align-items:center}
.ai-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--text-secondary);margin-bottom:var(--sp-sm)}
.ai-ings{display:flex;flex-wrap:wrap;gap:var(--sp-sm);margin-bottom:var(--sp-md)}
.ai-ing{padding:var(--sp-xs) var(--sp-md);border-radius:5px;font-size:11px;font-weight:500}.ai-ing-have{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.ai-ing-need{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}
.ai-steps{margin-bottom:var(--sp-md)}.ai-step{display:flex;gap:var(--sp-md);margin-bottom:var(--sp-sm);font-size:12.5px;color:var(--text);line-height:1.5;font-weight:400}
.ai-step-num{flex-shrink:0;width:19px;height:19px;border-radius:var(--radius-full);background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--accent)}
.ai-tip{padding:var(--sp-md);border-radius:8px;background:var(--beige-50);border:1px solid var(--border-warm);font-size:12px;color:var(--accent);font-style:italic;font-weight:400}
.ai-add-btn{margin-top:var(--sp-md);padding:var(--sp-sm) var(--sp-md);border-radius:8px;border:1px solid var(--accent-dim);background:transparent;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.match-bar{height:4px;border-radius:2px;background:var(--border);margin:var(--sp-md) 0 var(--sp-md);overflow:hidden}.match-fill{height:100%;border-radius:2px;background:var(--accent);transition:width 0.3s ease}
.match-pct{font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;color:var(--accent)}.match-label{font-family:'Outfit',sans-serif;font-size:11px;color:var(--text-secondary);margin-left:var(--sp-sm)}
.match-select-btn{margin-top:var(--sp-md);padding:var(--sp-sm) var(--sp-md);border-radius:8px;border:1px solid var(--accent-dim);background:transparent;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;font-family:'Outfit',sans-serif}.match-select-btn.on{border-color:var(--green);color:var(--green)}
#mepApiGear:hover{opacity:1!important}
.rcard-actions{display:flex;align-items:center;justify-content:space-between;margin-top:var(--sp-md);gap:var(--sp-md)}
.shop-toggle-btn{padding:var(--sp-md) var(--sp-lg);border-radius:8px;border:1px solid var(--border-warm);background:transparent;color:var(--text);font-size:12px;font-weight:600;cursor:pointer;font-family:'Outfit',sans-serif;transition:all 0.15s;flex:1}.shop-toggle-btn:hover{border-color:var(--accent);color:var(--accent)}.shop-toggle-btn.on{border-color:var(--green);background:var(--green-bg);color:var(--green)}
.rcard-edit-btn,.rcard-del-btn{padding:var(--sp-md);border-radius:8px;border:1px solid var(--border);background:transparent;font-size:11px;font-weight:600;cursor:pointer;font-family:'Outfit',sans-serif;transition:all 0.15s}
.rcard-edit-btn{color:var(--text)}.rcard-edit-btn:hover{border-color:var(--accent);color:var(--accent)}
.rcard-del-btn{color:var(--text-secondary)}.rcard-del-btn:hover{border-color:var(--red-border);color:var(--red)}

/* Sourdough Tracker */
.sd-header{text-align:center;padding:var(--sp-md) 0 var(--sp-sm)}
.sd-day{font-family:'Fraunces',serif;font-size:28px;font-weight:600;color:var(--text);letter-spacing:-0.02em}
.sd-header-row{display:flex;align-items:center;justify-content:center;gap:var(--sp-md);margin-top:var(--sp-md);flex-wrap:wrap}
.sd-timer{font-size:12px;color:var(--text);margin-top:var(--sp-sm);font-weight:400}
.sd-timer span{color:var(--accent)}
.sd-overdue{color:var(--red);font-weight:500;padding:var(--sp-sm) var(--sp-md);border-radius:8px;background:var(--red-bg);border:1px solid var(--red-border);display:inline-block}
.sd-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-sm);margin:var(--sp-md) 0 var(--sp-md)}
.sd-stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:var(--sp-md) var(--sp-sm);text-align:center}
.sd-stat-val{font-family:'Fraunces',serif;font-size:18px;font-weight:600;color:var(--text)}
.sd-stat-label{font-size:9.5px;color:var(--text);font-weight:600;text-transform:uppercase;letter-spacing:0.05em;margin-top:var(--sp-xs)}
.sd-timeline{position:relative;padding-left:var(--sp-lg)}
.sd-entry{position:relative;margin-bottom:var(--sp-md);padding:var(--sp-md);background:var(--surface);border:1px solid var(--border);border-radius:10px;border-left:4px solid var(--accent);cursor:pointer;transition:border-color 0.15s}
.sd-entry:hover{border-color:var(--border-warm)}
.sd-entry::before{content:'';position:absolute;left:-16px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:var(--radius-full);background:var(--border-warm);z-index:2}
.sd-entry::after{content:'';position:absolute;left:-13px;top:0;bottom:-10px;width:2px;background:var(--border);z-index:1}
.sd-entry:first-child::after{top:50%}
.sd-entry:last-child::after{bottom:50%}
.sd-entry:first-child:last-child::after{display:none}
.sd-entry-time{font-size:10.5px;color:var(--text);font-weight:500;margin-bottom:var(--sp-sm)}
.sd-entry-meta{display:flex;gap:var(--sp-sm);align-items:center;flex-wrap:wrap;margin-bottom:var(--sp-sm)}
.sd-entry-ratio{font-size:11px;color:var(--accent);font-weight:600;background:var(--accent-faint);padding:var(--sp-xs) var(--sp-sm);border-radius:4px}
.sd-pill{padding:var(--sp-xs) var(--sp-sm);border-radius:4px;font-size:10.5px;font-weight:600;display:inline-block}
.sd-amounts{font-size:11.5px;color:var(--text);font-weight:400}
.sd-notes{font-size:11.5px;color:var(--text);margin-top:var(--sp-sm);font-style:italic;font-weight:400}
.sd-peak{display:inline-flex;align-items:center;gap:var(--sp-sm);font-size:10.5px;font-weight:600;color:var(--green);background:var(--green-bg);border:1px solid var(--green-border);padding:var(--sp-xs) var(--sp-md);border-radius:4px;margin-top:var(--sp-sm)}
.sd-rise-tracker{margin-top:var(--sp-md);padding:var(--sp-md);background:var(--surface-2);border-radius:8px;display:flex;align-items:center;gap:var(--sp-md)}
.sd-rise-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--green);animation:sdPulse 1.5s ease-in-out infinite;flex-shrink:0}
.sd-rise-info{flex:1;font-size:12px;color:var(--text);font-weight:400}
.sd-rise-elapsed{font-weight:600;color:var(--accent)}
.sd-mark-peak{padding:var(--sp-sm) var(--sp-md);border-radius:8px;border:1px solid var(--green-border);background:var(--green-bg);color:var(--green);font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;flex-shrink:0;transition:all 0.15s}.sd-mark-peak:hover{background:var(--green);color:var(--bg)}
.sd-track-btn{padding:var(--sp-sm) var(--sp-md);border-radius:6px;border:1px solid var(--border-warm);background:transparent;color:var(--text);font-size:10.5px;font-weight:600;cursor:pointer;font-family:inherit;margin-top:var(--sp-sm);transition:all 0.15s}.sd-track-btn:hover{border-color:var(--accent);color:var(--accent)}
.sd-rise-bar{height:4px;border-radius:2px;background:var(--border);margin-top:var(--sp-sm);overflow:hidden}.sd-rise-fill{height:100%;border-radius:2px;background:var(--green);transition:width 0.5s ease}
.sd-rise-select{display:flex;gap:var(--sp-sm);margin-top:var(--sp-md);flex-wrap:wrap}
.sd-rise-opt{padding:var(--sp-md) var(--sp-lg);border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all 0.15s;flex:1;text-align:center}.sd-rise-opt:hover{border-color:var(--accent);color:var(--accent)}.sd-rise-opt.active{border-color:var(--accent);background:var(--accent);color:var(--bg)}
.sd-confetti{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font-size:48px;z-index:2000;animation:sdConfetti 0.8s ease-out forwards;pointer-events:none}
.sd-empty{text-align:center;padding:var(--sp-2xl) var(--sp-lg);color:var(--text-tertiary)}.sd-empty-icon{font-size:36px;margin-bottom:var(--sp-md)}.sd-empty p{font-size:13px;font-weight:400}.sd-empty p+p{font-size:12px;margin-top:var(--sp-sm)}
.sd-reminder{display:flex;align-items:center;gap:var(--sp-sm)}
.sd-remind-toggle{position:relative;width:36px;height:20px;border-radius:10px;background:var(--border);border:none;cursor:pointer;transition:background 0.2s;flex-shrink:0}.sd-remind-toggle.on{background:var(--accent)}
.sd-remind-toggle::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:var(--radius-full);background:var(--surface-2);transition:transform 0.2s}.sd-remind-toggle.on::after{transform:translateX(16px)}
.sd-remind-label{font-size:11px;color:var(--text);font-weight:500}
.sd-remind-select{padding:var(--sp-xs) var(--sp-md);border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:11px;font-family:inherit;outline:none;cursor:pointer}
.sd-bake-btn{padding:var(--sp-sm) var(--sp-lg);border-radius:8px;border:1px solid var(--border-warm);background:linear-gradient(145deg,var(--beige-25),var(--beige-50));color:var(--text);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all 0.15s;white-space:nowrap}.sd-bake-btn:hover{border-color:var(--accent);color:var(--accent)}
.sd-bake-card{background:linear-gradient(145deg,var(--beige-25),var(--beige-50));border:1px solid var(--border-warm);border-radius:var(--radius);padding:var(--sp-lg);margin-bottom:var(--sp-lg);position:relative;overflow:hidden}
.sd-bake-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-md)}
.sd-bake-title{font-family:'Fraunces',serif;font-size:17px;font-weight:600;color:var(--text)}
.sd-bake-elapsed{font-size:11px;color:var(--text);font-weight:500}
.sd-bake-progress{height:4px;border-radius:2px;background:var(--border);margin-bottom:var(--sp-md);overflow:hidden}
.sd-bake-progress-fill{height:100%;border-radius:2px;background:var(--accent);transition:width 0.3s}
.sd-bake-stepper{display:flex;flex-direction:column;gap:var(--sp-xs);margin-bottom:var(--sp-md)}
.sd-bake-step-row{display:flex;align-items:center;gap:var(--sp-md);padding:var(--sp-sm) 0}
.sd-bake-step-row.done{opacity:0.5}
.sd-bake-step-row.next{opacity:0.4}
.sd-bake-step-num{width:24px;height:24px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;border:2px solid var(--border);color:var(--text);background:transparent}
.sd-bake-step-num.done{border-color:var(--green);background:var(--green-bg);color:var(--green)}
.sd-bake-step-num.active{border-color:var(--accent);background:var(--accent);color:var(--bg)}
.sd-bake-step-num.next{border-color:var(--border);color:var(--text-secondary)}
.sd-bake-step-label{font-size:13px;font-weight:500;color:var(--text)}
.sd-bake-step-row.done .sd-bake-step-label{color:var(--text-secondary)}
.sd-bake-step-row.active .sd-bake-step-label{color:var(--text);font-weight:600}
.sd-bake-step-row.next .sd-bake-step-label{color:var(--text-secondary)}
.sd-bake-current{text-align:center;padding:var(--sp-lg) 0}
.sd-bake-phase-emoji{font-size:36px;margin-bottom:var(--sp-sm)}
.sd-bake-phase-name{font-family:'Fraunces',serif;font-size:20px;font-weight:600;color:var(--text);margin-bottom:var(--sp-sm)}
.sd-bake-phase-desc{font-size:13px;color:var(--text);font-weight:400;line-height:1.5;max-width:320px;margin:0 auto var(--sp-md)}
.sd-bake-countdown{font-family:'Fraunces',serif;font-size:32px;font-weight:600;color:var(--accent);letter-spacing:-0.02em;margin-bottom:var(--sp-sm)}
.sd-bake-ready{font-size:14px;font-weight:600;color:var(--green);margin-bottom:var(--sp-md);animation:sdPulse 1.5s ease-in-out infinite}
.sd-bake-timer-bar{height:4px;border-radius:2px;background:var(--border);margin:0 auto;max-width:200px;overflow:hidden}
.sd-bake-timer-fill{height:100%;border-radius:2px;background:var(--accent);transition:width 1s linear}
.sd-bake-actions{display:flex;gap:var(--sp-md);margin-top:var(--sp-lg)}
.sd-bake-cancel{flex:0.4;padding:var(--sp-md);border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.sd-bake-next{flex:1;padding:var(--sp-md);border-radius:10px;border:none;background:var(--surface-2);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all 0.15s}
.sd-bake-next.ready{background:var(--accent);color:var(--bg);box-shadow:0 2px 12px rgba(139,41,66,0.2)}
/* Count-up timer */
.sd-count-up{color:var(--sage-600)!important}
.sd-bake-phase-hint{font-size:11px;color:var(--text-secondary);margin-top:var(--sp-sm)}
/* Ferment method choice in start modal */
.sd-ferment-choice{display:flex;gap:var(--sp-md);margin:var(--sp-sm) 0 var(--sp-lg)}
.sd-ferment-opt{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-sm);padding:var(--sp-md);border-radius:12px;border:2px solid var(--border);background:var(--surface);cursor:pointer;font-family:inherit;transition:all 0.15s}
.sd-ferment-opt.active{border-color:var(--accent);background:var(--accent-faint)}
.sd-ferment-icon{font-size:24px}
.sd-ferment-name{font-size:13px;font-weight:600;color:var(--text)}
.sd-ferment-desc{font-size:10px;color:var(--text-secondary);text-align:center;line-height:1.4}
/* Photo upload in finish modal */
.sd-photo-upload{position:relative;border-radius:12px;border:2px dashed var(--border);background:var(--surface);cursor:pointer;overflow:hidden;margin-bottom:var(--sp-md);min-height:120px;display:flex;align-items:center;justify-content:center}
.sd-photo-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--sp-sm);padding:var(--sp-lg)}
.sd-photo-preview{width:100%;height:auto;display:block;border-radius:10px}
/* Bake entry photo in timeline */
.sd-bake-photo{width:100%;border-radius:8px;margin-top:var(--sp-sm);display:block}
.sd-bake-entry{background:linear-gradient(145deg,var(--beige-25),var(--beige-50))!important}
@keyframes sdPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.5;transform:scale(1.3)}}
@keyframes sdConfetti{0%{opacity:1;transform:translate(-50%,-50%) scale(0.5)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.5) translateY(-30px)}}
