/* ============================================================
   GesTask — Base
   Reset di pagina e impostazione delle aree principali del documento.
   ============================================================ */

html,
body {
    height: 100vh;
    min-height: 100vh;
    overflow: hidden;
}

body {
    background-color: var(--p-body-background);
    color: var(--p-text-color);
    font-family: var(--p-font-family);
    font-size: var(--p-font-size);
    line-height: var(--p-line-height);
    max-height: 100vh;
    /* Inter ha varianti alternative per alcune lettere: la `l` con la coda e
       la `1` con la base distinguono cifre e caratteri che nelle tabelle di
       task finiscono spesso vicini. */
    font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
    -webkit-font-smoothing: antialiased;
}

main {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
}

/* La barra superiore è fissa e sta fuori dal flusso: lo spazio sotto va
   riservato a mano, altrimenti la prima riga di ogni pagina ci finisce
   sotto. */
main > .container {
    display: flex;
    flex-direction: column;
    padding: calc(var(--p-header-height) + 1.25rem) 1rem 1.5rem;
}

/* Le pagine a tutta larghezza saltano il contenitore: compensano da sole. */
main > .w-100 {
    padding-top: var(--p-header-height);
}

/* ── Barre di scorrimento ───────────────────────────────────────── */

/* Sottili e nel colore del tema. La barra di sistema, chiara e spessa, era
   la cosa più vistosa di una colonna di bacheca in tema scuro. */
* {
    scrollbar-color: var(--p-surface-300) transparent;
    scrollbar-width: thin;
}

[data-bs-theme='dark'] * {
    scrollbar-color: var(--p-surface-600) transparent;
}

::-webkit-scrollbar { height: 8px; width: 8px; }
::-webkit-scrollbar-track { background: transparent; }

::-webkit-scrollbar-thumb {
    background: var(--p-surface-300);
    border-radius: var(--p-border-radius-full);
}

::-webkit-scrollbar-thumb:hover { background: var(--p-surface-400); }

[data-bs-theme='dark'] ::-webkit-scrollbar-thumb { background: var(--p-surface-600); }
[data-bs-theme='dark'] ::-webkit-scrollbar-thumb:hover { background: var(--p-surface-500); }

/* ── Selezione ──────────────────────────────────────────────────── */

::selection {
    background: color-mix(in srgb, var(--p-primary-color) 25%, transparent);
    color: var(--p-text-emphasis-color);
}

/* ── Messa a fuoco predefinita ──────────────────────────────────── */

/* Ogni elemento raggiungibile da tastiera che non abbia già un anello
   proprio ne riceve uno uguale a quello dei componenti Prime. */
:focus-visible {
    outline: var(--p-focus-ring-width) var(--p-focus-ring-style) var(--p-focus-ring-color);
    outline-offset: var(--p-focus-ring-offset);
}

/* ── Collegamenti ───────────────────────────────────────────────── */

a {
    color: var(--p-primary-color);
    text-decoration: none;
    transition: color var(--p-transition-fast);
}

a:hover { color: var(--p-primary-hover-color); }

/* ── Titoli ─────────────────────────────────────────────────────── */

h1, h2, h3, h4, h5, h6 {
    color: var(--p-text-emphasis-color);
    font-weight: 700;
    letter-spacing: -.02em;
}

hr {
    border-color: var(--p-content-border-color);
    opacity: 1;
}

code, kbd, samp, pre {
    font-family: ui-monospace, 'SF Mono', 'Cascadia Mono', 'Roboto Mono', monospace;
}
