:root{--ground:#0C0F12;--surface:#131D28;--raised:#1A2634;--inset:#080A0F;--line:#28343F;--line-soft:#1C2630;--ink:#FFFFFF;--muted:#A9B4BC;--faint:#5F6B75;--honey:#C3FCBC;--honey-deep:#7FBF77;--honey-dim:#33502F;--ok:#10B981;--alert:#EF4444;--sleep:#38434D;--human:#A9B8F8;--display:"Albert Sans","Avenir Next","Segoe UI",system-ui,sans-serif;--body:"Albert Sans","Avenir Next","Segoe UI",system-ui,sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace}*{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark}body{background:var(--ground);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.45;min-height:100vh}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}button:focus-visible{outline:2px solid var(--honey);outline-offset:2px}.wrap{max-width:1280px;margin:0 auto;padding:0 24px 48px}header.mast{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.mast-logo{display:block}.mast-logo svg{display:block;height:32px;width:auto;fill:var(--ink)}.budget{background:var(--surface);border:1px solid var(--line-soft);border-radius:8px;padding:12px 18px;margin:20px 0 0}.budget-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}.budget-head .k{font-family:var(--display);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--faint)}.budget-head .v{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink)}.budget-track{height:8px;background:var(--inset);border-radius:99px;overflow:hidden;margin-top:9px}.budget-fill{height:100%;width:0%;background:var(--honey);border-radius:99px;transition:width .8s ease}.budget-fill.warn{background:#fbbf24}.budget-fill.crit{background:var(--alert)}.main{margin-top:20px}.hive-panel{min-width:0}.panel-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px;gap:16px;flex-wrap:wrap}.panel-head h2{font-family:var(--display);font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);font-weight:600}.legend{display:flex;gap:14px;flex-wrap:wrap}.legend span{font-family:var(--mono);font-size:11px;color:var(--faint);display:flex;align-items:center;gap:5px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.dot.working{background:var(--ok)}.dot.idle{background:var(--honey-dim)}.dot.asleep{background:var(--sleep)}.dot.alerting{background:var(--alert)}.dot.agents{background:var(--honey)}.dot.human{background:var(--human)}.dot.planned{background:transparent;border:1px dashed var(--faint)}.hive-frame{background:var(--inset);border:1px solid var(--line-soft);border-radius:12px;padding:8px;overflow-x:auto;max-width:920px;margin:0 auto}svg.hive{display:block;width:100%;height:auto;min-width:560px}.hex{cursor:pointer;outline:none;transition:opacity .5s}.hex:focus{outline:none}.hex:focus-visible{outline:none}.hex:focus-visible .cell{stroke:var(--honey);stroke-width:2.5}.hex.dimmed{opacity:.15}.hex.related .cell{stroke:var(--honey-deep);stroke-width:2}.link-line{stroke:var(--honey);stroke-width:1.5;opacity:.5;pointer-events:none}.link-line.to-planned{stroke:var(--faint);stroke-dasharray:4 5}.hex .cell{fill:var(--surface);stroke:var(--line);stroke-width:1.5;transition:fill .8s,stroke .8s}.hex text{fill:var(--muted);pointer-events:none;transition:fill .8s}.hex .hx-name{font-family:var(--display);font-weight:700;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;fill:var(--ink)}.hex .hx-role{font-family:var(--mono);font-size:8.5px;fill:var(--faint);letter-spacing:.04em}.hex .hx-count{font-family:var(--mono);font-size:8.5px;fill:var(--faint)}.hex .status-dot{transition:fill .3s}.hex.working .cell{fill:#14261c;stroke:var(--honey-deep)}.hex.working .status-dot{fill:var(--ok)}.hex.idle .status-dot{fill:var(--honey-dim)}.hex.asleep .cell{fill:#0f151b}.hex.asleep .hx-name{fill:var(--faint)}.hex.asleep .status-dot{fill:var(--sleep)}.hex.alerting .cell{stroke:var(--alert);fill:#291316}.hex.alerting .status-dot{fill:var(--alert)}.hex.planned .cell{fill:var(--inset);stroke:var(--line-soft);stroke-dasharray:5 5}.hex.planned .hx-name{fill:var(--faint)}.hex.planned .hx-role,.hex.planned .hx-count{fill:#414d57}.hex.planned .status-dot{fill:none;stroke:var(--faint);stroke-width:1}.hex.planned:hover .cell{stroke:var(--faint)}.hex:hover .cell{stroke:var(--honey)}.hex.selected .cell{stroke:var(--honey);stroke-width:2.5}.hex.center .cell{stroke-width:2}.pulse{fill:none;stroke:var(--honey);stroke-width:2;opacity:0;transform-origin:center;transform-box:fill-box}.pulse.go{animation:pulse 2s ease-out forwards}.pulse.go.alert-pulse{stroke:var(--alert)}@keyframes pulse{0%{opacity:.22;transform:scale(.88)}to{opacity:0;transform:scale(1.04)}}@media(prefers-reduced-motion:reduce){.pulse.go{animation:none;opacity:0}.feed li{animation:none!important}}.dossier{position:fixed;top:84px;right:24px;width:320px;z-index:30;max-height:calc(100vh - 120px);overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:0 16px 48px #0000008c}.d-close{position:absolute;top:10px;right:12px;font-family:var(--mono);font-size:14px;color:var(--faint);padding:4px 8px;border-radius:6px}.d-close:hover{color:var(--ink);background:var(--raised)}@media(max-width:720px){.dossier{left:16px;right:16px;width:auto}}.dossier .eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);display:inline-flex;align-items:center;gap:7px}.dossier h3{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:23px;letter-spacing:.02em;line-height:1.05;margin:2px 0}.dossier .role{color:var(--honey);font-size:13px}.dossier .desc{color:var(--muted);font-size:13px;margin-top:10px}.status-chip{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);border-radius:99px;padding:4px 12px;color:var(--muted)}.d-sec{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-soft)}.d-sec .k{font-family:var(--display);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);margin-bottom:7px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-family:var(--mono);font-size:10.5px;color:var(--honey);background:var(--raised);border:1px solid var(--line);border-radius:4px;padding:3px 7px}button.chip{cursor:pointer}button.chip:hover{border-color:var(--honey-deep);color:var(--ink)}.chip.is-planned{color:var(--faint);border-style:dashed}.endpoints{font-family:var(--mono);font-size:10.5px;color:var(--muted);display:grid;gap:4px}.endpoints span{overflow-wrap:anywhere}.endpoints b{color:var(--faint);font-weight:400;margin-right:6px}.spark-wrap{background:var(--inset);border:1px solid var(--line-soft);border-radius:6px;padding:8px 10px 4px}.spark-meta{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--faint);margin-bottom:2px}.spark-meta .now{color:var(--honey)}.dog-log{list-style:none;font-family:var(--mono);font-size:10.5px;display:grid;gap:5px;color:var(--muted)}.dog-log time{color:var(--faint);margin-right:8px;font-variant-numeric:tabular-nums}.dog-log .empty{color:var(--faint);font-style:italic}.feed-panel{margin-top:24px}.feed-frame{background:var(--inset);border:1px solid var(--line-soft);border-radius:12px;padding:14px 18px;max-height:300px;overflow-y:auto}.feed{list-style:none;font-family:var(--mono);font-size:12px;display:grid;gap:6px}.feed li{display:flex;gap:10px;align-items:baseline;animation:feedin .8s ease-out}@keyframes feedin{0%{opacity:0}to{opacity:1}}.feed time{color:var(--faint);font-variant-numeric:tabular-nums;flex:none}.feed .who{flex:none;width:110px;color:var(--honey);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed li.human .who{color:var(--human)}.feed li.alertline .who,.feed li.alertline .what{color:var(--alert)}.feed .what{color:var(--muted)}.feed li.human .what{color:var(--ink)}footer{margin-top:30px;padding-top:16px;border-top:1px solid var(--line-soft);font-family:var(--mono);font-size:10.5px;color:var(--faint);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}footer .sig{display:inline-flex;align-items:center;gap:8px}
