/*
 * Type scale (a rule of the product line) and the two families (a decision of the product kit).
 *
 * The scale, weights and line heights below are NOT changed per project: they are what
 * core.md §17 fixes for every product of the line. The families are the old kinvoice.app's
 * (project_files/ui/product-kit.md §3): the system UI stack for text and Noto Serif for headings,
 * the same serif the invoices use. The Noto files are self-hosted (nothing is requested from
 * outside the page — Content-Security-Policy; fonts/README.md): three serif families, one WOFF2
 * file per family and weight, each `unicode-range` the file's own charset as fc-query reads it, so
 * the browser fetches a script face only when a glyph of it is on the page. A document in Armenian
 * or Georgian puts its script family first (--font-display-hy, --font-display-ka; the sheet's
 * language class): the same names Dompdf registers for the TTF files (KINV-19). The sans themes
 * (KINV-137) take Noto Sans the same way: three more families, --font-doc-sans{,-hy,-ka}. The latin
 * files carry U+2212 and U+00A0 (core.md §3).
 *
 * The one extra face is the founder's signature in the public footer: Caveat Medium, the file
 * kador.dev itself serves (owner, 23.10.2026; fonts/README.md, licence OFL.txt). It carries
 * the Latin letters only, which is all the name «Denis Kuzmichev» needs.
 */

@font-face {
    font-family: 'Caveat';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../../fonts/Caveat-latin.woff2') format('woff2');
}

/* The document serif (KINV-26): Regular and Bold per script; 600 renders from the 700 file. */
@font-face {
    font-family: 'Noto Serif';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../../fonts/NotoSerif-Regular.woff2') format('woff2');
    unicode-range: U+20-7E, U+A0-17F, U+400-45F, U+490-491, U+2010-2027, U+2030, U+2039-203A, U+2044, U+20A0-20BF,
        U+2116, U+2122, U+2212;
}

@font-face {
    font-family: 'Noto Serif';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../../fonts/NotoSerif-Bold.woff2') format('woff2');
    unicode-range: U+20-7E, U+A0-17F, U+400-45F, U+490-491, U+2010-2027, U+2030, U+2039-203A, U+2044, U+20A0-20BF,
        U+2116, U+2122, U+2212;
}

@font-face {
    font-family: 'Noto Serif Armenian';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../../fonts/NotoSerifArmenian-Regular.woff2') format('woff2');
    unicode-range: U+531-556, U+559-58A, U+58D-58F, U+FB13-FB17;
}

@font-face {
    font-family: 'Noto Serif Armenian';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../../fonts/NotoSerifArmenian-Bold.woff2') format('woff2');
    unicode-range: U+531-556, U+559-58A, U+58D-58F, U+FB13-FB17;
}

@font-face {
    font-family: 'Noto Serif Georgian';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../../fonts/NotoSerifGeorgian-Regular.woff2') format('woff2');
    unicode-range: U+10A0-10C5, U+10C7, U+10CD, U+10D0-10FF, U+1C90-1CBA, U+1CBD-1CBF;
}

@font-face {
    font-family: 'Noto Serif Georgian';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../../fonts/NotoSerifGeorgian-Bold.woff2') format('woff2');
    unicode-range: U+10A0-10C5, U+10C7, U+10CD, U+10D0-10FF, U+1C90-1CBA, U+1CBD-1CBF;
}

/* The document sans of the themes (KINV-137); the ranges are fc-query's of each file, measured. */
@font-face {
    font-family: 'Noto Sans';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../../fonts/NotoSans-Regular.woff2') format('woff2');
    unicode-range: U+20-7E, U+A0-17F, U+400-45F, U+490-491, U+2010-2027, U+2030, U+2039-203A, U+2044, U+20A0-20BF,
        U+2116, U+2122, U+2212;
}

@font-face {
    font-family: 'Noto Sans';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../../fonts/NotoSans-Bold.woff2') format('woff2');
    unicode-range: U+20-7E, U+A0-17F, U+400-45F, U+490-491, U+2010-2027, U+2030, U+2039-203A, U+2044, U+20A0-20BF,
        U+2116, U+2122, U+2212;
}

@font-face {
    font-family: 'Noto Sans Armenian';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../../fonts/NotoSansArmenian-Regular.woff2') format('woff2');
    unicode-range: U+531-556, U+559-58A, U+58D-58F, U+FB13-FB17;
}

@font-face {
    font-family: 'Noto Sans Armenian';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../../fonts/NotoSansArmenian-Bold.woff2') format('woff2');
    unicode-range: U+531-556, U+559-58A, U+58D-58F, U+FB13-FB17;
}

@font-face {
    font-family: 'Noto Sans Georgian';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../../fonts/NotoSansGeorgian-Regular.woff2') format('woff2');
    unicode-range: U+10A0-10C5, U+10C7, U+10CD, U+10D0-10FF, U+1C90-1CBA, U+1CBD-1CBF;
}

@font-face {
    font-family: 'Noto Sans Georgian';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../../fonts/NotoSansGeorgian-Bold.woff2') format('woff2');
    unicode-range: U+10A0-10C5, U+10C7, U+10CD, U+10D0-10FF, U+1C90-1CBA, U+1CBD-1CBF;
}

:root {
    --font-ui: system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
    --font-display: 'Noto Serif', Georgia, 'Times New Roman', serif;
    /* A document in Armenian or Georgian: its script face first, the Latin serif after (KINV-26). */
    --font-display-hy: 'Noto Serif Armenian', var(--font-display);
    --font-display-ka: 'Noto Serif Georgian', var(--font-display);
    /* The sans themes of the document (KINV-137), the same way. */
    --font-doc-sans: 'Noto Sans', Arial, sans-serif;
    --font-doc-sans-hy: 'Noto Sans Armenian', var(--font-doc-sans);
    --font-doc-sans-ka: 'Noto Sans Georgian', var(--font-doc-sans);
    --font-signature: 'Caveat', 'Brush Script MT', 'Snell Roundhand', cursive;

    /* Nothing below 15px exists in the system. */
    /* The one exception: the inputs of the items line (owner, 23.10.2026, product-kit.md §7). */
    --fs-dense: 14px;
    --fs-caption: 15px;
    --fs-body: 16px;
    --fs-text: 17px;
    --fs-card: 18px;
    --fs-section: 20px;
    --fs-widget: 22px;
    --fs-h2: 26px;
    --fs-value: 28px;
    --fs-page: 36px;
    /* The hero of the public home: the old kinvoice.app draws it at 48px, above the line's scale
       (product-kit.md §3 and §7; D-NNN by the scribe). Used by the hero only. */
    --fs-hero: 48px;
    /* The handwritten signature of the footer: kador.dev draws it at 28px (owner, 24.10.2026). */
    --fs-signature: 28px;

    --fw-regular: 400;
    --fw-medium: 500;
    --fw-semibold: 600;
    --fw-bold: 700;
    /* The first letter of the wordmark, as the live kinvoice.app draws it (owner, 23.10.2026). */
    --fw-heavy: 800;

    --lh-text: 1.65;
    --lh-tight: 1.25;
    --lh-flat: 1;

    /* Figures are tabular everywhere: columns of numbers must line up. */
    --numeric: tabular-nums;
}
