/* ============================================================
   CRM Femida — дизайн-система v2 (premium)
   Navy + Royal Blue + Gold. Manrope / Lora / JetBrains Mono.
   ============================================================ */
:root {
  /* ---- Brand scale (royal blue) ---- */
  --brand-50:  #eef3ff;
  --brand-100: #dde8ff;
  --brand-200: #c1d2ff;
  --brand-300: #97b2fb;
  --brand-400: #6488f6;
  --brand-500: #3b6ef0;   /* light */
  --brand-600: #2456d8;   /* primary */
  --brand-700: #1d3a8a;
  --brand-800: #16306f;
  --brand-900: #0f1f4d;
  --brand-glow: #7aa2f7;

  /* ---- Navy / ink ---- */
  --ink: #0c1322;
  --navy-950: #080d1c;
  --navy-900: #0e1730;
  --navy-800: #1a2543;
  --navy-700: #2b3658;

  /* ---- Gold ---- */
  --gold: #c8a24c;
  --gold-soft: #e3c574;
  --gold-deep: #a7842f;

  /* ---- Surfaces ---- */
  --paper: #ffffff;
  --bg: #f5f7fc;
  --mist-1: #f7f9fd;
  --mist-2: #eef2f9;
  --mist-3: #e1e8f3;
  --line: #e6ebf3;
  --line-strong: #d4ddea;

  --gray-4: #9aa6b8;
  --gray-5: #67748a;
  --gray-6: #38445b;

  /* ---- Semantic ---- */
  --ok: #15a866;        --ok-bg: #e9faf1;
  --warn: #d4860a;      --warn-bg: #fff5e6;
  --danger: #e0392b;    --danger-bg: #fdeeec;
  --info-bg: #eaf1ff;

  /* ---- Radii ---- */
  --radius-sm: 11px;
  --radius: 15px;
  --radius-lg: 22px;
  --radius-xl: 28px;

  /* ---- Shadows (layered, soft) ---- */
  --shadow-xs: 0 1px 2px rgba(12,19,34,.05);
  --shadow-sm: 0 2px 10px -3px rgba(12,19,34,.10);
  --shadow: 0 14px 36px -16px rgba(12,19,34,.20);
  --shadow-lg: 0 32px 70px -28px rgba(8,13,28,.42);
  --shadow-glow: 0 14px 40px -12px rgba(36,86,216,.46);
  --shadow-gold: 0 14px 40px -12px rgba(200,162,76,.45);

  /* ---- Motion ---- */
  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
  --spring: cubic-bezier(.34,1.4,.5,1);

  /* ---- Type ---- */
  --font: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --serif: 'Lora', 'Times New Roman', serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;
}

/* ============================================================
   Тёмная тема. Включается атрибутом data-theme="dark" на <html>
   (переключатель в кабинете). Переопределяем только переменные —
   компоненты на var(--paper)/var(--bg)/var(--ink) и т.д. адаптируются.
   ============================================================ */
[data-theme="dark"] {
  --paper: #161d2f;          /* поверхности карточек, инпутов, панелей */
  --bg: #0b1120;             /* фон страницы */
  --mist-1: #1b2338;         /* лёгкая заливка / hover / шапка таблицы */
  --mist-2: #232d46;
  --mist-3: #2f3b57;
  --line: #262f47;
  --line-strong: #35415f;

  --ink: #e8edf9;            /* основной текст */
  --gray-6: #ccd6ea;         /* был самый тёмный текст → теперь светлый */
  --gray-5: #94a2bf;
  --gray-4: #6b7a98;

  --brand-50:  #16203b;      /* светлые бренд-подложки → тёмный тинт */
  --brand-100: #1b2748;

  /* Семантические подложки — тёмные тинты, текст остаётся насыщенным */
  --info-bg: #172c52;
  --ok-bg: #123526;
  --warn-bg: #33280d;
  --danger-bg: #3a1d1a;

  --shadow-xs: 0 1px 2px rgba(0,0,0,.4);
  --shadow-sm: 0 2px 10px -3px rgba(0,0,0,.5);
  --shadow: 0 14px 36px -16px rgba(0,0,0,.62);
  --shadow-lg: 0 32px 70px -28px rgba(0,0,0,.72);

  color-scheme: dark;
}
/* Точечные правки для элементов с непеременным фоном */
[data-theme="dark"] .topbar { background: rgba(13,18,30,.82) !important; }
[data-theme="dark"] .kpi .ic.gold { background: #33280d; }
[data-theme="dark"] .pill-gold { background: #33280d; color: var(--gold-soft); }
[data-theme="dark"] .cal-cell.today { background: var(--brand-900); border-color: var(--brand-600); }
[data-theme="dark"] .modal-foot { background: var(--paper); }
[data-theme="dark"] .modal-head { background: var(--paper); }
[data-theme="dark"] .modal { border-color: var(--line-strong); }
[data-theme="dark"] .invite-result { border-color: #1f4a34; }
[data-theme="dark"] .kpi .n { background: linear-gradient(120deg, var(--ink), var(--brand-glow)); -webkit-background-clip: text; background-clip: text; }
[data-theme="dark"] .select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a2bf' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); }
[data-theme="dark"] img.doc-preview, [data-theme="dark"] .doc-page { filter: none; }

* { box-sizing: border-box; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font);
  color: var(--ink);
  background: var(--paper);
  letter-spacing: -0.012em;
  text-rendering: optimizeLegibility;
  line-height: 1.5;
}
a { text-decoration: none; color: inherit; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
input, select, textarea { font-family: inherit; }
img, svg { vertical-align: middle; }
.mono { font-family: var(--mono); letter-spacing: 0; }
.serif { font-family: var(--serif); }

::selection { background: var(--brand-200); color: var(--brand-800); }

/* Доступность: видимый фокус при навигации с клавиатуры */
:focus-visible { outline: 2.5px solid var(--brand-500); outline-offset: 2px; border-radius: 6px; }
.btn:focus-visible { outline-offset: 3px; }

/* Custom scrollbar */
* { scrollbar-width: thin; scrollbar-color: var(--line-strong) transparent; }
*::-webkit-scrollbar { width: 11px; height: 11px; }
*::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius: 99px; border: 3px solid transparent; background-clip: content-box; }
*::-webkit-scrollbar-thumb:hover { background: var(--gray-4); background-clip: content-box; }

/* ---------------- Logo wordmark ---------------- */
.logo { display: inline-flex; align-items: center; gap: 11px; }
.logo-mark {
  width: 38px; height: 38px; display: flex; flex-shrink: 0; box-sizing: border-box;
  border-radius: 11px; transition: transform .35s var(--spring);
}
.logo:hover .logo-mark { transform: rotate(-6deg) scale(1.05); }
.logo-mark img, .logo-mark svg { width: 100%; height: 100%; display: block; object-fit: contain; }
/* Логотип — PNG с прозрачным фоном. На тёмных поверхностях сажаем на белый чип,
   чтобы тёмно-синие элементы не сливались с фоном. */
.sidebar .brand .logo-mark,
.footer .logo-mark,
.brand-panel .logo-mark,
.brand-top .logo-mark {
  background: #fff; padding: 4px;
  box-shadow: 0 6px 16px -6px rgba(0,0,0,.4);
}
.logo-text { font-family: var(--serif); font-weight: 600; font-size: 21px; letter-spacing: -0.01em; }
.logo-text .accent { color: var(--gold-deep); }

/* ---------------- Buttons ---------------- */
.btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 21px; border-radius: var(--radius-sm);
  font-size: 15px; font-weight: 650; letter-spacing: -0.01em;
  transition: transform .18s var(--ease), box-shadow .22s var(--ease), background .18s, border-color .18s, color .18s;
  white-space: nowrap; isolation: isolate; overflow: hidden;
}
.btn svg { flex-shrink: 0; }
.btn-primary {
  background: linear-gradient(180deg, var(--brand-500), var(--brand-600));
  color: #fff; box-shadow: var(--shadow-glow), inset 0 1px 0 rgba(255,255,255,.22);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 20px 44px -12px rgba(36,86,216,.6), inset 0 1px 0 rgba(255,255,255,.25); }
.btn-primary:active { transform: translateY(0); }
.btn-dark { background: linear-gradient(180deg, var(--navy-800), var(--ink)); color: #fff; box-shadow: 0 12px 30px -12px rgba(8,13,28,.6), inset 0 1px 0 rgba(255,255,255,.08); }
.btn-dark:hover { transform: translateY(-2px); box-shadow: 0 20px 44px -14px rgba(8,13,28,.7); }
.btn-gold { background: linear-gradient(180deg, var(--gold-soft), var(--gold)); color: #2a2103; box-shadow: var(--shadow-gold), inset 0 1px 0 rgba(255,255,255,.4); }
.btn-gold:hover { transform: translateY(-2px); box-shadow: 0 20px 46px -12px rgba(200,162,76,.6); }
.btn-ghost { background: var(--paper); color: var(--ink); border: 1px solid var(--line-strong); box-shadow: var(--shadow-xs); }
.btn-ghost:hover { background: var(--mist-1); border-color: var(--gray-4); transform: translateY(-1px); }
.btn-white { background: #fff; color: var(--brand-700); box-shadow: var(--shadow-sm); }
.btn-white:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
/* subtle sheen sweep on primary/gold/dark */
.btn-primary::after, .btn-gold::after, .btn-dark::after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.28) 50%, transparent 70%);
  transform: translateX(-120%); transition: transform .6s var(--ease);
}
.btn-primary:hover::after, .btn-gold:hover::after, .btn-dark:hover::after { transform: translateX(120%); }
.btn-sm { padding: 8px 14px; font-size: 13.5px; border-radius: 9px; }
.btn-lg { padding: 15px 27px; font-size: 16px; border-radius: 13px; }
.btn[disabled] { opacity: .55; cursor: not-allowed; transform: none !important; }
.btn-block { width: 100%; }

/* ---------------- Badges / pills ---------------- */
.pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 11px; border-radius: 999px; font-size: 12px; font-weight: 650;
  letter-spacing: -0.01em; white-space: nowrap;
}
.pill-blue { background: var(--info-bg); color: var(--brand-600); }
.pill-gold { background: #fbf2da; color: var(--gold-deep); }
.pill-green { background: var(--ok-bg); color: var(--ok); }
.pill-amber { background: var(--warn-bg); color: var(--warn); }
.pill-red { background: var(--danger-bg); color: var(--danger); }
.pill-gray { background: var(--mist-2); color: var(--gray-5); }

/* ---------------- Forms ---------------- */
.field { margin-bottom: 16px; }
.field label { display: block; font-size: 13px; font-weight: 600; color: var(--gray-6); margin-bottom: 7px; }
.input, .select, .textarea {
  width: 100%; padding: 11px 14px; font-size: 14.5px; color: var(--ink);
  background: var(--paper); border: 1px solid var(--line-strong); border-radius: var(--radius-sm);
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.input::placeholder, .textarea::placeholder { color: var(--gray-4); }
.input:focus, .select:focus, .textarea:focus {
  outline: none; border-color: var(--brand-500); box-shadow: 0 0 0 4px rgba(59,110,240,.14);
}
.input:hover, .select:hover, .textarea:hover { border-color: var(--gray-4); }
.textarea { resize: vertical; min-height: 84px; line-height: 1.5; }
.select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2367748a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 13px center; padding-right: 36px; }

/* ---------------- Cards ---------------- */
.card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }

/* ---------------- Utility ---------------- */
.container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
.muted { color: var(--gray-5); }
.center { text-align: center; }
.hidden { display: none !important; }
.gradient-text { background: linear-gradient(120deg, var(--brand-500), var(--brand-700)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.glass { background: rgba(255,255,255,.72); backdrop-filter: blur(16px) saturate(1.4); -webkit-backdrop-filter: blur(16px) saturate(1.4); }

/* Scroll-reveal */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--ease-out), transform .7s var(--ease-out); }
.reveal.in { opacity: 1; transform: none; }
.reveal.d1 { transition-delay: .08s; } .reveal.d2 { transition-delay: .16s; }
.reveal.d3 { transition-delay: .24s; } .reveal.d4 { transition-delay: .32s; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

/* ---------------- Toast ---------------- */
.toast-wrap { position: fixed; right: 22px; bottom: 22px; z-index: 9999; display: flex; flex-direction: column; gap: 10px; }
.toast {
  background: linear-gradient(180deg, var(--navy-800), var(--ink)); color: #fff; padding: 14px 18px;
  border-radius: 13px; font-size: 14px; font-weight: 550; box-shadow: var(--shadow-lg);
  display: flex; align-items: center; gap: 10px; animation: toastIn .3s var(--spring); max-width: 380px;
  border: 1px solid rgba(255,255,255,.08);
}
.toast.ok { background: linear-gradient(180deg, #0f5138, #0a3a28); }
.toast.err { background: linear-gradient(180deg, #6e1d18, #4c1111); }
@keyframes toastIn { from { opacity: 0; transform: translateY(14px) scale(.96); } }
/* На телефонах тосты во всю ширину снизу — не прилипают к правому краю */
@media (max-width: 560px) {
  .toast-wrap { left: 14px; right: 14px; bottom: 14px; }
  .toast { max-width: none; width: 100%; }
}
