:root{--bg:#f6f3ee;--surface:#fff;--surface-2:#f0ebe3;--border:#e2dace;--text:#221c15;--muted:#7a6f62;--brand:#c98a1b;--brand-ink:#fff;--primary:#1c7ed6;--danger:#e03131;--topbar:#1f1a14;--topbar-text:#f3ead9;--radius:10px;--shadow:0 1px 2px #0000000f, 0 2px 8px #0000000a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#15120e;--surface:#1f1b16;--surface-2:#2a251e;--border:#3a3329;--text:#efe7da;--muted:#a39683;--topbar:#0e0c09;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:var(--primary)}h1,h2,h3{margin:0;line-height:1.2}h2{margin-bottom:.75rem;font-size:1.05rem}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:ui-monospace,Cascadia Mono,Menlo,monospace}.pre{white-space:pre-wrap}.danger{color:var(--danger)!important}.topbar{background:var(--topbar);color:var(--topbar-text);z-index:10;flex-wrap:wrap;align-items:center;gap:1rem;padding:.5rem 1rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.5rem;font-weight:700;display:flex}.nav{scrollbar-width:none;flex:1;gap:.25rem;min-width:0;display:flex;overflow-x:auto}.nav a{color:var(--topbar-text);white-space:nowrap;opacity:.8;border-radius:6px;padding:.4rem .7rem;text-decoration:none}.nav a:hover{opacity:1;background:#ffffff14}.nav a.active{opacity:1;background:var(--brand);color:var(--brand-ink)}.user{align-items:center;gap:.75rem;font-size:.9rem;display:flex}.user-link{color:var(--topbar-text);text-decoration:none}.user .muted{color:#b8a88f}.content{flex-direction:column;gap:1rem;max-width:1280px;margin:0 auto;padding:1.25rem 1rem 3rem;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.page-header h1{font-size:1.5rem}.page-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.section-title{margin:.5rem 0 .75rem}.two-col{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:start;gap:1rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.card-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.empty{text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius);padding:1.5rem}.inactive{opacity:.6}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:.35rem;padding:.5rem .9rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:#1971c2}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:#c92a2a}.btn-sm{padding:.3rem .6rem;font-size:.85rem}.btn-block{width:100%}.btn-link{background:0 0;border:none;justify-content:flex-start;padding:0;text-decoration:underline}.icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0 .25rem;font-size:1.5rem;line-height:1}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:0;padding:.5rem .6rem}input[type=checkbox],input[type=radio]{width:1.1rem;height:1.1rem;accent-color:var(--primary)}input[type=color]{height:2.4rem;padding:.15rem}.inline-select{padding:.25rem .4rem}.segmented{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{font:inherit;background:var(--surface);color:var(--text);cursor:pointer;border:none;padding:.45rem .9rem}.segmented button+button{border-left:1px solid var(--border)}.segmented button.on{background:var(--brand);color:var(--brand-ink)}.pill{background:var(--surface-2);border-radius:999px;margin-left:.35rem;padding:.1rem .5rem;font-size:.75rem;display:inline-block}.badge{color:#fff;background:var(--c);white-space:nowrap;border-radius:999px;padding:.15rem .6rem;font-size:.8rem;font-weight:600;display:inline-block}.badge-lg{padding:.25rem .8rem;font-size:1rem}.error-banner{background:color-mix(in srgb, var(--danger) 12%, var(--surface));color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 35%, transparent);border-radius:8px;padding:.6rem .8rem}.flash{background:color-mix(in srgb, #2f9e44 14%, var(--surface));border:1px solid #2f9e4466;border-radius:8px;padding:.6rem .8rem}.form{flex-direction:column;gap:.85rem;display:flex}.field{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.field-label{font-size:.85rem;font-weight:600}.field-hint{color:var(--muted);font-size:.8rem}.row{flex-wrap:wrap;gap:.75rem;display:flex}.row>.field{min-width:140px}.form-actions{justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.check{align-items:center;gap:.5rem;display:flex}.checks{border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.4rem;padding:.6rem .8rem;display:grid}.checks legend{font-size:.85rem;font-weight:600}.checks label{align-items:center;gap:.4rem;display:flex}.modal-backdrop{z-index:50;background:#00000073;justify-content:center;align-items:flex-start;padding:5vh 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:14px;width:100%;max-width:520px;padding:1.1rem 1.25rem 1.25rem;box-shadow:0 20px 50px #0000004d}.modal-wide{max-width:720px}.modal-head{justify-content:space-between;align-items:center;margin-bottom:.9rem;display:flex}.modal-head h2{margin:0;font-size:1.15rem}.confirm-text{color:var(--danger);margin:0;font-weight:500}.choice-list{flex-direction:column;gap:.4rem;max-height:45vh;display:flex;overflow-y:auto}.choice{border:1px solid var(--border);cursor:pointer;border-radius:8px;grid-template-columns:auto 1fr;align-items:center;column-gap:.6rem;padding:.6rem .8rem;display:grid}.choice input{grid-row:span 2}.choice.selected{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, var(--surface))}.choice-title{font-weight:600}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.93rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.55rem .75rem}.table td.pre{white-space:pre-wrap}.table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.78rem;font-weight:600}.table tr:last-child td{border-bottom:none}.table .num{text-align:right}.row-link{cursor:pointer}.row-link:hover{background:var(--surface-2)}.filters{flex-wrap:wrap;gap:.5rem;display:flex}.filters input[type=search]{flex:1;min-width:180px}.activity{flex-direction:column;gap:.5rem;margin:0;padding:0;font-size:.93rem;list-style:none;display:flex}.details{grid-template-columns:max-content 1fr;gap:.45rem 1rem;margin:0;display:grid}.details dt{color:var(--muted)}.details dd{overflow-wrap:anywhere;margin:0}.role-help{margin:0;padding-left:1.2rem}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-left:5px solid var(--c);border-radius:var(--radius);color:var(--text);box-shadow:var(--shadow);flex-direction:column;padding:.8rem 1rem;text-decoration:none;display:flex}.stat:hover{background:var(--surface-2)}.stat-value{font-size:2rem;font-weight:700}.stat-label{color:var(--muted);font-size:.9rem}.keg-title{align-items:center;gap:.75rem;display:inline-flex}.action-grid{flex-direction:column;gap:.6rem;display:flex}.action-btn{justify-content:flex-start;padding:.9rem 1rem;font-size:1.05rem}.action-primary{background:var(--primary);border-color:var(--primary);color:#fff;padding:1.1rem 1rem;font-size:1.2rem}.action-primary:hover{background:#1971c2}.action-confirm{border-color:color-mix(in srgb, var(--danger) 50%, transparent);color:var(--danger)}.tank-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem;display:grid}.tank-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:.45rem;padding:.9rem 1rem;display:flex}.tank-head{justify-content:space-between;align-items:baseline;display:flex}.tank-name{font-size:1.1rem;font-weight:700}.tank-type{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}.tank-beer{font-size:1.15rem;font-weight:600}.tank-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.88rem;display:flex}.tank-volume{font-size:.9rem}.status{color:#fff;background:#868e96;border-radius:999px;padding:.1rem .5rem;font-size:.78rem;font-weight:600}.status-brewing{background:#e8590c}.status-fermenting{background:#f59f00}.status-conditioning{background:#1098ad}.status-ready{background:#2f9e44}.status-packaging{background:#1c7ed6}.fill-bar{background:var(--surface-2);border-radius:999px;height:10px;overflow:hidden}.fill-bar-inner{background:linear-gradient(90deg,#e2a52b,#c98a1b);border-radius:999px;height:100%;transition:width .6s}.product-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem;display:grid}.product-card{padding:0;display:flex;overflow:hidden}.product-swatch{flex-shrink:0;width:10px}.product-body{flex-direction:column;align-items:flex-start;gap:.4rem;padding:.9rem 1rem;display:flex}.product-body p{margin:0}.servings{flex-wrap:wrap;gap:.3rem;display:flex}.servings .pill{margin:0}.report-group+.report-group{margin-top:1rem}.report-group h3{margin-bottom:.4rem;font-size:1rem}.variant{background:var(--surface-2);border-left:4px solid;border-radius:8px;flex-direction:column;align-self:stretch;align-items:flex-start;gap:.35rem;padding:.6rem .75rem;display:flex}.variant h3{font-size:1rem}.servings-editor{border:1px solid var(--border);border-radius:8px;flex-direction:column;align-items:flex-start;gap:.5rem;padding:.6rem .8rem;display:flex}.servings-editor legend{font-size:.85rem;font-weight:600}.serving-row{grid-template-columns:2fr 1.5fr 1fr auto;gap:.5rem;width:100%;display:grid}.display-link{flex-direction:column;gap:.3rem;margin-bottom:.9rem;display:flex}.copy-row{gap:.5rem;display:flex}.copy-row input{flex:1}.login-page{background:radial-gradient(circle at 30% 20%,#3a2d1c,#15120e 70%);place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{background:var(--surface);border-radius:16px;width:100%;max-width:360px;padding:1.75rem;box-shadow:0 20px 50px #0006}.login-brand{align-items:center;gap:.6rem;margin-bottom:.5rem;display:flex}.tv{color:#f3ead9;--surface:#1c1813;--surface-2:#2c261e;--border:#3a3329;--text:#f3ead9;--muted:#a39683;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0f0d0a;flex-direction:column;gap:2vh;min-height:100vh;padding:2vh 2.5vw;display:flex}.tv-head{justify-content:space-between;align-items:baseline;font-size:clamp(1rem,2.2vw,2.4rem);display:flex}.tv-head h1{color:#e2a52b;font-size:clamp(1.6rem,3.4vw,4rem)}.tv-error{background:#5c1a1a;border-radius:10px;padding:1rem;font-size:1.5rem}.tv-body{flex:1;grid-template-columns:1fr minmax(280px,26vw);gap:2vw;display:grid}.tv-tanks{grid-template-columns:repeat(auto-fill,minmax(clamp(220px,18vw,420px),1fr));align-content:start;gap:1.2vw;display:grid}.tank-card-big{gap:.7em;font-size:clamp(1rem,1.45vw,2.2rem)}.tank-card-big .tank-name{font-size:1.4em}.tank-card-big .tank-beer{font-size:1.6em}.tank-card-big .tank-meta,.tank-card-big .tank-volume{font-size:1em}.tank-card-big .fill-bar{height:.9em}.tank-empty{opacity:.55}.tv-side{flex-direction:column;gap:2vh;display:flex}.tv-states{grid-template-columns:1fr 1fr;gap:.8vw;display:grid}.tv-state{border-left:.4em solid var(--c);background:#1c1813;border-radius:10px;flex-direction:column;padding:.6em .9em;font-size:clamp(1rem,1.45vw,2.2rem);display:flex}.tv-state-n{font-size:2.2em;font-weight:700;line-height:1.1}.tv-table{border-collapse:collapse;width:100%;font-size:clamp(1rem,1.45vw,2.2rem)}.tv-table th,.tv-table td{text-align:right;border-bottom:1px solid #2c261e;padding:.4em .3em}.tv-table th:first-child,.tv-table td:first-child{text-align:left}.tv-table th{color:#a39683;font-weight:500}.tap-grid{flex:1;grid-template-columns:repeat(2,1fr);align-content:start;gap:1.5vh 2vw;font-size:clamp(1rem,1.6vw,2.4rem);display:grid}.tap-grid.dense{font-size:clamp(.8rem,1.05vw,1.6rem)}.tap{border-left:.35em solid var(--beer);background:#1c1813;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:start;gap:.9em;padding:.8em 1em;display:grid}.tap-empty{opacity:.5}.tap-num{background:var(--beer);color:#fff;text-shadow:0 1px 3px #000000b3;border-radius:50%;place-items:center;width:1.7em;height:1.7em;font-size:1.8em;font-weight:800;line-height:1;display:grid;box-shadow:inset 0 0 0 2px #ffffff40}.tap-name{font-size:1.45em;font-weight:700}.tap-note{color:#111;vertical-align:middle;background:#e2a52b;border-radius:999px;margin-left:.6em;padding:.15em .6em;font-size:.55em;font-weight:600}.tap-style{color:#d9c8a9}.tap-desc{color:#a39683;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.3em;font-size:.85em;display:-webkit-box;overflow:hidden}.tap-prices{text-align:right;flex-direction:column;gap:.2em;display:flex}.tap-prices>div{justify-content:flex-end;align-items:baseline;gap:.6em;display:flex}.tap-price-label{color:#a39683;font-size:.85em}.tap-price{color:#e2a52b;font-size:1.2em;font-weight:700}.tv-foot{text-align:center;color:#d9c8a9;font-size:clamp(1rem,1.5vw,2.2rem)}@media (width<=900px){.tv-body,.tap-grid{grid-template-columns:1fr}.brand{flex:1}.nav{flex-basis:100%;order:3}}@media (width<=640px){.user .muted{display:none}.content{padding:1rem .75rem 3rem}.serving-row{grid-template-columns:1fr 1fr}}
