/* Stili della dashboard di monitoraggio Elcos (estratti da see.php).
   Lo stile del SINOTTICO resta in inc/sinottico-css.php (CSS generato da PHP). */

  :root{
    --primary:#111111; --primary-active:#242424;
    --ink:#111111; --body:#374151; --body-strong:#1f2937;
    --muted:#6b7280; --muted-soft:#898989;
    --hairline:#e5e7eb; --hairline-soft:#f3f4f6;
    --canvas:#ffffff; --surface-soft:#f8f9fa; --surface-card:#f5f5f5; --surface-strong:#e5e7eb;
    --dark:#101010; --dark-elevated:#1a1a1a;
    --on-dark:#ffffff; --on-dark-soft:#a1a1aa;
    --accent:#3b82f6;
    --ok:#10b981; --warn:#f59e0b; --bad:#ef4444;
    --display:"Cal Sans","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
    --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
    --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
    --shadow-sm:0 1px 2px rgba(0,0,0,.05);
    --shadow-md:0 4px 12px rgba(0,0,0,.08);
  }
  *{box-sizing:border-box}
  body{margin:0;font-family:var(--sans);font-size:15px;line-height:1.5;
       background:var(--canvas);color:var(--body);-webkit-font-smoothing:antialiased}
  a{color:inherit;text-decoration:none}
  h1,h2,h3{color:var(--ink)}

  /* Top nav */
  .nav{background:var(--canvas);border-bottom:1px solid var(--hairline);
       height:64px;display:flex;align-items:center;gap:14px;padding:0 28px;
       position:sticky;top:0;z-index:20}
  .brand{display:flex;align-items:center;gap:9px;font-family:var(--display);font-size:20px;
         font-weight:600;letter-spacing:-.5px;color:var(--ink)}
  .brand .mark{width:22px;height:22px;border-radius:50%;background:var(--ink);flex:none;
               display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700}
  .nav .sub{color:var(--muted);font-size:14px;font-weight:500;white-space:nowrap}
  .nav .right{margin-left:auto;display:flex;align-items:center;gap:14px}
  .clock{font-family:var(--mono);font-size:12px;color:var(--muted)}
  .refresh-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;
               border:1px solid var(--hairline);border-radius:8px;background:var(--canvas);
               color:var(--muted);cursor:pointer;padding:0;transition:color .15s,border-color .15s,background .15s}
  .refresh-btn:hover{background:var(--surface-soft);color:var(--ink)}
  .refresh-btn.has-updates{color:#10b981;border-color:#10b981;background:rgba(16,185,129,.10)}
  .refresh-btn.has-updates:hover{background:rgba(16,185,129,.18)}
  .refresh-btn.loading{pointer-events:none;opacity:.7}
  .refresh-btn.loading svg{animation:spin .8s linear infinite}
  @keyframes spin{to{transform:rotate(360deg)}}
  .btn{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 18px;
       border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;border:1px solid transparent;
       white-space:nowrap}
  .btn-primary{background:var(--primary);color:var(--on-primary,#fff)}
  .btn-primary:hover{background:var(--primary-active)}
  .btn-secondary{background:var(--canvas);border-color:var(--hairline);color:var(--ink)}
  .btn-secondary:hover{background:var(--surface-soft)}

  /* Nav responsive: sotto i 1100px spariscono orologio e sottotitolo, sotto i 980px
     la nav non è più sticky (i controlli vanno a capo); sotto i 760px controlli compatti. */
  @media(max-width:1100px){
    .clock{display:none}
    .nav .sub{display:none}
  }
  @media(max-width:980px){
    .nav{position:static;height:auto;min-height:56px;flex-wrap:wrap;
         padding:10px 16px;gap:8px 10px}
    .nav .right{margin-left:auto;flex-wrap:wrap;justify-content:flex-end;gap:8px}
  }
  @media(max-width:760px){
    .nav .btn{height:34px;padding:0 12px;font-size:13px}
    .refresh-btn{width:30px;height:30px}
    .user-chip{max-width:140px;padding:5px 10px;font-size:12px}
  }

  .wrap{max-width:1200px;margin:0 auto;padding:36px 28px 64px}
  @media(max-width:980px){.wrap{padding:28px 16px 56px}}

  /* Page heading */
  .crumb{font-size:14px;color:var(--muted);font-weight:500;margin-bottom:16px}
  .crumb a:hover{color:var(--ink)}
  .display{font-family:var(--display);font-weight:600;line-height:1.1;color:var(--ink);margin:0}
  .display-lg{font-size:44px;letter-spacing:-1.5px}
  .display-md{font-size:34px;letter-spacing:-1px}
  .lead-code{font-family:var(--mono);font-size:13px;color:var(--muted);margin-top:10px;word-break:break-all}

  /* KPI cards */
  .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin:28px 0}
  .kpi{background:var(--canvas);border:1px solid var(--hairline);border-radius:12px;padding:20px;box-shadow:var(--shadow-sm)}
  .kpi .v{font-family:var(--display);font-size:32px;font-weight:600;line-height:1;color:var(--ink);letter-spacing:-1px}
  .kpi .v.sm{font-size:20px;letter-spacing:-.3px;padding-top:6px}
  .kpi .k{font-size:11px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;
          color:var(--muted-soft);margin-top:12px}

  /* Menù sezioni (vista dettaglio): pillole ancorate alle sezioni della pagina.
     Sopra il menù, durante lo scroll, compare una righetta col nome del GE. */
  html{scroll-behavior:smooth}
  .sec-nav-wrap{position:sticky;top:64px;z-index:15;background:var(--canvas);
                border:1px solid var(--hairline);border-radius:12px;margin:0 0 24px;
                box-shadow:var(--shadow-sm)}
  .sec-nav-dev{display:none;padding:7px 16px 6px;font-size:12px;font-weight:600;color:var(--muted);
               border-bottom:1px solid var(--hairline-soft);
               white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sec-nav-dev .mono{font-family:var(--mono);font-weight:500;color:var(--muted-soft)}
  .sec-nav-wrap.scrolled .sec-nav-dev{display:block}
  .sec-nav{display:flex;gap:8px;overflow-x:auto;padding:8px;scrollbar-width:none}
  .sec-nav::-webkit-scrollbar{display:none}
  .sec-nav a{flex:none;padding:7px 14px;border-radius:8px;font-size:13px;font-weight:600;
             color:var(--muted);white-space:nowrap;transition:background .15s,color .15s}
  .sec-nav a:hover{background:var(--surface-soft);color:var(--ink)}
  .sec-nav a.active{background:var(--primary);color:#fff}
  [id^="sec-"]{scroll-margin-top:152px}
  /* Sotto i 980px la nav non è sticky: le pillole si attaccano in cima, a tutta larghezza */
  @media(max-width:980px){
    .sec-nav-wrap{top:0;margin:0 -16px 24px;border-radius:0;border-left:none;border-right:none}
    [id^="sec-"]{scroll-margin-top:100px}
  }

  /* Panels */
  .panel{background:var(--canvas);border:1px solid var(--hairline);border-radius:12px;
         padding:28px;margin-bottom:24px;box-shadow:var(--shadow-sm)}
  .panel.soft{background:var(--surface-card);border-color:transparent;box-shadow:none}
  .panel-h{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
  .panel-h h2{font-family:var(--display);font-size:22px;font-weight:600;margin:0;letter-spacing:-.5px}
  .panel-h .count{color:var(--muted-soft);font-weight:500;font-size:15px;font-family:var(--sans)}

  .cols{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;align-items:start}
  @media(max-width:880px){.cols{grid-template-columns:1fr}}
  .cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}
  @media(max-width:980px){.cols3{grid-template-columns:1fr 1fr}}
  @media(max-width:680px){.cols3{grid-template-columns:1fr}}

  /* Griglia voci dentro i blocchi a tutta larghezza (Dati / Allarmi / Stati) */
  .itemgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:0 32px}
  .item{display:flex;align-items:center;gap:12px;padding:10px 2px;
        border-bottom:1px solid var(--hairline-soft);font-size:14px;min-width:0}
  .item .sig{flex:none}
  .item .desc{flex:1;min-width:0;color:var(--body-strong)}
  .item .ival{margin-left:auto;font-family:var(--mono);font-size:13px;
              white-space:nowrap;font-variant-numeric:tabular-nums}
  /* riga allarme attiva: sfondo rosso ben visibile + accento a sinistra */
  .item.on{background:rgba(239,68,68,.22);box-shadow:inset 4px 0 0 #c52f2f;border-radius:6px}
  .item.on .desc{color:#8c1d18;font-weight:600}
  .item.on .sig{background:#fff}
  .blockmax{max-height:560px;overflow:auto}

  /* header collassabile + controlli a destra */
  .panel-h.collapsible{cursor:pointer;user-select:none}
  .panel-h .right{margin-left:auto;display:flex;align-items:center;gap:12px}
  .panel-h .chev{color:var(--muted-soft);transition:transform .15s;font-size:13px}
  .panel.collapsed .panel-h .chev{transform:rotate(-90deg)}
  .panel.collapsed > :not(.panel-h){display:none}

  /* Tables */
  table{width:100%;border-collapse:collapse;font-size:14px}
  th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--hairline-soft);vertical-align:top}
  th{color:var(--muted-soft);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.6px}
  tbody tr:hover{background:var(--surface-soft)}
  tr:last-child td{border-bottom:none}
  tr.fired td{background:rgba(239,68,68,.10)}
  tr.fired:hover td{background:rgba(239,68,68,.16)}
  .num{font-variant-numeric:tabular-nums;text-align:right;font-family:var(--mono);font-size:13px}
  .mono{font-family:var(--mono);font-size:13px}
  .sig{font-family:var(--mono);font-size:12px;font-weight:500;background:var(--surface-card);
       padding:2px 7px;border-radius:6px;color:var(--body-strong)}

  /* Key/value */
  .kv{display:grid;grid-template-columns:auto 1fr;gap:12px 20px;font-size:14px}
  .kv.wide{grid-template-columns:auto 1fr auto 1fr;gap:12px 28px}
  @media(max-width:760px){.kv.wide{grid-template-columns:auto 1fr}}
  .kv dt{color:var(--muted)}
  .kv dd{margin:0;font-weight:500;color:var(--body-strong)}
  .alarm-cnt{font-size:13px;font-weight:500}

  /* Badges / pills */
  .badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;
         padding:4px 11px;border-radius:9999px;background:var(--surface-card);color:var(--body-strong);white-space:nowrap}
  .badge.ok{background:rgba(16,185,129,.12);color:#0a7a57}
  .badge.warn{background:rgba(245,158,11,.14);color:#b06f00}
  .badge.bad{background:rgba(239,68,68,.12);color:#c52f2f}
  .badge.muted{background:var(--surface-card);color:var(--muted)}
  .badge.state{background:rgba(59,130,246,.14);color:#2563eb}
  .dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--muted-soft)}
  .dot.ok{background:var(--ok)} .dot.warn{background:var(--warn)} .dot.bad{background:var(--bad)}
  .ok{color:#0a7a57}.warn{color:#b06f00}.bad{color:#c52f2f}.muted{color:var(--muted)}.state{color:#2563eb}
  .pill{font-size:11px;font-weight:600;padding:2px 9px;border-radius:6px;text-transform:uppercase;letter-spacing:.5px}
  .pill.sent{background:rgba(16,185,129,.14);color:#0a7a57}
  .pill.pending{background:rgba(245,158,11,.16);color:#b06f00}
  .pill.failed{background:rgba(239,68,68,.14);color:#c52f2f}
  .pill.state{background:rgba(59,130,246,.14);color:#2563eb}

  /* Active alarms */
  .alarmlist{display:flex;flex-wrap:wrap;gap:10px}
  .alarm-on{display:flex;align-items:center;gap:8px;background:rgba(239,68,68,.08);
            border:1px solid rgba(239,68,68,.25);color:#c52f2f;
            padding:8px 12px;border-radius:10px;font-size:13px;font-weight:500}

  /* Riepilogo GE: Stato motore / Funzionamento / Ore manutenzione (3 card affiancate) */
  .ge-status{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  .ge-row{display:flex;align-items:center;gap:16px;background:var(--surface-soft);
          border:1px solid var(--hairline);border-radius:12px;padding:16px 18px}
  @media(max-width:860px){.ge-status{grid-template-columns:1fr}}
  .ge-ico{width:48px;height:48px;border-radius:50%;flex:none;display:flex;align-items:center;
          justify-content:center;font-family:var(--mono);font-size:13px;font-weight:600;
          background:var(--surface-strong);color:var(--body-strong)}
  .ge-ico.on{background:var(--ok);color:#fff}
  .ge-ico.off{background:#94a3b8;color:#fff}
  .ge-ico.nan{background:var(--surface-strong);color:var(--muted-soft)}
  .ge-ico.aut{background:#34a853;color:#0a3b2a}
  .ge-ico.man{background:var(--warn);color:#fff}
  .ge-ico.wrench{background:transparent;color:var(--ink)}
  .ge-txt{display:flex;flex-direction:column;min-width:0}
  .ge-k{font-size:13px;color:var(--muted-soft);font-weight:500;line-height:1.3}
  .ge-v{font-family:var(--display);font-size:24px;font-weight:600;color:var(--ink);letter-spacing:-.3px;line-height:1.15}
  .ge-v .u{color:var(--bad)}
  /* Versione compatta per le card dell'elenco (resta in colonna, senza card) */
  .ge-status.compact{display:flex;flex-direction:column;gap:9px;margin-bottom:12px}
  .ge-status.compact .ge-row{gap:10px;background:none;border:0;border-radius:0;padding:0}
  .ge-status.compact .ge-ico{width:28px;height:28px;font-size:9px}
  .ge-status.compact .ge-ico svg{width:15px;height:15px}
  .ge-status.compact .ge-k{font-size:10px;letter-spacing:.3px;text-transform:uppercase}
  .ge-status.compact .ge-v{font-family:var(--sans);font-size:14px;font-weight:600}

  /* Controls */
  select,input[type=search]{font-family:var(--sans);background:var(--canvas);color:var(--ink);
      border:1px solid var(--hairline);border-radius:8px;padding:9px 12px;font-size:14px;height:40px}
  select:focus,input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(17,17,17,.08)}
  input[type=search]{width:100%}

  .scroll{max-height:440px;overflow:auto}
  .empty{color:var(--muted-soft);font-style:italic;padding:10px 0}

  /* Device grid */
  .toolbar{display:flex;gap:14px;align-items:center;margin-bottom:24px}
  .toolbar .search{flex:1;max-width:400px}
  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:20px}
  .card{display:block;background:var(--surface-card);border:1px solid transparent;border-radius:12px;
        padding:22px;transition:transform .12s,box-shadow .12s,background .12s}
  .card:hover{background:var(--canvas);border-color:var(--hairline);box-shadow:var(--shadow-md);transform:translateY(-2px)}
  .card h3{font-family:var(--display);font-size:20px;font-weight:600;margin:0 0 4px;letter-spacing:-.5px;line-height:1.2}
  .card .code{font-family:var(--mono);font-size:11px;color:var(--muted-soft);word-break:break-all;margin-bottom:14px}
  .card .badges{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
  .card .client{font-size:13px;color:var(--muted)}
  .card .serial{font-family:var(--mono);font-size:12px;color:var(--muted-soft);margin-top:4px;word-break:break-all}
  .nomatch{color:var(--muted-soft);font-style:italic;padding:30px 0;display:none}

  .err{background:rgba(239,68,68,.06);border:1px solid rgba(239,68,68,.35);color:#a93232;
       border-radius:12px;padding:22px 26px;font-size:14px}
  .err strong{font-size:16px;color:#8c2a2a}
  .chart-wrap{position:relative;background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:10px;padding:16px}
  /* Crosshair = invito a trascinare per selezionare un intervallo sul grafico */
  #chart{cursor:crosshair}
  /* Pulsantino "Reset zoom": compare (fade) solo dopo un drag-zoom, torna al range iniziale */
  .chart-reset{position:absolute;top:10px;right:12px;z-index:6;display:inline-flex;align-items:center;gap:5px;
               padding:5px 10px 5px 8px;font:500 11px/1 'Inter',sans-serif;color:var(--body);
               background:rgba(255,255,255,.92);backdrop-filter:blur(2px);border:1px solid var(--hairline);
               border-radius:8px;box-shadow:var(--shadow-sm);cursor:pointer;
               opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .16s ease,transform .16s ease}
  .chart-reset.on{opacity:1;transform:none;pointer-events:auto}
  .chart-reset:hover{background:var(--surface-soft);border-color:var(--muted-soft);color:var(--ink)}
  .chart-reset svg{opacity:.7}
  /* Loader del grafico: overlay durante il fetch AJAX delle serie */
  .chart-loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;
                background:rgba(248,249,250,.72);backdrop-filter:blur(1px);border-radius:10px;z-index:5;
                font-size:13px;font-weight:500;color:var(--muted)}
  .chart-loader[hidden]{display:none}
  .chart-loader .spinner{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--hairline);
                         border-top-color:var(--ink);animation:spin .8s linear infinite}
  /* Loader a tutta pagina: vista Analisi flotta in attesa dei dati via AJAX */
  .page-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
               min-height:50vh;text-align:center;color:var(--muted);font-size:15px;font-weight:500}
  .page-loader .spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--hairline);
                        border-top-color:var(--ink);animation:spin .8s linear infinite}
  .page-loader-sub{font-size:13px;font-weight:400;color:var(--muted-soft)}
  .hint{font-size:12px;color:var(--muted-soft);margin-top:12px}

  /* Controlli del grafico: select multipla + preset + range picker */
  .chart-controls{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
  .range-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
  .presets-dd{position:relative}
  .presets-dd-toggle{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;
                  color:var(--ink);cursor:pointer;border:1px solid var(--hairline);border-radius:8px;
                  padding:9px 13px;background:var(--canvas);height:40px}
  .presets-dd-toggle:hover{background:var(--surface-soft)}
  .presets-dd-toggle .caret{font-size:11px;color:var(--muted);transition:transform .15s}
  .presets-dd.open .presets-dd-toggle .caret{transform:rotate(180deg)}
  .presets{display:none;position:absolute;z-index:30;top:calc(100% + 4px);left:0;min-width:160px;
                  flex-direction:column;gap:2px;padding:6px;background:var(--canvas);
                  border:1px solid var(--hairline);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12)}
  .presets-dd.open .presets{display:flex}
  .presets button{font-size:13px;font-weight:500;color:var(--ink);cursor:pointer;text-align:left;
                  border:1px solid transparent;border-radius:7px;padding:8px 12px;background:transparent}
  .presets button:hover{background:var(--surface-soft)}
  .presets button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
  #rangePicker{flex:1;min-width:220px;background:var(--canvas);color:var(--ink);cursor:pointer;
               border:1px solid var(--hairline);border-radius:8px;padding:9px 12px;font-size:14px;height:40px;font-family:var(--mono)}

  /* Select ricercabile (Tom Select) */
  .ts-wrapper{width:100%}
  .ts-control{border:1px solid var(--hairline)!important;border-radius:8px!important;
              font-family:var(--sans);font-size:14px;box-shadow:none!important;padding:6px 12px!important}
  .ts-control.focus{border-color:var(--ink)!important;box-shadow:0 0 0 3px rgba(17,17,17,.08)!important}
  /* Placeholder "Aggiungi dati…" in ciano per renderlo evidente come invito all'azione */
  .ts-control input::placeholder{color:#06b6d4!important;opacity:1}
  .ts-control input::-webkit-input-placeholder{color:#06b6d4!important;opacity:1}
  .ts-control .item{background:var(--surface-card);border-radius:6px;font-family:var(--mono);font-size:12px;padding:2px 6px}
  .ts-dropdown{border:1px solid var(--hairline);border-radius:8px;box-shadow:var(--shadow-md);font-size:14px}
  .ts-dropdown .active{background:var(--surface-card);color:var(--ink)}
  .ts-dropdown .option{padding:8px 12px}

  /* Footer */
  footer{background:var(--dark);color:var(--on-dark-soft);padding:48px 28px;margin-top:48px}
  footer .inner{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;
                align-items:center;gap:16px;flex-wrap:wrap}
  footer .wm{font-family:var(--display);font-weight:600;font-size:18px;color:var(--on-dark);letter-spacing:-.5px}
  footer .meta{font-size:13px}

  /* Analisi flotta & Previsioni */
  .ins-note{color:var(--muted);font-size:13.5px;line-height:1.55;margin:-6px 0 18px;max-width:80ch}
  .ins-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  @media(max-width:760px){.ins-cols{grid-template-columns:1fr}}
  .ins-list{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:14px}
  .ins-list li{position:relative;padding-left:22px;font-size:14.5px;line-height:1.55;color:var(--body)}
  .ins-list li::before{content:"";position:absolute;left:4px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--accent)}
  .ins-list strong{color:var(--ink)}
  .ins-guide{margin:0;display:flex;flex-direction:column;gap:18px}
  .ins-guide dt{font-weight:600;color:var(--ink);font-size:15px;margin-bottom:5px}
  .ins-guide dd{margin:0;color:var(--body);font-size:14px;line-height:1.6;
                padding-left:14px;border-left:2px solid var(--hairline)}
  .ins-guide strong{color:var(--ink)}
  .ins-guide code{font-family:var(--mono);font-size:12.5px;background:var(--surface-card);
                  color:var(--ink);padding:1px 5px;border-radius:4px}
  .ins-days{margin:18px 0 -8px;color:var(--muted);font-size:13.5px;display:flex;align-items:center;gap:8px}
  .ins-day{font-family:var(--mono);font-size:12.5px;font-weight:500;color:var(--muted);
           padding:3px 10px;border:1px solid var(--hairline);border-radius:999px;text-decoration:none}
  .ins-day:hover{color:var(--ink);border-color:var(--ink)}
  .ins-day.on{background:var(--ink);border-color:var(--ink);color:#fff;pointer-events:none}
  .kpi-trend{font-size:12px;font-weight:600;margin-left:6px;vertical-align:middle}

  /* Mappa posizione GPS (Leaflet/OpenStreetMap) */
  .geo-map{height:380px;border-radius:12px;overflow:hidden;border:1px solid var(--hairline);z-index:0}
  .geo-meta{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;
            font-size:13.5px;color:var(--body)}
  .geo-meta .mono{font-family:var(--mono);font-size:13px;color:var(--ink)}
  .geo-link{font-size:13px;font-weight:500;color:var(--accent)}
  .geo-link:hover{text-decoration:underline}
  .leaflet-container{font:inherit}

  /* Chip utente loggato nella nav (login.php / Auth) */
  .lang-select{height:34px;padding:0 8px;border:1px solid var(--hairline);border-radius:999px;
               font:inherit;font-size:12px;font-weight:600;color:var(--body-strong);
               background:var(--surface-card);cursor:pointer;max-width:74px}
  .lang-select:focus{outline:none;border-color:var(--accent)}
  .user-chip{max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
             font-size:13px;font-weight:600;color:var(--body-strong);
             background:var(--surface-card);border:1px solid var(--hairline);
             border-radius:999px;padding:7px 14px;text-decoration:none}
  a.user-chip:hover{background:var(--surface-soft)}
