:root{color-scheme:light;--bg:#edf1f5;--ink:#162a40;--muted:#5a6b7b;--line:#d8e1e9;--blue:#146bea;--orange:#c75b13;--green:#087956}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}header{background:#10273c;color:white;padding:24px 3%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;gap:16px;align-items:center}.brand b{font-size:12px;letter-spacing:.18em;color:#a9bfd0}.mark{border:2px solid #91b3cc;padding:9px;font-weight:800;font-size:22px}h1{font-size:23px;margin:3px 0 0;font-weight:600;letter-spacing:-.03em}.session{display:flex;align-items:center;gap:18px;font-variant-numeric:tabular-nums}#elapsed{font-size:26px}.pill{border:1px solid #62819a;border-radius:30px;font-size:14px;padding:5px 12px}.pill.live{border-color:#59cfb0;color:#80e1c4}main{max-width:1660px;margin:auto;padding:22px 3%}.toolbar{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:16px}label{font-size:14px}select,button,input{font:inherit}select,button{padding:9px 12px;border:1px solid #bdcad5;border-radius:5px;background:white;color:var(--ink)}button{cursor:pointer;font-size:14px;font-weight:600}button:hover{background:#edf5ff}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #2586ff;outline-offset:3px}#connection{color:var(--muted);font-size:14px;flex:1}#notice{font-size:14px;border-left:3px solid #9caebd;background:#e2e9f0;padding:10px 15px;margin-bottom:20px}.devices{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.device{background:white;border:1px solid var(--line);border-top:4px solid var(--color);border-radius:7px;padding:21px 24px;min-width:0}.device-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.device input{font-weight:650;font-size:21px;border:0;border-bottom:1px dashed #bdcad5;width:100%;max-width:330px;color:var(--ink);padding:3px 0}.device-title>div{min-width:0}.tiny{font-size:13px;color:var(--muted)}.badge{font-size:13px;padding:4px 9px;border-radius:4px;background:#fff0d8;color:#835505;white-space:nowrap}.badge.good{background:#def4e9;color:#126246}.hero-metrics{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:10px;margin:22px 0 20px}.metric-value{font-size:34px;line-height:1.3;letter-spacing:-.04em;font-weight:650;font-variant-numeric:tabular-nums;color:var(--color)}.metric-label{font-size:14px;color:var(--muted)}.position-line{padding-top:13px;border-top:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap}.position-line strong{font-variant-numeric:tabular-nums;font-size:16px}.counter-line{display:flex;gap:20px;font-size:14px;flex-wrap:wrap;margin-top:15px}.counter-line b{font-variant-numeric:tabular-nums}.visuals{display:grid;grid-template-columns:1.05fr 1fr;gap:20px}.panel{background:white;border:1px solid var(--line);border-radius:7px;padding:20px 23px;margin-bottom:20px;min-width:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.eyebrow{font-size:12px;letter-spacing:.16em;color:var(--muted);font-weight:700}h2{font-size:18px;font-weight:650;margin:3px 0;letter-spacing:-.02em}.second{margin-top:6px}.map-controls{display:flex;gap:15px;flex-wrap:wrap;margin-bottom:12px}.map-controls label{display:flex;align-items:center;gap:5px}#map{height:360px;border-radius:5px;background:#e4ebf1;z-index:0}.footnote,footer{font-size:13px;color:var(--muted)}.footnote{margin:12px 0 0}.panel > svg{width:100%;display:block}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums}th{font-size:13px;color:var(--muted);background:#f5f8fa;font-weight:650}td,th{padding:11px 14px;border-bottom:1px solid #e5ebf0}td{font-size:15px}td:first-child{width:42%}td small{display:block;font-size:12px;color:var(--muted);font-weight:400}.muted{color:#7d8994}.stale{color:#986019}.group th{background:#eaf0f5;color:#29455f;text-transform:uppercase;letter-spacing:.09em;font-size:12px}.source{font-size:12px;display:block;color:var(--muted)}details summary{cursor:pointer;font-weight:600}details .panel{padding:12px}pre{white-space:pre-wrap;word-break:break-all;font:13px/1.6 ui-monospace,monospace;background:#f2f5f8;padding:12px;border-radius:4px}#raw{display:grid;grid-template-columns:1fr 1fr;gap:20px}#raw h3{font-size:16px}.raw-fields{font:12px/1.7 ui-monospace,monospace;word-break:break-all}.raw-fields span{display:inline-block;padding:1px 6px;border:1px solid #d8e1e9;margin:2px;border-radius:3px}footer{padding:0 0 20px}.legend-tooltip{background:white;color:#162a40}.empty{padding:25px;color:var(--muted)}@media(max-width:1000px){.visuals{grid-template-columns:1fr}.hero-metrics{grid-template-columns:1fr 1fr}.hero-metrics>div:first-child{grid-column:1/-1}.device{padding:16px}header{padding:18px 3%}}@media(max-width:650px){header{align-items:flex-start;flex-direction:column;gap:12px}.devices{grid-template-columns:1fr}.hero-metrics{grid-template-columns:1fr 1fr 1fr}.hero-metrics>div:first-child{grid-column:auto}.metric-value{font-size:28px}.panel{padding:16px}#raw{grid-template-columns:1fr}td,th{padding:9px 10px}.toolbar{gap:10px}.toolbar label{max-width:100%}.toolbar select{max-width:100%}.session{width:100%;justify-content:space-between}#map{height:310px}}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}.receiver-column{min-width:0}.receiver-column .device{margin-bottom:16px}.receiver-column .panel{margin-bottom:16px}.device-title{position:relative}.metric-value{font-size:32px}.hero-metrics{grid-template-columns:1fr 1fr 1fr;margin:20px 0}.hero-metrics>div:first-child{grid-column:auto}.position-line{display:grid;grid-template-columns:1fr 1fr;gap:12px}.nav-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.nav-grid strong{display:block;font-size:20px;font-variant-numeric:tabular-nums}.receiver-map{height:320px;border-radius:4px;background:#e4ebf1}.panel table td:first-child{width:62%}.receiver-column .raw-list{display:block}.receiver-column .raw-list details{margin:8px 0}.map-status{min-height:38px}.controls{border-bottom:1px solid #c9d6e0;padding-bottom:16px}.pane-label{font-size:12px;letter-spacing:.16em;color:var(--color);font-weight:750;margin-bottom:8px}.receiver-column .panel > svg{height:auto}.receiver-column .panel .section-head{margin-bottom:10px}.receiver-column .panel .tiny{min-height:36px}.receiver-column .panel .table-scroll td{vertical-align:top}.ece{font-size:13px;line-height:1.4;color:var(--muted)}.metric-label .hint{border-bottom:1px dotted #778899}.device .tiny{margin-top:4px;min-height:20px}.source{max-width:360px}@media(max-width:950px){.split{gap:12px}.device{padding:14px}.panel{padding:14px}.metric-value{font-size:27px}.position-line{grid-template-columns:1fr}.device input{font-size:18px}.device-title{flex-wrap:wrap}.nav-grid strong{font-size:18px}.hero-metrics{gap:8px}.metric-label{font-size:13px}}@media(max-width:700px){.split{grid-template-columns:1fr}.receiver-column{margin-bottom:20px}.position-line{grid-template-columns:1fr 1fr}.receiver-map{height:300px}.hero-metrics{grid-template-columns:1fr 1fr 1fr}.metric-value{font-size:29px}}

.capture-settings{display:grid;grid-template-columns:2fr 2fr 1fr 1fr;gap:15px}.capture-settings label{display:flex;flex-direction:column;gap:5px;min-width:0}.capture-settings select{width:100%}.capture-settings input{padding:9px 12px;border:1px solid #bdcad5;border-radius:5px;width:100%;color:var(--ink);background:white}.capture-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}.capture-actions .primary{background:#146bea;color:white;border-color:#146bea}.capture-actions button:disabled{opacity:.45;cursor:not-allowed}#capture-status{font-size:14px;color:var(--muted);flex:1;min-width:220px}#capture-error{color:#a42a24;font-size:14px;margin-top:10px}#capture-error:empty{display:none}@media(max-width:900px){.capture-settings{grid-template-columns:1fr 1fr}}@media(max-width:480px){.capture-settings{grid-template-columns:1fr}}

.receiver-label{font-size:13px;font-weight:700;border:2px solid currentColor;background:white;box-shadow:none}.leaflet-tooltip.receiver-label{color:#162a40}
.timeline{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);width:94%;max-width:1560px;z-index:1100;padding:10px 20px;margin:0;box-shadow:0 6px 22px #10273c24}main{padding-bottom:190px}@media(max-width:650px){.timeline{bottom:calc(6px + env(safe-area-inset-bottom));padding:8px 14px}main{padding-bottom:200px}}.timeline-head,.timeline-labels{display:flex;justify-content:space-between;align-items:center;gap:12px}.timeline-head strong{display:block;font-variant-numeric:tabular-nums}.timeline input[type=range]{width:100%;accent-color:var(--blue);margin:14px 0 4px}.timeline-labels{font-size:12px;color:var(--muted)}#go-live:not(:disabled){background:#087956;color:white;border-color:#087956}
.config-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none}.config-panel>summary::-webkit-details-marker{display:none}.config-panel>summary strong{display:block;font-size:18px;margin-top:3px}.summary-note{font-size:13px;color:var(--muted)}.config-split{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.config-device{border:1px solid var(--line);border-top:4px solid var(--color);border-radius:6px;padding:17px;min-width:0}.config-device-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.config-device h3{margin:2px 0 14px;font-size:18px}.config-mode{background:#eaf2ff;border:1px solid #bdd3f4;border-radius:4px;color:#124f9c;font-size:13px;font-weight:650;padding:5px 8px}.config-grid,.config-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.config-grid label,.config-fields label{display:flex;flex-direction:column;gap:5px;min-width:0}.config-grid select,.config-fields select,.config-fields input{width:100%;padding:9px 10px;border:1px solid #bdcad5;border-radius:5px;background:white;color:var(--ink)}.config-fields{margin-top:12px}.config-fields:has(>label:nth-child(3)){grid-template-columns:repeat(3,1fr)}.config-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.config-actions .primary{background:#146bea;color:#fff;border-color:#146bea}.config-actions button:disabled{opacity:.45;cursor:not-allowed}.config-result{font-size:13px;background:#f1f5f8;border-left:3px solid #90a4b5;padding:9px 11px;margin-top:12px}.config-result.success{background:#e2f4eb;border-color:#087956;color:#126246}.config-result.error,.error{background:#fff0ee;border-color:#b53b34;color:#962c26}.read-only-box{grid-column:1/-1;background:#f1f5f8;padding:10px;color:var(--muted);font-size:14px}@media(max-width:850px){.config-split{grid-template-columns:1fr}.config-fields:has(>label:nth-child(3)){grid-template-columns:1fr 1fr}}@media(max-width:520px){.config-grid,.config-fields,.config-fields:has(>label:nth-child(3)){grid-template-columns:1fr}.config-panel>summary{align-items:flex-start;flex-direction:column}}
.brand{gap:20px}.brand-logo{display:block;width:220px;height:auto}.brand h1{margin:0;padding-left:20px;border-left:1px solid #4d657a}@media(max-width:650px){.brand{align-items:flex-start;flex-direction:column;gap:10px}.brand-logo{width:190px}.brand h1{padding-left:0;border-left:0}}
.capture-labels{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr) minmax(240px,1.2fr);gap:12px;align-items:end;margin-bottom:15px}.capture-labels label{display:flex;flex-direction:column;gap:5px}.capture-labels input{width:100%;padding:9px 12px;border:1px solid #bdcad5;border-radius:5px;color:var(--ink)}.versus{font-size:13px;font-weight:750;color:var(--muted);padding-bottom:10px}.capture-name-preview{font:12px/1.4 ui-monospace,monospace;color:var(--muted);padding-bottom:10px;overflow-wrap:anywhere}@media(max-width:900px){.capture-labels{grid-template-columns:1fr auto 1fr}.capture-name-preview{grid-column:1/-1;padding-bottom:0}}@media(max-width:520px){.capture-labels{grid-template-columns:1fr}.versus{display:none}}
.summary-table th:not(:first-child),.summary-table td:not(:first-child){text-align:right}.summary-table td:first-child{width:40%}.summary-table td strong{font-size:16px}.summary-table .positive{color:#087956}.summary-table .negative{color:#a33d32}.summary-panel .badge{background:#eaf2ff;color:#124f9c}@media(max-width:650px){.summary-table td,.summary-table th{min-width:115px}.summary-table td:first-child,.summary-table th:first-child{position:sticky;left:0;background:white;z-index:1;min-width:190px}.summary-table th:first-child{background:#f5f8fa}}
.auth-panel{display:flex;justify-content:space-between;align-items:center;gap:24px}.auth-panel p{margin:.3rem 0 0;color:var(--muted)}.auth-actions{display:flex;align-items:center;gap:10px;min-width:min(520px,100%)}.auth-actions input{flex:1}.auth-panel.connected{border-color:#45a56b}.webserial-settings{align-items:stretch}.serial-picker{display:grid;gap:6px;min-width:220px}.serial-picker>span,.serial-picker>strong{font-size:.78rem}.serial-picker>strong{color:var(--muted);font-weight:600}.serial-picker.connected>strong{color:#22834b}.serial-picker.error>strong{color:#b93333}@media(max-width:760px){.auth-panel{display:grid}.auth-actions{min-width:0;flex-wrap:wrap}}
.tiles-failed{background-color:#dce5ec;background-image:linear-gradient(#c9d5df 1px,transparent 1px),linear-gradient(90deg,#c9d5df 1px,transparent 1px);background-size:32px 32px}.advanced-options>summary{display:flex;justify-content:space-between;align-items:center;gap:16px}.advanced-options>summary span:first-child{display:flex;flex-direction:column}.advanced-capture{padding:18px 0;border-bottom:1px solid var(--line)}.advanced-capture h3,.config-panel h3{margin:0;font-size:17px}.advanced-capture-settings{grid-template-columns:1fr 1fr 2fr;max-width:900px}.advanced-options .config-panel{padding-top:20px}.advanced-options:not([open]){padding-bottom:20px}@media(max-width:700px){.advanced-capture-settings{grid-template-columns:1fr}.advanced-options>summary{align-items:flex-start;flex-direction:column}}
.offline-tools{padding:18px 0;border-bottom:1px solid var(--line)}.offline-tools h3{margin:0;font-size:17px}.offline-actions{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.file-picker{display:flex;flex-direction:column;gap:5px}.file-picker input{padding:7px;border:1px solid #bdcad5;border-radius:5px;background:white}.offline-actions #import-status{color:var(--muted);font-size:13px;overflow-wrap:anywhere}
