/* ═══════════════════════════════════════════════════════════════════════════
   Nimbus · contractul cojii · v2 · tokens.css
   ---------------------------------------------------------------------------
   Sursa unică a paletei, a literei, a spațiului, a razei și a timpului. Se
   leagă ÎNAINTEA lui chrome.css. Nicio aplicație nu are voie să scrie un hex
   direct: dacă o culoare lipsește de aici, contractul e incomplet și se
   completează aici.

   Serviciu: /_nimbus/v2/tokens.css. v1 (/_nimbus/v1/) rămâne neatins, octet cu
   octet; aplicațiile trec pe v2 schimbând o singură cale (docs/adr/0009).

   Ce s-a schimbat față de v1 (sursa: boardul de design, docs/design/board/):
     · litera pe treptele Q7: 11 / 12 / 13 / 14 / 20 / 26 / 40 px. Numele vechi
       rămân (aplicațiile le citesc), valorile lor cad pe trepte.
     · culorile pe care chrome.css v1 le scria ca hex brut au acum tokenul lor;
       hover-ul chihlimbariu nu mai împrumută culoarea textului de avertisment.
     · timpul apăsării (Restrained): .97, 100 ms în jos, 160 ms înapoi, fără
       arc; săgețile se mișcă 2 px, numai la hover.
     · pragurile stărilor de așteptare (Q-S1): 300 ms / 2 s / 30 s.
   ═════════════════════════════════════════════════════════════════════════ */

/* ── Litera, găzduită de noi ───────────────────────────────────────────────
   Fișierele stau lângă acest CSS (fonts/, o COPIE octet cu octet a celor din
   v1). Căile sunt RELATIVE intenționat, ca aceeași foaie să meargă și de la
   /_nimbus/v2/, și dintr-un dosar copiat pe disc. Copia există fiindcă serverul
   static local al aplicațiilor refuză o cale care iese din dosarul servit:
   „../fonts/” ar fi mers pe origine și ar fi căzut local, adică exact acolo
   unde se testează. */

@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: block; /* nu „swap": mai bine 100 ms goale decât un titlu care sare */
  src: url('fonts/barlow-condensed-600-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url('fonts/barlow-condensed-600-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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: block;
  src: url('fonts/plus-jakarta-sans-400-700-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: block;
  src: url('fonts/plus-jakarta-sans-400-700-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;
}

:root {
  /* ── Culoare · fundaluri ─────────────────────────────────────────────────
     Nimbus e grafit. Nu există variantă deschisă și nu se adaugă una.
     Adâncimea se face din ton, nu din umbră: o suprafață stă exact o treaptă
     peste ce e sub ea (fundal → șină → panou → ridicat). */
  --nb-bg: #17191b;          /* grafit adânc — fundalul aplicației; câmpurile stau tot aici */
  --nb-bg-panel: #1f2225;    /* grafit — panouri, bara de sus, plăci, foi, dialoguri */
  --nb-bg-rail: #1b1e21;     /* șina, cu o treaptă sub panou; urma unei anulări */
  --nb-bg-raised: #262b2f;   /* lucrul ales, mesajul efemer, scheletul */
  --nb-bg-raised-press: #31383d; /* pictograma aleasă din șină, apăsată (v1: hex brut) */

  /* ── Culoare · linii ─────────────────────────────────────────────────────
     Două roluri, nu unul, și diferența e măsurată, nu estetică:
       --nb-line          desparte (rânduri de tabel, secțiuni). Decor.
       --nb-line-control  conturează un CONTROL. Poartă înțeles → ≥ 3:1. */
  --nb-line: rgba(255, 255, 255, .09);
  --nb-line-soft: rgba(255, 255, 255, .06);
  --nb-line-control: #6e7681;
  --nb-steel: #6e7681;        /* pictograme și linii. NICIODATĂ text */
  --nb-line-dashed: rgba(255, 255, 255, .14); /* ce încă nu există; controlul indisponibil */
  --nb-grid-line: rgba(255, 255, 255, .055);   /* caroiajul (.nb-grid-bg), sub --nb-line-soft: decor, nu desparte nimic (v1: literal brut) */

  /* ── Culoare · text ──────────────────────────────────────────────────────
     Toate trec ≥ 4,5:1 pe --nb-bg-panel. Oțelul NU e culoare de text. */
  --nb-text: #b9c0c6;         /* text curent            8,69:1 */
  --nb-text-strong: #dfe3e6;  /* cifre, celule de tabel */
  --nb-text-max: #ffffff;     /* titluri                */
  --nb-text-muted: #8e959b;   /* etichete, capete de tabel, secundar 5,27:1 */

  /* ── Culoare · rol ───────────────────────────────────────────────────────
     Albastrul poartă informație. Chihlimbarul poartă acțiune: UNA pe stratul
     activ (cât e deschis un dialog modal, pagina din spate e inertă și nu
     contează). Roșul spune un fapt rău („Expirat”, „Depășit”), nu cere nimic.
     --nb-blue-mark e culoarea SIGLEI (4,43:1) — merge pe o formă, nu pe text. */
  --nb-blue-mark: #1c8fc9;
  --nb-blue-info: #33a6dd;   /* stări, accente, sublinierea filei curente 5,82:1 */
  --nb-blue-link: #6ec3ec;   /* legături, cifre, supratitluri        8,13:1 */
  --nb-amber: #ef9d13;       /* NUMAI fundal de acțiune */
  /* Hover-ul acțiunii are culoarea LUI. v1 scria aici #f6b23c, adică valoarea
     textului de avertisment folosită ca umplere: două roluri pe o culoare, iar
     regula „#f6b23c e numai text” nu se mai putea verifica. Treapta e la
     jumătate între acțiune și avertisment; textul de pe ea: 8,74:1. */
  --nb-amber-hover: #f4a72b;
  --nb-amber-press: #d98c0e; /* acțiunea apăsată (v1: hex brut) 6,47:1 */
  --nb-amber-text: #f6b23c;  /* NUMAI text (și contur de inel) de avertisment 8,64:1; NICIODATĂ umplere */
  --nb-red-text: #f0665c;    /* NUMAI text de stare obiectivă („Expirat”, „depășit”) 5,15:1 */
  --nb-on-amber: #17191b;    /* ce se scrie pe chihlimbar             7,97:1 */
  --nb-focus: #6ec3ec;       /* inelul de focalizare, peste tot același */
  --nb-green-text: #5ec97a;  /* NUMAI codul A = acceptat (ADR 0008 nimb-gestiune); nu e „succes” generic */

  /* Selecția și umplerile de interacțiune: rămân în familia albastră, iar
     umplerile albe sunt atât de slabe încât nu se văd ca „fundal nou”. */
  --nb-select-bg: rgba(51, 166, 221, .12);       /* chip / segment / filă aleasă */
  --nb-select-bg-hover: rgba(51, 166, 221, .14);
  --nb-select-bg-press: rgba(51, 166, 221, .22);
  --nb-hover-fill: rgba(255, 255, 255, .04);      /* Restrained: .04 */
  --nb-row-hover: rgba(255, 255, 255, .025);      /* un rând de tabel sub cursor */
  --nb-press-fill: rgba(255, 255, 255, .06);      /* chip, segment, rând apăsat */
  /* Încărcarea (ADR-0009, decizia 10): inelul și strălucirea a ce așteaptă, în nuanța lui. Scrise
     aici ca rgba, NU cu color-mix(var(…), transparent) în chrome.css: în Chromium, getComputedStyle
     pe un box-shadow cu color-mix peste var() blochează pagina (măsurat 02.10, Chromium 1234). */
  --nb-load-ring-blue: rgba(51, 166, 221, .6);    /* --nb-blue-info la .6: inelul de 1 px, pe loc */
  --nb-load-ring-blue-on: rgba(51, 166, 221, .9); /* vârful respirației */
  --nb-load-glow-blue: rgba(51, 166, 221, .4);    /* strălucirea de 14 px */
  --nb-load-tint-blue: rgba(51, 166, 221, .1);    /* tenta controlului cu fundal liber */
  --nb-load-ring-amber: rgba(239, 157, 19, .6);   /* același, pe butonul care E deja chihlimbariu */
  --nb-load-ring-amber-on: rgba(239, 157, 19, .9);
  --nb-load-glow-amber: rgba(239, 157, 19, .42);
  --nb-ghost-press: rgba(255, 255, 255, .08);     /* butonul secundar apăsat */
  --nb-amber-sheen: rgba(255, 255, 255, .12);     /* luciul de sus al acțiunii la hover, inset 1px */
  --nb-sk-sheen: #2f353a;    /* licărirea scheletului (v1: hex brut) */
  --nb-scrim: rgba(0, 0, 0, .6); /* fundalul din spatele unui dialog sau al unei foi */
  --nb-scrim-media: rgba(0, 0, 0, .72); /* dialogul care arată un document (--media, nb-viewer) */
  --nb-canvas-dim: rgba(0, 0, 0, .18);  /* masa pe care stă pagina, în vizualizator */
  --nb-paper: #ffffff;       /* hârtia unui document randat: miniaturi, pagina care se încarcă */
  --nb-flash: rgba(51, 166, 221, .16); /* „aici s-a schimbat” — o singură dată, apoi dispare */

  /* ── Culoare · semnul (norul de tablă, PRD-N4 B) — neschimbate din v1 ─── */
  --nb-nimbi-tabla: #23272b;
  --nb-nimbi-tabla-gol: #1c1f22;
  --nb-nimbi-falt: #4a5157;
  --nb-nimbi-nit: #5c666e;
  --nb-nimbi-nimb-gol: #3a3f44;
  --nb-nimbi-ochi: #eef8fd;

  /* ── Literă ──────────────────────────────────────────────────────────── */
  --nb-font-head: 'Barlow Condensed', 'Plus Jakarta Sans', ui-sans-serif, system-ui, sans-serif;
  --nb-font-body: 'Plus Jakarta Sans', ui-sans-serif, system-ui, sans-serif;

  /* Treptele Q7 (decise pe 24.09): 11 / 12 / 13 / 14 / 20 / 26 / 40.
     Nicio mărime de text din contract nu stă în afara lor. Numele din v1 rămân,
     fiindcă aplicațiile le citesc; valorile lor s-au mutat pe trepte:
       md 12,5 → 13 · base 13,5 → 13 · lg 15 → 14 · tile 21 → 20 · figure 44 → 40 */
  --nb-size-xs: 11px;    /* etichete de câmp, capete de tabel */
  --nb-size-sm: 12px;    /* stări, note, numărători */
  --nb-size-md: 13px;    /* firimituri, chip-uri, butoane */
  --nb-size-base: 13px;  /* celule de tabel, câmpuri, textul paginii */
  --nb-size-lg: 14px;    /* titlul unui rând, textul unei pagini de stare */
  --nb-size-h3: 20px;    /* titlul unui panou, al unei stări goale; numele de pe placă */
  --nb-size-h2: 26px;    /* titlul unui dialog / al unei foi; titlul paginii pe telefon */
  --nb-size-h1: 40px;    /* titlul paginii */
  --nb-size-tile: var(--nb-size-h3);

  /* Cifra de rezultat a unui calculator. Două trepte, nu cinci. */
  --nb-size-figure: var(--nb-size-h1);
  --nb-size-figure-sm: var(--nb-size-h2);

  /* Spațierea versalelor. Barlow Condensed strâns cere aer între litere. */
  --nb-track-eyebrow: .14em;
  --nb-track-label: .1em;
  --nb-track-th: .12em;
  --nb-track-btn: .09em;
  --nb-track-tile: .05em;
  --nb-track-brand: .16em;

  /* Plus Jakarta Sans pune un spațiu de 2 px FIX între 10 și 14 px, deci
     textul mai mare se citește mai lipit. .06em repune aerul dintre cuvinte
     în textul curent; titlurile și versalele își păstrează spațierea lor. */
  --nb-word-space: .06em;

  --nb-lh-tight: 1.08;
  --nb-lh-body: 1.6;

  /* ── Spațiu ──────────────────────────────────────────────────────────── */
  --nb-s1: 4px;
  --nb-s2: 8px;
  --nb-s3: 12px;
  --nb-s4: 16px;
  --nb-s5: 22px;
  --nb-s6: 32px;
  --nb-s7: 40px;

  /* ── Formă ───────────────────────────────────────────────────────────────
     2px și atât. Fără gradient, fără umbră. Singurele excepții numite: licărirea
     scheletului (ADR-0008), luciul de 1 px al acțiunii la hover (Restrained),
     caroiajul de antet (.nb-grid-bg, în contract din PRD-N1) și strălucirea a ce
     se încarcă (ADR-0009, decizia 10: numai cât elementul așteaptă, în nuanța lui). Caroiajul e scris
     cu linear-gradient, dar desenează linii de 1 px cu opriri tăiate, nu o
     trecere de culoare; nu e o bază pentru alte gradiente (ADR-0009, de confirmat 8). */
  --nb-radius: 2px;

  /* ── Timpul (ADR-0008 + ADR-0009) ────────────────────────────────────────
     Culoarea: 120 ms controalele, 180 ms suprafețele.
     Apăsarea (Restrained, Teo 24.09): scala .97, 100 ms în jos, 160 ms înapoi,
     FĂRĂ arc. Țintele mici se apasă puțin mai mult, suprafețele mari aproape
     deloc; rândurile de tabel nu se scalează niciodată. */
  --nb-dur-1: .12s;
  --nb-dur-2: .18s;
  --nb-ease: cubic-bezier(.2,0,.2,1);
  --nb-ease-out: cubic-bezier(.2, 0, 0, 1);       /* intrări, coborârea apăsării */
  --nb-ease-release: cubic-bezier(.23, 1, .32, 1); /* revenirea, fără depășire */
  --nb-dur-press: 100ms;
  --nb-dur-release: 160ms;
  --nb-dur-enter: .22s;   /* dialog, foaie, mesaj: intrarea */
  --nb-dur-exit: .14s;    /* ieșirea, mai scurtă decât intrarea */
  --nb-dur-flash: 1.6s;   /* „aici s-a schimbat” */
  --nb-press: .97;        /* butoane, file */
  --nb-press-sm: .9595;   /* chip-uri, pictogramele șinei, bifa: 1 - .03 × 1,35 */
  --nb-press-lg: .991;    /* plăci: 1 - .03 × .3 */
  --nb-nudge: 2px;        /* săgeți și chevronuri, spre unde duc, numai la hover */

  /* Pragurile așteptării (Q-S1, Teo 24.09). chrome.js le citește de aici.
     Sub 300 ms nu se arată nimic (un răspuns rapid nu clipește un rotitor);
     la 2 s, durata obișnuită, numai dacă a fost măsurată; la 30 s, renunțarea
     spusă în cuvinte, cu valorile lăsate în câmpuri. */
  --nb-wait-show: 300ms;
  --nb-wait-say: 2s;
  --nb-wait-give-up: 30s;
  /* Încărcarea la orice clic (ADR-0009, decizia 10, Teo 02.10) amendează „primele 300 ms nimic”
     numai pentru elementul apăsat: el reacționează pe loc. La 150 ms pulsează și apare bara
     albastră de sus; la 400 ms conținutul se estompează puțin. Rotitorul și verbul rămân la 300. */
  --nb-wait-mark: 150ms;
  --nb-wait-dim: 400ms;
  --nb-dur-breathe: 1.4s; /* respirația strălucirii: 1,4 s dus, 1,4 s întors */

  /* ── Măsurile cojii ──────────────────────────────────────────────────────
     Pragul șinei e 900px. NU poate fi variabilă CSS (media query nu citește
     var()), deci trăiește scris în chrome.css și în README. */
  --nb-rail-w: 76px;      /* coloana din stânga, ≥ 900px */
  --nb-rail-h: 60px;      /* bara de jos, < 900px */
  --nb-topbar-h: 52px;
  --nb-control-h: 38px;   /* câmpuri */
  --nb-btn-h: 42px;
  --nb-btn-sm-h: 32px;    /* butonul mic dintr-un rând (v1 nu-l avea; MAF îl scria singur) */
  --nb-chip-h: 32px;
  --nb-tab-h: 44px;       /* fila de navigare */
  --nb-hit: 44px;         /* ținta minimă de atins cu degetul, sub (pointer: coarse) */
}
