/*
 * ---------------------------------------------------------------------------
 * Typography — Manrope, application-wide.
 * ---------------------------------------------------------------------------
 * This app is two UIs sharing one <head>: the Tailwind redesign, whose
 * preflight sets the face on `html`, and ~660 Bootstrap 3 / AdminLTE screens,
 * where AdminLTE's own `body{font-family:'Source Sans Pro',...}` rule in
 * vendor.css would otherwise win by coming later in the cascade. Setting
 * fontFamily.sans in tailwind.config.js therefore only reaches half the app;
 * this file reaches the other half.
 *
 * It is linked LAST in layouts/partials/css.blade.php, after vendor.css,
 * rtl.css and app.css, so it is the final word on which face renders.
 *
 * Arabic and Hebrew: Manrope has no glyphs for either, so those codepoints
 * fall through the stack on their own to Conv_GESSTwoLight (declared by
 * rtl.css, loaded for ar/he) and then to the system face. That is why the
 * Arabic faces sit at the tail of --font-sans rather than in a separate
 * [dir=rtl] rule -- one stack, no specificity race with rtl.css, and an
 * Arabic page still renders its Latin runs (invoice numbers, product codes,
 * totals) in Manrope instead of dropping the whole page to Tahoma.
 *
 * The woff2 files are self-hosted, not hotlinked: a POS is routinely run on a
 * shop LAN with no reliable internet, and a swap-to-fallback mid-shift would
 * reflow every price column. Six subsets, one variable file each covering
 * weights 200-800; a browser downloads only the ranges the page actually
 * uses (latin alone is 24 KB).
 *
 * After editing this file, bump `asset_version` in config/constants.php.
 */

/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(../fonts/manrope/manrope-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(../fonts/manrope/manrope-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(../fonts/manrope/manrope-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(../fonts/manrope/manrope-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(../fonts/manrope/manrope-latin-ext.woff2) format('woff2');
  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;
}

/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(../fonts/manrope/manrope-latin.woff2) format('woff2');
  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;
}

:root {
    /*
     * One stack for the whole application. Manrope covers Latin, Latin-Ext,
     * Greek, Cyrillic and Vietnamese -- every locale in lang/ that a Latin
     * face can serve. The two Arabic faces and the system stack behind them
     * catch everything Manrope cannot draw.
     */
    --font-sans: 'Manrope', Conv_GESSTwoLight, 'Droid Arabic Kufi',
        ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto,
        'Helvetica Neue', Arial, sans-serif;
}

/*
 * `html, body` covers everything that inherits. The rest of this list is the
 * set of legacy selectors that set a face of their own and so would not
 * inherit: AdminLTE's chrome, Bootstrap's components, and the form controls
 * (browsers give those a UA font rather than inheriting one).
 */
html,
body,
.wrapper,
.content-wrapper,
.main-header,
.main-header .logo,
.main-header .navbar,
.main-sidebar,
.sidebar-menu,
.main-footer,
.box,
.box-title,
.modal,
.modal-title,
.popover,
.popover-title,
.tooltip,
.dropdown-menu,
.nav-tabs,
.pagination,
.label,
.btn,
.form-control,
.input-group-addon,
.help-block,
.control-label,
button,
input,
optgroup,
select,
textarea,
table,
.table,
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--font-sans);
}

/* Third-party widgets that build their own DOM at runtime. */
.select2-container,
.select2-container .select2-selection__rendered,
.select2-dropdown,
.dataTables_wrapper,
.daterangepicker,
.bootstrap-datetimepicker-widget,
.toast,
.ui-autocomplete {
    font-family: var(--font-sans);
}

/*
 * Code keeps a monospace face -- the stack above must not swallow it.
 */
code, kbd, pre, samp {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas,
        'Liberation Mono', 'Courier New', monospace;
}

/*
 * Manrope's digits are proportional by default -- its `1` is 36% narrower
 * than its `0`. Without `tnum` a totals column never lines up on the decimal
 * and the figures jitter every time a row is re-rendered. Switch tabular
 * figures on wherever the app prints an amount, a quantity or a count.
 *
 * `.money` already declares this in css.blade.php; the selectors below are
 * the legacy equivalents that predate it.
 */
td.money, th.money,
.display_currency,
.total_quantity, .total_subtotal, .total_discount, .total_tax,
.final_total_text, .price_inc_tax, .quantity, .unit_price,
input[type='number'],
.dataTables_wrapper td.text-right,
.table td.text-right, .table th.text-right {
    font-variant-numeric: tabular-nums lining-nums;
    font-feature-settings: 'tnum' 1, 'lnum' 1;   /* older WebKit */
}
