:root{font-family:Inter,system-ui,-apple-system,sans-serif;color:#eef6ff;background:#030812;--bg:#030812;--bg2:#071321;--bg3:#14304c;--card:#071523d9;--border:#173a56;--line:#112b40;--text:#eef6ff;--muted:#8aa0b4;--accent:#73add6;--accent2:#8ee3ff;--ok:#66dfb1;--wait:#f2c96d;--err:#ff7373;color-scheme:dark}
html[data-theme=light]{--bg:#eef3f8;--bg2:#e3ebf3;--bg3:#d5e3ef;--card:#ffffffee;--border:#d3dee8;--line:#e6edf3;--text:#0b1a2a;--muted:#5b6f84;--accent:#0a6fb5;--accent2:#0a6fb5;--ok:#1f9d6a;--wait:#b8790a;--err:#d64545;color-scheme:light;color:#0b1a2a;background:#eef3f8}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% -10%,var(--bg3),transparent 45%),radial-gradient(ellipse at 90% 10%,color-mix(in srgb,#5b3cff 22%,transparent),transparent 40%),radial-gradient(ellipse at 50% 110%,color-mix(in srgb,var(--accent2) 14%,transparent),transparent 45%),linear-gradient(var(--bg2),var(--bg));min-height:100vh;color:var(--text)}.wrap{position:relative;z-index:1}.wrap{max-width:720px;margin:auto;padding:22px 16px 110px}.top{display:flex;justify-content:space-between;align-items:flex-start;margin:8px 0 22px}.kicker{font-size:10px;letter-spacing:.2em;color:#73add6;margin:0}.top h1{font-size:27px;margin:5px 0}.top>span{font-variant-numeric:tabular-nums;color:#83dfff;font-size:13px;margin-top:7px}.view{display:none}.view.active{display:block}.health,.panel,.metrics article,.project-list article{border:1px solid #173a56;background:#071523d9;border-radius:18px}.health{padding:17px;display:flex;justify-content:space-between;align-items:center}.health>div{display:grid;grid-template-columns:auto 1fr;column-gap:9px}.health b{font-size:14px}.health small{grid-column:2;color:#6f879d;font-size:10px;margin-top:3px}.health>strong{font-size:10px;color:#83dfff;letter-spacing:.12em}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;box-shadow:0 0 10px currentColor}.dot.ok{background:#66dfb1;color:#66dfb1}.dot.wait{background:#f2c96d;color:#f2c96d}.dot.err{background:#ff7373;color:#ff7373}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:9px 0}.metrics article{padding:13px 11px}.metrics span{font-size:9px;color:#75a7cd;text-transform:uppercase;letter-spacing:.1em}.metrics b{display:block;font-size:25px;margin:4px 0}.metrics small{font-size:9px;color:#637b91}.panel{padding:17px;margin-top:9px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.panel-head h2{font-size:18px;margin:0}.panel-head span{font-size:9px;color:#65a7ce;text-transform:uppercase;letter-spacing:.1em}.systems{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sys{display:flex;gap:9px;align-items:flex-start;border-top:1px solid #112b40;padding:11px 3px}.sys b{display:block;font-size:12px}.sys small{display:block;color:#657e94;font-size:9px;margin-top:3px}.event{display:grid;grid-template-columns:78px 10px 1fr;gap:8px;align-items:center;border-top:1px solid #112b40;padding:11px 0}.event time{font-size:9px;color:#66829a}.event p{font-size:11px;color:#a9bac9;margin:0}.project-list{display:grid;gap:8px}.project-list article{display:grid;grid-template-columns:30px 1fr 16px;align-items:center;padding:15px}.project-list article>span{font-size:9px;color:#67c9f0}.project-list b{display:block;font-size:13px}.project-list small{display:block;color:#6f879d;font-size:10px;margin-top:4px}.project-list i{font-style:normal;color:#4f718c}.flowmap{height:330px;border:1px solid #173a56;border-radius:22px;background:radial-gradient(circle,#0d2940,#06111e 58%);position:relative;margin-bottom:10px}.node{position:absolute;border:1px solid #2a5b7d;background:#071827;border-radius:50%;display:grid;place-content:center;text-align:center;font-size:10px;color:#9fb5c8}.core{width:105px;height:105px;left:50%;top:50%;transform:translate(-50%,-50%)}.core b{color:#83dfff}.n1,.n2,.n3,.n4{width:78px;height:78px}.n1{left:7%;top:10%}.n2{right:7%;top:10%}.n3{left:7%;bottom:10%}.n4{right:7%;bottom:10%}.pulse{position:absolute;width:7px;height:7px;background:#83dfff;border-radius:50%;box-shadow:0 0 14px #83dfff;animation:pulse 2.6s ease-in-out infinite}.p1{left:30%;top:34%}.p2{right:30%;bottom:34%;animation-delay:1.3s}@keyframes pulse{50%{transform:translate(70px,50px);opacity:.35}}nav{position:fixed;left:50%;bottom:calc(10px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 22px),698px);display:grid;grid-template-columns:repeat(4,1fr);background:#071523ee;border:1px solid #173956;border-radius:18px;padding:7px;backdrop-filter:blur(18px);z-index:20}nav button{appearance:none;border:0;background:transparent;color:#617c94;padding:11px 2px;border-radius:11px;font-size:10px}nav button.active{color:#8ee3ff;background:#0d263a}@media(max-width:390px){.systems{grid-template-columns:1fr}.flowmap{height:300px}.metrics article{padding:11px 8px}}
.view{padding-bottom:86px}.events:last-child,.project-list:last-child{margin-bottom:28px}@supports(padding:max(0px)){.wrap{padding-bottom:calc(130px + env(safe-area-inset-bottom))}}
.focus{margin-bottom:10px;padding:16px;border:1px solid #173a56;background:#071523d9;border-radius:18px}
.focus-list{display:grid;gap:8px}.focus-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid #112b40}.focus-row:first-child{border-top:0}.focus-row b{font-size:12px;font-weight:650}
html.max-mode .wrap{padding-top:12px}html.max-mode .top{margin-top:0}html.max-mode .top h1{font-size:25px}html.max-mode .kicker{font-size:9px}
html.max-mode nav{bottom:calc(8px + env(safe-area-inset-bottom));border-radius:22px}html.max-mode nav button{min-height:48px;font-size:11px}
@media(min-width:760px){.wrap{max-width:1040px}.systems{grid-template-columns:repeat(3,1fr)}.metrics{gap:12px}.panel{padding:22px}.project-list{grid-template-columns:1fr 1fr}}

.project-card{cursor:pointer;min-height:72px;-webkit-tap-highlight-color:transparent}.project-card:active{transform:scale(.99);background:#0b2032}
.project-back{appearance:none;border:1px solid #28516f;background:#0a1d2d;color:#8edfff;border-radius:12px;padding:10px 14px;margin:0 0 9px;font:inherit;font-size:12px}
.project-context{border:1px solid #173a56;background:#071523d9;border-radius:18px;padding:15px;margin-bottom:9px}.project-context b{display:block;font-size:16px}.project-context small{display:block;color:#7890a5;font-size:10px;margin-top:5px}
.project-leaf{border:1px solid #173a56;background:#071523d9;border-radius:18px;padding:18px}.project-leaf>span{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#71b9df}.project-leaf h3{font-size:20px;margin:7px 0}.project-leaf p{font-size:12px;color:#b6c7d5;margin:0 0 14px}.project-leaf small{display:block;color:#6f879d;font-size:10px;line-height:1.45}

.top-right{display:flex;align-items:center;gap:10px}.refresh{width:42px;height:42px;border:1px solid #173a56;background:#071523d9;color:#8ee3ff;border-radius:13px;display:grid;place-items:center;-webkit-tap-highlight-color:transparent}.refresh:active{transform:scale(.94)}.refresh.spin svg{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat{border:1px solid #112b40;border-radius:14px;padding:10px 12px}.stat small{display:block;font-size:9px;color:#75a7cd;text-transform:uppercase;letter-spacing:.08em}.stat b{display:block;font-size:17px;margin-top:4px;font-variant-numeric:tabular-nums}
.focus-row b{overflow-wrap:anywhere;line-height:1.35}html[data-mode=offline] .health>strong{color:#ff7373}html[data-mode=stale] .health>strong{color:#f2c96d}
@media(min-width:760px){.stats{grid-template-columns:repeat(4,1fr)}}
.focus-row{align-items:flex-start}.focus-row .dot{margin-top:5px;flex:0 0 8px}.focus-row b{display:block;font-size:13px}.focus-row small{display:block;color:#8aa0b4;font-size:11px;margin-top:3px;line-height:1.4;overflow-wrap:anywhere}
.top-right{flex-direction:column;align-items:flex-end;gap:6px}.top>span{margin-top:0}@media(max-width:420px){.top h1{font-size:23px}}

.verdict{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:13px 15px;border-radius:16px;border:1px solid #173a56;background:#071523d9;font-size:14px}.verdict b{font-weight:650}.verdict .dot{flex:0 0 8px}.verdict.err{border-color:#7a2f35}.verdict.wait{border-color:#6e5a25}.verdict.ok{border-color:#1f5a49}
.notice{margin:0 0 10px;padding:10px 14px;border-radius:14px;font-size:12px;background:#3a2f12;color:#f2d99a}.notice.err{background:#3d1a1a;color:#ffb3b3}
.act{display:block;margin-top:6px;font-style:normal;font-size:12px;line-height:1.4;color:#8ee3ff}.act span{color:#8aa0b4}
.since{display:block;margin-top:5px;font-style:normal;font-size:10px;color:#7f95a8;letter-spacing:.03em}
.focus-row details{margin-top:6px}.focus-row summary{cursor:pointer;font-size:11px;color:#7f95a8;list-style:none;min-height:26px;display:flex;align-items:center}.focus-row summary::-webkit-details-marker{display:none}.focus-row summary::before{content:"›";display:inline-block;margin-right:6px;transition:transform .15s}.focus-row details[open] summary::before{transform:rotate(90deg)}.focus-row details p{margin:4px 0 0;font-size:11px;color:#8aa0b4;line-height:1.4;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
#inboxList .focus-row{padding:12px 0}
/* ---- космос: звёзды, схема связей, HUD ---- */
.stars{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.orbitWrap{position:relative;margin-top:4px}.orbitWrap svg{width:100%;height:auto;display:block;max-height:300px}
.orbit .ring{fill:none;stroke:var(--border);stroke-dasharray:3 5}.orbit .ring2{stroke-dasharray:1 6;opacity:.7}
.orbit .link{fill:none;stroke-width:1.2;stroke:var(--border)}.orbit .link.ok{stroke:var(--ok);opacity:.55;stroke-dasharray:3 7;animation:flow 1.6s linear infinite}.orbit .link.wait{stroke:var(--wait);opacity:.75;stroke-dasharray:6 6}.orbit .link.err{stroke:var(--err);stroke-width:1.6;animation:blink 1.1s steps(2,start) infinite}
.orbit .packet{fill:var(--ok);filter:drop-shadow(0 0 4px var(--ok))}.orbit .packet.err{fill:var(--err);filter:drop-shadow(0 0 5px var(--err))}
.orbit .node .halo{fill:none;stroke:transparent;stroke-width:1.5}.orbit .node .core{fill:var(--card);stroke-width:2}.orbit .node.ok .core{stroke:var(--ok);filter:drop-shadow(0 0 5px var(--ok))}.orbit .node.wait .core{stroke:var(--wait);filter:drop-shadow(0 0 5px var(--wait))}.orbit .node.err .core{stroke:var(--err);filter:drop-shadow(0 0 6px var(--err));animation:pulseNode 1.2s ease-in-out infinite}.orbit .node .tap{fill:transparent;cursor:pointer}.orbit .node{outline:none}.orbit .node text{font-size:10px;fill:var(--muted);letter-spacing:.02em;pointer-events:none}
.orbit .node.selected .halo{stroke:var(--accent2);stroke-dasharray:2 3;transform-box:fill-box;transform-origin:center;animation:spin 6s linear infinite}.orbit .node.selected text{fill:var(--text);font-weight:600}
.orbit .orbitRing{fill:none;stroke:var(--accent2);stroke-opacity:.55;stroke-dasharray:4 10;transform-box:fill-box;transform-origin:center;animation:spin 14s linear infinite}.orbit .hub{fill:var(--card);stroke:var(--accent2);stroke-width:1.5;filter:drop-shadow(0 0 8px var(--accent2))}.orbit .hubText{font-size:11px;font-weight:700;fill:var(--text);letter-spacing:.14em}.orbit .hubSub{font-size:8px;fill:var(--accent);letter-spacing:.2em}
@keyframes flow{to{stroke-dashoffset:-20}}@keyframes blink{50%{opacity:.25}}@keyframes pulseNode{50%{stroke-width:4}}@keyframes spin{to{transform:rotate(360deg)}}
.orbitInfo{margin-top:6px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);min-height:44px}.orbitInfo b{display:block;font-size:13px}.orbitInfo small{display:block;color:var(--muted);margin-top:3px;line-height:1.4}.orbitInfo.err{border-color:color-mix(in srgb,var(--err) 45%,var(--line))}.orbitInfo.wait{border-color:color-mix(in srgb,var(--wait) 45%,var(--line))}.orbitInfo.muted small{margin:0}
.theme{flex:0 0 44px;width:44px;height:44px;border:1px solid var(--border);background:var(--card);color:var(--accent2);border-radius:14px;display:grid;place-items:center;-webkit-tap-highlight-color:transparent;font:inherit}.theme:active{transform:scale(.94)}
.hud{position:relative}.hud::before{content:"";position:absolute;top:12px;left:-1px;width:2px;height:22px;background:var(--accent2);border-radius:2px;opacity:.85;box-shadow:0 0 8px var(--accent2)}
@media(prefers-reduced-motion:reduce){.orbit *{animation:none!important}}

.tools{display:flex;gap:8px}.top-right{gap:8px}.metrics b{color:var(--accent2);text-shadow:0 0 12px color-mix(in srgb,var(--accent2) 45%,transparent)}
/* ---- светлая тема панели ---- */
html[data-theme=light] .health,html[data-theme=light] .panel,html[data-theme=light] .metrics article,html[data-theme=light] .project-list article,html[data-theme=light] .focus,html[data-theme=light] .verdict,html[data-theme=light] .project-context,html[data-theme=light] .project-leaf,html[data-theme=light] .refresh,html[data-theme=light] .theme{background:var(--card);border-color:var(--border);color:var(--text)}
html[data-theme=light] .stat{border-color:var(--line)}html[data-theme=light] .sys,html[data-theme=light] .event,html[data-theme=light] .focus-row{border-color:var(--line)}
html[data-theme=light] .kicker,html[data-theme=light] .metrics span,html[data-theme=light] .panel-head span,html[data-theme=light] .project-list article>span,html[data-theme=light] .project-leaf>span,html[data-theme=light] .stat small{color:var(--accent)}
html[data-theme=light] .top>span,html[data-theme=light] .health>strong,html[data-theme=light] .refresh,html[data-theme=light] .theme,html[data-theme=light] .act,html[data-theme=light] .metrics b{color:var(--accent2);text-shadow:none}
html[data-theme=light] .sys small,html[data-theme=light] .event p,html[data-theme=light] .event time,html[data-theme=light] .focus-row small,html[data-theme=light] .metrics small,html[data-theme=light] .health small,html[data-theme=light] .since,html[data-theme=light] .focus-row summary,html[data-theme=light] .focus-row details p,html[data-theme=light] .project-list small,html[data-theme=light] .project-context small,html[data-theme=light] .project-leaf small,html[data-theme=light] .project-leaf p,html[data-theme=light] .act span,html[data-theme=light] .orbitInfo small{color:var(--muted)}
html[data-theme=light] nav{background:#ffffffee;border-color:var(--border)}html[data-theme=light] nav button{color:var(--muted)}html[data-theme=light] nav button.active{background:#e3eef7;color:var(--accent2)}
html[data-theme=light] .project-back{background:#e3eef7;border-color:var(--border);color:var(--accent2)}html[data-theme=light] .project-card:active{background:#e3eef7}
html[data-theme=light] .notice{background:#fff3d6;color:#6b4a00}html[data-theme=light] .notice.err{background:#ffe1e1;color:#8a1f1f}
html[data-theme=light] .verdict.err{border-color:#e7a3a3}html[data-theme=light] .verdict.wait{border-color:#e4c78a}html[data-theme=light] .verdict.ok{border-color:#9dd8bf}
html[data-theme=light] .dot.ok{background:var(--ok);color:var(--ok)}html[data-theme=light] .dot.wait{background:var(--wait);color:var(--wait)}html[data-theme=light] .dot.err{background:var(--err);color:var(--err)}
.metrics b.text{font-size:15px;line-height:1.25;margin-top:7px}
