/* Шрифты подключаются в public/index.html (preconnect + link) */
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Inter',system-ui,sans-serif;overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;}
#root{font-family:'Inter',system-ui,sans-serif;}
input,textarea,select,button{font-family:'Inter',system-ui,sans-serif;}
:root{
  /* ── Spacing scale (премиальный минимализм, больше воздуха) ── */
  --sp-xs:8px;--sp-sm:12px;--sp-md:18px;--sp-lg:24px;--sp-xl:32px;--sp-2xl:48px;--sp-3xl:64px;
  /* ── Border radius ── */
  --r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-2xl:28px;--r-full:9999px;
  /* ── Brand palette ── */
  --brand:#6836f5;--brand2:#a050ff;--brand3:#06b6d4;
  --success:#12c482;--warning:#f09428;--danger:#f04458;--info:#06b6d4;
  /* ── Font sizes ── */
  --fz-xs:11px;--fz-sm:12px;--fz-md:13px;--fz-lg:15px;--fz-xl:18px;
  /* ── Transitions ── */
  --tr-fast:all .1s ease;--tr:all .2s ease;--tr-slow:all .35s ease;
}
/* ── Accent variables (override by data-palette) ── */
[data-theme="dark"]{
  --bg:color-mix(in srgb,#060a12 86%,var(--accent-1) 14%);
  --bg2:color-mix(in srgb,#0a0f1a 82%,var(--accent-1) 18%);
  --bg3:color-mix(in srgb,#0e1422 80%,var(--accent-1) 20%);
  --surface:color-mix(in srgb,rgba(255,255,255,.05) 88%,var(--accent-1) 12%);
  --surface2:color-mix(in srgb,rgba(255,255,255,.08) 85%,var(--accent-1) 15%);
  --border:color-mix(in srgb,rgba(255,255,255,.07) 90%,var(--accent-1) 10%);
  --border2:color-mix(in srgb,rgba(255,255,255,.12) 88%,var(--accent-1) 12%);
  --text:#e2e8f0;--text2:#94a3b8;--text3:#64748b;--text4:#475569;--text5:#334155;--text6:#1e3358;
  --input-bg:color-mix(in srgb,rgba(255,255,255,.06) 92%,var(--accent-1) 8%);
  --input-border:color-mix(in srgb,rgba(255,255,255,.11) 88%,var(--accent-1) 12%);
  --card:color-mix(in srgb,rgba(255,255,255,.04) 90%,var(--accent-1) 10%);--card-hover:var(--accent-soft);
  --grid:var(--accent-grid);--scrollbar-track:#0a1020;
  --scrollbar-thumb:color-mix(in srgb,#1e335a 68%,var(--accent-1) 32%);
  --divider:rgba(255,255,255,.08);--tag-bg:var(--accent-soft);--tag-color:var(--accent-1);
  --shadow:0 4px 24px rgba(0,0,0,.4);--shadow-lg:0 16px 48px rgba(0,0,0,.6);
  --node-bg:color-mix(in srgb,#0d1829 72%,var(--accent-1) 28%);
  --node-stroke:rgba(255,255,255,.1);
  --modal-bg:color-mix(in srgb,#0b1120 78%,var(--accent-1) 22%);
  --accent-1:#6836f5;--accent-2:#a050ff;--accent-soft:rgba(104,54,245,.12);--accent-grid:rgba(104,54,245,.06);--accent-glow:rgba(104,54,245,.32);
  --gradient-accent:linear-gradient(135deg,var(--accent-1),var(--accent-2));--accent-on-bg:#fff;
}
[data-theme="light"]{
  --bg:color-mix(in srgb,#f1f5f9 92%,var(--accent-1) 8%);
  --bg2:color-mix(in srgb,#ffffff 90%,var(--accent-1) 10%);
  --bg3:color-mix(in srgb,#f8fafc 91%,var(--accent-1) 9%);
  --surface:color-mix(in srgb,rgba(0,0,0,.04) 92%,var(--accent-1) 8%);
  --surface2:color-mix(in srgb,rgba(0,0,0,.06) 90%,var(--accent-1) 10%);
  --border:color-mix(in srgb,rgba(0,0,0,.1) 90%,var(--accent-1) 10%);
  --border2:color-mix(in srgb,rgba(0,0,0,.16) 88%,var(--accent-1) 12%);
  --text:#0f172a;--text2:#1e293b;--text3:#334155;--text4:#64748b;--text5:#94a3b8;--text6:#cbd5e1;
  --input-bg:color-mix(in srgb,#ffffff 94%,var(--accent-1) 6%);
  --input-border:color-mix(in srgb,rgba(0,0,0,.18) 88%,var(--accent-1) 12%);
  --card:color-mix(in srgb,rgba(255,255,255,.92) 90%,var(--accent-1) 10%);--card-hover:var(--accent-soft);
  --grid:var(--accent-grid);--scrollbar-track:#e2e8f0;
  --scrollbar-thumb:color-mix(in srgb,#94a3b8 72%,var(--accent-1) 28%);
  --divider:rgba(0,0,0,.1);--tag-bg:var(--accent-soft);--tag-color:var(--accent-1);
  --shadow:0 4px 24px rgba(0,0,0,.12);--shadow-lg:0 16px 48px rgba(0,0,0,.18);
  --node-bg:color-mix(in srgb,#ffffff 85%,var(--accent-1) 15%);
  --node-stroke:rgba(0,0,0,.15);
  --modal-bg:color-mix(in srgb,#ffffff 88%,var(--accent-1) 12%);
  --accent-1:#6836f5;--accent-2:#a050ff;--accent-soft:rgba(104,54,245,.1);--accent-grid:rgba(104,54,245,.1);--accent-glow:rgba(104,54,245,.22);
  --gradient-accent:linear-gradient(135deg,var(--accent-1),var(--accent-2));--accent-on-bg:#fff;
}
/* ── Palettes: переопределяют --accent-* и переменные стекла (граница/тень в тон палитры) ── */
[data-palette="indigo"]{--accent-1:#6836f5;--accent-2:#a050ff;--accent-rgb:104,54,245;--accent-soft:rgba(104,54,245,.12);--accent-grid:rgba(104,54,245,.06);--accent-glow:rgba(104,54,245,.35);--glass-border-accent:rgba(104,54,245,.22);--glass-shadow-accent:0 0 0 1px rgba(104,54,245,.1);}
[data-theme="light"][data-palette="indigo"]{--accent-soft:rgba(104,54,245,.1);--accent-grid:rgba(104,54,245,.1);--glass-border-accent:rgba(104,80,220,.16);--glass-shadow-accent:0 0 0 1px rgba(104,80,220,.08);}
[data-palette="ocean"]{--accent-1:#5b8fb9;--accent-2:#7ab8d4;--accent-rgb:91,143,185;--accent-soft:rgba(91,143,185,.1);--accent-grid:rgba(91,143,185,.04);--accent-glow:rgba(91,143,185,.2);--glass-border-accent:rgba(91,143,185,.18);--glass-shadow-accent:0 0 0 1px rgba(91,143,185,.08);}
[data-theme="light"][data-palette="ocean"]{--accent-soft:rgba(91,143,185,.08);--accent-grid:rgba(91,143,185,.08);--glass-border-accent:rgba(91,143,185,.12);--glass-shadow-accent:0 0 0 1px rgba(91,143,185,.06);}
[data-palette="forest"]{--accent-1:#5a8c7b;--accent-2:#6ba881;--accent-rgb:90,140,123;--accent-soft:rgba(90,140,123,.1);--accent-grid:rgba(90,140,123,.04);--accent-glow:rgba(90,140,123,.2);--glass-border-accent:rgba(90,140,123,.18);--glass-shadow-accent:0 0 0 1px rgba(90,140,123,.08);}
[data-theme="light"][data-palette="forest"]{--accent-soft:rgba(90,140,123,.08);--accent-grid:rgba(90,140,123,.08);--glass-border-accent:rgba(90,140,123,.12);--glass-shadow-accent:0 0 0 1px rgba(90,140,123,.06);}
[data-palette="sunset"]{--accent-1:#b88a6a;--accent-2:#c9a088;--accent-rgb:184,138,106;--accent-soft:rgba(184,138,106,.1);--accent-grid:rgba(184,138,106,.04);--accent-glow:rgba(184,138,106,.18);--glass-border-accent:rgba(184,138,106,.2);--glass-shadow-accent:0 0 0 1px rgba(184,138,106,.1);}
[data-theme="light"][data-palette="sunset"]{--accent-soft:rgba(184,138,106,.08);--accent-grid:rgba(184,138,106,.08);--glass-border-accent:rgba(184,138,106,.14);--glass-shadow-accent:0 0 0 1px rgba(184,138,106,.08);}
[data-palette="mono"]{--accent-1:#6b7a8a;--accent-2:#8a9baa;--accent-rgb:107,122,138;--accent-soft:rgba(107,122,138,.12);--accent-grid:rgba(107,122,138,.05);--accent-glow:rgba(107,122,138,.2);--glass-border-accent:rgba(107,122,138,.2);--glass-shadow-accent:0 0 0 1px rgba(107,122,138,.1);}
[data-theme="light"][data-palette="mono"]{--accent-soft:rgba(107,122,138,.1);--accent-grid:rgba(107,122,138,.08);--glass-border-accent:rgba(107,122,138,.14);--glass-shadow-accent:0 0 0 1px rgba(107,122,138,.08);}
[data-palette="orange"]{--accent-1:#ea580c;--accent-2:#f97316;--accent-rgb:234,88,12;--accent-soft:rgba(234,88,12,.12);--accent-grid:rgba(234,88,12,.05);--accent-glow:rgba(234,88,12,.25);--glass-border-accent:rgba(234,88,12,.2);--glass-shadow-accent:0 0 0 1px rgba(234,88,12,.1);}
[data-theme="light"][data-palette="orange"]{--accent-soft:rgba(234,88,12,.1);--accent-grid:rgba(234,88,12,.08);--glass-border-accent:rgba(234,88,12,.16);--glass-shadow-accent:0 0 0 1px rgba(234,88,12,.08);}
/* ── Синхронизация с body: тема и палитра применяются ко всему документу ── */
body[data-theme="dark"]{--bg:color-mix(in srgb,#060a12 86%,var(--accent-1) 14%);--bg2:color-mix(in srgb,#0a0f1a 82%,var(--accent-1) 18%);--bg3:color-mix(in srgb,#0e1422 80%,var(--accent-1) 20%);--surface:color-mix(in srgb,rgba(255,255,255,.05) 88%,var(--accent-1) 12%);--surface2:color-mix(in srgb,rgba(255,255,255,.08) 85%,var(--accent-1) 15%);--border:color-mix(in srgb,rgba(255,255,255,.07) 90%,var(--accent-1) 10%);--border2:color-mix(in srgb,rgba(255,255,255,.12) 88%,var(--accent-1) 12%);--text:#e2e8f0;--text2:#94a3b8;--text3:#64748b;--text4:#475569;--text5:#334155;--text6:#1e3358;--input-bg:color-mix(in srgb,rgba(255,255,255,.06) 92%,var(--accent-1) 8%);--input-border:color-mix(in srgb,rgba(255,255,255,.11) 88%,var(--accent-1) 12%);--card:color-mix(in srgb,rgba(255,255,255,.04) 90%,var(--accent-1) 10%);--card-hover:var(--accent-soft);--grid:var(--accent-grid);--scrollbar-track:#0a1020;--scrollbar-thumb:color-mix(in srgb,#1e335a 68%,var(--accent-1) 32%);--divider:rgba(255,255,255,.08);--tag-bg:var(--accent-soft);--tag-color:var(--accent-1);--shadow:0 4px 24px rgba(0,0,0,.4);--shadow-lg:0 16px 48px rgba(0,0,0,.6);--node-bg:color-mix(in srgb,#0d1829 72%,var(--accent-1) 28%);--node-stroke:rgba(255,255,255,.1);--modal-bg:color-mix(in srgb,#0b1120 78%,var(--accent-1) 22%);--accent-1:#6836f5;--accent-2:#a050ff;--accent-soft:rgba(104,54,245,.12);--accent-grid:rgba(104,54,245,.06);--accent-glow:rgba(104,54,245,.32);--gradient-accent:linear-gradient(135deg,var(--accent-1),var(--accent-2));--accent-on-bg:#fff;background:var(--bg);color:var(--text);}
body[data-theme="light"]{--bg:color-mix(in srgb,#f1f5f9 92%,var(--accent-1) 8%);--bg2:color-mix(in srgb,#ffffff 90%,var(--accent-1) 10%);--bg3:color-mix(in srgb,#f8fafc 91%,var(--accent-1) 9%);--surface:color-mix(in srgb,rgba(0,0,0,.04) 92%,var(--accent-1) 8%);--surface2:color-mix(in srgb,rgba(0,0,0,.06) 90%,var(--accent-1) 10%);--border:color-mix(in srgb,rgba(0,0,0,.1) 90%,var(--accent-1) 10%);--border2:color-mix(in srgb,rgba(0,0,0,.16) 88%,var(--accent-1) 12%);--text:#0f172a;--text2:#1e293b;--text3:#334155;--text4:#64748b;--text5:#94a3b8;--text6:#cbd5e1;--input-bg:color-mix(in srgb,#ffffff 94%,var(--accent-1) 6%);--input-border:color-mix(in srgb,rgba(0,0,0,.18) 88%,var(--accent-1) 12%);--card:color-mix(in srgb,rgba(255,255,255,.92) 90%,var(--accent-1) 10%);--card-hover:var(--accent-soft);--grid:var(--accent-grid);--scrollbar-track:#e2e8f0;--scrollbar-thumb:color-mix(in srgb,#94a3b8 72%,var(--accent-1) 28%);--divider:rgba(0,0,0,.1);--tag-bg:var(--accent-soft);--tag-color:var(--accent-1);--shadow:0 4px 24px rgba(0,0,0,.12);--shadow-lg:0 16px 48px rgba(0,0,0,.18);--node-bg:color-mix(in srgb,#ffffff 85%,var(--accent-1) 15%);--node-stroke:rgba(0,0,0,.15);--modal-bg:color-mix(in srgb,#ffffff 88%,var(--accent-1) 12%);--accent-1:#6836f5;--accent-2:#a050ff;--accent-soft:rgba(104,54,245,.1);--accent-grid:rgba(104,54,245,.1);--accent-glow:rgba(104,54,245,.22);--gradient-accent:linear-gradient(135deg,var(--accent-1),var(--accent-2));--accent-on-bg:#fff;background:var(--bg);color:var(--text);}
body[data-palette="indigo"]{--accent-1:#6836f5;--accent-2:#a050ff;--accent-rgb:104,54,245;--accent-soft:rgba(104,54,245,.12);--accent-grid:rgba(104,54,245,.06);--accent-glow:rgba(104,54,245,.35);--glass-border-accent:rgba(104,54,245,.22);--glass-shadow-accent:0 0 0 1px rgba(104,54,245,.1);}
body[data-theme="light"][data-palette="indigo"]{--accent-soft:rgba(104,54,245,.1);--accent-grid:rgba(104,54,245,.1);--glass-border-accent:rgba(104,80,220,.16);--glass-shadow-accent:0 0 0 1px rgba(104,80,220,.08);}
body[data-palette="ocean"]{--accent-1:#5b8fb9;--accent-2:#7ab8d4;--accent-rgb:91,143,185;--accent-soft:rgba(91,143,185,.1);--accent-grid:rgba(91,143,185,.04);--accent-glow:rgba(91,143,185,.2);--glass-border-accent:rgba(91,143,185,.18);--glass-shadow-accent:0 0 0 1px rgba(91,143,185,.08);}
body[data-theme="light"][data-palette="ocean"]{--accent-soft:rgba(91,143,185,.08);--accent-grid:rgba(91,143,185,.08);--glass-border-accent:rgba(91,143,185,.12);--glass-shadow-accent:0 0 0 1px rgba(91,143,185,.06);}
body[data-palette="forest"]{--accent-1:#5a8c7b;--accent-2:#6ba881;--accent-rgb:90,140,123;--accent-soft:rgba(90,140,123,.1);--accent-grid:rgba(90,140,123,.04);--accent-glow:rgba(90,140,123,.2);--glass-border-accent:rgba(90,140,123,.18);--glass-shadow-accent:0 0 0 1px rgba(90,140,123,.08);}
body[data-theme="light"][data-palette="forest"]{--accent-soft:rgba(90,140,123,.08);--accent-grid:rgba(90,140,123,.08);--glass-border-accent:rgba(90,140,123,.12);--glass-shadow-accent:0 0 0 1px rgba(90,140,123,.06);}
body[data-palette="sunset"]{--accent-1:#b88a6a;--accent-2:#c9a088;--accent-rgb:184,138,106;--accent-soft:rgba(184,138,106,.1);--accent-grid:rgba(184,138,106,.04);--accent-glow:rgba(184,138,106,.18);--glass-border-accent:rgba(184,138,106,.2);--glass-shadow-accent:0 0 0 1px rgba(184,138,106,.1);}
body[data-theme="light"][data-palette="sunset"]{--accent-soft:rgba(184,138,106,.08);--accent-grid:rgba(184,138,106,.08);--glass-border-accent:rgba(184,138,106,.14);--glass-shadow-accent:0 0 0 1px rgba(184,138,106,.08);}
body[data-palette="mono"]{--accent-1:#6b7a8a;--accent-2:#8a9baa;--accent-rgb:107,122,138;--accent-soft:rgba(107,122,138,.12);--accent-grid:rgba(107,122,138,.05);--accent-glow:rgba(107,122,138,.2);--glass-border-accent:rgba(107,122,138,.2);--glass-shadow-accent:0 0 0 1px rgba(107,122,138,.1);}
body[data-theme="light"][data-palette="mono"]{--accent-soft:rgba(107,122,138,.1);--accent-grid:rgba(107,122,138,.08);--glass-border-accent:rgba(107,122,138,.14);--glass-shadow-accent:0 0 0 1px rgba(107,122,138,.08);}
body[data-palette="orange"]{--accent-1:#ea580c;--accent-2:#f97316;--accent-rgb:234,88,12;--accent-soft:rgba(234,88,12,.12);--accent-grid:rgba(234,88,12,.05);--accent-glow:rgba(234,88,12,.25);--glass-border-accent:rgba(234,88,12,.2);--glass-shadow-accent:0 0 0 1px rgba(234,88,12,.1);}
body[data-theme="light"][data-palette="orange"]{--accent-soft:rgba(234,88,12,.1);--accent-grid:rgba(234,88,12,.08);--glass-border-accent:rgba(234,88,12,.16);--glass-shadow-accent:0 0 0 1px rgba(234,88,12,.08);}
/* Палитра тонирует «бренд» и фон страницы целиком */
body[data-palette]{--brand:var(--accent-1);--brand2:var(--accent-2);--info:var(--accent-1);}
/* ── Indigo «CRM shell» (макет strategy.html): фиолетовый акцент, глубокий фон, стекло ── */
[data-theme="dark"][data-palette="indigo"],
body[data-theme="dark"][data-palette="indigo"]{
  --bg:#050410;
  --bg2:rgba(9,7,22,.88);
  --bg3:#100d1c;
  --surface:rgba(255,255,255,.055);
  --surface2:rgba(255,255,255,.09);
  --border:rgba(255,255,255,.08);
  --border2:rgba(255,255,255,.14);
  --text:#eaeaf8;
  --text2:rgba(188,186,224,.72);
  --text3:rgba(148,144,196,.5);
  --text4:rgba(120,116,180,.55);
  --text5:rgba(100,96,150,.45);
  --text6:rgba(80,76,130,.4);
  --input-bg:rgba(255,255,255,.06);
  --input-border:rgba(255,255,255,.11);
  --card:rgba(255,255,255,.045);
  --card-hover:rgba(104,54,245,.12);
  --scrollbar-track:#0a0818;
  --scrollbar-thumb:rgba(104,54,245,.35);
  --divider:rgba(255,255,255,.07);
  --tag-bg:rgba(255,255,255,.07);
  --shadow:0 8px 32px rgba(0,0,0,.38);
  --shadow-lg:0 14px 44px rgba(0,0,0,.42);
  --node-bg:rgba(255,255,255,.07);
  --node-stroke:rgba(255,255,255,.12);
  --modal-bg:rgba(8,6,18,.94);
  --map-canvas:#08061a;
  --map-edge:rgba(104,54,245,.35);
  --accent-1:#6836f5;
  --accent-2:#a050ff;
  --accent-rgb:104,54,245;
  --accent-soft:rgba(104,54,245,.12);
  --accent-grid:rgba(104,54,245,.06);
  --accent-glow:rgba(104,54,245,.38);
  --gradient-accent:linear-gradient(135deg,#6836f5,#a050ff);
  --glass-border-accent:rgba(104,54,245,.28);
  --glass-shadow-accent:0 0 0 1px rgba(104,54,245,.1);
}
[data-theme="light"][data-palette="indigo"],
body[data-theme="light"][data-palette="indigo"]{
  --bg:#ece9ff;
  --bg2:rgba(255,255,255,.88);
  --bg3:#f2efff;
  --surface:rgba(255,255,255,.82);
  --surface2:rgba(255,255,255,.98);
  --border:rgba(104,80,220,.16);
  --border2:rgba(104,80,220,.24);
  --text:#08061a;
  --text2:rgba(35,28,80,.78);
  --text3:rgba(70,58,130,.48);
  --text4:rgba(90,78,125,.42);
  --text5:rgba(110,100,150,.38);
  --text6:rgba(130,122,168,.34);
  --input-bg:rgba(104,80,220,.06);
  --input-border:rgba(104,80,220,.2);
  --card:rgba(255,255,255,.82);
  --scrollbar-track:#e8e4ff;
  --scrollbar-thumb:rgba(104,54,245,.35);
  --shadow:0 2px 12px rgba(78,55,180,.1),0 0 0 .5px rgba(104,80,220,.14);
  --shadow-lg:0 12px 36px rgba(78,55,180,.2),0 2px 8px rgba(78,55,180,.1);
  --node-bg:rgba(255,255,255,.92);
  --node-stroke:rgba(104,80,220,.2);
  --modal-bg:rgba(255,255,255,.96);
  --map-canvas:#ddd9ff;
  --accent-1:#6836f5;
  --accent-2:#a050ff;
  --accent-rgb:104,54,245;
  --accent-soft:rgba(104,54,245,.1);
  --accent-grid:rgba(104,54,245,.1);
  --accent-glow:rgba(104,54,245,.28);
  --gradient-accent:linear-gradient(135deg,#6836f5,#a050ff);
  --glass-border-accent:rgba(104,80,220,.18);
  --glass-shadow-accent:0 0 0 1px rgba(104,80,220,.08);
}
/* Фон области карты + точечная сетка 32px (макет public/strategy-reference.html) */
.sa-map-canvas-wrap.sa-map-dots::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:radial-gradient(circle,var(--border2) 1px,transparent 1px);
  background-size:32px 32px;
  opacity:.4;
}
[data-theme="light"] .sa-map-canvas-wrap.sa-map-dots::before{
  opacity:.28;
  background-image:radial-gradient(circle,rgba(104,80,220,.2) 1px,transparent 1px);
}
@keyframes sa-bg-orbs{
  0%{transform:scale(1) translate(0,0)}
  100%{transform:scale(1.025) translate(10px,-8px)}
}
body[data-theme="dark"]::before,
body[data-theme="light"]::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:
    radial-gradient(ellipse 120% 65% at 50% -28%, rgba(var(--accent-rgb),0.16), transparent 52%),
    radial-gradient(ellipse 55% 40% at 100% 0%, rgba(var(--accent-rgb),0.09), transparent 50%),
    radial-gradient(ellipse 50% 45% at 0% 100%, rgba(var(--accent-rgb),0.07), transparent 48%);
  transition:opacity .45s ease;
}
body[data-theme="dark"][data-palette="indigo"]::before{
  background:
    radial-gradient(ellipse 560px 440px at 4% 2%, rgba(70,26,245,.36), transparent 70%),
    radial-gradient(ellipse 500px 400px at 96% 96%, rgba(8,158,120,.2), transparent 68%),
    radial-gradient(ellipse 400px 300px at 82% 36%, rgba(154,38,235,.16), transparent 64%),
    radial-gradient(ellipse 100% 55% at 50% -18%, rgba(104,54,245,.15), transparent 58%);
  animation:sa-bg-orbs 18s ease-in-out infinite alternate;
  will-change:transform;
}
body[data-theme="light"][data-palette="indigo"]::before{
  background:
    linear-gradient(140deg,rgba(206,198,255,.92) 0%,rgba(221,216,255,.75) 38%,rgba(212,245,232,.42) 72%,rgba(200,228,255,.5) 100%),
    radial-gradient(ellipse 520px 420px at 6% 4%, rgba(100,54,255,.2), transparent 65%),
    radial-gradient(ellipse 480px 380px at 94% 92%, rgba(10,195,135,.16), transparent 64%),
    radial-gradient(ellipse 380px 280px at 72% 34%, rgba(165,54,245,.12), transparent 62%);
  animation:sa-bg-orbs 20s ease-in-out infinite alternate;
  will-change:transform;
}
#root{position:relative;z-index:1;min-height:100%;}
.screen-wrap{position:relative;}
/* Лендинг Strategy AI — только ReferenceLandingView (.sa-ref-landing), без legacy .lpage */
body.sa-landing,
body:has(.sa-ref-landing){
  background:#050410 !important;
  color:#eaeaf8 !important;
}
body[data-theme="light"].sa-landing,
body[data-theme="light"]:has(.sa-ref-landing){
  background:#ece9ff !important;
  color:#08061a !important;
}
body.sa-landing::before,
body:has(.sa-ref-landing)::before{
  opacity:0 !important;
  visibility:hidden;
  animation:none !important;
}

/* ── Лендинг React (.sa-ref-landing): без гориз. скролла, контент по ширине экрана ── */
html:has(.sa-ref-landing),
body:has(.sa-ref-landing){
  overflow-x:hidden !important;
  overflow-y:hidden !important;
  max-width:100%;
  width:100%;
}
body:has(.sa-ref-landing) #root,
body:has(.sa-ref-landing) .screen-wrap{
  overflow-x:hidden !important;
  max-width:100%;
  width:100%;
}
.sa-ref-landing.sa-strategy-ui.view.on.sa-v-landing,
.sa-landing-shell.sa-strategy-ui{
  align-items:stretch !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
.sa-ref-landing .land-inner{
  max-width:min(960px,100%) !important;
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box;
}
/* Навбар на всю ширину вьюпорта (раньше max-width:960 + центр давали «поля» и сдвиг) */
#land-nav-fixed{
  top:0 !important;
  left:0 !important;
  right:0 !important;
  transform:none !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box;
  flex-wrap:wrap;
  row-gap:10px;
  column-gap:12px;
  z-index:600 !important;
  /* Матовое стекло сразу и при прокрутке — как в shell */
  background:rgba(9,7,22,.55) !important;
  backdrop-filter:blur(26px) saturate(1.15) !important;
  -webkit-backdrop-filter:blur(26px) saturate(1.15) !important;
  border-bottom:.5px solid rgba(255,255,255,.1) !important;
}
body[data-theme="light"]:has(.sa-ref-landing) #land-nav-fixed{
  background:rgba(255,255,255,.62) !important;
  border-bottom-color:rgba(104,80,220,.16) !important;
}
#land-nav-fixed.scrolled{
  background:var(--sb) !important;
  backdrop-filter:blur(28px) saturate(1.2) !important;
  -webkit-backdrop-filter:blur(28px) saturate(1.2) !important;
  box-shadow:0 1px 0 var(--b1),0 4px 24px rgba(0,0,0,.18) !important;
  padding:10px 24px !important;
}
.sa-ref-landing .features-grid{
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) !important;
}
.sa-ref-landing .testi-grid{
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr)) !important;
}
.sa-ref-landing .compare-wrap{
  max-width:100%;
}
.sa-ref-landing .land-tier-scroll{
  display:flex;
  gap:14px;
  overflow-x:auto;
  padding:6px 2px 18px;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-color:rgba(104,80,220,.35) transparent;
}
.sa-ref-landing .land-tier-scroll::-webkit-scrollbar{height:6px;}
.sa-ref-landing .land-tier-scroll::-webkit-scrollbar-thumb{
  background:rgba(104,80,220,.35);
  border-radius:99px;
}
.sa-ref-landing .land-tier-card{
  flex:0 0 min(200px,85vw);
  scroll-snap-align:start;
  padding:16px 16px 14px;
  border-radius:16px;
  border:1px solid var(--b1);
  background:var(--sb);
  box-shadow:0 8px 28px rgba(0,0,0,.12);
  display:flex;
  flex-direction:column;
  gap:8px;
  box-sizing:border-box;
}
body[data-theme="dark"] .sa-ref-landing .land-tier-card{
  background:rgba(12,10,28,.72);
  box-shadow:0 12px 40px rgba(0,0,0,.35);
}
.sa-ref-landing .land-tier-card-top{
  display:flex;
  align-items:center;
  gap:10px;
}
.sa-ref-landing .land-tier-badge{
  font-size:18px;
  line-height:1;
}
.sa-ref-landing .land-tier-name{
  font-size:15px;
  font-weight:800;
  color:var(--t1);
  letter-spacing:-.02em;
}
.sa-ref-landing .land-tier-price{
  font-size:14px;
  font-weight:800;
  color:var(--t1);
}
.sa-ref-landing .land-tier-desc{
  font-size:12.5px;
  line-height:1.45;
  color:var(--t3);
}
.sa-ref-landing .land-footer{
  width:100%;
  max-width:min(960px,100%);
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
  justify-content:center;
  text-align:center;
}
.sa-ref-landing .land-footer .footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  justify-content:center;
}
.sa-ref-landing .land-footer .footer-copy{
  width:100%;
  margin-top:8px;
}

/* MainWorkspaceNav вне shell (мобильная карта и т.п.): токены body[data-theme] */
.workspace-nav-tabs.tabs{
  display:inline-flex;
  align-items:center;
  background:var(--input-bg);
  border:1px solid var(--input-border);
  border-radius:10px;
  padding:3px;
  gap:2px;
  box-sizing:border-box;
}
.workspace-nav-tabs.tabs .tab{
  font-size:12px;
  color:var(--text4);
  cursor:pointer;
  padding:6px 12px;
  border-radius:7px;
  transition:all .18s;
  font-weight:500;
  border:none;
  background:transparent;
  font-family:inherit;
  line-height:1.2;
  user-select:none;
}
.workspace-nav-tabs.tabs .tab:disabled{
  opacity:1;
  cursor:default;
}
.workspace-nav-tabs.tabs .tab.on{
  background:var(--surface);
  color:var(--text);
  font-weight:600;
  box-shadow:0 1px 4px rgba(0,0,0,.12);
}
body[data-theme="light"] .workspace-nav-tabs.tabs .tab.on{
  background:var(--card);
  color:var(--accent-1);
  box-shadow:0 2px 8px rgba(104,54,245,.14);
}
.workspace-nav-tabs.tabs.workspace-nav-tabs--sm .tab{
  font-size:11px;
  padding:4px 10px;
}
[data-theme="light"] input,[data-theme="light"] textarea,[data-theme="light"] select{
  background:var(--input-bg) !important;border-color:var(--input-border) !important;
  color:var(--text) !important;color-scheme:light;
}
[data-theme="light"] input::placeholder,[data-theme="light"] textarea::placeholder{color:var(--text5);}
[data-theme="light"] option{background:#fff;color:#0f172a;}
/* Light theme specific overrides */
[data-theme="light"] body{background:var(--bg);color:var(--text);}
[data-theme="light"] .icard{box-shadow:0 2px 8px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);}
[data-theme="dark"] select{color-scheme:dark;background:#0d1829;color:#e2e8f0;border-color:rgba(255,255,255,.1);}
[data-theme="dark"][data-palette="indigo"] select{background:rgba(10,8,20,.95)!important;color:#eaeaf8!important;border-color:rgba(255,255,255,.12)!important;}
[data-theme="dark"] option{background:#0d1829;color:#e2e8f0;}
[data-theme="dark"][data-palette="indigo"] option{background:#120f22;color:#eaeaf8;}
select{appearance:none;-webkit-appearance:none;}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--scrollbar-track)}
::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--text4)}
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{outline:2px solid var(--accent-1);outline-offset:2px}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideDownOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(18px)}}
@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@keyframes dropIn{from{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes dropOut{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-6px) scale(.985)}}
@keyframes softExpand{from{max-height:0;opacity:0;transform:translateY(-4px)}to{max-height:1200px;opacity:1;transform:translateY(0)}}
@keyframes softCollapse{from{max-height:1200px;opacity:1;transform:translateY(0)}to{max-height:0;opacity:0;transform:translateY(-4px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes nodeHover{from{filter:brightness(1)}to{filter:brightness(1.15)}}
@keyframes gradShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.node-card{transition:filter .2s ease,transform .25s cubic-bezier(.25,.46,.45,.94);}
.zoom-ctrl-btn{transition:background .2s ease,color .2s ease,transform .15s ease;}
.zoom-ctrl-btn:hover{background:var(--surface2) !important;color:var(--text) !important;}

/* ── Info card hover system ── */
.icard{
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease;
  cursor:default;
  border-radius:var(--r-lg);
}
.icard:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 40px var(--accent-glow);
  border-color:var(--accent-1) !important;
  background:var(--accent-soft) !important;
}
.icard .icard-title{
  transition:background-size .3s ease, opacity .2s;
}
.icard:hover .icard-title{
  background:linear-gradient(90deg,var(--accent-1),var(--accent-2),var(--accent-1));
  background-size:300% 100%;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:gradShift 5s ease infinite;
}
.icard .icard-desc{
  color:var(--text3);
  transition:color .2s ease;
  line-height:1.55;
}
.icard:hover .icard-desc{
  color:var(--text) !important;
}
/* Colored variant - uses tier/accent color */
.icard-accent:hover{
  box-shadow:0 8px 28px var(--icard-glow,var(--accent-glow));
  border-color:var(--icard-color,var(--accent-1)) !important;
  background:var(--icard-bg,var(--accent-soft)) !important;
}
.icard-accent:hover .icard-title{
  background:linear-gradient(90deg,var(--icard-color,var(--accent-1)),var(--accent-2),var(--icard-color,var(--accent-1)));
  background-size:300% 100%;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:gradShift 4s ease infinite;
}
/* Stats card variant */
.icard-stat .icard-val{
  transition:transform .2s ease, filter .2s ease;
}
.icard-stat:hover .icard-val{
  transform:scale(1.08);
  filter:brightness(1.2);
}
/* Feature row hover */
.feat-row{
  transition:background .18s ease,padding-left .18s ease;
  border-radius:8px;
  padding:5px 8px;
}
.feat-row:hover{
  background:var(--accent-soft);
  padding-left:12px;
}
.feat-row:hover .feat-icon{
  filter:brightness(1.3);
}
[data-theme="light"] .icard:hover{
  box-shadow:0 8px 28px var(--accent-glow);
  background:var(--accent-soft) !important;
}
[data-theme="light"] .icard:hover .icard-desc{
  color:var(--text) !important;
}
.node-card:hover{filter:brightness(1.12);cursor:pointer;}
@keyframes glow{0%,100%{box-shadow:0 0 20px var(--accent-glow)}50%{box-shadow:0 0 40px var(--accent-glow)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes nodeBlink{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes tierPop{0%{transform:translateY(0) scale(1)}60%{transform:translateY(-12px) scale(1.03)}100%{transform:translateY(-8px) scale(1)}}
@keyframes gradShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes badgePulse{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.06)}}
@keyframes borderGlow{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes priceCount{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes scrollPulse{0%,100%{opacity:.4}50%{opacity:1}}
@keyframes slideRight{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
@keyframes slideRightOut{from{opacity:1;transform:none}to{opacity:0;transform:translateX(40px)}}
@keyframes slideLeft{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
@keyframes scaleIn{from{opacity:0;transform:scale(0.97)}to{opacity:1;transform:scale(1)}}
@keyframes scaleOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.97)}}
@keyframes backdropOut{from{opacity:1}to{opacity:0}}
.panel-slide{animation:slideRight .4s cubic-bezier(0.22,1,0.36,1) forwards;}
.panel-slide-out{animation:slideRightOut .32s cubic-bezier(0.32,0,0.67,0) forwards;pointer-events:none;}
.panel-slide-fast{animation:slideRight .28s cubic-bezier(0.22,1,0.36,1) forwards;}
.modal-backdrop-out{animation:backdropOut .22s ease forwards;pointer-events:none;}
.modal-content-out{animation:scaleOut .22s ease forwards;}
.panel-slide-down-out{animation:slideDownOut .28s ease forwards;pointer-events:none;}
@keyframes slideDownOutGantt{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}
.gantt-panel-out{animation:slideDownOutGantt .3s ease forwards;pointer-events:none;}
.modal-scale{animation:scaleIn .28s cubic-bezier(.25,.46,.45,.94) forwards;}
@keyframes ripple{from{transform:scale(0);opacity:.4}to{transform:scale(2.5);opacity:0}}
@keyframes checkmark{from{stroke-dashoffset:40}to{stroke-dashoffset:0}}
@keyframes successPop{0%{transform:scale(0.5);opacity:0}60%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
@keyframes particleFloat{0%{transform:translateY(0) scale(1);opacity:1}100%{transform:translateY(-60px) scale(0);opacity:0}}
@keyframes profileIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes thinkDot{0%,80%,100%{opacity:0.2;transform:scale(0.8)}40%{opacity:1;transform:scale(1.2)}}
@keyframes edgePulse{0%{stroke-dashoffset:0}100%{stroke-dashoffset:-24}}
@keyframes nodeSelect{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}
@keyframes statusFlash{0%{opacity:0.5}50%{opacity:1}100%{opacity:0.5}}
@keyframes slideInPanel{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}
@keyframes tourStep{from{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:none}}
@keyframes statsReveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes hoverLift{to{transform:translateY(-2px)}}
@keyframes softPulse{0%,100%{opacity:1}50%{opacity:.92}}
.node-selected{animation:nodeSelect .25s ease;}
.tour-card{animation:tourStep .25s ease;}
.stats-card{animation:statsReveal .3s ease both;}
.animate-fade-in-up{animation:fadeInUp .4s cubic-bezier(0.22,1,0.36,1) forwards;}
.animate-hover-lift{transition:transform .25s ease,box-shadow .25s ease;}
.animate-hover-lift:hover{animation:hoverLift .25s ease forwards;}
/* Интерактив: кнопки и карточки */
.btn-interactive{transition:transform .12s ease,box-shadow .2s ease,background .2s ease;}
.btn-interactive:hover{transform:translateY(-1px);}
.btn-interactive:active{transform:translateY(0) scale(0.98);}
.card-interactive{transition:transform .28s cubic-bezier(0.22,1,0.36,1),box-shadow .28s ease,border-color .2s ease;}
.card-interactive:hover{transform:translateY(-3px);}
.input-focus-ring:focus{box-shadow:0 0 0 3px var(--accent-glow);outline:none;}

/* ── Плавные анимации экранов и списков ── */
.drop-panel{animation:dropIn .16s cubic-bezier(0.22,1,0.36,1) both;transform-origin:top center;}
.drop-panel-out{animation:dropOut .14s cubic-bezier(0.32,0,0.67,0) both;transform-origin:top center;pointer-events:none;}
.collapse-wrap{overflow:hidden;will-change:max-height,opacity,transform;}
.collapse-in{animation:softExpand .22s cubic-bezier(0.22,1,0.36,1) both;}
.collapse-out{animation:softCollapse .18s cubic-bezier(0.32,0,0.67,0) both;pointer-events:none;}
@keyframes screenEnter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes screenEnterLeft{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:translateX(0)}}
@keyframes listItemIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeScaleIn{from{opacity:0;transform:scale(0.96)}to{opacity:1;transform:scale(1)}}
@keyframes backdropIn{from{opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(16px)}}
/* ── Glass (glassmorphism): малопрозрачный фон, размытие, граница/тень в тон палитры ── */
.glass{background:var(--glass-bg,rgba(12,18,30,.92));backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border-accent,var(--glass-border,rgba(255,255,255,.1)));box-shadow:var(--glass-shadow-accent,none),0 24px 64px rgba(0,0,0,.4);}
[data-theme="dark"][data-palette="indigo"] .glass{--glass-bg:rgba(9,7,22,.88);}
[data-theme="light"][data-palette="indigo"] .glass{--glass-bg:rgba(255,255,255,.9);--glass-border:rgba(104,80,220,.14);}
[data-theme="light"] .glass{--glass-bg:rgba(255,255,255,.92);--glass-border:rgba(0,0,0,.08);box-shadow:var(--glass-shadow-accent,none),0 24px 64px rgba(0,0,0,.1);}
.glass-panel{background:var(--glass-panel-bg,rgba(12,18,30,.96));backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border:1px solid var(--glass-border-accent,var(--glass-panel-border,rgba(255,255,255,.12)));box-shadow:var(--glass-shadow-accent,none),0 16px 48px rgba(0,0,0,.45),0 0 0 1px rgba(0,0,0,.05);}
[data-theme="dark"][data-palette="indigo"] .glass-panel{--glass-panel-bg:rgba(9,7,22,.9);}
[data-theme="light"][data-palette="indigo"] .glass-panel{--glass-panel-bg:rgba(255,255,255,.94);--glass-panel-border:rgba(104,80,220,.14);}
[data-theme="light"] .glass-panel{--glass-panel-bg:rgba(255,255,255,.97);--glass-panel-border:rgba(0,0,0,.1);box-shadow:var(--glass-shadow-accent,none),0 16px 48px rgba(0,0,0,.12);}
.glass-card{background:var(--glass-card-bg,var(--surface));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--glass-border-accent,var(--border));border-radius:var(--r-lg);box-shadow:var(--glass-shadow-accent,none);}
[data-theme="dark"][data-palette="indigo"] .glass-card{position:relative;overflow:hidden;}
[data-theme="dark"][data-palette="indigo"] .glass-card::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(145deg,rgba(255,255,255,.07) 0%,transparent 55%);
  pointer-events:none;
}
[data-theme="light"][data-palette="indigo"] .glass-card{position:relative;overflow:hidden;box-shadow:var(--glass-shadow-accent,none),0 2px 14px rgba(78,55,180,.08);}
[data-theme="light"][data-palette="indigo"] .glass-card::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(145deg,rgba(255,255,255,.75) 0%,rgba(255,255,255,.06) 45%,transparent 68%);
  pointer-events:none;
}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes toastOut{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,8px)}}
.toast-out{animation:toastOut .25s ease forwards;pointer-events:none;}
.screen-enter{animation:screenEnter .4s cubic-bezier(0.22,1,0.36,1) forwards;}
.screen-enter-left{animation:screenEnterLeft .35s cubic-bezier(0.22,1,0.36,1) forwards;}
.list-item-in{animation:listItemIn .35s cubic-bezier(0.22,1,0.36,1) forwards;}
.fade-scale-in{animation:fadeScaleIn .3s cubic-bezier(0.22,1,0.36,1) forwards;}
.backdrop-in{animation:backdropIn .25s ease forwards;}
.toast-in{animation:toastIn .3s cubic-bezier(0.22,1,0.36,1) forwards;}
/* Плавные переходы для кнопок и инпутов */
.btn-smooth{transition:transform .18s ease,box-shadow .25s ease,background .2s ease,color .2s ease,border-color .2s ease,opacity .2s ease;}
.btn-smooth:hover{transform:translateY(-1px);}
.btn-smooth:active{transform:translateY(0);}
.input-smooth{transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;}
.input-smooth:focus{box-shadow:0 0 0 3px var(--accent-glow);}
/* Карточки проектов и карт — плавное появление */
.card-stagger{opacity:0;animation:listItemIn .4s cubic-bezier(0.22,1,0.36,1) forwards;}
/* Контейнер экрана с плавной сменой */
.screen-wrap{transition:opacity .2s ease;}
/* Модалки — более мягкое появление */
.modal-backdrop{animation:backdropIn .28s ease forwards;}
.modal-content-pop{animation:fadeScaleIn .32s cubic-bezier(0.22,1,0.36,1) forwards;}
/* Панели (боковые) — плавный slide */
.panel-enter{animation:slideRight .4s cubic-bezier(0.22,1,0.36,1) forwards;}
/* Вкладки — лёгкий fade контента */
.tab-content{animation:fadeScaleIn .28s cubic-bezier(0.22,1,0.36,1) forwards;}

/* ── Мобильная адаптация (max-width: 640px) ── */
@media (max-width: 640px){
  body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);}
  .btn-smooth{min-height:44px;}
  .input-smooth{min-height:44px;font-size:16px;}
  .screen-enter{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);}
}
@media (max-width: 480px){
  .card-stagger{animation-duration:.3s;}
}
