/* ==========================================================================
   nalogi.io — Утвержденная дизайн-система и CSS-токены (Design Tokens)
   Соответствует NALOGI_SITE_DESIGN_SPEC.md §11 и NALOGI_SITE_IMPLEMENTATION_PLAN.md
   ========================================================================== */

/* Self-hosted Cyrillic + Latin Font: Golos Text (SIL Open Font License) */
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/golos-text/golos-text-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/golos-text/golos-text-cyrillic-ext.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/golos-text/golos-text-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/golos-text/golos-text-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  /* Surfaces & Backgrounds (Светлая SaaS гамма) */
  --surface-page: #F8F9F6;
  --surface-card: #FFFFFF;
  --surface-subtle: #EFF5FA;
  --surface-hover: #F2F6FA;
  --surface-overlay: rgba(14, 25, 41, 0.45);

  /* Typography Colors (Графитовая типографика) */
  --text-primary: #182638;
  --text-heading: #142B49;
  --text-secondary: #526176;
  --text-muted: #61707F;   /* AA ≥4.5:1 на page/card/subtle (AC-DS-15) */
  --text-inverse: #FFFFFF;

  /* Borders & Dividers */
  --border-default: #D7E0E8;
  --border-control: #78899C;
  --border-subtle: #E8EEF3;
  --border-focus: #2563EB;

  /* Actions & Brand (Яркие синие primary CTA и темно-синий бренд) */
  --action-primary: #17375E;
  --action-hover: #102A4A;
  --action-accent: #2563EB;
  --action-accent-hover: #1D4ED8;
  --action-secondary: #F0F4F8;
  --action-secondary-hover: #E2EAF1;
  --link: #245B91;
  --link-hover: #17375E;

  /* Draft / Info states (используются кабинетом; значения перенесены как есть,
     чтобы не появилось второго источника токенов — DS-01/AC-DS-01) */
  --info: #0369A1;
  --info-bg: #E0F2FE;
  --info-border: #A9CFE8;
  --draft-bg: #F1F5F9;
  --draft-fg: #475569;

  /* Semantic Status Colors */
  --success: #146844;
  --success-bg: #EAF6EE;
  --success-border: #A3D9B8;

  --ai: #6545A2;
  --ai-bg: #F2EDF9;
  --ai-border: #D1BEE8;

  --warning: #875A0C;
  --warning-bg: #FFF5DD;
  --warning-border: #F3DC9B;

  --danger: #B42332;
  --danger-bg: #FDEDF0;
  --danger-border: #F5A8B2;

  --focus: #235FDB;
  --focus-ring: 0 0 0 3px rgba(35, 95, 219, 0.25);

  /* Gradients */
  --gradient-hero: linear-gradient(135deg, #F8FBFF 0%, #E8F3FF 50%, #EEF6FC 100%);
  --gradient-card: linear-gradient(180deg, #FFFFFF 0%, #FAFBFD 100%);
  --gradient-accent: linear-gradient(135deg, #1E40AF 0%, #2563EB 100%);
  --gradient-ai: linear-gradient(135deg, #5B21B6 0%, #7C3AED 100%);

  /* Typography */
  --font-family: 'Golos Text', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;

  /* Radii */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-pill: 999px;

  /* Shadows */
  --shadow-sm: 0 2px 6px rgba(20, 43, 73, 0.04);
  --shadow-md: 0 8px 24px rgba(20, 43, 73, 0.07);
  --shadow-lg: 0 16px 36px rgba(20, 43, 73, 0.11);
  --shadow-card-hover: 0 12px 28px rgba(20, 43, 73, 0.10);

  /* Transitions */
  --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-normal: 250ms cubic-bezier(0.4, 0, 0.2, 1);

  /* Container Widths */
  --container-max: 1200px;
  --container-narrow: 760px;
  --container-app: 1280px;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --transition-fast: 0ms;
    --transition-normal: 0ms;
  }
}

/* --- Легаси-имена кабинета: ТОЛЬКО алиасы на семантические токены (AC-DS-02) --- */
:root {
  --bg: var(--surface-page);
  --bg-alt: var(--surface-subtle);
  --fg: var(--text-primary);
  --text: var(--text-primary);
  --card: var(--surface-card);
  --card-bg: var(--surface-card);
  --card-border: var(--border-default);
  --card-hover: var(--surface-hover);
  --border: var(--border-default);
  --acc: var(--action-primary);
  --accent: var(--action-primary);
  --acc-hover: var(--action-hover);
  --success-fg: var(--success);
  --warning-fg: var(--warning);
}

/* --- Тёмная тема: полное покрытие тех же токенов (AC-DS-01) ---
   Светлая — основной утверждённый режим (design spec §11.2). Dark объявляется
   здесь, в единственном файле токенов, и покрывается автоматической проверкой
   tests/test_design_tokens.py: если токен не переопределён, тест падает. */
[data-theme="dark"] {
  --surface-page: #0F172A;
  --surface-card: #1E293B;
  --surface-subtle: #243248;
  --surface-hover: #243248;
  --surface-overlay: rgba(2, 6, 23, 0.6);

  --text-primary: #F1F5F9;
  --text-heading: #F8FAFC;
  --text-secondary: #CBD5E1;
  --text-muted: #94A3B8;
  --text-inverse: #0F172A;

  --border-default: #475569;
  --border-control: #64748B;
  --border-subtle: #334155;
  --border-focus: #38BDF8;

  --action-primary: #38BDF8;
  --action-hover: #0EA5E9;
  --action-accent: #38BDF8;
  --action-accent-hover: #0EA5E9;
  --action-secondary: #1E293B;
  --action-secondary-hover: #334155;
  --link: #7DD3FC;
  --link-hover: #BAE6FD;

  --success: #6EE7B7;
  --success-bg: #064E3B;
  --success-border: #065F46;

  --ai: #C4B5FD;
  --ai-bg: #2E1065;
  --ai-border: #5B21B6;

  --warning: #FCD34D;
  --warning-bg: #451A03;
  --warning-border: #78350F;

  --danger: #FCA5A5;
  --danger-bg: #450A0A;
  --danger-border: #7F1D1D;

  --focus: #38BDF8;
  --focus-ring: 0 0 0 3px rgba(56, 189, 248, 0.35);

  --info: #7DD3FC;
  --info-bg: #082F49;
  --info-border: #0C4A6E;
  --draft-bg: #334155;
  --draft-fg: #CBD5E1;
}
