/* ============================================================
   Дизайн-токены: Debian 13 «trixie» + GNOME 48 (Adwaita)
   Файл 1 (структура) — Гусь, 15.10.2026; файл 2 (значения, вид) — Фрэдди, 15.10.2026.

   ИМЕНА ПЕРЕМЕННЫХ ЗАМОРОЖЕНЫ — их читают UI Кодди (src/ui/**, src/wm/**)
   и страницы Гуся (src/pages/**, src/theme/tokens.css). Менять значения можно,
   переименовывать/удалять — только через карточку + to_johnny.md.

   ЗНАЧЕНИЯ — из настоящего Adwaita GNOME 48 (libadwaita 1.7, docs/css-variables):
     window-bg   #fafafb / #222226      view-bg    #ffffff / #1d1d20
     window-fg   rgb(0 0 6 / 80%) / #ffffff
     headerbar   #ffffff / #2e2e32  (в GNOME 47+ хедербар СВЕТЛЕЕ тела окна,
                 разделяет их «shade»-линия rgb(0 0 6 / 12%), а не серый фон)
     destructive #e01b24 / #c01c28     success #2ec27e / #26a269
     warning     #e5a50a / #cd9309     accent  #3584e4 (blue 3)
   НЕ Yaru (Ubuntu), НЕ Cinnamon (Mint) — чистое Adwaita.
   ============================================================ */

:root {
  color-scheme: light dark;

  /* ---- акценты Adwaita (GNOME 48) ---- */
  --accent:            #3584e4;   /* Adwaita blue 3 */
  --accent-hover:      #2a7adb;   /* blue 3 → 4 */
  --accent-active:     #1c71d8;   /* blue 4 */
  --accent-fg:         #ffffff;
  --accent-bg:         rgba(53,132,228,.15);
  --destructive:       #e01b24;   /* Adwaita red 3 */
  --success:           #2ec27e;   /* Adwaita green 4 */
  --warning:           #e5a50a;   /* Adwaita yellow 4 */
  --purple:            #9141ac;   /* Adwaita purple 3 (акцент игровых плиток) */
  --orange:            #ed5b00;   /* Adwaita orange (accent-orange) */

  /* ---- поверхности окна ---- */
  --window-bg:         #fafafb;   /* window-bg-color light: НЕ чистый белый */
  --window-fg:         rgb(0 0 6 / 80%);  /* Adwaita window-fg-color light */
  --window-border:     rgba(0,0,6,.14);
  --radius-window:     12px;      /* libadwaita 1.6+: окно 12px */

  /* ---- хром (headerbar CSD) ---- */
  --headerbar-bg:      #ffffff;   /* GNOME 47+: CSD-хедербар светлее тела окна */
  --headerbar-bg-back: #fafafb;   /* окно без фокуса */
  --headerbar-fg:      rgb(0 0 6 / 80%);
  --headerbar-border:  rgb(0 0 6 / 12%);  /* headerbar-shade-color light */
  --titlebar-height:   46px;      /* headerbar libadwaita = 46 */

  /* ---- тени / фокус ---- */
  --shadow-window:     0 6px 20px rgba(0,0,6,.16), 0 1px 4px rgba(0,0,6,.10);
  --shadow-focus:      0 14px 40px rgba(0,0,6,.26), 0 3px 8px rgba(0,0,6,.14);
  --shadow-backdrop:   0 3px 10px rgba(0,0,6,.08);
  --focus-ring:        rgba(53,132,228,.65);
  --backdrop-filter:   brightness(.97) saturate(.92);
  --backdrop-dim:      .62;       /* приглушение хрома у окна без фокуса */

  /* ---- панели: topbar / dock ---- */
  --panel-bg:          rgba(250,250,251,.92);
  --panel-fg:          rgb(0 0 6 / 80%);
  --panel-height:      32px;      /* GNOME Shell top bar */
  --dock-bg:           rgba(250,250,251,.88);
  --dock-radius:       16px;
  --workspace-inset:   32px 0 0 0; /* topbar сверху */

  /* ---- движение (GNOME HIG) ---- */
  --speed-fast:        120ms;
  --speed-normal:      200ms;
  --speed-slow:        320ms;
  --ease-out:          cubic-bezier(.2,.8,.2,1);
  --ease-spring:       cubic-bezier(.34,1.4,.5,1);

  /* ---- типографика: Adwaita Sans на Debian 13, fallback Cantarell/DejaVu ---- */
  --font-ui:           "Adwaita Sans", Cantarell, "DejaVu Sans", Inter, system-ui, sans-serif;
  --font-mono:         "Adwaita Mono", "DejaVu Sans Mono", ui-monospace, SFMono-Regular, monospace;
  --font-size-ui:      14px;      /* GTK 11pt ≈ 14.6px на 96dpi — держим 14px под веб */
  --font-size-title:   14px;
  --font-weight-title: 700;
}

/* ---- тёмная тема Adwaita ---- */
[data-theme="dark"] {
  --window-bg:         #222226;   /* window-bg-color dark */
  --window-fg:         #ffffff;
  --window-border:     rgba(255,255,255,.10);
  --headerbar-bg:      #2e2e32;   /* headerbar-bg-color dark */
  --headerbar-bg-back: #222226;
  --headerbar-fg:      #ffffff;
  --headerbar-border:  rgb(0 0 6 / 36%);  /* headerbar-shade-color dark */
  --shadow-window:     0 6px 20px rgba(0,0,6,.55), 0 1px 4px rgba(0,0,6,.35);
  --shadow-focus:      0 14px 40px rgba(0,0,6,.70), 0 3px 8px rgba(0,0,6,.45);
  --shadow-backdrop:   0 3px 10px rgba(0,0,6,.35);
  --backdrop-filter:   brightness(1.08) saturate(.92);
  --panel-bg:          rgba(34,34,38,.92);
  --panel-fg:          #ffffff;
  --dock-bg:           rgba(34,34,38,.88);

  /* семантика и заливки — у Adwaita они темнее/плотнее в тёмной теме */
  --accent-bg:         rgba(53,132,228,.25);
  --accent-hover:      #4a8fe7;
  --accent-active:     #3584e4;
  --destructive:       #c01c28;
  --success:           #26a269;
  --warning:           #cd9309;
}

/* ---- пользователь просил меньше движения — гасим анимации ---- */
@media (prefers-reduced-motion: reduce) {
  :root {
    --speed-fast: 1ms;
    --speed-normal: 1ms;
    --speed-slow: 1ms;
  }
}

/* ---- базовая типографика; скролл-политику задаёт страница ---- */
html, body {
  margin: 0; padding: 0;
  color: var(--window-fg);
  font: var(--font-size-ui)/1.4 var(--font-ui);
  -webkit-font-smoothing: antialiased;
}

/* ---- оболочка рабочего стола (зона Кодди): страница-оболочка ставит <body class="desktop">.
       Только там html/body не скроллятся — обычные страницы (каталог, кейс) скроллятся нормально.
       Фон — под цвет обоев Debian: если SVG не загрузится, дыры не видно. ---- */
body.desktop { height: 100%; overflow: hidden; background: #1b3345; }
html:has(body.desktop) { height: 100%; overflow: hidden; }

#workspace { position: fixed; inset: var(--workspace-inset); overflow: hidden; }
#winLayer  { position: absolute; inset: 0; pointer-events: none; }
#winLayer > * { pointer-events: auto; }

.win {
  position: absolute;
  display: flex; flex-direction: column;
  background: var(--window-bg); color: var(--window-fg);
  border: 1px solid var(--window-border);
  border-radius: var(--radius-window);
  box-shadow: var(--shadow-window);
  min-width: 200px; min-height: 120px;
  will-change: transform;
}

.titlebar {
  display: flex; align-items: center; gap: 10px;
  height: var(--titlebar-height); flex: none;
  padding: 0 12px 0 14px;
  border-radius: var(--radius-window) var(--radius-window) 0 0;
  background: var(--headerbar-bg);
  border-bottom: 1px solid var(--headerbar-border);
  cursor: grab; touch-action: none; user-select: none;
}
.titlebar.dragging { cursor: grabbing; }
.win.backdrop .titlebar { background: var(--headerbar-bg-back); }
.win.backdrop .titlebar > * { opacity: var(--backdrop-dim); }  /* хром без фокуса приглушается как в libadwaita */
.win.backdrop { box-shadow: var(--shadow-backdrop); }
.win.focused  { box-shadow: var(--shadow-focus); }
.win.maximized, .win.maximized .titlebar { border-radius: 0; }

/* кнопки хрома Adwaita: плоские серые круги, без цвета.
   Геометрию/состояния добивает src/desktop.css (владельческая зона Фрэдди). */
.tb-btn {
  width: 24px; height: 24px; border-radius: 50%;
  border: 1px solid var(--window-border);
  background: transparent; color: var(--headerbar-fg);
  display: flex; align-items: center; justify-content: center;
  transition: background var(--speed-fast) var(--ease-out);
}
.tb-btn:hover { background: var(--accent-bg); }
.tb-btn:active { background: var(--accent); color: var(--accent-fg); }
.tb-btn:focus-visible { box-shadow: 0 0 0 2px var(--focus-ring); outline: none; }

/* ghost-плашка snap — одна на весь WM */
.snap-preview {
  position: absolute; pointer-events: none;
  background: var(--accent-bg);
  border: 2px solid var(--accent);
  border-radius: var(--radius-window);
  transition: all var(--speed-fast) var(--ease-out);
}
