@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b-s.138s14ivx2xer.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892-s.3b2emle-7szv-.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7-s.p.13rul5q9jl2r0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Fallback;src:local(Arial);ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.0%;size-adjust:98.7%}.archivo_ee65d863-module__ZmEQPq__className{font-family:Archivo,Archivo Fallback;font-style:normal}.archivo_ee65d863-module__ZmEQPq__variable{--font-ui:"Archivo", "Archivo Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.3bz3aq452sydg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.2sb9jzhmrh7ny.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.343obqi851wr5.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.40kcwrf1wub16.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.200l3jur7oygh.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.269kn9uafm0ti.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_d5591ac2-module__D88TVW__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_d5591ac2-module__D88TVW__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--canvas:#f9f6f2;--page-bg:#f2f0ec;--surface:#fff;--border:#dedad3;--control-border:#cfcac2;--ink:#1e1a15;--text-2nd:#67625c;--faint:#83807a;--copper:#995600;--copper-link:#7d4000;--red:#af3d36;--red-text:#8d1b19;--red-bg:#ffe7e4;--red-border:#fdc9c2;--red-wash:#fff1ee;--chrome-bg:#17130f;--chrome-logo:#de9046;--chrome-item:#aeaaa4;--training-chrome:#2f1e48;--training-banner:#5d4188;--training-key:#956ed2;--table-fill:#f5f3ef;--row-alt:#eeebe5;--hairline:#eae7e2;--zebra:#f9f8f5;--copper-wash:#f0eae4;--ok:#257c3a;--ok-text:#004215;--ok-bg:#d6f5d9;--filled-bg:#addcb2;--copper-bg:#ffead7;--copper-text:#743d00;--discard-bg:#56524b;--discard-text:#f0eeea;--discard-dot:#a8a49e;--red-invalid:#dc8c83;--training-tint:#eee6ff;--training-text:#543282;--stage-brew:#935000;--stage-ferment:#277539;--stage-cond:#1e6c8e;--stage-free:#5a544e;--stage-brew-tint:#feebdb;--stage-ferment-tint:#e9f6ea;--stage-cond-tint:#e2f1fa;--ink-soft:#514c46;--chrome-border:#34302b;--dark-surface:#24201b;--dark-chip:#2d251c;--dark-chip-border:#443b32;--dark-verb:#4b2e11;--dark-deep:#0e0a07;--fs-title:24px;--fs-title-sm:19px;--fs-stat-lg:20px;--fs-stat:18px;--fs-heading:15px;--fs-body-lg:14px;--fs-body:13px;--fs-table:12.5px;--fs-small:12px;--fs-mono-sm:11.5px;--fs-label:11px;--fs-micro:10px;--fs-micro-sm:9.5px;--radius-ctl:3px;--radius-sm:4px;--radius-card:6px;--radius-pill:999px;--control-h:30px;--chip-h:28px;--control-h-compact:26px;--control-h-row:24px;--topbar-h:46px;--gutter:26px;--card-pad:16px;--section-gap:24px;--touch:44px;--label-line:16px}@supports (color:lab(0% 0 0)){:root{--canvas:lab(97.1245% .164807 2.28322);--page-bg:lab(94.8045% .164986 2.28337);--border:lab(87.2799% .2895 3.81514);--control-border:lab(81.4736% .71013 4.53652);--ink:lab(9.5186% 1.52428 4.35848);--text-2nd:lab(42.0179% 1.08954 4.47608);--faint:lab(53.6276% .598729 3.78519);--copper:lab(43.7743% 27.0706 61.4837);--copper-link:lab(34.4325% 28.0153 65.1041);--red:lab(42.8591% 46.8763 30.499);--red-text:lab(31.2267% 47.1877 32.7901);--red-bg:lab(93.8428% 12.0876 7.12225);--red-border:lab(85.5389% 18.2128 10.7824);--red-wash:lab(96.2981% 7.53257 4.42735);--chrome-bg:lab(6.19496% 1.08121 2.82142);--chrome-logo:lab(67.0737% 25.4597 51.1346);--chrome-item:lab(69.8681% .58952 3.77892);--training-chrome:lab(15.3627% 16.1215 -23.2682);--training-banner:lab(33.3397% 24.5972 -35.6997);--training-key:lab(53.7518% 31.6073 -46.6575);--table-fill:lab(95.9645% .164866 2.2833);--row-alt:lab(93.0723% .225216 3.04791);--hairline:lab(91.9123% .225455 3.04804);--zebra:lab(97.4645% .107408 1.52059);--copper-wash:lab(93.0264% 1.58224 3.39239);--ok:lab(45.9201% -38.2911 27.9475);--ok-text:lab(23.4891% -29.6467 22.1117);--ok-bg:lab(93.6998% -14.4916 10.0612);--filled-bg:lab(83.5771% -21.7825 15.2248);--copper-bg:lab(94.1294% 6.64094 13.7967);--copper-text:lab(32.1712% 25.6798 57.9701);--discard-bg:lab(35.0573% 1.10067 4.48422);--discard-text:lab(94.2245% .165075 2.28339);--discard-dot:lab(67.5481% .590652 3.77966);--red-invalid:lab(66.5946% 30.6874 18.5037);--training-tint:lab(92.5827% 7.16409 -12.9302);--training-text:lab(28.3301% 29.1737 -40.1577);--stage-brew:lab(41.3681% 29.8344 73.0161);--stage-ferment:lab(43.4821% -35.3064 25.6785);--stage-cond:lab(42.14% -14.5175 -25.7822);--stage-free:lab(36.2034% 1.43477 4.3637);--stage-brew-tint:lab(94.1511% 4.90373 10.2869);--stage-ferment-tint:lab(95.6271% -5.78722 3.99524);--stage-cond-tint:lab(94.2668% -4.01652 -5.98663);--ink-soft:lab(32.7231% 1.44102 4.36832);--chrome-border:lab(19.962% 1.21087 3.64782);--dark-surface:lab(12.4208% 1.23388 3.66611);--dark-chip:lab(15.3121% 2.64141 7.49642);--dark-chip-border:lab(25.7574% 2.5458 7.40033);--dark-verb:lab(22.0732% 11.7651 23.6482);--dark-deep:lab(3.04711% .695944 1.72559)}}*{box-sizing:border-box}body{background:var(--page-bg);color:var(--ink);font-family:var(--font-ui), system-ui, sans-serif;font-size:var(--fs-body);margin:0;line-height:1.5}h1{font-size:var(--fs-title);margin:0;font-weight:700}button{font:inherit}:focus-visible{outline:2px solid var(--copper);outline-offset:2px}.auth{background:var(--canvas);min-height:100vh;padding:var(--gutter);place-items:center;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);width:100%;max-width:360px;padding:var(--card-pad);flex-direction:column;gap:12px;display:flex}.auth-card h1{font-size:var(--fs-title-sm);letter-spacing:-.01em}.wordmark{color:var(--copper);font-size:var(--fs-table);letter-spacing:.14em;text-transform:uppercase;font-weight:700}.auth-hint{color:var(--text-2nd);margin:0}.auth-form{flex-direction:column;gap:12px;margin-top:4px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field-label{font-size:var(--fs-label);text-transform:uppercase;font-weight:500;line-height:var(--label-line);letter-spacing:.08em;color:var(--faint)}.field input{height:var(--control-h);border:1px solid var(--control-border);border-radius:var(--radius-ctl);background:var(--surface);color:var(--ink);font:inherit;padding:0 8px}.field-row{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.field-row>:not(.field:has(>.field-label),.form-error-row,.record-error){margin-top:calc(var(--label-line) + 4px)}.field-static{height:var(--control-h);align-items:center;margin:0;display:flex}.field-static-num{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-table);font-weight:500}.form-error{border:1px solid var(--red-border);border-radius:var(--radius-ctl);background:var(--red-bg);color:var(--red-text);margin:0;padding:8px 10px}.button-primary,.button-secondary{height:var(--control-h);border-radius:var(--radius-ctl);cursor:pointer;padding:0 14px}.button-primary{border:1px solid var(--copper);background:var(--copper);color:#fff;font-weight:600}.button-primary:hover{background:var(--copper-link);border-color:var(--copper-link)}.button-primary:disabled{opacity:.6;cursor:default}.button-secondary{border:1px solid var(--control-border);background:var(--surface);color:var(--ink);align-self:flex-start}.button-danger{height:var(--control-h);border-radius:var(--radius-ctl);cursor:pointer;border:1px solid var(--red-border);background:var(--red-bg);color:var(--red-text);align-self:flex-start;padding:0 14px;font-weight:600}.button-danger:hover{background:var(--red-text);border-color:var(--red-text);color:#fff}.button-danger:disabled{opacity:.6;cursor:default}.batch-delete-warning{max-width:60ch;color:var(--red-text);margin:0}.topbar{height:var(--topbar-h);padding:0 var(--gutter);background:var(--chrome-bg);color:var(--chrome-item);align-items:center;gap:20px;display:flex}.topbar-logo{color:var(--chrome-logo);font-size:var(--fs-table);letter-spacing:.14em;text-transform:uppercase;font-weight:700}.topbar-brewery,.switcher summary{color:#fff;font-size:var(--fs-body);font-weight:600}.topbar-brewery,.switcher{min-width:0;margin-left:auto}.topbar-brewery,.switcher summary,.topbar-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar-name{flex:none;max-width:16ch}.topbar-admin-tag{color:var(--chrome-item);letter-spacing:.14em}.topbar-user{align-items:center;gap:12px;margin-left:auto;display:flex}.button-ghost{height:var(--control-h-compact);border:1px solid var(--chrome-border);border-radius:var(--radius-ctl);color:var(--chrome-item);cursor:pointer;white-space:nowrap;background:0 0;padding:0 10px}.button-ghost:hover{color:#fff;border-color:var(--chrome-item)}.switcher{position:relative}.switcher summary{cursor:pointer;list-style:none}.switcher summary:after{content:" ▾";color:var(--chrome-item)}.switcher-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:220px;box-shadow:0 4px 16px oklch(from var(--ink) l c h / .18);z-index:10;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 8px);left:0}.switcher-menu button{border-radius:var(--radius-ctl);color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:baseline;gap:12px;padding:6px 8px;display:flex}.switcher-menu button:hover{background:var(--page-bg)}.switcher-menu button[aria-current=true]{background:var(--copper-wash);box-shadow:inset 2px 0 0 var(--copper)}.switcher-role{font-size:var(--fs-small);color:var(--faint)}.topbar--training{background:var(--training-chrome)}.switcher-brewery{align-items:center;gap:8px;display:inline-flex}.training-badge{border-radius:var(--radius-ctl);background:var(--training-key);color:#fff;font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;align-items:center;padding:1px 6px;font-weight:700;display:inline-flex}.switcher-menu .training-badge{background:var(--training-tint);color:var(--training-text)}.training-banner{padding:7px var(--gutter);background:var(--training-banner);color:#fff;font-size:var(--fs-table);align-items:baseline;gap:10px;display:flex}.training-banner-tag{letter-spacing:.06em;text-transform:uppercase;font-weight:700;font-size:var(--fs-label)}.training-banner-text{color:var(--training-tint)}.shell-main{max-width:960px;padding:var(--gutter);flex-direction:column;gap:8px;margin:0 auto;display:flex}.shell-sub{color:var(--text-2nd);margin:0}.shell-hint{color:var(--faint);margin:8px 0 0}.topbar-nav{align-items:center;display:flex}.topbar-nav-item{height:var(--topbar-h);color:var(--chrome-item);font-size:var(--fs-body);white-space:nowrap;align-items:center;padding:0 11px;font-weight:500;text-decoration:none;display:flex;position:relative}button.topbar-nav-item{cursor:pointer;background:0 0;border:0}.topbar-tools{align-items:center;display:flex}.topbar-signout{display:flex}.topbar-nav-item.topbar-name{line-height:var(--topbar-h);box-sizing:content-box;display:block}.topbar-nav-item:hover{color:#fff}.topbar-nav-item[aria-current=page]{color:#fff;font-weight:600;transform:translateY(-1px)}.topbar-nav-item[aria-current=page]:after{content:"";background:var(--copper);border-radius:1px;height:2px;position:absolute;bottom:12px;left:11px;right:11px}.topbar-signout .topbar-nav-item{padding-right:0}@media (max-width:1200px){.topbar{gap:12px}.topbar-nav-item{padding:0 7px}.topbar-nav-item[aria-current=page]:after{left:7px;right:7px}.topbar-user{gap:8px}}.settings{min-height:calc(100vh - var(--topbar-h));background:var(--page-bg);grid-template-columns:216px 1fr;display:grid}.settings-side{border-right:1px solid var(--border);padding:20px 0 24px}.settings-side-head{padding:0 18px 14px}.settings-side-title{font-size:var(--fs-title-sm);letter-spacing:-.01em;font-weight:700}.settings-side-brewery{font-size:var(--fs-small);color:var(--text-2nd);margin-top:3px}.settings-side-label{font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--text-2nd);padding:12px 18px 7px;font-weight:500}.settings-nav{flex-direction:column;display:flex}.settings-nav a{height:32px;font-size:var(--fs-table);color:var(--ink);align-items:center;padding:0 18px;text-decoration:none;display:flex}.settings-nav a:hover{background:var(--canvas)}.settings-nav a[aria-current=page]{background:var(--copper-wash);box-shadow:inset 2px 0 0 var(--copper);font-weight:600}.settings-main{padding:22px var(--gutter) var(--gutter);gap:var(--section-gap);flex-direction:column;max-width:880px;display:flex}.settings-head{flex-direction:column;gap:4px;display:flex}.settings-title{font-size:var(--fs-title-sm);letter-spacing:-.01em;margin:0;font-weight:700}.settings-desc{color:var(--text-2nd);max-width:64ch;margin:0}.metric-strip{gap:26px;margin-top:12px;display:flex}.metric-value{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-stat-lg);font-weight:600;line-height:1;display:block}.metric-unit{font-size:var(--fs-small);color:var(--faint)}.metric-label{font-size:var(--fs-micro);letter-spacing:.07em;text-transform:uppercase;color:var(--text-2nd);margin-top:5px;font-weight:500;display:block}.settings-section{flex-direction:column;gap:9px;display:flex}.section-bar{justify-content:space-between;align-items:center;display:flex}.section-label{font-size:var(--fs-micro);letter-spacing:.09em;text-transform:uppercase;color:var(--text-2nd);margin:0;font-weight:500}.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--card-pad)}.equipment-group{flex-direction:column;gap:6px;margin-top:6px;display:flex}.equipment-group-count{color:var(--faint);font-weight:600}.badge-default{background:var(--copper-wash);color:var(--copper-link);margin-left:7px}.badge-default:before{background:var(--copper)}.chip-row{gap:6px;display:flex}.chip{height:var(--chip-h);border-radius:var(--radius-ctl);color:var(--text-2nd);font-size:var(--fs-mono-sm);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 9px;display:inline-flex}.chip[aria-pressed=true],.chip[aria-current=true]{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:500}.chip-count{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-micro);color:var(--faint)}.chip[aria-pressed=true] .chip-count,.chip[aria-current=true] .chip-count{color:var(--chrome-item)}.data-table-frame{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden}.data-table{border-collapse:collapse;width:100%}.data-table th{background:var(--table-fill);border-bottom:1px solid var(--border);height:29px;font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-2nd);text-align:left;padding:0 12px;font-weight:500}.data-table td{border-bottom:1px solid var(--row-alt);height:34px;font-size:var(--fs-table);padding:0 12px}.data-table tbody tr:last-child>td{border-bottom:0}.cell-num{text-align:right;font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-small);font-weight:500}th.cell-num{font-family:var(--font-ui), sans-serif;font-size:var(--fs-micro)}.cell-number-code{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-table);font-weight:500;display:block;overflow:hidden}.cell-2nd{color:var(--text-2nd)}.row-retired td{color:var(--faint)}.table-empty{color:var(--faint);margin:0;padding:14px 12px}.badge{border-radius:var(--radius-ctl);background:var(--row-alt);height:20px;font-size:var(--fs-micro);color:var(--text-2nd);align-items:center;gap:5px;padding:0 7px;font-weight:600;display:inline-flex}.badge:before{content:"";background:var(--faint);border-radius:50%;width:4px;height:4px}.badge-ok{background:var(--ok-bg);color:var(--ok-text)}.badge-ok:before{background:var(--ok)}.cell-actions{text-align:right;white-space:nowrap}.row-action-form{display:inline}.row-action{height:var(--control-h-row);border-radius:var(--radius-ctl);color:var(--copper-link);font-size:var(--fs-small);cursor:pointer;background:0 0;border:1px solid #0000;margin-left:4px;padding:0 8px}.row-action:hover{border-color:var(--control-border)}.row-action:disabled{opacity:.6;cursor:default}.row-action-danger{color:var(--red-text)}.row-edit td,.row-error td{background:var(--canvas);height:auto;padding:10px 12px}.row-edit-form{flex-wrap:nowrap}.field select{height:var(--control-h);border:1px solid var(--control-border);border-radius:var(--radius-ctl);background:var(--surface);color:var(--ink);font:inherit;padding:0 8px}.field input[type=number]{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;width:96px}.form-error-row{flex-basis:100%}.empty-state{border:1px dashed var(--control-border);border-radius:var(--radius-sm);background:var(--table-fill);padding:14px 16px}.field input[aria-invalid=true]{border-color:var(--red)}.field-error{font-size:var(--fs-small);color:var(--red-text);max-width:24ch;margin:0}.empty-title{font-size:var(--fs-body);margin:0;font-weight:600}.empty-hint{color:var(--text-2nd);margin:3px 0 0}.empty-hint a{color:var(--copper-link)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.batches-main:has(.plan-main){max-width:1440px}.batches-main{max-width:982px;padding:22px var(--gutter) var(--gutter);gap:var(--section-gap);flex-direction:column;margin:0 auto;display:flex}.page-head{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.page-title{font-size:var(--fs-title);letter-spacing:-.01em;margin:0;font-weight:700}.page-desc{color:var(--text-2nd);max-width:64ch;margin:4px 0 0}.breadcrumb{font-size:var(--fs-micro);letter-spacing:.09em;text-transform:uppercase;color:var(--text-2nd);margin:0 0 8px;font-weight:500}.breadcrumb a{color:inherit;text-decoration:none}.breadcrumb a:hover{color:var(--copper-link)}.title-row{align-items:center;gap:12px;display:flex}.overflow{position:relative}.overflow-trigger{width:var(--control-h);height:var(--control-h);background:var(--surface);border:1px solid var(--control-border);border-radius:var(--radius-ctl);color:var(--ink);font-size:var(--fs-body-lg);cursor:pointer;justify-content:center;align-items:center;line-height:1;display:inline-flex}.overflow-trigger:hover{border-color:var(--copper)}.overflow-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:160px;box-shadow:0 4px 16px oklch(from var(--ink) l c h / .18);z-index:10;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.overflow-item{border-radius:var(--radius-ctl);color:var(--ink);font-size:var(--fs-table);text-align:left;cursor:pointer;background:0 0;border:0;padding:6px 8px}.overflow-item:hover{background:var(--page-bg)}.overflow-item-danger{color:var(--red-text)}.overflow-item[aria-disabled=true]{color:var(--faint);cursor:default}.overflow-item[aria-disabled=true]:hover{background:0 0}.overflow-confirm{border-color:var(--red-border);gap:10px;width:320px;padding:12px}.overflow-confirm-warning{color:var(--red-text);margin:0}.overflow-menu .form-error{margin:2px 0 0;padding:4px 8px}.button-link{font-size:var(--fs-body);color:var(--copper-link);align-items:center;text-decoration:none;display:inline-flex}.table-link{color:var(--ink);font-weight:500;text-decoration:none}.table-link:hover{color:var(--copper-link)}.badge-planned{background:var(--copper-bg);color:var(--copper-text)}.badge-planned:before{background:var(--copper)}.badge-discarded{background:var(--discard-bg);color:var(--discard-text)}.badge-discarded:before{background:var(--discard-dot)}.facts-strip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:stretch;display:flex;overflow:hidden}.fact{border-right:1px solid var(--row-alt);padding:9px 14px}.fact-spacer{flex:1}.facts-row{align-items:stretch;gap:24px;display:flex}.facts-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:stretch;display:flex;overflow:hidden}.facts-box .fact{border-right:1px solid var(--hairline);padding:8px 12px}.facts-box .fact-value{white-space:nowrap}.facts-box-own{background:var(--zebra);flex:none}.facts-box-own .fact{border-right:0}.facts-box-source{flex:1}.fact-muted{color:var(--faint)}.fact-resync{border-right:0;flex-wrap:wrap;align-items:center;display:flex}.fact-resync-button{height:var(--control-h-compact);font-size:var(--fs-small);white-space:nowrap;align-self:center;padding:0 11px}.fact-label{font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--text-2nd);font-weight:500;display:block}.fact-value{font-size:var(--fs-table);margin-top:4px;font-weight:500;display:block}.fact-mono{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums}.fact-field{flex-wrap:wrap;align-items:center;gap:4px;margin-top:2px;display:flex}.fact-input{box-sizing:border-box;border:1px solid var(--control-border);border-radius:var(--radius-ctl);background:var(--surface);width:58px;height:24px;color:var(--ink);font:inherit;font-family:var(--font-mono), monospace;font-size:var(--fs-table);font-variant-numeric:tabular-nums;padding:0 6px;font-weight:500}.fact-input[aria-invalid=true]{border-color:var(--red-border)}.fact-unit{font-size:var(--fs-table);color:var(--text-2nd);font-weight:500}.fact-refusal{font-size:var(--fs-small);white-space:nowrap;flex-basis:100%;padding:4px 8px}.detail-section{flex-direction:column;gap:9px;display:flex}.plan-main{align-items:flex-start;gap:12px;display:flex}.plan-column{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.detail-column{flex-direction:column;flex:none;gap:12px;width:396px;display:flex}.detail-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);flex-direction:column;gap:10px;padding:14px 15px;display:flex}.detail-card-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.detail-card-link{font-size:var(--fs-mono-sm);color:var(--copper);font-weight:500}.detail-sunken{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--canvas);padding:11px 12px}.detail-figure{align-items:baseline;gap:8px;margin:0;display:flex}.detail-figure-value{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-stat-lg);font-weight:600}.detail-figure-word{font-size:var(--fs-table);color:var(--text-2nd)}.detail-line{font-size:var(--fs-mono-sm);color:var(--text-2nd);margin:4px 0 0;line-height:1.45}.detail-mono{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:500}.detail-actions{align-items:center;gap:7px;display:flex}.detail-actions a{align-items:center;text-decoration:none;display:inline-flex}.detail-divider{background:var(--row-alt);height:1px}.detail-count{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.detail-count-label{font-size:var(--fs-small);color:var(--ink-soft);font-weight:500}.detail-lead,.detail-hint{font-size:var(--fs-small);color:var(--text-2nd);margin:0;line-height:1.45}.detail-empty{border:1px dashed var(--control-border);border-radius:var(--radius-sm);background:var(--canvas);padding:12px}.detail-empty-title{font-size:var(--fs-body);margin:0;font-weight:600}.title-no{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-stat);color:var(--copper-link);font-weight:600}.breadcrumb-no{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums}.new-batch-desc{max-width:42ch}.new-batch-form{flex-direction:column;gap:16px;max-width:760px;display:flex}.new-batch-form .field-grow{min-width:0}.new-batch-form .field input{width:100%}.new-batch-form .field-batch-no,.new-batch-form .field-abv,.new-batch-form .field-turns,.new-batch-form .field-per-turn,.new-batch-form .field-days{flex:none}.new-batch-form .field-batch-no,.new-batch-form .field-abv,.new-batch-form .field-turns{width:120px}.new-batch-form .field-per-turn{width:150px}.new-batch-form .field-days{width:140px}.new-batch-form .field-batch-no input{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums}.new-batch-form .designed-volume{margin:calc(var(--label-line) + 4px) 0 0;height:var(--control-h);font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-table);color:var(--text-2nd);align-items:center;font-weight:500;display:flex}.new-batch-form .form-foot{flex-wrap:wrap;gap:14px}.new-batch-form .form-foot .button-link{font-size:var(--fs-table);font-weight:500}.form-card{flex-direction:column;gap:12px;display:flex}.card-heading{font-size:var(--fs-heading);margin:0;font-weight:600}.form-row{align-items:flex-start;gap:12px;display:flex}.field-grow{flex:1}.field-grow input,.field-grow select{width:100%}.form-hint{font-size:var(--fs-small);color:var(--faint);margin:0}.form-foot{align-items:center;gap:12px;display:flex}.chain-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);flex-direction:column;padding:12px 14px;display:flex}.chain-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.chain-title{font-size:var(--fs-body);margin:0;font-weight:600}.chain-days{font-size:var(--fs-small);font-variant-numeric:tabular-nums;color:var(--text-2nd)}.chain-spacer{flex:1}.chain-controls{flex-wrap:wrap;gap:8px 20px;margin-bottom:8px;display:flex}.chain-field{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.chain-field>.stepper{height:var(--control-h)}.chain-field-label{font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--text-2nd);font-weight:500}.chain-anchor-input{height:var(--control-h);box-sizing:border-box;border:1px solid var(--control-border);border-radius:var(--radius-ctl);background:var(--surface);color:var(--ink);font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-table);padding:0 9px}.chain-anchor-day{display:inline-flex;position:relative}.chain-anchor-day-button{cursor:pointer}.chain-anchor-day-static{align-items:center;display:inline-flex}.chain-anchor-day-native{opacity:0;pointer-events:none;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.chain-day-stepper .chain-anchor-day{height:100%}.chain-day-stepper .chain-anchor-input{border:0;border-left:1px solid var(--row-alt);border-right:1px solid var(--row-alt);border-radius:0;height:100%}.chain-spent,.chain-draft{font-size:var(--fs-small);color:var(--text-2nd);margin:0;line-height:1.4}.chain-spent{margin-bottom:8px}.chain-second{align-items:center;gap:16px;margin-bottom:8px;display:flex}.chain-second .chain-draft{text-wrap:pretty;flex:1}.chain-second-spacer{flex:1}.chain-volume-control{height:var(--control-h);box-sizing:border-box;border:1px solid var(--control-border);border-radius:var(--radius-ctl);background:var(--surface);align-items:stretch;display:inline-flex;overflow:hidden}.chain-volume-off{border-color:var(--red-border)}.chain-volume-input{text-align:right;width:38px;color:var(--ink);font-family:var(--font-mono), monospace;font-size:var(--fs-table);font-variant-numeric:tabular-nums;appearance:textfield;background:0 0;border:0;padding:0 6px;font-weight:500}.chain-volume-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.chain-volume-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.chain-volume-steps{border-right:1px solid var(--hairline);flex-direction:column;width:20px;display:flex}.chain-volume-step{background:var(--surface);color:var(--text-2nd);cursor:pointer;border:0;flex:1;padding:0;font-size:6px;line-height:1}.chain-volume-step:disabled{color:var(--faint);cursor:default}.chain-volume-step+.chain-volume-step{border-top:1px solid var(--hairline)}.chain-volume-suffix{color:var(--text-2nd);font-family:var(--font-mono), monospace;font-size:var(--fs-table);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;padding:0 10px 0 2px;font-weight:500;display:flex}.stepper{height:var(--control-h-compact);border:1px solid var(--control-border);border-radius:var(--radius-ctl);display:flex;overflow:hidden}.stepper-step{width:var(--control-h);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border:0}.stepper-step:disabled{color:var(--faint);cursor:default}.chain-bar{border-radius:var(--radius-ctl);height:26px;display:flex;overflow:hidden}.chain-seg{--seg-light:var(--row-alt);flex-basis:0;align-items:center;gap:8px;min-width:0;padding:0 8px;display:flex;position:relative}.chain-seg.bar-brewing{--seg-light:var(--stage-brew-tint)}.chain-seg.bar-fermentation{--seg-light:var(--stage-ferment-tint)}.chain-seg.bar-conditioning{--seg-light:var(--stage-cond-tint)}.chain-seg-vessels{font-family:var(--font-mono), monospace;font-size:var(--fs-label);color:#fff;white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.chain-seg-days{font-size:var(--fs-label);color:var(--seg-light);white-space:nowrap;font-weight:500}.chain-tick{border-radius:var(--radius-ctl);background:var(--surface);width:15px;height:15px;color:var(--chip-hue,var(--stage-free));font-family:var(--font-mono), monospace;font-size:var(--fs-micro-sm);cursor:pointer;border:0;justify-content:center;align-items:center;padding:0;font-weight:600;display:flex;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)}.chain-tick-done{color:var(--ok)}.chain-tick:disabled{cursor:default}.chain-foot{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-mono-sm);color:var(--text-2nd);justify-content:space-between;gap:10px;margin-top:3px;font-weight:500;display:flex}.chain-superseded{font-size:var(--fs-small);color:var(--text-2nd);flex-wrap:wrap;gap:4px 14px;margin-top:4px;font-weight:500;display:flex}.bar-brewing{background:var(--stage-brew)}.bar-fermentation{background:var(--stage-ferment)}.bar-conditioning{background:var(--stage-cond)}.bar-free{background:var(--stage-free)}.segment-row{height:var(--control-h);border:1px solid var(--control-border);border-radius:var(--radius-ctl);display:flex;overflow:hidden}.segment{font-size:var(--fs-mono-sm);color:var(--text-2nd);cursor:pointer;border-left:1px solid var(--row-alt);align-items:center;padding:0 10px;font-weight:500;display:flex}.segment:first-child{border-left:0}.segment[data-selected=true],.segment-row .segment[aria-pressed=true]{background:var(--row-alt);color:var(--ink);font-weight:600}.segment input{opacity:0;pointer-events:none;position:absolute}.segment:has(input:focus-visible){outline:2px solid var(--copper);outline-offset:-2px}.leg-cards{flex-direction:column;gap:4px;display:flex}.leg-card{--leg-hue:var(--stage-free);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--leg-hue);border-radius:var(--radius-card)}.leg-card-brewing{--leg-hue:var(--stage-brew)}.leg-card-fermentation{--leg-hue:var(--stage-ferment)}.leg-card-conditioning{--leg-hue:var(--stage-cond)}.leg-head{box-sizing:border-box;border-bottom:1px solid var(--row-alt);align-items:center;gap:10px;height:36px;padding:0 12px;display:flex;overflow:hidden}.leg-title{font-size:var(--fs-body);font-weight:600}.leg-days{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-small);color:var(--text-2nd)}.leg-spacer{flex:1}.leg-dates{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-small);color:var(--faint)}.leg-split-total{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-small);color:var(--ok-text);align-items:center;gap:6px;font-weight:500;display:inline-flex}.leg-split-total:before{content:"";background:var(--ok);border-radius:50%;width:5px;height:5px}.leg-split-off{color:var(--red-text)}.leg-split-off:before{background:var(--red)}.leg-cols{gap:20px;padding:8px 12px 4px;display:flex}.leg-col{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.08em;color:var(--text-2nd);font-weight:500}.leg-rows{flex-direction:column;gap:8px;padding:0 12px 8px;display:flex}.leg-row{align-items:center;gap:20px;display:flex}.leg-col-vessel{flex:none;width:150px}.leg-col-num{flex:none;width:56px}.leg-col-offset{flex:none;width:96px}.leg-col-vol{flex:none;width:80px}.leg-col-after{flex:none;width:190px}.leg-col-brew-date{flex:none;width:110px}.leg-row-brew{align-items:flex-start}.leg-control{height:var(--control-h);box-sizing:border-box;border:1px solid var(--control-border);border-radius:var(--radius-ctl);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-table);padding:0 9px}input.leg-control{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums}.leg-readonly{height:var(--control-h);box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--canvas);color:var(--ink-soft);font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-table);white-space:nowrap;align-items:center;padding:0 9px;display:flex;overflow:hidden}.leg-brew-days{flex-direction:column;gap:4px;display:flex}.leg-brew-day{height:var(--control-h);font-size:var(--fs-table);color:var(--ink-soft);align-items:center;gap:20px;margin:0;display:flex}.leg-brew-day-date{flex:none;width:110px}.leg-brew-day-date,.leg-brew-day-litres{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums}.leg-unit{height:var(--control-h);box-sizing:border-box;border:1px solid var(--control-border);border-radius:var(--radius-ctl);background:var(--surface);align-items:center;display:flex}.leg-unit input{width:100%;min-width:0;height:calc(var(--control-h) - 2px);color:var(--ink);font:inherit;font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-table);background:0 0;border:0;padding:0 2px 0 9px}.leg-unit-suffix{font-family:var(--font-mono), monospace;font-size:var(--fs-table);color:var(--text-2nd);padding-right:9px}.leg-row-group{flex-direction:column;gap:6px;display:flex}.leg-error{margin:0 13px 6px}.leg-row-group>.leg-error{margin:0}.add-leg{height:var(--chip-h);border:1px dashed var(--control-border);border-radius:var(--radius-sm);background:var(--canvas);color:var(--copper);font:inherit;font-size:var(--fs-table);cursor:pointer;font-weight:500}.add-leg-open{align-items:flex-end;gap:12px;display:flex}.leg-card-readonly input:read-only,.leg-card-readonly select:disabled{background:var(--canvas);color:var(--text-2nd);cursor:default}.leg-recorded{font-size:var(--fs-small);color:var(--text-2nd);margin:0;padding:6px 13px 9px;line-height:1.4}.leg-question{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--copper-wash);margin:6px 10px;padding:10px 12px}.leg-question-line{font-size:var(--fs-body);color:var(--ink);margin:0 0 8px;font-weight:500}.leg-question-fields{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;display:flex}.leg-question-field{flex-direction:column;gap:3px;display:flex}.leg-question-field input,.leg-question-field select{height:var(--control-h);border:1px solid var(--control-border);border-radius:var(--radius-ctl);background:var(--surface);font:inherit;font-size:var(--fs-table);font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;padding:0 8px}.leg-question-field select{font-family:inherit}.leg-question-litres input{width:88px}.leg-question-field input[aria-invalid=true],.leg-question-field select[aria-invalid=true]{border-color:var(--red-invalid)}.leg-question-answer{height:var(--control-h)}.leg-question .leg-error{margin-top:8px}.record-refusal{grid-column:1/-1;margin:0}.plan-over{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--canvas);font-size:var(--fs-table);color:var(--text-2nd);margin:0;padding:9px 13px;line-height:1.45}.leg-card-conflict{border-top-color:var(--red-border);border-right-color:var(--red-border);border-bottom-color:var(--red-border)}.leg-card-conflict select.leg-control,.leg-control[aria-invalid=true]{border-color:var(--red-invalid)}.leg-unit:has(input[aria-invalid=true]){border-color:var(--red-invalid)}.leg-conflict{font-size:var(--fs-small);color:var(--red-text);margin:0;padding:6px 13px 9px;line-height:1.4}.board-toast{z-index:25;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:0 6px 24px oklch(from var(--ink) l c h / .14);align-items:center;gap:14px;padding:10px 12px 10px 16px;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}.board-toast-refused{border-color:var(--red-border);background:var(--red-bg)}.board-toast-text{font-size:var(--fs-body);color:var(--ink)}.board-toast-refused .board-toast-text{color:var(--red-text)}.board-toast-undo{color:var(--copper-link);font-size:var(--fs-body);cursor:pointer;background:0 0;border:0;font-weight:600}.board-toast-undo:hover{text-decoration:underline}.board-toast-close{color:var(--faint);font-size:var(--fs-heading);cursor:pointer;background:0 0;border:0;line-height:1}.chain-anchored{font-size:var(--fs-small);color:var(--text-2nd);white-space:nowrap}.chain-proposal{border:1px solid var(--border);border-left:3px solid var(--copper);border-radius:var(--radius-sm);background:var(--canvas);margin:8px 0 0;padding:8px 12px}.chain-proposal-line{font-size:var(--fs-table);color:var(--ink);margin:0;font-weight:600}.chain-proposal-conflict{font-size:var(--fs-small);color:var(--red-text);margin:4px 0 0;line-height:1.4}.chain-proposal-actions{align-items:center;gap:10px;margin-top:9px;display:flex}.chain-refusal{margin:8px 0 0}.board-toggle{align-items:center;gap:10px;display:flex}.board-switch{color:var(--ink);font:inherit;font-size:var(--fs-table);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;font-weight:500;display:inline-flex}.board-switch-track{border-radius:var(--radius-ctl);background:var(--control-border);justify-content:flex-start;align-items:center;width:32px;height:18px;padding:0 2px;display:flex}.board-switch-knob{border-radius:var(--radius-ctl);background:var(--surface);width:14px;height:14px}.board-switch[aria-checked=true] .board-switch-track{background:var(--copper);justify-content:flex-end}.board-switch:disabled{cursor:default;opacity:.55}.page-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.button-secondary:disabled{background:var(--table-fill);color:var(--faint);cursor:default}.batch-list{flex-direction:column;gap:12px;display:flex}.list-bar{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.list-search{align-items:center;gap:6px;display:flex}.list-search input{height:var(--control-h);border:1px solid var(--control-border);border-radius:var(--radius-ctl);background:var(--surface);width:210px;color:var(--ink);font:inherit;padding:0 8px}.list-note{font-size:var(--fs-small);color:var(--faint);margin:0}.chip-row a.chip{text-decoration:none}.sort-link{vertical-align:middle;color:var(--text-2nd);cursor:pointer;align-items:center;gap:4px;text-decoration:none;display:inline-flex}.sort-link:hover,.sort-active{color:var(--ink)}.sort-caret{color:var(--copper);font-size:var(--fs-label);line-height:1}.cell-check{width:36px;padding-right:0}.check-target{cursor:pointer;padding:3px;display:inline-flex}.check-target input{width:15px;height:15px;accent-color:var(--copper);cursor:pointer;margin:0}.row-selected td{background:var(--copper-wash)}.row-selected td:first-child{box-shadow:inset 2px 0 0 var(--copper)}.bulk-bar{border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--canvas);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;display:flex}.bulk-count{margin:0 4px 0 0}.bulk-number{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-weight:600}.bulk-bar .form-error{flex-basis:100%}.bulk-print,.bulk-board{display:contents}.bulk-delete{align-items:center;gap:10px;display:flex}.bulk-delete-open{flex-direction:column;flex-basis:100%;align-items:flex-start}.bulk-delete-report{margin:0}.bulk-delete-skips{color:var(--text-2nd);margin:6px 0 0;padding-left:18px}.bulk-delete-skips li{margin:2px 0}.bulk-delete-name{color:var(--ink);font-weight:600}.board-mark{vertical-align:middle;border:1px solid var(--copper);border-radius:var(--radius-ctl);width:17px;height:12px;display:inline-flex}.board-mark>span{flex:1}.board-mark>span:not(:last-child){border-right:1px solid var(--copper)}.batches-card{box-sizing:border-box;border-radius:var(--radius-card);width:930px}.batch-bulk-bar{box-sizing:border-box;width:930px}.batch-table{table-layout:fixed}.batch-table th,.batch-table td{padding:0}.batch-table thead th{height:30px;color:var(--faint)}.batch-table td{border-bottom:1px solid var(--hairline);height:36px}.batch-table tbody tr:nth-child(2n):not(.row-selected)>td{background:var(--zebra)}.batch-table .cell-check{width:48px;padding-left:14px}.batch-table .cell-number{width:96px;padding-right:14px;overflow:hidden}.batch-table td.cell-number{color:var(--text-2nd)}.batch-table .cell-name{width:264px;overflow:hidden}.batch-table .cell-name .table-link{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.batch-table .cell-style{text-overflow:ellipsis;white-space:nowrap;width:128px;overflow:hidden}.batch-table .cell-status{width:92px}.batch-table .cell-board{text-align:center;width:64px}.batch-table .cell-abv{width:58px}.batch-table .cell-vol{width:72px}.batch-table .cell-day{width:106px;padding-right:14px}.batch-table th.cell-abv,.batch-table th.cell-vol,.batch-table th.cell-day{text-align:right}.batch-table .badge{background:var(--zebra);border:1px solid var(--border);height:auto;font-size:var(--fs-label);color:var(--text-2nd);gap:0;padding:2px 7px;font-weight:500}.batch-table .badge:before{display:none}.batch-table .badge-ok{background:var(--ok-bg);color:var(--ok-text);border-color:#0000}.batch-table .badge-planned{background:var(--copper-bg);color:var(--copper-text);border-color:#0000}.batch-table .badge-discarded{background:var(--discard-bg);color:var(--discard-text);border-color:#0000}@media (pointer:coarse){.list-bar .chip,.list-search input,.list-search button,.bulk-bar button{height:40px}.batch-table td{height:56px;font-size:var(--fs-body-lg)}.check-target{margin:-11px;padding:11px}.check-target input{width:22px;height:22px}.batch-table .cell-name a{padding:6px 0;display:block}.locate-table td{height:56px;font-size:var(--fs-body-lg)}.locate-table .cell-code a{padding:6px 0;display:block}.keg-filters select,.keg-filters input,.keg-filters button{height:40px}}@media (max-width:900px){.batches-main{padding:18px 16px 22px}.list-bar .chip,.list-search input,.list-search button,.bulk-bar button{height:40px}.batches-card,.batch-bulk-bar{width:100%}.batch-table{table-layout:auto}.batch-table thead{display:none}.batch-table tbody tr{border-bottom:1px solid var(--row-alt);grid-template-columns:44px minmax(0,auto) auto auto 1fr auto;align-items:center;gap:2px 10px;min-height:56px;padding:7px 12px;display:grid}.batch-table tbody tr>td{height:auto;font-size:var(--fs-table);color:var(--text-2nd);border:0;padding:0}.batch-table .cell-check{grid-area:1/1/span 2;width:auto;padding-left:0}.batch-table .cell-number{width:auto;min-width:0;max-width:none;color:var(--text-2nd);grid-area:1/2;padding-right:0}.batch-table .cell-name{width:auto;min-width:0;font-size:var(--fs-body-lg);color:var(--ink);grid-area:1/3/auto/span 3}.batch-table .cell-status{grid-area:1/6;justify-self:end;width:auto}.batch-table .cell-style{white-space:nowrap;text-overflow:ellipsis;grid-area:2/2;width:auto;min-width:0;overflow:hidden}.batch-table .cell-abv{grid-area:2/3;width:auto}.batch-table .cell-vol{grid-area:2/4;width:auto}.batch-table .cell-day{grid-area:2/5;justify-self:start;width:auto;padding-right:0}.batch-table .cell-board{grid-area:2/6;justify-self:end;width:auto}.batch-table .cell-name a{padding:3px 0;display:block}.locate-main{padding:18px 16px 22px}.locate-table thead{display:none}.locate-table tbody tr{border-bottom:1px solid var(--row-alt);grid-template-columns:44px minmax(0,auto) 1fr auto;align-items:center;gap:2px 10px;min-height:56px;padding:7px 12px;display:grid}.locate-table tbody tr>td{height:auto;font-size:var(--fs-table);color:var(--text-2nd);border:0;padding:0}.locate-table .cell-check{grid-area:1/1/span 2;width:auto}.locate-table .cell-code{font-size:var(--fs-body-lg);color:var(--ink);grid-area:1/2}.locate-table .cell-contents{white-space:nowrap;text-overflow:ellipsis;grid-area:1/3;min-width:0;overflow:hidden}.locate-table .cell-place{color:var(--ink);grid-area:1/4;justify-self:end}.locate-table .cell-status{grid-area:2/2/auto/span 2}.locate-table .cell-seen{grid-area:2/3;justify-self:end}.locate-table .cell-vol{grid-area:2/4;justify-self:end}.locate-table .cell-code a{padding:3px 0;display:block}}.record-error{flex-basis:100%}.record-log{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:1px;display:flex;overflow:hidden}.record-row,.history-row{background:var(--surface);grid-template-columns:1fr auto auto 64px;align-items:center;gap:12px;min-height:36px;padding:0 13px;display:grid}.record-row-void,.history-row-void{background:var(--table-fill);color:var(--text-2nd);text-decoration:line-through;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint)}.record-sentence{font-size:var(--fs-body)}.record-mono{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-table);font-weight:500}.batch-acts{flex-direction:column;gap:16px;display:flex}.batch-acts-summary{font-size:var(--fs-body);color:var(--text-2nd)}.batch-acts-doors{align-items:end}.batch-acts-log{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:1px;display:flex;overflow:hidden}.fleet-main{max-width:980px;padding:22px var(--gutter) var(--gutter);gap:var(--section-gap);flex-direction:column;margin:0 auto;display:flex}.view-strip{margin-top:calc(14px - var(--section-gap))}.view-tabs{border-bottom:1px solid var(--border);gap:26px;padding-bottom:1px;display:flex;overflow-x:auto}.view-tab{color:var(--ink-soft);font-size:var(--fs-body);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:0 0 10px;font-weight:500;text-decoration:none}.view-tab:hover{color:var(--ink)}.view-tab[aria-current=page]{color:var(--ink);border-bottom-color:var(--copper);font-weight:600}.view-desc{color:var(--text-2nd);max-width:72ch;margin:12px 0 0}.page-note{color:var(--text-2nd);max-width:74ch;margin:0}.cell-code{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-table);font-weight:500}.record-faint{color:var(--text-2nd)}.record-day,.record-by{font-size:var(--fs-small);color:var(--text-2nd)}.record-day{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums}.status-word{align-items:center;gap:8px;display:inline-flex}.status-swatch{border-radius:var(--radius-ctl);border:1px solid var(--border);width:12px;height:12px}.tag{border:1px solid var(--border);border-radius:var(--radius-ctl);font-size:var(--fs-micro);letter-spacing:.07em;text-transform:uppercase;color:var(--text-2nd);margin-left:8px;padding:1px 6px;font-weight:500}.field-hint{font-size:var(--fs-mono-sm);color:var(--faint)}.field-check{height:var(--control-h);font-size:var(--fs-table);flex-direction:row;align-items:center;gap:7px}button.segment{border-style:solid;border-width:0 0 0 1px;border-color:var(--row-alt);background:0 0}.segment[aria-pressed=true]{background:var(--row-alt);color:var(--ink);font-weight:600}.connection-state{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.connection-guide{flex-direction:column;gap:10px;display:flex}.guide-list{font-size:var(--fs-body);flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.guide-path{color:var(--text-2nd)}.guide-code{font-family:var(--font-mono), monospace;font-size:var(--fs-table);border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--table-fill);padding:1px 4px}.cell-pick{width:84px}.cell-pick input[type=checkbox]{width:16px;height:16px;accent-color:var(--copper)}.picker-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.pager{gap:8px;margin-top:12px;display:flex}.import-shell{flex-direction:column;gap:12px;max-width:930px;display:flex}.sync-row{box-sizing:border-box;background:var(--surface);border:1px solid var(--control-border);border-radius:var(--radius-sm);align-items:center;gap:10px;width:930px;max-width:100%;height:52px;padding:0 14px;display:flex}.sync-label{font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:500}.segmented{display:inline-flex}.segmented .segment{min-width:34px;height:var(--control-h-compact);border:1px solid var(--control-border);background:var(--surface);color:var(--ink);font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-table);cursor:pointer;padding:0 9px}.segmented .segment+.segment{border-left:none}.segmented .segment:first-child{border-radius:var(--radius-ctl) 0 0 var(--radius-ctl)}.segmented .segment:last-child{border-radius:0 var(--radius-ctl) var(--radius-ctl) 0}.segmented .segment[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}.sync-most-recent{font-size:var(--fs-table);color:var(--faint)}.sync-divider{background:var(--row-alt);width:1px;height:24px}.sync-status{font-size:var(--fs-table);color:var(--text-2nd)}.sync-status .mono{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums}.sync-button{margin-left:auto}.sync-error{align-items:center;gap:12px;display:flex}.import-frame{width:930px;max-width:100%}.import-table{table-layout:fixed;width:100%}.import-table th,.import-table td{padding:0 14px}.import-table .cell-pick{width:34px}.cell-code{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-small);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.import-table .name-cell{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.import-table th.num-head{text-align:right}.col-sort{cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--text-2nd);background:0 0;border:0;align-items:center;gap:4px;margin:0;padding:0;display:inline-flex}.col-sort[aria-pressed=true]{color:var(--ink)}.col-sort-mark{color:var(--copper)}.pick-dot{color:var(--faint);font-family:var(--font-mono), monospace}.row-picked td{background:var(--copper-wash);box-shadow:inset 2px 0 0 var(--copper)}.import-foot{box-sizing:border-box;width:930px;max-width:100%}.import-foot .form-hint{max-width:64ch}.import-foot-actions{align-items:center;gap:12px;display:flex}.selected-count{font-size:var(--fs-table);color:var(--text-2nd)}.selected-n{font-family:var(--font-mono), monospace;color:var(--ink);font-weight:500}.keg-flags{gap:4px;margin-left:8px;display:inline-flex}.badge-alert{background:var(--red-bg);color:var(--red-text)}.badge-alert:before{background:var(--red)}.origin-flag{margin-left:8px}.keg-filters{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);margin-bottom:16px;padding:12px 16px}.field-narrow input{width:88px}.keg-filters-foot{align-items:center;gap:12px;display:flex}.keg-doors{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.keg-doors .form-card{max-width:320px;padding:var(--card-pad);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);flex:280px}.badge-filled{background:var(--filled-bg);color:var(--ok-text)}.badge-filled:before{background:var(--ok)}.chain-prompt{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--copper-wash);margin:0;padding:10px 12px 12px}.chain-legend{font-size:var(--fs-micro);letter-spacing:.11em;text-transform:uppercase;color:var(--copper-link);padding:0 4px;font-weight:600}.chain-question{font-size:var(--fs-body);margin:0 0 8px}.chain-choice{font-size:var(--fs-body);align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.chain-prompt .field{margin-top:10px}.packaging{flex-direction:column;gap:16px;display:flex}.packaging .facts-strip{margin:0}.packaging-runs{flex-direction:column;gap:16px;display:flex}.packaging-run{padding:var(--card-pad);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}.run-head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.run-head .card-heading{margin:0}.run-head .record-by{margin-left:auto}.fill-form,.lot-form{border-top:1px dotted var(--border);margin-top:12px;padding-top:12px}.draw-form-title{font-size:var(--fs-micro);letter-spacing:.11em;text-transform:uppercase;color:var(--text-2nd);margin:0 0 8px;font-weight:600}.run-trace{border-top:1px dotted var(--border);flex-direction:column;gap:12px;margin-top:12px;padding-top:12px;display:flex}.run-trace-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.run-trace-group{flex-direction:column;gap:6px;display:flex}.supplier-refs{margin-top:16px}.form-warning{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--copper-wash);font-size:var(--fs-table);color:var(--copper-link);margin-top:8px;padding:8px 12px}.locate-main{max-width:1180px;padding:22px var(--gutter) var(--gutter);gap:var(--section-gap);flex-direction:column;margin:0 auto;display:flex}.locate-main .list-bar{flex-direction:column;align-items:stretch;gap:12px;display:flex}.locate-main .keg-filters{flex-wrap:wrap;margin-bottom:0}.locate-table .cell-code{white-space:nowrap}.keg-overlay{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);width:min(920px,100vw - 48px);max-height:calc(100vh - 64px);color:var(--ink);box-shadow:0 12px 32px oklch(from var(--ink) l c h / .18);padding:0;overflow-y:auto}.keg-overlay::backdrop{background:oklch(from var(--ink) l c h / .34)}.keg-overlay-frame{flex-direction:column;gap:20px;padding:0 24px 24px;display:flex}.keg-overlay-head{z-index:1;border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:flex-end;gap:16px;padding:20px 0 12px;display:flex;position:sticky;top:0}.keg-overlay-head .page-title{font-size:var(--fs-title-sm);letter-spacing:-.01em}.keg-overlay-actions{align-items:center;gap:12px;display:flex}.bulk-sheet{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);width:min(440px,100vw - 48px);max-height:calc(100vh - 64px);color:var(--ink);box-shadow:0 12px 32px oklch(from var(--ink) l c h / .18);padding:0;overflow-y:auto}.bulk-sheet::backdrop{background:oklch(from var(--ink) l c h / .34)}.bulk-sheet-frame{flex-direction:column;gap:16px;padding:20px 24px 24px;display:flex}.bulk-sheet-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.bulk-sheet-head .page-title{font-size:var(--fs-stat);letter-spacing:-.01em}.bulk-sheet .segment-row{align-self:flex-start}.form-hint-chain{border-radius:var(--radius-sm);background:var(--copper-wash);color:var(--copper-link);padding:8px 10px}@media (pointer:coarse){.bulk-sheet select,.bulk-sheet input{height:40px}}.panel{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);overflow:hidden}.panel-head{background:var(--table-fill);border-bottom:1px solid var(--border);height:30px;font-size:var(--fs-micro);letter-spacing:.11em;text-transform:uppercase;color:var(--ink);justify-content:space-between;align-items:center;gap:12px;padding:0 14px;font-weight:600;display:flex}.panel-note{font-size:var(--fs-label);letter-spacing:normal;text-transform:none;color:var(--text-2nd);font-weight:400}.agg-columns{grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:16px;display:grid}.mix-bar{border-radius:var(--radius-ctl);gap:2px;height:14px;display:flex;overflow:hidden}.mix-bar>span{min-width:2px}.place-acc{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);overflow:hidden}.place-cols{grid-template-columns:minmax(200px,1fr) 64px minmax(140px,1.2fr) 110px;align-items:center;gap:12px;padding:0 14px;display:grid}.place-head{background:var(--table-fill);border-bottom:1px solid var(--border);height:29px;font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-2nd);font-weight:500}.place-head .cell-num{font-family:var(--font-ui), sans-serif;font-size:var(--fs-micro)}.place-acc details:not(:last-child){border-bottom:1px solid var(--row-alt)}summary.place-row{cursor:pointer;min-height:40px;font-size:var(--fs-table);list-style:none}summary.place-row::-webkit-details-marker{display:none}.place-name{align-items:center;gap:8px;font-weight:600;display:flex}.place-name:before{content:"▸";font-size:var(--fs-label);color:var(--faint);font-weight:400}details[open]>summary .place-name:before{content:"▾";color:var(--copper-link)}details[open]>summary.place-row{background:var(--copper-wash);box-shadow:inset 2px 0 0 var(--copper)}.place-kind{font-size:var(--fs-label);color:var(--text-2nd);font-weight:400}.place-alert .place-name,.place-alert .cell-num{color:var(--red-text)}.place-open{border-top:1px solid var(--row-alt);flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 14px 14px 33px;display:flex}.place-open .button-link{font-size:var(--fs-table);margin-left:auto}.place-open .chip{border-color:var(--control-border);background:var(--surface);color:var(--ink)}.place-open .chip.chip-alert{border-color:var(--red-border);color:var(--red-text)}.matrix-table tbody th,.matrix-table tfoot th{border-bottom:1px solid var(--row-alt);height:36px;font-size:var(--fs-table);letter-spacing:normal;text-transform:none;color:var(--ink);background:0 0;font-weight:400}.matrix-table tbody th .place-kind{margin-left:6px}.matrix-table .cell-alert a{color:var(--red-text)}.matrix-table .matrix-alert th,.matrix-table .matrix-alert td{background:var(--red-wash)}.matrix-table .matrix-alert th{color:var(--red-text);font-weight:500}.matrix-table .matrix-all th,.matrix-table .matrix-all td{background:var(--table-fill);border-bottom:0;border-top:1px solid var(--border);height:38px;font-weight:600}.series-rows{flex-direction:column;padding:6px 0;display:flex}.series-cols{min-height:30px;font-size:var(--fs-small);grid-template-columns:78px minmax(0,1fr) 44px;align-items:center;gap:9px;padding:0 14px;display:grid}summary.series-row{cursor:pointer;list-style:none}summary.series-row::-webkit-details-marker{display:none}details[open]>summary.series-row{background:var(--copper-wash)}.series-bar-free{border-radius:var(--radius-ctl);border:1px dashed var(--control-border);height:14px}.series-free{text-align:right;font-size:var(--fs-mono-sm);color:var(--faint)}.series-open{border-bottom:1px solid var(--row-alt);flex-direction:column;gap:9px;padding:10px 14px 12px;display:flex}.series-open .button-link{font-size:var(--fs-table)}.series-cells{flex-wrap:wrap;gap:4px;display:flex}.series-cell{border-radius:var(--radius-ctl);width:34px;height:26px;font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-small);color:var(--ink);justify-content:center;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}a.series-cell:hover{outline:1px solid var(--copper)}.series-cell-free{background:var(--surface);border:1px dashed var(--control-border);color:var(--faint);font-weight:400}.series-cell-retired{opacity:.55;text-decoration:line-through}.series-legend{border-top:1px solid var(--row-alt);font-size:var(--fs-small);color:var(--text-2nd);flex-wrap:wrap;gap:6px 11px;padding:10px 14px 12px;display:flex}.series-legend>span{align-items:center;gap:5px;display:inline-flex}.legend-swatch{border-radius:var(--radius-ctl);width:9px;height:9px}.legend-free{background:var(--surface);border:1px dashed var(--control-border)}.otp-reveal{border:1px solid var(--copper);background:var(--copper-wash);border-radius:var(--radius-sm);flex-direction:column;gap:4px;padding:12px 14px;display:flex}.otp-reveal-label{font-size:var(--fs-micro);letter-spacing:.09em;text-transform:uppercase;color:var(--copper-link);font-weight:600}.otp-reveal-code{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-stat);letter-spacing:.04em;color:var(--ink);-webkit-user-select:all;user-select:all;font-weight:600}.otp-reveal-hint{font-size:var(--fs-mono-sm);color:var(--text-2nd)}.badge-otp{color:var(--copper-link)}.badge-otp:before{background:var(--copper)}@media (max-width:900px){.agg-columns{grid-template-columns:minmax(0,1fr)}.place-cols{grid-template-columns:minmax(140px,1fr) 52px minmax(90px,1fr) 92px}}@media (pointer:coarse){summary.place-row{min-height:56px}summary.series-row{min-height:var(--touch)}.series-cell{width:var(--touch);height:40px}}.trace-main{max-width:980px;padding:22px var(--gutter) var(--gutter);gap:var(--section-gap);flex-direction:column;margin:0 auto;display:flex}.trace-lookup{align-items:flex-end;gap:12px;display:flex}.trace-results{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.trace-result{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);color:var(--ink);grid-template-columns:120px 1fr auto auto;align-items:center;gap:14px;padding:10px 14px;text-decoration:none;display:grid}.trace-result:hover{border-color:var(--control-border)}.trace-result-code{font-size:var(--fs-table);color:var(--copper-link);font-weight:500}.trace-result-name{font-size:var(--fs-body)}.trace-result-day{font-size:var(--fs-small);color:var(--text-2nd)}.trace-head-actions{align-items:center;gap:12px;display:flex}.trace-units{flex-direction:column;gap:18px;display:flex}.trace-lots{flex-direction:column;gap:8px;display:flex}.trace-neighbours{flex-direction:column;gap:10px;display:flex}.trace-neighbour{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.trace-neighbour-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.trace-neighbour-vessel{font-size:var(--fs-body);font-weight:500}.trace-neighbour-sides{font-size:var(--fs-table);flex-direction:column;gap:4px;display:flex}.trace-neighbour-link{color:var(--copper-link);text-decoration:none}.trace-neighbour-link:hover{text-decoration:underline}.locate-trace-link{margin-top:6px;display:inline-block}.recall-sheet{max-width:780px;padding:22px var(--gutter) var(--gutter);color:var(--ink);flex-direction:column;gap:22px;margin:0 auto;display:flex}.recall-actions{justify-content:flex-end;align-items:center;gap:12px;display:flex}.recall-head{border-bottom:2px solid var(--ink);padding-bottom:14px}.recall-kicker{font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2nd);margin:0}.recall-title{font-size:var(--fs-title);margin:4px 0 2px;font-weight:700}.recall-lcode{font-size:var(--fs-heading);color:var(--copper-link);margin:0 0 12px;font-weight:500}.recall-facts{grid-template-columns:repeat(3,1fr);gap:10px 24px;margin:0;display:grid}.recall-facts dt{font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--text-2nd)}.recall-facts dd{font-size:var(--fs-body);margin:2px 0 0}.recall-section{flex-direction:column;gap:8px;display:flex}.recall-section h2{font-size:var(--fs-heading);border-bottom:1px solid var(--border);margin:0;padding-bottom:4px;font-weight:600}.recall-refs{font-size:var(--fs-table);flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.recall-empty{font-size:var(--fs-table);color:var(--text-2nd);margin:0}.recall-foot{border-top:1px solid var(--border);font-size:var(--fs-label);margin-top:8px;padding-top:10px}@media print{.topbar,.print-hide{display:none}.trace-main{padding:0}.recall-sheet{gap:18px;max-width:none;padding:0}.recall-head{border-bottom-color:#000}}.reports-main{max-width:980px;padding:22px var(--gutter) var(--gutter);flex-direction:column;gap:20px;margin:0 auto;display:flex}.declaration-pager{justify-content:space-between;align-items:center;gap:12px;display:flex}.declaration-month{font-size:var(--fs-heading);font-weight:600}.button-ghost.is-disabled{opacity:.4;pointer-events:none}.declaration-controls{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.declaration-status{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.declaration-note{font-size:var(--fs-table);color:var(--text-2nd);max-width:68ch;margin:0}.declaration-drift{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--copper-wash);font-size:var(--fs-table);color:var(--copper-link);margin:0;padding:8px 12px}.declaration-table th[scope=row]{text-align:right;color:var(--ink);font-weight:600}.declaration-totals>td,.declaration-totals>th{border-top:1px solid var(--border);border-bottom:0;font-weight:600}.declaration-gap{color:var(--red-text);font-size:var(--fs-mono-sm)}.declaration-incomplete{color:var(--red-text);font-weight:500}.declaration-export{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.report-pager{justify-content:space-between;align-items:center;gap:12px;display:flex}.report-year{font-size:var(--fs-heading);font-weight:600}.report-beers{flex-wrap:wrap;gap:6px;display:flex}.report-beer-chip{font-size:var(--fs-table);color:var(--text-2nd);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);padding:4px 10px;text-decoration:none}.report-beer-chip:hover{color:var(--ink)}.report-beer-chip[aria-current=true]{color:var(--ink);border-color:var(--ink);font-weight:600}.report-heading{font-size:var(--fs-heading);margin:0 0 4px;font-weight:600}.report-note{font-size:var(--fs-table);color:var(--text-2nd);max-width:72ch;margin:0}.report-export{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.production-designed{color:var(--text-2nd);font-weight:400;font-size:var(--fs-label)}.production-table th[scope=row]{text-align:left;color:var(--ink);font-weight:600}.production-totals>td,.production-totals>th{border-top:1px solid var(--border);border-bottom:0;font-weight:600}.production-gap>td,.production-gap>th{color:var(--text-2nd);font-size:var(--fs-table);border-bottom:0}.loss-table th[scope=row]{text-align:right;color:var(--ink);font-weight:600}.loss-average>td,.loss-average>th{border-top:1px solid var(--border);border-bottom:0;font-weight:600}.turnaround-half{flex-direction:column;gap:12px;display:flex}.cycle-stat{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;gap:10px;padding:16px 18px;display:flex}.cycle-figure{align-items:baseline;gap:10px;display:flex}.cycle-number{font-size:var(--fs-title);letter-spacing:-.02em;font-weight:700}.cycle-label{font-size:var(--fs-body);color:var(--text-2nd)}.cycle-excluded{font-size:var(--fs-table);color:var(--text-2nd);margin:0}.cell-actions{text-align:right;white-space:nowrap;width:1%}.row-sealed>td{color:var(--text-2nd)}.row-sealed>td:first-child{text-decoration:line-through;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint)}.sealed-mark,.brewery-name-cell{align-items:center;gap:8px;display:inline-flex}.brewery-training-detail{font-size:var(--fs-small);color:var(--text-2nd);margin-top:2px;display:block}.data-table-frame-unclipped{overflow:visible}.data-table-frame-unclipped .data-table th:first-child{border-top-left-radius:3px}.data-table-frame-unclipped .data-table th:last-child{border-top-right-radius:3px}.admin-delete{position:relative}.admin-delete-toggle{cursor:pointer;font-size:var(--fs-small);color:var(--red-text);font-weight:600;list-style:none;display:inline-block}.admin-delete-toggle::-webkit-details-marker{display:none}.admin-delete-panel{z-index:10;background:var(--surface);border:1px solid var(--red-border);border-radius:var(--radius-sm);width:340px;box-shadow:0 4px 16px oklch(from var(--ink) l c h / .18);text-align:left;white-space:normal;flex-direction:column;gap:12px;padding:14px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.admin-delete-blast{font-size:var(--fs-table);color:var(--ink);margin:0;line-height:1.5}.admin-delete-form{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.admin-delete-form .field,.admin-delete-form .field input{width:100%}.admin-undo{flex-direction:column;align-items:flex-end;gap:6px;display:inline-flex}.training-end{background:var(--surface);border:1px solid var(--red-border);border-radius:var(--radius-sm);padding:var(--card-pad)}.training-end-toggle{cursor:pointer;font-size:var(--fs-body);color:var(--red-text);font-weight:600;list-style:none}.training-end-toggle::-webkit-details-marker{display:none}.training-end-panel{flex-direction:column;align-items:flex-start;gap:12px;margin-top:12px;display:flex}.training-end-blast{font-size:var(--fs-table);color:var(--ink);margin:0;line-height:1.5}.event-form{border:1px solid var(--control-border);border-radius:var(--radius-card);background:var(--surface);width:470px;color:var(--ink);box-shadow:0 18px 40px oklch(from var(--chrome-bg) l c h / .22);margin:auto;padding:0}.event-form::backdrop{background:oklch(from var(--chrome-bg) l c h / .34)}.event-form-head{height:var(--touch);border-bottom:1px solid var(--hairline);align-items:center;gap:10px;padding:0 16px;display:flex}.event-form-stage{background:var(--chip-hue,var(--stage-free));border-radius:1px;flex:none;width:3px;height:16px}.event-form-title{font-size:var(--fs-heading);color:var(--ink);font-weight:600}.event-form-home{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-small);color:var(--faint)}.event-form-close{color:var(--faint);font-family:var(--font-mono), monospace;font-size:var(--fs-small);cursor:pointer;background:0 0;border:0;margin-left:auto;line-height:1}.event-form-body{flex-direction:column;gap:13px;padding:14px 16px 16px;display:flex}.event-form-type-row{align-items:flex-end;gap:10px;display:flex}.event-form-type-row .field{flex:1}.event-form-symbol{width:var(--control-h);height:var(--control-h);border:1px solid var(--control-border);border-radius:var(--radius-ctl);background:var(--zebra);font-family:var(--font-mono), monospace;font-size:var(--fs-body);color:var(--text-2nd);flex:none;justify-content:center;align-items:center;display:flex}.event-form-type{box-sizing:border-box;height:var(--control-h);border:1px solid var(--control-border);border-radius:var(--radius-ctl);background:var(--zebra);font-size:var(--fs-table);color:var(--ink-soft);align-items:center;padding:0 9px;display:flex}.event-form-sentence{font-size:var(--fs-body);color:var(--ink);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.event-form-num{box-sizing:border-box;width:56px;height:var(--control-h);border:1px solid var(--control-border);border-radius:var(--radius-ctl);background:var(--surface);color:var(--ink);font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-table);padding:0 9px}.event-form-date{box-sizing:border-box;height:var(--control-h);border:1px solid var(--hairline);border-radius:var(--radius-ctl);background:var(--zebra);font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-table);color:var(--ink-soft);align-items:center;padding:0 9px;display:inline-flex}.event-form-hint{font-size:var(--fs-small);color:var(--text-2nd);margin:0;line-height:1.45}.event-form-day{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums}.event-form-fact{color:var(--ink);margin:0;font-weight:600}.event-form-none{font-size:var(--fs-small);color:var(--text-2nd)}.event-form-error{font-size:var(--fs-small);color:var(--red-text);margin:0;padding:0 16px 10px}.event-form-foot{border-top:1px solid var(--hairline);border-radius:0 0 var(--radius-card) var(--radius-card);background:var(--zebra);align-items:center;gap:10px;padding:11px 16px;display:flex}.event-form-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.event-form-save{height:var(--control-h);border-radius:var(--radius-ctl);background:var(--copper);color:#fff;font:inherit;font-size:var(--fs-table);cursor:pointer;border:0;padding:0 14px;font-weight:600}.event-form-save:hover{background:var(--copper-link)}.event-form-record,.event-form-cancel{height:var(--control-h);border:1px solid var(--control-border);border-radius:var(--radius-ctl);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-table);cursor:pointer;padding:0 13px}.event-form-save:disabled,.event-form-record:disabled{opacity:.5;cursor:default}.leg-events{border-top:1px solid var(--row-alt);border-radius:0 0 calc(var(--radius-card) - 1px) calc(var(--radius-card) - 1px);background:var(--table-fill);padding:5px 13px 6px}.leg-events-wrapped{padding:9px 13px 10px}.leg-events-label{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.08em;color:var(--text-2nd);margin-bottom:4px;font-weight:500;display:block}.leg-events-chips{flex-wrap:wrap;gap:5px;display:flex}.event-chip{--chip-hue:var(--stage-free);border:1px solid var(--border);border-left:3px solid var(--chip-hue);border-radius:var(--radius-ctl);background:var(--surface);height:24px;font:inherit;cursor:pointer;align-items:center;gap:7px;padding:0 9px;display:inline-flex}.event-chip:disabled{cursor:default;background:var(--canvas)}.event-chip-brewing{--chip-hue:var(--stage-brew)}.event-chip-fermentation{--chip-hue:var(--stage-ferment)}.event-chip-conditioning{--chip-hue:var(--stage-cond)}.event-chip-symbol{font-family:var(--font-mono), monospace;font-size:var(--fs-label);color:var(--chip-hue)}.event-chip-done .event-chip-symbol{color:var(--ok)}.event-chip-name{font-size:var(--fs-mono-sm);color:var(--ink);font-weight:500}.event-chip-tag{font-size:var(--fs-mono-sm);color:var(--text-2nd)}.event-chip-meta{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-label);color:var(--text-2nd)}.event-chip-add{border:1px dashed var(--control-border);color:var(--copper);font-size:var(--fs-mono-sm);font-weight:500}
