:root{--bg:#f4f5f7;--panel:#fff;--text:#14213d;--muted:#5c677d;--accent:#fca311;--rx:#2a9d8f;--tx:#d62828;--border:#d8dce3;color:var(--text);background:var(--bg);font-family:system-ui,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b132b;--panel:#1c2541;--text:#e8ecf4;--muted:#9aa5ba;--border:#3a506b}}:root[data-theme=dark]{--bg:#0b132b;--panel:#1c2541;--text:#e8ecf4;--muted:#9aa5ba;--border:#3a506b}:root[data-text=large]{font-size:125%}body{background:var(--bg);margin:0}button{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;border-radius:6px;padding:.4rem .8rem}button:disabled{opacity:.4;cursor:default}button.link{background:0 0;border:none;text-decoration:underline}input,select{font:inherit}.center{text-align:center;margin-top:30vh}.muted{color:var(--muted)}.error{color:var(--tx)}.ok{color:var(--rx)}.warn{color:var(--accent)}.setup{background:var(--panel);border-radius:10px;flex-direction:column;gap:.7rem;max-width:26rem;margin:10vh auto;padding:1.5rem;display:flex}.setup label{flex-direction:column;gap:.2rem;display:flex}header{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.notice{color:var(--accent);margin:.5rem 1rem}.grid{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.8rem;padding:1rem;display:grid}.tile{background:var(--panel);border:2px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;gap:.5rem;padding:.7rem;display:flex}.tile.selected{border-color:var(--accent)}.tile.rx{border-color:var(--rx)}.tile.tx{border-color:var(--tx)}.tile.emergency{border-color:var(--tx);background:color-mix(in srgb, var(--tx) 15%, var(--panel))}.tile.off{opacity:.7}.tile h2{margin:0;font-size:1.05rem}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.row.small{font-size:.85rem}.badge{background:var(--accent);color:#14213d;border-radius:4px;padding:.1rem .4rem;font-size:.75rem}.talker{min-height:1.3rem;margin:0}.ptt{touch-action:none;flex:1;font-weight:600}.tile.tx .ptt{background:var(--tx);color:#fff}.incidents{flex-direction:column;gap:.4rem;margin:.6rem 1rem 0;display:flex}.incident{background:color-mix(in srgb, var(--tx) 18%, var(--panel));border:2px solid var(--tx);border-radius:8px;flex-wrap:wrap;align-items:center;gap:1rem;padding:.6rem .8rem;display:flex}.incident.open{animation:.9s steps(2,end) infinite flash}@keyframes flash{50%{background:var(--tx);color:#fff}}.body{align-items:flex-start;display:flex}.body .grid{flex:1}.messages{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.4rem;width:22rem;max-width:40vw;max-height:calc(100vh - 6rem);margin:1rem 1rem 1rem 0;padding:.7rem;display:flex}.messages .thread,.messages .pick{text-align:left;flex-direction:column;gap:.2rem;display:flex}.messages .preview{white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.bubbles{flex-direction:column;flex:1;gap:.4rem;min-height:10rem;display:flex;overflow-y:auto}.bubble{border-radius:10px;flex-direction:column;gap:.15rem;max-width:85%;padding:.45rem .6rem;display:flex}.bubble.in{background:color-mix(in srgb, var(--rx) 18%, var(--panel));align-self:flex-start}.bubble.out{background:color-mix(in srgb, var(--accent) 22%, var(--panel));align-self:flex-end}.bubble .from{font-size:.75rem;font-weight:600}.bubble .meta{color:var(--muted);font-size:.7rem}.compose{gap:.4rem;display:flex}.compose input{flex:1;padding:.4rem}@media (max-width:800px){.body{flex-direction:column}.messages{width:auto;max-width:none;margin:0 1rem 1rem}}.views{gap:.3rem;display:flex}.views button.on{background:var(--accent);color:#111;border-color:#0000}.map{flex:1;gap:.8rem;min-height:0;padding:1rem;display:flex}.map-main{flex-direction:column;flex:1;gap:.5rem;min-width:0;display:flex}.map-canvas{border:1px solid var(--border);border-radius:10px;flex:1;min-height:60vh;overflow:hidden}p.map-canvas{justify-content:center;align-items:center;padding:1rem;display:flex}.people{flex-direction:column;gap:.3rem;width:15rem;max-height:calc(100vh - 8rem);margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.people .pick{text-align:left;flex-direction:column;align-items:flex-start;width:100%;display:flex}.people .pick.incident{border-color:#dc2626}.pin{cursor:default;align-items:center;gap:.25rem;display:flex}.pin .dot{background:#2563eb;border:2px solid #fff;border-radius:50%;width:12px;height:12px;box-shadow:0 0 2px #0008}.pin .label{color:#111;white-space:nowrap;background:#fffd;border-radius:3px;padding:0 .25rem;font-size:.75rem}.pin.hidden .dot{background:#6b7280}.pin.hidden .label{font-style:italic}.pin.incident .dot{background:#dc2626;width:16px;height:16px;animation:1s infinite alternate pulse}.pin .dot{justify-content:center;align-items:center;display:inline-flex;position:relative}.pin.unit .dot{width:20px;height:20px}.pin .letter{font:700 .65rem/1 system-ui,sans-serif}.pin .arrow{pointer-events:none;position:absolute;inset:-9px}.pin .arrow:before{content:"";border:5px solid #0000;border-top:0;border-bottom:7px solid #111827;position:absolute;top:0;left:50%;transform:translate(-50%)}.pin.stale{opacity:.45}.pin.stale .label{font-style:italic}@keyframes pulse{to{box-shadow:0 0 0 6px #dc262655}}@media (max-width:800px){.map{flex-direction:column}.people{width:auto;max-height:none}}.map-tools{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.map-tools label{align-items:center;gap:.35rem;display:flex}.map-tools select,.map-tools input{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;padding:.3rem}.map-tools input[type=number]{width:6rem}.map-tools .tool-buttons{gap:.2rem;display:inline-flex}.map-tools .tool-buttons button.on{outline:2px solid var(--accent,#2563eb)}.map-tools .tool-hint{flex-basis:100%}.map-frame{flex:1;min-height:0;display:flex}.map-frame .map-canvas{flex:1}.map-frame.drawing .maplibregl-canvas{cursor:crosshair}.objpin{cursor:pointer;background:0 0;border:0;align-items:center;gap:.25rem;padding:0;display:flex}.objpin .badge{color:#fff;text-align:center;border:2px solid #fff;border-radius:4px;min-width:22px;height:22px;padding:0 3px;font:700 .7rem/22px system-ui,sans-serif;box-shadow:0 0 2px #0008}.objpin .label{color:#111;white-space:nowrap;background:#fffd;border-radius:3px;padding:0 .25rem;font-size:.75rem}.reportpin{color:#fff;text-align:center;cursor:pointer;background:#0f766e;border:2px solid #fff;border-radius:50%;width:22px;height:22px;padding:0;font:700 .7rem/18px system-ui,sans-serif;box-shadow:0 0 2px #0008}.map-report{border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:.3rem;max-width:28rem;margin:.4rem 0;padding:.5rem .75rem;display:flex}.report dl{grid-template-columns:auto 1fr;gap:.1rem .6rem;margin:.2rem 0;display:grid}.report dl div{display:contents}.report dt{color:var(--muted,#666)}.report dd{margin:0}.map-objects h3{margin:.2rem 0;font-size:.95rem}.map-objects ul{flex-direction:column;gap:.25rem;max-height:14rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.map-objects li{align-items:center;gap:.5rem;display:flex}.map-objects li.picked .pick{border-color:var(--accent,#2563eb)}.map-objects .pick{text-align:left;flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.map-objects .swatch{border-radius:3px;flex:none;width:12px;height:12px}.history{flex-direction:column;flex:1;gap:.6rem;min-width:0;padding:1rem;display:flex}.history select,.history input{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;padding:.35rem}.bursts{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.bursts li{background:var(--panel);border:1px solid var(--border);border-radius:8px;grid-template-columns:5.5rem 11rem 1fr auto;align-items:center;gap:.6rem;padding:.35rem .5rem;display:grid}.bursts li.emergency{border-color:#dc2626}.bursts li.muted{display:block}.bursts li .transcript{grid-column:1/-1;margin:0;padding-left:6.1rem;line-height:1.35}.history .search{flex:1;gap:.4rem;min-width:14rem;display:flex}.history .search input{flex:1;min-width:0}@media (max-width:800px){.bursts li .transcript{padding-left:0}.bursts li{grid-template-columns:5rem 1fr}}.dialog{z-index:10;background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.6rem;width:min(30rem,100vw - 2rem);max-height:calc(100vh - 6rem);padding:1rem;display:flex;position:fixed;top:4rem;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 10px 40px #0006}.dialog input:not([type]),.dialog select{font:inherit;border:1px solid var(--border);background:var(--bg,transparent);color:var(--text);border-radius:6px;padding:.4rem}.people-pick{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.25rem;max-height:40vh;display:grid;overflow-y:auto}button.primary{background:var(--accent);color:#111;border-color:#0000}button.danger{color:#fff;background:#dc2626;border-color:#0000}.people-view{flex:1;grid-template-columns:repeat(auto-fill,minmax(22rem,1fr));align-content:start;gap:.8rem;min-width:0;padding:1rem;display:grid}.person{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.7rem}.person ul{flex-direction:column;gap:.5rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.unit-line{align-items:center;gap:.4rem;margin-left:.5rem;font-size:.9rem;display:inline-flex}.badge.law{color:#fff;background:#1d4ed8}.badge.agency{color:#fff;background:#4b5563;margin-left:.3rem}.units.whole li{font-size:.95rem}.device{grid-template-columns:auto 1fr;align-items:center;gap:.2rem .5rem;display:grid}.device>:nth-child(n+3){grid-column:2}.dot{background:#6b7280;border-radius:50%;width:10px;height:10px;display:inline-block}.dot.on{background:#16a34a}.alerts{flex-direction:column;gap:.4rem;padding:.6rem 1rem 0;display:flex}.alert{background:var(--panel);border:2px solid var(--accent);border-radius:8px;align-items:center;gap:.8rem;padding:.5rem .8rem;display:flex}.alert strong{flex:1}.board{flex-direction:column;flex:1;gap:.5rem;min-width:0;padding:1rem;display:flex}.lw{background:var(--panel);border:1px solid var(--border);border-radius:10px;grid-template-columns:10rem 1fr 1fr auto;align-items:center;gap:.3rem .8rem;padding:.6rem .8rem;display:grid}.lw>.muted{grid-column:1/4}.lw.alarm,.lw.overdue{background:color-mix(in srgb, #dc2626 12%, var(--panel));border:2px solid #dc2626}.lw.asking{border:2px solid var(--accent)}.badge.alarm{color:#fff;background:#dc2626;margin-left:.3rem}@media (max-width:800px){.lw{grid-template-columns:1fr}.lw>.muted{grid-column:auto}}.compose .aloud{white-space:nowrap;align-items:center;gap:.2rem;font-size:.85rem;display:flex}.notices{flex-direction:column;gap:.25rem;padding:.5rem 1rem 0;display:flex}.notice-row{background:var(--panel);border:1px solid var(--border);border-radius:8px;align-items:center;gap:.8rem;padding:.35rem .7rem;display:flex}.notice-row>span:first-child{flex:1}.trail-pick{align-items:center;gap:.3rem;padding:.15rem .3rem;font-size:.8rem;display:flex}.send-units{flex-wrap:wrap;align-items:center;gap:.3rem .8rem;padding:.3rem .5rem;font-size:.85rem;display:flex}.send-units label{align-items:center;gap:.25rem;display:flex}.fences{padding:0 .3rem;font-size:.8rem}.cached{padding:.3rem 1rem 0}.tile.size-compact{gap:.3rem;padding:.45rem}.tile.size-compact .talker{margin:0;font-size:.85rem}.tile.size-large{grid-column:span 2}.tile.size-large h2{font-size:1.4rem}.tile.size-large .talker{font-size:1.2rem}.tile.color-blue,.swatch.color-blue{--tile:#2563eb}.tile.color-green,.swatch.color-green{--tile:#16a34a}.tile.color-purple,.swatch.color-purple{--tile:#7c3aed}.tile.color-orange,.swatch.color-orange{--tile:#ea580c}.tile.color-gray,.swatch.color-gray{--tile:#6b7280}.tile[class*=color-]{border-left:8px solid var(--tile)}.swatch{background:var(--tile,var(--panel));border-radius:50%;width:1.3rem;height:1.3rem;padding:0}.swatch.on{outline:2px solid var(--text);outline-offset:1px}.tile .tune{align-self:flex-end;padding:0;font-size:.8rem}.popout{text-align:right;margin:0;padding:.3rem 1rem 0}.app.detached{min-height:100vh}.paging{flex-direction:column;flex:1;gap:.7rem;max-width:46rem;padding:1rem;display:flex}.paging h2,.paging h3{margin:.3rem 0 0}.paging select{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;margin-left:.5rem;padding:.35rem}.tone-sets,.recent-pages{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.tone-sets label{background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:.6rem;padding:.4rem .6rem;display:flex}.recent-pages li{background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:.6rem;padding:.35rem .6rem;display:flex}.recent-pages .cad-call{flex-basis:100%;margin:0}.recent-pages .cad-call .narrative{white-space:pre-wrap;color:var(--muted,inherit);max-height:6em;font-size:.9em;display:block;overflow:auto}.incidents-view{flex:1;gap:1rem;min-width:0;min-height:0;padding:1rem;display:flex}.incident-list{flex-direction:column;gap:.5rem;width:18rem;display:flex}.incident-list h2,.incident-detail h2{margin:0;font-size:1.1rem}.incident-list ul{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.incident-list .pick{text-align:left;flex-direction:column;align-items:flex-start;width:100%;display:flex}.incident-list .pick.on{border-color:var(--accent)}.share-badge{border:1px solid var(--accent);color:var(--accent);border-radius:.6rem;padding:0 .4rem;font-size:.75rem}.share-note{border-left:3px solid var(--accent);margin:0;padding:.4rem .6rem}.partners{flex-direction:column;gap:.2rem;margin:0;padding:0;list-style:none;display:flex}.incident-detail{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;flex:1;gap:.6rem;min-width:0;padding:1rem;display:flex;overflow-y:auto}.incident-detail h3{margin:.4rem 0 0;font-size:.95rem}.incident-detail label{flex-direction:column;gap:.25rem;display:flex}.incident-detail input,.incident-detail select{font:inherit;border:1px solid var(--border);background:var(--bg,var(--panel));color:var(--text);border-radius:6px;padding:.35rem}.incident-detail fieldset{border:1px solid var(--border);border-radius:8px}.incident-detail .row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.incident-detail .row input{flex:1;min-width:12rem}.unit-checks{flex-wrap:wrap;gap:.3rem 1rem;display:flex}.unit-checks label{flex-direction:row;align-items:center}.units{flex-wrap:wrap;gap:.3rem 1rem;margin:0;padding:0;list-style:none;display:flex}.timeline{flex-direction:column;gap:.25rem;margin:0;padding-left:1.2rem;display:flex}.timeline .when{font-variant-numeric:tabular-nums;color:var(--muted,#94a3b8);margin-right:.3rem}.timeline li.emergency{color:#dc2626;font-weight:600}button.danger{color:#dc2626;border-color:#dc2626}@media (max-width:800px){.incidents-view{flex-direction:column}.incident-list{width:auto}}.checklist,.rollcall{margin:.2rem 0;padding:0;list-style:none}.checklist li,.rollcall li{padding:.15rem 0}.rollcall li.missing{color:var(--danger,#b91c1c)}.quick-alerts{flex-direction:column;gap:.3rem;margin:.3rem 0;display:flex}.quick-alert{color:#111;background:#fef3c7;border:1px solid #f59e0b;border-radius:6px;flex-wrap:wrap;align-items:center;gap:.4rem .8rem;padding:.4rem .6rem;display:flex}.quick-alert.attention{background:#fee2e2;border-color:#dc2626}.attention-send select,.attention-send input{max-width:16rem}.alertpin{color:#fff;text-align:center;background:#dc2626;border:2px solid #fff;border-radius:50%;width:24px;height:24px;font:800 .8rem/20px system-ui,sans-serif;box-shadow:0 0 3px #000a}.feeds{flex-wrap:wrap;align-items:flex-start;gap:.3rem 1.2rem;padding:.3rem .5rem;font-size:.85rem;display:flex}.feeds ul{max-height:10rem;margin:.2rem 0;padding-left:1rem;overflow:auto}.vitals{border:1px solid var(--border,#9aa3b2);white-space:nowrap;border-radius:.5rem;padding:0 .35rem;font-size:.75rem}.vitals.high{color:#c62828;border-color:#c62828;font-weight:600}.scan-text{font-style:italic}.maplibregl-popup-content{color:#111}.feeds .swatch{vertical-align:middle;border-radius:50%;width:10px;height:10px;display:inline-block}
