@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{font-family:DM Sans,sans-serif;color:#e8edf1;background:#0a1019;font-synthesis:none;font-weight:400;--lime:#c8f65b;--muted:#85929f;--line:#26303c}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:#1b2531;color:#dce4eb;border:1px solid #354150;border-radius:6px;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover{border-color:var(--lime);color:var(--lime)}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible{outline:2px solid var(--lime);outline-offset:4px}a{color:inherit}small,.tiny,.eyebrow,.rail-label,.session-line,.stat>div,.status,header,.legend,.chart-footer,.alert-strip>span,footer,.demo{font-family:IBM Plex Mono,monospace}.app{display:flex;min-height:100vh}aside{width:226px;position:fixed;inset:0 auto 0 0;background:#0d141e;border-right:1px solid var(--line);padding:34px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-family:Barlow Condensed,sans-serif;font-size:22px;line-height:.95;letter-spacing:2px}.brand b{color:var(--lime);font-weight:600}.brand-icon{width:46px;height:46px;background:var(--lime);color:#192410;border-radius:50%;display:grid;place-items:center}.rail-label{font-size:9px;color:#657382;letter-spacing:1.5px;margin:55px 8px 17px}nav{display:grid;gap:8px}nav button{font-size:12px;justify-content:flex-start;padding:14px 10px;border:1px solid transparent;background:none;color:#8995a3}nav button span{margin-left:auto;font-size:9px;opacity:.6}nav .active{background:#c8f65b0e;color:var(--lime);border-color:#c8f65b30}.rail-bottom{margin-top:auto;padding:30px 8px 4px;color:#85929f;font-size:12px;line-height:1.7}.orbit{border:1px dashed #344232;border-radius:50%;width:78px;height:78px;display:grid;place-items:center;color:#719245;margin-bottom:20px}.rail-bottom small{font-size:8px;line-height:2;color:#566574}main{margin-left:226px;width:calc(100% - 226px);padding:0 38px;max-width:1900px}header{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.8px;color:#95a2ad}.dot{display:inline-block;width:6px;height:6px;background:var(--lime);border-radius:50%;margin-right:7px;box-shadow:0 0 10px #c8f65b44}header i{margin:0 14px;color:#46515e}.clocks{display:flex;gap:22px}.clocks b{color:#d4dce4;margin-left:7px;font-weight:500}.demo{padding:10px 0;color:#d6ba76;font-size:9px;border-bottom:1px solid #2e2b21}.demo span{margin-left:12px;color:#8d9091}.heading{display:flex;justify-content:space-between;align-items:center;margin:33px 0 30px}.eyebrow{color:var(--lime);font-size:9px;letter-spacing:1.6px}h1{font-family:Barlow Condensed,sans-serif;font-size:48px;letter-spacing:.2px;line-height:1.1;margin:10px 0 12px;font-weight:600}.heading p{font-size:12px;color:var(--muted);margin:0}.status{border:1px solid #435732;background:#c8f65b09;border-radius:4px;color:var(--lime);padding:9px 12px;font-size:9px;letter-spacing:1px;white-space:nowrap}.status.offline{color:#9da8b3;border-color:#405061}.offline .dot{background:#8c9ba9}.session-line{display:flex;justify-content:space-between;font-size:9px;color:#a5afb9;margin-bottom:15px;gap:10px}.session-line>span{display:flex;align-items:center;gap:8px}.muted{color:var(--muted)}.panel{background:linear-gradient(130deg,#151e29,#111924);border:1px solid var(--line);border-radius:9px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:22px}.stat{padding:19px 20px}.stat>div{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1px;color:#93a0ac}.stat svg{width:16px;height:16px;color:#6e7e8c}.stat strong{font-family:Barlow Condensed,sans-serif;font-weight:500;display:block;font-size:48px;margin:10px 0 7px;line-height:1}.stat em{font-style:normal;font-size:25px;color:#73816d;margin-left:5px}.stat p{font-size:10px;margin:0;color:#85939f;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.stat.accent{border-color:#576638;background:linear-gradient(130deg,#222d23,#151e20)}.stat.accent strong,.stat.accent svg{color:var(--lime)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:22px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:20px 22px;border-bottom:1px solid var(--line)}h2{font-weight:500;font-size:13px;margin:0;display:flex;align-items:center;gap:9px}.panel-title svg{color:#91a0ad}.tiny{font-size:8px;letter-spacing:1px;color:#778592}.legend{display:flex;gap:22px;font-size:9px;color:#97a4af;padding:20px 22px 3px}.legend i{display:inline-block;width:15px;height:3px;margin-right:7px;vertical-align:middle}.lime{background:var(--lime)}.blue{background:#65b9f2}.chart{height:230px;padding:0 12px;font-family:IBM Plex Mono,monospace;font-size:9px}.chart-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:14px 22px;font-size:8px;color:#7e8c99}.chart-footer .dot{width:4px;height:4px}.conditions .weather-sun{color:#e4cc87;margin:22px 22px 0}.conditions h3{font-weight:500;font-size:19px;margin:12px 22px 5px}.conditions p{font-size:10px;color:#7e8b98;margin:0 22px 16px}.street-photo,.street-placeholder{width:calc(100% - 44px);height:100px;margin:0 22px 12px;border-radius:5px;object-fit:cover}.street-placeholder{background:repeating-linear-gradient(0deg,transparent,transparent 19px,#34433520 20px),repeating-linear-gradient(90deg,#1d2a26,#1d2a26 19px,#344335 20px);position:relative;display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px;overflow:hidden;color:#c4d0c9}.road{position:absolute;top:28px;width:130%;height:45px;background:#293431;transform:rotate(-12deg);border-block:2px solid #76836b44;display:flex;align-items:center;justify-content:space-evenly}.road span{height:2px;width:30px;background:#a8b37d44}.street-placeholder>svg,.street-placeholder>span{z-index:1;background:#111b20bb;padding:4px;box-sizing:content-box}.conditions>small{display:block;font-size:7px;color:#61717f;margin:0 22px 15px}.events{max-height:432px;overflow:auto;padding:4px 22px}.event{display:flex;align-items:flex-start;gap:12px;padding:18px 0;border-bottom:1px solid #222d39}.event time{font-family:IBM Plex Mono,monospace;color:#758694;font-size:10px;padding-top:4px}.event-mark{display:grid;place-items:center;width:27px;height:27px;flex-shrink:0;border-radius:50%;background:#24303c;color:#9fadb8}.event-beer .event-mark{color:#dbb77e;background:#d5a35412}.event-traffic .event-mark{color:var(--lime);background:#c8f65b12}.event>div{flex:1}.event b{font-size:11px;font-weight:500}.event p{font-size:11px;line-height:1.5;color:#83929f;margin:5px 0 0;overflow-wrap:anywhere}.event small{font-size:8px;color:#b9a779}.event button{padding:7px;background:transparent}.rating{font-size:9px;background:#c8f65b16;color:var(--lime);padding:3px 6px;margin-left:7px;border-radius:3px}.right-stack{display:grid;gap:20px;align-content:start}.beer-body{display:flex;align-items:center;gap:23px;padding:23px}.can{flex-shrink:0;transform:rotate(-8deg);width:65px;height:114px;border-radius:12px 12px 15px 15px;border-block:5px solid #a9b8a5;background:linear-gradient(90deg,#91ad50,#d2e999 45%,#accb6d);color:#263525;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;box-shadow:9px 10px 20px #0005}.can>span{font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:15px;line-height:.9;letter-spacing:1px}.can small{font-size:5px}.beer-body h3{font-size:17px;line-height:1.3;margin:10px 0;overflow-wrap:anywhere}.beer-rating{font-family:Barlow Condensed,sans-serif;font-size:32px;color:var(--lime)}.beer-rating span{font-size:18px;color:#778591}.beer-body small{font-size:7px;color:#798a97}.side-notes{padding:20px 22px}.side-notes>div{display:flex;align-items:center;gap:10px;font-size:11px;color:#adbac5;margin-bottom:15px}.side-notes svg{color:#7b8c9a}.side-notes b{margin-left:auto;color:#e7ecef}.side-notes p{font-size:11px;color:#788997;margin:-6px 0 18px 28px;line-height:1.5}.side-notes p:last-child{margin-bottom:0}.alert-strip{display:flex;align-items:center;gap:16px;border:1px solid #343c2e;background:#1b241c55;border-radius:6px;padding:11px 16px;margin-top:22px}.alert-strip>span{font-size:8px;color:var(--lime);white-space:nowrap;letter-spacing:1px}.alert-strip p{font-size:11px;color:#abb69e;margin:0;flex:1}.alert-strip svg{color:#9bb36e}footer{display:flex;justify-content:space-between;gap:16px;font-size:8px;color:#596b7b;margin:30px 0 22px}footer b{color:#8996a2;font-weight:500;letter-spacing:1px}.controls{margin-bottom:24px}.control-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:20px}.control-grid button{min-height:56px;font-size:12px}.controls>small{display:block;padding:0 20px 20px;color:#8899a7;font-size:9px}.primary{background:var(--lime);border-color:var(--lime);color:#1a2510;font-weight:600}.primary:hover{background:#d7ff80;color:#1a2510}.end,.danger{color:#f1a89a;border-color:#804a40}.login{padding:24px;max-width:480px;margin-bottom:24px}.login p{color:#91a1ae;font-size:13px}label{display:block;font-size:12px;color:#b9c5cf;margin:18px 0}input,select{width:100%;padding:12px;background:#0b131d;color:#e6ebef;border:1px solid #384754;border-radius:5px;margin-top:8px}input[type=range]{accent-color:var(--lime);padding:0}label>b{float:right;color:var(--lime)}.archive{min-height:350px}.archive select{width:180px;margin:0}.archive-row{display:flex;justify-content:space-between;width:100%;padding:22px;background:none;border:none;border-bottom:1px solid var(--line);text-align:left}.archive-row small{display:block;color:#8c9caa;font-size:9px;margin-top:9px}.archive-row>span{display:flex;align-items:center;gap:15px;font-size:12px}.empty{text-align:center;padding:70px 20px}.empty svg{color:var(--lime)}.empty h2{display:block;font-size:24px;margin:20px}.empty p{color:#8f9daa}.error{display:flex;justify-content:space-between;align-items:center;padding:14px;color:#ffc0b1;background:#55271c55;border:1px solid #754633;border-radius:6px;font-size:13px;margin-bottom:15px}.error button{padding:4px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000b;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:10}.modal{width:480px;max-height:90vh;overflow:auto;padding:24px;box-shadow:0 24px 80px #0008}.modal .panel-title{padding:0 0 18px}.modal small{display:block;color:#8b9aa8;font-size:10px;margin:12px 0;line-height:1.6}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.range-label{display:flex;justify-content:space-between;color:#7d8e9c;font-size:9px}::selection{background:#c8f65b44}@media(min-width:1500px){main{padding:0 50px}.chart{height:280px}.street-photo,.street-placeholder{height:150px}}@media(max-width:1100px){aside{width:185px;padding-inline:14px}main{margin-left:185px;width:calc(100% - 185px);padding-inline:24px}.clocks{gap:10px}header>span{font-size:7px}.heading{align-items:flex-start;gap:15px}h1{font-size:40px}.status{font-size:7px}.stat{padding:16px 12px}.stat>div{font-size:7px}.stat strong{font-size:40px}.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr)}.chart-footer{font-size:7px;padding-inline:12px}.chart-footer>span:last-child{display:none}}@media(max-width:800px){aside{position:relative;width:100%;padding:18px 20px;border-right:0;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;justify-content:space-between}.app{display:block}.brand{font-size:18px}.brand-icon{width:36px;height:36px}.rail-label,.rail-bottom,nav button span{display:none}nav{display:flex;gap:3px}nav button{font-size:0;padding:12px}nav button svg{width:20px;height:20px}main{width:100%;margin:0;padding:0 20px}header{height:54px}header>span{font-size:0}header .dot{width:6px}.clocks{font-size:9px;gap:18px}.demo{font-size:8px;line-height:1.7}.demo span{display:block;margin:0;font-size:8px}.heading{margin:25px 0}.heading h1{font-size:36px}.heading p{font-size:11px;line-height:1.6;max-width:290px}.heading .status{display:none}.session-line{font-size:8px;flex-direction:column;gap:9px}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:17px}.stat>div{font-size:8px}.stat strong{font-size:44px}.dashboard-grid{grid-template-columns:1fr;gap:16px}.conditions{grid-row:4}.chart{height:240px}.events{max-height:380px}.control-grid{grid-template-columns:repeat(2,1fr);padding:14px;gap:8px}.control-grid button{font-size:12px}.panel-title{padding:18px}.alert-strip{align-items:flex-start;gap:10px}.alert-strip p{line-height:1.6}.alert-strip>span{padding-top:4px}footer{flex-wrap:wrap;line-height:1.6}footer>span:last-child{display:none}.archive-row{gap:12px;padding:18px}.archive-row>span{font-size:10px}.archive-row b{font-size:13px}.modal{padding:20px}.modal-backdrop{padding:12px}.street-placeholder,.street-photo{height:150px}}.whatsapp-invite{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;margin-bottom:24px;border-color:#345b43}.whatsapp-invite h2{color:#c8f65b}.whatsapp-invite p{font-size:12px;color:#a3b3bf;line-height:1.6;margin:10px 0}.whatsapp-invite summary{cursor:pointer;font-size:11px;color:#c0ccd5}.whatsapp-invite small{display:block;margin-top:12px;font-size:9px;color:#a8b68e}.invite-message{white-space:pre-wrap;overflow-wrap:anywhere;max-width:560px}.whatsapp-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:#216d42;border:1px solid #3a9b60;border-radius:6px;padding:14px 18px;color:#fff;text-decoration:none;font-size:12px;white-space:nowrap}.whatsapp-button:hover{background:#29834f}@media(max-width:800px){.whatsapp-invite{flex-direction:column;align-items:stretch}.whatsapp-button{white-space:normal}}.telemetry-scroll{overflow-x:auto;overscroll-behavior-x:contain}.graph-events{position:relative;border-top:1px solid #34404d;margin-bottom:12px}.graph-events button{position:absolute;transform:translate(-50%);width:46px;height:54px;padding:3px;background:#151e29;border:1px solid #34404d;border-radius:9px}.emoji-stack{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:28px;font-size:23px;line-height:1.4}.emoji-stack small{position:absolute;top:24px;left:50%;transform:translate(-50%);font:10px IBM Plex Mono,monospace;background:#c8f65b;color:#101822;border-radius:4px;padding:1px 3px;white-space:nowrap}.emoji-stack i{position:absolute;right:-9px;top:-8px;font-size:15px;font-style:normal}.event-mark{background:transparent!important;overflow:visible!important}.event{align-items:start!important}.event>div{min-width:0}.event-media{margin:12px 0;max-width:100%}.event-media img,.event-media video{display:block;width:100%;max-height:360px;object-fit:contain;background:#080e16;border-radius:10px}.event-media a{display:block;color:#c8f65b;font-size:12px}.quick-counts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0}.quick-counts button{min-height:44px;border:1px solid #34404d;background:#17212d;padding:10px;border-radius:8px}.emoji-picker{display:flex;flex-wrap:wrap;gap:6px}.emoji-picker button{min-width:44px;min-height:44px;font-size:25px;border:1px solid #34404d;border-radius:8px}.emoji-picker button[aria-pressed=true]{background:#395127;border-color:#c8f65b}.modal .check-label{display:flex;align-items:center;gap:10px}.modal .check-label input{width:22px;height:22px;margin:0}.modal input[type=color]{height:48px;max-width:130px;padding:4px}.beer-stack{display:flex;flex-direction:column;gap:14px;max-height:460px;overflow-y:auto}.beer-stack-row{display:flex;align-items:center;gap:16px;padding:12px;border:1px solid #26323f;border-radius:10px}.beer-stack-row h3{margin:5px 0;font-size:20px}.mini-can{flex-shrink:0;width:46px;height:70px;border-radius:9px 9px 12px 12px;border-top:6px solid #bac1ca;border-bottom:4px solid #bac1ca;box-shadow:inset -8px 0 #0003;display:grid;place-items:center;font-size:24px}.session-summary{margin-bottom:24px;border-color:#647d3b}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0}.summary-grid>div{display:flex;flex-direction:column;gap:8px;padding:16px;background:#0d151f;border-radius:12px}.summary-grid strong{font:40px Barlow Condensed,sans-serif;color:#c8f65b}.summary-grid em{font-size:20px;font-style:normal}.summary-grid small{line-height:1.6;color:#9da9b5}.modal .panel-title h2{line-height:1.7}.modal button{min-height:44px}button:focus-visible,a:focus-visible{outline:2px solid #c8f65b;outline-offset:3px}.chart-panel,.dashboard-grid>*{min-width:0}.session-summary p{line-height:1.6}.events{max-height:900px}.modal-backdrop{z-index:100}@media(max-width:800px){.summary-grid{grid-template-columns:1fr 1fr;gap:8px}.summary-grid>div{padding:12px}.summary-grid strong{font-size:32px}.event{grid-template-columns:45px 32px 1fr auto!important;gap:8px!important}.event-media img,.event-media video{max-height:280px}.chart-panel{padding:16px}.quick-counts button{flex:1 1 42%}.modal{width:calc(100vw - 24px);padding:18px}}.can-colours{display:flex;flex-wrap:wrap;gap:8px}.can-colours button{width:44px;height:44px;color:#101822;font-size:24px;border:2px solid #748292}.can-colours button[aria-pressed=true]{outline:2px solid #c8f65b;outline-offset:2px}.session-summary{padding:20px}.session-summary .panel-title{padding:0 0 16px}.chart-panel>p,.chart-panel>small{margin:12px 20px;display:block}.emoji-stack small{margin:0!important}.stat{min-width:0}.stat p{overflow-wrap:anywhere}@media(max-width:800px){.stat strong{font-size:34px}.summary-grid span{font-size:13px}}.remove-confirm{width:100%;padding:14px;border:1px solid #804a40;border-radius:8px;background:#55271c33}.remove-confirm p{margin:0 0 14px;line-height:1.5;overflow-wrap:anywhere}.remove-confirm>div{display:flex;flex-wrap:wrap;gap:8px}.remove-confirm button{flex:1;min-height:44px}.notice{padding:14px;margin-bottom:16px;background:#c8f65b14;border:1px solid #647d3b;border-radius:8px;color:#d9edb0}.beer-fields{border:1px solid #34404d;border-radius:10px;padding:14px;margin:12px 0}.beer-fields legend{color:#c8f65b;padding:0 8px}.beer-fields p{font-size:12px;line-height:1.6}.beer-numbers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.beer-info{color:#a8b9c7;font-size:12px!important;line-height:1.6;overflow-wrap:anywhere}.beer-ledger{margin-bottom:24px;padding:20px}.beer-ledger .panel-title{padding:0 0 12px;flex-wrap:wrap;gap:10px}.ledger-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ledger-total{display:flex;flex-wrap:wrap;gap:24px;margin:14px 0}.ledger-total strong{font-size:28px;color:#c8f65b}.ledger-total span{font-size:13px;font-weight:400;color:#b9c5cf}.ledger-groups{display:grid;grid-template-columns:1fr 1fr;gap:24px}.ledger-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #34404d;font-size:12px}.ledger-row b{overflow-wrap:anywhere}.ledger-row span{flex-shrink:0;color:#a8b9c7}.ledger-table{overflow-x:auto;margin-bottom:16px}.ledger-table table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.ledger-table th,.ledger-table td{padding:12px;border-bottom:1px solid #34404d;white-space:nowrap}.beer-ledger>small{color:#9da9b5;line-height:1.7}@media(max-width:800px){.ledger-filters,.ledger-groups{grid-template-columns:1fr}.ledger-filters{gap:0}.ledger-filters label{margin:8px 0}.ledger-total{gap:10px}.ledger-total strong{font-size:24px}.beer-ledger{padding:16px}.beer-numbers{gap:8px}}.beer-image-field{border:1px solid #34404d;border-radius:10px;padding:14px;margin:16px 0}.beer-image-field h3{margin-top:0}.beer-image-field p{font-size:12px;line-height:1.6;color:#a8b9c7}.beer-image-field>img{display:block;max-width:100%;width:140px;height:160px;object-fit:contain;background:#0b131d;border-radius:8px}.catalogue-image{display:block;width:120px;max-width:100%;margin:12px 0;text-decoration:none}.catalogue-image img{display:block;width:100%;height:140px;object-fit:contain;background:#0b131d;border-radius:8px}.catalogue-image small{display:block;color:#a8b9c7;font-size:10px;margin-top:5px}.catalogue-image.compact{flex-shrink:0;width:64px;margin:0}.catalogue-image.compact img{height:88px}
