/* --- Inter (self-hosted) --- */
@font-face {
  font-family: "Inter";
  src: url("../fonts/inter/Inter-Regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("../fonts/inter/Inter-Medium.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("../fonts/inter/Inter-SemiBold.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
}

/* Override globale Bootstrap (senza ricompilare) */
:root{
  --bs-body-font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto,
                         "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  --bs-body-font-weight: 400;
}

/* Dettagli per un look "tecnico ma non troppo" */
body{
  font-variant-numeric: tabular-nums;      /* tabelle/cifre allineate */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Titoli leggermente più incisivi */
h1,h2,h3,h4,h5,h6{ font-weight: 600; letter-spacing: .2px; }

/* Bottoni e navbar coerenti col nuovo font */
.navbar, .btn { font-weight: 500; }

/* Bottoni extra-small (solo dove servono) */
.btn.btn-xs {
  font-size: .75rem;
  padding: .15rem .45rem;
  line-height: 1.1;
  border-radius: .35rem;
}

/* (opzionale) tabelle e form un filo più “data-oriented” */
.table, .form-control, .form-select { letter-spacing: .1px; }

/* Mantieni il monospazio dove serve */
code, pre, kbd, samp {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}


.list-group-item { border: 0; border-radius: 0; }
.min-vh-100 { min-height: 100vh; }

/* Storico lead: separatore leggero tra item */
.luna-lead-history-divider {
  border-top: 1px solid rgba(0, 0, 0, .08);
  margin: .35rem 0;
}

/* Dimensioni consistenti del logo */
.brand-logo { height: 32px; width: auto; display: block; }
.brand-logo-login { height: 32px; width: auto; }

/* Su schermi piccoli, riduci ancora un filo la navbar brand se serve */
@media (max-width: 576px) {
  .brand-logo { height: 28px; }
}

/* —— Forms più compatti (globale) —— */
form .form-control,
form .form-select {
  font-size: .92rem;            /* -8% circa */
  padding: .35rem .5rem;        /* -20% padding verticale */
  line-height: 1.2;
  border-radius: .35rem;
  /* evita altezze troppo alte se Bootstrap cambia paddings */
  min-height: calc(1.2em + .7rem + 2px);
}

form .form-control::placeholder { font-size: .9rem; opacity: .75; }

/* Label e help text più piccoli e ravvicinati */
form .form-label {
  font-size: .92rem;
  margin-bottom: .25rem;
}
form .form-text {
  font-size: .85rem;
  margin-top: .25rem;
}

/* Riduci lo spacing verticale standard dei gruppi */
form .mb-3 { margin-bottom: .6rem !important; }

/* Compatta le griglie Bootstrap usate nei form (g-3 ecc.) */
form .row.g-3 { --bs-gutter-x: .75rem; --bs-gutter-y: .5rem; }
form .row.g-2 { --bs-gutter-x: .5rem;  --bs-gutter-y: .4rem; }

/* Bottoni dentro i form un filo più piccoli, senza toccare quelli nelle liste */
form .btn {
  font-size: .94rem;
  padding: .4rem .75rem;
  border-radius: .4rem;
}

/* Checkbox/Radio più compatti */
form .form-check { margin-bottom: .35rem; }
form .form-check-input {
  width: 1rem; height: 1rem; margin-top: .2rem;
}
form .form-check-label { font-size: .92rem; }

/* Input group più asciutti */
form .input-group-text {
  padding: .35rem .5rem;
  font-size: .92rem;
  border-radius: .35rem;
}

/* Select multiple più dense */
form select[multiple].form-select {
  padding-top: .25rem; padding-bottom: .25rem;
}

/* Textarea con righe più strette */
form textarea.form-control {
  line-height: 1.25;
  padding-top: .35rem; padding-bottom: .35rem;
}

/* (opz) campi in stato focus: bordo meno invadente */
form .form-control:focus,
form .form-select:focus {
  box-shadow: 0 0 0 .15rem rgba(13,110,253,.15);
}

/* —— Config —— */
:root{
  --sidebar-w: 260px;
  --header-h: 56px;           /* se navbar fixed-top: altezza header */
  --sidebar-link: #2b2b2b;    /* link “nero chiaro” */
  --sidebar-link-hover: #000;
}

/* Mai overflow orizzontale */
html, body { overflow-x: hidden; }

/* Sidebar base */
.app-sidebar{ width: var(--sidebar-w); }

/* Desktop: sidebar fissa + contenuto clamped a 100vw - sidebar */
@media (min-width: 992px){
  .app-sidebar{
    position: fixed;
    left: 0; top: 0; bottom: 0;        /* se navbar NON è fixed-top */
    overflow-y: auto;
  }
  /* Se navbar è fixed-top, aggiungi class="header-fixed" al <body> */
  body.header-fixed .app-sidebar{ top: var(--header-h); }

  /* Il PRIMO elemento dopo la sidebar è il contenuto principale */
  .app-sidebar + *{
    margin-left: var(--sidebar-w);
    width: calc(100vw - var(--sidebar-w));
    max-width: calc(100vw - var(--sidebar-w));
    box-sizing: border-box;
    overflow-x: hidden; /* evita scroll orizzontale */
  }
}

/* Mobile: sidebar in flusso, contenuto piena larghezza */
@media (max-width: 991.98px){
  .app-sidebar{ position: static; width: 100%; }
  .app-sidebar + *{ margin-left: 0; width: 100%; max-width: 100%; }
}

/* Link sidebar: stile come “prima” (nero chiaro) */
.app-sidebar .nav-link{
  padding: .55rem .75rem;
  border-radius: .5rem;
  color: var(--sidebar-link);
  font-size:.8rem;
}
.app-sidebar .nav-link:hover{
  background: rgba(0,0,0,.04);
  color: var(--sidebar-link-hover);
}

/* Icone allineate */
.app-sidebar .nav-link .fa-solid{
  width: 1.25rem; text-align: center; font-size: 1.05rem;
}
.app-sidebar .text-uppercase.small{ letter-spacing: .06em; }


/* ——— Layout sidebar fissa a sinistra (desktop) ——— */
:root{
  --sidebar-w: 260px;
  --header-h: 56px;           /* altezza navbar se fissa; regola se diversa */
  --sidebar-link: #2b2b2b;    /* “nero chiaro” */
  --sidebar-link-hover: #000; /* hover più scuro */
}

/* Base */
.app-sidebar{
  width: var(--sidebar-w);
}

/* Desktop: sidebar fissa a sinistra, contenuto spostato a destra */
@media (min-width: 992px){
  .app-sidebar{
    position: fixed;
    left: 0;
    bottom: 0;
    top: 0;                    /* se navbar NON è fixed-top */
    overflow-y: auto;
  }
  /* Se la tua navbar è fixed-top, aggiungi la classe .header-fixed al <body> (vedi sotto)
     così diamo l’offset corretto */
  body.header-fixed .app-sidebar{
    top: var(--header-h);
  }

  /* Sposta il primo elemento subito dopo la sidebar (tipicamente la tua <div class="container-fluid ...">) */
  .app-sidebar + *{
    margin-left: var(--sidebar-w);
  }
}

/* Mobile: sidebar torna “a blocco” sopra al contenuto */
@media (max-width: 991.98px){
  .app-sidebar{
    position: static;
    width: 100%;
  }
  .app-sidebar + *{
    margin-left: 0;
  }
}

/* ——— Stile link sidebar: “nero chiaro” come prima ——— */
.app-sidebar .nav-link{
  padding: .55rem .75rem;
  border-radius: .5rem;
  color: var(--sidebar-link);
}
.app-sidebar .nav-link:hover{
  background: rgba(0,0,0,.04);
  color: var(--sidebar-link-hover);
}

/* Icone: larghezza fissa per allineare il testo */
.app-sidebar .nav-link .fa-solid{
  width: 1.25rem;
  text-align: center;
  font-size: 1.05rem;
}

/* Titoletti sezione */
.app-sidebar .text-uppercase.small{
  letter-spacing: .06em;
}

/* Modale console: ~90% viewport width */ 
#consoleModal .modal-dialog {
  max-width: 90vw;   /* larghezza massima */
  width: 90vw;       /* forza la larghezza su viewport */
}

/* Drawer (offcanvas) console: ~50% viewport width */
#consoleDrawer {
  --bs-offcanvas-width: 50vw; /* Bootstrap 5 usa questa custom property */
}

/* Responsive fallback su schermi piccoli */
@media (max-width: 992px) {
  #consoleModal .modal-dialog {
    max-width: 96vw;
    width: 96vw;
  }
  #consoleDrawer {
    --bs-offcanvas-width: 100vw; /* su mobile il drawer prende tutta la larghezza */
  }
}

/* ——— Typeahead (comuni/province) ———
   Bootstrap 5 offcanvas/modal hanno z-index superiore alle dropdown (1000).
   Alziamo il menu per renderlo visibile dentro drawer/modali. */
.dropdown-menu.typeahead {
  z-index: 1080;
  max-height: 260px;
  overflow-y: auto;
}

.offcanvas .dropdown-menu.typeahead,
.modal .dropdown-menu.typeahead {
  z-index: 1080;
}


/* ——— Font leggermente più piccolo ovunque ——— */
/* Usa la variabile Bootstrap + fallback diretto sul body */
:root { --bs-body-font-size: .95rem; }   /* ~ -5% rispetto a 1rem */
body  { font-size: var(--bs-body-font-size); }

/* Titoli un filo ridotti ma ancora presenti */
h1 { font-size: 1.95rem; }
h2 { font-size: 1.6rem; }
h3 { font-size: 1.35rem; }

/* Navbar e link di navigazione coerenti */
.navbar, .navbar .nav-link { font-size: .95rem; }

/* Spaziature icone */
.i-left  { margin-right: .5rem; }
.i-right { margin-left:  .5rem; }

/* Fallback per Bootstrap che non definisce --bs-orange-rgb/--bs-purple-rgb */
:root {
  --bs-orange-rgb: var(--bs-warning-rgb);
  --bs-purple-rgb: var(--bs-primary-rgb);
}

/* Badge colors aggiuntivi (riusano variabili Bootstrap) */
.bg-orange{
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-orange-rgb), var(--bs-bg-opacity)) !important;
  color: var(--bs-white) !important;
}
.bg-purple{
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-purple-rgb), var(--bs-bg-opacity)) !important;
  color: var(--bs-white) !important;
}

/* Mantieni la leggibilità su schermi piccoli */
@media (max-width: 576px){
  :root { --bs-body-font-size: 1rem; }   /* torna alla dimensione standard su mobile */
}

