/*
 * Fix&Drive – egységes kijelzőméretezés
 *
 * A böngésző a monitor fizikai méretét nem tudja megbízhatóan lekérdezni,
 * ezért a rendelkezésre álló CSS viewport szélessége és magassága alapján
 * skálázunk. Az operációs rendszer DPI-skálázása már eleve módosítja ezt a
 * viewportot, így azt automatikusan figyelembe vesszük.
 *
 * A zoom a teljes dokumentumra vonatkozik: tartalom, sidebar, header,
 * felugró ablakok és fix pozíciós kezelőszervek együtt méreteződnek.
 */
:root {
    --fd2-display-scale: 100%;
    --fd2-modal-safe-width: calc(100vw - 24px);
    --fd2-modal-safe-height: calc(100vh - 24px);
    --fd2-modal-safe-height: calc(100dvh - 24px);
}

html {
    zoom: var(--fd2-display-scale);
}

/*
 * A viewport mértékegységeket a böngésző a dokumentum zoomja előtt számolja.
 * Emiatt egy 100vh magas modal 120%-os dokumentumzoomnál fizikailag már a
 * képernyő 120%-át foglalná el. A biztonságos méretek ezt kompenzálják.
 */
:where(
    .modal-card,
    .modal-dialog,
    .modal-dialog-lg,
    .fd2-modal-card,
    .confirm-modal-card,
    .draw-modal-card,
    .log-modal-card,
    .complaint-image-modal-card,
    .complaint-text-modal-card,
    .giveaway-modal-card,
    .tow-modal-card,
    .glory-image-modal-card,
    .stats-modal-card,
    .copy-modal-card,
    .password-modal-card,
    .service-card,
    .modal-content,
    .aud-detail-modal,
    .confirm-overlay > .confirm-modal,
    .info-overlay > .info-modal,
    .modal-overlay > .modal,
    .modal-overlay + .modal,
    [role="dialog"]
) {
    box-sizing: border-box !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: var(--fd2-modal-safe-width) !important;
    max-height: var(--fd2-modal-safe-height) !important;
    overflow: auto !important;
    overscroll-behavior: contain;
}

:where(
    .modal,
    .fd2-modal,
    .confirm-modal,
    .draw-modal,
    .log-modal,
    .complaint-image-modal,
    .giveaway-modal,
    .tow-modal,
    .service-modal,
    .glory-image-modal,
    .modal-overlay,
    .confirm-overlay,
    .info-overlay,
    .aud-detail-overlay
) {
    box-sizing: border-box;
    overflow: auto;
    overscroll-behavior: contain;
}

:where(
    .modal-card,
    .modal-dialog,
    .fd2-modal-card,
    .confirm-modal-card,
    .draw-modal-card,
    .log-modal-card,
    .giveaway-modal-card,
    .tow-modal-card,
    .service-card
) > form {
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
}

/*
 * 1600×900 alatt nincs automatikus nagyítás, hogy kisebb laptopokon ne
 * csökkenjen indokolatlanul a hasznos munkaterület.
 *
 * Jellemző értékek:
 *   1600×900: 106%
 *   1920×1000: 110%
 *   2560×1300: 117%
 *   3800×1800 és fölötte: 125% (felső korlát)
 */
@media screen and (min-width: 1600px) and (min-height: 900px) {
    :root {
        --fd2-display-scale: 106%;
        --fd2-modal-safe-width: calc(94.3396vw - 24px);
        --fd2-modal-safe-height: calc(94.3396vh - 24px);
        --fd2-modal-safe-height: calc(94.3396dvh - 24px);
    }
}

@media screen and (min-width: 1920px) and (min-height: 1000px) {
    :root {
        --fd2-display-scale: 110%;
        --fd2-modal-safe-width: calc(90.9091vw - 24px);
        --fd2-modal-safe-height: calc(90.9091vh - 24px);
        --fd2-modal-safe-height: calc(90.9091dvh - 24px);
    }
}

@media screen and (min-width: 2300px) and (min-height: 1100px) {
    :root {
        --fd2-display-scale: 114%;
        --fd2-modal-safe-width: calc(87.7193vw - 24px);
        --fd2-modal-safe-height: calc(87.7193vh - 24px);
        --fd2-modal-safe-height: calc(87.7193dvh - 24px);
    }
}

@media screen and (min-width: 2560px) and (min-height: 1300px) {
    :root {
        --fd2-display-scale: 117%;
        --fd2-modal-safe-width: calc(85.4701vw - 24px);
        --fd2-modal-safe-height: calc(85.4701vh - 24px);
        --fd2-modal-safe-height: calc(85.4701dvh - 24px);
    }
}

@media screen and (min-width: 3000px) and (min-height: 1300px) {
    :root {
        --fd2-display-scale: 120%;
        --fd2-modal-safe-width: calc(83.3333vw - 24px);
        --fd2-modal-safe-height: calc(83.3333vh - 24px);
        --fd2-modal-safe-height: calc(83.3333dvh - 24px);
    }
}

@media screen and (min-width: 3400px) and (min-height: 1400px) {
    :root {
        --fd2-display-scale: 123%;
        --fd2-modal-safe-width: calc(81.3008vw - 24px);
        --fd2-modal-safe-height: calc(81.3008vh - 24px);
        --fd2-modal-safe-height: calc(81.3008dvh - 24px);
    }
}

@media screen and (min-width: 3800px) and (min-height: 1800px) {
    :root {
        --fd2-display-scale: 125%;
        --fd2-modal-safe-width: calc(80vw - 24px);
        --fd2-modal-safe-height: calc(80vh - 24px);
        --fd2-modal-safe-height: calc(80dvh - 24px);
    }
}

/*
 * Alacsony, ultraszéles ablaknál a szélesség önmagában ne kényszerítsen
 * nagyítást, mert a függőleges tartalom túl hamar elfogyna.
 */
@media screen and (min-width: 1600px) and (max-height: 899px) {
    :root {
        --fd2-display-scale: 100%;
    }
}

/* Nyomtatáskor mindig a dokumentum eredeti mérete érvényesüljön. */
@media print {
    :root {
        --fd2-display-scale: 100%;
    }
}
