/*
 * Device-local skaliranje legacy Bootstrap 3 interfejsa.
 *
 * Moderni moduli mogu da promene samo root font-size jer su rem-bazirani. Bootstrap 3
 * koristi fiksne px mere, zato legacy adapter koristi CSS zoom koji menja i tekst i kontrole
 * i raspolozivu sirinu layout-a. Fallback bez zoom podrske uvecava bar osnovni tekst.
 */

html[data-ds-ui-scale] {
    /* Mnozilac prikaza. GOTOVI BROJEVI, ne calc() proizvod stepena i uredjaja - proizvod je ovde
       nakratko stajao 17.08.2026, radio je u SVAKOM merenju na desktopu (i nad zivim STG-om,
       emulacija 412px: zoom 1,125), ali se na korisnikovom telefonu skala nije primenjivala i to
       se nije moglo reprodukovati. Gotov broj nema sta da omane, pa je calc lanac uklonjen kao
       CELA KLASA mogucih uzroka. Isto resenje i isti brojevi kao u
       `DynaSoft.Web.UI/wwwroot/css/ds-ui-scale.css`; menja se na oba mesta ili nigde. */
    --ds-legacy-ui-scale: 1;
}

/* Skala je definisana STVARNOM velicinom teksta na ekranu, ne golim mnoziocem.
 *
 * Osnova je 16px i „Normalno" je 1,0 — broj u CSS-u je broj na ekranu. Do 17.08.2026. osnova je
 * bila 14px uz mnozilac 1,14, pa se svaka mera morala racunati unazad: 18px u meniju trazio je
 * 15,79 u izvoru, traka od 50px trazila je kutiju od 44. Osnova je promenjena tamo gde joj je
 * mesto — u LESS izvoru (`Content/bootstrap.less`, `@font-size-base`), odakle se izvode i naslovi
 * i visine kontrola — pa proporcije Bootstrap 3 rastera ostaju cele.
 *
 * Zato ovde vise nema sta da se mnozi na „Normalno": zoom je 1 i ne radi nista.
 *
 * PAZI: interna imena NISU natpisi u meniju. Stavka koju korisnik vidi kao „Normalno" interno je
 * `xlarge`, a interni `normal` nosi natpis „Sitno" (vidi `_LoginPartial.cshtml` i
 * `_DsAppShellHeader.cshtml`). Brojevi se zato vezuju za NATPIS, ne za interno ime.
 *
 *   interno    natpis          mnozilac   tekst na ekranu (16px * mnozilac)   ranije
 *   compact    Vrlo sitno       0,75        12px                              0,86
 *   normal     Sitno            0,82        13px                              0,93
 *   large      Kompaktno        0,88        14px                              1,00
 *   xlarge     Normalno         1,00        16px   <- podrazumevano           1,14
 *   huge       Krupno           1,13        18px                              1,29
 *   xhuge      Vrlo krupno      1,32        21px                              1,50
 *   xxhuge     Extra krupno     1,57        25px                              1,79
 *
 * Svaki mnozilac 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. Zaokruzivanje na dve decimale nosi najvise 0,15px razlike.
 *
 * Jedan niz za sve uredjaje. Ranije su telefon i desktop imali RAZLICITE tabele pod istim
 * imenima, pa je „Normalno" na desktopu znacilo 14px a na telefonu 18,9px — 35% razlike za istu
 * stavku menija. Ista tabela stoji i u `DynaSoft.Web.UI/wwwroot/css/ds-ui-scale.css` i u
 * `Scripts/ds-legacy-ui-scale.js` (tamo je potrebna za racun efektivne sirine); menja se na sva
 * tri mesta ili nigde. */
html[data-ds-ui-scale="compact"] { --ds-legacy-ui-scale: 0.75; }
html[data-ds-ui-scale="normal"]  { --ds-legacy-ui-scale: 0.82; }
html[data-ds-ui-scale="large"]   { --ds-legacy-ui-scale: 0.88; }
html[data-ds-ui-scale="xlarge"]  { --ds-legacy-ui-scale: 1; }
html[data-ds-ui-scale="huge"]    { --ds-legacy-ui-scale: 1.13; }
html[data-ds-ui-scale="xhuge"]   { --ds-legacy-ui-scale: 1.32; }
html[data-ds-ui-scale="xxhuge"]  { --ds-legacy-ui-scale: 1.57; }

/* Telefon: svaki stepen puta 1,125 (= 9/8, „Normalno" tacno 18px na ekranu), upisano kao gotov
   broj. Blok MORA stajati POSLE pravila po stepenima: specificnost je ista, pa odlucuje redosled
   u fajlu. Granica vidi STVARNU sirinu prozora - zoom je ne menja.

   767.98, ne 767: ista granica kao u modernom `ds-ui-scale.css`. Sa 767 bi frakcione sirine
   (767, 768) - realne na Androidu zbog necelobrojnog DPR-a i OS zoom-a - dobile mnozilac u
   modernom a ne u legacy-ju (nalaz nezavisne provere 17.08.2026). Isti broj je i u
   `Scripts/ds-legacy-ui-scale.js` (racun efektivne sirine). */
@media (max-width: 767.98px) {
    html[data-ds-ui-scale="compact"] { --ds-legacy-ui-scale: 0.844; }
    html[data-ds-ui-scale="normal"]  { --ds-legacy-ui-scale: 0.923; }
    html[data-ds-ui-scale="large"]   { --ds-legacy-ui-scale: 0.99; }
    html[data-ds-ui-scale="xlarge"]  { --ds-legacy-ui-scale: 1.125; }
    html[data-ds-ui-scale="huge"]    { --ds-legacy-ui-scale: 1.271; }
    html[data-ds-ui-scale="xhuge"]   { --ds-legacy-ui-scale: 1.485; }
    html[data-ds-ui-scale="xxhuge"]  { --ds-legacy-ui-scale: 1.766; }
}

html[data-ds-ui-scale] body {
    font-size: calc(16px * var(--ds-legacy-ui-scale));
}

@supports (zoom: 1) {
    html[data-ds-ui-scale] body {
        font-size: 16px;
        zoom: var(--ds-legacy-ui-scale);
    }

    /* Bootstrap 3 bira sirinu `.container` prema STVARNOM viewport-u (media query ne vidi `zoom`),
       a roditelj je posle zoom-a sirok samo `viewport / skala`. Na 1024px sa skalom 1,14 to je
       898px, a Bootstrap uzme 970px — i sadrzaj izadje iz ekrana.

       Ranije je zato svaki prikaz razlicit od 1x isao u PUNU sirinu (`width: auto`). To je bio
       pregrub lek: pri podrazumevanom „Normalno" (1,14) tekst se razvlacio preko celog ekrana i
       belina levo i desno je nestala, iako 1170px * 1,14 = 1334px lepo stane u 1552px.

       `max-width: 100%` resava oboje: Bootstrap-ova fiksna sirina ostaje kada STANE u roditelja
       (kontejner ostaje centriran, sa belinom), a skuplja se tek kada ne stane. Bez izuzetaka po
       skali — pravilo vazi na svakoj. */
    html[data-ds-ui-scale] .container {
        max-width: 100%;
    }
}

.dropdown-menu a[data-ds-ui-scale-option].active::after {
    content: "\2713";
    float: right;
    margin-left: 10px;
}

/* Rezim navigacije ima SVOJ atribut, odvojen od `data-ds-legacy-effective-tier`.
 *
 * Ranije je jedan broj radio dva posla — i grid kolone i navbar — pa je navbar prelazio u mobilni
 * tek na tier-u 1 (efektivno <768px). Posle podizanja skale na 16px, na 1024px je efektivna sirina
 * 898px: Bootstrap 3 jos crta desktop traku, a stavke vise ne staju, pa se traka lomila u dva reda
 * (izmereno: 115px umesto 58). Tier 2 pritom resava kolone, ali navbar nije njegov posao.
 *
 * Sada JS postavlja `data-ds-legacy-nav="mobile"` cim efektivna sirina padne ispod 992px — ista
 * granica na kojoj se sklapa i moderni Bootstrap 5 shell, pa se dve aplikacije ponasaju isto. */
html[data-ds-legacy-nav="mobile"] .navbar-header {
    float: none;
}

html[data-ds-legacy-nav="mobile"] .navbar-toggle {
    display: block;
}

html[data-ds-legacy-nav="mobile"] .navbar-collapse {
    border-top: 1px solid transparent;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
    margin-left: -15px;
    margin-right: -15px;
    overflow-x: visible;
    padding-left: 15px;
    padding-right: 15px;
    width: auto;
}

html[data-ds-legacy-nav="mobile"] .navbar-collapse.collapse {
    display: none !important;
    height: 0 !important;
    overflow: hidden !important;
}

html[data-ds-legacy-nav="mobile"] .navbar-collapse.collapse.in {
    display: block !important;
    height: auto !important;
    overflow-y: auto !important;
}

html[data-ds-legacy-nav="mobile"] .navbar-nav,
html[data-ds-legacy-nav="mobile"] .navbar-right {
    float: none !important;
    margin: 7.5px -15px;
}

html[data-ds-legacy-nav="mobile"] .navbar-nav > li {
    float: none;
}

html[data-ds-legacy-nav="mobile"] .navbar-nav > li > a {
    line-height: 20px;
    padding-bottom: 10px;
    padding-top: 10px;
}

html[data-ds-legacy-nav="mobile"] .navbar-nav .open .dropdown-menu {
    background-color: transparent;
    border: 0;
    box-shadow: none;
    float: none;
    margin-top: 0;
    position: static;
    width: auto;
}

html[data-ds-legacy-nav="mobile"] .navbar-nav .open .dropdown-menu > li > a,
html[data-ds-legacy-nav="mobile"] .navbar-nav .open .dropdown-menu .dropdown-header {
    padding: 5px 15px 5px 25px;
}

html[data-ds-legacy-effective-tier="1"] .hidden-xs {
    display: none !important;
}

html[data-ds-legacy-effective-tier="1"] .visible-xs,
html[data-ds-legacy-effective-tier="1"] .visible-xs-block {
    display: block !important;
}

html[data-ds-legacy-effective-tier="1"] .visible-xs-inline {
    display: inline !important;
}

html[data-ds-legacy-effective-tier="1"] .visible-xs-inline-block {
    display: inline-block !important;
}

/* Bootstrap grid breakpoints su u px i zato ne prate CSS zoom. Vracamo kolone na poslednji
   raspolozivi nizi tier; klasa tog nizeg tier-a, kada postoji, ponovo dobija svoju sirinu. */
html[data-ds-legacy-effective-tier="1"] [class*="col-sm-"],
html[data-ds-legacy-effective-tier="1"] [class*="col-md-"],
html[data-ds-legacy-effective-tier="1"] [class*="col-lg-"] {
    float: none !important;
    left: auto !important;
    margin-left: 0 !important;
    right: auto !important;
    width: 100% !important;
}

html[data-ds-legacy-effective-tier="1"] .col-xs-1,
html[data-ds-legacy-effective-tier="1"] .col-xs-2,
html[data-ds-legacy-effective-tier="1"] .col-xs-3,
html[data-ds-legacy-effective-tier="1"] .col-xs-4,
html[data-ds-legacy-effective-tier="1"] .col-xs-5,
html[data-ds-legacy-effective-tier="1"] .col-xs-6,
html[data-ds-legacy-effective-tier="1"] .col-xs-7,
html[data-ds-legacy-effective-tier="1"] .col-xs-8,
html[data-ds-legacy-effective-tier="1"] .col-xs-9,
html[data-ds-legacy-effective-tier="1"] .col-xs-10,
html[data-ds-legacy-effective-tier="1"] .col-xs-11,
html[data-ds-legacy-effective-tier="1"] .col-xs-12 {
    float: left !important;
}

html[data-ds-legacy-effective-tier="1"] .col-xs-12 { width: 100% !important; }
html[data-ds-legacy-effective-tier="1"] .col-xs-11 { width: 91.66666667% !important; }
html[data-ds-legacy-effective-tier="1"] .col-xs-10 { width: 83.33333333% !important; }
html[data-ds-legacy-effective-tier="1"] .col-xs-9  { width: 75% !important; }
html[data-ds-legacy-effective-tier="1"] .col-xs-8  { width: 66.66666667% !important; }
html[data-ds-legacy-effective-tier="1"] .col-xs-7  { width: 58.33333333% !important; }
html[data-ds-legacy-effective-tier="1"] .col-xs-6  { width: 50% !important; }
html[data-ds-legacy-effective-tier="1"] .col-xs-5  { width: 41.66666667% !important; }
html[data-ds-legacy-effective-tier="1"] .col-xs-4  { width: 33.33333333% !important; }
html[data-ds-legacy-effective-tier="1"] .col-xs-3  { width: 25% !important; }
html[data-ds-legacy-effective-tier="1"] .col-xs-2  { width: 16.66666667% !important; }
html[data-ds-legacy-effective-tier="1"] .col-xs-1  { width: 8.33333333% !important; }

html[data-ds-legacy-effective-tier="2"] [class*="col-md-"],
html[data-ds-legacy-effective-tier="2"] [class*="col-lg-"] {
    float: none !important;
    left: auto !important;
    margin-left: 0 !important;
    right: auto !important;
    width: 100% !important;
}

html[data-ds-legacy-effective-tier="2"] .col-sm-1,
html[data-ds-legacy-effective-tier="2"] .col-sm-2,
html[data-ds-legacy-effective-tier="2"] .col-sm-3,
html[data-ds-legacy-effective-tier="2"] .col-sm-4,
html[data-ds-legacy-effective-tier="2"] .col-sm-5,
html[data-ds-legacy-effective-tier="2"] .col-sm-6,
html[data-ds-legacy-effective-tier="2"] .col-sm-7,
html[data-ds-legacy-effective-tier="2"] .col-sm-8,
html[data-ds-legacy-effective-tier="2"] .col-sm-9,
html[data-ds-legacy-effective-tier="2"] .col-sm-10,
html[data-ds-legacy-effective-tier="2"] .col-sm-11,
html[data-ds-legacy-effective-tier="2"] .col-sm-12 {
    float: left !important;
}

html[data-ds-legacy-effective-tier="2"] .col-sm-12 { width: 100% !important; }
html[data-ds-legacy-effective-tier="2"] .col-sm-11 { width: 91.66666667% !important; }
html[data-ds-legacy-effective-tier="2"] .col-sm-10 { width: 83.33333333% !important; }
html[data-ds-legacy-effective-tier="2"] .col-sm-9  { width: 75% !important; }
html[data-ds-legacy-effective-tier="2"] .col-sm-8  { width: 66.66666667% !important; }
html[data-ds-legacy-effective-tier="2"] .col-sm-7  { width: 58.33333333% !important; }
html[data-ds-legacy-effective-tier="2"] .col-sm-6  { width: 50% !important; }
html[data-ds-legacy-effective-tier="2"] .col-sm-5  { width: 41.66666667% !important; }
html[data-ds-legacy-effective-tier="2"] .col-sm-4  { width: 33.33333333% !important; }
html[data-ds-legacy-effective-tier="2"] .col-sm-3  { width: 25% !important; }
html[data-ds-legacy-effective-tier="2"] .col-sm-2  { width: 16.66666667% !important; }
html[data-ds-legacy-effective-tier="2"] .col-sm-1  { width: 8.33333333% !important; }

html[data-ds-legacy-effective-tier="3"] [class*="col-lg-"] {
    float: none !important;
    left: auto !important;
    margin-left: 0 !important;
    right: auto !important;
    width: 100% !important;
}

html[data-ds-legacy-effective-tier="3"] .col-md-1,
html[data-ds-legacy-effective-tier="3"] .col-md-2,
html[data-ds-legacy-effective-tier="3"] .col-md-3,
html[data-ds-legacy-effective-tier="3"] .col-md-4,
html[data-ds-legacy-effective-tier="3"] .col-md-5,
html[data-ds-legacy-effective-tier="3"] .col-md-6,
html[data-ds-legacy-effective-tier="3"] .col-md-7,
html[data-ds-legacy-effective-tier="3"] .col-md-8,
html[data-ds-legacy-effective-tier="3"] .col-md-9,
html[data-ds-legacy-effective-tier="3"] .col-md-10,
html[data-ds-legacy-effective-tier="3"] .col-md-11,
html[data-ds-legacy-effective-tier="3"] .col-md-12 {
    float: left !important;
}

html[data-ds-legacy-effective-tier="3"] .col-md-12 { width: 100% !important; }
html[data-ds-legacy-effective-tier="3"] .col-md-11 { width: 91.66666667% !important; }
html[data-ds-legacy-effective-tier="3"] .col-md-10 { width: 83.33333333% !important; }
html[data-ds-legacy-effective-tier="3"] .col-md-9  { width: 75% !important; }
html[data-ds-legacy-effective-tier="3"] .col-md-8  { width: 66.66666667% !important; }
html[data-ds-legacy-effective-tier="3"] .col-md-7  { width: 58.33333333% !important; }
html[data-ds-legacy-effective-tier="3"] .col-md-6  { width: 50% !important; }
html[data-ds-legacy-effective-tier="3"] .col-md-5  { width: 41.66666667% !important; }
html[data-ds-legacy-effective-tier="3"] .col-md-4  { width: 33.33333333% !important; }
html[data-ds-legacy-effective-tier="3"] .col-md-3  { width: 25% !important; }
html[data-ds-legacy-effective-tier="3"] .col-md-2  { width: 16.66666667% !important; }
html[data-ds-legacy-effective-tier="3"] .col-md-1  { width: 8.33333333% !important; }

/* Neprełamajuća legacy tabela može i dalje biti šira od ekstremno uvećanog telefonskog
   viewport-a. Skrol ostaje u sadržaju, umesto da proširi celu stranicu i navbar. */
html[data-ds-legacy-effective-tier="1"] .body-content {
    overflow-x: auto;
    overflow-wrap: anywhere;
}

html[data-ds-legacy-effective-tier="1"] .body-content .table {
    overflow-wrap: normal;
}

/* Stampa ne nasledjuje korisnicku velicinu prikaza: `zoom: 1` bez obzira na izbor, jer papir nema
   ni ekran ni uslove zbog kojih se ta velicina bira. Isto radi i moderna tema (`ds-ui-scale.css`).

   Osnova je 16, ne 14. Sa 14 je ovde ostao ZAOSTATAK od stare osnove: posle prelaska na 16px
   (17.08.2026) stampa je izlazila 12,5% sitnija od ekrana, i — gore — razlicito iz dve aplikacije,
   jer moderni moduli u stampi zadrzavaju 16. Izmereno emulacijom `print` medija na
   /Klijenti/SaldoKom: ekran 16, stampa 14. */
@media print {
    html[data-ds-ui-scale] body {
        font-size: 16px;
        zoom: 1;
    }
}
