/* SOLAR-MAP-YA-007 · объём, живые агенты и шлюзы, плавные переходы. Основа —
 * SOLAR-MAP-YA-006 · Солнце жизни, орбиты, вложенные солнца, три режима (основа — YA-004/005). Токены 6798c951 + тонкие цвета семейств.
 * Центр — Солнце без подписи; орбиты жизни и деятельности; AWARA — один из контуров.
 * Без анимации в простое, без «онлайн», без пульсации. */

.center-ya, .center-btn {
  --f-project:#e6c07e; --f-personal:#bba9dc; --f-mixed:#dba6b9; --f-creative:#e7a68b;
  --f-practice:#a9cb9b; --f-team:#9cbddb; --f-game:#8fd0cf; --f-tech:#aab8c8;
}
.f-project { --fc:var(--f-project); } .f-personal { --fc:var(--f-personal); } .f-mixed { --fc:var(--f-mixed); }
.f-creative { --fc:var(--f-creative); } .f-practice { --fc:var(--f-practice); } .f-team { --fc:var(--f-team); }
.f-game { --fc:var(--f-game); } .f-tech { --fc:var(--f-tech); } .f-x { --fc:var(--ink2); }

.center-btn { border-color:rgba(230,192,126,.45); }
.center-btn[aria-pressed="true"] { background:rgba(230,192,126,.14); border-color:var(--sun); }
.center-ico { width:18px; height:18px; border-radius:50%; display:block; margin:auto;
  background:radial-gradient(circle at 40% 36%, #fffaf0 0%, #ffe3a8 30%, #e5ac5c 70%, #9a5f24 100%);
  box-shadow:0 0 0 3px rgba(230,192,126,.16), 0 0 12px rgba(255,214,150,.35); }
.center-btn-phone { display:none; }

body.center-on #stage, body.center-on .map-tools, body.center-on .mini, body.center-on #chips,
body.center-on .timeline, body.center-on #panels, body.center-on .map-key { display:none !important; }

.center-ya { position:fixed; left:16px; right:16px; top:96px; bottom:16px; z-index:15; overflow:auto; overscroll-behavior:contain;
  display:flex; flex-direction:column; gap:8px; color:var(--ink); }
.center-ya[hidden] { display:none; }

.cy-head { display:flex; justify-content:space-between; align-items:center; gap:10px 14px; flex-wrap:wrap; padding:0 4px; }
.cs-headl { display:flex; align-items:center; gap:8px; min-width:0; flex:1 1 260px; }
.cy-title { margin:0; font-size:16px; font-weight:400; color:var(--ink2); }
.cs-path { display:flex; flex-wrap:wrap; align-items:center; gap:2px 8px; }
.cs-path .cs-step { color:var(--ink2); min-height:36px; display:inline-flex; align-items:center; gap:6px; }
.cs-path .cs-step:hover { color:var(--focus); }
.cs-here { color:var(--sun); display:inline-flex; align-items:center; gap:6px; }
.cs-back { min-width:40px; font-size:16px; }
.cs-back[hidden] { display:none; }
#cy-up, .cs-enter { min-height:44px; }
@media (max-width:1100px) { .cy-head .cs-back { min-height:44px; min-width:44px; } }
/* три режима — тихий переключатель, не панель управления */
.cs-modes { display:flex; gap:2px; padding:3px; border-radius:999px; background:rgba(255,255,255,.03); border:1px solid var(--line); }
.cs-mode { min-height:36px; padding:0 14px; border-radius:999px; border:0; background:transparent; color:var(--mute); font-size:14px; cursor:pointer; }
.cs-mode:hover { color:var(--ink); }
.cs-mode[aria-pressed="true"] { background:rgba(230,192,126,.14); color:var(--sun); }
.cs-mode:focus-visible { outline:2px solid var(--focus); outline-offset:1px; }
.cs-mshort { display:none; }
.cy-title:focus { outline:none; }
.cy-actions { display:flex; gap:8px; flex-wrap:wrap; }
.cy-actions .btn { min-height:40px; font-size:14px; }
#cy-show[aria-pressed="true"] { border-color:var(--st-review); color:var(--ink); }

/* сцена + инспектор */
.cs-body { flex:1; min-height:0; display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:14px; }
.cs-stage { position:relative; min-width:0; min-height:0;
  background:radial-gradient(ellipse at 45% 50%, rgba(255,214,150,.07) 0%, rgba(255,214,150,0) 55%); border-radius:24px; }
.cs-svg { position:absolute; inset:0; width:100%; height:100%; display:block; overflow:visible; }
.cs-insp { min-width:0; overflow:auto; display:flex; flex-direction:column; gap:10px; padding:16px; border-radius:16px;
  background:rgba(11,16,23,.82); border:1px solid var(--line); }

/* орбиты и семейства */
.cs-orbit { fill:none; stroke:rgba(255,226,170,.11); stroke-width:1; }
.cs-orbit.o2 { stroke:rgba(175,195,212,.07); stroke-dasharray:2 7; }
.cs-orbit.o3 { stroke:rgba(175,195,212,.05); stroke-dasharray:1 9; }
.cs-band { fill:none; stroke:var(--fc); stroke-opacity:.16; stroke-width:7; stroke-linecap:round; }
.cs-m-calm .cs-band { stroke-opacity:.12; }
/* мембрана личного: мягкая полупрозрачная граница — «существует, но не обязано быть открыто» */
.cs-membrane { fill:var(--f-personal); fill-opacity:.045; stroke:var(--f-personal); stroke-opacity:.42; stroke-width:1.2; stroke-dasharray:2 5; }
.cs-membrane.outer { fill:none; stroke-opacity:.14; stroke-dasharray:none; stroke-width:6; }
.cs-membrane.sealed { fill-opacity:.025; stroke-opacity:.18; }
.cs-band.sealed { stroke-opacity:.08; }
.cs-crossl { fill:none; stroke:rgba(230,215,190,.22); stroke-width:1; stroke-dasharray:2 5; }
.cs-crossl.on { stroke:var(--sun); stroke-opacity:.8; }

/* лучи: Солнце → орбита */
.cs-ray { fill:var(--fc); fill-opacity:calc(.1 + var(--glow, 0) * .42); stroke:none; transition:fill-opacity var(--medium); }
.cs-m-calm .cs-ray, .cs-m-links .cs-ray { fill-opacity:.13; }
.cs-ray.cs-lit { fill-opacity:calc(.22 + var(--glow, 0) * .42); }
.cs-ray.sealed { fill-opacity:.06; }
.has-sel .cs-ray { fill-opacity:calc(.05 + var(--glow, 0) * .15); }
.has-sel .cs-ray.on { fill-opacity:.45; }

/* свет по событиям: ореол узла; пунктир — только синтетические события (DEMO) */
.cs-nglow { fill:var(--fc); fill-opacity:calc(var(--glow, 0) * .22); stroke:var(--fc); stroke-opacity:calc(var(--glow, 0) * .5); stroke-width:1; pointer-events:none; }
.cs-nglow.demo { stroke-dasharray:3 4; }
/* однократный импульс нового события: свет проходит по пути и гаснет */
.cs-trail { fill:none; stroke:#fff1cf; stroke-width:4.5; stroke-linecap:round; stroke-dasharray:.2 1.3; stroke-dashoffset:.2;
  animation:cs-trail 1.6s ease-out 1 forwards; pointer-events:none; filter:drop-shadow(0 0 4px rgba(255,220,160,.8)); }
@keyframes cs-trail { from { stroke-dashoffset:.2; opacity:1; } 85% { opacity:1; } to { stroke-dashoffset:-1.1; opacity:0; } }
@media (prefers-reduced-motion: reduce) { .cs-trail { display:none; } }
.cs-sun-tint { fill:var(--fc); fill-opacity:.42; pointer-events:none; mix-blend-mode:multiply; }
.cs-lg-glow { width:16px; height:16px; border-radius:50%; background:rgba(230,192,126,.22); border:1px solid rgba(230,192,126,.6); display:inline-block; }
.cs-lg-glow.demo { border-style:dashed; }
.cs-light { color:var(--ink2); }

/* ветви: орбита → семейство → объект */
.cs-link { fill:none; stroke:var(--fc); stroke-opacity:.42; stroke-width:1.4; }
.cs-link.l3 { stroke-width:1; stroke-opacity:.3; }
.cs-link.n-role, .cs-link.n-declared, .cs-link.n-shell, .cs-link.n-claimed, .cs-link.n-helper, .cs-link.n-item, .cs-link.n-role-b, .cs-link.n-practice { stroke-dasharray:4 4; }
.cs-link.n-hist { stroke-dasharray:1 4; stroke-linecap:round; }
.cs-link.n-exec, .cs-link.n-result { stroke-opacity:.65; }
.has-sel .cs-link { stroke-opacity:.15; }
.has-sel .cs-link.on { stroke:var(--sun); stroke-opacity:1; stroke-width:2; }

/* Солнце */
.cs-halo { pointer-events:none; }
.cs-corona { fill:none; stroke:rgba(255,220,160,.22); stroke-width:1; }
.cs-corona.c2 { stroke:rgba(255,232,190,.42); stroke-width:1.5; }
.cs-sun { stroke:rgba(255,244,220,.9); stroke-width:1.5; }
.cs-node.l0:focus-visible .cs-sun, .cs-node.l0.sel .cs-sun { stroke:#fff; stroke-width:3; }

/* узлы */
.cs-node { cursor:pointer; outline:none; }
.cs-hit { fill:transparent; stroke:none; }
.cs-shape { fill:var(--bg1); stroke:var(--fc, var(--line2)); stroke-width:1.5; }
.cs-node:focus-visible .cs-shape { stroke:var(--focus); stroke-width:2.5; }
.cs-node.sel .cs-shape { stroke:var(--sun); stroke-width:2.5; }
.has-sel .cs-node:not(.on):not(.l0) { opacity:.5; }

.cs-node.l1 .cs-shape { fill:var(--fc); fill-opacity:.14; stroke-width:1.6; }
.cs-node.l1.big .cs-shape { fill-opacity:.22; stroke-width:2; }
.cs-node.l1.f-personal .cs-shape { stroke-dasharray:3 3; fill-opacity:.08; }
.cs-node.l1.sealed .cs-shape { fill-opacity:.05; stroke-dasharray:none; opacity:.6; }
.cs-node.l2 .cs-shape { fill:var(--fc); fill-opacity:.08; }
.cs-node.l2.closed .cs-shape { stroke-dasharray:3 3; }
.cs-lock { fill:none; stroke:var(--f-personal); stroke-width:1.3; }

.cs-node.n-item .cs-shape, .cs-node.n-role-b .cs-shape, .cs-node.n-practice .cs-shape { fill:none; stroke-dasharray:2.5 2.5; }
.cs-node.n-tech .cs-shape { fill:none; }
.cs-node.n-anat .cs-shape { fill:none; stroke:var(--ink2); }
.cs-node.n-exec .cs-shape { fill:#1f2a35; stroke:var(--st-active); }
.cs-node.n-declared .cs-shape { fill:none; stroke:var(--st-planned); }
.cs-node.n-role .cs-shape { fill:none; stroke:var(--st-planned); stroke-dasharray:3 3; }
.cs-node.n-hist .cs-shape { fill:none; stroke:var(--st-historical); stroke-dasharray:1 3; }
.cs-node.n-task .cs-shape { fill:var(--bg1); stroke:var(--ink2); }
.cs-node.n-result .cs-shape { fill:rgba(161,200,181,.12); stroke:var(--st-done); }
.cs-node.n-claimed .cs-shape { fill:none; stroke:var(--st-waiting); stroke-dasharray:3 3; }
.cs-node.n-shell .cs-shape { fill:none; stroke:var(--st-demo); stroke-dasharray:3 3; }
.cs-node.n-helper .cs-shape { fill:rgba(187,169,220,.14); stroke:var(--f-personal); stroke-dasharray:3 2; }
.cs-node.n-persona .cs-shape { fill:#2a2438; stroke:var(--f-personal); }
.cs-node.n-image .cs-shape { fill:#132126; stroke:var(--f-game); }
.cs-count { font-size:10.5px; fill:var(--ink); font-variant-numeric:tabular-nums; pointer-events:none; }

.cs-dot { fill:none; stroke:var(--st-planned); stroke-width:1.1; }
.cs-dot.n-role { stroke-dasharray:1.5 1.5; }
.cs-dot.n-hist { stroke:var(--st-historical); stroke-dasharray:.8 1.6; }
.cs-dot.n-task { stroke:var(--ink2); stroke-opacity:.7; }
.has-sel .cs-dot { opacity:.35; } .has-sel .cs-dot.on { opacity:1; stroke:var(--sun); }

/* подписи */
.cs-l { paint-order:stroke; stroke:#080b10; stroke-width:4px; stroke-linejoin:round; fill:var(--ink); pointer-events:none; }
.cs-l.l1 { font-weight:500; fill:var(--fc); letter-spacing:.01em; }
.cs-l.l1.f-personal { font-style:italic; fill-opacity:.85; }
.cs-l.l1.big { letter-spacing:.08em; font-weight:600; }
.cs-l.l2 { fill:var(--ink); }
.cs-l.l3 { fill:var(--ink2); }
.has-sel .cs-l { opacity:.5; }
.has-sel .cs-l.l1 { opacity:1; }

/* инспектор */
.cs-crumb { display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px; font-size:13px; color:var(--mute); }
.cs-crumb .linkish { min-height:32px; color:var(--ink2); display:inline-flex; align-items:center; }
.cs-crumb .linkish:hover { color:var(--focus); text-decoration:underline; }
.cs-crumb-sun { width:12px; height:12px; border-radius:50%; background:radial-gradient(circle at 40% 36%, #fffaf0, #e5ac5c 70%, #9a5f24); }
.cs-sep { color:var(--sun); }
.cs-ih { margin:0; font-size:18px; font-weight:600; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.cs-ih[class*="f-"] { color:var(--fc); }
.cy-sub2 { color:var(--ink2); }
.cs-glist { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.cs-gbtn { width:100%; min-height:44px; display:flex; align-items:center; gap:10px; text-align:left; }
.cs-gname { flex:1; min-width:0; }
.cs-pdot { width:12px; height:12px; border-radius:50%; flex:none; background:var(--fc); opacity:.85; }
.cs-legend > summary { cursor:pointer; min-height:36px; display:flex; align-items:center; color:var(--ink2); font-size:14px; }

/* состояние словами, подробности свёрнуты */
.cs-state { margin:0; display:flex; flex-wrap:wrap; gap:4px 14px; font-size:14px; color:var(--mute); }
.cs-state b { font-weight:500; color:var(--ink); }
.cs-sw.demo { color:var(--mute); font-size:12px; flex-basis:100%; }
.cs-more > summary { cursor:pointer; min-height:36px; display:flex; align-items:center; color:var(--mute); font-size:13px; }
.cs-more[open] { display:flex; flex-direction:column; gap:6px; }
.cs-enter { align-self:flex-start; min-height:44px; border-color:rgba(230,192,126,.5); color:var(--sun); }
.cs-in { color:var(--sun); font-size:18px; line-height:1; }

/* анатомия роли — цепочка */
.cs-chain { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0; counter-reset:c; }
.cs-chain li { display:flex; flex-direction:column; gap:2px; padding:8px 0 8px 22px; position:relative; border-left:1px solid var(--line2); margin-left:6px; }
.cs-chain li::before { content:""; position:absolute; left:-6px; top:13px; width:11px; height:11px; border-radius:50%; background:var(--bg1); border:1.5px solid var(--f-team); }
.cs-chain li:last-child::before { background:#1f2a35; border-color:var(--st-active); }
.cs-chain-n { font-size:15px; color:var(--ink); }

/* списки */
.cy-note { margin:0; font-size:14px; line-height:1.45; color:var(--ink2); }
.cy-note.cy-private { color:#cfc4e4; }
.cy-note.cy-blocked { color:var(--st-blocked); font-size:13px; }
.cy-note.cy-src { font-size:13px; color:var(--mute); }
.cy-open { align-self:flex-start; min-height:44px; }
.cy-count { font-variant-numeric:tabular-nums; color:var(--ink2); }
.cy-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.cy-row { display:flex; align-items:flex-start; gap:10px; padding:6px 2px; min-height:32px; }
.cy-text { display:flex; flex-direction:column; min-width:0; }
.cy-name { font-size:15px; color:var(--ink); overflow-wrap:anywhere; }
.cy-name.linkish { color:var(--ink); text-align:left; min-height:24px; }
.cy-name.linkish:hover { color:var(--focus); text-decoration:underline; }
.cy-meta { font-size:13px; color:var(--mute); overflow-wrap:anywhere; }
.cy-k { flex:none; width:16px; height:16px; margin-top:3px; box-sizing:border-box; display:inline-block; }
.k-helper { border-radius:50%; border:1.5px dashed #bba9dc; background:rgba(187,169,220,.14); }
.k-role, .k-role-b, .k-item, .k-practice { border-radius:50%; border:1.5px dashed var(--st-planned); }
.k-hist { border-radius:50%; border:1.5px dotted var(--st-historical); }
.k-shell { border-radius:4px; border:1.5px dashed var(--st-demo); }
.k-tech { border-radius:4px; border:1.5px solid #aab8c8; }
.k-anat { border-radius:50%; border:1.5px solid var(--ink2); }
.k-declared { border-radius:50%; border:1.5px solid var(--st-planned); }
.k-exec { border-radius:50%; border:1.5px solid var(--st-active); background:#1f2a35; }
.k-task { width:13px; height:13px; margin:5px 1px 0 2px; transform:rotate(45deg); border:1.5px solid var(--ink2); }
.k-result { border-radius:4px; border:1.5px solid var(--st-done); background:rgba(161,200,181,.12); }
.k-claimed { border-radius:4px; border:1.5px dashed var(--st-waiting); }
.k-persona { border-radius:50%; background:#2a2438; border:1.5px solid #bba9dc; }
.k-image { border-radius:50%; background:#132126; border:1.5px solid #8fd0cf; }
.cy-legend { list-style:none; margin:0; padding:8px 0 0; display:flex; flex-wrap:wrap; gap:8px 14px; font-size:13px; color:var(--ink2); }
.cy-legend li { display:flex; align-items:center; gap:6px; }
.cy-legend .cy-k { margin-top:0; }
.cy-foot { margin:0; font-size:12px; color:var(--mute); }

/* планшет: сцена сверху, инспектор под ней */
@media (max-width:1100px) {
  .cs-body { display:flex; flex-direction:column; flex:none; }
  .cs-stage { height:max(460px, min(108vw, calc(100vh - 190px))); flex:none; }
  .cs-insp { overflow:visible; }
  .cy-actions .btn { min-height:44px; }
  .center-btn { min-width:44px; min-height:44px; }
  .cs-mode { min-height:44px; }
  .cs-back { min-height:44px; min-width:44px; }
  .cs-path .cs-step { min-height:44px; }
}

/* телефон: Солнце, восемь орбит, раскрыт один контур */
@media (max-width:760px) {
  .center-ya { left:8px; right:8px; top:120px; bottom:8px; }
  .cy-actions .btn { min-height:44px; }
  .cs-modes { order:3; flex:1 1 100%; }
  .cs-mode { flex:1; padding:0 6px; font-size:14px; }
  .cs-mfull { display:none; } .cs-mshort { display:inline; }
  .cs-stage { height:min(104vw, 480px); }
  .cs-insp { padding:12px; }
  .top-right .center-btn { display:none; }
  .center-btn-phone { display:inline-grid; width:44px; height:44px; flex:none; }
  .topbar .search { display:flex; gap:6px; align-items:center; }
  .topbar .search input { flex:1; min-width:0; }
  .cs-crumb .linkish { min-height:44px; }
  .cy-name.linkish { min-height:32px; }
}

/* ---------- YA-007 · объём ---------- */
.cs-orbit.back { stroke-opacity:.45; }
.cs-orbit.front { stroke-opacity:1; stroke-width:1.2; }
.cs-orbit.o1.front { stroke:rgba(255,226,170,.2); }
.pl-hi { stop-color:color-mix(in srgb, var(--fc) 30%, #fff7e8); stop-opacity:.95; }
.pl-mid { stop-color:var(--fc); stop-opacity:.62; }
.pl-lo { stop-color:color-mix(in srgb, var(--fc) 22%, #04060a); stop-opacity:.95; }
.cs-node .cs-shape.pl { fill-opacity:1; stroke-opacity:.75; }
.cs-node.l1.f-personal .cs-shape.pl { fill-opacity:.5; }
.cs-node.l2 .cs-shape.pl { stroke-opacity:.6; }
.cs-node.far { opacity:.88; }
.cs-sun { filter:drop-shadow(0 0 10px rgba(255,214,150,.55)); }

/* ---------- YA-007 · живое: дыхание только у подтверждённо работающего агента ---------- */
.cs-node.n-agent .cs-shape { fill:#16202a; stroke:var(--st-planned); }
.cs-node.n-agent.working .cs-shape { stroke:var(--st-active); fill:#1d2b33; }
.cs-node.n-gate .cs-shape { fill:none; stroke:#aab8c8; }
.cs-breath { fill:var(--st-active); fill-opacity:.0; stroke:var(--st-active); stroke-opacity:.35; stroke-width:1; pointer-events:none;
  transform-box:fill-box; transform-origin:center; animation:cs-breath 3.8s ease-in-out infinite; }
@keyframes cs-breath { 0%, 100% { fill-opacity:.04; transform:scale(.82); stroke-opacity:.18; } 50% { fill-opacity:.2; transform:scale(1.05); stroke-opacity:.5; } }
.cs-node.cs-touched .cs-shape { animation:cs-touch 1.8s ease-out 1; }
@keyframes cs-touch { 0% { stroke:#fff1cf; stroke-width:3; filter:drop-shadow(0 0 6px rgba(255,220,160,.9)); } 100% { } }

/* однократный импульс: мягкая очередь, проявление и затухание */
.cs-trail { animation-name:cs-trail; animation-duration:1.9s; animation-timing-function:cubic-bezier(.35,.1,.25,1); animation-fill-mode:both; animation-iteration-count:1; }
@keyframes cs-trail { 0% { stroke-dashoffset:.2; opacity:0; } 12% { opacity:1; } 82% { opacity:.9; } 100% { stroke-dashoffset:-1.1; opacity:0; } }
.cs-trail.cross { stroke:#e9d8ff; stroke-width:3; stroke-dasharray:.16 1.3; }

/* ---------- YA-007 · плавные переходы ---------- */
.cs-svg { transform-origin:50% 50%; }
.cs-ghost { pointer-events:none; }
.cs-ghost.g-in { animation:cs-g-in .42s ease-in forwards; }
.cs-ghost.g-out { animation:cs-g-out .42s ease-in forwards; }
.cs-ghost.g-sel { animation:cs-fade .22s ease forwards; }
.cs-ghost.g-mode { animation:cs-fade .38s ease forwards; }
@keyframes cs-g-in { to { opacity:0; transform:scale(1.22); filter:blur(2px); } }
@keyframes cs-g-out { to { opacity:0; transform:scale(.82); filter:blur(2px); } }
@keyframes cs-fade { to { opacity:0; } }
.cs-appear.a-in { animation:cs-a-in .48s cubic-bezier(.2,.7,.2,1) both; }
.cs-appear.a-out { animation:cs-a-out .48s cubic-bezier(.2,.7,.2,1) both; }
.cs-appear.a-sel { animation:cs-a-fade .22s ease both; }
.cs-appear.a-mode { animation:cs-a-fade .38s ease both; }
@keyframes cs-a-in { from { opacity:0; transform:scale(.8); } }
@keyframes cs-a-out { from { opacity:0; transform:scale(1.18); } }
@keyframes cs-a-fade { from { opacity:0; } }
@media (prefers-reduced-motion: reduce) { .cs-breath, .cs-node.cs-touched .cs-shape { animation:none; } }
/* декор не перехватывает нажатия; сцена не выходит за свои границы */
.cs-orbits, .cs-bands, .cs-cross, .cs-rays, .cs-links, .cs-dots, .cs-labels, .cs-trail { pointer-events:none; }
.cs-stage { overflow:hidden; }

/* ---------- YA-008 · «Я» в центре; вложенные солнца — в цвете контура ---------- */
.cs-sun.sub { stroke:var(--fc); stroke-opacity:.8; filter:drop-shadow(0 0 12px color-mix(in srgb, var(--fc) 60%, transparent)); }
.cs-origin { cursor:pointer; outline:none; }
.cs-origin .cs-hit { fill:transparent; }
.cs-sun.origin { stroke:rgba(255,244,220,.9); stroke-width:1; filter:drop-shadow(0 0 6px rgba(255,214,150,.7)); }
.cs-origin:focus-visible .cs-sun.origin, .cs-origin:hover .cs-sun.origin { stroke:#fff; stroke-width:2; }
.cs-origin-line { fill:none; stroke:rgba(255,226,170,.45); stroke-width:1.2; stroke-dasharray:2 5; }

/* ---------- YA-008 · окно подробностей сворачивается ---------- */
.cs-body { transition:grid-template-columns var(--medium) ease; }
.cs-body.folded { grid-template-columns:minmax(0,1fr) 52px; }
.cs-ibar { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:-4px -4px 0; }
.cs-itag { flex:1; text-align:left; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--mute); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cs-fold { min-width:40px; min-height:40px; display:inline-grid; place-items:center; flex:none; }
.cs-fold-i { width:10px; height:10px; border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor; transform:rotate(-45deg); transition:transform var(--medium) ease; }
.folded .cs-fold-i { transform:rotate(135deg); }
.folded .cs-insp { padding:10px 6px; overflow:hidden; }
.folded .cs-ibar { flex-direction:column-reverse; justify-content:flex-end; margin:0; height:100%; }
.folded .cs-itag { writing-mode:vertical-rl; transform:rotate(180deg); text-transform:none; letter-spacing:.04em; font-size:13px; color:var(--ink2); max-height:70%; }
@media (max-width:1100px) {
  .cs-body.folded { grid-template-columns:none; }
  .folded .cs-insp { padding:8px 12px; }
  .folded .cs-ibar { flex-direction:row; height:auto; }
  .folded .cs-itag { writing-mode:horizontal-tb; transform:none; }
  .cs-fold { min-width:44px; min-height:44px; }
  .cs-fold-i { transform:rotate(45deg); }
  .folded .cs-fold-i { transform:rotate(-135deg); }
}

/* SOLAR-UNITY-009 · общее управление: перетаскивание, камера, закрепление */
.cs-stage { touch-action:none; }
.cs-stage.dragging, .cs-stage.dragging * { cursor:grabbing !important; }
.cs-svg .cs-node.l1, .cs-svg .cs-node.l2, .cs-svg .cs-node.l3 { cursor:grab; }
.cs-svg .cs-l { font-size:calc(var(--fs, 13) * var(--lz, 1) * 1px); }
.cs-pin { fill:none; stroke:var(--sun); stroke-width:1.2; stroke-dasharray:2 3; opacity:.85; pointer-events:none; }
.cs-tools { position:absolute; right:8px; bottom:8px; z-index:2; display:flex; flex-direction:row; gap:6px; padding:6px; align-items:center; border-radius:14px; }
.cs-tools.col { flex-direction:column; }
.cs-tools.col.tab { top:8px; bottom:auto; }   /* планшет: сцена выше экрана — управление сверху, под рукой */
.cs-tools .icon-btn { width:40px; height:40px; }
.cs-tools .cs-branch { min-height:40px; min-width:72px; font-size:13px; }
.cs-lay { display:flex; flex-wrap:wrap; gap:8px; }
.cs-lay .btn { min-height:40px; }
@media (max-width:1100px) {
  .cs-tools { right:6px; bottom:4px; padding:4px; gap:4px; }
  .cs-tools .icon-btn { width:44px; height:44px; }
  .cs-tools .cs-branch { min-height:44px; }
  .cs-lay .btn { min-height:44px; }
}

/* SOLAR-UNITY-009 · главное Солнце — дом; рабочая карта AWARA — дочернее пространство с путём назад */
.space-path { display:flex; flex-wrap:wrap; align-items:center; gap:0 6px; font-size:12.5px; color:var(--mute); line-height:1.2; }
.space-path .sp-step { min-height:22px; color:var(--ink2); display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.space-path .sp-step.sp-here { color:var(--sun); }
.space-path .sp-sep { opacity:.6; }
body.center-on .space-path { display:none; }
body:not(.center-on) .brand-sub { display:none; }
.space-path-m { display:none; grid-area:path; }
@media (max-width:760px) {
  body:not(.center-on) .space-path-m { display:flex; padding:0 4px; }
  body:not(.center-on) .topbar { grid-template-areas:"modes right" "search search" "views views" "path path"; }
  body:not(.center-on).mode-contemplation .topbar { grid-template-areas:"modes right" "search search" "path path"; }
  .space-path-m .sp-step { min-height:44px; min-width:44px; justify-content:center; font-size:15px; }
}
@keyframes space-in { from { opacity:0; transform:scale(.975); } to { opacity:1; transform:none; } }
@keyframes space-fade { from { opacity:0; } to { opacity:1; } }
.center-ya.space-in { animation:space-in 520ms cubic-bezier(.2,.7,.2,1) both; }
#stage.space-in { animation:space-fade 520ms ease both; }
@media (prefers-reduced-motion: reduce) { .space-in { animation:none !important; } }

/* SOLAR-UNITY-009 · DEMO-сценарий */
.cs-sc { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; padding:8px 12px; border:1px dashed rgba(141,191,197,.45); border-radius:14px; background:rgba(141,191,197,.05); }
.cs-sc[hidden] { display:none; }
.cs-sc-head { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; flex:1 1 320px; min-width:0; }
.cs-sc-tag { color:var(--st-demo); font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.cs-sc-step { color:var(--ink); font-size:14px; }
.cs-sc-btns { display:flex; flex-wrap:wrap; gap:6px; }
.cs-sc-btns .btn, .cs-sc-start { min-height:40px; }
.cs-sc-start { border-style:dashed; color:var(--st-demo); }
.cs-sc-note { margin:0; flex-basis:100%; font-size:12.5px; color:var(--mute); }
.cs-node.l0.cs-touched .cs-corona { animation:cs-sunpulse 1.8s ease-out 1; }
@keyframes cs-sunpulse { 0% { stroke-opacity:.9; stroke-width:3; } 100% { } }
@media (max-width:1100px) { .cs-sc-btns .btn, .cs-sc-start { min-height:44px; } }
@media (prefers-reduced-motion: reduce) { .cs-node.l0.cs-touched .cs-corona { animation:none; } }
@media (max-width:1100px), (pointer:coarse) {
  .space-path .sp-step { min-height:44px; min-width:44px; justify-content:center; font-size:14px; }
}
@media (max-width:1100px) { body:not(.center-on) .map-caption { display:none; } }   /* путь «Я → AWARA» в шапке заменяет подпись карты, иначе она уходит под выросшую шапку */

/* SOLAR-VISUAL-010 · звёзды, пыль орбит, блики и искры */
.cs-stage { background:
  radial-gradient(ellipse 46% 52% at 50% 52%, rgba(255,206,140,.07), transparent 70%),
  radial-gradient(ellipse 40% 34% at 18% 26%, rgba(98,84,180,.10), transparent 72%),
  radial-gradient(ellipse 38% 30% at 84% 78%, rgba(44,128,150,.09), transparent 72%),
  radial-gradient(ellipse 30% 26% at 76% 18%, rgba(170,90,140,.06), transparent 72%); border-radius:18px; }
.cs-sky { position:absolute; inset:0; width:100%; height:100%; display:block; pointer-events:none; overflow:hidden; }
.cs-star { fill:#e9eef8; opacity:var(--so, .5); }
.cs-star.warm { fill:#ffe2b0; }
.cs-star.cool { fill:#bcd6ff; }
.cs-gstar { fill:#fff6e2; opacity:.8; filter:drop-shadow(0 0 3px rgba(255,236,200,.9)); }
.cs-star.tw, .cs-gstar.tw, .cs-dustp.tw, .cs-spark-s.tw { animation:cs-twinkle var(--td, 5s) ease-in-out var(--tdl, 0s) infinite; }
@keyframes cs-twinkle { 0%, 100% { opacity:var(--so, .7); } 50% { opacity:.08; } }
.cs-dustp { fill:#f6e6c8; opacity:.62; pointer-events:none; --so:.62; }
.cs-dustp.back { opacity:.28; --so:.28; }
.cs-glint { pointer-events:none; animation:cs-flare-turn 120s linear infinite; }
.cs-flare { opacity:.9; }
.cs-flare.f2 { opacity:.55; }
.cs-glint.sub .cs-flare { opacity:.45; }
@keyframes cs-flare-turn { to { transform:rotate(360deg); } }
.cs-spark-s { fill:#fff4dc; pointer-events:none; --so:.9; }
.cs-runner { fill:#fff1d2; pointer-events:none; filter:drop-shadow(0 0 4px rgba(255,228,170,.95)); }
/* пока сцену двигают — небо и искры не отвлекают */
.cs-stage.dragging .cs-runner { display:none; }
@media (prefers-reduced-motion: reduce) {
  .cs-star.tw, .cs-gstar.tw, .cs-dustp.tw, .cs-spark-s.tw, .cs-glint { animation:none !important; }
  .cs-runner { display:none; }
}
body.reduced .cs-star.tw, body.reduced .cs-gstar.tw, body.reduced .cs-dustp.tw, body.reduced .cs-spark-s.tw, body.reduced .cs-glint,
body.low-power .cs-star.tw, body.low-power .cs-gstar.tw, body.low-power .cs-dustp.tw, body.low-power .cs-spark-s.tw, body.low-power .cs-glint { animation:none !important; }
.cs-svg.cs-zoomed .cs-glint { opacity:.4; transition:opacity .4s; }


/* SOLAR-NAMING-011 · второй слой имён: меньше, тише, курсивом — не спорит с основным именем */
.cs-sub { font-style:italic; letter-spacing:.03em; fill:#d4ccbb; fill-opacity:.74; paint-order:stroke; stroke:#080b10; stroke-width:3px; stroke-linejoin:round; pointer-events:none;
  font-size:calc(var(--fs, 12) * var(--lz, 1) * 1px); }
body.naming-color .cs-sub.k-p { fill:#E9BB79; }
body.naming-color .cs-sub.k-f { fill:#95B5CE; }
body.naming-color .cs-sub.k-m { fill:#A8C0A5; }
.cs-sub.la { fill-opacity:.58; }
.cs-sub.zl, .cs-sub.la-z { display:none; }
.cs-svg.cs-zin .cs-sub.zl:not(.la-z) { display:inline; }
.cs-svg.cs-zin2 .cs-sub.la-z, .cs-svg.cs-zin2 .cs-sub.zl { display:inline; }
.has-sel .cs-sub { opacity:.5; }
.cs-names { margin:-2px 0 2px; font-size:14px; color:var(--ink2); }
.cs-names-sa { font-style:italic; letter-spacing:.02em; }
.cs-names-la { font-style:italic; opacity:.85; }
.cs-names-kind { color:var(--mute); font-size:12.5px; }
body.naming-color .cs-names.k-p .cs-names-sa, body.naming-color .cs-names.k-p .cs-names-la { color:#E9BB79; }
body.naming-color .cs-names.k-f .cs-names-sa, body.naming-color .cs-names.k-f .cs-names-la { color:#95B5CE; }
body.naming-color .cs-names.k-m .cs-names-sa, body.naming-color .cs-names.k-m .cs-names-la { color:#A8C0A5; }
.cs-names-btn { white-space:nowrap; }

/* второй слой имён на рабочей карте AWARA */
#map .sublabel { text-anchor:middle; font-style:italic; letter-spacing:.03em; fill:#d4ccbb; fill-opacity:.74; paint-order:stroke; stroke:#070a10; stroke-width:3px; stroke-linejoin:round; pointer-events:none; }
#map .sublabel.la { fill-opacity:.56; }
#map .sun-sub2 { font-size:13px; }
body.naming-color #map .sublabel.k-p { fill:#E9BB79; }
body.naming-color #map .sublabel.k-f { fill:#95B5CE; }
body.naming-color #map .sublabel.k-m { fill:#A8C0A5; }
#labels-top .sublabel { text-anchor:middle; font-style:italic; fill:#d4ccbb; }
.lbl-off .sublabel { display:none; }
.pref-names { border:1px solid var(--line); border-radius:10px; padding:6px 10px 8px; margin:4px 0; display:grid; gap:2px; }
.pref-names legend { font-size:12px; color:var(--mute); padding:0 4px; }
