/*
 * Payroll UI scale — korisničko podešavanje veličine prikaza po uređaju/browseru.
 *
 * Vrednost bira korisnik u navbar dropdown-u, čuva se u localStorage
 * (dynasoft.payroll.uiScale) i postavlja kao data-ds-ui-scale atribut na <html>
 * (vidi wwwroot/js/ds-ui-scale.js).
 *
 * Mehanizam: skalira se SAMO osnovni html font-size. Bootstrap 5 i dynasoft-theme.css
 * su rem-bazirani, pa se font, paddingi, visine kontrola, tabele i .small tekst
 * skaliraju proporcionalno bez diranja pojedinačnih selektora.
 *
 * Ovaj fajl se učitava posle dynasoft-theme.css; `html[data-ds-ui-scale]` je specifičniji od
 * običnog `html`, pa pobeđuje na svim širinama.
 */

html[data-ds-ui-scale] {
    /* Množilac prikaza: stepen koji je korisnik izabrao; na telefonu svaki stepen puta 1,125
       (telefonski blok niže, uz tabelu).

       Telefon se drži u ruci i gleda iz veće blizine, ali pod lošijim uslovima: u pokretu, na
       suncu, jednom rukom. Ista mera koja je na monitoru udobna tamo je tesna. Korisnički nalaz
       17.08.2026: „veličina fontova i visina head linije mi je bila prirodnija" na krupnijem.

       Ovo NIJE povratak na staro. Ranije su telefon i desktop imali dve potpuno različite tabele
       pod istim imenima, pa je „Normalno" značilo 14px na desktopu a 18,9px na telefonu — 35%
       razlike koju niko nije birao. Sada postoji JEDNA tabela i jedan svestan množilac od 12,5%,
       koji jednako pogađa sve stepene: ko izabere „Sitno" dobija sitno i na telefonu.

       VREDNOSTI SU GOTOVI BROJEVI, ne calc() proizvod „stepena" i „uređaja" kakav je ovde nakratko
       stajao 17.08.2026. Proizvod je radio u svakom merenju na desktopu, ali se na korisnikovom
       telefonu skala nije primenjivala i to se nije moglo reprodukovati — pa je calc lanac uklonjen
       kao cela klasa mogućih uzroka. Isti brojevi u `DynaSoftWebApp/Content/ds-legacy-ui-scale.css`. */
    --ds-ui-scale: 1;

    /* Osnova je 16px, ista kao u legacy LESS izvoru (`Content/bootstrap.less`, `@font-size-base`).
       Do 17.08.2026. ovde je stajalo 14px uz množilac 1,14 za „Normalno", pa se svaka mera u temi
       morala pisati unazad — 18px na ekranu tražilo je 15,79 jedinica. Sada je broj u izvoru broj
       na ekranu. */
    font-size: calc(16px * var(--ds-ui-scale));
}

/* Skala je definisana STVARNOM veličinom teksta na ekranu, ne golim množiocem.
 *
 * „Normalno" je 16px i množilac 1,0 — broj u izvoru je broj na ekranu.
 *
 * PAZI: interna imena NISU natpisi u meniju. Stavka koju korisnik vidi kao „Normalno" interno je
 * `xlarge`, a interni `normal` nosi natpis „Sitno" (vidi `_DsAppShellHeader.cshtml`). Brojevi se
 * zato vezuju za NATPIS, ne za interno ime.
 *
 *   interno    natpis          množilac   desktop   telefon (x1,125)
 *   compact    Vrlo sitno       0,75        12px      13,5px
 *   normal     Sitno            0,82        13px      14,8px
 *   large      Kompaktno        0,88        14px      15,8px
 *   xlarge     Normalno         1,00        16px      18px    <- podrazumevano
 *   huge       Krupno           1,13        18px      20,3px
 *   xhuge      Vrlo krupno      1,32        21px      23,8px
 *   xxhuge     Extra krupno     1,57        25px      28,3px
 *
 * Svaki množilac je stari podeljen sa 1,14, pa SVI nivoi daju isti tekst na ekranu kao pre — menja
 * se samo koji od njih je 1,0. Zaokruživanje na dve decimale nosi najviše 0,15px razlike.
 *
 * Jedan niz za sve uređaje. Ranije su telefon i desktop imali RAZLIČITE tabele pod istim imenima,
 * pa je „Normalno" na desktopu značilo 14px a na telefonu 18,9px — 35% razlike za istu stavku
 * menija, iako se izbor pamti pod jednim ključem i deli sa legacy WebERP-om.
 *
 * Iste vrednosti stoje u DynaSoftWebApp/Content/ds-legacy-ui-scale.css i u
 * DynaSoftWebApp/Scripts/ds-legacy-ui-scale.js — menja se na sva tri mesta ili nigde.
 */
html[data-ds-ui-scale="compact"] { --ds-ui-scale: 0.75; }
html[data-ds-ui-scale="normal"]  { --ds-ui-scale: 0.82; }
html[data-ds-ui-scale="large"]   { --ds-ui-scale: 0.88; }
html[data-ds-ui-scale="xlarge"]  { --ds-ui-scale: 1; }
html[data-ds-ui-scale="huge"]    { --ds-ui-scale: 1.13; }
html[data-ds-ui-scale="xhuge"]   { --ds-ui-scale: 1.32; }
html[data-ds-ui-scale="xxhuge"]  { --ds-ui-scale: 1.57; }

/* Telefon: svaki stepen puta 1,125 (= 9/8, „Normalno" tačno 18px), upisano kao gotov broj.
   Blok MORA stajati POSLE pravila po stepenima: specifičnost je ista, pa odlučuje redosled u
   fajlu. Granica 767.98px je ista na kojoj se traka sklapa u hamburger. */
@media (max-width: 767.98px) {
    html[data-ds-ui-scale="compact"] { --ds-ui-scale: 0.844; }
    html[data-ds-ui-scale="normal"]  { --ds-ui-scale: 0.923; }
    html[data-ds-ui-scale="large"]   { --ds-ui-scale: 0.99; }
    html[data-ds-ui-scale="xlarge"]  { --ds-ui-scale: 1.125; }
    html[data-ds-ui-scale="huge"]    { --ds-ui-scale: 1.271; }
    html[data-ds-ui-scale="xhuge"]   { --ds-ui-scale: 1.485; }
    html[data-ds-ui-scale="xxhuge"]  { --ds-ui-scale: 1.766; }
}

/* Aktivna stavka u dropdown-u izbora veličine (Bootstrap .active već boji, ovo je samo
   jasniji vizuelni marker da je trenutni izbor čekiran). */
.dropdown-item[data-ds-ui-scale-option].active::after {
    content: "✓";
    float: right;
    margin-left: 0.75rem;
}

/* Print/PDF: veličina prikaza ne sme da utiče na štampu. Payslip/obračunski list koriste
   apsolutne pt jedinice, ali za svaki slučaj vraćamo html na neutralnu vrednost. */
@media print {
    html[data-ds-ui-scale] {
        --ds-ui-scale: 1;
    }
}
