/* Общее для всех страниц CRM и экрана входа: фон как на сайте Codem1t
   (app/globals.css — значения дословно), свечения, сетка, шапка окна.
   Темы — теми же тремя селекторами, что в stil.css. */
:root {
  --fon-verh: #eef1f4; --fon-niz: #ffffff;
  --line: rgba(21, 32, 43, 0.16);
  --glow-a: rgba(238, 107, 45, 0.05); --glow-b: rgba(238, 107, 45, 0);
  --amb-side: rgba(238, 107, 45, 0.05);
  --glass-bg: rgba(255, 255, 255, 0.1);
  --glass-border: rgba(255, 255, 255, 0.85);
  --glass-edge: rgba(255, 255, 255, 1);
  --glass-blur: 5px; --glass-sat: 175%;
  --glass-rim: rgba(21, 32, 43, 0.1);
  --glass-side: rgba(255, 255, 255, 0.55);
  --glass-shadow: 0 24px 60px rgba(21, 32, 43, 0.1), 0 2px 6px rgba(21, 32, 43, 0.05);
  --pane-bg: rgba(206, 224, 246, 0.07);
  --pane-border: rgba(255, 255, 255, 0.68);
  --pane-blur: 4px; --pane-sat: 155%;
  --shapka: 0px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="svetlaya"]) {
    --fon-verh: #0a0e13; --fon-niz: #0a0e13;
    --line: rgba(255, 255, 255, 0.18);
    --glow-a: rgba(238, 107, 45, 0.18);
    --amb-side: rgba(238, 107, 45, 0.07);
    --glass-bg: rgba(255, 255, 255, 0.014);
    --glass-border: rgba(255, 255, 255, 0.1);
    --glass-edge: rgba(255, 255, 255, 0.35);
    --glass-sat: 105%;
    --glass-rim: rgba(255, 255, 255, 0.05);
    --glass-side: rgba(255, 255, 255, 0.14);
    --glass-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
    --pane-bg: rgba(126, 152, 186, 0.014);
    --pane-border: rgba(255, 255, 255, 0.1);
    --pane-sat: 118%;
  }
}
:root[data-tema="temnaya"] {
  --fon-verh: #0a0e13; --fon-niz: #0a0e13;
  --line: rgba(255, 255, 255, 0.18);
  --glow-a: rgba(238, 107, 45, 0.18);
  --amb-side: rgba(238, 107, 45, 0.07);
  --glass-bg: rgba(255, 255, 255, 0.014);
  --glass-border: rgba(255, 255, 255, 0.1);
  --glass-edge: rgba(255, 255, 255, 0.35);
  --glass-sat: 105%;
  --glass-rim: rgba(255, 255, 255, 0.05);
  --glass-side: rgba(255, 255, 255, 0.14);
  --glass-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
  --pane-bg: rgba(126, 152, 186, 0.014);
  --pane-border: rgba(255, 255, 255, 0.1);
  --pane-sat: 118%;
}
body { background: linear-gradient(180deg, var(--fon-verh) 0%, var(--fon-niz) 100%) fixed; }

/* Слой фона прикреплён к окну: экраны CRM прокручиваются внутри панелей,
   поэтому сетка всегда целиком в кадре. Мышь не ловит — иначе перехватил бы
   перетаскивание карточек */
.fon { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.amb { position: absolute; pointer-events: none; }
.amb-main { right: 7%; bottom: 16%; width: 880px; height: 560px;
            background: radial-gradient(closest-side, var(--glow-a), var(--glow-b) 72%); filter: blur(10px); }
.amb-side { left: -10%; top: 14%; width: 760px; height: 760px;
            background: radial-gradient(closest-side, var(--amb-side), rgba(238, 107, 45, 0) 70%); }
.lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.lines line { fill: none; stroke: var(--line); stroke-width: 0.5; }
.lines .line-spark { stroke: var(--akcent); stroke-width: 1.1; stroke-linecap: round;
                     stroke-dasharray: 0.1 0.9; filter: drop-shadow(0 0 3px rgba(238, 107, 45, 0.7));
                     animation: spark-run 9s linear infinite; }
.lines .iskry { opacity: 0.95; }
@keyframes spark-run { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
.lines .node { fill: var(--fon); stroke: var(--akcent); stroke-width: 0.8; }
.lines .node-solid { fill: var(--akcent); stroke: none; }

/* Вступление — только при первой отрисовке (класс vstuplenie ставит fon.js).
   power3.out из GSAP = cubic-bezier(0.215, 0.61, 0.355, 1) */
.vstuplenie line[data-line] { animation: fon-liniya 0.55s cubic-bezier(0.215, 0.61, 0.355, 1) both; }
.vstuplenie circle { transform-box: fill-box; transform-origin: center;
                     animation: fon-uzel 0.32s cubic-bezier(0.215, 0.61, 0.355, 1) both; }
.vstuplenie .iskry { animation: fon-iskry 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 1.15s both; }
@keyframes fon-liniya { to { stroke-dashoffset: 0; } }
@keyframes fon-uzel { from { opacity: 0; transform: scale(0); } to { opacity: 1; transform: scale(1); } }
@keyframes fon-iskry { from { opacity: 0; } to { opacity: 0.95; } }

@media (prefers-reduced-motion: reduce) {
  .fon .iskry { display: none; }
  .fon * { animation: none !important; }
}

/* Шапка безрамочного окна (вариант C владельца): крошки слева, капсула кнопок
   справа. За неё таскают окно; двойной клик разворачивает — это делает Windows */
.shapka-okna { display: none; }
html.v-okne { --shapka: 36px; }
html.v-okne .shapka-okna { display: flex; position: fixed; top: 0; left: 0; right: 0; z-index: 40;
  height: var(--shapka); align-items: center; gap: 8px; padding: 0 8px 0 12px;
  font: 500 13px/1 Inter, "Segoe UI", system-ui, sans-serif; color: var(--tekst);
  -webkit-app-region: drag; user-select: none;
  /* стекло шапки — здесь, а не в stil.css: экран входа stil.css не подключает */
  background: var(--glass-bg); border-bottom: 1px solid var(--glass-border);
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-sat));
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-sat));
  box-shadow: inset 0 1px 0 var(--glass-edge); }
html.v-okne body { padding-top: var(--shapka); }
.shapka-logo { width: 22px; height: 22px; border-radius: 6px; display: grid; place-items: center;
               font-weight: 800; font-size: 12px; background: #16202b; color: #fff; }
.shapka-logo b { color: var(--akcent); }
.shapka-imya { font-weight: 600; }
.shapka-cherta, .shapka-razdel { color: var(--tusklyj); }
.shapka-knopki { margin-left: auto; display: flex; gap: 4px; padding: 3px; border-radius: 999px;
                 background: var(--glass-bg); border: 1px solid var(--glass-border);
                 -webkit-app-region: no-drag; }
.shapka-knopki button { width: 26px; height: 26px; border-radius: 50%; border: 0; padding: 0;
                        display: grid; place-items: center; background: transparent; color: var(--tusklyj);
                        font: 12px/1 Inter, system-ui, sans-serif; cursor: pointer; }
.shapka-knopki button:hover { background: var(--line); color: var(--tekst); }
.shapka-knopki .zakryt { background: var(--akcent); color: #16202b; font-weight: 700; }
.shapka-knopki .zakryt:hover { background: #ff7d3f; color: #16202b; }
/* Без связи (body.bez-svyazi, stil.css) гаснут обычные кнопки, но не кнопки
   окна — без них безрамочное окно нечем свернуть/закрыть */
body.bez-svyazi .shapka-knopki button { pointer-events: auto; opacity: 1; }
