/* Placeholder stylesheet per Azure Static Web App.
   Evita 404/HTML fallback su /styles.css quando referenziato da public/index.html. */

/* ── Stampa ──────────────────────────────────────────────────────────────────
   Serve alle proposte commerciali: la scheda si stampa in PDF dal browser, senza
   una libreria in piu' e senza un template da mantenere.

   LO SFONDO DELL'APP VA SPENTO PER PRIMO
   ThemeContext dipinge lo sfondo con `html::before { position: fixed; inset: 0 }`.
   In stampa un elemento fisso viene ridisegnato su OGNI pagina e copre il
   contenuto: il risultato era un foglio con la sola grafica decorativa. Va tolto
   prima di ogni altra cosa, insieme al colore di fondo.

   POI SI LIBERANO LE ALTEZZE
   Il layout vive dentro contenitori `100vh` con lo scorrimento interno. Su carta
   non esiste un viewport: se non si rilasciano altezza e overflow, si stampa solo
   la prima schermata — o niente. */
@media print {

  /* 1. Via lo sfondo fisso, che altrimenti copre tutto. */
  html::before,
  body::before {
    display: none !important;
    content: none !important;
    background: none !important;
  }

  /* 2. Le altezze si liberano: la pagina cresce quanto serve. */
  /* `html body` e non `body`: ThemeContext dichiara `body { background: transparent
     !important }` e viene iniettato dopo questo foglio, quindi a parita' di peso
     vincerebbe lui. Un selettore piu' specifico chiude la questione. */
  html,
  html body {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }

  /* Ogni contenitore con scorrimento interno diventa alto quanto il suo contenuto:
     senza, quello che sta sotto la piega non arriva mai in stampa. */
  * {
    overflow: visible !important;
    max-height: none !important;
  }

  main,
  .MuiBox-root,
  .MuiContainer-root {
    height: auto !important;
    min-height: 0 !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
    width: 100% !important;
  }

  /* 3. Via quello che su carta non ha senso. `.non-stampare` e' la classe con cui
        i componenti marcano i propri comandi. */
  .non-stampare,
  .MuiDrawer-root,
  .MuiAppBar-root,
  .MuiTabs-root,
  .MuiSpeedDial-root,
  .MuiFab-root,
  header,
  nav {
    display: none !important;
  }

  /* 4. Su carta le ombre diventano aloni grigi e i fondi colorati sprecano inchiostro. */
  .MuiPaper-root,
  .MuiCard-root {
    box-shadow: none !important;
    border: 1px solid #ddd !important;
    background: #fff !important;
  }

  /* Una riga di tabella spezzata fra due fogli si rilegge male. */
  tr,
  .MuiTableRow-root {
    page-break-inside: avoid;
  }
}

/* ── Mappe: niente colori, e seguono il tema ─────────────────────────────────
   Le mappe sono quattro (dashboard negozi, rete affiliati, ricerca annunci,
   holding) e finora ognuna si portava dietro la propria configurazione. Qui non
   si tocca nessuna delle quattro: si filtra il livello dei tile, e la regola vale
   anche per la mappa che qualcuno aggiungera' domani.

   PERCHE' UN FILTRO E NON UN FORNITORE CON LO STILE SCURO
   Le mappe scure pronte (CARTO dark, Mapbox, MapTiler) chiedono tutte una chiave —
   ed e' esattamente da li' che siamo appena usciti. Il filtro non costa niente e
   non dipende da nessuno.

   SOLO `.leaflet-tile-pane`, MAI IL CONTENITORE
   I segnaposto sono SVG colorati e stanno in `.leaflet-marker-pane`: filtrare tutta
   la mappa li spegnerebbe insieme allo sfondo, e sono l'unica cosa che deve restare
   a colori — servono a distinguere i negozi. Anche l'attribuzione resta fuori dal
   filtro, cosi' rimane leggibile come la licenza richiede. */

.leaflet-tile-pane {
  /* Chiaro: via i colori, e un filo di luce in piu' perche' i segnaposto stacchino. */
  filter: grayscale(1) brightness(1.05) contrast(0.92);
}

html.dark-mode .leaflet-tile-pane {
  /* Scuro: `invert` ribalta il foglio — le strade diventano chiare su fondo scuro —
     e la luminosita' abbassata evita che il bianco puro bruci accanto ai riquadri
     dell'interfaccia. */
  filter: grayscale(1) invert(1) brightness(0.9) contrast(1.05);
}

/* Il fondo che si vede mentre i tile arrivano, e ai bordi del mondo: senza, resta
   il grigio chiaro di Leaflet anche in tema scuro, e lampeggia a ogni spostamento. */
.leaflet-container {
  background: #f2f2f2;
}

html.dark-mode .leaflet-container {
  background: #1b1b1b;
}

/* I controlli di Leaflet sono bianchi per contratto: in tema scuro vanno adeguati,
   altrimenti restano due quadretti luminosi in un angolo. */
html.dark-mode .leaflet-control-zoom a,
html.dark-mode .leaflet-control-attribution {
  background: #262626;
  color: #cfcfcf;
  border-color: #3a3a3a;
}

html.dark-mode .leaflet-control-attribution a {
  color: #8ab4f8;
}
