:root { color-scheme: dark; --bg:#0b1220; --panel:#111827; --glass:rgba(15,23,42,.82); --fg:#f8fafc; --muted:#cbd5e1; --line:#334155; --ok:#86efac; --warn:#fde68a; --idle:#94a3b8; --accent:#5eead4; --accent2:#93c5fd; --accent3:#c4b5fd; --accent4:#86efac; --err:#fda4af; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 system-ui, sans-serif; background:var(--bg); color:var(--fg); overflow-x:hidden; }
header { padding:12px 22px; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:var(--panel); position:sticky; top:0; z-index:5; }
header h1 { font-size:18px; margin:0; font-weight:650; }
header .mark { color:var(--accent); font-size:20px; }
header .meta { margin-left:0; color:var(--muted); font-size:13px; }
.brand-lockup { display:flex; align-items:center; gap:12px; }
.top-status { margin-left:auto; display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:var(--muted); font-size:12px; }
.top-status span { border:1px solid var(--line); border-radius:999px; padding:3px 8px; background:rgba(11,18,32,.72); }
.health-pill.ok { color:var(--ok); border-color:rgba(134,239,172,.65); }
.health-pill.warn { color:var(--warn); border-color:rgba(253,230,138,.65); }
.executor-pill { max-width:34ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.matrix-mini { white-space:nowrap; }
[role=tablist] { display:flex; gap:4px; padding:0 22px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
[role=tab] { background:none; border:0; border-bottom:2px solid transparent; color:var(--muted); padding:10px 14px; cursor:pointer; font:inherit; }
[role=tab][aria-selected=true] { color:var(--fg); border-bottom-color:var(--accent); }
[role=tab]:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
main { padding:22px; }
button, select, input { background:var(--panel); color:var(--fg); border:1px solid var(--line); border-radius:7px; padding:7px 12px; font:inherit; }
textarea { background:var(--panel); color:var(--fg); border:1px solid var(--line); border-radius:7px; padding:7px 12px; font:inherit; resize:vertical; }
button { cursor:pointer; }
button:hover:not(:disabled) { border-color:var(--accent); }
button:disabled { opacity:.45; cursor:not-allowed; }
button:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
table { width:100%; border-collapse:collapse; background:var(--panel); border:1px solid var(--line); border-radius:10px; overflow:hidden; }
caption { text-align:left; color:var(--muted); padding:10px 14px; font-size:13px; }
th, td { text-align:left; padding:11px 14px; border-bottom:1px solid var(--line); }
th { color:var(--muted); font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
tr:last-child td { border-bottom:0; }
code { font:13px ui-monospace, monospace; color:var(--muted); }
.badge { display:inline-block; padding:2px 8px; border-radius:999px; border:1px solid var(--line); font-size:12px; }
.badge.controller { border-color:var(--ok); color:var(--ok); }
.badge.observer { border-color:var(--accent); color:var(--accent); }
.badge.high { border-color:var(--accent); color:var(--accent); }
.badge.isolation-least, .badge.trust-compatibility, .badge.trust-degraded, .badge.daemon-permission_denied { border-color:var(--err); color:var(--err); }
.badge.isolation-shared-kernel, .badge.isolation-opaque, .badge.trust-local, .badge.daemon-degraded, .badge.daemon-stopped, .badge.daemon-unknown { border-color:var(--warn); color:var(--warn); }
.badge.isolation-strong, .badge.trust-secure, .badge.daemon-available, .badge.daemon-detected { border-color:var(--ok); color:var(--ok); }
.badge.isolation-unknown, .badge.trust-unknown, .badge.daemon-unavailable { border-color:var(--idle); color:var(--muted); }
.cell-note { color:var(--muted); font-size:12px; margin-top:3px; max-width:260px; }
.inventory-table { table-layout:fixed; }
.inventory-table th, .inventory-table td { vertical-align:top; }
.inventory-table th:nth-child(1), .inventory-table td:nth-child(1) { width:17%; }
.inventory-table th:nth-child(2), .inventory-table td:nth-child(2) { width:15%; }
.inventory-table th:nth-child(3), .inventory-table td:nth-child(3) { width:13%; }
.inventory-table th:nth-child(4), .inventory-table td:nth-child(4) { width:11%; }
.inventory-table th:nth-child(5), .inventory-table td:nth-child(5) { width:13%; }
.inventory-table th:nth-child(6), .inventory-table td:nth-child(6) { width:7%; }
.inventory-table th:nth-child(7), .inventory-table td:nth-child(7) { width:6%; }
.inventory-table th:nth-child(8), .inventory-table td:nth-child(8) { width:18%; }
.inventory-table .badge { max-width:100%; white-space:normal; line-height:1.35; }
.inventory-table code { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.inventory-table .cell-note { max-width:100%; overflow-wrap:anywhere; line-height:1.4; }
.runtime-cell .cell-note, .daemon-cell .cell-note { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.state { display:inline-flex; align-items:center; gap:7px; }
.dot { width:8px; height:8px; border-radius:50%; flex:0 0 auto; background:var(--idle); }
.state.running .dot, .state.working .dot { background:var(--ok); } .state.provisioning .dot, .state.degraded .dot { background:var(--warn); }
.empty { color:var(--muted); padding:22px; } .err { color:var(--err); padding:12px 0; }
.controls { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
.controls label { color:var(--muted); font-size:13px; }
.manage-actions { white-space:nowrap; display:flex; gap:8px; align-items:flex-start; justify-content:flex-start; }
.inventory-table .manage-actions button { min-width:74px; min-height:38px; padding-inline:10px; }
.inventory-table .manage-actions .cta { min-width:92px; }
.section-toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
.section-toolbar h2 { margin:0; font-size:20px; }
.trust-banner { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:0 0 12px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:rgba(15,23,42,.55); overflow-wrap:anywhere; }
.trust-banner.trust-secure { border-color:rgba(134,239,172,.7); color:var(--ok); }
.trust-banner.trust-degraded { border-color:rgba(253,230,138,.75); color:var(--warn); }
.trust-banner.trust-disabled { border-color:rgba(253,164,175,.75); color:var(--err); }
.trust-detail { color:var(--muted); }
.empty-state { display:grid; gap:10px; justify-items:start; border:1px solid var(--line); border-radius:8px; padding:18px; background:var(--panel); }
.empty-state h2 { margin:0; font-size:20px; }
/* Host for the xterm.js terminal — fixed height so FitAddon can size the PTY; xterm owns
   its own scrollback and wrapping, so no overflow/white-space rules belong here. */
.terminal { background:#0a0c10; border:1px solid var(--line); border-radius:10px; padding:0; height:min(56vh, calc(100vh - 310px)); min-height:320px; overflow:hidden; }
.terminal .xterm { height:100%; padding:8px; }
.terminal .xterm-viewport, .terminal .xterm-screen { height:100%; }
.terminal .xterm-viewport { overflow-y:auto; }
.inputrow { display:flex; gap:8px; margin-top:12px; }
.inputrow input { flex:1; font-family:ui-monospace, monospace; }
.hint { color:var(--muted); font-size:13px; margin:6px 0 0; }
.response-needed { display:grid; gap:10px; margin:14px 0 18px; }
.response-needed h2 { margin:0; font-size:16px; }
.response-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:start; border:1px solid var(--warn); border-radius:8px; background:rgba(253,230,138,.08); padding:12px 14px; }
.response-item p { margin:5px 0; color:var(--fg); white-space:pre-wrap; overflow-wrap:anywhere; }
.response-item span { color:var(--muted); font-size:12px; }
.mission-summary { display:flex; gap:10px; flex-wrap:wrap; margin:14px 0; }
.mission-summary span { border:1px solid var(--line); border-radius:8px; background:var(--panel); padding:8px 12px; color:var(--muted); }
.mission-summary strong { color:var(--fg); }
.missions-layout { display:grid; grid-template-columns:minmax(220px, 300px) minmax(0, 1fr); gap:14px; align-items:start; margin-top:14px; }
.mission-sessions { display:grid; gap:8px; }
.mission-sessions button { display:grid; gap:2px; text-align:left; border-radius:8px; }
.mission-sessions button.selected { border-color:var(--accent); background:rgba(94,234,212,.08); }
.mission-sessions small { color:var(--muted); }
.mission-detail { min-width:0; display:grid; gap:12px; }
.mission-detail-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; border:1px solid var(--line); border-radius:8px; background:var(--panel); padding:14px; }
.mission-detail-head h2 { margin:0; font-size:18px; }
.mission-detail-head p { margin:3px 0 0; color:var(--muted); font-size:13px; }
.block { display:block; margin-top:4px; color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.fleet-missions th, .fleet-missions td { vertical-align:top; }
.fleet-warning { color:var(--warn); }
.fleet-artifacts { list-style:none; margin:0; padding:0; display:grid; gap:4px; }
.fleet-artifacts a { overflow-wrap:anywhere; }
.muted { color:var(--muted); }
.audit-tail { border:1px solid var(--line); border-radius:8px; background:var(--panel); padding:12px 14px; }
.audit-tail h3 { margin:0 0 8px; font-size:14px; }
.audit-tail p { margin:5px 0; color:var(--muted); font-size:13px; }
.telemetry-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; margin:14px 0; }
.telemetry-kpis article { display:grid; gap:4px; border:1px solid var(--line); border-radius:8px; background:var(--panel); padding:12px 14px; }
.telemetry-kpis span, .telemetry-kpis small { color:var(--muted); font-size:12px; }
.telemetry-kpis strong { font-size:24px; }
.controls button[aria-pressed=true] { border-color:var(--accent); color:var(--accent); }
.memory-layout { display:grid; grid-template-columns:minmax(260px, 360px) minmax(0, 1fr); gap:14px; align-items:start; margin-top:14px; }
.memory-form { display:grid; gap:10px; border:1px solid var(--line); border-radius:8px; background:var(--panel); padding:14px; }
.memory-form h2 { margin:0; font-size:18px; }
.memory-form label { display:grid; gap:5px; color:var(--muted); font-size:13px; }
.memory-form input, .memory-form textarea { width:100%; }
.memory-list { min-width:0; }
.note-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:10px; }
.note-card { display:grid; gap:8px; border:1px solid var(--line); border-radius:8px; background:var(--panel); padding:12px; }
.note-card header { position:static; display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:0; border:0; background:transparent; }
.note-card h3 { margin:0; font-size:15px; }
.note-card p { margin:0; color:var(--muted); white-space:pre-wrap; overflow-wrap:anywhere; }
.note-card footer { display:flex; gap:6px; align-items:center; flex-wrap:wrap; color:var(--muted); font-size:12px; }
.grid2 { display:grid; grid-template-columns:minmax(260px,1fr) 1.4fr; gap:16px; align-items:start; }
.index-live { border:1px solid var(--line); border-radius:8px; background:rgba(17,24,39,.72); padding:14px; margin:14px 0 18px; }
.index-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:8px; margin-bottom:12px; }
.index-graph { border:1px solid var(--line); border-radius:8px; background:var(--panel); padding:10px 12px; }
.index-graph.missing { border-color:var(--warn); }
.index-graph p { margin:5px 0 0; color:var(--muted); font-size:13px; }
.index-query { display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:10px; align-items:end; margin-top:10px; }
.index-query label { display:grid; gap:5px; color:var(--muted); font-size:13px; }
.index-results { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:8px; margin-top:12px; }
.index-results article { border:1px solid var(--line); border-radius:8px; background:var(--panel); padding:10px 12px; }
.index-results p { margin:5px 0; color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.index-results small { color:var(--muted); }
.act { text-align:left; }
.action-cluster { display:inline-flex; align-items:stretch; gap:4px; }
.action-cluster .act { border-radius:7px 0 0 7px; }
.copy-command { border-radius:0 7px 7px 0; color:var(--muted); font-size:12px; padding-inline:9px; }
.contrib-layout { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; margin-top:16px; }
.contrib-grid { display:grid; gap:10px; }
.contrib-item { display:grid; gap:8px; align-items:start; border:1px solid var(--line); border-radius:8px; background:var(--panel); padding:12px; }
.contrib-item p { margin:0; color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.workflow-steps { display:flex; gap:8px; flex-wrap:wrap; }
/* Tenor-style capability grid (modeled on fortemi-react SearchResults) */
.capgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:10px; }
.capcard { display:block; text-align:left; background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:11px 13px; cursor:pointer; }
.capcard:hover { border-color:var(--accent); }
.capcard-head { display:flex; align-items:center; gap:8px; }
.capcard-head strong { font-size:14px; }
.capcard-score { margin-left:auto; color:var(--muted); font-size:12px; }
.capcard-cap { color:var(--muted); font-size:13px; margin-top:5px; line-height:1.4; }
.capcard-tags { margin-top:8px; display:flex; gap:5px; flex-wrap:wrap; }
.tag { font-size:11px; color:var(--muted); border:1px solid var(--line); border-radius:999px; padding:1px 7px; }
.picker { background:#0a0c10; border:1px solid var(--line); border-radius:10px; padding:12px; margin-bottom:12px; }
.modal-backdrop { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:24px; background:rgba(2,6,23,.72); backdrop-filter:blur(5px); }
.modal { width:min(780px, calc(100vw - 48px)); max-height:calc(100vh - 48px); overflow:auto; border:1px solid var(--line); border-radius:8px; background:var(--panel); box-shadow:0 24px 70px rgba(0,0,0,.48); padding:20px; }
.modal h2 { margin:0 0 14px; font-size:20px; }
.form-grid { display:grid; grid-template-columns:minmax(120px,.28fr) minmax(0,1fr); gap:12px; align-items:center; }
.form-grid label { color:var(--muted); font-size:13px; }
.form-grid select, .form-grid input, .form-grid textarea { min-width:0; width:100%; }
.form-grid textarea { min-height:88px; resize:vertical; background:var(--panel); color:var(--fg); border:1px solid var(--line); border-radius:7px; padding:7px 12px; font:inherit; }
.field-stack { display:grid; gap:7px; min-width:0; }
.posture-line { color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.check-row { display:flex; align-items:center; gap:9px; color:var(--fg) !important; }
.check-row input { width:auto; }
.ro { min-width:0; color:var(--fg); overflow-wrap:anywhere; }
.warn { color:var(--warn); }
.ok-text { color:var(--ok); }
.modal-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
/* Welcome / onboarding */
.welcome { max-width:none; }
.welcome h2 { font-size:clamp(26px, 3vw, 42px); margin:4px 0 10px; line-height:1.08; }
.welcome .lead { color:var(--muted); font-size:16px; line-height:1.6; margin:0; max-width:680px; }
.welcome .lead strong { color:var(--fg); }
.eyebrow { color:var(--accent); text-transform:uppercase; letter-spacing:.08em; font-size:12px; font-weight:700; margin:0 0 6px; }
.statgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-bottom:18px; }
.stat { display:flex; flex-direction:column; align-items:flex-start; gap:2px; text-align:left; padding:14px 16px; }
.stat-n { font-size:26px; font-weight:680; color:var(--fg); }
.stat-l { color:var(--muted); font-size:13px; }
.cta-row { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:22px; }
.cta { background:var(--accent); color:#0b0d12; border-color:var(--accent); font-weight:620; padding:9px 18px; }
.cta:hover:not(:disabled) { filter:brightness(1.08); }
.card { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px 18px; margin-bottom:16px; }
.card h3 { margin:0 0 8px; font-size:15px; }
.card ol { margin:0; padding-left:20px; color:var(--muted); line-height:1.7; }
.card ol strong { color:var(--fg); }
.warn-card { border-color:var(--warn); }
.warn-card pre { margin:10px 0 0; }
.wall-hero { display:grid; grid-template-columns:minmax(280px,1fr) auto; gap:18px; align-items:end; margin:4px 0 18px; }
.wall-hero-compact { margin:0 0 10px; align-items:center; }
.wall-hero-compact h2 { font-size:clamp(24px, 2.4vw, 34px); margin-bottom:6px; }
.wall-hero-compact .lead { font-size:14px; line-height:1.45; max-width:620px; }
.wall-hero-compact .hero-actions { align-items:center; }
.hero-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.segmented { display:inline-flex; gap:0; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.segmented button { border:0; border-radius:0; color:var(--muted); background:rgba(15,23,42,.72); }
.segmented button[aria-pressed=true] { color:#0b0d12; background:var(--accent); font-weight:650; }
.operator-wall { min-height:calc(100vh - 130px); }
.radial-wall { display:grid; grid-template-columns:1fr; gap:18px; align-items:stretch; margin:10px calc(50% - 50vw) 18px; }
.radial-map { position:relative; min-height:clamp(640px, calc(100vh - 260px), 780px); border-block:1px solid rgba(147,197,253,.25); overflow:hidden; background:
  radial-gradient(circle at 50% 47%, rgba(94,234,212,.22), transparent 17%),
  radial-gradient(circle at 18% 62%, rgba(59,130,246,.14), transparent 20%),
  radial-gradient(circle at 82% 38%, rgba(124,58,237,.18), transparent 18%),
  linear-gradient(180deg, rgba(15,23,42,.95), rgba(2,6,23,.76)); box-shadow:inset 0 0 70px rgba(2,6,23,.72); }
.radial-links { position:absolute; inset:0; width:100%; height:100%; filter:drop-shadow(0 0 14px rgba(94,234,212,.34)); }
.link-ring { fill:none; stroke:rgba(147,197,253,.18); stroke-width:.35; stroke-dasharray:1.2 1.4; }
.link-ring-inner { stroke:rgba(94,234,212,.14); stroke-dasharray:.7 1.8; }
.link-line { stroke:rgba(94,234,212,.54); stroke-width:.42; }
.link-ready, .link-idle { stroke:rgba(147,197,253,.38); }
.link-attention { stroke:rgba(253,230,138,.78); }
.link-blocked { stroke:rgba(253,164,175,.5); stroke-dasharray:1.4 1.2; }
.handoff-arc { fill:none; stroke:rgba(196,181,253,.94); stroke-width:1.25; stroke-linecap:round; filter:drop-shadow(0 0 5px rgba(196,181,253,.72)); }
.mode-handoff .link-line { stroke:rgba(147,197,253,.24); }
.mode-handoff .handoff-arc { stroke-width:2.35; filter:drop-shadow(0 0 11px rgba(196,181,253,.9)); }
.central-hub { position:absolute; left:50%; top:45%; transform:translate(-50%,-50%); width:214px; min-height:178px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; border-radius:8px; border-color:rgba(94,234,212,.9); background:linear-gradient(180deg, rgba(94,234,212,.34), rgba(15,23,42,.9)); box-shadow:0 0 64px rgba(94,234,212,.42), inset 0 0 38px rgba(147,197,253,.2); z-index:3; }
.mode-handoff .central-hub { border-color:rgba(196,181,253,.9); box-shadow:0 0 72px rgba(196,181,253,.42), inset 0 0 38px rgba(94,234,212,.16); }
.central-hub strong { font-size:24px; }
.central-hub span:last-child { color:var(--muted); font-size:12px; }
.hub-core { width:82px; height:52px; border:1px solid rgba(248,250,252,.78); border-radius:7px; transform:skew(-12deg); background:linear-gradient(135deg, rgba(248,250,252,.86), rgba(94,234,212,.46)); box-shadow:0 10px 32px rgba(94,234,212,.35); }
.orbit-node { position:absolute; left:var(--x); top:var(--y); transform:translate(-50%,-50%); width:104px; min-height:106px; display:grid; grid-template-rows:72px auto; gap:4px; place-items:center; text-align:center; padding:8px 7px; border-radius:8px; background:radial-gradient(circle at 50% 38%, rgba(248,250,252,.11), rgba(15,23,42,.56) 54%, rgba(2,6,23,.42)); border-color:rgba(147,197,253,.18); box-shadow:0 20px 38px rgba(0,0,0,.34), inset 0 -18px 26px rgba(59,130,246,.06); z-index:2; }
.orbit-node:hover:not(:disabled) { transform:translate(-50%,-50%) translateY(-2px); }
.orbit-node:focus-visible { outline-offset:4px; }
.node-copy { min-width:0; display:flex; flex-direction:column; gap:2px; }
.node-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:94px; font-size:11px; }
.node-copy span { color:var(--muted); font-size:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:94px; }
.orbit-node:focus-visible .node-copy span, .orbit-node:hover .node-copy span { font-size:10px; }
.node-glyph { width:72px; height:62px; display:inline-block; border:2px solid var(--node-accent,var(--accent)); background:rgba(255,255,255,.04); box-shadow:0 0 30px color-mix(in srgb, var(--node-accent,var(--accent)) 48%, transparent); }
.node-host, .node-session { --node-accent:var(--accent); }
.node-container, .node-inventory { --node-accent:var(--accent2); }
.node-vm, .node-mission { --node-accent:var(--accent3); }
.node-approval.node-attention, .node-blocked { --node-accent:var(--warn); }
.node-cost, .node-capability, .node-library, .node-action { --node-accent:var(--accent4); }
.node-blocked { border-color:rgba(253,164,175,.6); }
.node-attention { border-color:rgba(253,230,138,.72); }
.node-running { border-color:rgba(134,239,172,.72); }
.glyph-host, .glyph-session { border-radius:6px; box-shadow:inset 0 -10px 0 rgba(255,255,255,.06), 0 0 18px rgba(94,234,212,.28); }
.glyph-container, .glyph-inventory { border-radius:7px; transform:skew(-8deg); }
.glyph-vm { border-radius:4px; transform:rotate(45deg) scale(.82); }
.glyph-mission { border-radius:50%; position:relative; }
.glyph-mission::before, .glyph-mission::after { content:""; position:absolute; width:10px; height:10px; border:2px solid var(--node-accent); border-radius:50%; background:rgba(15,23,42,.9); }
.glyph-mission::before { left:-7px; top:12px; }
.glyph-mission::after { right:-7px; top:12px; }
.glyph-approval { border-radius:18px 18px 6px 6px; }
.glyph-cost { border-radius:50%; border-style:dashed; }
.glyph-capability { border-radius:8px; background:repeating-linear-gradient(45deg, rgba(255,255,255,.08) 0 4px, transparent 4px 8px); }
.glyph-library { border-radius:4px; box-shadow:inset 9px 0 0 rgba(255,255,255,.08), inset 18px 0 0 rgba(255,255,255,.05); }
.glyph-action { border-radius:10px; transform:rotate(45deg) scale(.8); }
.handoff-marker { position:absolute; right:-8px; top:50%; width:16px; height:16px; margin-top:-8px; border-radius:50%; background:var(--accent3); box-shadow:0 0 22px rgba(196,181,253,.82); }
.mode-handoff .node-mission { border-color:rgba(196,181,253,.95); box-shadow:0 22px 48px rgba(124,58,237,.36), inset 0 -18px 26px rgba(196,181,253,.1); }
.mode-handoff .handoff-marker { width:22px; height:22px; right:-12px; margin-top:-11px; }
.handoff-callout { position:absolute; z-index:4; display:grid; gap:3px; padding:9px 11px; border:1px solid rgba(196,181,253,.54); border-radius:8px; background:rgba(15,23,42,.76); box-shadow:0 0 28px rgba(196,181,253,.18); }
.handoff-callout span { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.06em; }
.handoff-callout strong { font-size:13px; }
.handoff-source { left:20%; top:60%; }
.handoff-destination { right:14%; top:39%; }
.radial-overlay { position:absolute; left:22px; right:22px; bottom:18px; border:1px solid rgba(203,213,225,.16); border-radius:8px; background:rgba(15,23,42,.66); backdrop-filter:blur(8px); padding:13px; display:grid; grid-template-columns:minmax(280px,.62fr) 1fr; gap:12px; z-index:4; }
.radial-overlay-head { display:grid; grid-template-columns:minmax(160px,1fr) minmax(220px,.8fr); gap:12px; align-items:end; }
.radial-overlay h3 { margin:0; font-size:18px; }
.mission-route { display:grid; grid-template-columns:1fr auto auto; gap:8px; align-items:center; padding:9px; border:1px solid rgba(203,213,225,.16); border-radius:8px; background:rgba(2,6,23,.34); }
.mission-route span { color:var(--muted); font-size:12px; }
.mission-route strong { font-size:14px; }
.route-attention { color:var(--warn) !important; }
.route-ready { color:var(--ok) !important; }
.wall-readout { display:grid; grid-template-columns:repeat(5,minmax(90px,1fr)); gap:8px; margin:0; }
.wall-readout div { display:grid; gap:4px; padding:8px 10px; border:1px solid rgba(203,213,225,.12); border-radius:8px; background:rgba(2,6,23,.32); }
.wall-readout div:last-child { border-bottom:1px solid rgba(203,213,225,.12); }
.wall-readout dt { color:var(--muted); font-size:12px; }
.wall-readout dd { margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.stack-board { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; margin:16px 0; }
.stack-card { position:relative; min-height:236px; display:grid; grid-template-rows:auto 1fr auto auto; gap:12px; background:linear-gradient(160deg, var(--glass), rgba(15,23,42,.58)); border:1px solid var(--line); border-radius:8px; padding:16px; overflow:hidden; box-shadow:0 18px 45px rgba(0,0,0,.22); }
.stack-card::before { content:""; position:absolute; inset:0; border-top:3px solid var(--stack-accent,var(--accent)); pointer-events:none; }
.stack-card.accent-1 { --stack-accent:var(--accent); }
.stack-card.accent-2 { --stack-accent:var(--accent2); }
.stack-card.accent-3 { --stack-accent:var(--accent3); }
.stack-card.accent-4 { --stack-accent:var(--accent4); }
.stack-head { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:12px; align-items:start; }
.stack-head h3 { margin:0; font-size:16px; }
.stack-head p { margin:3px 0 0; color:var(--muted); font-size:12px; }
.topology { width:38px; height:38px; border:2px solid var(--stack-accent,var(--accent)); background:rgba(255,255,255,.04); display:inline-block; }
.topology-terminal { border-radius:6px; box-shadow:inset 0 -10px 0 rgba(255,255,255,.06); }
.topology-cube { transform:skew(-8deg); border-radius:7px; }
.topology-window { border-radius:10px 10px 4px 4px; }
.stack-log { min-height:92px; border:1px solid rgba(203,213,225,.18); background:rgba(2,6,23,.44); border-radius:8px; padding:10px; display:flex; flex-direction:column; gap:8px; color:var(--muted); font:12px/1.35 ui-monospace, monospace; }
.stack-log span:first-child { color:var(--fg); }
.segment-progress { height:8px; border-radius:999px; background:rgba(148,163,184,.18); overflow:hidden; }
.segment-progress span { display:block; height:100%; background:var(--stack-accent,var(--accent)); border-radius:inherit; }
.transport-bar { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.transport-bar span { margin-left:auto; color:var(--muted); font-size:13px; }
.telemetry-strip { display:grid; grid-template-columns:repeat(5,minmax(120px,1fr)); gap:10px; margin:16px 0; }
.telemetry-strip button { min-height:82px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; text-align:left; gap:3px; background:rgba(17,24,39,.78); border-radius:8px; }
.telemetry-strip strong { font-size:24px; color:var(--fg); }
.telemetry-strip span { color:var(--muted); font-size:12px; }
.control-planner { display:grid; grid-template-columns:minmax(320px,1fr) minmax(260px,.36fr); gap:14px; margin-top:16px; align-items:stretch; }
.guided-start { display:grid; grid-template-columns:1fr; align-items:start; gap:14px; border:1px solid var(--line); background:rgba(15,23,42,.58); border-radius:8px; padding:16px; }
.guided-start h3 { margin:0 0 4px; font-size:18px; }
.planner-grid { display:grid; grid-template-columns:repeat(3,minmax(160px,1fr)); gap:10px; }
.planner-grid label { display:flex; flex-direction:column; gap:6px; color:var(--muted); font-size:12px; }
.planner-grid select { width:100%; min-height:38px; }
.quota-panel { border:1px solid var(--line); border-radius:8px; background:rgba(15,23,42,.72); padding:16px; display:grid; gap:12px; align-content:start; }
.quota-donut { --quota:0%; width:148px; aspect-ratio:1; border-radius:50%; justify-self:center; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; background:conic-gradient(var(--accent) var(--quota), rgba(148,163,184,.18) 0); position:relative; color:var(--fg); }
.quota-donut::before { content:""; position:absolute; inset:13px; border-radius:inherit; background:var(--panel); border:1px solid rgba(203,213,225,.16); }
.quota-donut strong, .quota-donut span { position:relative; z-index:1; }
.quota-donut strong { font-size:23px; }
.quota-donut span { color:var(--muted); font-size:11px; max-width:96px; text-align:center; }
.quota-readout { margin:0; display:grid; gap:7px; }
.quota-readout div { display:grid; grid-template-columns:1fr auto; gap:10px; border-bottom:1px solid rgba(203,213,225,.13); padding-bottom:7px; }
.quota-readout div:last-child { border-bottom:0; padding-bottom:0; }
.quota-readout dt { color:var(--muted); font-size:12px; }
.quota-readout dd { margin:0; }
@media (max-width: 820px) {
  header { position:static; }
  .top-status { width:100%; margin-left:0; }
  .wall-hero, .guided-start, .radial-wall, .control-planner, .missions-layout, .memory-layout { grid-template-columns:1fr; align-items:start; }
  .hero-actions { justify-content:flex-start; }
  .telemetry-strip { grid-template-columns:repeat(2,minmax(120px,1fr)); }
  .planner-grid { grid-template-columns:1fr; }
  .radial-wall { margin-inline:0; }
  .radial-map { min-height:0; display:grid; grid-template-columns:1fr; gap:8px; padding:12px; }
  .radial-links, .central-hub .hub-core { display:none; }
  .central-hub, .orbit-node { position:static; transform:none; width:100%; min-height:72px; }
  .central-hub { margin-bottom:4px; }
  .orbit-node:hover:not(:disabled) { transform:none; }
  .node-copy span { font-size:10px; }
  .handoff-callout { position:static; }
  .radial-overlay { position:static; grid-template-columns:1fr; }
  .radial-overlay-head, .wall-readout { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}

/* Session workspace — persistent instances→sessions nav (agentic-sandbox-style control screen, #1670) */
.session-workspace { display:grid; grid-template-columns:minmax(240px, 300px) minmax(0, 1fr); gap:16px; align-items:start; }
@media (max-width: 820px) { .session-workspace { grid-template-columns:1fr; } }
.session-nav { border:1px solid var(--line); border-radius:10px; background:var(--panel); padding:10px; max-height:calc(100vh - 250px); overflow-y:auto; }
.session-nav-head { display:flex; align-items:center; justify-content:space-between; margin:2px 4px 8px; }
.session-nav-head h2 { margin:0; font-size:15px; }
.session-nav-head .hint { margin:0; }
.nav-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }
.nav-instance { border-radius:8px; border:1px solid transparent; }
.nav-instance.selected { background:rgba(94,234,212,.06); border-color:var(--line); }
.nav-instance-row { width:100%; display:flex; align-items:center; gap:8px; background:none; border:0; padding:8px; cursor:pointer; text-align:left; border-radius:8px; }
.nav-instance-row:hover { border-color:transparent; background:rgba(148,163,184,.08); }
.nav-instance-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; font-size:13px; }
.nav-instance .state { font-size:11px; color:var(--muted); }
.nav-instance .badge { font-size:10px; padding:1px 7px; text-transform:lowercase; }
.nav-sessions { padding:0 6px 8px 10px; display:flex; flex-direction:column; gap:4px; }
.nav-sessions ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:3px; }
.nav-sessions li { display:flex; align-items:stretch; gap:4px; }
.nav-session { flex:1; min-width:0; display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px; background:none; border:1px solid transparent; border-left:2px solid var(--line); border-radius:6px; padding:6px 8px; cursor:pointer; text-align:left; }
.nav-session:hover { background:rgba(148,163,184,.08); }
.nav-session.selected { border-color:var(--accent); border-left-color:var(--accent); background:rgba(94,234,212,.08); }
.nav-session.live { border-left-color:var(--ok); }
.nav-session-name { flex-basis:100%; font-size:12px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nav-session-meta { font-size:11px; color:var(--muted); }
.nav-session .badge { padding:0 6px; font-size:10px; }
.nav-session .live-dot { border-color:var(--ok); color:var(--ok); }
.nav-session .unread { border-color:var(--accent2); color:var(--accent2); }
.nav-session .response { border-color:var(--warn); color:var(--warn); }
.nav-session-end { align-self:center; padding:4px 9px; color:var(--muted); border-color:transparent; background:none; line-height:1; }
.nav-session-end:hover:not(:disabled) { border-color:var(--err); color:var(--err); }
.nav-new-session { margin-top:6px; align-self:flex-start; }
.cta-sm { font-size:12px; padding:5px 10px; border-color:var(--accent); color:var(--accent); }
.nav-empty { margin:4px 0; font-size:12px; }
.session-main { min-width:0; }
.controls-active { color:var(--muted); font-size:13px; padding:5px 10px; border:1px dashed var(--line); border-radius:7px; max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.badge.live-dot { color:var(--ok); border-color:var(--ok); }
.activity-scope { display:flex; gap:.75rem; flex-wrap:wrap; align-items:end; margin-bottom:1rem }
.activity-scope label { display:grid; gap:.25rem; text-transform:capitalize }
.activity-coverage { border-left:4px solid var(--warn, #d97706); padding:.75rem 1rem; margin:1rem 0 }
.activity-coverage.complete { border-left-color:var(--ok, #16a34a) }
.activity-trust-observed { background:#dbeafe; color:#1e3a8a }
.activity-trust-attested { background:#dcfce7; color:#14532d }
.activity-trust-self-reported { background:#fef3c7; color:#78350f }
.activity-trust-derived { background:#ede9fe; color:#4c1d95 }
