:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-body:Aptos, "Segoe UI", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-display:"Aptos Display", Aptos, "Segoe UI", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}*,:before,:after{box-sizing:border-box}html{background:#101417;min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;margin:0}:root{--safe-top:max(18px, calc(env(safe-area-inset-top) + 12px));--safe-bottom:max(20px, calc(env(safe-area-inset-bottom) + 20px))}#app{min-height:100vh}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}.taplist-shell{box-sizing:border-box;min-height:100vh;padding-top:var(--safe-top);color:#edf1f4;background:radial-gradient(circle at 12% 0,#f19f322e,#0000 30rem),linear-gradient(135deg,#101417 0%,#1a2126 48%,#243034 100%)}.top-bar,main{width:min(1480px,100% - 32px);margin:0 auto}.top-bar{justify-content:space-between;align-items:center;gap:24px;padding:28px 0 20px;display:flex}.top-actions{align-items:center;gap:10px;display:flex}.floating-config{right:20px;bottom:var(--safe-bottom);z-index:20;position:fixed}.eyebrow{color:#f2a83a;letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:.72rem;font-weight:800}h1,h2,h3,p{margin:0}h1{color:#fff;font-family:var(--font-display);font-size:clamp(2rem,5vw,4.8rem);font-weight:780;line-height:.95}h2{color:#fff;font-family:var(--font-display);font-size:clamp(1.4rem,2vw,2rem);font-weight:760;line-height:1.05}h3{color:#fff;font-family:var(--font-display);font-size:1rem;font-weight:740}.status-stack,.zone-panel,.assignment-panel,.bottle-panel,.notice{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0a0e10ad;border:1px solid #ffffff1a;box-shadow:0 18px 48px #0000003d}.sync-panel{float:right;color:#cfd8dc;white-space:nowrap;border-radius:8px;align-items:center;gap:19px;min-height:44px;padding:8px 8px 8px 14px;display:flex}.sync-dot{background:#d7793f;border-radius:50%;width:10px;height:10px}.sync-dot.live{background:#63d471}.sync-panel button{color:#151a1d;background:#f2a83a;border:0;border-radius:6px;min-width:70px;min-height:34px;font-weight:850}.shared-config-panel{float:none;flex-wrap:wrap;justify-content:flex-end;width:100%}.shared-config-panel input{color:#f4f8f9;background:#ffffff14;border:1px solid #ffffff29;border-radius:6px;min-width:180px;min-height:34px;padding:0 10px}.settings-error{color:#ffb3a5;white-space:normal}.config-button{color:#dbe4e7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0a0e10ad;border:1px solid #ffffff1a;border-radius:8px;place-items:center;width:52px;height:52px;display:grid;box-shadow:0 18px 48px #00000052}.config-button.active{color:#151a1d;background:#f2a83a}.config-button svg{fill:currentColor;width:22px;height:22px}main{padding-bottom:40px;position:relative}.upcoming-button{top:var(--safe-top);z-index:18;color:#edf1f4;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0a0e10b8;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:10px;min-height:42px;font-weight:850;display:inline-flex;position:fixed;right:20px;box-shadow:0 18px 48px #0000003d}.upcoming-button span{color:#151a1d;background:#f2a83a;border-radius:999px;place-items:center;min-width:26px;min-height:26px;font-size:.82rem;display:grid}.modal-backdrop{z-index:30;background:#040709b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-panel{background:#151b1f;border:1px solid #ffffff1f;border-radius:8px;width:min(760px,100%);max-height:min(760px,100vh - 40px);padding:20px;overflow:auto;box-shadow:0 28px 80px #00000073}.settings-modal{width:min(1120px,100%)}.modal-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.modal-close{color:#edf1f4;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;place-items:center;width:38px;height:38px;font-size:1.5rem;display:grid}.upcoming-list{gap:12px;display:grid}.upcoming-card{background:#ffffff0f;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(180px,.42fr);gap:18px;padding:14px;display:grid}.upcoming-card p{color:#b8c5ca}.gravity-panel{align-content:start;gap:6px;display:grid}.gravity-panel span,.gravity-panel small{color:#aebcc2;font-weight:800}.gravity-panel strong{color:#fff;font-size:1.45rem;font-weight:950}.progress-track{background:#ffffff1f;border-radius:999px;height:10px;overflow:hidden}.progress-fill{border-radius:inherit;background:#f2a83a;height:100%}.hero-band{border-top:1px solid #ffffff1a;border-bottom:1px solid #ffffff1a;grid-template-columns:minmax(140px,220px) 1fr auto;align-items:center;gap:30px;min-height:280px;padding:28px;display:grid}.pour-visual{place-items:center;display:grid}.hero-glass{filter:drop-shadow(0 18px 26px #00000057);width:min(180px,34vw);height:auto;overflow:visible}.hero-glass-outline,.hero-glass-handle,.hero-glass-foot{fill:#ffffff1f;stroke:#ffffffc7;stroke-width:4px}.hero-glass-stem{fill:none;stroke:#ffffffc7;stroke-linecap:round;stroke-width:4px}.hero-glass-fill{fill:var(--beer-fill)}.hero-glass-foam{fill:#fff4d1}.hero-copy h2{letter-spacing:0;margin-bottom:18px;font-size:clamp(2.6rem,7vw,6.8rem)}.beer-description{color:#cbd6da;margin:-6px 0 18px;font-size:clamp(1rem,1.4vw,1.22rem);line-height:1.45}.recipe-details{color:#d4dee2;gap:7px;max-width:820px;margin:-4px 0 18px;font-size:.95rem;line-height:1.35;display:grid}.recipe-details p{grid-template-columns:128px minmax(0,1fr);align-items:start;gap:10px;margin:0;display:grid}.recipe-details span{color:#f2a83a;text-transform:uppercase;font-weight:900}.metric-row{flex-wrap:wrap;gap:10px;display:flex}.metric-row span,.zone-header span,.section-heading span{color:#dce4e7;background:#ffffff14;border-radius:6px;min-height:34px;padding:7px 10px;font-weight:750}.status-stack{border-radius:8px;gap:10px;min-width:190px;padding:14px;display:grid}.status-stack div{color:#aebcc2;justify-content:space-between;align-items:center;gap:18px;min-height:42px;display:flex}.status-stack strong{color:#fff;font-size:1.2rem;font-weight:850}.notice{color:#ffe0a6;border-radius:8px;margin:18px 0 0;padding:14px 16px}.zone-grid{grid-template-columns:minmax(0,1fr) minmax(340px,.45fr);gap:18px;margin-top:18px;display:grid}.zone-grid>.zone-panel:first-child{grid-column:1/-1}.zone-grid>.zone-panel:first-child .tap-grid,.zone-grid>.zone-panel:nth-child(2) .tap-grid{grid-template-columns:repeat(var(--tap-count), minmax(0, 1fr))}.zone-panel,.assignment-panel,.bottle-panel{border-radius:8px}.zone-panel{padding:18px}.zone-header,.section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.tap-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.tap-card{color:#eaf0f2;text-align:left;background:linear-gradient(#ffffff14,#ffffff08);border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;gap:14px;min-height:270px;padding:16px;display:flex;position:relative}.tap-card.selected{background:linear-gradient(#f2a83a33,#ffffff08),#ffffff0a;border-color:#f2a83a;box-shadow:inset 0 0 1px #f2a83a99}.tap-card-top{min-width:0;display:block}.tap-copy{flex-direction:column;min-width:0;display:flex}.tap-label{color:#f2a83a;text-transform:uppercase;font-weight:900}.tap-color{color:#93a3aa;text-transform:uppercase;min-height:22px;font-size:.78rem;font-weight:800}.tap-name{color:#fff;overflow-wrap:anywhere;font-size:clamp(1.45rem,2.05vw,2.25rem);font-weight:820;line-height:1.05}.tap-style{color:#b8c5ca}.glassware-row{color:#d8e0e3;align-items:center;gap:8px;min-height:40px;font-size:.88rem;font-weight:800;line-height:1.25;display:flex}.glassware-row strong{color:#fff;font-weight:900;display:block}.glassware-icon{flex:none;place-items:center;width:26px;height:30px;display:grid}.glassware-icon svg{width:26px;height:30px}.glass-outline{fill:#ffffff1f;stroke:#ffffffb8;stroke-width:2px}.glass-handle{fill:#ffffff1a;stroke:#ffffffb8;stroke-width:2px}.glass-foot{fill:#ffffff2e;stroke:#ffffffb8;stroke-width:1.5px}.glass-stem{fill:none;stroke:#ffffffb8;stroke-linecap:round;stroke-width:2px}.glass-fill{fill:var(--beer-fill)}.glass-foam{fill:#fff4d1}.tap-abv{color:#fff;align-self:end;margin-top:auto;font-size:1.6rem;font-weight:950}.batch-age{color:#151a1d;text-align:center;background:#c99a45;border-radius:6px;min-width:34px;min-height:28px;padding:5px 8px;font-size:.88rem;font-weight:950;position:absolute;bottom:12px;left:12px}.control-section{grid-template-columns:minmax(0,1fr) minmax(340px,.65fr);gap:18px;margin-top:18px;display:grid}.settings-control-section{margin-top:0}.assignment-panel,.bottle-panel{padding:18px}.bottle-display{min-height:100%}.assignments{gap:10px;display:grid}.assignment-row{color:#cbd6da;background:#ffffff0e;border-radius:8px;grid-template-columns:minmax(190px,.34fr) minmax(220px,1fr) minmax(180px,.5fr);align-items:center;gap:12px;min-height:58px;padding:10px;display:grid}.assignment-row strong{color:#fff;font-weight:850;display:block}select{color:#fff;background:#20282c;border:1px solid #ffffff24;border-radius:6px;width:100%;min-height:42px;font-weight:700}.bottle-list{gap:10px;display:grid}.bottle-card{width:100%;min-height:72px;color:inherit;text-align:left;background:#ffffff0f;border:1px solid #0000;border-radius:8px;grid-template-columns:28px 1fr auto;align-items:center;gap:12px;padding:12px 12px 42px;display:grid;position:relative}.bottle-card.selected{border-color:#f2a83a;box-shadow:inset 0 0 0 1px #f2a83a99}.bottle-card p{color:#aebcc2}.bottle-card strong{color:#fff;font-size:1.2rem;font-weight:900}.cap{border:3px solid #ffffffd1;border-radius:50%;width:28px;height:28px}.empty-state{color:#aebcc2;background:#ffffff0d;border-radius:8px;padding:14px}.bottle-picker{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.bottle-picker button{color:#d7e0e4;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:6px;min-height:36px;font-weight:750}.bottle-picker button.active{color:#151a1d;background:#f2a83a;border-color:#f2a83acc}@media (width<=980px){.top-bar,.top-actions,.hero-band,.zone-grid,.control-section,.assignment-row{grid-template-columns:1fr}.top-bar,.top-actions{align-items:stretch}.zone-grid>.zone-panel:first-child,.zone-grid>.zone-panel:first-child .tap-grid,.zone-grid>.zone-panel:nth-child(2) .tap-grid{grid-template-columns:1fr}.hero-band{min-height:unset;padding:22px 0}.status-stack{width:100%}}@media (width>=768px) and (width<=1180px){main{width:min(100% - 20px,1180px);padding-bottom:18px}.hero-band{grid-template-columns:96px minmax(0,1fr);gap:16px;min-height:0;padding:14px 0}.status-stack{display:none}.hero-glass{width:92px}.hero-copy h2{margin-bottom:8px;font-size:clamp(2rem,5vw,3.8rem);line-height:.98}.beer-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 8px;font-size:.95rem;line-height:1.25;display:-webkit-box;overflow:hidden}.recipe-details{grid-template-columns:1fr;gap:3px;margin:0 0 9px;font-size:.78rem;line-height:1.2}.recipe-details span{font-size:.72rem}.recipe-details p{grid-template-columns:86px minmax(0,1fr);gap:6px}.metric-row{gap:6px}.metric-row span,.zone-header span,.section-heading span{min-height:28px;padding:5px 8px;font-size:.8rem}.zone-grid{gap:10px;margin-top:10px}.zone-panel,.assignment-panel,.bottle-panel{padding:12px}.zone-header,.section-heading{margin-bottom:10px}.zone-header h2,.section-heading h2{font-size:1.15rem}.tap-grid{gap:8px}.tap-card{gap:8px;min-height:174px;padding:10px}.tap-card-top{display:block}.tap-label{font-size:.72rem}.tap-name{font-size:clamp(1.1rem,2.3vw,1.75rem);line-height:1.04}.glassware-row{gap:6px;min-height:32px;font-size:.72rem;line-height:1.16}.glassware-icon,.glassware-icon svg{width:20px;height:24px}.tap-abv{font-size:1.25rem}.batch-age{min-width:28px;min-height:24px;padding:4px 6px;font-size:.76rem;bottom:8px;left:8px}.bottle-card{min-height:62px;padding:10px 10px 34px}.bottle-card h3{font-size:.9rem}.bottle-card p{font-size:.74rem;line-height:1.2}.bottle-card strong{font-size:1rem}}@media (width<=620px){.top-bar,main{width:min(100% - 20px,1480px)}.sync-panel,.zone-header,.section-heading{flex-direction:column;align-items:flex-start}.sync-panel{white-space:normal}.hero-copy h2{font-size:2.5rem}.tap-grid{grid-template-columns:1fr}.tap-card{min-height:250px}}
