:root{--bg: oklch(.18 .008 70);--surface: oklch(.22 .008 70);--surface2: oklch(.26 .008 70);--text: oklch(.93 .01 70);--text-secondary: oklch(.78 .012 70);--muted: oklch(.68 .012 70);--border: oklch(.32 .01 70);--accent: oklch(.75 .16 75);--accent-muted: oklch(.75 .16 75 / .12);--accent-border: oklch(.75 .16 75 / .35);--success: oklch(.68 .17 145);--success-muted: oklch(.68 .17 145 / .12);--success-border: oklch(.68 .17 145 / .45);--danger: oklch(.62 .22 25);--danger-muted: oklch(.62 .22 25 / .12);--danger-border: oklch(.62 .22 25 / .4);--danger-text: oklch(.82 .12 25);--timer-circ: 150.8;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: 1rem;--text-md: .9375rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.75rem;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 14px;--radius-pill: 20px;--theme-bg-hex: #292622;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--sar: env(safe-area-inset-right, 0px);--z-offline: 100;--z-update: 101;--z-cook-chrome: 102;--cook-chrome-offset: 136px}.index-page{padding:max(20px,env(safe-area-inset-top,0px)) 20px 20px}.index-header{margin-bottom:4px}.index-brand{display:flex;align-items:center;gap:12px;margin-bottom:16px}.index-logo{width:44px;height:44px;border-radius:var(--radius-sm);flex-shrink:0}.index-brand-text{min-width:0}.index-page h1{font-size:var(--text-2xl);font-weight:600;margin-bottom:4px}.index-page .sub{color:var(--muted);font-size:var(--text-sm);margin-bottom:0}.search-wrap{margin-bottom:8px}.search-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.search-field{display:flex;align-items:stretch;gap:8px}.search-input{flex:1;min-height:44px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);font:inherit;font-size:var(--text-md)}.search-input::placeholder{color:var(--muted)}.search-input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent-border)}.search-clear{min-height:44px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--muted);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:color .2s ease-out,border-color .2s ease-out}.search-clear:hover{color:var(--accent);border-color:var(--accent-border)}.search-clear:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.search-meta{margin-top:8px;font-size:var(--text-xs);color:var(--muted)}.index-filters{margin-top:12px;display:flex;flex-direction:column;gap:10px}.filter-row{display:flex;flex-direction:column;gap:6px}.filter-row-split{display:grid;grid-template-columns:1fr 1fr;gap:10px}.filter-control{min-width:0;display:flex;flex-direction:column;gap:6px}.filter-label{font-size:var(--text-xs);font-weight:600;color:var(--muted)}.filter-select{min-height:44px;width:100%;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);font:inherit;font-size:var(--text-sm)}.filter-select:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent-border)}.filter-chips{display:flex;flex-wrap:wrap;gap:6px}.filter-chip{min-height:44px;padding:8px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-secondary);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:border-color .2s ease-out,color .2s ease-out,background .2s ease-out}.filter-chip:hover{border-color:var(--accent-border);color:var(--accent)}.filter-chip[aria-pressed=true]{border-color:var(--accent-border);background:var(--accent-muted);color:var(--accent)}.filter-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.filter-reset{align-self:flex-start;min-height:44px;padding:8px 12px;background:transparent;border:none;color:var(--muted);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.filter-reset:hover{color:var(--accent)}.filter-reset:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.index-page h2{font-size:var(--text-xs);font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin:20px 0 10px}.recipe-section:first-of-type h2{margin-top:12px}.recipe-grid{display:flex;flex-direction:column;gap:10px}@keyframes card-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.recipe-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;text-decoration:none;color:inherit;cursor:pointer;position:relative;overflow:hidden;animation:card-enter .2s ease-out both;animation-delay:var(--card-delay, 0ms);transition:border-color .2s ease-out}.recipe-card:hover,.recipe-card:active{border-color:var(--accent-border)}.recipe-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipe-card-archived{background:var(--bg)}.card-hero{font-size:1.75rem;float:right;opacity:.55;line-height:1}.recipe-card-body{min-width:0}.recipe-card-label{display:block;font-size:var(--text-xs);font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.recipe-card-title{font-weight:600;font-size:var(--text-md);display:block;margin-bottom:10px;padding-right:36px;line-height:1.3;text-wrap:balance}.stock-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.stock-bar{flex:1;height:6px;background:var(--surface2);border-radius:var(--radius-pill);overflow:hidden}.stock-bar-fill{display:block;width:100%;height:100%;background:var(--success);border-radius:var(--radius-pill);transform-origin:left center;transform:scaleX(var(--stock-scale, 0));transition:transform .25s ease-out}.recipe-card:has(.buy-chip) .stock-bar-fill{background:var(--accent)}.stock-pct{font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-secondary);white-space:nowrap}.recipe-card-meta{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:var(--text-xs);color:var(--muted)}.category-chip{padding:2px 8px;background:var(--surface2);border-radius:var(--radius-pill);color:var(--text-secondary);font-weight:600}.buy-chip{padding:2px 8px;background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-pill);color:var(--accent);font-weight:600}.archived-dropdown{margin-top:8px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden;transition:border-color .2s ease-out}.archived-dropdown[open]{border-color:var(--accent-border)}.archived-dropdown-summary{list-style:none;cursor:pointer;padding:14px 16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;-webkit-user-select:none;user-select:none;min-height:44px;transition:background .2s ease-out}.archived-dropdown-summary::-webkit-details-marker{display:none}.archived-dropdown-summary:hover{background:var(--surface2)}.archived-dropdown-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.archived-summary-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;font-size:1.25rem;line-height:1;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0}.archived-summary-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.archived-summary-title{font-weight:600;font-size:var(--text-md);color:var(--text);line-height:1.25}.archived-summary-hint{font-size:var(--text-xs);color:var(--muted);line-height:1.35}.archived-summary-badge{display:flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:0 10px;font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-secondary);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-pill);flex-shrink:0}.archived-dropdown[open] .archived-summary-badge{color:var(--accent);border-color:var(--accent-border);background:var(--accent-muted)}.archived-dropdown-summary:after{content:none}.archived-grid{padding:0 12px 12px;border-top:1px solid var(--border)}.archived-category-group{margin-top:16px}.archived-category-group:first-child{margin-top:12px}.archived-category-title{font-size:var(--text-xs);font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin:0 4px 8px}.empty-state{padding:20px 0 8px}.empty-title{font-size:var(--text-md);font-weight:600;color:var(--text);margin-bottom:6px}.empty-body{font-size:var(--text-sm);color:var(--muted);line-height:1.55}.install-hint{margin-top:24px;font-size:var(--text-xs);color:var(--muted)}@media(prefers-reduced-motion:reduce){.archived-dropdown,.archived-dropdown-summary,.filter-chip{transition:none}.recipe-card{animation:none;transition:none}.stock-bar-fill{transition:none}}.offline-badge{position:sticky;top:0;z-index:var(--z-offline);background:var(--surface2);border-bottom:1px solid var(--border);padding:max(8px,env(safe-area-inset-top,0px)) 16px 8px;font-size:var(--text-xs);color:var(--muted);text-align:center}.update-banner,.offline-ready-banner{position:sticky;top:0;z-index:var(--z-update);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(10px,env(safe-area-inset-top,0px)) 16px 10px;font-size:var(--text-sm)}.update-banner{background:var(--accent-muted);border-bottom:1px solid var(--accent-border)}.offline-ready-banner{background:var(--success-muted);border-bottom:1px solid var(--success-border);color:var(--success)}.update-banner button,.offline-ready-banner button{min-height:36px;padding:6px 12px;border-radius:var(--radius-sm);background:var(--surface);font-size:var(--text-sm);cursor:pointer;font-family:inherit}.update-banner button{border:1px solid var(--accent-border);color:var(--accent)}.offline-ready-banner button{border:1px solid var(--success-border);color:var(--success)}.update-banner button:disabled{opacity:.6;cursor:not-allowed}.install-hint-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.install-hint-row .install-hint{margin:0;flex:1;min-width:0}.btn-install{min-height:44px;padding:10px 16px;border:1px solid var(--accent-border);border-radius:var(--radius-md);background:var(--surface);color:var(--accent);font-size:var(--text-sm);font-weight:600;font-family:inherit;cursor:pointer;flex-shrink:0}.btn-install:hover{background:var(--accent-muted)}.error-page,.loading-page{padding:max(24px,env(safe-area-inset-top,0px)) 20px max(24px,env(safe-area-inset-bottom,0px));color:var(--muted)}.error-page a{color:var(--accent)}*{box-sizing:border-box;margin:0;padding:0}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}html:has(.recipe-page){scroll-snap-type:none}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.step-segment-fill,.step-card.active-step{transform:none!important}}html:has(.recipe-page){scroll-snap-type:y proximity;scroll-behavior:smooth;scroll-padding-top:var(--cook-chrome-offset, 136px)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.6;max-width:480px;margin:0 auto;padding:0 env(safe-area-inset-right,0px) max(24px,env(safe-area-inset-bottom,0px)) env(safe-area-inset-left,0px)}body:has(.recipe-page){padding-bottom:max(80px,env(safe-area-inset-bottom,0px))}.recipe-page .recipe-hero{background:var(--bg);padding:max(24px,env(safe-area-inset-top,0px)) 20px 20px;border-bottom:1px solid var(--border)}.back-link{display:inline-block;margin-bottom:12px;font-size:var(--text-sm);color:var(--muted);text-decoration:none}.back-link:hover,.back-link:focus-visible{color:var(--accent)}.recipe-label{font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.recipe-title,.step-title,.section-title{margin:0}.recipe-title{font-size:var(--text-3xl);font-weight:600;line-height:1.15;color:var(--text);margin-bottom:10px;text-wrap:balance;overflow-wrap:anywhere}.recipe-icon{margin-right:.35em}.recipe-title span{color:var(--accent)}.meta-row{display:flex;gap:14px;flex-wrap:wrap;font-size:var(--text-sm);color:var(--muted)}.btn-copy-recipe{margin-top:16px;width:100%;min-height:44px;padding:12px 16px;background:var(--surface);border:1px solid var(--accent-border);color:var(--accent);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:inherit;cursor:pointer;font-weight:600;transition:background .2s ease-out,color .2s ease-out,border-color .2s ease-out}.btn-copy-recipe:hover{background:var(--accent-muted)}.btn-copy-recipe.copied{border-color:var(--success-border);color:var(--success)}.btn-copy-recipe.err{border-color:var(--danger-border);color:var(--danger-text)}.missing-banner{margin:16px 20px 0;padding:10px 14px;background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--accent)}.missing-banner strong{display:block;margin-bottom:2px;font-size:var(--text-xs);font-weight:600;letter-spacing:.03em;text-transform:uppercase}.cook-chrome{position:sticky;top:0;z-index:var(--z-cook-chrome);background:var(--bg);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top,0px)}.cook-chrome-progress{display:flex;flex-direction:column;gap:10px;padding:12px 20px}.step-progress-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.step-progress-position{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.step-progress-num{font-variant-numeric:tabular-nums;color:var(--accent)}.step-progress-done{font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--success);background:var(--success-muted);border:1px solid var(--success-border);border-radius:var(--radius-pill);padding:3px 10px;white-space:nowrap}.step-track{display:flex;gap:4px;width:100%}.step-segment{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:1;min-width:0;min-height:44px;padding:18px 0;margin:-14px 0;border:none;background:transparent;cursor:pointer;font:inherit;color:inherit;display:flex;align-items:center}.step-segment-fill{display:block;width:100%;height:6px;border-radius:var(--radius-pill);background:var(--surface2);border:1px solid var(--border);transition:background .2s ease-out,border-color .2s ease-out,transform .2s ease-out}.step-segment-active .step-segment-fill{background:var(--accent);border-color:var(--accent);transform:scaleY(1.15)}.step-segment-done .step-segment-fill{background:var(--success);border-color:var(--success)}.step-segment-pending .step-segment-fill{background:var(--surface2);border-color:var(--border)}.step-progress-nav{display:grid;grid-template-columns:minmax(64px,auto) 1fr minmax(64px,auto);align-items:center;gap:8px}.step-nav-btn{min-height:44px;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .2s ease-out,color .2s ease-out,background .2s ease-out}.step-nav-btn:hover:not(:disabled){border-color:var(--accent-border);color:var(--accent);background:var(--accent-muted)}.step-nav-btn:disabled{opacity:.4;cursor:not-allowed}.step-current-title{margin:0;font-size:var(--text-sm);font-weight:600;color:var(--text);text-align:center;line-height:1.35;text-wrap:balance;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.section{padding:24px 20px 0}.section-title{font-size:var(--text-xl);font-weight:600;color:var(--text);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--border)}.cook-section{padding-bottom:16px}.reference-panel-top{padding-top:0;border-top:none;margin-top:0;border-bottom:1px solid var(--border);margin-bottom:0}.reference-panel{padding-top:8px;border-top:1px solid var(--border);margin-top:8px}.nutrition-note{font-size:var(--text-xs);color:var(--muted);padding:6px 0 16px;line-height:1.5}.section-toggle{width:100%;text-align:left;background:none;border:none;cursor:pointer;font:inherit;color:inherit;padding:0 0 8px;margin-bottom:0;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}.section-toggle .chevron{font-size:var(--text-sm);color:var(--muted);transition:transform .2s ease-out}.section-toggle[aria-expanded=false] .chevron{transform:rotate(-90deg)}.collapsible-content{overflow:hidden;margin-top:8px}.collapsible-content.collapsed{display:none}#ingredientsSection .section-toggle,#nutritionSection .section-toggle,#prepSection .section-toggle{border-bottom:1px solid var(--border);margin-bottom:0}.nutrition-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:8px}@media(max-width:360px){.nutrition-grid{grid-template-columns:repeat(3,1fr)}}.nut-card{background:var(--surface);border-radius:var(--radius-md);padding:10px 6px;text-align:center;border:1px solid var(--border)}.nut-val{font-size:var(--text-lg);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.nut-label{font-size:var(--text-xs);color:var(--muted);margin-top:2px}.ing-group-title{font-size:var(--text-xs);font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin:16px 0 8px}.ing-item{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--border);font-size:var(--text-md);gap:12px}.ing-name{flex:1}.ing-qty{color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.ing-item.need-to-buy .ing-name,.ing-item.need-to-buy .ing-qty{color:var(--accent)}.buy-tag{font-size:var(--text-xs);background:var(--accent-muted);color:var(--accent);border-radius:var(--radius-xs);padding:1px 5px;margin-left:4px;vertical-align:middle;font-weight:600}.prep-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:var(--text-md)}.prep-time{font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--accent);background:var(--accent-muted);border-radius:var(--radius-xs);padding:2px 6px;white-space:nowrap;height:fit-content;margin-top:2px;flex-shrink:0}.prep-note{font-size:var(--text-sm);color:var(--muted);margin-top:12px;padding-top:12px;border-top:1px solid var(--border);line-height:1.5}.prep-during{margin-top:10px;padding:10px 12px;background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text)}.prep-during-label{font-weight:600;color:var(--accent);margin-bottom:8px}.prep-during-list{list-style:none;margin:0;padding:0}.prep-during-list li{display:flex;gap:10px;padding:6px 0;border-bottom:1px solid var(--accent-border);line-height:1.45}.prep-during-list li:last-child{border-bottom:none;padding-bottom:0}.steps-wrap{padding:16px 20px 24px}@keyframes step-focus-in{0%{opacity:.92;transform:translateY(10px);box-shadow:0 0 0 0 transparent}to{opacity:1;transform:translateY(0);box-shadow:0 0 0 1px var(--accent-muted)}}.step-card{background:var(--surface);border-radius:var(--radius-xl);padding:18px;margin-bottom:14px;border:1px solid var(--border);scroll-snap-align:start;scroll-snap-stop:always;scroll-margin-top:var(--cook-chrome-offset, 136px);transition:border-color .25s ease-out,box-shadow .25s ease-out,opacity .25s ease-out}.step-card.active-step:not(.done-step){animation:step-focus-in .42s cubic-bezier(.22,1,.36,1) both}.step-card.active-step{border-color:var(--accent-border);box-shadow:0 0 0 1px var(--accent-muted)}.step-card.done-step{border-color:var(--success-border)}.step-card.done-step .step-body{color:var(--muted)}.step-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;min-width:0}.step-num{font-size:var(--text-xl);font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted);line-height:1;min-width:28px}.step-card.active-step .step-num{color:var(--accent)}.step-heading{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.step-title{font-size:var(--text-lg);font-weight:600;margin:0;min-width:0;line-height:1.25;text-wrap:balance;overflow-wrap:anywhere}.step-time-badge{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--muted);background:var(--surface2);border-radius:var(--radius-pill);flex-shrink:0;padding:3px 10px;white-space:nowrap}.step-body{font-size:var(--text-md);line-height:1.65;color:var(--text-secondary)}.cue{margin-top:10px;padding:8px 12px;background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--accent)}.warning{margin-top:10px;padding:8px 12px;background:var(--danger-muted);border:1px solid var(--danger-border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--danger-text);font-weight:600}.meanwhile{margin-top:10px;padding:8px 12px;background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--accent)}.step-gate{margin-top:10px;padding:10px 12px;border-radius:var(--radius-sm);font-size:var(--text-sm);line-height:1.45}.step-gate-label{display:block;font-weight:600;margin-bottom:4px}.step-gate p{margin:0}.step-gate-background{background:var(--accent-muted);border:1px solid var(--accent-border);color:var(--text-secondary)}.step-gate-background .step-gate-label{color:var(--accent)}.step-gate-blocking{background:var(--surface2);border:1px solid var(--border);color:var(--text-secondary)}.step-gate-blocking .step-gate-label{color:var(--text)}.step-continue-btn{display:none;width:100%;min-height:44px;margin-top:12px;padding:12px 16px;font-size:var(--text-md);font-weight:600;font-family:inherit;color:var(--accent);background:var(--surface);border:1px solid var(--accent-border);border-radius:var(--radius-md);cursor:pointer;transition:background .2s ease-out}.step-continue-btn.show{display:block}.step-continue-btn:hover{background:var(--accent-muted)}.step-continue-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.timer-wrap{margin-top:14px;display:flex;align-items:center;gap:14px;background:var(--surface2);border-radius:var(--radius-lg);padding:12px 14px;flex-wrap:wrap}.timer-ring-wrap{position:relative;width:56px;height:56px;flex-shrink:0}.timer-ring-wrap svg{position:absolute;top:0;left:0;transform:rotate(-90deg)}.timer-ring-bg{fill:none;stroke:var(--border);stroke-width:4}.timer-ring-fg{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-dasharray:var(--timer-circ);stroke-dashoffset:0;transition:stroke .2s ease-out}.timer-display{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.timer-info{flex:1 1 140px;min-width:0;display:flex;flex-direction:column;gap:4px}.timer-step-name{display:block;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.35;overflow-wrap:anywhere}.timer-countdown{display:block;font-size:var(--text-2xl);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.02em;line-height:1.1}.timer-controls{display:flex;gap:8px}.btn-timer{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);min-height:44px;padding:10px 16px;font-size:var(--text-sm);cursor:pointer;transition:background .2s ease-out,border-color .2s ease-out,color .2s ease-out;font-family:inherit}.btn-timer:hover{background:var(--surface2)}.btn-timer.start{color:var(--accent);border-color:var(--accent-border)}.btn-timer.reset{color:var(--muted)}.done-banner{display:none;margin-top:10px;padding:10px 14px;background:var(--success-muted);border:1px solid var(--success-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--success);font-weight:600;text-align:center}.done-banner.show{display:block}.step-done-btn{margin-top:12px;width:100%;background:transparent;border:1px solid var(--border);color:var(--muted);min-height:44px;padding:12px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);font-family:inherit;transition:border-color .2s ease-out,color .2s ease-out,background .2s ease-out}.step-done-btn:hover{border-color:var(--success-border);color:var(--success)}.step-done-btn.marked{background:var(--success-muted);border-color:var(--success-border);color:var(--success)}.step-done-btn:disabled,.step-done-btn.gate-blocked{opacity:.5;cursor:not-allowed;border-color:var(--border);color:var(--muted)}.step-done-btn:disabled:hover,.step-done-btn.gate-blocked:hover{border-color:var(--border);color:var(--muted);background:transparent}.tip-box{background:var(--surface);border-radius:var(--radius-lg);padding:16px;margin:16px 20px;border:1px solid var(--border);font-size:var(--text-sm);color:var(--muted);line-height:1.6}.tip-box strong{color:var(--text);font-weight:600}.cook-chrome-timer{display:none;padding:8px 20px 10px;background:var(--accent-muted);border-top:1px solid var(--accent-border);align-items:center;gap:12px;flex-wrap:wrap}.cook-chrome-timer.show{display:flex}.cook-chrome-timer .timer-bar-label{font-size:var(--text-sm);color:var(--accent);flex:1;min-width:100px}.cook-chrome-timer .timer-bar-countdown{font-size:var(--text-xl);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.cook-chrome-timer .timer-bar-scroll{min-height:44px;padding:8px 14px;box-sizing:border-box;background:var(--surface);border:1px solid var(--accent-border);color:var(--accent);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;font-family:inherit;font-weight:600;text-decoration:none;display:inline-flex;align-items:center}.cook-chrome-timer .timer-bar-scroll:hover{background:var(--accent-muted)}@media(max-width:360px){.recipe-title{font-size:var(--text-2xl)}.step-header{flex-wrap:wrap}.step-heading{flex-direction:column;align-items:flex-start;gap:6px}.step-time-badge{margin-left:0}.timer-wrap{flex-wrap:wrap}.timer-controls{width:100%}.btn-timer{flex:1}}.step-segment:focus-visible,.step-nav-btn:focus-visible,.section-toggle:focus-visible,.btn-timer:focus-visible,.step-done-btn:focus-visible,.step-continue-btn:focus-visible,.btn-copy-recipe:focus-visible,.cook-chrome-timer .timer-bar-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media print{.cook-chrome,.btn-copy-recipe,.step-done-btn,.timer-wrap,.timer-controls{display:none!important}.collapsible-content,.collapsible-content.collapsed{display:block!important}.step-card{break-inside:avoid}}
