/* =============================================================================
   Perfil de marca — workspace "noveck".
   -----------------------------------------------------------------------------
   Contrato white-label: TODO tema de workspace define exatamente o mesmo
   conjunto de variáveis `--workspace-*`. A superfície da plataforma
   (resources/js/platform) consome apenas esses nomes e nunca conhece a marca.
   As rampas `--noveck-*` abaixo são privadas deste arquivo — nenhuma tela deve
   referenciá-las diretamente.

   Fonte da verdade: system-design (shadcn/ui + tokens NOVECK), src/index.css.
   ============================================================================= */

/* ---------------------------------------------------------------- tipografia */
@font-face {
    font-family: 'Noveck Sans';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/branding/noveck/fonts/noveck-sans-regular.woff2') format('woff2');
}

@font-face {
    font-family: 'Noveck Sans';
    font-style: normal;
    font-weight: 700 800;
    font-display: swap;
    src: url('/branding/noveck/fonts/noveck-sans-bold.woff2') format('woff2');
}

/* IBM Plex Mono — família completa. `font-display: swap` e o fato de o browser
   só baixar o arquivo do peso efetivamente usado tornam o custo proporcional ao
   uso real, e não à quantidade de faces declaradas. */
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 100; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-thin.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: italic; font-weight: 100; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-thin-italic.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 200; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-extralight.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: italic; font-weight: 200; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-extralight-italic.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 300; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-light.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: italic; font-weight: 300; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-light-italic.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-regular.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: italic; font-weight: 400; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-regular-italic.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-medium.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: italic; font-weight: 500; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-medium-italic.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 600; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-semibold.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: italic; font-weight: 600; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-semibold-italic.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 700; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-bold.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: italic; font-weight: 700; font-display: swap; src: url('/branding/noveck/fonts/ibm-plex-mono-bold-italic.ttf') format('truetype'); }

:root[data-workspace-theme='noveck'] {
    /* ===================================================== rampas da marca ===
       Privadas. Existem para que a camada semântica abaixo componha a partir de
       uma escala real, e não de hex soltos. */
    --noveck-purple-900: #1a0140;
    --noveck-purple-800: #210150;
    --noveck-purple-700: #2b0161;
    --noveck-purple-600: #3d1b7a;
    --noveck-purple-100: #ede6f7;
    --noveck-purple-50:  #f7f4fc;
    --noveck-pink:       #f02888;
    --noveck-pink-600:   #d01470;
    --noveck-pink-100:   #fde4f0;
    --noveck-lime:       #c4e000;
    --noveck-lime-600:   #9fb800;
    --noveck-lime-100:   #f3f9d6;
    --noveck-orange:     #fa7000;
    --noveck-orange-600: #db5e00;
    --noveck-orange-100: #ffe7d4;
    --noveck-white:      #ffffff;
    --noveck-ink:        #1a0a33;
    --noveck-ink-soft:   #4a3d63;
    --noveck-mist-100:   #f7f5fa;
    --noveck-mist-200:   #ece8f3;
    --noveck-mist-300:   #dad3e6;
    --noveck-mist-400:   #b9aecc;

    /* ============================================================= famílias === */
    --workspace-font-display: 'Noveck Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --workspace-font-body: 'Noveck Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --workspace-font-mono: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;

    /* ====================================================== escala de texto ===
       Fluida no topo (display) e fixa do heading para baixo, como no design
       system. A superfície não deve escrever `font-size` em px. */
    --workspace-fs-display-xl: clamp(2.75rem, 4vw, 4.5rem);
    --workspace-fs-display-l:  clamp(2.25rem, 3vw, 3.25rem);
    --workspace-fs-display-m:  clamp(1.75rem, 2.4vw, 2.375rem);
    --workspace-fs-heading-l:  1.75rem;
    --workspace-fs-heading-m:  1.375rem;
    --workspace-fs-heading-s:  1.125rem;
    --workspace-fs-body-l:     1.125rem;
    --workspace-fs-body-m:     1rem;
    --workspace-fs-body-s:     0.875rem;
    --workspace-fs-caption:    0.75rem;
    --workspace-fs-eyebrow:    0.8125rem;

    --workspace-lh-tight:   1.08;
    --workspace-lh-snug:    1.25;
    --workspace-lh-normal:  1.5;
    --workspace-lh-relaxed: 1.65;

    --workspace-fw-regular:   400;
    --workspace-fw-medium:    500;
    --workspace-fw-semibold:  600;
    --workspace-fw-bold:      700;
    --workspace-fw-extrabold: 800;

    --workspace-ls-tight:  -0.01em;
    --workspace-ls-normal: 0;
    --workspace-ls-wide:   0.06em;
    --workspace-ls-wider:  0.14em;

    /* ============================================================== espaço === */
    --workspace-space-1:  4px;
    --workspace-space-2:  8px;
    --workspace-space-3:  12px;
    --workspace-space-4:  16px;
    --workspace-space-5:  20px;
    --workspace-space-6:  24px;
    --workspace-space-8:  32px;
    --workspace-space-10: 40px;
    --workspace-space-12: 48px;
    --workspace-space-16: 64px;
    --workspace-space-20: 80px;
    --workspace-space-24: 96px;
    --workspace-space-32: 128px;

    /* =============================================================== forma === */
    --workspace-radius-sm:     8px;
    --workspace-radius-md:     14px;
    --workspace-radius-lg:     20px;
    --workspace-radius-xl:     28px;
    --workspace-radius-pill:   999px;
    --workspace-radius-circle: 50%;

    --workspace-shadow-sm:    0 1px 3px rgb(26 10 51 / 8%);
    --workspace-shadow-md:    0 8px 24px rgb(26 10 51 / 10%);
    --workspace-shadow-lg:    0 20px 48px rgb(26 10 51 / 14%);
    --workspace-shadow-inset: inset 0 0 0 1px rgb(26 10 51 / 8%);

    /* ============================================================ movimento === */
    --workspace-ease-standard: cubic-bezier(.4, 0, .2, 1);
    --workspace-ease-out:      cubic-bezier(0, 0, .2, 1);
    --workspace-dur-fast:      120ms;
    --workspace-dur-normal:    200ms;
    --workspace-dur-slow:      340ms;

    /* ============================================================== layout === */
    --workspace-container-max: 1200px;

    /* ================================================= superfícies e texto === */
    --workspace-color-background:       var(--noveck-mist-100);
    --workspace-color-surface:          var(--noveck-white);
    --workspace-color-surface-subtle:   var(--noveck-mist-100);
    --workspace-color-surface-inverse:  var(--noveck-purple-700);
    --workspace-color-muted:            var(--noveck-mist-100);
    --workspace-color-foreground:       var(--noveck-ink);
    --workspace-color-muted-foreground: var(--noveck-ink-soft);
    --workspace-color-inverse-foreground:       var(--noveck-white);
    --workspace-color-inverse-muted-foreground: var(--noveck-purple-100);
    --workspace-color-border:        var(--noveck-mist-300);
    --workspace-color-border-strong: var(--noveck-mist-400);

    /* ============================================================ primária === */
    --workspace-color-primary:        var(--noveck-purple-700);
    --workspace-color-primary-hover:  var(--noveck-purple-800);
    --workspace-color-primary-active: var(--noveck-purple-900);
    --workspace-color-primary-soft:   var(--noveck-purple-100);
    --workspace-color-on-primary:     var(--noveck-white);

    /* ============================================================= acentos ===
       Regra de marca: acento é pontuação, nunca preenchimento grande. Usar em
       foco, séries de gráfico, marcadores e destaques pequenos. */
    --workspace-color-focus:              var(--noveck-pink);
    --workspace-color-accent-pink:        var(--noveck-pink);
    --workspace-color-accent-pink-soft:   var(--noveck-pink-100);
    --workspace-color-accent-lime:        var(--noveck-lime);
    --workspace-color-accent-lime-soft:   var(--noveck-lime-100);
    --workspace-color-accent-orange:      var(--noveck-orange);
    --workspace-color-accent-orange-soft: var(--noveck-orange-100);

    /* ============================================================== estado === */
    --workspace-color-success:      #2e9e5b;
    --workspace-color-success-soft: #e4f6ec;
    --workspace-color-warning:      var(--noveck-orange);
    --workspace-color-warning-soft: var(--noveck-orange-100);
    --workspace-color-danger:       #d4304a;
    --workspace-color-danger-soft:  #fbe4e8;
    --workspace-color-info:         var(--noveck-purple-700);
    --workspace-color-info-soft:    var(--noveck-purple-100);

    /* =========================================================== navegação ===
       A marca entra no foco e nos itens ativos. A navegação fica clara para
       não transformar o painel operacional em um bloco escuro dominante. */
    --workspace-nav-surface:          var(--noveck-white);
    --workspace-nav-surface-hover:    var(--noveck-purple-50);
    --workspace-nav-surface-active:   var(--noveck-purple-100);
    --workspace-nav-foreground:       var(--noveck-ink);
    --workspace-nav-muted-foreground: var(--noveck-ink-soft);
    --workspace-nav-border:           var(--noveck-mist-300);
    --workspace-nav-accent:           var(--noveck-purple-700);

    /* ============================================================ gráficos === */
    --workspace-chart-1: var(--noveck-purple-700);
    --workspace-chart-2: var(--noveck-pink);
    --workspace-chart-3: var(--noveck-lime-600);
    --workspace-chart-4: var(--noveck-orange);
    --workspace-chart-5: var(--noveck-purple-600);
}
