:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--black:#121212;--yellow:#ffc62b;--yellow-strong:#f0b400;--yellow-soft:#fff4cc;--red:#d62828;--red-strong:#b3161b;--red-soft:#fde8e8;--bg:#fbf8ef;--surface:#fff;--surface-sunken:#f6f2e6;--border:#e8e2cf;--text:#141414;--text-muted:#5c574a;--placeholder:#716b5c;--on-black:#f3efe3;--on-black-muted:#a8a292;--series-ale:#d62828;--series-lager:#a67c00;--stage-brewed-bg:#f1efe8;--stage-brewed-fg:#3d3a33;--stage-brewed-accent:#8a857a;--stage-fermenting-bg:#fde8e8;--stage-fermenting-fg:#a3161a;--stage-fermenting-accent:#d62828;--stage-lagering-bg:#fff4cc;--stage-lagering-fg:#6b4f00;--stage-lagering-accent:#e0a800;--stage-cold-crash-bg:#e4f2ff;--stage-cold-crash-fg:#155a91;--stage-cold-crash-accent:#287bb5;--stage-bottled-bg:#121212;--stage-bottled-fg:#ffc62b;--stage-bottled-accent:#121212;--primary:var(--yellow);--primary-hover:var(--yellow-strong);--primary-press:#d9a200;--primary-soft:var(--yellow-soft);--on-primary:var(--black);--danger:var(--red);--danger-strong:var(--red-strong);--danger-soft:var(--red-soft);--success:#1e6b34;--success-soft:#e4f3e8;--warning:#9a4a00;--warning-soft:#fff0d9;--border-strong:#8f887a;--focus-ring:var(--black);--shadow-raised:0 4px 12px #0000001f;--shadow-overlay:0 8px 24px #00000029;--duration-instant:.1s;--duration-quick:.15s;--control-sm:2rem;--control-md:2.5rem;--control-touch:2.75rem;color:var(--text);background-color:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--yellow-soft:#ffc62b24;--red:#e5484d;--red-strong:#ff6b6b;--red-soft:#e5484d29;--bg:#0f0f0f;--surface:#1a1a19;--surface-sunken:#141413;--border:#2e2c27;--text:#f3efe3;--text-muted:#a8a292;--placeholder:#8f897a;--series-ale:#c62828;--series-lager:#bb8a00;--stage-brewed-bg:#ffffff14;--stage-brewed-fg:#d6d2c4;--stage-brewed-accent:#6f6a5f;--stage-fermenting-bg:#e5484d2e;--stage-fermenting-fg:#ff9a9a;--stage-fermenting-accent:#e5484d;--stage-lagering-bg:#ffc62b29;--stage-lagering-fg:#ffd666;--stage-lagering-accent:#ffc62b;--stage-cold-crash-bg:#4ba2e12e;--stage-cold-crash-fg:#9bd3ff;--stage-cold-crash-accent:#61b5f2;--stage-bottled-bg:#000;--stage-bottled-fg:#ffc62b;--stage-bottled-accent:#ffc62b;--success:#6fd08a;--success-soft:#6fd08a24;--warning:#ffb54d;--warning-soft:#ffb54d24;--border-strong:#6f6a5f;--focus-ring:var(--yellow)}}body{margin:0}main{max-width:1040px;margin:0 auto;padding:2rem 1.5rem 4rem}h2{letter-spacing:-.01em;text-wrap:balance;overflow-wrap:anywhere;margin:.25rem 0 1rem;font-size:1.6rem;line-height:1.2}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}a{color:inherit;-webkit-text-decoration-color:var(--primary-hover);text-decoration-color:var(--primary-hover);text-underline-offset:3px;text-decoration-thickness:2px}a:hover{color:var(--danger);-webkit-text-decoration-color:var(--danger);text-decoration-color:var(--danger)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.app-header :focus-visible,.hero:focus-visible{outline-color:var(--yellow)}::placeholder{color:var(--placeholder);opacity:1}.page-status{color:var(--text-muted)}.empty-state{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin:0 0 2rem;display:flex}.empty-state p{margin:0}.app-header{background:var(--black);color:var(--on-black);border-bottom:4px solid var(--yellow);box-shadow:inset 0 -7px 0 -4px var(--red)}.app-header-inner{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem 1.5rem;max-width:1040px;margin:0 auto;padding:1rem 1.5rem;display:grid}.brand{color:inherit;align-items:center;gap:.75rem;text-decoration:none;display:flex}.brand:hover{color:inherit}.brand>span{flex-direction:column;line-height:1.15;display:flex}.brand-mark{flex:none;width:40px;height:40px}.brand-mark .glass,.brand-mark .handle{fill:none;stroke:var(--on-black);stroke-width:1.6px;stroke-linejoin:round}.brand-mark .beer{fill:var(--yellow)}.brand-mark .foam{fill:var(--on-black)}.brand-name{color:var(--yellow);letter-spacing:-.02em;font-size:1.5rem;font-weight:800}.brand-tagline{color:var(--on-black-muted);font-size:.8rem}.tabs{background:#ffffff0f;border-radius:999px;grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr));gap:.25rem;padding:.25rem;display:grid}.tabs a{min-height:var(--control-touch);box-sizing:border-box;color:var(--on-black);border-radius:999px;justify-content:center;align-items:center;padding:.4rem 1rem;font-weight:500;text-decoration:none;display:flex}.tabs a:hover{color:var(--yellow)}.tabs a.active{background:var(--yellow);color:var(--black);font-weight:700}.unit-toggle{background:#ffffff0f;border-radius:999px;padding:.2rem;display:flex}.unit-toggle button{color:var(--on-black-muted);background:0 0;border:none;border-radius:999px;padding:.25rem .65rem;font-size:.875rem;font-weight:600}.unit-toggle button:hover:not(:disabled),.unit-toggle button:active:not(:disabled){color:var(--yellow);background:0 0}.unit-toggle button.active,.unit-toggle button.active:hover:not(:disabled),.unit-toggle button.active:active:not(:disabled){background:var(--on-black);color:var(--black)}@media (pointer:coarse){.tabs a,.unit-toggle button,.profile-link{min-height:var(--control-touch);align-items:center;display:inline-flex}}.profile-avatar{background:var(--yellow);width:1.8rem;height:1.8rem;color:var(--black);border-radius:50%;flex:none;place-items:center;font-size:.875rem;font-weight:700;display:inline-grid}.profile-link{color:var(--on-black);background:#ffffff0f;border-radius:999px;align-items:center;gap:.5rem;padding:.2rem .8rem .2rem .2rem;font-weight:500;text-decoration:none;display:flex}.profile-avatar img{object-fit:cover;border-radius:inherit;width:100%;height:100%}.profile-link:hover,.profile-link.active{color:var(--yellow)}.account-menu>.profile-link:hover:not(:disabled),.account-menu>.profile-link:active:not(:disabled){background:#ffffff1a}.auth-screen{max-width:26rem;margin:3rem auto;padding:0 1.5rem}.auth-screen h1{margin-bottom:.25rem}.auth-switch{text-align:center}.auth-form h2{margin:0 0 1.25rem;font-size:1.25rem}.auth-form input,.auth-form button.link,.auth-footer button.link{min-height:var(--control-touch)}.auth-form input{box-sizing:border-box}.auth-form .actions button[type=submit]{width:100%;min-height:var(--control-touch)}.auth-form .auth-switch{margin-bottom:0}.auth-footer .auth-switch{margin:0;font-size:.875rem}.account-loading{text-align:center;margin-top:3rem}.recipe-form.danger-zone{border-top-color:var(--danger)}button{font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:inherit;cursor:pointer;transition:background-color var(--duration-instant) ease-out, border-color var(--duration-instant) ease-out, color var(--duration-instant) ease-out;border-radius:8px;padding:.45rem 1rem;font-weight:500}button:hover:not(:disabled){border-color:var(--text)}button:active:not(:disabled){background:var(--surface-sunken)}button.primary,button[type=submit]{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:700}button.primary:hover:not(:disabled),button[type=submit]:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}button.primary:active:not(:disabled),button[type=submit]:active:not(:disabled){background:var(--primary-press);border-color:var(--primary-press)}button:disabled{opacity:.5;cursor:default}button.danger{color:var(--danger);border-color:var(--danger);background:var(--surface)}button.danger:hover:not(:disabled){background:var(--danger);border-color:var(--danger);color:var(--on-danger)}button.link,button.link:hover:not(:disabled),button.link:active:not(:disabled){text-decoration:underline;-webkit-text-decoration-color:var(--primary-hover);text-decoration-color:var(--primary-hover);text-underline-offset:3px;background:0 0;border:none;padding:0;text-decoration-thickness:2px}button.link.danger{color:var(--danger);-webkit-text-decoration-color:var(--danger);text-decoration-color:var(--danger)}button.link.danger:hover:not(:disabled){color:var(--danger-strong)}a.button-primary{min-height:var(--control-md);box-sizing:border-box;background:var(--primary);color:var(--on-primary);transition:background-color var(--duration-instant) ease-out;border-radius:8px;align-items:center;padding:.5rem 1rem;font-weight:700;text-decoration:none;display:inline-flex}a.button-primary:hover{background:var(--primary-hover);color:var(--on-primary)}a.button-primary:active{background:var(--primary-press)}.section-header{justify-content:space-between;align-items:center;gap:1rem;margin:.25rem 0 1rem;display:flex}.section-header h2{margin:0}.section-header .actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.section-header .actions button{white-space:nowrap}.form-context{margin:-.4rem 0 .9rem}@media (width<=720px){.recipe-table th:nth-child(2),.recipe-table td:nth-child(2),.recipe-table th:nth-child(4),.recipe-table td:nth-child(4),.recipe-table th:nth-child(5),.recipe-table td:nth-child(5),.recipe-table th:nth-child(6),.recipe-table td:nth-child(6){display:none}}.breadcrumb{color:var(--text-muted);margin-bottom:0;font-size:.875rem}.muted{color:var(--text-muted);font-size:.875rem}[role=alert]{color:var(--danger-strong);background:var(--danger-soft);border-left:4px solid var(--danger);border-radius:6px;padding:.5rem .75rem .5rem 2.25rem;position:relative}[role=alert]:before{content:"";background:currentColor;width:1rem;height:1rem;position:absolute;top:.75em;left:.75rem;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5M12 16.5h.01'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5M12 16.5h.01'/%3E%3C/svg%3E") 50%/contain no-repeat}svg.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none}.success-message{color:var(--success);align-items:center;gap:.25rem;font-size:.875rem;display:inline-flex}.notice-warning{color:var(--warning);background:var(--warning-soft);border-left:4px solid var(--warning);border-radius:6px;align-items:baseline;gap:.5rem;padding:.5rem .75rem;display:flex}.notice-warning svg.icon{align-self:center}.with-icon{align-items:center;gap:.4rem;display:inline-flex}table{border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;width:100%;margin-top:1rem;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.625rem .875rem}th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}@media (width<=720px){table.scroll-x{white-space:nowrap;display:block;position:relative;overflow-x:auto}}tbody tr:last-child td{border-bottom:none}th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-sunken);border-bottom:2px solid var(--primary);font-size:.8rem;font-weight:700}.clickable-rows tbody tr{cursor:pointer}.clickable-rows tbody tr:hover{background:var(--primary-soft)}.clickable-rows td:first-child a{font-weight:600}.actions-col{white-space:nowrap;text-align:right;cursor:default}.actions-col>*+*{margin-left:.75rem}table.numeric td:nth-child(n+2),table.numeric th:nth-child(n+2),.chart-table td:nth-child(n+2),.chart-table th:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}table.numeric.numeric-from-4 td:nth-child(-n+3),table.numeric.numeric-from-4 th:nth-child(-n+3){text-align:left}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:.375rem;padding:.125rem .625rem;font-size:.8rem;font-weight:600;display:inline-flex}.badge .dot{background:var(--series);border-radius:50%;width:8px;height:8px}.type-ale{background:var(--danger-soft);color:var(--danger-strong)}.type-lager{background:var(--primary-soft);color:var(--stage-lagering-fg)}.badge.stage-brewed{background:var(--stage-brewed-bg);color:var(--stage-brewed-fg)}.badge.stage-fermenting{background:var(--stage-fermenting-bg);color:var(--stage-fermenting-fg)}.badge.stage-lagering{background:var(--stage-lagering-bg);color:var(--stage-lagering-fg)}.badge.stage-cold-crash{background:var(--stage-cold-crash-bg);color:var(--stage-cold-crash-fg)}.badge.stage-bottled{background:var(--stage-bottled-bg);color:var(--stage-bottled-fg);box-shadow:inset 0 0 0 1px var(--stage-bottled-accent)}.recipe-form{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--primary);border-radius:10px;margin:1rem 0 1.5rem;padding:1.25rem 1.5rem}.section-actions{flex-wrap:wrap;gap:.5rem;display:flex}.recipe-import{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--primary);border-radius:10px;margin:1rem 0 1.5rem;padding:1.25rem 1.5rem}.recipe-import h3{margin-top:0}.import-drop{min-height:var(--control-touch,2.75rem);background:var(--surface-sunken);border:1px dashed var(--border-strong);cursor:pointer;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.import-drop:hover,.import-drop:focus-within,.import-drop.dragging{border-color:var(--primary-hover);background:var(--primary-soft)}.import-drop:focus-within{outline:3px solid var(--primary-soft);outline-offset:1px}.import-file{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.import-again{text-decoration:underline;-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary);text-underline-offset:4px;flex:none;margin-left:auto;font-size:.875rem}.import-error{margin:.75rem 0 0}.import-list{transition:opacity var(--duration-instant,.1s) ease-out;gap:.5rem;margin:1rem 0;padding:0;list-style:none;display:grid}.import-list.busy{opacity:.55}.import-row{border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem}.import-row-head{flex-wrap:wrap;align-items:center;gap:.25rem .5rem;display:flex}.import-facts{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.875rem}.import-warnings{background:var(--warning-soft);border-left:4px solid var(--warning);border-radius:6px;margin-top:.5rem;font-size:.875rem}.import-warnings summary{min-height:var(--control-touch,2.75rem);color:var(--warning);cursor:pointer;align-items:center;gap:.5rem;padding:0 .75rem;font-weight:600;display:flex}.import-warnings ul{margin:0;padding:0 .75rem .75rem 2rem}.import-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;margin-top:1rem;padding-top:1rem;display:flex}@media (width<=480px){.import-actions{flex-direction:column-reverse;align-items:stretch}.import-actions button.primary{width:100%}}.recipe-form h3{margin-top:0}.recipe-form .grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem 1rem;display:grid}.recipe-form .grid>.wide{grid-column:span 2}.recipe-form label,.tool-card label{flex-direction:column;gap:.25rem;margin-bottom:.75rem;font-size:.875rem;font-weight:500;display:flex}.recipe-form input,.recipe-form textarea,.recipe-form select,.tool-card input,.tool-card select{font:inherit;border:1px solid var(--border-strong);background:var(--surface-sunken);color:var(--text);border-radius:8px;padding:.5rem .625rem;font-size:1rem;font-weight:400}.recipe-form input:focus,.recipe-form textarea:focus,.recipe-form select:focus,.tool-card input:focus,.tool-card select:focus{border-color:var(--primary-hover);box-shadow:0 0 0 3px var(--primary-soft)}.recipe-form input:focus:not(:focus-visible),.recipe-form textarea:focus:not(:focus-visible),.recipe-form select:focus:not(:focus-visible),.tool-card input:focus:not(:focus-visible),.tool-card select:focus:not(:focus-visible){outline:none}.recipe-form [aria-invalid=true]{border-color:var(--danger)}.recipe-form [aria-invalid=true]:focus{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.input-with-unit{align-items:center;gap:.5rem;display:flex}.input-with-unit input{flex:1;min-width:0}.input-unit{color:var(--text-muted);white-space:nowrap;font-weight:500}.recipe-form fieldset{border:1px solid var(--border);border-radius:8px;margin:0 0 1rem;padding:.5rem 1rem 0}.recipe-form legend{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:0 .35rem;font-size:.8rem;font-weight:700}.recipe-form .actions{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.recipe-form .actions .apart{margin-left:auto}.details{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-top:1rem;padding:1.25rem 1.5rem}.details h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:2px solid var(--primary);margin:1.5rem 0 .5rem;padding-bottom:.375rem;font-size:.8rem;display:inline-block}.details dl{grid-template-columns:max-content 1fr;align-items:center;gap:.45rem 1.5rem;margin:0;display:grid}.details dt{color:var(--text-muted)}.details dd{margin:0}.details dl.muted{border-top:1px solid var(--border);margin-top:2rem;padding-top:1rem}.details .notes{white-space:pre-wrap;max-width:65ch;margin:0}.danger-zone{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--danger);border-radius:10px;margin:2rem 0 0;padding:1.25rem 1.5rem}.danger-zone h3{margin:0 0 .25rem;font-size:1rem}.danger-zone p{max-width:65ch;margin:0 0 1rem}.dashboard h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);align-items:center;gap:.5rem;margin:2rem 0 .75rem;font-size:.8rem;display:flex}.dashboard h3:before{content:"";background:var(--danger);border-radius:2px;width:14px;height:4px}.hero{color:var(--on-black);background:linear-gradient(115deg, var(--black) 0 72%, var(--red) 72% 77%, var(--black) 77% 79%, var(--yellow) 79% 86%, var(--black) 86%);border:1px solid var(--border);border-radius:14px;flex-direction:column;margin-bottom:1.25rem;padding:1.5rem 1.75rem;display:flex}.hero .stat-label,.hero .stat-detail{color:var(--on-black-muted);opacity:1}.hero-value{color:var(--yellow);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:3.25rem;font-weight:800;line-height:1.1}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--primary);border-radius:10px;flex-direction:column;gap:.25rem;padding:.75rem 1rem;display:flex}.stat-label{color:var(--text-muted);font-size:.8rem;font-weight:600}.stat-value{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:700;line-height:1.1}.stat-value small,.hero-value small{letter-spacing:0;font-size:.55em;font-weight:600}.stat-value small{color:var(--text-muted)}.hero-value small{color:var(--on-black-muted)}.stat-detail{color:var(--text-muted);font-size:.8rem}.pipeline .stat-tile{border-top:1px solid var(--border);border-left:5px solid var(--tone-accent);background:var(--tone-bg)}.pipeline .stat-tile .stat-value{color:var(--tone-fg)}.stat-tile.stage-brewed{--tone-bg:var(--stage-brewed-bg);--tone-fg:var(--stage-brewed-fg);--tone-accent:var(--stage-brewed-accent)}.stat-tile.stage-fermenting{--tone-bg:var(--stage-fermenting-bg);--tone-fg:var(--stage-fermenting-fg);--tone-accent:var(--stage-fermenting-accent)}.stat-tile.stage-lagering{--tone-bg:var(--stage-lagering-bg);--tone-fg:var(--stage-lagering-fg);--tone-accent:var(--stage-lagering-accent)}.stat-tile.stage-bottled{--tone-bg:var(--stage-bottled-bg);--tone-fg:var(--stage-bottled-fg);--tone-accent:var(--primary)}.stat-tile.stage-bottled .stat-label,.stat-tile.stage-bottled .stat-detail{color:var(--on-black-muted)}a.stat-link{transition:transform var(--duration-instant) ease-out, box-shadow var(--duration-instant) ease-out;text-decoration:none}a.stat-tile.stat-link{color:inherit}a.hero.stat-link{color:var(--on-black)}a.stat-link:hover{box-shadow:var(--shadow-raised);transform:translateY(-1px)}@media (prefers-reduced-motion:reduce){a.stat-link:hover{transform:none}}a.stat-link .stat-value,a.stat-link .hero-value{text-underline-offset:4px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:2px}a.stat-link:hover .stat-value,a.stat-link:hover .hero-value{text-decoration-color:currentColor}.list-filters{align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.list-filters label.inline-field{color:var(--text-muted);align-items:center;gap:.375rem;font-size:.875rem;display:flex}.list-filters select{font:inherit;min-height:var(--control-sm);border:1px solid var(--border-strong);background:var(--surface-sunken);color:var(--text);border-radius:8px;padding:0 .5rem}@media (pointer:coarse){.list-filters select{min-height:var(--control-touch)}}.list-filters select:focus{border-color:var(--primary-hover);box-shadow:0 0 0 3px var(--primary-soft)}.recipe-ranking{gap:1rem;margin:1rem 0 1.5rem;padding:0;list-style:none;display:grid}.recipe-ranking-label{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.375rem;display:flex}.recipe-ranking-label span:first-child{overflow-wrap:anywhere}.recipe-ranking-label span:last-child{font-variant-numeric:tabular-nums;color:var(--text-muted);flex-shrink:0}.recipe-ranking-track{background:var(--surface-sunken);border-radius:3px;height:.75rem;overflow:hidden}.recipe-ranking-track>div{background:var(--series);height:100%}.series-ale{--series:var(--series-ale)}.series-lager{--series:var(--series-lager)}.volume-history-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;margin:2rem 0 .75rem;display:flex}.volume-history-header h3{margin:0}.volume-history-controls{flex-wrap:wrap;gap:.75rem;display:flex}.volume-history-controls label{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.volume-history-controls select{border:1px solid var(--border-strong);background:var(--surface);width:auto;min-height:2.75rem;color:var(--text);font:inherit;border-radius:8px;padding:.5rem .625rem}@media (width<=720px){.volume-history .chart-axis{font-size:20px}}.volume-history .chart-tooltip{white-space:normal;width:max-content;max-width:calc(100% - 1rem)}.volume-history .chart-table{overflow-x:auto}.chart{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin:0;padding:1rem 1.25rem .75rem}.chart-plot{position:relative}.chart svg{width:100%;height:auto;display:block}.chart-grid{stroke:var(--border);stroke-width:1px}.chart-axis{fill:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.6875rem}.chart-bar{fill:var(--series)}.chart-col.hovered .chart-bar{stroke:var(--text);stroke-width:1px}.swatch{background:var(--series);vertical-align:baseline;border-radius:2px;width:10px;height:10px;margin-right:.4rem;display:inline-block}.chart-legend{gap:1rem;margin:0 0 .5rem;padding:0;font-size:.875rem;list-style:none;display:flex}.chart-tooltip{font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;background:var(--black);color:var(--on-black);border:1px solid color-mix(in srgb, var(--on-black) 18%, transparent);box-shadow:var(--shadow-overlay);border-radius:8px;flex-direction:column;padding:.5rem .75rem;font-size:.875rem;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 8px))}.chart-tooltip strong{color:var(--yellow)}.tooltip-row{align-items:center;display:flex}.chart-table summary{cursor:pointer;color:var(--text-muted);margin-top:.5rem;font-size:.875rem}.combobox{flex-direction:column;display:flex;position:relative}.combobox-list{z-index:10;background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--primary);width:max(100%,460px);max-width:calc(100vw - 2rem);max-height:320px;box-shadow:var(--shadow-overlay);border-radius:10px;margin:0;padding:.25rem;list-style:none;position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto}@media (width<=720px){.combobox-list{width:auto;max-width:none;left:0}}.combobox-list.stale li{opacity:.55}.combobox-list li{cursor:pointer;border-radius:6px;flex-direction:column;padding:.5rem .75rem;display:flex}.combobox-list li.active{background:var(--primary-soft)}.combobox-heading{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:.5rem .75rem .25rem;font-size:.72rem;font-weight:700}.combobox-title{font-weight:600}.combobox-tag{vertical-align:.1em;white-space:nowrap;color:var(--stage-lagering-fg);background:var(--primary-soft);border-radius:999px;margin-left:.5rem;padding:.0625rem .5rem;font-size:.72rem;font-weight:600}.combobox-meta{color:var(--text-muted);font-size:.8rem;font-weight:400}.ingredient-sections{flex-direction:column;gap:.75rem;margin-bottom:1rem;display:flex}.add-section{border:1px dashed var(--border-strong);color:var(--text-muted);background:0 0;align-self:flex-start;font-weight:600}.add-section:hover:not(:disabled){border-color:var(--primary-hover);color:var(--text);background:var(--primary-soft)}.recipe-form fieldset.ingredients{margin:0;padding-bottom:.75rem}.recipe-form fieldset.ingredients+fieldset.ingredients{margin-top:1rem}.ingredient-panel{box-sizing:border-box;border:1px solid var(--border);background:var(--surface);--panel-head:2.95rem;border-radius:8px;align-self:stretch;width:100%;min-width:0;position:relative}@media (pointer:coarse){.ingredient-panel{--panel-head:3.5rem}}.ingredient-panel-action{height:var(--panel-head);align-items:center;display:flex;position:absolute;top:0;right:1rem}.ingredient-panel-action .unit-toggle{margin:0}.ingredient-panel>summary{box-sizing:border-box;min-height:var(--panel-head);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;align-content:center;padding:0 1rem;font-size:.8rem;font-weight:700}.ingredient-panel>summary:hover{background:var(--primary-soft);border-radius:8px}.ingredient-panel-count{color:var(--text-muted);font-weight:400}.ingredient-panel-content{padding:.25rem 1rem .75rem}.ingredient-row{align-items:center;gap:.5rem;margin-bottom:.5rem;display:grid}.ingredient-row.grain{grid-template-columns:minmax(0,1fr) 6.5rem 3.5rem 4.5rem}.ingredient-row.hop{grid-template-columns:minmax(0,1fr) 5rem 5rem 6.5rem 7rem 2.5rem 4.5rem}.recipe-form label.ingredient-field{min-width:0;margin:0}.ingredient-field-label{display:none}.ingredient-row.header{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.25rem;font-size:.72rem;font-weight:700}.ingredient-row .hop-use{color:var(--text-muted);font-size:.875rem}.ingredient-row input:disabled{opacity:.5}.ingredient-row>button{justify-self:end}.ingredient-share{font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:right}.ingredient-footer{justify-content:space-between;align-items:center;margin-top:.5rem;display:flex}.ingredient-table{margin-top:.25rem}.ingredient-table tfoot td{border-top:2px solid var(--border);border-bottom:none;font-weight:700}@media (width<=720px){.ingredient-row.grain,.ingredient-row.hop{grid-template-columns:repeat(3,minmax(0,1fr))}.ingredient-row>:first-child{grid-column:1/-1}.ingredient-field-label{color:var(--text-muted);font-size:.75rem;line-height:1.4;display:block}.ingredient-row.header{display:none}}abbr.style-code{text-underline-offset:3px;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.grain-footer-right{align-items:center;gap:1rem;display:flex}.recipe-form label.inline-field{color:var(--text-muted);flex-direction:row;align-items:center;gap:.375rem;margin:0;font-size:.875rem}.recipe-form label.inline-field input{width:7.5rem;min-height:var(--control-sm);padding:.25rem .5rem}.grain-estimate{background:var(--primary-soft);border-left:3px solid var(--primary);font-variant-numeric:tabular-nums;border-radius:8px;margin-top:.75rem;padding:.75rem 1rem}.grain-estimate-values{flex-wrap:wrap;gap:.25rem 1.5rem;display:flex}.grain-estimate-values button.link{margin-left:.5rem;font-size:.875rem}.grain-estimate-note{margin:.25rem 0 0;font-size:.8rem}.beer-swatch{vertical-align:-.1em;border-radius:50%;width:.9em;height:.9em;margin-right:.35rem;display:inline-block;box-shadow:0 0 0 1px #7f7f7f80}.efficiency-select{align-items:center;gap:.5rem;display:inline-flex}.recipe-form label.inline-field select{min-height:var(--control-sm);padding:.25rem .5rem}.recipe-form .efficiency-select label.inline-field input{width:5.5rem}.temperature-source{margin:0 0 .75rem;font-size:.8rem}.style-card{background:var(--primary-soft);border-left:3px solid var(--primary);border-radius:8px;margin:-.25rem 0 1rem;padding:.75rem 1rem}.style-card-header{flex-wrap:wrap;align-items:baseline;gap:.25rem .6rem;display:flex}.style-card-header .muted{font-size:.875rem}.style-card-impression{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:65ch;margin:.25rem 0 .5rem;font-size:.875rem;display:-webkit-box;overflow:hidden}.style-figures{grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:.5rem 1rem;display:grid}.style-figure{flex-direction:column;display:flex}.style-figure-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.72rem;font-weight:700}.style-figure-value{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.style-figure-note{color:var(--text-muted);font-size:.8rem}.beer-swatch.range{border-radius:999px;width:1.6em}.style-card-note,.style-card-examples{margin:.5rem 0 0;font-size:.875rem}.style-card-examples .style-figure-label{margin-right:.35rem}.steps{counter-reset:step;gap:.25rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.steps li{flex:1;min-width:0}.steps button{border:none;border-bottom:3px solid var(--border);width:100%;color:var(--text-muted);text-align:left;background:0 0;border-radius:0;align-items:center;gap:.5rem;padding:.45rem .6rem;font-weight:600;display:flex}.steps button:disabled{opacity:1;cursor:default}.steps li.reachable button{color:var(--text);border-bottom-color:var(--primary-hover)}.steps li.reachable button:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary-hover)}.steps li.current button{color:var(--text);border-bottom-color:var(--danger)}.step-number{background:var(--surface-sunken);border:1px solid var(--border);border-radius:50%;flex:none;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;font-size:.8rem;display:inline-flex}.steps li.reachable .step-number{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.steps li.current .step-number{background:var(--black);border-color:var(--black);color:var(--yellow)}.step-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.step-intro{flex-wrap:wrap;align-items:baseline;gap:.25rem .6rem;margin-bottom:.9rem;display:flex}.recipe-form fieldset.start-choice{border:0;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.75rem;margin-bottom:1rem;padding:0;display:grid}.recipe-form fieldset.batch-intent{flex-wrap:wrap;column-gap:2rem;display:flex}.recipe-form .batch-intent label{min-height:2.75rem}.batch-intent input[type=radio]{width:1.25rem;height:1.25rem;accent-color:var(--primary);flex:none;margin:0;padding:0}@media (width<=560px){.recipe-form fieldset.batch-intent{flex-direction:column}}.recipe-form label.choice{background:var(--surface);border:1px solid var(--border);cursor:pointer;transition:border-color var(--duration-quick), background-color var(--duration-quick);border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:.25rem .75rem;margin:0;padding:.9rem 1rem;display:grid}.recipe-form label.choice:hover:not(:has(input:disabled)){border-color:var(--border-strong)}.recipe-form label.choice.selected{border-color:var(--text);background:var(--primary-soft)}.recipe-form label.choice:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:2px}.recipe-form label.choice:has(input:disabled){cursor:not-allowed}.choice input[type=radio]{width:1.25rem;height:1.25rem;accent-color:var(--text);background:0 0;border:0;grid-row:1/span 2;margin:0;padding:0}.choice-title{font-weight:700}.choice-hint{color:var(--text-muted);grid-column:2;font-size:.9rem;line-height:1.35}.step-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem;padding-top:1rem;display:flex}.step-actions .actions{align-items:center}@media (width<=720px){.step-title{display:none}.steps button{justify-content:center}}.step-actions .skip{order:-1}.step-actions button[type=submit]:not(.primary){background:var(--surface);border-color:var(--border-strong);color:inherit;font-weight:500}.step-actions button[type=submit]:not(.primary):hover:not(:disabled){background:var(--surface);border-color:var(--text)}.step-actions button[type=submit]:not(.primary):active:not(:disabled){background:var(--surface-sunken);border-color:var(--text)}.recipe-form .field-hint,.tool-card .field-hint{color:var(--text-muted);font-size:.8rem;font-weight:400}.recipe-form .field-hint.error{color:var(--danger-strong)}.recipe-form .field-hint .suggested{color:var(--text);font-weight:600}.water-section{margin-bottom:1rem}.water-method{flex-wrap:wrap;align-items:center;gap:.4rem 1rem;display:flex}.water-method .inline-field{flex-wrap:wrap;max-width:100%}.water-method select{max-width:100%}.water-plan{margin-top:.6rem}.water-plan .water-volumes{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:.75rem;margin:0 0 .75rem;display:grid}.water-volume{border:1px solid var(--border);border-top:3px solid var(--border);background:var(--surface);border-radius:8px;min-width:0;padding:1rem 1.125rem}.water-volume-total{border-top-color:var(--primary);background:var(--primary-soft)}.water-volumes dt{color:var(--text-muted);font-size:.8rem;font-weight:600}.water-volumes dd{margin:0}.water-volumes .water-volume-amount{font-variant-numeric:tabular-nums;margin:.25rem 0;font-size:1.75rem;font-weight:700;line-height:1.2}.water-volume-amount span{color:var(--text-muted);font-size:1rem;font-weight:400}.water-volume-hint{color:var(--text-muted);font-size:.8rem}@media (width<=720px){.water-plan .water-volumes{grid-template-columns:repeat(2,minmax(0,1fr))}.water-volume-total{grid-column:1/-1}}.water-assumptions{margin-top:.6rem}.water-assumptions summary{cursor:pointer;color:var(--text-muted);margin-bottom:.5rem;font-size:.875rem}.equipment-intro{max-width:60ch;margin-top:0}.equipment-water{border:1px solid var(--border);border-radius:8px;margin:0 0 1rem;padding:.5rem 1rem}.equipment-water[open]{padding-bottom:0}.equipment-water summary{cursor:pointer;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.8rem;font-weight:700}.equipment-water summary .muted{font-size:inherit;text-transform:none;letter-spacing:normal;font-weight:400}.equipment-water[open] summary{margin-bottom:.75rem}.equipment-nav{flex-wrap:wrap;gap:.5rem 1.25rem;margin-bottom:1.5rem;font-size:.875rem;display:flex}.equipment-stage{margin-bottom:2rem;scroll-margin-top:1rem}.equipment-stage>h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:2px solid var(--primary);padding-bottom:.375rem;font-size:.8rem}.equipment-kind{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:1rem;padding:1.25rem 1.5rem;scroll-margin-top:1rem}.equipment-kind .section-header{align-items:flex-start;margin:0 0 .5rem}.equipment-kind h4{margin:0}.equipment-kind .section-header p{max-width:65ch;margin:.25rem 0 0}.equipment-empty{margin:.25rem 0 0}.equipment-list{margin:0;padding:0;list-style:none}.equipment-list>li{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem 0;display:flex}.equipment-list>li:has(>form){display:block}.recipe-form.equipment-item-form{background:0 0;border:none;margin:0;padding:.5rem 0 .25rem}.title-block h2{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.title-block h2 .badge{font-size:.8rem}.title-block h2{margin-bottom:.2rem}.title-sub{margin:0}.batch-view{flex-direction:column;gap:1rem;display:flex}.batch-view .stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem 1.5rem}.panel h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 1rem;font-size:.8rem}.panel h4{margin:1rem 0 .25rem;font-size:1rem}.panel-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;display:grid}.panel .panel-grid{gap:1.5rem}.panel-list{grid-template-columns:max-content 1fr;gap:.5rem 1.25rem;margin:0;display:grid}.panel-list dt{color:var(--text-muted)}.panel-list dd{margin:0;font-weight:500}.panel table{background:0 0;border:none;border-radius:0;margin:0}.panel th,.panel td{padding:.5rem}.panel thead th{border-bottom:1px solid var(--border);background:0 0}.compare-table tbody th{font-size:inherit;text-transform:none;letter-spacing:0;color:var(--text-muted);border-bottom:1px solid var(--border);background:0 0;font-weight:500}.compare-table tbody tr:last-child th{border-bottom:none}.compare-table td,.panel td.num{font-variant-numeric:tabular-nums;white-space:nowrap}.compare-table td:not(:last-child),.compare-table thead th:not(:first-child,:last-child){text-align:right}.panel td.muted{white-space:nowrap}.batch-meta{margin:0;font-size:.8rem}.batch-timeline{grid-auto-columns:1fr;grid-auto-flow:column;margin:0;padding:0;list-style:none;display:grid}.timeline-stage{text-align:center;flex-direction:column;align-items:center;gap:.15rem;padding:0 .5rem;display:flex;position:relative}.timeline-stage:not(:last-child):after{content:"";background:var(--border);border-radius:2px;height:3px;position:absolute;top:.55rem;left:calc(50% + .9rem);right:calc(.9rem - 50%)}.timeline-dot{border:3px solid var(--border);background:var(--surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.15rem;height:1.15rem;margin-bottom:.35rem;display:inline-flex}.timeline-stage.done .timeline-dot{background:var(--primary);border-color:var(--primary-hover)}.timeline-stage.active .timeline-dot{background:var(--danger);border-color:var(--danger);box-shadow:0 0 0 4px var(--danger-soft)}.timeline-stage.next .timeline-dot{border-color:var(--danger);border-style:dashed}.timeline-label{font-weight:700}.timeline-status{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.72rem;font-weight:700}.timeline-when,.timeline-detail{font-variant-numeric:tabular-nums;font-size:.875rem}.timeline-detail{color:var(--text-muted)}@media (width<=900px){.batch-timeline{grid-auto-flow:row;gap:1rem}.timeline-stage{text-align:left;grid-template-columns:1.5rem 1fr;align-items:baseline;column-gap:.75rem;padding:0;display:grid}.timeline-stage>:not(.timeline-dot){grid-column:2}.timeline-dot{grid-row:1/span 3}.timeline-stage:not(:last-child):after{width:3px;height:auto;inset:1.4rem auto -1rem .5rem}}@media (width<=720px){.panel-grid{grid-template-columns:1fr}}.panel-note{text-transform:none;letter-spacing:0;color:var(--text-muted);margin-left:.375rem;font-weight:500}.panel-table{width:100%}.panel-table thead th{font-size:.72rem}.panel-table th.num,.panel-table td.num{text-align:right}.panel-table tbody td{border-bottom:1px solid var(--border)}.panel-table tbody tr:last-child td{border-bottom:none}.panel-table tfoot td{border-top:2px solid var(--border);font-variant-numeric:tabular-nums;border-bottom:none;font-weight:700}.panel-footnote{margin:.5rem 0 0;font-size:.875rem}.panel .style-card{margin:0}.timeline-action{margin-top:.25rem;font-size:.875rem;font-weight:700}.water-adjust{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:.6rem;display:flex}.recipe-form .water-adjust label.inline-field input{width:6.5rem}.water-adjust-link{margin-top:.5rem;font-size:.875rem}.water-outcome,.water-adjust button.link{font-size:.875rem}.system-picker{max-width:34rem;margin-bottom:.5rem}.system-facts{margin:-.4rem 0 .75rem}.integration-card{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--primary);border-radius:10px;margin-bottom:1rem;padding:1.25rem 1.5rem}.integration-card .section-header{align-items:flex-start;margin:0 0 .5rem}.integration-card h3{margin:0}.integration-card .section-header p{margin:.25rem 0 0}.integration-card h4{margin:1rem 0 .25rem}.integration-steps{max-width:65ch;margin:0 0 1rem;padding-left:1.25rem;font-size:.875rem}.integration-device-meta{text-align:right;font-size:.875rem}.device-widgets{margin-bottom:1.5rem}.device-widgets .section-header{margin-bottom:.5rem}.device-widgets .section-header h3{margin:0}.device-widgets .actions{align-items:center}.device-sync{width:var(--control-md);height:var(--control-md);place-items:center;padding:0;display:inline-grid}.device-sync svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.device-sync.syncing svg{animation:.9s linear infinite device-sync-spin}@keyframes device-sync-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.device-sync.syncing svg{animation:none}}.device-widgets-hint{margin:0 0 1.25rem}.device-widgets-add{position:relative}.device-widgets-menu{z-index:5;background:var(--surface);border:1px solid var(--border);min-width:15rem;box-shadow:var(--shadow-overlay);border-radius:10px;margin:.25rem 0 0;padding:.25rem;list-style:none;position:absolute;right:0}.device-widgets-menu button{text-align:left;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:flex-start;gap:.125rem;width:100%;padding:.5rem .75rem;display:flex}.device-widgets-menu button:hover,.device-widgets-menu button:focus-visible{background:var(--primary-soft)}.device-grid{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.device-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.device-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=720px){.device-grid.cols-2,.device-grid.cols-3{grid-template-columns:minmax(0,1fr)}}.device-card{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--primary);border-radius:10px;flex-direction:column;gap:.35rem;padding:1rem 1rem .5rem;display:flex}.device-card.stale{border-top-color:var(--border)}.device-card.stale .device-values,.device-card.stale .sparkline{opacity:.55}.device-card header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.device-title{flex-wrap:wrap;align-items:baseline;gap:.15rem .5rem;min-width:0;display:flex}.device-header-actions{color:var(--text-muted);flex:none;align-items:center;gap:.25rem;font-size:.875rem;display:flex}.device-remove,.device-move{width:var(--control-sm);height:var(--control-sm);color:var(--text-muted);cursor:pointer;transition:background-color var(--duration-instant) ease-out, color var(--duration-instant) ease-out;background:0 0;border:none;border-radius:6px;place-items:center;padding:0;display:inline-grid}@media (pointer:coarse){.device-remove,.device-move{width:var(--control-touch);height:var(--control-touch)}}.device-move:hover:not(:disabled),.device-move:focus-visible{background:var(--primary-soft);color:var(--text)}.device-remove:hover,.device-remove:focus-visible{background:var(--danger-soft);color:var(--danger-strong)}.device-remove svg,.device-move svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.device-card h4{margin:0;font-size:1rem;line-height:1.35}.device-provider{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:700}.device-values{align-items:baseline;gap:1rem;display:flex}.device-session{flex-wrap:wrap;align-items:center;gap:.25rem .5rem;margin:0;font-size:.875rem;display:flex}.device-session-name{font-weight:600}.device-session-name.device-batch-name{min-height:var(--control-touch);overflow-wrap:anywhere;align-items:center;max-width:100%;display:inline-flex}.device-values-source{margin:-.2rem 0 0;font-size:.8rem}.device-battery{color:var(--text-muted);margin-left:auto;font-size:.875rem}.device-value{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:700;line-height:1.1}.device-value small{color:var(--text-muted);font-size:.55em;font-weight:600}.device-value.secondary{color:var(--text-muted);font-size:1rem;font-weight:600}.device-meta{margin:0}.device-days select{font:inherit;color:var(--text);min-height:var(--control-sm);border:1px solid var(--border-strong);background:var(--surface-sunken);border-radius:6px;padding:0 .375rem}.device-days select:focus-visible{border-color:var(--primary-hover);box-shadow:0 0 0 3px var(--primary-soft)}.battery-level{white-space:nowrap;align-items:center;gap:.25rem;display:inline-flex}.battery-level svg{flex:none}.battery-level .battery-body{fill:none;stroke:currentColor;stroke-width:1.5px}.battery-level .battery-cap,.battery-level .battery-fill{fill:currentColor}.battery-level.low{color:var(--danger);font-weight:600}.device-status{color:var(--warning);align-items:center;gap:.375rem;margin:0;font-size:.875rem;display:flex}.device-no-chart{margin:.25rem 0}.device-stats{flex-wrap:wrap;align-items:center;gap:.25rem 1rem;font-size:.875rem;display:flex}.device-stats strong{font-variant-numeric:tabular-nums}.device-readings-link{border:1px solid var(--border);color:var(--text-muted);border-radius:999px;margin-left:auto;padding:.15rem .6rem;font-size:.8rem;text-decoration:none}.device-readings-link:hover,.device-readings-link:focus-visible{border-color:var(--primary-hover);background:var(--primary-soft);color:var(--text)}.device-footer{justify-content:space-between;align-items:center;gap:.75rem;margin-top:auto;padding-top:.25rem;display:flex}.device-footer>p{margin:0}.device-actions{flex:none;gap:.25rem;margin-left:auto;display:flex}.device-actions button:disabled{visibility:hidden}.sparkline{min-width:0;margin:.15rem 0 0}.sparkline .chart-plot{width:100%}.sparkline svg{display:block;overflow:visible}.sparkline-line{fill:none;stroke:var(--red);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.sparkline-reference{fill:none;stroke:var(--text-muted);stroke-width:1.5px;stroke-dasharray:4 3}.sparkline-label{fill:var(--text-muted);font-size:.6875rem}.sparkline-latest{fill:var(--red);stroke:var(--surface);stroke-width:2px}.sparkline-crosshair{stroke:var(--text-muted);stroke-width:1px}.chart-tooltip.sparkline-tooltip{z-index:2;transform:translate(-50%,6px)}.sparkline .chart-table summary{margin-top:.15rem}.sparkline .chart-table table{margin-top:.5rem;font-size:.875rem}@media (width<=720px){.tabs{border-radius:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.tabs a{overflow-wrap:anywhere;padding:.35rem .25rem;font-size:.875rem}.brand-tagline{display:none}.profile-link-name{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}}@media (width<=360px){.tabs a{font-size:.8125rem}}@media (width<=480px){main{padding:1.5rem 1rem 3rem}.app-header-inner{gap:.75rem 1rem;padding:.75rem 1rem}}.account-menu{position:relative}.account-menu>.profile-link{min-height:var(--control-touch);cursor:pointer;font:inherit;border:none}.profile-link-name{text-overflow:ellipsis;white-space:nowrap;max-width:15rem;overflow:hidden}.account-menu-caret{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1rem;height:1rem;transition:transform var(--duration-quick) ease-out;flex:none}.profile-link[aria-expanded=true] .account-menu-caret{transform:rotate(180deg)}.account-menu-list{z-index:10;box-sizing:border-box;background:var(--surface);width:min(20rem,100vw - 2rem);max-height:calc(100dvh - 6rem);color:var(--text);box-shadow:var(--shadow-overlay);border-radius:12px;margin:.5rem 0 0;padding:.375rem;position:absolute;right:0;overflow-y:auto}.account-menu-identity{overflow-wrap:anywhere;flex-direction:column;gap:.25rem;padding:.75rem;display:flex}.account-menu-identity span{color:var(--text-muted);font-size:.875rem}.account-menu-list a,.account-menu-session button{width:100%;min-height:var(--control-touch);box-sizing:border-box;color:var(--text);text-align:left;font:inherit;background:0 0;border:none;border-radius:8px;align-items:center;padding:.5rem .75rem;text-decoration:none;display:flex}.account-menu-preferences,.account-menu-session{border-top:1px solid var(--border);margin-top:.375rem;padding:.75rem}.account-menu-preferences h2{margin:0 0 .75rem;font-size:1rem;line-height:1.4}.account-menu-preferences>a{margin-bottom:.75rem}.account-menu-temperature{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.account-menu-temperature>span{font-size:.875rem;font-weight:500}.account-menu-list .unit-toggle{background:var(--surface-sunken)}.account-menu-list .unit-toggle button{min-width:var(--control-touch);min-height:var(--control-touch);color:var(--text-muted)}.account-menu-list .unit-toggle button:hover:not(:disabled),.account-menu-list .unit-toggle button:active:not(:disabled){color:var(--text)}.account-menu-list .unit-toggle button.active,.account-menu-list .unit-toggle button.active:hover:not(:disabled),.account-menu-list .unit-toggle button.active:active:not(:disabled){background:var(--primary);color:var(--on-primary)}.account-menu-session{padding:.375rem 0 0}.app-header .account-menu-list :focus-visible{outline-color:var(--focus-ring)}.account-menu-list a:hover,.account-menu-session button:hover:not(:disabled),.account-menu-session button:active:not(:disabled),.account-menu-list a:focus-visible,.account-menu-list a.active{background:var(--primary-soft);color:var(--text)}@media (prefers-reduced-motion:reduce){.account-menu-caret{transition:none}}.device-card-link{color:inherit;transition:transform var(--duration-instant) ease-out, box-shadow var(--duration-instant) ease-out;text-decoration:none}a.device-card-link:hover{color:inherit;box-shadow:var(--shadow-raised);transform:translateY(-1px)}@media (prefers-reduced-motion:reduce){a.device-card-link:hover{transform:none}}.device-insight .section-header{align-items:flex-end}.device-insight .section-header h2{margin-bottom:.25rem}.device-insight .section-header p{margin:0}.device-insight-values{flex-wrap:wrap;align-items:baseline;gap:.5rem 1.25rem;margin:.5rem 0 1rem;display:flex}.device-insight-values .device-value{font-size:2.25rem}.insight-chart{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem .75rem}.insight-stats{margin:1rem 0 1.5rem}.insight-table{border-radius:10px;max-height:28rem;overflow-y:auto}.insight-table table{margin-top:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.insight-profile{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin:1rem 0 1.5rem;padding:1.25rem 1.5rem}.insight-profile-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;display:flex}.insight-profile-header h3,.insight-profile-header p{margin:0}.insight-profile-name{font-weight:400}.profile-steps{gap:2px;margin:1rem 0 .5rem;padding:0;list-style:none;display:flex}.profile-step{border:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;min-width:5.5rem;color:var(--text-muted);border-radius:6px;flex-basis:0;padding:.5rem .625rem;font-size:.875rem;overflow:hidden}.profile-step.done{background:var(--primary-soft);color:var(--text)}.profile-step.current{background:var(--primary);border-color:var(--primary-hover);color:var(--on-primary);font-weight:600}.profile-step-number{font-variant-numeric:tabular-nums;font-weight:700}.profile-current{margin:0 0 .5rem}.profile-details summary{cursor:pointer}.profile-details ol{margin:.5rem 0;padding-left:1.5rem}.profile-source{margin:.5rem 0 0;font-size:.8rem}@media (width<=720px){.profile-steps{overflow-x:auto}.profile-step{flex-shrink:0}}.tools-group{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);align-items:center;gap:.5rem;margin:2rem 0 .75rem;font-size:.8rem;display:flex}.tools-group:before{content:"";background:var(--danger);border-radius:2px;width:14px;height:4px}.tools-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1rem;display:grid}.tool-card{grid-row:span 4;grid-template-rows:subgrid;background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--primary);border-radius:10px;gap:.6rem;min-width:0;padding:1rem 1.25rem;scroll-margin-top:1rem;display:grid}.tool-card h4{margin:0}.tool-card h4 a{color:inherit;text-decoration:none}.tool-card h4 a:hover,.tool-card:target h4 a{text-decoration:underline;-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary);text-underline-offset:4px}.tool-intro,.tool-method{max-width:65ch;margin:0;font-size:1rem;line-height:1.6}.tool-inputs{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.25rem .75rem;display:grid}.tool-card:not(.tool-card-wide) .tool-inputs:has(>:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.tool-result{background:var(--surface-sunken);border-radius:8px;padding:.75rem 1rem}.tool-result p{margin:0}.tool-result-value{font-variant-numeric:tabular-nums;font-size:2rem;font-weight:800;line-height:1.1}.tool-result-value small{color:var(--text-muted);font-size:.9rem;font-weight:600}.tool-result-detail{margin-top:.15rem;font-size:.875rem}.tool-dosing{border-top:1px solid var(--border);grid-column:1/-1;padding-top:.75rem}.tool-dosing h5{margin:0}.tool-dosing p{margin-top:.1rem}.tool-dosing-list{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.5rem .75rem;margin:.5rem 0 0;padding:0;font-size:.875rem;list-style:none;display:grid}.tool-dosing-list li{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:.1rem;padding:.5rem .75rem;display:flex}.tool-error{color:var(--danger)}.tool-head{flex-direction:column;gap:.25rem;display:flex}.tool-card-wide{grid-column:1/-1}.tool-card-wide .tool-inputs{grid-template-columns:repeat(6,minmax(0,1fr));gap:.25rem 1.25rem}.tool-card-wide .tool-inputs>*{grid-column:span 6;min-width:0}.tool-card-wide .tool-inputs>.tool-span-4{grid-column:span 4}.tool-card-wide .tool-inputs>.tool-span-2{grid-column:span 2}.tool-card-wide .tool-result{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:center;gap:1rem 2.5rem;padding:1.25rem 1.5rem;display:grid}.tool-card-wide .tool-result .scale{margin-top:1.25rem}@media (width<=720px){.tool-card-wide .tool-inputs>.tool-span-4,.tool-card-wide .tool-inputs>.tool-span-2{grid-column:span 6}.tool-card-wide .tool-inputs>.tool-half{grid-column:span 3}.tool-card-wide .tool-result{grid-template-columns:minmax(0,1fr);padding:.75rem 1rem}}.tool-card-compact .tool-inputs{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:.25rem 1rem}.tool-card-compact .tool-inputs>*{grid-column:span 12}.tool-card-compact .tool-inputs>.tool-c3{grid-column:span 3}.tool-card-compact .tool-inputs>.tool-c4{grid-column:span 4}.tool-card-compact .tool-inputs>.tool-c5{grid-column:span 5}.tool-card-compact .tool-result{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start;gap:.75rem 2rem;padding:1rem 1.25rem}.tool-card-compact .tool-result .scale{margin-top:1.25rem}.tool-card-compact .tool-result .tool-side{grid-area:1/2/span 2}.tool-card-compact .tool-result .tool-dosing{grid-area:2/1}.tool-side .tool-method{margin-top:.75rem;font-size:.875rem;line-height:1.5}@media (width<=900px){.tool-card-compact .tool-inputs>.tool-c3{grid-column:span 6}.tool-card-compact .tool-inputs>.tool-c4,.tool-card-compact .tool-inputs>.tool-c5{grid-column:span 12}}@media (width<=720px){.tool-card-compact .tool-result{grid-template-columns:minmax(0,1fr)}.tool-card-compact .tool-result .tool-side,.tool-card-compact .tool-result .tool-dosing{grid-area:auto/1}.tool-card-compact .tool-result .tool-dosing{order:1}.tool-card-compact .tool-result .tool-side{order:2}}.tool-co2{flex-direction:column;align-items:flex-start;gap:.15rem;display:flex}.tool-co2 .link{font-size:.875rem}.segmented-field{flex-direction:column;gap:.25rem;margin-bottom:.75rem;display:flex}.segmented-label{font-size:.875rem;font-weight:500}.segmented{border:1px solid var(--border-strong);background:var(--surface-sunken);border-radius:999px;align-self:flex-start;gap:.2rem;max-width:100%;padding:.2rem;display:inline-flex}.segmented button{white-space:nowrap;min-height:2.25rem;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.3rem 1rem;font-weight:500}.segmented button:hover{color:var(--text)}.segmented button[aria-checked=true]{background:var(--primary);color:var(--black);font-weight:700}@media (pointer:coarse){.segmented button{min-height:var(--control-touch)}}.scale{margin-top:1.5rem}.scale-track{background:var(--border);border-radius:5px;height:10px;position:relative}.scale-track>span{position:absolute}.scale-band{border:1px solid var(--primary);background:var(--yellow-soft);border-radius:5px;top:-5px;bottom:-5px}.scale-held{background:var(--border-strong);border-radius:5px 0 0 5px;top:0;bottom:0;left:0}.scale-added{background:var(--primary);top:0;bottom:0}.scale-marker{border:2px solid var(--surface-sunken);background:var(--danger);border-radius:50%;width:16px;height:16px;margin:-8px 0 0 -8px;top:50%}.scale-marker-label{font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:700;bottom:16px;transform:translate(-50%)}.scale-ticks{height:1.25rem;color:var(--text-muted);margin-top:.4rem;font-size:.75rem;position:relative}.scale-ticks span{position:absolute;transform:translate(-50%)}.scale-caption{color:var(--text-muted);text-align:right;margin:0;font-size:.75rem}.scale-legend{color:var(--text-muted);flex-wrap:wrap;gap:.25rem 1rem;margin:.25rem 0 0;font-size:.8rem;display:flex}.scale-legend>span{align-items:center;gap:.35rem;display:inline-flex}.scale-swatch{border-radius:3px;width:14px;height:10px;display:inline-block}.scale-swatch-band{border:1px solid var(--primary);background:var(--yellow-soft)}.scale-swatch-held{background:var(--border-strong)}.scale-swatch-added{background:var(--primary)}.yeast-visual{flex-direction:column;gap:1rem;min-width:0;display:flex}.cells{flex-direction:column;gap:.5rem;display:flex}.cells-row{grid-template-columns:6.5rem minmax(0,1fr) 2.5rem;align-items:center;gap:.5rem;font-size:.875rem;display:grid}.cells-label{color:var(--text-muted)}.cells-track{background:var(--border);border-radius:6px;height:12px;position:relative}.cells-fill{background:var(--border-strong);border-radius:6px;position:absolute;top:0;bottom:0;left:0}.cells-fill.enough{background:var(--primary)}.cells-need{background:var(--danger);width:2px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.cells-value{font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.cells-caption{color:var(--text-muted);margin:0;font-size:.75rem}.yeast-steps{border-collapse:collapse;width:100%;font-size:.875rem}.yeast-steps th,.yeast-steps td{text-align:left;padding:.3rem .5rem .3rem 0}.yeast-steps th{color:var(--text-muted);font-size:.75rem;font-weight:600}.yeast-steps td{border-top:1px solid var(--border);font-variant-numeric:tabular-nums}@media (width<=720px){.cells-row{grid-template-columns:5.5rem minmax(0,1fr) 2.25rem}}.yeast-sum{gap:.4rem;margin:0;font-size:.9rem;display:grid}.yeast-sum>div{grid-template-columns:7rem minmax(0,1fr);gap:.5rem;display:grid}.yeast-sum dt{color:var(--text-muted)}.yeast-sum dd{font-variant-numeric:tabular-nums;margin:0}.yeast-sum-total{border-top:1px solid var(--border-strong);padding-top:.4rem;font-weight:700}.recipe-navigation{gap:.5rem;margin-bottom:1.5rem;display:flex}.recipe-navigation a{border:1px solid var(--border-strong);border-radius:999px;align-items:center;padding:.5rem 1rem;text-decoration:none;display:inline-flex}.recipe-navigation a.active{background:var(--primary);color:var(--on-primary);border-color:var(--primary);font-weight:700}.catalog-filters{flex-wrap:wrap;align-items:end}.catalog-filters label{flex-direction:column;gap:.25rem;min-width:0;display:flex}.catalog-filters input,.catalog-filters select{font:inherit;min-height:var(--control-md);border:1px solid var(--border-strong);background:var(--surface-sunken);max-width:100%;color:var(--text);border-radius:8px;padding:.5rem .625rem}.catalog-filters label:first-child{flex:1 0 100%}.catalog-filters label:first-child input{box-sizing:border-box;width:100%}.catalog-filters input:focus{border-color:var(--primary-hover);box-shadow:0 0 0 3px var(--primary-soft)}.catalog-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1rem;display:grid}.catalog-card{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--primary);border-radius:10px;flex-direction:column;gap:.75rem;padding:1.25rem 1.5rem;display:flex}.catalog-card h3{margin:0;font-size:1rem}.catalog-card-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.catalog-card-heading h3{overflow-wrap:anywhere;min-width:0}.catalog-recipe-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;margin-bottom:1rem;display:flex}.catalog-recipe-meta .catalog-meta{margin:0}.catalog-batch-facts{background:var(--surface-sunken);border-radius:6px;flex:none;grid-template-columns:minmax(0,1fr);gap:1rem;margin:0;padding:.625rem .75rem;display:grid}.catalog-batch-facts dt{color:var(--text-muted);font-size:.75rem}.catalog-batch-facts dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:1.5rem;font-weight:700;line-height:1.25}.catalog-batch-facts small{font-size:.6em;font-weight:500}.catalog-card p{margin:0}.catalog-card-footer{flex-direction:column;gap:.5rem;margin-top:auto;padding-top:.25rem;display:flex}.catalog-card-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex}.catalog-card-actions>a{min-height:var(--control-touch);align-items:center;display:inline-flex}.catalog-card-actions>button{min-height:var(--control-touch);background:var(--primary-soft);border-color:var(--primary-hover);color:var(--text);padding-inline:.75rem}.catalog-card-actions>button:hover:not(:disabled){background:var(--primary);color:var(--on-primary)}.catalog-card-actions>button:active:not(:disabled){background:var(--primary-press);color:var(--on-primary)}.catalog-figures{flex-wrap:wrap;gap:1rem 1.5rem;margin:0;display:flex}.catalog-figures div{flex-direction:column;gap:.125rem;display:flex}.catalog-figures dt{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.7rem;font-weight:700}.catalog-figures dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.6rem;font-weight:700;line-height:1.1}.catalog-ebc-swatch{font-size:.65em}.catalog-figures dd small{color:var(--text-muted);font-size:.55em;font-weight:600}.catalog-description{max-width:70ch}.catalog-hero{grid-template-columns:minmax(0,1fr) minmax(17rem,26rem);align-items:start;gap:1rem 2.5rem;margin-bottom:1rem;display:grid}.catalog-overview{flex-direction:column;align-items:flex-start;gap:1rem;min-width:0;display:flex}.catalog-hero .catalog-description{margin:0}.catalog-targets .stat-grid{grid-template-columns:repeat(6,minmax(0,1fr));margin:0}.catalog-targets .stat-tile{grid-column:span 2;min-width:0}.catalog-targets .stat-tile:nth-last-child(-n+2){grid-column:span 3}.catalog-targets dd{margin:0}.catalog-targets .stat-value{white-space:nowrap;font-size:clamp(1.5rem,5vw,1.9rem)}.catalog-targets-note{margin:.75rem 0 0;font-size:.8rem}@media (width<=860px){.catalog-hero{grid-template-columns:minmax(0,1fr)}}.heading-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.heading-row .unit-toggle{margin:0}.panel .heading-row{margin:0 0 1rem}.panel .heading-row h3{margin:0}.batch-readings .heading-row{flex-wrap:wrap}.batch-readings .reading-form{border:0;border-block:1px solid var(--border);border-radius:0;margin:1rem 0;padding:1rem 0}.reading-form input,.reading-form textarea{min-width:0;max-width:100%}.reading-history{margin:1rem 0 0;padding:0;list-style:none}.reading-history>li{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.375rem .75rem;padding-block:.75rem;display:grid}.reading-sample{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:.125rem 1rem;min-width:0;display:flex}.reading-sample strong{white-space:nowrap}.reading-sample small,.reading-sample time{color:var(--text-muted);font-size:.875rem}.reading-note{white-space:pre-wrap;overflow-wrap:anywhere;grid-column:1/-1;max-width:65ch;margin:0}.reading-history .actions{flex-wrap:nowrap;gap:.25rem;display:flex}.reading-earlier{border-top:1px solid var(--border)}.reading-earlier>summary{min-height:var(--control-touch);color:var(--text-muted);cursor:pointer;padding-block:.75rem;font-size:.875rem;font-weight:500}.reading-earlier>summary:hover{color:var(--text)}.reading-history-scroll{overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:var(--border-strong) var(--surface);scrollbar-gutter:stable;max-height:22rem;padding-inline:.25rem;overflow-y:auto}.reading-earlier .reading-history{margin-top:0}.reading-estimate-facts{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.75rem 1.5rem;margin:1rem 0 0;display:grid}.reading-estimate-facts dt{color:var(--text-muted);font-size:.875rem}.reading-estimate-facts dd{font-variant-numeric:tabular-nums;margin:.125rem 0;font-size:1rem;font-weight:700}.reading-estimate-facts .field-hint{margin:0;font-size:.8rem;font-weight:400}.batch-readings .sparkline{margin-top:1.25rem}.batch-readings .sparkline-line{stroke:var(--series)}.batch-readings .sparkline-latest{fill:var(--series)}.catalog-detail-header{flex-wrap:wrap;gap:.75rem 1rem}.catalog-detail-header h2{flex:16rem;min-width:0}.catalog-detail-header button{flex:none}@media (width<=560px){.catalog-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .75rem;display:grid}.catalog-filters label:first-child{grid-column:1/-1}.catalog-filters select{width:100%}}.catalog-description-clamp{-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.catalog-meta{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.catalog-meta,.catalog-credit{color:var(--text-muted);font-size:.875rem}.catalog-source{overflow-wrap:anywhere}.catalog-ingredient-panel .heading-row{min-height:2.75rem;margin-bottom:1rem}.catalog-ingredient-panel .heading-row h3{margin:0}.catalog-detail-pair{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1rem;margin-top:1rem;display:grid}.catalog-detail-pair>.details{min-width:0;margin-top:0}.catalog-detail-pair>.details:last-child:nth-child(odd){grid-column:1/-1}.catalog-detail-pair>.details>h3{margin-top:0}.catalog-yeast p{margin-bottom:0}@media (width<=860px){.catalog-detail-pair{grid-template-columns:minmax(0,1fr)}}.catalog-detail-header .actions button{justify-content:center;align-items:center;gap:.5rem;display:inline-flex}.catalog-stage-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;min-height:3rem;margin-bottom:.75rem;display:flex}.catalog-method .catalog-stage-heading h4{margin:0}.catalog-method .catalog-preboil{flex-direction:column;align-items:flex-end;gap:.125rem;margin:0;display:flex}.catalog-preboil dt{color:var(--text-muted);font-size:.75rem}.catalog-method .catalog-preboil dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:1.25rem;font-weight:700}.catalog-preboil small{font-size:.7em;font-weight:500}.catalog-method-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;margin-bottom:1rem;display:flex}.catalog-method-heading h3,.catalog-method-heading p{margin:0}.catalog-method-heading p{font-size:.8rem}.catalog-water .catalog-water-ions{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 2rem;margin:1rem 0 0;display:grid}.catalog-water-ions dt{color:var(--text-muted);font-size:.875rem}.catalog-water-ions dd{font-variant-numeric:tabular-nums;margin:.25rem 0 0;font-size:1.5rem;font-weight:700}@media (width<=600px){.catalog-water .catalog-water-ions{grid-template-columns:repeat(2,minmax(0,1fr))}}.catalog-method-sections{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1.5rem 2.5rem;display:grid}.catalog-method-sections>section{border-top:1px solid var(--border);min-width:0;padding-top:1rem}.catalog-method h4{margin:0 0 .75rem;font-size:1rem}.catalog-method-tips{grid-column:1/-1}.catalog-tips-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1.25rem 2rem;margin:0;padding-inline-start:1.25rem;display:grid}.catalog-tips-list li{max-width:70ch;padding-inline-start:.375rem;line-height:1.65}.catalog-tips-list .catalog-tip-titled{padding-inline-start:0;list-style:none}.catalog-tips-list:has(>.catalog-tip-titled){padding-inline-start:0}.catalog-tip-titled h5{margin:0 0 .5rem;font-size:.875rem}.catalog-tips-list p{margin:0}.catalog-tips-list li::marker{color:var(--text-muted)}.catalog-style-reference summary{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;min-height:2.75rem;margin-top:-.5rem;display:flex}.catalog-style-reference summary strong{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:2px solid var(--primary);padding:.5rem 0 .375rem;font-size:.8rem;list-style:inside disclosure-closed;display:list-item}.catalog-style-reference[open] summary strong{list-style-type:disclosure-open}.catalog-style-reference summary .muted{font-size:.875rem}.catalog-style-reference .catalog-reference-ranges{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:1rem;margin:1rem 0 0;display:grid}.catalog-reference-ranges dt,.catalog-culture-facts dt{color:var(--text-muted);font-size:.8rem}.catalog-reference-ranges dd{font-variant-numeric:tabular-nums;margin:.25rem 0 0;font-weight:600}.catalog-reference-ranges small{font-size:.8em}.catalog-cultures{margin:0;padding:0;list-style:none}.catalog-cultures li+li{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.catalog-culture-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;display:flex}.catalog-culture-heading strong{overflow-wrap:anywhere;min-width:0}.catalog-culture-heading>span{white-space:nowrap;font-variant-numeric:tabular-nums}.catalog-yeast .catalog-cultures p{margin:.25rem 0 0;font-size:.875rem}.catalog-yeast .catalog-culture-facts{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem 1rem;margin:.75rem 0 0;display:grid}.catalog-culture-facts dd{font-variant-numeric:tabular-nums;margin:.125rem 0 0;font-size:.875rem}.catalog-carbonation-range{flex-wrap:wrap;gap:.25rem .75rem;font-size:.875rem;display:flex}.catalog-stage-note{color:var(--text-muted);margin-top:.25rem;display:block}.catalog-blend h5{margin:1rem 0 .5rem;font-size:.875rem}.catalog-blend ul{padding-inline-start:1.25rem}.catalog-blend li+li{margin-top:.5rem}@media (width<=860px){.catalog-method-sections,.catalog-tips-list{grid-template-columns:minmax(0,1fr)}}.catalog-method-line{max-width:70ch;margin:0 0 .75rem}.catalog-method-table{white-space:normal;width:100%;margin-bottom:.75rem}.catalog-method-table td,.catalog-method-table th{vertical-align:top}.catalog-method-table td.num,.catalog-method-table th.num{white-space:nowrap}@media (width<=600px){.catalog-method-table{font-size:.875rem}.catalog-method-table td,.catalog-method-table th{padding:.625rem .25rem}.catalog-method-table th{letter-spacing:.02em;font-size:.65rem}}.catalog-instructions li{margin-bottom:.75rem}@media (pointer:coarse){.recipe-navigation a,.catalog-filters input,.catalog-filters select{min-height:var(--control-touch)}}.recipe-view{flex-direction:column;gap:1rem;display:flex}.recipe-overview,.recipe-overview dd{margin:0}.recipe-view .panel-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));align-items:stretch}.recipe-view .panel,.recipe-view .ingredient-panel{min-width:0}.recipe-facts dl{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.625rem 1rem;margin:0;display:grid}.recipe-facts dt{color:var(--text-muted);font-size:.875rem}.recipe-facts dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font-weight:600}.recipe-facts dd .muted{font-size:.8rem;font-weight:400;display:block}.recipe-yeast{margin:0 0 1rem;font-weight:600}.recipe-table-scroll{max-width:100%;overflow-x:auto}.recipe-view .ingredient-table{margin:0 0 .5rem}.recipe-notes p{white-space:pre-wrap;overflow-wrap:anywhere;max-width:65ch;margin:0;line-height:1.7}.recipe-metadata{flex-wrap:wrap;gap:.25rem .75rem;margin:0;font-size:.8rem;display:flex}.recipe-metadata dd{margin:0 1rem 0 0}@media (width<=720px){.recipe-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-view .panel{padding:1rem}}.recipe-notes-preview{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.recipe-notes-toggle{margin-top:.75rem}.carbonation-row,.carbonation-sugar{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.carbonation-row{gap:.75rem 1.5rem}.carbonation-sugar{color:var(--text-muted);font-size:.875rem}.carbonation-sugar select{max-width:100%;font:inherit;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:6px;padding:.375rem .5rem}.carbonation-dose-value{font-variant-numeric:tabular-nums}.carbonation-basis{margin:.625rem 0;font-size:.875rem}.carbonation-details{max-width:75ch;font-size:.875rem}.carbonation-details summary{cursor:pointer;color:var(--text-muted)}.carbonation-details p{margin:.5rem 0}.carbonation-calculator{margin-top:.625rem;font-size:.875rem;display:inline-block}@media (pointer:coarse){button,a.button-primary,.recipe-form input:not([type=checkbox]):not([type=radio]),.recipe-form select,.tool-card input,.tool-card select,.inline-field input,.inline-field select,.device-days select,.account-menu-list a{min-height:var(--control-touch);min-width:var(--control-touch);box-sizing:border-box}summary{min-height:var(--control-touch);align-content:center}}.unit-toggle-inline{background:var(--surface-sunken);width:fit-content;margin:0 0 .5rem auto}.unit-toggle-inline button{color:var(--text-muted)}.unit-toggle-inline button:hover:not(:disabled),.unit-toggle-inline button:active:not(:disabled){color:var(--text)}.unit-toggle-inline button.active,.unit-toggle-inline button.active:hover:not(:disabled),.unit-toggle-inline button.active:active:not(:disabled){background:var(--primary);color:var(--on-primary)}.recipe-form label.checkbox-row{cursor:pointer;flex-direction:row;align-items:center;gap:.625rem;margin:0}.checkbox-row input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--primary);cursor:pointer;flex:none;margin:0;padding:0}.checkbox-row+.grid{margin-top:.75rem}.grid+.checkbox-row,.recipe-form .grid+label.checkbox-row{margin-top:1rem}.recipe-form fieldset>label.checkbox-row:last-child{margin-bottom:.25rem}.recipe-form fieldset.mash-boil{border:0;min-width:0;margin-block:1rem;padding:0}.recipe-form .mash-boil legend{color:var(--text-muted);text-transform:none;letter-spacing:normal;padding:0;font-size:.875rem;font-weight:500}.step-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin-block:.75rem;display:grid}.step-columns{display:none}.step-row{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:.5rem .75rem;display:grid}.brewing-plan-fields .step-row{gap:.625rem .75rem}.brewing-plan-fields .step-row+.step-row{border-inline-start:1px solid var(--border-strong);padding-inline-start:1.5rem}.step-name{grid-column:1/-1;font-size:.9375rem;font-weight:600}.brewing-plan-fields .step-name{font-size:1rem}.step-row label{min-width:0;margin:0}.step-temperature:empty{display:none}.timing-field-name{color:var(--text-muted);font-size:.8rem;font-weight:400}.step-grid .input-unit,.step-grid .input-with-unit{margin-top:0}.step-grid input{box-sizing:border-box;width:100%;min-height:44px}@media (width<=720px){.step-grid{grid-template-columns:minmax(0,1fr);gap:.5rem}.step-columns,.step-row{grid-template-columns:minmax(4.5rem,.9fr) repeat(2,minmax(0,1fr));align-items:center;gap:.5rem;display:grid}.brewing-plan-fields .step-row+.step-row{border-inline-start:0;border-block-start:1px solid var(--border);padding-block-start:.625rem;padding-inline-start:0}.step-columns{color:var(--text-muted);font-size:.8rem}.step-name{grid-column:auto;font-size:.875rem}.brewing-plan-fields .step-name{font-size:.875rem}.brewing-plan-fields .step-row{gap:.5rem}.step-temperature:empty{display:block}.timing-field-name{display:none}}.ingredient-row.hop.recorded{grid-template-columns:minmax(0,1fr) 5rem 5rem 6.5rem 7rem 4.5rem}@media (width<=720px){.ingredient-row.hop.recorded{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=560px){.recipe-form fieldset.start-choice{grid-template-columns:minmax(0,1fr)}}.recipe-form .whirlfloc-fields .grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}@media (pointer:coarse){.recipe-form label.checkbox-row{min-height:var(--control-touch)}}.unit-preferences .tools-group{margin-top:0}.unit-preferences-list{flex-wrap:wrap;gap:1rem 2rem;margin-top:1rem;display:flex}.unit-preferences-list .segmented-field{margin-bottom:0}button.row-action{width:44px;height:44px;color:var(--text-muted);vertical-align:middle;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}button.row-action:hover:not(:disabled),button.row-action:focus-visible{background:var(--surface-sunken);color:var(--text)}button.row-action-danger:hover:not(:disabled),button.row-action-danger:focus-visible{background:var(--danger-soft);color:var(--danger-strong)}.row-action .icon{stroke-width:2px;width:20px;height:20px}.row-action-tooltip{z-index:10;background:var(--black);width:max-content;max-width:220px;color:var(--on-black);white-space:normal;text-align:left;border-radius:6px;padding:.375rem .5rem;font-size:.8rem;font-weight:400;display:none;position:absolute;bottom:100%;right:0}.row-action:hover:not(:disabled) .row-action-tooltip,.row-action:focus-visible .row-action-tooltip{display:block}.language-setting{min-width:10rem;max-width:100%}.language-selector{color:var(--text);flex-direction:column;gap:.25rem;display:flex}.language-selector>span{font-size:.875rem;font-weight:500}.language-selector select{width:100%;max-width:100%;min-height:var(--control-touch);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;border-radius:8px;padding:.5rem .75rem}.language-feedback{overflow-wrap:anywhere;max-width:32ch;margin:.375rem 0 0;font-size:.875rem;display:block}.language-feedback:empty{margin:0}.language-error{color:var(--danger-strong)}.auth-screen .language-setting{width:12rem;margin-block:1rem}.auth-footer .language-setting{width:fit-content;margin:1rem auto 0}.auth-footer .language-selector{color:var(--text-muted);flex-flow:wrap;justify-content:center;align-items:center;gap:.75rem;font-size:.875rem}.auth-footer .language-selector select{width:auto}.catalog-results-updating .catalog-grid{opacity:.55;transition:opacity var(--duration-quick)}.catalog-pagination{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:1rem;margin:1.5rem 0 .5rem;display:flex}.catalog-results-updating table{opacity:.55;transition:opacity var(--duration-quick)}.catalog-filters.list-toolbar label:first-child{flex:16rem}.list-count{flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;display:flex}.chip-filters{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;display:flex}.chip-filters button{min-height:var(--control-sm);border:1px solid var(--border-strong);color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.25rem .875rem}@media (pointer:coarse){.chip-filters button{min-height:var(--control-touch)}}.chip-filters button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:700}.chip-count{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-left:.375rem}.chip-filters button[aria-pressed=true] .chip-count{color:inherit}.filter-chip{border:1px solid var(--border-strong);border-radius:999px;align-items:center;gap:.375rem;margin:0 0 1rem;padding:.125rem .125rem .125rem .875rem;display:inline-flex}.filter-chip button{min-width:var(--control-sm);min-height:var(--control-sm);color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0;line-height:1}.filter-chip button:hover{background:var(--surface-sunken)}@media (width<=720px){.catalog-filters.list-toolbar label{flex:calc(50% - .5rem)}.catalog-filters.list-toolbar label:first-child{flex:1 0 100%}table.scroll-x.recipe-table{white-space:normal;width:100%;display:table}}.catalog-downloads a{font-weight:600}button.google-sign-in{color:#1f1f1f;letter-spacing:.25px;background:#fff;border:1px solid #747775;border-radius:4px;justify-content:center;align-items:center;gap:12px;min-height:44px;padding:10px 12px;font:500 14px/20px Arial,sans-serif;display:inline-flex}button.google-sign-in:hover:not(:disabled){background:#f2f2f2}button.google-sign-in:active:not(:disabled){background:#e8e8e8}.google-mark{flex:0 0 20px;width:20px;height:20px;display:block;overflow:hidden}.google-mark img{max-width:none;display:block;transform:translate(-10px,-10px)}.social-sign-in{margin-block:1.5rem 0}.social-buttons{gap:.75rem;display:grid}.social-buttons button{width:100%}button.apple-sign-in{color:#000;background:#fff;border:1px solid #000;border-radius:4px;justify-content:center;align-items:center;gap:12px;min-height:44px;padding:10px 12px;font:500 16px/20px system-ui,sans-serif;display:inline-flex}button.apple-sign-in:hover:not(:disabled){background:#f2f2f2}button.apple-sign-in:active:not(:disabled){background:#e8e8e8}.apple-mark{flex:0 0 20px;width:20px;height:20px;display:block;overflow:hidden}.apple-mark img{max-width:none;display:block;transform:translate(-10px,-10px)}.social-divider{text-align:center;color:var(--text-muted);margin-block:1rem}.auth-form .social-sign-in{margin-block:0}.auth-form .social-divider{align-items:center;gap:.75rem;font-size:.875rem;display:flex}.auth-form .social-divider:before,.auth-form .social-divider:after{content:"";background:var(--border);flex:1;height:1px}.social-outcome{max-width:42rem;margin:1rem auto;padding:0 1.5rem}.social-outcome>p{overflow-wrap:anywhere;margin:0;font-size:.875rem;line-height:1.5}.auth-screen .social-outcome{max-width:none;margin:1.25rem 0;padding:0}.account-security fieldset{border:0;min-width:0;margin:1rem 0 0;padding:0}.account-security fieldset>label,.account-security fieldset>.grid{margin-block:1rem}.security-verification{margin-block:1rem 1.5rem}.security-verification form{flex-wrap:wrap;align-items:end;gap:.75rem;margin-block:.75rem;display:flex}.security-verification label{flex:14rem}.account-security .checkbox-label{flex-direction:row;align-items:start;gap:.75rem;display:flex}.account-security .checkbox-label input{flex:none;width:auto}.auth-recovery-links{flex-wrap:wrap;justify-content:center;gap:.25rem 1rem;margin-top:.5rem;display:flex}.batch-detail-header{align-items:flex-start;gap:1.25rem}.batch-detail-header .title-block{flex:1;min-width:0}.batch-detail-header h2{overflow-wrap:anywhere}.batch-status{flex-wrap:wrap;gap:.5rem;margin:.5rem 0;display:flex}.batch-detail-header>.actions{align-items:flex-start}.batch-more{position:relative}.batch-more>summary{cursor:pointer;border:1px solid var(--border-strong);box-sizing:border-box;border-radius:8px;min-height:2.5rem;padding:.5rem .75rem}.batch-more-actions{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:10px;gap:.5rem;width:min(17rem,80vw);padding:.5rem;display:grid;position:absolute;top:calc(100% + .5rem);right:0}.batch-more-actions p{margin:.25rem}.batch-disclosure>summary,.recipe-ingredients>summary{cursor:pointer;align-content:center;min-height:2rem;font-size:1rem;font-weight:700}.batch-disclosure[open]>summary,.recipe-ingredients[open]>summary{margin-bottom:1.25rem}.batch-disclosure>section+section,.recipe-reference>.panel-grid,.batch-disclosure h3{margin-top:1.5rem}.batch-recorded-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 3rem;display:grid}.batch-recorded-group{min-width:0}.batch-recorded .batch-recorded-group h3{color:var(--text);text-transform:none;letter-spacing:normal;margin:0 0 .5rem;font-size:1rem}.batch-recorded-group dl{grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin:0;font-size:.875rem;display:grid}.batch-recorded-group dt,.batch-recorded-group dd{border-bottom:1px solid var(--border);overflow-wrap:anywhere;margin:0;padding:.625rem 0}.batch-recorded-group dt{color:var(--text-muted);padding-right:1rem}.batch-recorded-group dd{font-variant-numeric:tabular-nums;font-weight:500}.batch-recorded-group dt:nth-last-child(2),.batch-recorded-group dd:last-child{border-bottom:none}.batch-recorded-note{color:var(--text-muted);margin-top:.25rem;font-weight:400;display:block}.batch-recorded-footer{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1rem}@media (width<=720px){.batch-recorded-groups{grid-template-columns:minmax(0,1fr);gap:1.5rem}}.timeline-stage.stage-brewed{--timeline-accent:var(--stage-brewed-accent);--timeline-fg:var(--stage-brewed-fg)}.timeline-stage.stage-fermenting{--timeline-accent:var(--stage-fermenting-accent);--timeline-fg:var(--stage-fermenting-fg)}.timeline-stage.stage-lagering{--timeline-accent:var(--stage-lagering-accent);--timeline-fg:var(--stage-lagering-fg)}.timeline-stage.stage-bottled{--timeline-accent:var(--stage-bottled-accent);--timeline-fg:var(--text)}.timeline-stage.pending{opacity:1}.timeline-stage.done .timeline-dot,.timeline-stage.active .timeline-dot{background:var(--timeline-accent);border-color:var(--timeline-accent);box-shadow:none}.timeline-stage.next .timeline-dot{border-color:var(--timeline-accent)}.timeline-stage.active .timeline-status,.timeline-stage.next .timeline-status{color:var(--timeline-fg)}.timeline-stage.done:not(:last-child):after{background:var(--timeline-accent)}@media (width<=720px){.batch-detail-header{flex-direction:column;align-items:stretch}.batch-detail-header>.actions{flex-wrap:wrap}.batch-more-actions{left:0;right:auto}.batch-disclosure{padding:1rem}}@media (pointer:coarse){.batch-more>summary,.batch-disclosure>summary,.recipe-ingredients>summary{min-height:2.75rem}}.stage-date-editor{box-sizing:border-box;width:100%;max-width:none;margin:0 0 1.5rem}.stage-editor-fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));align-items:start;gap:1rem;display:grid}.stage-date-editor .actions{justify-content:flex-end;gap:.75rem;margin-top:1rem}.stage-date-editor .actions button{justify-content:center;align-items:center;gap:.5rem;min-height:44px;display:inline-flex}.brewing-step{width:100%;min-width:0}.brewing-toolbar,.brewing-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.brewing-toolbar{justify-content:space-between;margin-bottom:.75rem}.brewing-transport{align-items:flex-end;gap:1.5rem;min-width:0;display:flex}.brewing-clock{min-width:0}.brewing-clock+.brewing-player{margin-bottom:1.25rem}.brewing-clock h4{margin:0 0 .25rem;font-size:1rem}.brewing-clock p{margin:.25rem 0;font-size:.8125rem}.brewing-step>.brewing-due{max-width:48ch}@media (width<=600px){.brewing-transport{justify-content:space-between;gap:.5rem;width:100%}.brewing-transport .brewing-countdown{margin:.375rem 0;font-size:clamp(1.75rem,8vw,2.5rem)}.brewing-transport .brewing-player{gap:.25rem}}.brewing-actions button{min-height:44px}.recipe-form fieldset.brewing-plan-fields{border:0;min-width:0;margin:1rem 0;padding:0}.brewing-track{flex-wrap:wrap;gap:1rem;margin:1.5rem 0;padding:0;list-style:none;display:flex}.brewing-track>li{border-top:2px solid var(--border);flex:8rem;min-width:0;font-size:.875rem}.brewing-track>li[aria-current]{border-top-color:var(--primary)}.brewing-stage-heading{border-radius:0 0 8px 8px;gap:.25rem;padding:.75rem;display:grid}.brewing-stage-meta,.brewing-addition-meta{color:var(--text-muted);flex-wrap:wrap;gap:0 .5rem;display:flex}.brewing-stage-heading>strong,.brewing-addition-step>strong{overflow-wrap:anywhere;align-items:center;gap:.375rem;display:flex}.brewing-track>.brewing-stage-completed{border-top-color:var(--success)}.brewing-stage-completed>.brewing-stage-heading,.brewing-addition-step.brewing-stage-completed{background:var(--success-soft)}.brewing-stage-completed>.brewing-stage-heading>strong,.brewing-stage-completed>.brewing-stage-heading>.brewing-stage-meta,.brewing-addition-step.brewing-stage-completed>strong,.brewing-addition-step.brewing-stage-completed>.brewing-addition-meta{color:var(--success)}.brewing-track .brewing-stage-completed .icon{flex-shrink:0}.brewing-track>.brewing-stage-with-additions{flex-basis:20rem}.brewing-addition-steps{border-left:1px solid var(--border);gap:.25rem;margin:.25rem .75rem .75rem 1rem;padding:0 0 0 .75rem;list-style:none;display:grid}.brewing-addition-step{border-radius:6px;gap:.125rem;padding:.375rem .5rem;display:grid;position:relative}.brewing-addition-step>strong{display:block}.brewing-addition-ingredient{max-width:100%;display:inline-block}.brewing-addition-step:before{content:"";background:var(--border-strong);border-radius:50%;width:.5rem;height:.5rem;position:absolute;top:.8125rem;left:-1.03rem}.brewing-addition-step[aria-current]:before{background:var(--primary)}.brewing-addition-step.brewing-stage-completed:before{content:none}.brewing-addition-step>strong>.icon{background:var(--surface);width:1rem;height:1rem;position:absolute;top:.5625rem;left:-1.25rem}.brewing-countdown{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:.5rem 0;font-size:clamp(2.5rem,6vw,3.5rem);font-weight:800;line-height:1.1;display:block}.brewing-clock progress{width:100%;height:.5rem;accent-color:var(--primary)}.brewing-checkpoint{font-size:1.6rem;font-weight:700}.brewing-due{font-weight:700}.brewing-addition{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;display:flex}.brewing-addition>span{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.brewing-addition button{flex-shrink:0;min-height:44px}.brewing-exit{gap:.5rem;margin-top:1.5rem;display:flex}.brewing-exit button{justify-content:center;align-items:center;gap:.5rem;min-height:44px;display:inline-flex}.brewing-exit .brewing-cancel{color:var(--danger-strong);border-color:var(--danger-strong)}.brewing-exit .brewing-cancel:hover:not(:disabled),.brewing-exit .brewing-cancel:active:not(:disabled){background:var(--danger-soft)}@media (width<=600px){.brewing-exit button{flex:1 1 0;min-width:0;padding-inline:.5rem}.brewing-toolbar{gap:1rem}}.recipe-form fieldset.batch-draft-fields{border:0;min-width:0;margin:0;padding:0}.brewing-step .brewing-icon-control{justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;padding:0;display:inline-flex}.brewing-step .brewing-start{background:var(--success);border-color:var(--success);color:var(--surface);justify-content:center;align-items:center;gap:.625rem;min-height:44px;font-weight:700;display:inline-flex}.brewing-step .brewing-start:hover:not(:disabled){background:var(--success);border-color:var(--text)}.brewing-step .brewing-start:active:not(:disabled){background:var(--success);filter:brightness(.9)}.recipe-form .form-actions{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-top:1.5rem;display:flex}.batch-recovery{border-bottom:1px solid var(--border);margin-bottom:2rem;padding-bottom:1.5rem}.batch-recovery h4{margin-bottom:.5rem}.batch-recovery-actions{flex-wrap:wrap;gap:1rem 2rem;margin-top:1rem;display:flex}.batch-recovery-actions>div{flex:0 19rem}.batch-recovery-actions button{justify-content:center;align-items:center;gap:.5rem;min-height:44px;display:inline-flex}.batch-recovery-actions .field-hint{margin:.5rem 0 0}.brewing-step>h4{margin:1.5rem 0 .75rem;font-size:1.125rem}.brewing-next{justify-content:center;align-items:center;gap:.5rem;display:inline-flex}.brewing-control-help{margin:.75rem 0 1.25rem;font-size:.875rem}.brewing-control-help summary{cursor:pointer;align-content:center;width:fit-content;min-height:44px;font-weight:600}.brewing-control-help dl{grid-template-columns:minmax(6rem,10rem) minmax(0,1fr);gap:.75rem 1rem;max-width:48rem;margin:.5rem 0 0;display:grid}.brewing-control-help dt{font-weight:600}.brewing-control-help dd{color:var(--text-muted);margin:0}@media (width<=600px){.brewing-control-help dl{grid-template-columns:minmax(0,1fr);gap:.25rem}.brewing-control-help dd{margin-bottom:.75rem}}.brewing-whirlpool-option{margin:1rem 0}.brewing-whirlpool-toggle{align-items:center;gap:.625rem;width:fit-content;min-height:44px;display:flex}.brewing-whirlpool-toggle input{width:1.125rem;height:1.125rem;margin:0}.brewing-whirlpool-duration{max-width:16rem;margin:.5rem 0;display:block}.brewing-whirlpool-duration .input-with-unit{margin-top:.375rem}.brewing-hop-prompt{z-index:3;background:var(--primary);color:var(--on-primary);border:0;border-radius:8px;margin-bottom:1rem;padding:.625rem 1rem;position:sticky;top:.75rem}.brewing-hop-prompt:before{content:none}.brewing-hop-prompt h4{align-items:center;gap:.5rem;margin:0 0 .25rem;font-size:1.125rem;display:flex}.brewing-hop-count{white-space:nowrap;margin-left:auto;font-size:.8125rem;font-weight:600}.brewing-hop-prompt-list{overscroll-behavior:contain;max-height:min(35vh,22rem);margin:0;padding:0;list-style:none;overflow-y:auto}.brewing-hop-prompt .brewing-addition{border-color:color-mix(in srgb, var(--on-primary) 22%, transparent);grid-template-columns:minmax(0,1fr) auto;gap:.5rem 1rem;padding:.375rem 0;display:grid}.brewing-hop-prompt .brewing-addition:last-child{border-bottom:0}.brewing-addition-items{min-width:0}.brewing-addition-items ul{margin:0;padding:0;list-style:none}.brewing-addition-items .brewing-hop-detail{flex-wrap:nowrap;justify-content:space-between;padding:.25rem 0;font-size:1rem}.brewing-addition-items .brewing-hop-detail+.brewing-hop-detail{border-top:1px solid color-mix(in srgb, var(--on-primary) 25%, transparent)}.brewing-addition-items .brewing-hop-detail strong{overflow-wrap:anywhere;min-width:0}.brewing-addition-time{margin:0 0 .5rem;font-size:.8125rem}.brewing-hop-detail{flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;min-width:0;font-size:1.125rem;display:flex}.brewing-hop-detail strong{font-weight:650}.brewing-hop-amount{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700}.brewing-hop-prompt button{background:var(--black);border-color:var(--black);color:var(--on-black);justify-content:center;align-items:center;gap:.5rem;font-weight:700;display:inline-flex}.brewing-hop-prompt button:hover:not(:disabled){border-color:var(--on-primary)}.brewing-hop-prompt .brewing-hop-clock-hint{margin:.25rem 0 0;font-size:.8125rem;line-height:1.5}@media (width<=600px){.brewing-hop-prompt{padding:.625rem .875rem}.brewing-hop-prompt .brewing-addition{grid-template-columns:minmax(0,1fr);gap:.5rem}.brewing-hop-prompt button{width:100%;min-height:44px}}.brewing-player,.brewing-toolbar-right,.brewing-sound-controls{align-items:center;gap:.5rem;display:flex}.brewing-player{flex-shrink:0}.brewing-toolbar-right{flex-wrap:wrap;justify-content:flex-end;gap:1.25rem;margin-left:auto}.brewing-skip-flow{justify-content:center;align-items:center;gap:.5rem;min-height:44px;display:inline-flex}.brewing-skip-flow span,.brewing-exit button span{overflow-wrap:anywhere;min-width:0}@media (width<=600px){.brewing-toolbar-right{justify-content:space-between;gap:.75rem;width:100%}.brewing-toolbar-right .brewing-skip-flow{gap:.375rem;max-width:calc(100% - 108px);padding-inline:.5rem;font-size:.8125rem}.brewing-exit{gap:.375rem}.brewing-exit button{gap:.375rem;padding-inline:.375rem;font-size:.875rem}.brewing-exit .brewing-skip-flow{flex-grow:1.8}}.brewing-player .brewing-start{border-radius:50%;width:56px;min-width:56px;height:56px;min-height:56px}@media (width<=600px){.brewing-exit button:not(.brewing-skip-flow){flex:none}.brewing-exit button:not(.brewing-skip-flow) span{white-space:nowrap;overflow-wrap:normal}}.batch-og-measurement{background:var(--primary-soft);color:var(--text);border-radius:8px;grid-template-columns:auto minmax(0,1fr) minmax(12rem,19rem);align-items:start;gap:.75rem;margin:0 0 1.5rem;padding:1rem;display:grid}.batch-og-measurement>.icon{color:var(--warning);flex-shrink:0;margin-top:.125rem}.batch-og-copy h4{margin:0 0 .375rem;font-size:1.125rem}.batch-og-copy p{max-width:48ch;margin:0;font-size:.875rem}.batch-og-measurement>label{min-width:0;margin:0}.batch-og-measurement input{margin-top:.375rem}.batch-og-recorded{background:var(--success-soft)}.batch-og-recorded>.icon,.batch-og-recorded h4{color:var(--success)}.timeline-stage.stage-cold-crash{--timeline-accent:var(--primary);--timeline-fg:var(--text)}.timeline-stage.planned .timeline-status{color:var(--text-muted)}@media (width<=720px){.batch-og-measurement{grid-template-columns:auto minmax(0,1fr)}.batch-og-measurement>label{grid-column:2}}.timeline-heading,.timeline-meta{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.125rem .5rem;min-width:0;display:flex}.timeline-heading{margin-bottom:.25rem}.timeline-dot>.icon{width:.875rem;height:.875rem;color:var(--surface)}.timeline-stage.active .timeline-dot{outline:2px solid var(--timeline-accent);outline-offset:3px}.timeline-stage.planned .timeline-dot,.timeline-stage.pending .timeline-dot{border-color:var(--border-strong)}.batch-timeline .timeline-action{justify-content:center;align-self:center;align-items:center;gap:.5rem;width:100%;max-width:16rem;min-height:44px;margin-top:auto;padding:.5rem .625rem;font-size:.875rem;line-height:1.4;display:inline-flex}.timeline-action .icon{flex-shrink:0}.timeline-meta{margin-bottom:.75rem}.timeline-action-start{border-color:var(--primary)}@media (width<=900px){.timeline-heading,.timeline-meta{justify-content:flex-start}.batch-timeline .timeline-action{text-align:center;justify-content:center;justify-self:start;width:fit-content;min-width:9rem;margin-top:0}}.stage-fg-measurement{background:var(--primary-soft);border-radius:8px;align-items:flex-start;gap:.75rem;margin-bottom:1rem;padding:.875rem 1rem;display:flex}.stage-fg-measurement>.icon{color:var(--warning);flex-shrink:0;margin-top:.125rem}.stage-fg-measurement h4{margin:0 0 .25rem;font-size:1rem}.stage-fg-measurement p{margin:0;font-size:.875rem}.batch-carbonation-field{min-width:0}.batch-carbonation-field>label{flex-direction:column;gap:.25rem;display:flex}.batch-carbonation-field>button{text-align:left;align-items:center;min-height:44px;margin-top:.25rem;font-size:.875rem;display:inline-flex}.batch-carbonation-dialog{color:var(--text);background:var(--surface);border:1px solid var(--border-strong);box-sizing:border-box;overscroll-behavior:contain;border-radius:12px;width:min(70rem,100vw - 2rem);max-width:none;max-height:calc(100dvh - 2rem);padding:1.5rem;overflow-y:auto}.batch-carbonation-dialog::backdrop{background:#000000a6}.batch-carbonation-dialog-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.batch-carbonation-dialog-heading h3{margin:0;font-size:1.25rem}.batch-carbonation-dialog-heading>button{flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:inline-flex}.batch-carbonation-dialog .tool-card{box-shadow:none;border:0;padding:0}.batch-carbonation-dialog-actions{background:var(--surface);border-top:1px solid var(--border);justify-content:flex-end;margin-top:1rem;padding:1rem 0;display:flex;position:sticky;bottom:-1.5rem}.batch-carbonation-dialog-actions button{min-height:44px}@media (width<=600px){.batch-carbonation-dialog{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem);padding:1rem}.batch-carbonation-dialog-actions{bottom:-1rem}.batch-carbonation-dialog-actions button{width:100%}.stage-date-editor .actions>button{flex:1}}.batch-timeline .timeline-controls{align-self:center;gap:.5rem;margin-top:auto;display:flex}.batch-timeline .row-action{border:1px solid var(--border-strong);flex-shrink:0}.batch-timeline .row-action-danger{color:var(--danger-strong);border-color:var(--danger-strong)}.stage-date-editor .stage-revert{color:var(--danger-strong);border-color:var(--danger-strong);margin-right:auto}.stage-date-editor .stage-revert:hover:not(:disabled){background:var(--danger-soft)}.reading-og-prompt{background:var(--primary-soft);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;margin:1rem 0;padding:.875rem 1rem;display:flex}.reading-og-prompt p{margin:.25rem 0 0;font-size:.875rem}.reading-og-prompt button{min-height:44px}.reading-og-form{margin:1rem 0}@media (width<=900px){.batch-timeline .timeline-controls{place-self:start;margin-top:0}}@media (width<=600px){.stage-date-editor .actions{flex-wrap:wrap}.stage-date-editor .stage-revert{flex-basis:100%;order:-1;margin:0}}.recipe-form fieldset.stage-temperature-field{border:0;min-width:0;margin:0;padding:0}.reading-og-form{box-sizing:border-box}.reading-og-form>label{max-width:24rem}.reading-og-form .actions{justify-content:flex-end;gap:.75rem;display:flex}.reading-og-form button{min-height:44px}@media (width<=900px){.batch-timeline .row-action-tooltip{left:0;right:auto}}.stage-measurements{display:contents}.stage-bottling-fields{grid-template-columns:minmax(11rem,1.5fr) minmax(5.5rem,.8fr) minmax(5rem,.8fr) minmax(9rem,1fr)}.stage-bottling-measurements{display:contents}.stage-bottling-fields>label,.stage-bottling-fields .batch-carbonation-field{min-width:0}.stage-bottling-fields input{box-sizing:border-box;width:100%;min-width:0}.stage-bottling-fields .input-unit{font-size:.75rem}.stage-bottling-fields input[readonly]{color:var(--text-muted)}.stage-bottling-fields .field-hint:empty{display:none}.stage-bottling-support{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1.5rem;margin-top:.5rem;display:flex}.stage-bottling-support>.field-hint{flex:20rem;max-width:75ch;margin:0;font-size:.8125rem}.stage-bottling-support>button{flex-shrink:0;min-height:44px;font-size:.875rem}.stage-date-editor:has(.stage-bottling-support) .actions{margin-top:.5rem}.batch-timeline .row-action[aria-disabled=true]{opacity:.5;cursor:not-allowed}@media (width<=720px){.stage-bottling-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.stage-bottling-fields>label:first-child{grid-column:1/-1}.stage-bottling-fields .input-with-unit{flex-wrap:wrap}.stage-bottling-fields .input-with-unit input{flex-basis:100%}}.billing-plan{margin:0 0 .75rem;font-size:1.125rem}.billing-actions{flex-wrap:wrap;gap:.5rem;margin:1rem 0 0;display:flex}.billing-actions a:not(.button-primary){box-sizing:border-box;min-height:var(--control-md);border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;align-items:center;padding:.45rem 1rem;font-weight:500;text-decoration:none;display:inline-flex}.billing-actions a:not(.button-primary):hover{border-color:var(--text);color:var(--text)}.billing-checkout{min-height:4rem;margin:.5rem 0 1rem}.subscription-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:0 1rem;display:grid}.subscription-plan,.subscription-payment{flex-direction:column;display:flex}.subscription-plan>.actions,.subscription-payment>.actions{margin-top:auto;padding-top:1rem}.subscription-wide{grid-column:1/-1}.subscription-page .recipe-form{margin:1rem 0 0}.subscription-page .actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem 1rem;margin-top:1rem;display:flex}.subscription-plan-name,.subscription-method{flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;margin:0 0 .25rem;font-size:1.125rem;display:flex}.subscription-renewal{margin:0 0 .75rem}.subscription-confirm{background:var(--surface-sunken);border:1px solid var(--border-strong);border-radius:8px;margin-top:1rem;padding:.75rem 1rem}.subscription-confirm.danger{border-color:var(--danger)}.subscription-confirm:focus{outline:none}.subscription-confirm:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.subscription-renewal.ending{color:var(--warning);font-weight:600}.subscription-page button.link.danger{color:var(--danger-strong)}.subscription-confirm p{max-width:65ch;margin:0}.subscription-confirm .actions{margin-top:.75rem;padding-top:0}.subscription-choice-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;margin-top:1rem;display:flex}.subscription-choice-footer .muted{max-width:45ch;margin:0}.subscription-choice-footer .actions{margin-top:0}.subscription-invoices{margin:2rem 0 1.5rem}.subscription-invoices h3{margin:0 0 .75rem}.subscription-invoices table{margin-top:0}.subscription-invoices .muted{margin:0}.recipe-form .plan-options{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;max-width:40rem;margin:1rem 0 0;padding:0;display:grid}.recipe-form .plan-option{background:var(--surface-sunken);border:1px solid var(--border-strong);cursor:pointer;border-radius:8px;flex-direction:column;gap:.25rem;padding:.75rem 1rem .75rem 2.5rem;transition:border-color .1s ease-out,background-color .1s ease-out;display:flex;position:relative}.recipe-form .plan-option:hover{border-color:var(--text)}.recipe-form .plan-option:has(input:checked){border-color:var(--primary-hover);background:var(--primary-soft);box-shadow:0 0 0 2px var(--primary-hover)}.recipe-form .plan-option:has(input:focus-visible){outline:3px solid var(--focus-ring);outline-offset:2px}.recipe-form .plan-option input{opacity:0;cursor:pointer;width:100%;height:100%;min-height:0;margin:0;padding:0;position:absolute;inset:0}.plan-option:before{content:"";box-sizing:border-box;border:2px solid var(--border-strong);background:var(--surface);border-radius:50%;width:1rem;height:1rem;position:absolute;top:1rem;left:.875rem}.plan-option:has(input:checked):before{border:5px solid var(--text)}.plan-option-name{flex-wrap:wrap;align-items:center;gap:.25rem .5rem;min-height:1.5rem;font-weight:700;display:flex}.plan-option-chip{background:var(--success-soft);color:var(--success)}.plan-option-price{font-variant-numeric:tabular-nums;line-height:1.1}.plan-option-amount{font-size:1.5rem;font-weight:700}.plan-option-unit{color:var(--text-muted);font-size:.875rem;font-weight:600}.plan-option-note{color:var(--text-muted);font-size:.8125rem}.subscription-trust{margin:0}.payment-element{min-height:6rem}@media (width<=720px){.subscription-grid,.recipe-form .plan-options{grid-template-columns:minmax(0,1fr)}.subscription-page .actions button.primary,.subscription-choice-footer .actions{flex:100%}.subscription-invoices .invoice-number{display:none}}@media (pointer:coarse){.billing-actions a,.subscription-invoices td a{min-height:var(--control-touch);align-items:center;display:inline-flex}}@media (prefers-reduced-motion:no-preference){.subscription-confirm{animation:.15s ease-out subscription-confirm-in}@keyframes subscription-confirm-in{0%{opacity:0;transform:translateY(-4px)}}}@media (prefers-reduced-motion:reduce){.recipe-form .plan-option{transition:none}}.fermentation-start-field{min-width:0}.fermentation-start-inputs{grid-template-columns:minmax(0,1fr) auto minmax(0,6rem);align-items:center;gap:.5rem;display:grid}.fermentation-start-inputs input{width:100%;min-width:0;max-width:100%;min-height:var(--control-touch);box-sizing:border-box}.fermentation-start-inputs>span{color:var(--text-muted)}.batch-device-og{margin-block:.5rem 1rem}.batch-device-og button{min-height:var(--control-touch)}.batch-device-readings>h3{margin-bottom:.5rem}.batch-device-readings>p{max-width:70ch}.batch-device-readings>.batch-device-reading-intro{max-width:none}.batch-device-readings button{min-height:44px}.batch-device-reading-sources{gap:2rem;margin-top:1.5rem;display:grid}.batch-device-reading-source{border-top:2px solid var(--border);min-width:0;padding-top:1.5rem}.batch-device-reading-title{flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;display:flex}.batch-device-reading-title h4{overflow-wrap:anywhere;margin:0;font-size:1.125rem}.batch-device-reading-facts{flex-wrap:wrap;gap:1rem 2rem;margin:1rem 0;display:flex}.batch-device-reading-facts>div{min-width:0}.batch-device-reading-facts dt{color:var(--text-muted);font-size:.875rem}.batch-device-reading-facts dd{font-variant-numeric:tabular-nums;margin:.25rem 0 0;font-size:1.25rem;font-weight:650}.batch-device-reading-facts dd.field-hint{font-size:.8125rem;font-weight:400}.batch-device-reading-warning{color:var(--warning);font-size:.875rem}@media (width<=480px){.batch-device-reading-facts{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}}.batch-device-readings-unavailable a{align-items:center;min-height:44px;display:inline-flex}.batch-device-readings .sparkline-table-scroll{max-height:calc(15rem + var(--control-touch));scrollbar-gutter:stable;margin-top:.5rem;overflow:auto}.batch-device-readings .sparkline .sparkline-table-scroll>summary{min-height:var(--control-touch);box-sizing:border-box;align-content:center;margin-top:0}.batch-device-readings .sparkline .chart-table table{border-collapse:separate;border-spacing:0;margin-top:0;overflow:visible}.batch-device-readings .sparkline-table-scroll th,.batch-device-readings .sparkline-table-scroll td{box-sizing:border-box;white-space:nowrap;height:2.5rem;padding:.5rem .75rem;line-height:1.25rem}.batch-device-readings .sparkline-table-scroll th{z-index:2;background:var(--surface-sunken);position:sticky;top:0}.batch-device-readings .sparkline-table-scroll td:first-child{z-index:1;background:var(--surface);position:sticky;left:0}.batch-device-readings .sparkline-table-scroll th:first-child{z-index:3;left:0}.batch-device-chart-legend{color:var(--text-muted);flex-wrap:wrap;gap:.5rem 1.25rem;margin:1rem 0 .5rem;font-size:.8125rem;display:flex}.batch-device-chart-legend>span{align-items:center;gap:.5rem;min-width:0;display:inline-flex}.batch-device-chart-legend i{border-top:2px solid var(--red);flex-shrink:0;width:1.5rem;display:block}.batch-device-chart-legend i.reference{border-top:2px dashed var(--text-muted)}.batch-device-readings .sparkline-label{display:none}.batch-manual-reading-entry{min-width:0}.batch-manual-reading-entry button{min-height:44px}.batch-manual-reading-entry .heading-row{margin-bottom:0}.batch-manual-reading-entry .reading-form{margin-top:1rem}.batch-list-toolbar{align-items:end}.batch-list-toolbar label:first-child{flex:18rem}.batch-list-toolbar label:nth-child(2){flex:0 11rem}.batch-list-order{color:var(--text-muted);margin:0 0 .75rem;font-size:.8125rem}.batch-list-status-filters{margin-block:.25rem 1.25rem}.batch-list-group+.batch-list-group{margin-top:2rem}.batch-list-group-heading{border-bottom:2px solid var(--primary);justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.75rem;padding:.75rem 0;display:flex}.batch-list-group-completed .batch-list-group-heading{border-bottom-color:var(--border-strong)}.batch-list-group-heading h3{color:var(--text);letter-spacing:-.01em;align-items:baseline;gap:.625rem;margin:0;font-size:1.0625rem;display:flex}.batch-list-group-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:400}.batch-list-rows{gap:.625rem;margin:0;padding:0;list-style:none;display:grid}.batch-list-row{background:var(--surface);border:1px solid var(--border);border-radius:10px;min-width:0}.batch-list-overview{grid-template-columns:minmax(9rem,1.15fr) minmax(12rem,1fr) minmax(9rem,1fr) 16.5rem;align-items:center;gap:.5rem .75rem;padding:.625rem .875rem;display:grid}.batch-list-controls{justify-items:end;gap:.25rem;min-width:0;display:grid}.batch-list-identity,.batch-list-stage{min-width:0}.batch-list-identity-heading{align-items:center;gap:.25rem;display:flex}.batch-list-identity-meta{overflow-wrap:anywhere;margin-left:3rem;display:grid}.batch-list-overview{cursor:pointer}.batch-list-filter-controls{border:0;min-width:0;margin:0;padding:0}.batch-list-stage-editor{padding:0 1rem 1rem}.batch-list-stage-editor .stage-date-editor{margin-bottom:0}.batch-list-batch-link{width:fit-content;min-height:2.75rem;color:var(--text);overflow-wrap:anywhere;flex-direction:column;justify-content:center;align-items:start;text-decoration:none;display:flex}.batch-list-batch-link strong{font-size:.9375rem}.batch-list-recipe-name{font-size:.875rem;line-height:1.45}.batch-list-batch-link:hover strong{text-decoration:underline;-webkit-text-decoration-color:var(--primary-hover);text-decoration-color:var(--primary-hover)}.batch-list-type{color:var(--text-muted);margin-top:.125rem;font-size:.8125rem;display:block}.batch-list-stage .badge{white-space:normal;max-width:100%}.batch-list-view .batch-list-next{border:1px solid var(--focus-ring);background:var(--primary-soft);width:12rem;max-width:100%;height:2.75rem;min-height:2.75rem;box-shadow:none;color:var(--text);text-align:start;white-space:normal;border-radius:8px;grid-template-columns:1rem minmax(0,1fr);align-items:center;gap:.5rem;margin-top:.25rem;padding:.25rem .75rem;font-size:.8125rem;font-weight:600;display:grid}.batch-list-next .icon{width:1rem;height:1rem}.batch-list-next span{line-height:1.25}.batch-list-view .batch-list-next:hover:not(:disabled){background:var(--primary);color:var(--on-primary)}.batch-list-view .batch-list-next:active:not(:disabled){background:var(--primary-press);color:var(--on-primary)}.batch-list-measurements{flex-wrap:wrap;gap:.5rem 1rem;margin:0;display:flex}.batch-list-measurements div,.batch-list-facts div{min-width:0}.batch-list-measurements dt,.batch-list-facts dt{color:var(--text-muted);font-size:.75rem;line-height:1.5}.batch-list-measurements dd,.batch-list-facts dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font-size:.8125rem}.batch-list-actions{align-items:center;gap:.25rem;display:flex}.batch-list-view .batch-list-disclosure,.batch-list-view .batch-list-actions .row-action{border:1px solid var(--border-strong);min-width:2.75rem;min-height:2.75rem;color:var(--text-muted);box-shadow:none;background:0 0;border-radius:.375rem}.batch-list-view .batch-list-disclosure{flex:0 0 2.75rem;justify-content:center;align-items:center;width:2.75rem;padding:.5rem;display:flex}.batch-list-disclosure[aria-expanded=true] .icon{transform:rotate(90deg)}.batch-list-view .batch-list-actions .row-action-danger{color:var(--danger)}.batch-list-view .batch-list-actions button:hover:not(:disabled){background:var(--surface-sunken)}.batch-list-view .batch-list-actions .row-action-danger:hover:not(:disabled){background:var(--danger-soft)}.batch-list-view :is(.batch-list-row,.batch-list-status-filters) :focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.batch-list-details{border-top:1px solid var(--border);background:var(--surface-sunken);border-radius:0 0 10px 10px;padding:1rem}.batch-list-details[hidden]{display:none}.batch-list-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0 0 1.25rem;display:grid}.batch-list-progress{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.batch-list-progress-stage{border-left:1px solid var(--border);color:var(--text-muted);overflow-wrap:anywhere;flex-direction:column;gap:.25rem;padding-left:.75rem;font-size:.8125rem;display:flex}.batch-list-progress-stage:is(.done,.active){border-left-color:var(--primary)}.batch-list-progress-stage.active{color:var(--text)}.batch-list-progress-heading{flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;display:flex}.batch-list-progress-heading strong{color:var(--text)}.batch-list-progress-heading>span{font-size:.75rem}.batch-list-completed-shortcut{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem;padding-top:1rem;font-size:.875rem;display:flex}@media (width<=900px){.batch-list-overview{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.batch-list-controls{grid-area:1/2}.batch-list-stage{text-align:start;justify-self:start}.batch-list-view .batch-list-next{text-align:start}.batch-list-actions{justify-self:end}}@media (width<=560px){.batch-list-view .batch-list-toolbar{grid-template-columns:minmax(0,1.5fr) minmax(6.5rem,1fr);display:grid}.batch-list-view .batch-list-toolbar label:first-child{grid-column:auto}.batch-list-toolbar label,.batch-list-toolbar :is(input,select){min-width:0}.batch-list-order{grid-column:1/-1;width:100%;margin:0}.batch-list-status-filters{gap:.375rem}.batch-list-view .batch-list-status-filters button{min-width:2.75rem;padding-inline:.625rem;font-size:.8125rem}.batch-list-group-heading{flex-wrap:wrap;gap:.5rem}.batch-list-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:.375rem .625rem;padding:.625rem}.batch-list-identity{grid-area:1/1;align-self:start}.batch-list-identity-meta{flex-wrap:wrap;align-items:baseline;gap:.125rem .625rem;margin-left:0;display:flex}.batch-list-controls{display:contents}.batch-list-device-header{grid-area:1/2;align-self:start}.batch-list-device-header .batch-linked-device-tag{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.batch-list-type{margin-top:0}.batch-list-stage{display:contents}.batch-list-stage .badge{grid-area:2/1;justify-self:start}.batch-list-measurements{grid-area:2/2;justify-self:end;gap:.5rem .75rem}.batch-list-view .batch-list-next{text-align:start;grid-column:1/-1;justify-content:start;width:100%;margin:0}.batch-list-actions{grid-column:1/-1;justify-self:stretch}.batch-list-view-link{margin-right:auto}.batch-list-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.batch-list-details{padding:.875rem}.batch-list-stage-editor .stage-bottling-measurements>label,.batch-list-stage-editor .batch-carbonation-field>label{grid-template-rows:3rem auto;align-content:start;display:grid}.batch-list-progress{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (width<=360px){.batch-list-stage .badge{grid-column:1/-1}.batch-list-measurements{grid-area:3/1/auto/-1;justify-self:start}}.batch-list-view .batch-list-status-filters button{min-height:2.75rem}.batch-list-view .catalog-results-updating .batch-list-group{opacity:.55}.batch-list-view .batch-list-view-link{box-sizing:border-box;border:1px solid var(--border-strong);min-height:2.75rem;color:var(--text);background:var(--surface);white-space:nowrap;border-radius:.375rem;justify-content:center;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}.batch-list-view .batch-list-view-link:hover{background:var(--surface-sunken)}.batch-list-view .batch-list-view-link:active{background:var(--primary-soft)}.batch-list-view .batch-list-disclosure:hover{background:var(--surface-sunken)}.dashboard-first-brew{margin-bottom:2.5rem}.dashboard .dashboard-first-brew>h3{text-transform:none;letter-spacing:normal;color:var(--text);margin:0 0 .5rem;font-size:1.125rem}.dashboard .dashboard-first-brew>h3:before{content:none}.dashboard-first-brew>p{max-width:65ch;margin:0 0 1rem}.first-brew-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.first-brew-actions>a{min-height:var(--control-touch);box-sizing:border-box;justify-content:center;align-items:center;display:inline-flex}.first-recipe-action{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:8px;padding:.45rem 1rem;font-weight:500;text-decoration:none}.first-recipe-action:hover{border-color:var(--text)}.first-recipe-action:active{background:var(--surface-sunken)}.recipes-list-view .recipe-brew-label{display:none}@media (width<=720px){.recipes-list-view table.recipe-table{box-sizing:border-box;display:block;overflow:visible}.recipes-list-view .recipe-table thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.recipes-list-view .recipe-table tbody{display:block}.recipes-list-view .recipe-table tbody tr{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;gap:.25rem .75rem;padding:.5rem .875rem .875rem;display:grid}.recipes-list-view .recipe-table tbody tr:last-child{border-bottom:0}.recipes-list-view .recipe-table td{border:0;min-width:0;padding:0}.recipes-list-view .recipe-table td:first-child{grid-column:1/-1}.recipes-list-view .recipe-table td:first-child a{min-height:var(--control-touch);overflow-wrap:anywhere;align-items:center;display:flex}.recipes-list-view .recipe-table td:nth-child(2){color:var(--text-muted);overflow-wrap:anywhere;align-self:center;font-size:.875rem;display:block}.recipes-list-view .recipe-table td:nth-child(3){align-self:center}.recipes-list-view .recipe-table .actions-col{grid-column:1/-1;grid-template-columns:minmax(0,1fr) 44px 44px;gap:.5rem;margin-top:.5rem;display:grid}.recipes-list-view .actions-col>*+*{margin-left:0}.recipes-list-view .actions-col .row-action{border:1px solid var(--border-strong);background:var(--surface)}.recipes-list-view .actions-col .row-action:first-child{width:auto;color:var(--text);gap:.5rem;font-weight:600}.recipes-list-view .recipe-brew-label{display:inline}.recipes-list-view .actions-col .row-action-danger{color:var(--danger-strong);border-color:var(--danger-strong)}.recipes-list-view .actions-col .row-action:active:not(:disabled){background:var(--surface-sunken)}.recipes-list-view .actions-col .row-action-danger:active:not(:disabled){background:var(--danger-soft)}.recipes-list-view .row-action:first-child .row-action-tooltip{left:0;right:auto}}@media (width<=560px){.recipes-list-view>.section-header{gap:.75rem;display:grid}.recipes-list-view>.section-header .section-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.recipes-list-view>.section-header button,.recipes-list-view .list-toolbar input,.recipes-list-view .list-toolbar select{min-height:var(--control-touch)}.recipes-list-view .list-toolbar label:first-child{grid-column:auto}}.recipes-list-view .recipe-first-steps{margin-bottom:2.5rem;display:block}.recipe-first-steps h3{margin:0}.recipes-list-view .recipe-first-steps>p{color:var(--text-muted);margin:.5rem 0 1rem}.recipe-first-steps button{min-height:var(--control-touch)}.recipe-first-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}
