/* QuiNVarium Wallet — дизайн-токены V3.
   Синяя палитра следует утверждённому brand source. */

:root {
  color-scheme: light dark;

  /* Бренд. Значения из эталона логотипа: акцент светлого фона — 1f6fd6,
     тёмного — 2f8ff5. Фиолетовый из ранней версии кита снят полностью. */
  --qnv-accent: #1F6FD6;
  --qnv-accent-hover: #1A5FB8;
  --qnv-accent-soft: #EAF1FC;
  --qnv-accent-line: #BFD8F6;
  --qnv-on-accent: #FFFFFF;
  --qnv-mark-ring: #121722;

  /* Поверхности */
  --qnv-bg: #F1F3F6;
  --qnv-surface: #FFFFFF;
  --qnv-surface-high: #F6F7F9;
  --qnv-surface-sunken: #F0F2F5;
  --qnv-surface-pressed: #E7EAEF;
  --qnv-border: #E3E6EB;
  --qnv-border-strong: #D2D7DF;
  --qnv-chrome: rgba(255, 255, 255, .88);

  /* Текст */
  --qnv-text: #121722;
  --qnv-text-secondary: #3B4351;
  --qnv-text-muted: #5D6674;
  --qnv-text-faint: #838B98;

  /* Статусы */
  --qnv-success: #1B8A5A;
  --qnv-success-soft: #E7F5EE;
  --qnv-success-line: #B7E0CB;
  --qnv-warning: #8A5A00;
  --qnv-warning-soft: #FDF3E0;
  --qnv-warning-line: #EAD3A3;
  --qnv-danger: #C42F45;

  /* Premium QNV balance panel. */
  --qnv-card-face: linear-gradient(152deg, #2F8FF5 0%, #1F6FD6 34%, #14417C 72%, #0E2444 100%);
  --qnv-card-ink: #FFFFFF;
  --qnv-card-shadow: 0 18px 40px -20px rgba(18, 45, 84, .55);

  /* Типографика. Логотип — Avenir Next по эталону, интерфейс — Inter,
     числа и адреса — моноширинный. */
  --qnv-font-ui: Inter, "Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif;
  --qnv-font-word: "Avenir Next", Avenir, "Segoe UI", system-ui, sans-serif;
  --qnv-font-mono: "IBM Plex Mono", "SF Mono", SFMono-Regular, Menlo, monospace;

  --qnv-text-display: 30px;
  --qnv-text-h1: 22px;
  --qnv-text-h2: 17px;
  --qnv-text-body: 15px;
  --qnv-text-sm: 13px;
  --qnv-text-label: 12px;
  --qnv-text-caption: 11px;

  /* Геометрия */
  --qnv-space-1: 4px;
  --qnv-space-2: 8px;
  --qnv-space-3: 12px;
  --qnv-space-4: 16px;
  --qnv-space-5: 20px;
  --qnv-space-6: 24px;
  --qnv-space-8: 32px;
  --qnv-radius-sm: 8px;
  --qnv-radius-control: 12px;
  --qnv-radius-panel: 16px;
  --qnv-radius-card: 20px;
  --qnv-radius-phone: 34px;
  --qnv-radius-pill: 999px;
  --qnv-control-height: 48px;
  --qnv-icon-button: 40px;
  --qnv-mobile-width: 390px;
  --qnv-mobile-height: 844px;
  --qnv-tap-min: 44px;

  /* Тени */
  --qnv-shadow-panel: 0 1px 2px rgba(18, 23, 34, .05);
  --qnv-shadow-raised: 0 8px 24px -12px rgba(18, 23, 34, .28);
  --qnv-phone-shadow: 0 30px 70px -30px rgba(18, 23, 34, .45);

  /* Движение */
  --qnv-motion-press: 120ms;
  --qnv-motion-state: 180ms;
  --qnv-motion-sheet: 240ms;
  --qnv-ease: cubic-bezier(.2, .8, .2, 1);
}

/* Тёмная тема. Ровно те же роли, другие значения — компоненты про тему
   не знают и хардкод-цветов не содержат. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --qnv-accent: #2F8FF5;
    --qnv-accent-hover: #57A6F8;
    --qnv-accent-soft: #132234;
    --qnv-accent-line: #1E4A7A;
    --qnv-on-accent: #071119;
    --qnv-mark-ring: #F2F4F8;

    --qnv-bg: #0B0F16;
    --qnv-surface: #141A23;
    --qnv-surface-high: #1B2230;
    --qnv-surface-sunken: #10151D;
    --qnv-surface-pressed: #222B3A;
    --qnv-border: #232A35;
    --qnv-border-strong: #2E3746;
    --qnv-chrome: rgba(11, 15, 22, .88);

    --qnv-text: #F2F4F8;
    --qnv-text-secondary: #C3C9D4;
    --qnv-text-muted: #9AA2B0;
    --qnv-text-faint: #737C8A;

    --qnv-success: #3FBF8A;
    --qnv-success-soft: #10231C;
    --qnv-success-line: #1E4A3B;
    --qnv-warning: #E0A840;
    --qnv-warning-soft: #241B0C;
    --qnv-warning-line: #4D3B18;
    --qnv-danger: #E8586C;

    --qnv-shadow-panel: none;
    --qnv-shadow-raised: 0 10px 28px -16px rgba(0, 0, 0, .8);
    --qnv-phone-shadow: 0 30px 80px -34px rgba(0, 0, 0, .9);
  }
}

:root[data-theme="dark"] {
  --qnv-accent: #2F8FF5;
  --qnv-accent-hover: #57A6F8;
  --qnv-accent-soft: #132234;
  --qnv-accent-line: #1E4A7A;
  --qnv-on-accent: #071119;
  --qnv-mark-ring: #F2F4F8;

  --qnv-bg: #0B0F16;
  --qnv-surface: #141A23;
  --qnv-surface-high: #1B2230;
  --qnv-surface-sunken: #10151D;
  --qnv-surface-pressed: #222B3A;
  --qnv-border: #232A35;
  --qnv-border-strong: #2E3746;
  --qnv-chrome: rgba(11, 15, 22, .88);

  --qnv-text: #F2F4F8;
  --qnv-text-secondary: #C3C9D4;
  --qnv-text-muted: #9AA2B0;
  --qnv-text-faint: #737C8A;

  --qnv-success: #3FBF8A;
  --qnv-success-soft: #10231C;
  --qnv-success-line: #1E4A3B;
  --qnv-warning: #E0A840;
  --qnv-warning-soft: #241B0C;
  --qnv-warning-line: #4D3B18;
  --qnv-danger: #E8586C;

  --qnv-shadow-panel: none;
  --qnv-shadow-raised: 0 10px 28px -16px rgba(0, 0, 0, .8);
  --qnv-phone-shadow: 0 30px 80px -34px rgba(0, 0, 0, .9);
}
