/* BeeLatch Pro customer dashboard (demo + live). Uses /assets/emg.css tokens. */
body.trk{background:var(--bg);color:var(--text);font-family:var(--sans);margin:0}
.trk-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:10px 16px;background:rgba(10,17,29,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.trk-top a.brand{color:var(--text);text-decoration:none;font-weight:900;letter-spacing:-.01em;display:flex;gap:8px;align-items:center}
.trk-top a.brand b{color:var(--gold)}
.trk-top .sp{flex:1}
.trk-top .who{font:700 12px/1 var(--mono);color:var(--muted);max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.demo-banner{background:rgba(96,165,250,.12);border-bottom:1px solid rgba(96,165,250,.4);color:#bfdbfe;font:700 12.5px/1.45 var(--sans);padding:8px 16px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.demo-banner b{font-family:var(--mono);letter-spacing:.1em;color:#93c5fd}
.demo-banner .sp{flex:1}
.trk-main{max-width:var(--max);margin:0 auto;padding:16px 16px 60px}
.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;scrollbar-width:none}
.tabs button{flex:none;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line2);background:var(--surface);color:var(--soft);font:800 13px/1 var(--sans);cursor:pointer}
.tabs button[aria-selected="true"]{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;align-items:start}
@media(max-width:900px){.grid{grid-template-columns:minmax(0,1fr)}}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media(max-width:520px){.cards{grid-template-columns:minmax(0,1fr)}}
.card{background:linear-gradient(180deg,var(--surface2),var(--surface));border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;min-width:0}
.card h3{margin:0 0 8px;font:800 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.card .big{font:900 30px/1.05 var(--sans);letter-spacing:-.02em}
.card .sub{color:var(--dim);font-size:13px;margin-top:6px;line-height:1.45}
.card.wide{grid-column:1/-1}
.map{height:420px;border-radius:var(--r);border:1px solid var(--line);overflow:hidden;background:var(--bg2)}
@media(max-width:600px){.map{height:300px}}
.guard{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.guard .state{font:900 26px/1 var(--sans);letter-spacing:.02em}
.guard .state.ARMED{color:var(--green)}.guard .state.DISARMED{color:var(--muted)}.guard .state.ALARM{color:var(--red)}
.btn{min-height:44px;padding:0 18px;border-radius:14px;border:1px solid var(--line2);background:var(--bg);color:var(--text);font:800 14px/1 var(--sans);cursor:pointer}
.btn:hover{border-color:var(--gold)}
.btn.primary{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.btn.danger{border-color:var(--red);color:var(--red)}
.btn:disabled{opacity:.5;cursor:default}
.btn.sm{min-height:34px;padding:0 12px;font-size:12.5px;border-radius:10px}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font:800 11px/1 var(--mono);letter-spacing:.06em;border:1px solid var(--line2);color:var(--soft)}
.pill.ok{border-color:rgba(74,222,128,.5);color:var(--green)}.pill.warn{border-color:rgba(251,191,36,.5);color:var(--amber)}.pill.bad{border-color:rgba(248,113,113,.5);color:var(--red)}
.bars{display:inline-flex;gap:3px;align-items:flex-end;height:18px;vertical-align:middle}
.bars i{width:5px;background:var(--line2);border-radius:2px}
.bars i.on{background:var(--green)}
.list{display:grid;gap:8px}
.item{display:flex;gap:12px;align-items:center;justify-content:space-between;background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:10px 12px;flex-wrap:wrap}
.item .t{font-weight:800}.item .m{color:var(--dim);font-size:12.5px}
.item.alert-ALARM,.item.alert-SOS{border-color:rgba(248,113,113,.5)}
.form{display:grid;gap:12px}
.form label{display:grid;gap:6px;font-weight:700;font-size:14px}
.form select,.form input[type=number],.form input[type=email]{min-height:42px;border-radius:12px;border:1px solid var(--line2);background:var(--bg);color:var(--text);padding:0 12px;font:600 14px var(--sans)}
.matrix{width:100%;border-collapse:collapse;font-size:14px}
.matrix th,.matrix td{padding:9px 6px;border-bottom:1px solid var(--line);text-align:left}
.matrix td.c,.matrix th.c{text-align:center}
.matrix input{width:20px;height:20px;accent-color:var(--gold)}
.tnote{color:var(--dim);font-size:12.5px;line-height:1.5}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:50;background:var(--surface2);border:1px solid var(--gold);color:var(--text);border-radius:14px;padding:12px 16px;max-width:min(520px,calc(100vw - 32px));box-shadow:0 20px 40px rgba(0,0,0,.5);font-size:14px;line-height:1.45}
.toast.bad{border-color:var(--red)}
dialog{background:var(--surface);color:var(--text);border:1px solid var(--line2);border-radius:var(--r);max-width:min(460px,calc(100vw - 32px));padding:18px}
dialog::backdrop{background:rgba(0,0,0,.6)}
dialog h3{margin:0 0 8px}
dialog .row{display:flex;gap:10px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px}
.kv dt{color:var(--dim)}.kv dd{margin:0;font-family:var(--mono);overflow-wrap:anywhere}
.hidden{display:none!important}
.signin{max-width:520px;margin:10vh auto;padding:0 16px;text-align:center}
.leaflet-container{background:var(--bg2)}
@media(max-width:520px){.trk-top .who{display:none}}
