/*
 * MinerSheets Global Font System
 * Consistent typography across all Interfaces
 */

/* Global Font Import */
@import url('https://fonts.googleapis.com/css2?family=Work+Sans:wght@300;400;500;600;700;800&display=swap');

/* Global Font Variables - Rosemary Primary */
:root {
    --font-primary: 'Rosemary', 'Work Sans', 'Segoe UI', 'Trebuchet MS', Arial, -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
    --font-mono: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', 'Courier New', monospace;

    /* Font weights */
    --font-light: 300;
    --font-normal: 400;
    --font-medium: 500;
    --font-semibold: 600;
    --font-bold: 700;
    --font-extrabold: 800;

    /* Font sizes - responsive scale */
    --font-xs: 0.75rem;     /* 12px */
    --font-sm: 0.875rem;    /* 14px */
    --font-base: 1rem;      /* 16px */
    --font-lg: 1.125rem;    /* 18px */
    --font-xl: 1.25rem;     /* 20px */
    --font-2xl: 1.5rem;     /* 24px */
    --font-3xl: 1.875rem;   /* 30px */
    --font-4xl: 2.25rem;    /* 36px */
    --font-5xl: 3rem;       /* 48px */

    /* Line heights */
    --leading-tight: 1.25;
    --leading-normal: 1.5;
    --leading-relaxed: 1.625;
}

/* Universal font application - Override any system fonts */
*, *::before, *::after {
    font-family: var(--font-primary) !important;
}

/* Force override for any locally installed fonts */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    font-family: var(--font-primary) !important;
}

/* Base body styling */
body, html {
    font-family: var(--font-primary) !important;
    font-weight: var(--font-normal);
    font-size: var(--font-base);
    line-height: var(--leading-normal);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Headings with consistent hierarchy */
h1, .h1 {
    font-family: var(--font-primary) !important;
    font-weight: var(--font-bold);
    font-size: var(--font-4xl);
    line-height: var(--leading-tight);
}

h2, .h2 {
    font-family: var(--font-primary) !important;
    font-weight: var(--font-semibold);
    font-size: var(--font-3xl);
    line-height: var(--leading-tight);
}

h3, .h3 {
    font-family: var(--font-primary) !important;
    font-weight: var(--font-semibold);
    font-size: var(--font-2xl);
    line-height: var(--leading-normal);
}

h4, .h4 {
    font-family: var(--font-primary) !important;
    font-weight: var(--font-medium);
    font-size: var(--font-xl);
    line-height: var(--leading-normal);
}

h5, .h5 {
    font-family: var(--font-primary) !important;
    font-weight: var(--font-medium);
    font-size: var(--font-lg);
    line-height: var(--leading-normal);
}

h6, .h6 {
    font-family: var(--font-primary) !important;
    font-weight: var(--font-medium);
    font-size: var(--font-base);
    line-height: var(--leading-normal);
}

/* form Elements */
input, textarea, select, button {
    font-family: var(--font-primary) !important;
    font-weight: var(--font-normal);
}

/* Code elements */
code, pre, kbd, samp {
    font-family: var(--font-mono) !important;
}

/* Django admin Override */
.admin {
    font-family: var(--font-primary) !important;
}

.admin *,
.admin input,
.admin select,
.admin textarea,
.admin button,
.admin label,
.admin th,
.admin td {
    font-family: var(--font-primary) !important;
}

/* Django admin Navigation */
#header,
#branding,
#user-tools,
.breadcrumbs,
.module,
.form-row {
    font-family: var(--font-primary) !important;
}

/* Django admin Tables */
.results th,
.results td,
.paginator,
.object-tools {
    font-family: var(--font-primary) !important;
}

/* Login form specific */
.login {
    font-family: var(--font-primary) !important;
}

.login *,
.login input,
.login button,
.login label {
    font-family: var(--font-primary) !important;
}

/* Responsive font scaling */
@media (max-width: 640px) {
    :root {
        --font-xs: 0.7rem;      /* 11px */
        --font-sm: 0.8rem;      /* 13px */
        --font-base: 0.9rem;    /* 14px */
        --font-lg: 1rem;        /* 16px */
        --font-xl: 1.1rem;      /* 18px */
        --font-2xl: 1.3rem;     /* 21px */
        --font-3xl: 1.6rem;     /* 26px */
        --font-4xl: 2rem;       /* 32px */
        --font-5xl: 2.5rem;     /* 40px */
    }
}

/* Print styles */
@media print {
    *, *::before, *::after {
        font-family: var(--font-primary) !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}

/* Utility classes */
.font-primary {
    font-family: var(--font-primary) !important;
}

.font-mono {
    font-family: var(--font-mono) !important;
}

.font-light { font-weight: var(--font-light) !important; }
.font-normal { font-weight: var(--font-normal) !important; }
.font-medium { font-weight: var(--font-medium) !important; }
.font-semibold { font-weight: var(--font-semibold) !important; }
.font-bold { font-weight: var(--font-bold) !important; }
.font-extrabold { font-weight: var(--font-extrabold) !important; }
