/* =====================================================================
   Pannello notizie di vgt9
   ---------------------------------------------------------------------
   Gli stessi colori e caratteri della pagina d'ingresso del portale
   (portale/index.html): chi passa da li' a qui non deve accorgersi di
   aver cambiato sito. Se un giorno si ritocca la tavolozza, si ritocca
   in tutti e due i posti.
   ===================================================================== */
:root{
  --bg:#14171b; --panel:#1f242a; --panel-2:#262c33; --line:#323944;
  --txt:#edf0f4; --txt-dim:#9aa5b2; --txt-mute:#6c7783;
  --acc:#2f7bef; --acc-2:#6ba4ff; --acc-soft:rgba(47,123,239,.14); --mark:#f0c419;
  --alto:#f0c419; --medio:#2f7bef; --basso:#3a424d;
  --guasto:#e2504a;
  --ff:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
  --ff-d:"Overpass","Segoe UI",system-ui,-apple-system,sans-serif;
  --larghezza:900px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}

/* L'attributo hidden vale display:none, ma arriva dal foglio di stile
   del browser: qualsiasi regola scritta qui dentro che dia un display
   a quell'elemento lo batte, e l'elemento resta in pagina anche con
   hidden addosso. Succede a tutti i riquadri qui sotto che sono
   display:flex - l'avviso, il suggerimento, il vuoto, il guasto - e il
   difetto non si vede provando l'interfaccia dal codice, perche'
   element.hidden risponde true lo stesso: si vede solo guardando la
   pagina. Questa riga chiude la faccenda una volta per tutte. */
[hidden]{display:none !important}
body{
  margin:0;min-height:100vh;background:var(--bg);color:var(--txt);font-family:var(--ff);
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;
}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--acc-2);outline-offset:3px;border-radius:6px}
button,input,select{font:inherit;color:inherit}

/* --- testata ------------------------------------------------------- */
.testa{
  position:sticky;top:0;z-index:20;background:rgba(20,23,27,.94);
  backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line);
  padding:14px 24px 12px;
}
.testa-riga,.aree,.attrezzi{width:100%;max-width:var(--larghezza);margin:0 auto}
.testa-riga{display:flex;align-items:center;justify-content:space-between;gap:16px}

.marchio{display:flex;align-items:center;gap:11px;min-width:0}
.marchio-bollo{
  width:34px;height:34px;flex:0 0 34px;border-radius:9px;background:var(--acc);
  display:grid;place-items:center;font-family:var(--ff-d);font-weight:800;font-size:15px;color:#fff;
  box-shadow:0 3px 12px rgba(47,123,239,.36);
}
.marchio-nome{font-family:var(--ff-d);font-size:21px;font-weight:800;letter-spacing:-.4px}

.testa-stato{display:flex;align-items:center;gap:10px;flex-shrink:0}
.stato-quando{font-size:13px;color:var(--txt-mute);white-space:nowrap}
.bottone-tondo{
  width:34px;height:34px;flex:0 0 34px;border-radius:9px;border:1px solid var(--line);
  background:var(--panel);display:grid;place-items:center;cursor:pointer;transition:.15s;
}
.bottone-tondo svg{width:17px;height:17px}
.bottone-tondo:hover{border-color:var(--acc);background:var(--panel-2);color:var(--acc-2)}
.bottone-tondo.gira svg{animation:gira .9s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}

/* --- pillole delle aree -------------------------------------------- */
.aree{display:flex;gap:8px;margin-top:13px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.aree::-webkit-scrollbar{display:none}
.pillola{
  flex:0 0 auto;padding:6px 14px;border-radius:999px;border:1px solid var(--line);
  background:var(--panel);color:var(--txt-dim);font-size:13.5px;font-weight:600;
  cursor:pointer;transition:.14s;white-space:nowrap;
}
.pillola:hover{border-color:var(--acc);color:var(--txt)}
.pillola.attiva{background:var(--acc);border-color:var(--acc);color:#fff}

/* --- ricerca, periodo, impatto ------------------------------------- */
.attrezzi{display:flex;gap:9px;align-items:center;margin-top:11px;flex-wrap:wrap}
.cerca{position:relative;flex:1 1 240px;min-width:0}
.cerca-lente{
  position:absolute;left:11px;top:50%;transform:translateY(-50%);
  width:16px;height:16px;color:var(--txt-mute);pointer-events:none;
}
.cerca input{
  width:100%;padding:8px 32px 8px 34px;border-radius:9px;border:1px solid var(--line);
  background:var(--panel);font-size:14.5px;transition:.14s;
}
.cerca input::placeholder{color:var(--txt-mute)}
.cerca input:focus{border-color:var(--acc);outline:none;background:var(--panel-2)}
.cerca input::-webkit-search-cancel-button{display:none}
.cerca-x{
  position:absolute;right:7px;top:50%;transform:translateY(-50%);
  width:22px;height:22px;border:0;background:transparent;color:var(--txt-mute);
  font-size:19px;line-height:1;cursor:pointer;border-radius:5px;
}
.cerca-x:hover{color:var(--txt);background:var(--panel-2)}

.scelta{
  padding:8px 11px;border-radius:9px;border:1px solid var(--line);background:var(--panel);
  font-size:14px;cursor:pointer;transition:.14s;
}
.scelta:hover{border-color:var(--acc)}

.interruttore{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--txt-dim);cursor:pointer;user-select:none}
.interruttore input{position:absolute;opacity:0;width:0;height:0}
.interruttore-corpo{
  width:36px;height:20px;border-radius:999px;background:var(--basso);
  position:relative;transition:.16s;flex:0 0 36px;
}
.interruttore-corpo::after{
  content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;
  background:var(--txt-dim);transition:.16s;
}
.interruttore input:checked + .interruttore-corpo{background:var(--acc)}
.interruttore input:checked + .interruttore-corpo::after{transform:translateX(16px);background:#fff}
.interruttore input:focus-visible + .interruttore-corpo{outline:2px solid var(--acc-2);outline-offset:2px}
.interruttore:hover{color:var(--txt)}

/* --- corpo --------------------------------------------------------- */
.corpo{width:100%;max-width:var(--larghezza);margin:0 auto;padding:26px 24px 44px;flex:1}
.titoletto{
  font-family:var(--ff-d);font-size:11.5px;text-transform:uppercase;letter-spacing:1.4px;
  color:var(--txt-mute);font-weight:700;margin:0;
}
.conteggio-riga{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 13px}
.conteggio-nota{font-size:12.5px;color:var(--txt-mute)}

/* --- in evidenza --------------------------------------------------- */
.evidenza{margin-bottom:30px}
.evidenza-griglia{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:13px}
.spicco{
  display:flex;flex-direction:column;gap:8px;padding:16px 17px;border-radius:14px;
  background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--mark);
  transition:.15s;min-width:0;
}
.spicco:hover{border-color:var(--acc);border-top-color:var(--mark);background:var(--panel-2);transform:translateY(-2px)}
.spicco-alto{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--txt-mute)}
.spicco-fonte{color:var(--mark);font-weight:600}
.spicco-titolo{font-family:var(--ff-d);font-size:15.5px;font-weight:700;line-height:1.34;margin:0}

/* --- schede notizia ------------------------------------------------ */
.elenco{display:flex;flex-direction:column;gap:9px}
.scheda{
  display:block;padding:15px 18px 15px 16px;border-radius:13px;background:var(--panel);
  border:1px solid var(--line);border-left:3px solid var(--basso);transition:.14s;
}
.scheda:hover{border-color:var(--acc);border-left-color:var(--acc);background:var(--panel-2);transform:translateX(2px)}
.scheda.impatto-alto{border-left-color:var(--alto)}
.scheda.impatto-alto:hover{border-left-color:var(--alto)}
.scheda.impatto-medio{border-left-color:var(--medio)}
.scheda.impatto-medio:hover{border-left-color:var(--medio)}
.scheda.letta .scheda-titolo{color:var(--txt-dim)}

.scheda-alto{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;margin-bottom:5px}
.scheda-fonte{font-weight:600;color:var(--acc-2)}
.scheda-quando{color:var(--txt-mute)}
.scheda-anche{color:var(--txt-mute);font-style:italic}
.punto{width:3px;height:3px;border-radius:50%;background:var(--txt-mute);flex:0 0 3px}

.scheda-titolo{
  font-family:var(--ff-d);font-size:16.5px;font-weight:700;line-height:1.36;margin:0 0 5px;
  overflow-wrap:anywhere;
}
.scheda-sommario{font-size:14px;color:var(--txt-dim);line-height:1.5;margin:0;overflow-wrap:anywhere}

.scheda-basso{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px}
.tag{
  font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;
  background:var(--acc-soft);color:var(--acc-2);letter-spacing:.2px;
}
.tag-alto{background:rgba(240,196,25,.15);color:var(--mark)}

/* --- avvisi e stati ------------------------------------------------ */
.avviso{
  display:flex;align-items:center;gap:10px;padding:11px 16px;border-radius:11px;
  background:var(--acc-soft);border:1px solid rgba(47,123,239,.3);color:var(--acc-2);
  font-size:13.5px;margin-bottom:13px;
}
.giravolta{
  width:13px;height:13px;flex:0 0 13px;border-radius:50%;
  border:2px solid rgba(107,164,255,.3);border-top-color:var(--acc-2);
  animation:gira .8s linear infinite;
}
/* Il suggerimento di allargare il periodo. Serve soprattutto all'area
   macro: le banche centrali pubblicano ogni pochi giorni, e con la
   finestra a 24 ore quella scheda sembra vuota quando invece e' solo
   piu' lenta delle altre. */
.suggerimento{
  display:flex;align-items:center;gap:11px;flex-wrap:wrap;padding:10px 15px;border-radius:11px;
  background:var(--panel);border:1px dashed var(--line);color:var(--txt-dim);
  font-size:13.5px;margin-bottom:13px;
}
.bottone-magro{
  padding:4px 12px;border-radius:7px;border:1px solid var(--acc);background:transparent;
  color:var(--acc-2);font-size:13px;font-weight:600;cursor:pointer;transition:.14s;white-space:nowrap;
}
.bottone-magro:hover{background:var(--acc);color:#fff}

.vuoto,.guasto{
  border:1px dashed var(--line);border-radius:14px;padding:26px 24px;text-align:center;
  color:var(--txt-mute);font-size:14px;display:flex;flex-direction:column;gap:7px;align-items:center;
}
.vuoto strong,.guasto strong{color:var(--txt);font-family:var(--ff-d);font-size:15.5px}
.guasto{border-color:rgba(226,80,74,.4)}
.guasto strong{color:var(--guasto)}
.bottone{
  margin-top:5px;padding:7px 18px;border-radius:9px;border:1px solid var(--line);
  background:var(--panel);cursor:pointer;font-size:14px;font-weight:600;transition:.14s;
}
.bottone:hover{border-color:var(--acc);color:var(--acc-2);background:var(--panel-2)}

.scheletro{
  height:92px;border-radius:13px;background:var(--panel);border:1px solid var(--line);
  border-left:3px solid var(--basso);animation:respiro 1.5s ease-in-out infinite;
}
@keyframes respiro{0%,100%{opacity:.45}50%{opacity:.8}}

/* --- piede --------------------------------------------------------- */
.piede{
  border-top:1px solid #252b32;padding:22px 24px 26px;color:var(--txt-mute);font-size:12.5px;
}
.piede > *{width:100%;max-width:var(--larghezza);margin:0 auto 9px}
.piede-fonti{line-height:1.55}
.piede-avvertenza{line-height:1.55}
.piede-avvertenza strong{color:var(--txt-dim)}
.piede-firma{text-align:center;margin-top:14px;margin-bottom:0}
.piede-firma a:hover{color:var(--acc-2)}

/* --- schermi stretti ----------------------------------------------- */
@media(max-width:760px){
  .evidenza-griglia{grid-template-columns:1fr}
  .spicco{border-top-width:3px}
}
@media(max-width:560px){
  .testa{padding:12px 16px 10px}
  .corpo{padding:20px 16px 34px}
  .piede{padding:20px 16px 24px}
  .marchio-nome{font-size:19px}
  .attrezzi{gap:8px}
  .cerca{flex:1 1 100%;order:-1}
  .scelta{flex:1 1 auto}
  .scheda{padding:13px 15px 13px 13px}
  .scheda-titolo{font-size:15.5px}
  .interruttore{font-size:13.5px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .scheda:hover,.spicco:hover{transform:none}
}
