/* Орбитальная сводка: графика занимает полезное место рядом со счётчиками. */
.orbit-overview {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(380px, 1.1fr);
  align-items: center;
  min-width: 0;
  margin-bottom: 10px;
  border: 1px solid #6a827c67;
  border-radius: var(--radius-lg);
  background:
    radial-gradient(ellipse at 72% 65%, #7963382b, transparent 60%),
    var(--sheen), linear-gradient(115deg, #2e424066, #161f1f77 60%);
  backdrop-filter: blur(10px) saturate(140%);
  box-shadow: var(--shadow-panel);
  overflow: hidden;
  position: relative;
}
.orbit-overview::after {
  content: "";
  position: absolute;
  height: 1px;
  bottom: 0;
  left: 20%;
  right: 15%;
  background: linear-gradient(90deg, transparent, #e3c68d91, transparent);
}
.orbit-overview__copy {
  padding: 14px 18px;
  min-width: 0;
}
.eyebrow {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: calc(9px * var(--font-scale));
  letter-spacing: 0.13em;
  color: #dacfb8;
  margin-bottom: 9px;
}
.signal-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #7ee1c8;
  box-shadow: 0 0 8px #7ee1c8aa;
  flex: none;
}
.orbit-overview h2 {
  font-size: calc(18px * var(--font-scale));
  font-weight: 600;
  margin-bottom: 5px;
}
.orbit-overview__copy > p {
  max-width: 350px;
  color: var(--muted);
  font-size: calc(11px * var(--font-scale));
  line-height: 1.4;
}
.overview-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin: 10px 0 7px;
}
.overview-stat {
  display: grid;
  grid-template-columns: 19px 1fr;
  align-items: center;
  gap: 1px 7px;
  padding: 6px 8px;
  border: 1px solid #8ca59f33;
  border-radius: 7px;
  color: #ecd8b1;
  background: var(--sheen), linear-gradient(155deg, #5a6d6866, #1f2c2b44);
  box-shadow: var(--shadow-card);
}
.overview-stat strong {
  font-size: calc(16px * var(--font-scale));
  line-height: 1.2;
  font-weight: 600;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}
.overview-stat > span {
  grid-column: 1 / -1;
  font-size: calc(10px * var(--font-scale));
  white-space: nowrap;
  color: #bac6c3;
}
.overview-stat--violet {
  color: #b4a5ff;
}
.overview-stat--mint {
  color: #76dec8;
}
.overview-stat:hover {
  text-decoration: none;
  border-color: #d5be9088;
  background-color: #3e545366;
}
.orbit-scene {
  width: 100%;
  max-width: 440px;
  min-height: 208px;
  aspect-ratio: 520 / 250;
  position: relative;
  justify-self: center;
}
.orbit-scene__lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.orbit-tracks {
  stroke: #ceba9142;
  stroke-width: 0.8;
}
.orbit-tracks > ellipse:first-child {
  stroke: #e8d1a47a;
}
.orbit-connection {
  stroke: #dec59377;
  stroke-dasharray: 3 8;
}
.orbit-satellites {
  transform-origin: 260px 125px;
  filter: drop-shadow(0 0 4px #e8d1a4);
}
.orbit-stardust {
  opacity: 0.5;
}
.orbit-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 96px;
  height: 96px;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  color: var(--text);
  text-decoration: none;
  isolation: isolate;
}
.orbit-core:hover {
  text-decoration: none;
}
.orbit-core::before {
  content: "";
  position: absolute;
  inset: -8px;
  border: 1px solid #ead5ac9c;
  border-top-color: #f5f2eb;
  border-bottom-color: #c6a25b;
  border-radius: 50%;
  box-shadow: 0 0 14px #e2c68d99, inset 0 0 15px #d7b67377;
  pointer-events: none;
}
.orbit-core__sphere {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 23%, #d6bf907d, #2c413f99 40%, #121d1c 85%);
  border: 1px solid #ead6ad;
  box-shadow: inset -8px -10px 22px #000d, inset 5px 5px 18px #ead6ad55, 0 0 32px #be9d5a77;
  z-index: -1;
  overflow: hidden;
}
.orbit-core__sphere svg {
  width: 100%;
  height: 100%;
  stroke: #e6cd9b42;
  stroke-width: 0.5;
}
.orbit-core__avatar {
  display: grid;
  place-items: center;
  font-size: calc(11px * var(--font-scale));
  width: 24px;
  height: 24px;
  border: 1px solid #efdebd99;
  border-radius: 50%;
  background: #384d4cb3;
  margin-bottom: 3px;
}
.orbit-core strong {
  font-size: calc(12px * var(--font-scale));
}
.orbit-core__caption {
  font-size: calc(8px * var(--font-scale));
  color: #ded4bf;
}
.orbit-node {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 7px;
  color: #f1ede6;
  padding: 4px 7px 4px 4px;
  border-radius: 30px 8px 8px 30px;
  border: 1px solid #7d948e3d;
  background: var(--sheen), linear-gradient(160deg, #5a6f6a91, #17202088);
  backdrop-filter: blur(8px);
  box-shadow: var(--shadow-card);
}
.orbit-node:hover {
  text-decoration: none;
  border-color: #ecdab5a6;
  background-color: #665635;
}
.orbit-node__icon {
  display: grid;
  place-items: center;
  flex: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1px solid currentColor;
  color: #eddbb6;
  background: radial-gradient(circle at 30% 20%, #eddab577, #708d864f);
  box-shadow: 0 0 13px #e5cb9666, inset 0 0 8px #efe9de66;
}
.orbit-node .ui-icon {
  width: 14px;
  height: 14px;
}
.orbit-node strong {
  display: block;
  font-size: calc(10px * var(--font-scale));
  font-weight: 500;
}
.orbit-node small {
  display: block;
  font-size: calc(9px * var(--font-scale));
  line-height: 1.4;
  color: #b4c1be;
}
.orbit-node--projects {
  left: 7%;
  top: 23%;
}
.orbit-node--tasks {
  right: 5%;
  top: 19%;
}
.orbit-node--tasks .orbit-node__icon {
  color: #ffd39a;
  background-color: #ab72274d;
  box-shadow: 0 0 14px #e9b47044, inset 0 0 8px #ffddb366;
}
.orbit-node--ideas {
  left: 14%;
  bottom: 5%;
}
.orbit-node--ideas .orbit-node__icon {
  color: #a1f4d6;
  background-color: #3497774d;
  box-shadow: 0 0 14px #70e9ae44, inset 0 0 8px #b3ffe866;
}
.orbit-node--waiting {
  right: 3%;
  bottom: 6%;
}
.orbit-node--waiting .orbit-node__icon {
  color: #d6b7ff;
  background-color: #8256bc4d;
  box-shadow: 0 0 14px #b770e944, inset 0 0 8px #d4b3ff66;
}

/* Мини-карта использует реальные узлы и рёбра разрешённой проекции. */
.context-preview__map {
  display: block;
  height: 135px;
  position: relative;
  overflow: hidden;
  border-radius: 7px;
  background: radial-gradient(ellipse at 50% 50%, #b69c6939, #0f171644 70%);
  box-shadow: var(--shadow-inset);
}
.context-preview__map svg {
  width: 100%;
  height: 100%;
}
.context-preview__orbit {
  stroke: #ebd6ad33;
  fill: none;
  stroke-width: 2;
}
.context-preview__edge {
  stroke: #e5cb9880;
  stroke-width: 2;
}
.context-preview__node {
  fill: #eddbb8;
  filter: drop-shadow(0 0 10px #e3c78f);
}
.context-preview__node--personal {
  fill: #c2a1ff;
}
.context-preview__node--campus {
  fill: #89f0d7;
}
.context-preview__label {
  position: absolute;
  left: 8px;
  bottom: 6px;
  font-size: calc(10px * var(--font-scale));
  color: #ede7da;
}
.context-preview__foot {
  justify-content: space-between;
  margin-top: 7px;
}

@media (min-width: 1600px) {
  .orbit-overview__copy { padding: 14px 20px; }
  .orbit-scene { max-width: 440px; }
}
@media (max-width: 1200px) {
  .orbit-overview {
    grid-template-columns: minmax(260px, 1fr) minmax(330px, 1fr);
  }
  .orbit-overview__copy {
    padding: 12px;
  }
  .orbit-core {
    width: 80px;
    height: 80px;
  }
  .orbit-node {
    gap: 4px;
    padding-right: 6px;
  }
  .orbit-node__icon {
    width: 24px;
    height: 24px;
  }
  .orbit-node--projects {
    left: 2%;
    top: 8%;
  }
  .orbit-node--tasks {
    right: 1%;
    top: 8%;
  }
  .orbit-node--ideas {
    left: 8%;
    bottom: 5%;
  }
  .orbit-node--waiting {
    right: 1%;
    bottom: 6%;
  }
}
@media (max-width: 680px) {
  .orbit-overview {
    grid-template-columns: minmax(0, 1fr);
  }
  .orbit-overview__copy {
    padding: 10px 12px 0;
  }
  .orbit-overview h2 {
    font-size: calc(16px * var(--font-scale));
  }
  .orbit-overview__copy > p {
    max-width: none;
  }
  .overview-stats {
    margin: 10px 0 7px;
  }
  .orbit-scene {
    max-width: 390px;
    margin: 4px 0 10px;
  }
  .orbit-node--ideas {
    bottom: 8%;
  }
  .orbit-node--waiting {
    bottom: 9%;
  }
  .orbit-node strong {
    font-size: calc(11px * var(--font-scale));
  }
  .orbit-node small {
    font-size: calc(10px * var(--font-scale));
  }
}
@media (pointer: coarse) {
  .orbit-node {
    min-height: 44px;
  }
  .overview-stat {
    min-height: 46px;
  }
  .text-link {
    min-height: 32px;
  }
}

@supports not (backdrop-filter: blur(4px)) {
  .orbit-overview, .orbit-node {
    background: var(--sheen), var(--panel-solid);
  }
}

/* Крупные подписи на самом узком экране разводятся к краям орбиты. */
@media (max-width: 360px) {
  .orbit-node--ideas {
    left: 1%;
  }
}
