:root{--bg:#101619;--panel:#182226;--panel2:#202d32;--line:#304047;--muted:#91a3a8;--text:#edf3f1;--green:#8bd3a7;--blue:#83c7e8;--orange:#efb66f;--red:#ef8585}*{box-sizing:border-box}body{color:var(--text);background:radial-gradient(circle at 20% 0,#203139 0,#101619 38%);margin:0;font:15px/1.45 Inter,Segoe UI,Arial,sans-serif}header{border-bottom:1px solid var(--line);background:#111a1e;justify-content:space-between;align-items:center;gap:16px;padding:20px 26px;display:flex}.brand{align-items:center;gap:13px;display:flex}.mark{background:#101619;border:1px solid #55716d;border-radius:12px;place-items:center;width:62px;height:62px;display:grid;overflow:hidden}.mark img{object-fit:contain;width:100%;height:100%;padding:3px}h1{letter-spacing:.13em;margin:0;font-size:18px}.sub{color:var(--muted);letter-spacing:.16em;font-size:11px}.demo{color:#f5c98c;letter-spacing:.12em;background:#382b1b;border:1px solid #9b713c;border-radius:7px;padding:7px 11px;font-size:11px;font-weight:800}main{max-width:1440px;margin:auto;padding:22px 26px 36px}.topline{justify-content:space-between;align-items:end;gap:16px;margin-bottom:18px;display:flex}.eyebrow{color:var(--green);letter-spacing:.18em;font-size:11px;font-weight:700}.topline h2{margin:5px 0 0;font-size:25px}.updated{color:var(--muted);font-size:12px}.metrics{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;display:grid}.metric,.tank,.detail,.chartbox,.alerts{border:1px solid var(--line);background:linear-gradient(145deg,#1b282d,#162126);border-radius:12px}.metric{padding:15px 17px}.metric label{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:11px;display:block}.metric strong{margin-top:5px;font-size:27px;font-weight:650;display:block}.metric small{color:var(--muted);font-size:11px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin:20px 0 13px;display:flex}.filter{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#1a272c;border-radius:7px;padding:8px 13px}.filter.active{color:var(--text);background:#233b35;border-color:#6a9b88}.sort{border:1px solid var(--line);color:var(--text);background:#1a272c;border-radius:7px;margin-left:auto;padding:8px 10px}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.tank{cursor:pointer;padding:15px;transition:all .16s;position:relative;overflow:hidden}.tank:hover{border-color:#648a7e;transform:translateY(-2px)}.tank.selected{border-color:var(--green);box-shadow:inset 0 0 0 1px #527b68}.tankhead{justify-content:space-between;align-items:center;display:flex}.tankname{font-size:17px;font-weight:750}.tag{color:var(--green);text-transform:uppercase;letter-spacing:.08em;background:#263c34;border-radius:5px;padding:4px 7px;font-size:10px}.tag.lager{color:var(--blue);background:#233744}.tag.alert{color:var(--orange);background:#45311f}.tag.empty{color:#aab4b5;background:#2a3032}.beer{color:var(--muted);min-height:18px;margin-top:3px;font-size:12px}.readingrow{gap:20px;margin-top:18px;display:flex}.reading{flex:1}.reading b{font-size:25px;font-weight:650;display:block}.reading span{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:10px}.spark{width:100%;height:34px;margin-top:9px}.foot{color:var(--muted);justify-content:space-between;margin-top:8px;font-size:10px;display:flex}.dot{background:var(--green);border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.dot.warn{background:var(--orange)}.warning-icon{color:#ffcf72;vertical-align:-2px;text-shadow:0 0 8px #b16a18;justify-content:center;align-items:center;margin-right:5px;font-size:19px;font-weight:900;display:inline-flex}.tank.has-alert{background:linear-gradient(145deg,#efb66f3b,#efb66f1f),#182226;border-color:#d79b4d}.tank.has-alert:before{content:"⚠";color:#ffcf72;font-size:26px;line-height:1;position:absolute;bottom:42px;right:13px}.alertitem.warning-alert{background:#efb66f29;border:1px solid #a36c32;border-radius:8px;margin-bottom:8px;padding:10px}.metric.metric-warning{background:linear-gradient(145deg,#efb66f3b,#efb66f1f),#182226;border-color:#d79b4d}.metric.metric-warning strong{color:#ffcf72}.dot.off{background:#778487}.lower{grid-template-columns:1.35fr .65fr;gap:12px;margin-top:14px;display:grid}.detail,.chartbox,.alerts{padding:18px}.sectionhead{justify-content:space-between;align-items:center;gap:12px;display:flex}.sectionhead h3{margin:0;font-size:15px}.muted{color:var(--muted)}.detailgrid{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:17px;display:grid}.detailcell{background:#111b1f;border:1px solid #29383e;border-radius:8px;padding:11px}.detailcell label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;display:block}.detailcell b{margin-top:4px;font-size:19px;display:block}.chartwrap{height:190px;margin-top:14px;position:relative}.chartwrap canvas{width:100%;height:100%}.chartlegend{color:var(--muted);gap:16px;margin-top:5px;font-size:11px;display:flex}.legendline{vertical-align:middle;background:var(--green);width:15px;height:3px;margin-right:5px;display:inline-block}.legendline.blue{background:var(--blue)}.alerts h3{margin:0 0 13px;font-size:15px}.alertitem{border-top:1px solid var(--line);padding:10px 0;font-size:12px}.alertitem:first-of-type{border-top:0}.alertitem b{margin-bottom:3px;font-size:12px;display:block}.alertitem span{color:var(--muted)}.pill{color:var(--orange);background:#45311f;border-radius:4px;margin-left:5px;padding:3px 6px;font-size:10px}.report-btn{color:#edf3f1;cursor:pointer;background:#29433c;border:1px solid #6a9b88;border-radius:7px;margin-top:15px;padding:10px 16px;font-weight:700}.report-btn:hover{background:#34564b}.note{color:#d7bd98;background:#2a241b;border:1px dashed #6c573b;border-radius:8px;margin-top:18px;padding:11px 14px;font-size:11px}button{font:inherit}footer{color:#71848a;text-align:center;padding:22px;font-size:10px}@media (width<=900px){.grid,.metrics{grid-template-columns:repeat(2,1fr)}.lower{grid-template-columns:1fr}}@media (width<=560px){header{padding:15px}.topline{display:block}.updated{margin-top:8px}.grid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}main{padding:17px 13px}.detailgrid{grid-template-columns:repeat(2,1fr)}.sort{margin-left:0}}.brand .mark{background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;width:68px;min-width:68px;height:68px;display:flex;overflow:visible}.brand .mark img{object-fit:contain;object-position:center;width:100%;height:100%;padding:0;display:block}.toolbar .filter.filter-warning{color:#ffd38d;background:#efb66f30;border:1px solid #d79b4d;font-weight:750;box-shadow:inset 0 0 0 1px #ffcc7814}.toolbar .filter.filter-warning:hover,.toolbar .filter.filter-warning.active{color:#fff1d2;background:#efb66f57;border-color:#ffd38d}.filter-warning-icon{color:#ffcf72;vertical-align:-1px;margin-right:3px;font-size:17px;line-height:1;display:inline-block}@media (width<=560px){.brand .mark{width:52px;min-width:52px;height:52px}}#fcsApp[hidden],#loginScreen[hidden]{display:none!important}#loginScreen{background:radial-gradient(circle at 50% 0,#203b34 0,#101619 58%);place-items:center;min-height:100vh;padding:22px;display:grid}.login-card{background:linear-gradient(145deg,#1c2b2b,#142024);border:1px solid #36524a;border-radius:18px;width:min(100%,420px);padding:36px 32px;box-shadow:0 24px 70px #00000059}.login-logo{justify-content:center;align-items:center;width:108px;height:108px;margin:0 auto 12px;display:flex}.login-logo img{object-fit:contain;width:100%;height:100%}.login-title{text-align:center;letter-spacing:.18em;margin:0 0 5px;font-size:22px}.login-sub{text-align:center;color:#9bb2aa;letter-spacing:.1em;margin:0 0 28px;font-size:11px}.login-card label{color:#d6e8df;margin:14px 0 6px;font-size:13px;display:block}.login-card input{color:#fff;background:#0e191b;border:1px solid #456057;border-radius:8px;outline:none;width:100%;padding:12px 13px;font-size:15px}.login-card input:focus{border-color:#8bd3a7;box-shadow:0 0 0 2px #8bd3a72a}.login-card button{color:#0c1a15;cursor:pointer;background:#80c79e;border:0;border-radius:8px;width:100%;margin-top:22px;padding:12px;font-weight:800}.login-card button:hover{background:#a2e3ba}.login-error{color:#ffc38c;text-align:center;min-height:19px;margin:11px 0 0;font-size:12px}.login-demo{color:#91a3a8;text-align:center;margin-top:16px;font-size:11px}.logout-btn{color:#d9f4e3;cursor:pointer;background:#22342f;border:1px solid #507a69;border-radius:8px;padding:9px 13px;font-weight:700}.logout-btn:hover{background:#305143}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}@media (width<=560px){.login-card{padding:28px 22px}.header-actions{justify-content:flex-start}}#root{min-height:100vh}.tank:focus-visible{outline:2px solid #8bd3a7}.login-card{margin:auto}.report-btn:focus-visible,.filter:focus-visible{outline:2px solid #8bd3a7}.archive-panel{border:1px solid var(--line);background:linear-gradient(145deg,#1b282d,#162126);border-radius:12px;margin-top:14px;padding:18px}.archive-panel h3{margin:0;font-size:16px}.archive-local{color:var(--green);font-size:11px}.archive-help{color:var(--muted);margin:10px 0 14px;font-size:12px}.archive-tabs{flex-wrap:wrap;gap:8px;display:flex}.archive-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px;margin-top:14px;display:grid}.archive-form label{color:#c9dad4;flex-direction:column;gap:5px;font-size:12px;display:flex}.archive-form input,.archive-form select,.archive-form textarea{width:100%;min-width:0;color:var(--text);font:inherit;background:#111b1f;border:1px solid #456057;border-radius:7px;padding:10px}.archive-form .archive-wide{grid-column:1/-1}.archive-form .report-btn{justify-self:start;margin:0}.archive-error{color:#ffc38c;font-size:12px}.archive-columns{grid-template-columns:1fr 1fr;gap:16px;margin-top:20px;display:grid}.archive-columns h4{margin:0 0 8px}.archive-scroll{max-height:260px;overflow:auto}.archive-entry{border-top:1px solid var(--line);flex-direction:column;gap:3px;padding:10px 0;font-size:12px;display:flex}.archive-entry span,.archive-entry small{color:var(--muted);overflow-wrap:anywhere}@media (width<=700px){.archive-form,.archive-columns{grid-template-columns:1fr}.archive-panel .sectionhead{flex-direction:column;align-items:flex-start}}.archive-panel .archive-form input,.archive-panel .archive-form select{min-width:0}#fcsApp{min-width:0;overflow-x:clip}#fcsApp header,#fcsApp main,#fcsApp .tank,#fcsApp .metric{min-width:0}#fcsApp .tankhead{align-items:flex-start;gap:10px}#fcsApp .tankname{overflow-wrap:anywhere;min-width:0}#fcsApp .reading{min-width:0}#fcsApp .reading b,#fcsApp .beer{overflow-wrap:anywhere}@media (width<=900px){#fcsApp header{flex-wrap:wrap;align-items:center}#fcsApp .header-actions{justify-content:flex-start;gap:8px;width:100%}#fcsApp .header-actions .logout-btn{min-height:42px}#fcsApp .grid,#fcsApp .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}#fcsApp .tankhead{flex-wrap:wrap}#fcsApp .tankhead>div:last-child{flex-shrink:0;margin-left:auto}}@media (width<=600px){#fcsApp header{gap:12px;padding:12px 14px}#fcsApp .brand{gap:9px;min-width:0}#fcsApp .brand .mark{width:46px;min-width:46px;height:46px}#fcsApp h1{letter-spacing:.1em;font-size:16px}#fcsApp .sub{letter-spacing:.09em;font-size:9px}#fcsApp .header-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}#fcsApp .header-actions .demo{grid-column:1/-1;justify-self:start;font-size:10px}#fcsApp .header-actions .logout-btn{white-space:normal;width:100%;min-height:44px;padding:9px 7px;font-size:12px}#fcsApp .header-actions>div{min-width:0}#fcsApp main{padding:14px 12px 26px}#fcsApp .metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}#fcsApp .metric{min-width:0;padding:12px}#fcsApp .metric:last-child{grid-column:1/-1}#fcsApp .metric label{letter-spacing:.05em;font-size:10px}#fcsApp .metric strong{font-size:23px}#fcsApp .metric small{overflow-wrap:anywhere;font-size:10px}#fcsApp .toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0 12px;display:grid}#fcsApp .toolbar .filter{width:100%;min-height:42px;padding:8px 6px;font-size:12px}#fcsApp .toolbar .sort{grid-column:1/-1;width:100%;min-width:0;min-height:44px;margin:0;font-size:13px}#fcsApp .grid{grid-template-columns:minmax(0,1fr);gap:10px}#fcsApp .tank{border-radius:12px;padding:14px}#fcsApp .tankhead{flex-wrap:wrap;gap:10px;display:flex}#fcsApp .tankhead>div:last-child{flex-shrink:0;margin-left:auto;gap:7px!important}#fcsApp .tankname{flex:100%;font-size:17px;line-height:1.3}#fcsApp .tankhead button{min-width:40px;min-height:40px}#fcsApp .tankhead .tag{font-size:9px}#fcsApp .beer{margin-top:10px!important;margin-bottom:10px!important;font-size:15px!important}#fcsApp .readingrow{gap:12px;margin-top:12px}#fcsApp .reading b{font-size:25px}#fcsApp .reading span{letter-spacing:.04em;font-size:10px}#fcsApp .foot{flex-wrap:wrap;gap:5px}#fcsApp .archive-panel{padding:13px}#fcsApp .archive-form,#fcsApp .archive-columns{grid-template-columns:minmax(0,1fr)}#fcsApp .archive-panel button,#fcsApp .archive-panel select{max-width:100%}#fcsApp .archive-panel .sectionhead{flex-wrap:wrap}#fcsApp .detailgrid{grid-template-columns:repeat(2,minmax(0,1fr))}#fcsApp .lower{grid-template-columns:minmax(0,1fr)}#fcsApp .chartbox,#fcsApp .detail,#fcsApp .alerts{min-width:0;padding:13px}}@media (width<=360px){#fcsApp .header-actions{grid-template-columns:1fr}#fcsApp .header-actions .demo{grid-column:1}#fcsApp .tankhead>div:last-child{gap:5px!important}#fcsApp .tank{padding:11px}}@media (width<=600px){#fcsApp main{flex-direction:column;align-items:stretch;display:flex}#fcsApp .metrics{display:contents}#fcsApp .metric.metric-warning{order:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 12px;width:100%;margin:0 0 12px;padding:10px 13px;display:grid}#fcsApp .metric.metric-warning label{letter-spacing:.06em;grid-area:1/1;font-size:12px;font-weight:750}#fcsApp .metric.metric-warning strong{grid-area:1/2;margin:0;font-size:22px;line-height:1}#fcsApp .metric.metric-warning small{grid-area:2/1/auto/-1;font-size:11px;line-height:1.25}#fcsApp .toolbar{order:1}#fcsApp .grid{order:2}#fcsApp .archive-panel{order:3}#fcsApp .note{order:4}#fcsApp .metrics>.metric:not(.metric-warning){width:100%;margin:10px 0 0}#fcsApp .metrics>.metric:first-child{order:5}#fcsApp .metrics>.metric:last-child{order:6;grid-column:auto}#fcsApp main{flex-wrap:wrap;column-gap:8px}#fcsApp .toolbar{display:contents}#fcsApp .toolbar .filter{flex:0 0 calc(50% - 4px);order:1;width:calc(50% - 4px);min-width:0;min-height:42px;margin:0 0 4px}#fcsApp .toolbar .sort{flex:0 0 100%;order:3;width:100%;min-width:0;min-height:44px;margin:8px 0 0}#fcsApp .grid,#fcsApp .archive-panel,#fcsApp .note{width:100%}}
