/* UOSS portal — dizajn tokeni.
 *
 * JEDINI fajl u projektu koji sme da sadrži hex literal, veličinu fonta ili
 * vrednost razmaka. Sve ostalo (uoss.css, template-i) čita ove varijable.
 *
 * Normativan izvor: design-artifacts/D-Design-System/design-system.md
 * Ako neka vrednost nije ovde — dopiši je najpre u dizajn sistem, pa ovde.
 *
 * Jedini dozvoljeni selektor u ovom fajlu je `:root`.
 *
 * IZUZETAK: PDF sloj (WeasyPrint, base_url=None) NE MOŽE da dosegne ovaj fajl.
 * PDF template-i drže literale u svom `<style>` bloku — to je namerno, vidi
 * design-system.md §8 i docs/redesign-plan.md §2.6.
 */

:root {
  /* ─── Neutralna rampa ──────────────────────────────────────────────────
   * Hladno-siva, ne krem: pod veštačkim kancelarijskim svetlom topao ton
   * čita se kao zamazan ekran.
   * Kontrasti su prema #FFFFFF, izmereni (design-system.md §2.1).           */
  --uoss-surface: #ffffff;       /* kartica, tabela, sadržaj                 */
  --uoss-bg: #f7f8fa;            /* pozadina stranice, sidebar               */
  --uoss-subtle: #eff1f4;        /* zebra red, tiho ispunjenje               */
  --uoss-line: #e2e6eb;          /* ivica, delitelj                          */
  --uoss-line-strong: #c9cfd8;   /* onemogućeno, ivica kartice, dekoracija   */
  /* Granica AKTIVNE kontrole (input, select, outline dugme). WCAG 1.4.11
   * traži 3:1 za granicu koja identifikuje kontrolu; `--uoss-line-strong`
   * daje samo 1.57:1 na belom. Onemogućene kontrole su izuzete od tog
   * pravila i namerno OSTAJU svetlije — zato dva odvojena tokena.        */
  --uoss-control-border: #8b8f95; /* vs #fff 3.25:1, vs #f7f8fa 3.06:1  AA ✓ */
  --uoss-muted: #6b7480;         /* sekundarni tekst          — 5.1:1  AA ✓  */
  --uoss-ink-2: #414954;         /* podnaslov, <dt>           — 9.4:1  AAA ✓ */
  --uoss-ink: #1e242c;           /* telo teksta, naslov       — 15.1:1 AAA ✓ */

  /* ─── Akcija ───────────────────────────────────────────────────────────
   * Namerno tamniji i manje zasićen od Bootstrap default-a #0d6efd: čita se
   * kao mastilo, ne kao brend. Pri 8:1 radi i kao boja teksta linka i kao
   * ispuna dugmeta sa belim tekstom — bez dva odvojena tona.                */
  --uoss-primary: #2f4c6b;       /* dugme, link, marker       — 8.0:1  AAA ✓ */
  --uoss-primary-hover: #243c55; /* hover / active            — 10.5:1 AAA ✓ */
  --uoss-primary-tint: #ebf0f5;  /* hover reda tabele, aktivna dropdown st.  */
  --uoss-focus: #0f7fa8;         /* focus ring          — 3.9:1 UI (≥3:1) ✓  */
  --uoss-on-primary: #ffffff;    /* tekst na ispunjenoj primarnoj površini   */

  /* ─── Statusi ──────────────────────────────────────────────────────────
   * Utišani. Bootstrap #dc3545 / #198754 u tabeli sa 40 statusnih ćelija
   * vizuelno vibrira. Svaki par tekst-na-tintu prelazi 4.5:1.
   * BOJA NIKAD NIJE JEDINI NOSILAC ZNAČENJA — uz nju ide tekst ili ikona.   */
  --uoss-success: #1f6e4a;       /* na belom 5.9:1 ✓ · na tintu 5.3:1 ✓      */
  --uoss-success-tint: #e8f3ed;
  --uoss-warning: #8a5a0b;       /* na belom 5.4:1 ✓ · na tintu 4.7:1 ✓      */
  --uoss-warning-tint: #fbf1df;
  --uoss-danger: #9b2c2c;        /* na belom 6.8:1 ✓ · na tintu 6.0:1 ✓      */
  --uoss-danger-tint: #faeaea;
  --uoss-danger-hover: #7d2323;  /* hover ispunjenog .btn-danger — 8.6:1 ✓   */
  --uoss-info: #1f5673;          /* na belom 7.6:1 ✓ · na tintu 6.8:1 ✓      */
  --uoss-info-tint: #e9f1f6;

  /* ─── Bedž pola (M/Ž) ──────────────────────────────────────────────────
   * Muški čita info par iznad; ženski je diskretna šljiva — nije status, pa
   * namerno ne pozajmljuje danger/warning. Slovo M/Ž nosi značenje, boja ne. */
  --uoss-pol-zenski: #7a3b69;    /* na belom 8.0:1 ✓ · na tintu 7.1:1 ✓      */
  --uoss-pol-zenski-tint: #f5ebf2;

  /* ─── rgb trojke ───────────────────────────────────────────────────────
   * CSS ne ume da razloži hex na komponente, a Bootstrap-ove utility klase
   * (.text-muted, .text-danger, .bg-success …) i rgba() traže baš trojku.
   * MORAJU se držati sinhrono sa hex vrednostima iznad — ako menjaš jedno,
   * menjaj i drugo.                                                        */
  --uoss-primary-rgb: 47, 76, 107;   /* #2F4C6B */
  --uoss-success-rgb: 31, 110, 74;   /* #1F6E4A */
  --uoss-danger-rgb: 155, 44, 44;    /* #9B2C2C */
  --uoss-warning-rgb: 138, 90, 11;   /* #8A5A0B */
  --uoss-info-rgb: 31, 86, 115;      /* #1F5673 */
  --uoss-muted-rgb: 107, 116, 128;   /* #6B7480 */
  --uoss-focus-rgb: 15, 127, 168;    /* #0F7FA8 */
  --uoss-primary-hover-rgb: 36, 60, 85; /* #243C55 */

  /* ─── Pisma ────────────────────────────────────────────────────────────
   * Source Sans 3: humanistički sans projektovan za ekran, čitljiv na 14px
   * u gustoj tabeli. Namerno NIJE Inter — Inter je podrazumevani izbor
   * svakog SaaS panela.
   * IBM Plex Mono: SAMO identifikatori i novčani iznosi (legitimacija, JMBG,
   * broj utakmice, iznos naloga) — fiksna širina znaka omogućava vizuelno
   * poređenje red-po-red. Funkcionalno, ne dekorativno.                     */
  --uoss-font-sans: "Source Sans 3", system-ui, -apple-system, "Segoe UI",
    sans-serif;
  --uoss-font-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;

  /* ─── Tipografska skala ────────────────────────────────────────────────*/
  --uoss-fs-xs: 0.75rem;         /* 12px — oznaka kolone, badž               */
  --uoss-fs-sm: 0.8125rem;       /* 13px — pomoćni tekst, form-text          */
  --uoss-fs-td: 0.875rem;        /* 14px — ĆELIJA TABELE                     */
  --uoss-fs-base: 0.9375rem;     /* 15px — telo, input, dugme                */
  --uoss-fs-lg: 1.0625rem;       /* 17px — naslov kartice, h3                */
  --uoss-fs-xl: 1.25rem;         /* 20px — naslov sekcije, h2                */
  --uoss-fs-2xl: 1.5rem;         /* 24px — NASLOV STRANICE h1                */
  --uoss-fs-3xl: 1.875rem;       /* 30px — prijava, error stranice           */

  --uoss-lh-tight: 1.2;
  --uoss-lh-heading: 1.3;
  --uoss-lh-base: 1.6;
  --uoss-lh-table: 1.5;

  --uoss-fw-normal: 400;
  --uoss-fw-medium: 500;         /* samo IBM Plex Mono (iznosi)              */
  --uoss-fw-semibold: 600;
  --uoss-fw-bold: 700;

  --uoss-ls-tight: -0.01em;      /* naslov stranice                          */
  --uoss-ls-label: 0.06em;       /* <thead>, oznaka kolone (uppercase)       */
  --uoss-ls-section: 0.08em;     /* naslov sekcije sidebar-a (uppercase)     */

  /* ─── Razmaci (baza 4px) ───────────────────────────────────────────────*/
  --uoss-s1: 0.25rem;            /*  4px */
  --uoss-s2: 0.5rem;             /*  8px */
  --uoss-s3: 0.75rem;            /* 12px */
  --uoss-s4: 1rem;               /* 16px */
  --uoss-s5: 1.5rem;             /* 24px */
  --uoss-s6: 2rem;               /* 32px */
  --uoss-s7: 3rem;               /* 48px */
  --uoss-s8: 4rem;               /* 64px */

  /* ─── Radius ───────────────────────────────────────────────────────────
   * Nula radiusa je namerno izbegnuta — „hairline broadsheet" izgled je
   * manirizam koji ovom alatu ništa ne donosi.                              */
  --uoss-r-sm: 4px;              /* input, dugme, badž                       */
  --uoss-r-md: 6px;              /* kartica, offcanvas                       */

  /* ─── Senka ────────────────────────────────────────────────────────────
   * Jedna, tiha. SAMO offcanvas sidebar i dropdown. Kartice se razdvajaju
   * IVICOM, ne senkom — desetak senki na stranici pravi kašu.               */
  --uoss-shadow: 0 1px 2px rgba(30, 36, 44, 0.06),
    0 1px 3px rgba(30, 36, 44, 0.04);

  /* ─── Layout ───────────────────────────────────────────────────────────*/
  --uoss-sidebar-w: 260px;       /* fiksno na ≥992px, offcanvas ispod        */
  --uoss-content-max: 1440px;
  --uoss-marker-w: 3px;          /* signature: levi marker                   */
}
