:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark;--bg:#0d1115;--panel:#131920;--panel2:#18212a;--line:#29343e;--muted:#8494a3;--text:#e8eef2;--accent:#73d0ff;--good:#69d391;--warn:#ffca62;--bad:#ff7272;--info:#8bb9ff;--shadow:0 12px 35px rgba(0,0,0,.22)}
html[data-theme="light"]{color-scheme:light;--bg:#edf1f3;--panel:#fff;--panel2:#f5f7f8;--line:#cbd4da;--muted:#60717d;--text:#172028;--accent:#006b9d;--good:#147a3f;--warn:#9a6400;--bad:#b62c2c;--info:#315f9b;--shadow:0 10px 28px rgba(25,40,50,.12)}
*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--line);background:var(--panel2);padding:.58rem .76rem;border-radius:5px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--accent);color:#071116;border-color:var(--accent);font-weight:800}.large{padding:.9rem 1rem}.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);grid-template-rows:64px minmax(0,1fr) 32px;height:100vh}.topbar{grid-column:1/3;display:grid;grid-template-columns:220px minmax(210px,1fr) 130px auto auto 65px;align-items:center;border-bottom:1px solid var(--line);background:#0b0f12;padding:0 12px;gap:12px}.brand{display:flex;gap:10px;align-items:center}.brand-mark{width:34px;height:34px;border:1px solid var(--accent);display:grid;place-items:center;font-weight:900;color:var(--accent);font-family:ui-monospace,monospace}.brand h1{font-size:15px;letter-spacing:.14em;margin:0}.brand small{display:block;font-size:9px;color:#90a0ab;margin-top:2px}.top-project,.radio-status{min-width:0}.top-project span,.radio-status span{display:block;font-size:9px;letter-spacing:.14em;color:#7d8b95}.top-project strong,.radio-status strong{font-size:12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block}.demo-chip{font-style:normal;font-size:9px;margin-left:6px;color:#111;background:var(--warn);padding:2px 5px;border-radius:3px}.activity{font-family:ui-monospace,monospace;font-size:11px;white-space:nowrap}.activity-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#31404a;margin:0 4px}.activity-dot.tx{margin-left:12px}.activity-dot.pulse{background:var(--good);box-shadow:0 0 0 5px rgba(105,211,145,.15)}.conn{font-family:ui-monospace,monospace;font-size:10px;font-weight:800;letter-spacing:.04em}.conn.connected{color:var(--good)}.conn.connecting,.conn.synchronizing,.conn.reconnecting{color:var(--warn)}.conn.error{color:var(--bad)}.version{font:10px ui-monospace,monospace;color:#788894}.sidebar{grid-row:2;border-right:1px solid var(--line);background:#0c1115;padding:10px;overflow:auto}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:10px}.mode-switch button{font-size:9px;letter-spacing:.12em}.mode-switch .active{background:#dce6eb;color:#101820}.sidebar nav{display:grid;gap:3px}.nav-item{display:flex;align-items:center;gap:9px;background:transparent;border-color:transparent;text-align:left;padding:.55rem .5rem}.nav-item span{width:22px;text-align:center;color:#77909e}.nav-item b{font-size:10px;letter-spacing:.1em}.nav-item.active{background:#18232b;border-color:#2a3c48}.nav-item.active span,.nav-item.active b{color:var(--accent)}.side-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.side-actions button{font-size:9px}.privacy-note{margin-top:16px;border:1px solid var(--line);padding:10px;font-size:10px}.privacy-note b{display:block;color:var(--good);letter-spacing:.08em;margin-bottom:5px}.privacy-note span{color:#84949e;line-height:1.35}.workspace{grid-column:2;grid-row:2;min-width:0;overflow:auto;padding:18px 20px 40px}.statusbar{grid-column:1/3;grid-row:3;display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);background:#0a0e11;padding:0 12px;font:9px ui-monospace,monospace;color:#7f909b}.statusbar .spacer{flex:1}.save.saved{color:var(--good)}.save.saving,.save.unsaved{color:var(--warn)}.save.error{color:var(--bad)}.view{max-width:1600px;margin:auto}.view-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--line);padding-bottom:11px;margin-bottom:14px}.view-head h2{margin:0;font-size:16px;letter-spacing:.16em}.view-head p{margin:4px 0 0;color:var(--muted);font-size:11px}.head-actions{display:flex;gap:6px}.banner{padding:9px 12px;border:1px solid var(--line);margin:0 0 12px;font-size:11px;display:flex;gap:10px}.banner.warning{border-color:#705b2c;color:#ffd782;background:rgba(116,83,18,.15)}.banner.danger{border-color:#6b3030;color:#ff9a9a;background:rgba(100,30,30,.17)}.banner.info{border-color:#294d65;color:#9cd8ff;background:rgba(32,87,118,.13)}.banner.demo{border-color:#6a5a22;color:#ffdd82;background:rgba(120,91,18,.17)}.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;margin-bottom:12px}.metric-card{border:1px solid var(--line);background:var(--panel);padding:12px;min-height:88px}.metric-card>span{display:block;color:var(--muted);font-size:9px;letter-spacing:.12em}.metric-card strong{display:block;font:700 23px ui-monospace,monospace;margin:8px 0 4px}.metric-card small{color:var(--muted);font-size:10px}.metric-card.good strong{color:var(--good)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.panel{background:var(--panel);border:1px solid var(--line);padding:12px;min-width:0}.panel-title{font-size:9px;letter-spacing:.14em;color:var(--muted);margin-bottom:10px;font-weight:800}.message-line{display:grid;grid-template-columns:140px 1fr auto;gap:10px;padding:8px 0;border-top:1px solid var(--line);align-items:start}.message-line:first-of-type{border-top:0}.message-line span{font-size:10px;color:var(--accent)}.message-line p{font-size:12px;margin:0}.message-line time{font-size:9px;color:var(--muted)}.node-line{display:grid;width:100%;grid-template-columns:68px 50px 1fr 50px 60px;gap:8px;align-items:center;border:0;border-top:1px solid var(--line);background:transparent;text-align:left}.node-line em,.node-line small{font-style:normal;color:var(--muted);font-size:9px}.status-pill,.sev,.prov,.dir{display:inline-block;font-size:8px;font-weight:900;letter-spacing:.08em;border:1px solid currentColor;border-radius:3px;padding:3px 5px;white-space:nowrap}.status-pill.active,.status-pill.recent,.sev.info,.prov.observed{color:var(--good)}.status-pill.stale,.sev.low,.sev.medium,.prov.calculated,.prov.configured{color:var(--warn)}.status-pill.lost,.sev.high,.sev.critical{color:var(--bad)}.status-pill.unknown,.prov.inferred,.prov.user-entered{color:var(--muted)}.dir.rx{color:var(--good)}.dir.tx{color:var(--accent)}.table-wrap{overflow:auto;border:1px solid var(--line);background:var(--panel)}table{border-collapse:collapse;width:100%;font-size:10px}th{position:sticky;top:0;background:var(--panel2);z-index:1;text-align:left;font-size:8px;letter-spacing:.12em;color:var(--muted);padding:8px;border-bottom:1px solid var(--line)}td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}tr:hover td,tr.selected td{background:rgba(115,208,255,.06)}td b{display:block}td small{display:block;color:var(--muted);font-size:8px;margin-top:2px}.mono{font-family:ui-monospace,monospace}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:10px}.toolbar input{flex:1;max-width:420px}.toolbar span{font-size:10px;color:var(--muted)}input,select,textarea{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:.55rem .65rem;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.with-inspector{display:flex;gap:10px}.grow{flex:1;min-width:0}.inspector{width:340px;flex:0 0 340px;background:var(--panel);border:1px solid var(--line);padding:12px;position:sticky;top:0;align-self:flex-start;max-height:calc(100vh - 145px);overflow:auto}.inspector-head{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.12em;color:var(--muted)}.inspector-head button{border:0;background:transparent;font-size:20px}.inspector h3{font-size:16px;margin:16px 0 3px}.big-short{font:800 28px ui-monospace,monospace;color:var(--accent);margin-bottom:12px}.field{display:grid;gap:5px;font-size:9px;color:var(--muted);letter-spacing:.08em}.field textarea{min-height:100px;color:var(--text);letter-spacing:normal}.kv{margin:0 0 12px}.kv div{display:grid;grid-template-columns:125px 1fr;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}.kv dt{font-size:9px;color:var(--muted)}.kv dd{margin:0;font:10px ui-monospace,monospace;overflow-wrap:anywhere}.packet-inspector pre,.panel pre{font:9px/1.5 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:#0b1014;border:1px solid var(--line);padding:8px;max-height:360px;overflow:auto;color:#c6d5dd}.chat-layout{display:grid;grid-template-rows:minmax(300px,calc(100vh - 295px)) auto;gap:10px}.chat-stream{overflow:auto;border:1px solid var(--line);background:var(--panel);padding:14px}.bubble-row{display:flex;margin:6px 0}.bubble-row.tx{justify-content:flex-end}.bubble{max-width:min(720px,80%);border:1px solid var(--line);background:var(--panel2);padding:9px 11px}.bubble-row.tx .bubble{border-color:#315f73;background:rgba(44,113,145,.14)}.bubble-meta{display:flex;gap:10px;justify-content:space-between;font-size:8px;color:var(--muted)}.bubble-meta b{color:var(--accent)}.bubble p{margin:7px 0;font-size:12px}.bubble small{font-size:8px;color:var(--muted)}.composer{border:1px solid var(--line);background:var(--panel);padding:10px}.composer textarea{width:100%;min-height:72px;resize:vertical}.composer-controls{display:flex;gap:8px;align-items:flex-end;margin-top:8px}.composer-controls label{display:grid;gap:4px;font-size:8px;color:var(--muted)}.composer-controls .byte-count{margin-left:auto;font:10px ui-monospace,monospace;color:var(--muted)}.byte-count.over{color:var(--bad)}.local-map{border:1px solid var(--line);background:linear-gradient(180deg,#0c1418,#0e171b);box-shadow:var(--shadow)}.local-map svg{display:block;width:100%;max-height:68vh}.map-grid line{stroke:#1f343f;stroke-width:1}.map-node circle{fill:#0d1115;stroke:var(--accent);stroke-width:3}.map-node text{fill:#d8e6ec;font:13px ui-monospace,monospace;font-weight:800}.axis-label{fill:#738894;font:10px ui-monospace,monospace}.map-node-list{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.map-node-list button{display:grid;grid-template-columns:50px 1fr auto;text-align:left;font-size:9px}.map-node-list em{font-style:normal;color:var(--muted)}.map-banner{font-size:10px;color:var(--muted);margin-bottom:8px;display:flex;gap:10px}.telemetry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.telemetry-card,.channel-card{background:var(--panel);border:1px solid var(--line);padding:12px}.telemetry-card time{display:block;color:var(--muted);font-size:9px;margin:5px 0}.telemetry-card h4{margin:9px 0;font-family:ui-monospace,monospace}.object-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.object-grid div{background:var(--panel2);padding:6px;min-width:0}.object-grid span{display:block;font-size:8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.object-grid b{font:9px ui-monospace,monospace;overflow-wrap:anywhere}.channel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.channel-card>span{font-size:8px;color:var(--muted);letter-spacing:.12em}.channel-card h3{margin:6px 0}.timeline{border-left:1px solid var(--line);margin-left:95px}.timeline-item{display:grid;grid-template-columns:85px 65px 1fr auto;gap:10px;position:relative;margin:0 0 2px;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--panel)}.timeline-item:before{content:"";position:absolute;left:-4px;top:14px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.timeline-item time{position:absolute;right:calc(100% + 14px);top:10px;width:80px;text-align:right;font-size:8px;color:var(--muted)}.timeline-item div b{font-size:9px}.timeline-item div p{font-size:11px;margin:3px 0}.timeline-item div small{color:var(--muted);font-size:8px}.log-compose{display:grid;grid-template-columns:1fr 230px auto;gap:8px;margin-bottom:10px}.log-compose textarea{grid-column:1/4;min-height:90px}.log-list{display:grid;gap:5px}.log-entry{display:grid;grid-template-columns:160px 160px 1fr;gap:10px;background:var(--panel);border:1px solid var(--line);padding:9px}.log-entry time,.log-entry b{font-size:9px}.log-entry p{margin:0;font-size:11px}.snapshot-bar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.snapshot-bar span{font-size:10px;color:var(--muted)}.compare-head{display:grid;grid-template-columns:1fr 50px 1fr;align-items:center;text-align:center;border:1px solid var(--line);background:var(--panel);padding:12px;margin-bottom:10px}.compare-head div{display:grid}.compare-head span{font-size:8px;color:var(--muted)}.compare-head small{color:var(--muted);font-size:9px}.simple-row,.change-row{display:flex;gap:10px;border-top:1px solid var(--line);padding:7px 0;font-size:10px}.simple-row span,.change-row span{color:var(--muted)}.change-row b{width:80px}.snapshot-list{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.snapshot-list>div{border:1px solid var(--line);background:var(--panel);padding:8px;display:grid}.snapshot-list span,.snapshot-list small{font-size:8px;color:var(--muted)}.evidence-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.evidence{border:1px solid var(--line);background:var(--panel);padding:12px}.evidence>div{display:flex;justify-content:space-between;font:8px ui-monospace,monospace;color:var(--muted)}.evidence h3{font-size:13px}.evidence p{font-size:11px;line-height:1.45}.evidence small,.evidence em{display:block;color:var(--muted);font-size:9px;margin-top:6px}.settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.settings-grid label{display:grid;gap:5px;padding:10px;border:1px solid var(--line);background:var(--panel);font-size:9px;color:var(--muted)}.settings-grid label.check{display:flex;align-items:center;gap:8px}.danger-zone{margin-top:18px;border:1px solid #5f3232;background:rgba(105,40,40,.1);padding:12px}.danger-zone h3{font-size:11px;letter-spacing:.12em;color:var(--bad)}.danger-zone p{font-size:10px;color:var(--muted)}.danger-zone button{margin-right:6px}.help-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.help-grid article{border:1px solid var(--line);background:var(--panel);padding:14px}.help-grid h3{font-size:10px;letter-spacing:.12em;color:var(--accent)}.help-grid p{font-size:11px;line-height:1.6;color:#b8c5cd}.welcome{display:grid;grid-template-columns:1.2fr .8fr;min-height:560px;border:1px solid var(--line);background:var(--panel)}.welcome-copy{padding:42px}.eyebrow{font:9px ui-monospace,monospace;color:var(--accent);letter-spacing:.16em}.welcome h3{font-size:32px;line-height:1.1;margin:18px 0}.welcome p{color:var(--muted);line-height:1.7;max-width:720px}.welcome-actions{display:flex;gap:8px;margin:28px 0}.local-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.local-grid div{border-top:1px solid var(--line);padding-top:9px}.local-grid b{display:block;font-size:9px;color:var(--good);letter-spacing:.1em}.local-grid span{display:block;color:var(--muted);font-size:9px;margin-top:4px}.signal-panel{position:relative;overflow:hidden;background:#071013;border-left:1px solid var(--line)}.scope-grid{position:absolute;inset:0;background-image:linear-gradient(#17303a 1px,transparent 1px),linear-gradient(90deg,#17303a 1px,transparent 1px);background-size:28px 28px;opacity:.5}.signal-line{position:absolute;left:-10%;width:120%;height:2px;background:var(--accent);box-shadow:0 0 12px var(--accent);transform-origin:center}.s1{top:38%;transform:rotate(-3deg)}.s2{top:51%;transform:rotate(2deg);opacity:.6}.s3{top:64%;transform:rotate(-1deg);opacity:.35}.scope-label{position:absolute;bottom:22px;left:22px;font:10px ui-monospace,monospace;color:var(--good);letter-spacing:.14em}.empty{color:var(--muted);font-size:10px;padding:12px}.large-empty{min-height:240px;display:grid;place-content:center;text-align:center;gap:8px;border:1px dashed var(--line)}.large-empty b{font-size:12px;letter-spacing:.12em;color:var(--text)}.large-empty span{max-width:650px}.tiny{font-size:8px;padding:3px 5px}.fatal{max-width:900px;margin:8vh auto;border:1px solid #6b3030;background:#160f10;padding:24px;color:#f5dada}.fatal h1{color:#ff8b8b}.fatal pre{white-space:pre-wrap;background:#0b0e10;padding:12px;border:1px solid #403034}.startup-fallback{padding:4rem;color:#dce7eb;background:#0d1115;min-height:100vh}.startup-fallback h1{letter-spacing:.14em}
@media(max-width:1100px){.app-shell{grid-template-columns:64px minmax(0,1fr)}.sidebar{padding:8px}.nav-item{justify-content:center}.nav-item b,.privacy-note,.side-actions button:nth-child(n+3){display:none}.side-actions{grid-template-columns:1fr}.topbar{grid-template-columns:180px 1fr 100px auto 55px}.radio-status,.activity{display:none}.metric-grid{grid-template-columns:repeat(3,1fr)}.telemetry-grid,.channel-grid,.evidence-list{grid-template-columns:repeat(2,1fr)}.welcome{grid-template-columns:1fr}.signal-panel{min-height:220px;border-left:0;border-top:1px solid var(--line)}}
@media(max-width:720px){body{overflow:auto}.app-shell{height:auto;min-height:100vh;grid-template-columns:1fr;grid-template-rows:auto auto 1fr auto}.topbar{grid-column:1;position:sticky;top:0;z-index:10;grid-template-columns:1fr auto auto;padding:8px}.brand small,.top-project,.version{display:none}.sidebar{grid-row:2;grid-column:1;border-right:0;border-bottom:1px solid var(--line);overflow:auto}.mode-switch,.side-actions,.privacy-note{display:none}.sidebar nav{display:flex;overflow:auto}.nav-item{min-width:58px}.workspace{grid-column:1;grid-row:3;padding:12px}.statusbar{grid-column:1;grid-row:4;flex-wrap:wrap;height:auto;padding:6px}.statusbar span:nth-child(n+3){display:none}.metric-grid{grid-template-columns:repeat(2,1fr)}.two-col,.settings-grid,.help-grid,.telemetry-grid,.channel-grid,.evidence-list{grid-template-columns:1fr}.with-inspector{display:block}.inspector{width:100%;position:fixed;inset:auto 0 0 0;z-index:20;max-height:70vh;box-shadow:0 -15px 40px rgba(0,0,0,.5)}.table-wrap{max-width:100vw}.message-line{grid-template-columns:1fr}.node-line{grid-template-columns:64px 45px 1fr}.node-line em,.node-line small{display:none}.composer-controls{flex-wrap:wrap}.composer-controls .byte-count{margin-left:0}.local-grid{grid-template-columns:1fr}.welcome-copy{padding:24px}.welcome h3{font-size:24px}.welcome-actions{flex-direction:column}.map-node-list{grid-template-columns:1fr}.timeline{margin-left:0}.timeline-item{grid-template-columns:60px 1fr}.timeline-item time{position:static;width:auto;text-align:left}.timeline-item .prov{display:none}.log-compose{grid-template-columns:1fr}.log-compose textarea{grid-column:1}.snapshot-list{grid-template-columns:1fr}.topbar .conn{font-size:8px}}

/* v0.2.0 — radio reliability / synchronization instrumentation (retained in v0.3) */
.connection-progress{border:1px solid var(--line);background:var(--panel);padding:14px;margin:0 0 14px;box-shadow:inset 3px 0 0 var(--accent)}
.progress-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.progress-head b{font-size:12px;letter-spacing:.09em}.progress-head span{font-size:12px;color:var(--muted)}
.progress-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.progress-step{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);opacity:.55}.progress-step span{width:22px;height:22px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;font-size:10px}.progress-step b{font-size:10px;letter-spacing:.04em}.progress-step.done,.progress-step.current{opacity:1}.progress-step.current{outline:2px solid var(--accent);outline-offset:-2px}.progress-step.done span{font-weight:800}
.sync-counters{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.sync-counters span{border:1px solid var(--line);padding:5px 8px;font-size:9px;letter-spacing:.07em;color:var(--muted)}.sync-counters b{color:var(--text);font-size:11px;margin-left:4px}.status-sync{font-size:10px;opacity:.8}.recovery-banner{display:flex;gap:12px;align-items:center}.recovery-banner span{margin-left:auto;font-size:10px}.diagnostics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.conn.serial_open,.conn.recovering,.conn.reconnecting{border-color:var(--warn)}
@media(max-width:1000px){.diagnostics-grid{grid-template-columns:1fr}.progress-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.progress-steps{grid-template-columns:1fr}.progress-head,.recovery-banner{align-items:flex-start;flex-direction:column}.recovery-banner span{margin-left:0}}
.conn.serial_open,.conn.recovering{color:var(--warn)}

/* v0.3.0 — messaging workbench */
.messaging-workbench{display:grid;grid-template-columns:250px minmax(0,1fr) 340px;gap:10px;min-height:calc(100vh - 150px)}
.messaging-workbench:not(:has(.message-inspector)){grid-template-columns:250px minmax(0,1fr)}
.conversation-list{border:1px solid var(--line);background:var(--panel);overflow:auto;min-height:0}
.conversation-head{position:sticky;top:0;z-index:2;background:var(--panel2);border-bottom:1px solid var(--line);padding:10px;display:grid;gap:3px}
.conversation-head b,.conversation-section>span{font-size:8px;letter-spacing:.14em;color:var(--muted)}
.conversation-head small{font-size:8px;color:var(--muted)}
.conversation-section>span{display:block;padding:11px 10px 5px}
.conversation{width:100%;border:0;border-radius:0;border-top:1px solid var(--line);background:transparent;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:7px;text-align:left;padding:8px 9px}
.conversation:hover:not(:disabled){transform:none;background:rgba(115,208,255,.04)}
.conversation.active{background:rgba(115,208,255,.09);box-shadow:inset 3px 0 0 var(--accent)}
.conversation-icon{width:24px;height:24px;border:1px solid var(--line);display:grid;place-items:center;font:800 11px ui-monospace,monospace;color:var(--accent)}
.conversation-icon.direct{color:var(--good)}
.conversation div{min-width:0}.conversation b{display:block;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation small{display:block;color:var(--muted);font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.conversation em{font-style:normal;min-width:20px;height:20px;border-radius:10px;background:var(--accent);color:#061116;display:grid;place-items:center;font:800 8px ui-monospace,monospace}
.message-workspace{display:grid;grid-template-rows:auto minmax(260px,1fr) auto;gap:8px;min-width:0;min-height:0}
.message-toolbar{border:1px solid var(--line);background:var(--panel);padding:8px;display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,360px) 150px auto;gap:7px;align-items:center}
.message-toolbar>div{min-width:0}.message-toolbar>div b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-toolbar>div small{display:block;color:var(--muted);font-size:8px;margin-top:2px}.message-toolbar input,.message-toolbar select{min-width:0}
.messaging-workbench .chat-stream{min-height:0;max-height:none}.bubble-row .bubble{display:block;width:auto;text-align:left;cursor:pointer;border-radius:5px}.bubble-row .bubble:hover{transform:none;border-color:var(--accent)}.bubble-row.selected .bubble{box-shadow:0 0 0 1px var(--accent) inset}.message-foot{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:7px}.message-foot>span:last-child{font:8px ui-monospace,monospace;color:var(--muted)}
.message-state{font:800 8px ui-monospace,monospace;letter-spacing:.04em}.message-state.sending{color:var(--warn)}.message-state.acknowledged,.message-state.received{color:var(--good)}.message-state.failed{color:var(--bad)}.message-state.unknown{color:var(--muted)}
.draft-state{font:8px ui-monospace,monospace;color:var(--good);margin-left:auto}.composer-controls .draft-state+.byte-count{margin-left:0}
.message-inspector{width:340px;background:var(--panel);border:1px solid var(--line);padding:12px;overflow:auto;min-height:0;max-height:calc(100vh - 150px);position:sticky;top:0}.message-inspector h3{margin:14px 0 6px;font-size:14px}.message-inspector-text{font-size:12px;line-height:1.5;padding:9px;background:var(--panel2);border:1px solid var(--line);white-space:pre-wrap}.message-inspector .banner{display:block;line-height:1.4}.message-inspector .banner b{display:block;margin-bottom:4px}.message-inspector>.primary{width:100%;margin-top:8px}

@media(max-width:1100px){.messaging-workbench,.messaging-workbench:not(:has(.message-inspector)){grid-template-columns:210px minmax(0,1fr)}.message-inspector{position:fixed;right:0;top:64px;bottom:32px;z-index:30;box-shadow:-15px 0 35px rgba(0,0,0,.45);max-height:none}.message-toolbar{grid-template-columns:1fr 1fr}.message-toolbar>div{grid-column:1/3}}
@media(max-width:720px){.messaging-workbench,.messaging-workbench:not(:has(.message-inspector)){display:block;min-height:0}.conversation-list{max-height:190px;margin-bottom:8px}.conversation-section{display:flex;overflow:auto}.conversation-section>span{display:none}.conversation{min-width:190px;border-left:1px solid var(--line);border-top:0}.conversation-head{position:static}.message-workspace{display:block}.message-toolbar{grid-template-columns:1fr;margin-bottom:8px}.message-toolbar>div{grid-column:auto}.message-toolbar input,.message-toolbar select,.message-toolbar button{width:100%}.messaging-workbench .chat-stream{max-height:50vh;margin-bottom:8px}.message-inspector{position:fixed;inset:auto 0 0 0;width:100%;max-height:70vh;z-index:30;box-shadow:0 -15px 40px rgba(0,0,0,.5)}.draft-state{width:100%;order:10;margin-left:0}.composer-controls .byte-count{margin-left:auto}}

/* v0.4.0 — Node Intelligence */
.node-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:8px}
.node-filterbar{display:grid;grid-template-columns:minmax(220px,1fr) 145px 160px 170px auto auto auto;gap:7px;align-items:center;margin-bottom:8px}
.node-filterbar input,.node-filterbar select{min-width:0}.favorite-filter{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:8px;color:var(--muted);letter-spacing:.06em}
.node-view-manager{border:1px solid var(--line);background:var(--panel);margin-bottom:8px}.node-view-manager>summary{cursor:pointer;padding:8px 10px;font:9px ui-monospace,monospace;letter-spacing:.1em;color:var(--muted)}
.node-view-grid{display:grid;grid-template-columns:220px 220px auto 1fr;gap:8px;padding:0 10px 10px;align-items:end}.node-view-grid>label{display:grid;gap:4px;font-size:8px;color:var(--muted)}.view-actions{display:flex;gap:6px}.column-picker{grid-column:1/5;display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:8px}.column-picker>b{width:100%;font-size:8px;color:var(--muted);letter-spacing:.1em}.column-picker label{font-size:8px;background:var(--panel2);border:1px solid var(--line);padding:5px 7px}.view-note{grid-column:1/5;color:var(--muted);font-size:8px}
.node-table-wrap{max-height:calc(100vh - 305px);overflow:auto}.node-table{table-layout:fixed;min-width:max-content}.node-table th{position:sticky;top:0;z-index:3;padding:0;background:var(--panel2)}.node-table td{overflow:hidden;text-overflow:ellipsis}.node-table td small{display:block;color:var(--muted);font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-sort{width:100%;border:0;border-radius:0;background:transparent;text-align:left;padding:8px 15px 8px 8px;font-size:8px;letter-spacing:.08em;white-space:nowrap}.node-sort:hover:not(:disabled){transform:none;background:rgba(255,255,255,.025)}.col-resizer{position:absolute;right:-3px;top:0;width:7px;height:100%;cursor:col-resize;z-index:5}.col-resizer:hover{background:var(--accent)}
.favorite-mark{font-size:15px;color:var(--warn)}.field-data-mark{display:inline-block;border:1px solid var(--good);color:var(--good);font:8px ui-monospace,monospace;padding:2px 4px;border-radius:3px}
.node-workbench{align-items:flex-start}.node-inspector{width:min(590px,48vw);flex-basis:min(590px,48vw)}.node-inspector-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.node-inspector-title h3{margin-bottom:2px}.node-inspector-title .status-pill{margin-top:16px}.history-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:8px 0 14px}.history-summary span{display:grid;background:var(--panel2);border:1px solid var(--line);padding:7px;font:15px ui-monospace,monospace;color:var(--accent)}.history-summary b{font-size:7px;color:var(--muted);letter-spacing:.1em;margin-top:3px}
.node-history-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.history-card{border:1px solid var(--line);background:var(--panel2);padding:7px;min-width:0}.history-card-head{display:flex;justify-content:space-between;gap:6px;align-items:center}.history-card-head b{font-size:9px}.history-card-head span{font-size:7px;color:var(--muted);text-align:right}.node-sparkline{display:block;width:100%;height:118px;margin-top:5px}.node-sparkline line{stroke:var(--line);stroke-width:1}.node-sparkline polyline{fill:none;stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}.node-sparkline text{fill:var(--muted);font:8px ui-monospace,monospace}.history-empty{height:118px;display:grid;place-items:center;color:var(--muted);font-size:8px;border:1px dashed var(--line);margin-top:5px}.observation-details{margin:8px 0 14px;border:1px solid var(--line)}.observation-details>summary{padding:7px;cursor:pointer;font-size:8px;color:var(--muted)}.compact-table th,.compact-table td{font-size:8px;padding:5px;white-space:nowrap}
.field-data-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.field-data-grid label{display:grid;gap:4px;font-size:8px;color:var(--muted)}.field-data-grid label.wide{grid-column:1/3}.field-data-grid textarea{min-height:72px;resize:vertical}.wide-button{width:100%;margin-top:8px}.compact-banner{margin-top:10px;font-size:8px;line-height:1.45}.compact-banner b{display:block;margin-bottom:3px}

@media(max-width:1280px){.node-filterbar{grid-template-columns:1fr 1fr 1fr}.node-filterbar input{grid-column:1/4}.node-view-grid{grid-template-columns:1fr 1fr}.column-picker,.view-note{grid-column:1/3}.node-inspector{width:470px;flex-basis:470px}.node-history-grid{grid-template-columns:1fr}}
@media(max-width:900px){.node-metrics{grid-template-columns:repeat(2,1fr)}.node-workbench{display:block}.node-inspector{position:fixed;right:0;top:64px;bottom:32px;width:min(600px,92vw);max-height:none;z-index:30;box-shadow:-15px 0 35px rgba(0,0,0,.45)}.node-table-wrap{max-height:none}.node-view-grid{grid-template-columns:1fr}.column-picker,.view-note{grid-column:1}.field-data-grid{grid-template-columns:1fr}.field-data-grid label.wide{grid-column:1}}
@media(max-width:720px){.node-filterbar{grid-template-columns:1fr}.node-filterbar input{grid-column:1}.node-filterbar>*{width:100%}.node-view-grid{display:block}.node-view-grid>*{margin-bottom:7px}.column-picker{display:flex}.node-inspector{inset:auto 0 0 0;width:100%;max-height:76vh}.node-history-grid{grid-template-columns:1fr}.node-metrics{grid-template-columns:1fr 1fr}}
.node-inspector-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:0 0 14px}.node-inspector-actions button{font-size:8px;padding:6px}
@media(max-width:720px){.node-inspector-actions{grid-template-columns:1fr}}

/* v0.5 Packet Laboratory */
.packet-filterbar{display:grid;grid-template-columns:minmax(280px,1.6fr) 120px 190px 150px minmax(150px,.8fr) minmax(150px,.8fr) 145px 165px 150px auto;gap:6px;align-items:center;margin:8px 0}
.packet-filterbar input,.packet-filterbar select{min-width:0;width:100%}
.packet-toolbar{display:flex;align-items:center;gap:6px;margin:7px 0 8px}.packet-toolbar>span{font:9px ui-monospace,monospace;color:var(--muted);margin-right:auto}.packet-toolbar button{white-space:nowrap}
.packet-port-summary{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:6px;margin:8px 0}
.packet-port-summary button{text-align:left;background:var(--panel);border:1px solid var(--line);padding:8px;display:grid;gap:2px;min-width:0}.packet-port-summary button:hover{border-color:var(--accent)}
.packet-port-summary b{font:9px ui-monospace,monospace;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.packet-port-summary span{font-size:11px;color:var(--text)}.packet-port-summary small{font-size:8px;color:var(--muted)}
.packet-workbench{align-items:flex-start}.packet-table{max-height:calc(100vh - 420px);min-height:280px}.packet-table table{min-width:1450px}.packet-table th,.packet-table td{white-space:nowrap}
.packet-flag{display:inline-block;border:1px solid var(--warn);color:var(--warn);font:7px ui-monospace,monospace;letter-spacing:.08em;padding:2px 4px}.packet-flag.muted{border-color:var(--muted);color:var(--muted)}
.packet-inspector{width:min(560px,47vw);flex-basis:min(560px,47vw);max-height:calc(100vh - 150px)}
.packet-inspector-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;margin:0 0 10px}.packet-inspector-tabs button{font-size:7px;padding:6px 3px}.packet-inspector-tabs button.active{background:var(--accent);color:#071013;border-color:var(--accent)}
.packet-inspector pre{max-height:420px;overflow:auto;background:var(--panel2);border:1px solid var(--line);padding:9px;font:9px/1.45 ui-monospace,monospace;white-space:pre-wrap;word-break:break-word}
.hex-view{white-space:pre!important;word-break:normal!important;overflow:auto!important;color:var(--accent)}
.packet-inspector-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:9px}.packet-inspector-actions button{width:100%}
.inspector-note{display:grid;gap:4px;border:1px solid var(--line);background:var(--panel2);padding:9px;margin-bottom:8px}.inspector-note b{font-size:8px;letter-spacing:.11em;color:var(--accent)}.inspector-note span{font-size:9px;color:var(--muted);line-height:1.45}
.provenance-stack{display:grid;gap:6px}.provenance-stack>div{display:grid;gap:3px;border:1px solid var(--line);background:var(--panel2);padding:9px}.provenance-stack b{font-size:7px;letter-spacing:.11em;color:var(--muted)}.provenance-stack span{font-size:9px;line-height:1.45}
.related-record{display:grid;width:100%;text-align:left;gap:3px;margin-bottom:5px;padding:8px;background:var(--panel2);border:1px solid var(--line)}.related-record:hover{border-color:var(--accent)}.related-record b{font:8px ui-monospace,monospace;color:var(--accent)}.related-record span{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.related-record small{font-size:7px;color:var(--muted)}
.packet-pause{display:flex;align-items:center;gap:8px}.packet-pause b{white-space:nowrap}.packet-empty{min-height:170px}.packet-metrics{margin-bottom:8px}
@media(max-width:1500px){.packet-filterbar{grid-template-columns:repeat(5,1fr)}.packet-filterbar>input:first-child{grid-column:span 2}.packet-port-summary{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1100px){.packet-filterbar{grid-template-columns:repeat(3,1fr)}.packet-filterbar>input:first-child{grid-column:span 2}.packet-port-summary{grid-template-columns:repeat(2,1fr)}.packet-workbench{display:block}.packet-inspector{position:fixed;right:0;top:64px;bottom:32px;width:min(620px,94vw);max-height:none;z-index:30;box-shadow:-15px 0 35px rgba(0,0,0,.45)}}
@media(max-width:720px){.packet-filterbar{grid-template-columns:1fr}.packet-filterbar>input:first-child{grid-column:1}.packet-filterbar>*{width:100%}.packet-toolbar{flex-wrap:wrap}.packet-toolbar>span{width:100%;margin:0}.packet-port-summary{grid-template-columns:1fr}.packet-table{max-height:none}.packet-inspector{inset:auto 0 0 0;width:100%;max-height:76vh}.packet-inspector-tabs{position:sticky;top:0;background:var(--panel);z-index:2}.packet-pause{display:block}.packet-pause b{display:block;margin-bottom:3px}}

/* v0.6 RF & Telemetry Analytics */
.analytics-toolbar{display:grid;grid-template-columns:180px 260px minmax(180px,1fr) auto auto;gap:7px;align-items:end;margin:0 0 10px}.analytics-toolbar label{display:grid;gap:4px;font-size:8px;letter-spacing:.08em;color:var(--muted)}.analytics-scope{align-self:center;font:9px ui-monospace,monospace;color:var(--accent)}
.telemetry-toolbar{grid-template-columns:170px 230px 220px minmax(240px,1fr) auto auto}.analytics-metrics{grid-template-columns:repeat(6,minmax(130px,1fr))}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.analytics-panel{border:1px solid var(--line);background:var(--panel);padding:10px;min-width:0}.analytics-panel.wide{margin:8px 0}.analytics-chart{display:block;width:100%;height:220px}.analytics-chart line{stroke:var(--line);stroke-width:1}.analytics-chart polyline{fill:none;stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}.analytics-chart text{fill:var(--muted);font:8px ui-monospace,monospace}.analytics-chart.histogram rect{fill:var(--accent);opacity:.78}.analytics-chart.packet-rate .rx-bar{fill:var(--good);opacity:.8}.analytics-chart.packet-rate .tx-bar{fill:var(--accent);opacity:.8}.analytics-empty{height:220px;display:grid;place-items:center;border:1px dashed var(--line);color:var(--muted);font-size:9px}.analytics-provenance{border-top:1px solid var(--line);padding-top:7px;font-size:8px;color:var(--muted)}.chart-legend{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:7px;font-size:8px;color:var(--muted)}.chart-legend .rx-key,.chart-legend .tx-key{font:800 8px ui-monospace,monospace;border:1px solid currentColor;padding:2px 5px}.chart-legend .rx-key{color:var(--good)}.chart-legend .tx-key{color:var(--accent)}.chart-legend small{margin-left:auto}.analytics-table-title{margin-top:12px}.analytics-stat-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;border-top:1px solid var(--line);padding-top:7px}.analytics-stat-strip span{display:grid;color:var(--muted);font-size:7px}.analytics-stat-strip b{font:12px ui-monospace,monospace;color:var(--text);margin-top:2px}.analytics-catalog{margin:8px 0}.catalog-row{display:grid;grid-template-columns:180px 1fr 90px;gap:10px;padding:7px 0;border-top:1px solid var(--line);align-items:start}.catalog-row:first-of-type{border-top:0}.catalog-row b{font:9px ui-monospace,monospace;color:var(--accent)}.catalog-row span{font-size:9px;color:var(--text);line-height:1.4}.catalog-row em{font-style:normal;text-align:right;font-size:8px;color:var(--muted)}
@media(max-width:1300px){.analytics-toolbar,.telemetry-toolbar{grid-template-columns:repeat(3,1fr)}.analytics-scope{grid-column:1/3}.analytics-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.analytics-grid{grid-template-columns:1fr}.analytics-toolbar,.telemetry-toolbar{grid-template-columns:1fr 1fr}.analytics-scope{grid-column:1/3}.analytics-metrics{grid-template-columns:repeat(2,1fr)}.catalog-row{grid-template-columns:140px 1fr}.catalog-row em{grid-column:2;text-align:left}}
@media(max-width:620px){.analytics-toolbar,.telemetry-toolbar{grid-template-columns:1fr}.analytics-toolbar>*,.telemetry-toolbar>*{width:100%}.analytics-scope{grid-column:1}.analytics-metrics{grid-template-columns:1fr 1fr}.analytics-chart,.analytics-empty{height:190px}.catalog-row{grid-template-columns:1fr}.catalog-row em{grid-column:1}.chart-legend{flex-wrap:wrap}.chart-legend small{width:100%;margin:0}}
