/*
 * base.css — elementi HTML nudi: tipografia, link, focus, scrollbar, stampa.
 *
 * Niente componenti qui dentro: solo il comportamento di default dei tag.
 * Le @font-face di Inter stanno in fonts.css, caricato prima di Bootstrap
 * perché il font deve essere noto quando Bootstrap risolve --bs-font-sans-serif.
 */

body {
    font-family: var(--font-sans);
    font-size: var(--fs-sm);
    line-height: var(--lh-normal);
    background-color: var(--ui-canvas);
    /* Glow blu ELIS in dark (--ui-canvas-glow), nullo in chiaro — vedi tokens.css.
       Fixed così non scorre col contenuto: resta un alone ambientale, non una
       texture che si sposta con la pagina. */
    background-image: var(--ui-canvas-glow);
    background-attachment: fixed;
    color: var(--ui-text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    color: var(--ui-text);
    font-weight: 600;
    line-height: var(--lh-tight);
    letter-spacing: var(--ls-tight);
}

h1, .h1 { font-size: var(--fs-3xl); }
h2, .h2 { font-size: var(--fs-2xl); }
h3, .h3 { font-size: var(--fs-xl); }
h4, .h4 { font-size: var(--fs-lg); }
h5, .h5 { font-size: var(--fs-md); }
h6, .h6 { font-size: var(--fs-sm); }

a {
    /* --ui-accent non supera l'AA per testo piccolo (vedi tokens.css): il
       riposo del link usa la tinta più scura riservata all'hover, mentre
       --ui-accent stesso passa allo stato :hover, che è tra gli usi
       consentiti ("stati attivi"). */
    color: var(--ui-accent-hover);
    text-decoration: none;
}

a:hover {
    color: var(--ui-accent);
    text-decoration: underline;
}

/* .text-muted è usato ovunque nei template al posto di una classe nostra:
   ridefinirlo qui evita di doverli toccare tutti. */
.text-muted {
    color: var(--ui-muted) !important;
}

small, .small {
    font-size: var(--fs-xs);
}

code, kbd, pre, samp, .font-monospace {
    font-family: var(--bs-font-monospace);
    font-size: .92em;
}

/* Le cifre proporzionali di Inter fanno ballare le colonne numeriche e i
   valori KPI a ogni aggiornamento: qui si forzano a larghezza fissa. */
.tabular-nums,
.amount-col,
.kpi-value,
td.text-end,
th.text-end {
    font-variant-numeric: tabular-nums;
}

/* ── Focus ────────────────────────────────────────────────────────────
   Una sola regola per tutta l'applicazione. :focus-visible e non :focus,
   così il contorno appare a chi naviga da tastiera e non a ogni click. */
:focus-visible {
    outline: 2px solid var(--ui-accent);
    outline-offset: 2px;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    border-color: var(--ui-accent);
    box-shadow: 0 0 0 3px var(--ui-focus);
}

.form-control::placeholder {
    color: var(--ui-disabled);
    opacity: 1;
}

::selection {
    background: var(--ui-accent-subtle);
    color: var(--ui-accent-hover);
}

/* ── Scrollbar ────────────────────────────────────────────────────────
   Le tabelle scrollano in orizzontale su schermi stretti: la scrollbar di
   sistema, spessa e bianca, spezza la superficie della card. */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--ui-border-strong) transparent;
}

::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background-color: var(--ui-border-strong);
    border: 2px solid transparent;
    border-radius: var(--r-full);
    background-clip: content-box;
}

::-webkit-scrollbar-thumb:hover {
    background-color: var(--ui-muted);
}

/* ── Motion ───────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
        scroll-behavior: auto !important;
    }
}

/* ── Stampa ───────────────────────────────────────────────────────────
   Le schede azienda finiscono stampate: via la navigazione e i controlli,
   e fondo bianco a prescindere dal tema attivo a schermo. */
@media print {
    :root,
    [data-bs-theme="dark"] {
        --ui-canvas: #FFFFFF;
        --ui-surface: #FFFFFF;
        --ui-surface-2: #FFFFFF;
        --ui-text: #000000;
        --ui-text-2: #333333;
        --ui-muted: #555555;
        --ui-border: #BBBBBB;
    }

    .topbar,
    .subnav,
    .skip-link,
    .navbar,
    .offcanvas,
    .btn,
    .pagination,
    .map-toolbar,
    .no-print {
        display: none !important;
    }

    body {
        background: #fff !important;
    }

    .card {
        box-shadow: none !important;
        break-inside: avoid;
    }

    a[href]::after {
        content: none !important;
    }
}
