/* ====================================================================================
   NIT Software Solutions © 2026 — Sva prava zadržana.
   Projekat:  NITLpfrPortal
   Fajl:      src/Portal.Web/wwwroot/css/portal-tema.css
   Opis:      Jedini izvor boja, razmaka i veličina za ceo portal — isti sistem tokena
              koji NITErp koristi (docs/UI/NITErp_UI_Standard.md §2), samo uža paleta.
              Atributi na <html>, koje postavlja js/tema.js pre prvog iscrtavanja:
                data-bs-theme     light | dark            (podrazumevano: light)
                data-portal-gustina  komforno | kompaktno (podrazumevano: kompaktno)

   Zašto isto kao ERP: Marko prodaje oba proizvoda istim ljudima. Portal koji izgleda kao
   druga firma ne izgleda kao drugi alat nego kao tuđi alat. Imena promenljivih su namerno
   ista (`--primary`, `--surface`, `--ok-soft`…), pa se rešenje iz jednog projekta prenosi
   u drugi bez prevođenja.

   Zašto UŽA paleta: ERP ima tri teme, akcenat boju i panel personalizacije, jer ga ceo dan
   gleda desetine ljudi u različitim firmama. Portal gleda šačica ljudi iz NIT-a i partneri,
   po nekoliko minuta dnevno — tri teme bi bile tri puta više koda za održavanje i tri puta
   više mesta gde nešto izgleda pokvareno. Ostaje jedna paleta (okean iz ERP-a) sa svetlim i
   tamnim režimom.

   ⛔ PRAVILO (isto kao u ERP-u): nijedna komponenta nema gotov ton. Ili promenljiva odavde,
      ili prozirnost preko nje kroz color-mix(). Boja upisana direktno u komponentu preživi
      promenu teme i pokvari tamni režim tiho — vidi se tek kad neko uključi tamnu temu.
   Nastalo:   23.08.2026.
   ==================================================================================== */

/* ------------------------------------------------------------------------------------
   INTER — lokalno, ne sa CDN-a. Isti fajlovi kao u ERP-u (@fontsource-variable/inter).
   latin-ext je OBAVEZAN: bez njega č, ć, đ, š, ž padaju na rezervni font, pa se u istoj
   rečenici mešaju dva pisma.
   ------------------------------------------------------------------------------------ */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url('../fonts/inter/inter-latin-wght-normal.woff2') format('woff2-variations');
    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: 'Inter';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url('../fonts/inter/inter-latin-ext-wght-normal.woff2') format('woff2-variations');
    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;
}

/* ------------------------------------------------------------------------------------
   OSNOVA — važi za oba režima.
   ------------------------------------------------------------------------------------ */
:root {
    --font: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --radius: 10px;
    --radius-sm: 8px;
    --shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);
    --shadow-lg: 0 12px 40px rgba(16, 24, 40, .18);
}

/* Gustina: jedna grupa promenljivih vuče grid, kontrole i razmake — kao u ERP-u.
   Podrazumevano „kompaktno": portal je spisak koji se pregleda, ne obrazac koji se popunjava. */
:root {
    --row-py: 5px;
    --cell-px: 11px;
    --grid-fs: 12.8px;
    --ctrl-h: 32px;
    --base-fs: 14px;
}

[data-portal-gustina="komforno"] {
    --row-py: 10px;
    --cell-px: 14px;
    --grid-fs: 13.5px;
    --ctrl-h: 36px;
}

/* ------------------------------------------------------------------------------------
   PALETA — okean, ista kao podrazumevana u ERP-u.
   ------------------------------------------------------------------------------------ */
:root {
    --primary: #1570ef;
    --primary-rgb: 21, 112, 239;

    /* Boja TEKSTA na akcentu. Ne sme biti ukucana kao belo: u tamnoj temi akcenat je svetloplav,
       pa belo slovo na njemu daje kontrast 2.6 — ispod granice čitljivosti (WCAG AA traži 4.5).
       Ovo je nađeno merenjem, ne pogađanjem, i zato je token a ne vrednost u pravilu. */
    --na-primary: #fff;
    --bg: #f5f7fa;
    --surface: #fff;
    --surface-2: #f8fafc;
    --text: #101828;
    --muted: #667085;
    --border: #e4e7ec;
    --border-strong: #cfd4dc;
    --sidebar-bg: #0b1f3a;
    --sidebar-text: #c9d5e8;
    --sidebar-muted: #7286a3;
    --sidebar-hover: #132c4e;
    --sidebar-border: #16345c;
    --ok: #039855;
    --ok-soft: #ecfdf3;
    --warn: #b54708;
    --warn-soft: #fffaeb;
    --err: #d92d20;
    --err-soft: #fef3f2;
    --info: #0e7090;
    --info-soft: #f0f9ff;
    --prijava-panel: linear-gradient(150deg, #081426 0%, #0b1f3a 50%, #1570ef 130%);
}

[data-bs-theme="dark"] {
    --primary: #53a4f7;
    --primary-rgb: 83, 164, 247;
    --na-primary: #08121f;
    --bg: #0b1220;
    --surface: #111b2e;
    --surface-2: #16223a;
    --text: #e3e9f2;
    --muted: #8195b3;
    --border: #1e2c46;
    --border-strong: #2b3d5e;
    --sidebar-bg: #081426;
    --sidebar-text: #c9d5e8;
    --sidebar-muted: #5f7592;
    --sidebar-hover: #0f2038;
    --sidebar-border: #13233d;
    --ok: #32d583;
    --ok-soft: #0a2b1c;
    --warn: #fdb022;
    --warn-soft: #2d2208;
    --err: #f97066;
    --err-soft: #301513;
    --info: #36bffa;
    --info-soft: #0b2534;
    --prijava-panel: linear-gradient(150deg, #050d1a 0%, #0b1f3a 50%, #1570ef 140%);
}

/* ------------------------------------------------------------------------------------
   IZVEDENE BOJE — sve iz --primary, preko color-mix(). Zato promena jedne promenljive
   povuče i hover, i meki ton, i ivicu fokusa; nema deset mesta koja treba uskladiti.
   ------------------------------------------------------------------------------------ */
:root,
[data-bs-theme] {
    --primary-hover: color-mix(in srgb, var(--primary) 85%, #000);
    --primary-soft: color-mix(in srgb, var(--primary) 12%, var(--surface));
    --primary-soft-text: color-mix(in srgb, var(--primary) 80%, var(--text));
    --fokus-prsten: 0 0 0 3px rgba(var(--primary-rgb), .22);
}

/* ------------------------------------------------------------------------------------
   MOST KA SYNCFUSION-u — tema `bootstrap5.3` je jedina koja čita --color-sf-* sa :root.
   ⚠️ Ako se u App.razor vrati `bootstrap5.css` (bez „.3"), grid prestane da prati temu i
   ostane plav po podrazumevanom Bootstrap tonu — a to niko ne primeti dok ne uključi tamni
   režim, gde bela tabela na tamnoj strani bode oči.
   ------------------------------------------------------------------------------------ */
:root,
[data-bs-theme] {
    --color-sf-primary: var(--primary);
    --color-sf-primary-text-color: var(--na-primary);
    --color-sf-primary-bg-color: var(--primary);
    --color-sf-primary-border-color: var(--primary);
    --color-sf-primary-bg-color-hover: var(--primary-hover);
    --color-sf-primary-border-color-hover: var(--primary-hover);
    --color-sf-primary-bg-color-pressed: var(--primary-hover);
    --color-sf-primary-border-color-pressed: var(--primary-hover);
    --color-sf-content-bg-color: var(--surface);
    --color-sf-content-bg-color-alt1: var(--surface-2);
    --color-sf-content-bg-color-alt2: color-mix(in srgb, var(--text) 8%, var(--surface));
    --color-sf-content-bg-color-hover: var(--surface-2);
    --color-sf-content-bg-color-selected: var(--primary);
    --color-sf-content-text-color: var(--text);
    --color-sf-content-text-color-hover: var(--text);
    --color-sf-content-text-color-selected: var(--na-primary);
    --color-sf-placeholder-text-color: var(--muted);
    --color-sf-icon-color: var(--muted);
    --color-sf-icon-color-hover: var(--text);
    --color-sf-border: var(--border);
    --color-sf-border-light: var(--border);
    --color-sf-border-dark: var(--border-strong);
    --color-sf-border-hover: var(--border-strong);
    --color-sf-border-focus: color-mix(in srgb, var(--primary) 50%, var(--surface));
    --color-sf-border-selected: color-mix(in srgb, var(--primary) 50%, var(--surface));
    --color-sf-flyout-bg-color: var(--surface);
    --color-sf-flyout-bg-color-hover: var(--surface-2);
    --color-sf-flyout-border: var(--border-strong);
    --color-sf-flyout-text-color: var(--text);
    --color-sf-table-bg-color-hover: color-mix(in srgb, var(--primary) 5%, var(--surface));
    --color-sf-danger: var(--err);
    --color-sf-success: var(--ok);
    --color-sf-warning: var(--warn);
    --color-sf-info: var(--info);
}

/* ------------------------------------------------------------------------------------
   OSNOVNI ELEMENTI
   ------------------------------------------------------------------------------------ */
* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    font-family: var(--font);
    font-size: var(--base-fs);
    background: var(--bg);
    color: var(--text);
    -webkit-font-smoothing: antialiased;
}

/* Brojevi u kolonama stoje u ravnini — pravilo ERP standarda §5. U portalu je važnije nego
   drugde: kolone „kartica-meseci" i „neposlato" se čitaju poređenjem, ne čitanjem. */
.broj,
.e-grid .e-rowcell.broj,
.tabela td[data-broj] {
    font-variant-numeric: tabular-nums;
}
