/* ═══════════════════════════════════════════════════════════════════════════
   SIT StudioGIS — stile del portale.

   Tutto cio' che l'ente puo' personalizzare passa dalle variabili --sit-*,
   scritte nel layout a partire dalle impostazioni di /admin/interfaccia.
   Nessun build step: si cambia il colore, si ricarica la pagina.
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
    --sit-primary: #1d4ed8;
    --sit-primary-dark: #1739ad;
    --sit-primary-soft: rgba(29, 78, 216, .12);
    --sit-radius: 8px;
    --sit-spacing: .75rem;
    --sit-font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --sit-header-height: 64px;
}

/* Bootstrap segue il colore dell'ente senza ricompilare il tema */
:root {
    --bs-primary: var(--sit-primary);
    --bs-primary-rgb: 29, 78, 216;
    --bs-link-color: var(--sit-primary);
    --bs-link-hover-color: var(--sit-primary-dark);
    --bs-border-radius: var(--sit-radius);
}

.btn-primary {
    --bs-btn-bg: var(--sit-primary);
    --bs-btn-border-color: var(--sit-primary);
    --bs-btn-hover-bg: var(--sit-primary-dark);
    --bs-btn-hover-border-color: var(--sit-primary-dark);
    --bs-btn-active-bg: var(--sit-primary-dark);
}

.btn-outline-primary { --bs-btn-color: var(--sit-primary); --bs-btn-border-color: var(--sit-primary); --bs-btn-hover-bg: var(--sit-primary); }
.text-primary { color: var(--sit-primary) !important; }
.bg-primary  { background-color: var(--sit-primary) !important; }

body.sit-body { font-family: var(--sit-font); min-height: 100vh; display: flex; flex-direction: column; }
.sit-main { flex: 1; }

/* ── Intestazione ───────────────────────────────────────────────────────── */

.sit-header { background: var(--sit-primary); color: #fff; }
.sit-header-inner {
    max-width: 1320px; margin: 0 auto; padding: 0 1rem;
    height: var(--sit-header-height);
    display: flex; align-items: center; gap: 1.5rem;
}
.sit-brand { display: flex; align-items: center; gap: .75rem; color: inherit; text-decoration: none; }
.sit-brand i { font-size: 1.6rem; }
.sit-brand-text { display: flex; flex-direction: column; line-height: 1.15; }
.sit-brand-text small { opacity: .8; font-size: .75rem; }
.sit-header-nav { margin-left: auto; display: flex; align-items: center; gap: 1rem; }
.sit-header-nav a { color: #fff; text-decoration: none; font-size: .925rem; }
.sit-header-nav a:hover { text-decoration: underline; }

/* ── Piè di pagina ──────────────────────────────────────────────────────── */

.sit-footer { border-top: 1px solid var(--bs-border-color); margin-top: 3rem; background: var(--bs-tertiary-bg); }
.sit-footer-inner { max-width: 1320px; margin: 0 auto; padding: 1.25rem 1rem; }
.sit-disclaimer { margin-top: .5rem; font-style: italic; }

/* ── Schede del catalogo ────────────────────────────────────────────────── */

.sit-card { border-radius: var(--sit-radius); overflow: hidden; transition: box-shadow .15s, transform .15s; color: inherit; }
.sit-card:hover { box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.12); transform: translateY(-2px); }
.sit-card-thumb {
    height: 130px; background: var(--sit-primary-soft) center/cover no-repeat;
    display: flex; align-items: center; justify-content: center;
    color: var(--sit-primary); font-size: 2.5rem;
}

/* ── Backoffice ─────────────────────────────────────────────────────────── */

.sit-admin-shell { display: flex; min-height: 100vh; }
.sit-sidebar {
    width: 250px; flex: 0 0 250px; background: var(--bs-body-bg);
    border-right: 1px solid var(--bs-border-color);
    display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh;
}
.sit-sidebar-brand {
    display: flex; align-items: center; gap: .6rem; padding: 1rem;
    font-weight: 600; text-decoration: none; color: inherit;
    border-bottom: 1px solid var(--bs-border-color);
}
.sit-sidebar-nav { flex: 1; overflow-y: auto; padding: .5rem 0; }
.sit-sidebar-nav a {
    display: flex; align-items: center; gap: .6rem;
    padding: .45rem 1rem; color: var(--bs-body-color);
    text-decoration: none; font-size: .9rem;
}
.sit-sidebar-nav a:hover { background: var(--sit-primary-soft); }
.sit-sidebar-nav a.active { background: var(--sit-primary-soft); color: var(--sit-primary); font-weight: 600; box-shadow: inset 3px 0 0 var(--sit-primary); }
.sit-nav-section { padding: .85rem 1rem .25rem; font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); }
.sit-sidebar-footer { display: flex; align-items: center; gap: .5rem; padding: .75rem 1rem; border-top: 1px solid var(--bs-border-color); font-size: .85rem; }
.sit-admin-content { flex: 1; min-width: 0; background: var(--bs-tertiary-bg); }

.sit-notifiche { position: fixed; top: 1rem; right: 1rem; z-index: 1080; width: 22rem; max-width: 90vw; }

.sit-stat { color: inherit; }
.sit-stat i { font-size: 1.4rem; color: var(--sit-primary); }
.sit-stat-value { font-size: 1.9rem; font-weight: 600; line-height: 1.1; }
.sit-stat-label { font-size: .8rem; color: var(--bs-secondary-color); }

/* ── Anteprima della personalizzazione GUI ──────────────────────────────── */

.sit-preview { border: 1px solid var(--bs-border-color); border-radius: var(--r, 8px); overflow: hidden; }
.sit-preview-header { background: var(--p); color: #fff; padding: .75rem; display: flex; align-items: center; gap: .6rem; }
.sit-preview-body { padding: .75rem; display: grid; gap: .5rem; background: var(--bs-body-bg); }
.sit-preview-card { height: 2.5rem; border-radius: var(--r, 8px); background: var(--bs-tertiary-bg); }
.sit-preview-btn { border: 0; border-radius: var(--r, 8px); background: var(--p); color: #fff; padding: .4rem .9rem; font-size: .85rem; justify-self: start; }
