:root { 
  /* Palette */
  --ink:#1e1b2e;           /* testo principale */
  --muted:#57546a;         /* testo attenuato */
  --bg:#f6f7fb;            /* sfondo pagina */
  --panel:#ffffff;         /* pannelli */
  --line:#e8e6f2;          /* bordi sottili */
  --primary:#5a39c7;       /* viola principale */
  --primary-2:#7f5dff;     /* viola secondario */
  --accent:#6ee787;        /* verde evidenza */
  --danger:#ff5a7a;        /* rosso evidenza */
  --chip:#efeafa;          /* chip bg */
  --chip-ink:#5a39c7;      /* chip text */
  --live:#29e36a;          /* puntino live */

  --radius:16px;           /* border radius base */
  --radius-lg:22px;        /* radius grande */
  --shadow:0 6px 24px rgba(41,28,96,.12); /* ombra dolce */

  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Inter, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}

/* ===== Base ===== */
html,body { height:100%; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--font); } 

/* Link */
a { color:var(--primary); text-decoration:none; } 
a:hover { text-decoration:underline; }

/* Contenitore principale (non rompe Bootstrap) */
.container { max-width:1400px; } /* era 1280 */
.container>header { margin:16px 0 8px; background:linear-gradient(90deg, var(--primary), var(--primary-2)); color:#fff; padding:18px; border-radius:var(--radius-lg); box-shadow:var(--shadow); text-align:center; }
.container>header h1 { margin:0; font-weight:800; letter-spacing:.2px; }
.container>header p { margin:6px 0 0; opacity:.95; }

/* Navbar semplice */
.container>nav { background:#221547; border-radius:12px; margin:8px 0 16px; box-shadow:var(--shadow); overflow:hidden; }
.container>nav ul { display:flex; gap:8px; align-items:center; list-style:none; margin:0; padding:10px; }
.container>nav a { display:block; padding:10px 14px; color:#fff; font-weight:700; border-radius:10px; }
.container>nav a:hover { background:rgba(255,255,255,.10); } 
.container>nav a.active { background:#fff; color:var(--primary); } 

/* link brand nell'H1: resta bianco e senza underline */
.container>header h1 a, header strong a, .container>header h1 a:visited, header strong a:visited { 
  color: inherit;           /* eredita il bianco dell'header */
  text-decoration: none;    /* niente sottolineatura */
}
.container>header h1 a:hover, header strong a:hover, .container>header h1 a:focus, header h1 a:focus { 
  text-decoration: none;    /* niente underline anche all'hover */
  outline: none;            /* opzionale: niente focus outline */
  cursor: pointer;
}

footer, .gs-footer { 
    background:linear-gradient(0deg, rgba(122,97,227,.06), rgba(122,97,227,.06));
    background:linear-gradient(90deg, var(--primary), var(--primary-2));
    color:#fff; 
    padding:14px; border-radius:12px; text-align:center; margin:16px 0 24px; 
}
footer a { color:#fff; }
footer a:hover { background:rgba(255,255,255,.10); } 
footer a.active { background:#fff; color:var(--primary); } 

/* Form controls & buttons */
.wa-wrap :is(input[type="text"], input[type="number"], textarea, select:not(.form-select)) { 
  border:1px solid #d9d6ea; border-radius:10px; padding:10px 12px; background:#fff;
}
label { font-weight:700; color:var(--muted); margin:8px 0 6px; display:block; }

button, input[type=submit], .btn {
  border: 0;
  padding: 10px 16px;
  border-radius: 12px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: var(--shadow);
  transition: filter .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease;
}
button:disabled, input[type=submit][disabled], .btn:disabled {
  opacity: .6;
  cursor: not-allowed;
}

.btn-primary, button.btn-primary, input[type=submit].btn-primary {
  background: linear-gradient(90deg, var(--primary), var(--primary-2));
  color: #fff;
}
.btn-primary:hover, button.btn-primary:hover, input[type=submit].btn-primary:hover {
  filter: brightness(1.05);
}
.btn-secondary, button.btn-secondary {
  background: #fff;                  /* o transparent se preferisci */
  color: var(--primary);
  border: 1.6px solid var(--primary);
}
.btn-secondary:hover, button.btn-secondary:hover {
  background: var(--primary);
  color: #fff;
  filter: none;                       /* evitiamo doppio effetto con il fill */
}
.btn-secondary:active {
  filter: brightness(.95);
}
.btn-primary:focus-visible, .btn-secondary:focus-visible { outline:2px solid color-mix(in srgb, var(--primary) 65%, white); outline-offset:2px; }

.btn-ghost {
  background: #f9f8ff;
  color: var(--primary);
  border: 1px solid #ded9fb;
}
.btn-ghost:hover { filter: brightness(1.03); }

.wa-btn, .wa-tag { display:inline-block; padding:.35rem .75rem; border-radius:999px; font-weight:700; text-decoration:none; line-height:1; }
.wa-tag { background:#fff; color:#333; border:1px solid #ddd; }
.wa-btn { background:var(--primary); color:#fff; border:1px solid var(--primary); }
.wa-btn-ghost { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.75); }
.wa-btn-ghost:hover, .wa-btn-ghost:focus { background:#fff; color:var(--primary); border-color:#fff; }

/* Bottone Filtri “brand” */
.btn-filter { background:var(--primary); border:1px solid var(--primary); color:#fff !important; box-shadow:0 2px 6px rgba(71,36,198,.22); }
.btn-filter:hover, .btn-filter:focus { background:var(--primary-2); border-color:var(--primary-2); color:#fff !important; }
.btn-filter:focus-visible { outline:2px solid color-mix(in srgb, var(--primary) 70%, white); outline-offset:2px; }
@media (max-width: 576px) {
  .btn, .form-select, .form-control{
    font-size:.875rem; /* ~14px */
    padding:.35rem .55rem;
    border-radius:.6rem;
  }
  .btn-group .btn { padding:.35rem .5rem; }
  .btn.btn-chip { border-radius:999px; background:#fff; border:1px solid #e6e3ff; color:#5b57c8; font-weight:700; }
  .btn.btn-chip:hover { color:#6f69da; }
  .btn.btn-chip.is-active { background:var(--primary); color:#fff; border-color:transparent; }
}

/* Messaggi standard */
.error { color:var(--danger); }
.success { color:#1e7e34; }
.muted { color:var(--muted); } 

/* ===== Pannelli / card ===== */
.panel, .wa-panel { background:var(--panel); border-radius:var(--radius-lg); border:1px solid var(--line); box-shadow:var(--shadow); }
.wa-panel__head { display:flex; align-items:center; justify-content:space-between; padding:12px 14px; background:linear-gradient(0deg, rgba(122,97,227,.06), rgba(122,97,227,.06)); border-bottom:1px solid var(--line); } 
.wa-panel__body { padding:14px; }

/* ===== Segmented tabs (usati in punteggi.php) ===== */
.segmented { background:var(--chip); padding:4px; border-radius:999px; display:inline-flex; gap:4px; }
.segmented a, .seg-pill { padding:.45rem .75rem; border-radius:999px; font-weight:600; text-decoration:none; color:var(--chip-ink); border:1px solid #e1e1f0; background:#fff; }
.segmented a:hover{ background:#f3f2ff; }
.segmented a.active, .seg-pill.active{ background:var(--primary); color:#fff; border-color:transparent; box-shadow:var(--shadow); }

/* ===== Tabelle ===== */
/* Tabella generica "punteggi" (compat per pagine esistenti) */
table.punteggi { width:100%; border-collapse:separate; border-spacing:0; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; box-shadow:var(--shadow); } 
.punteggi th { background:#204a9a; color:#fff; font-weight:700; padding:10px 8px; position:sticky; top:0; z-index:1; } 
.punteggi td { padding:10px 8px; border-bottom:1px solid var(--line); } 
.punteggi tr:nth-child(even) td { background:#fafaff; } 

.table-wrap { overflow:auto; }

/* Tabella "wa" */
.wa-table { width:100%; border-collapse:separate; border-spacing:0; }
.wa-table thead th { position:sticky; z-index: 1; top:0; background:#fff; border-bottom:1px solid var(--line); font-size:13px; text-transform:uppercase; letter-spacing:.3px; color:var(--muted); padding:10px 8px; }
.wa-table tbody td { padding:10px 8px; border-bottom:1px solid var(--line); font-size:15px; }
.wa-table tbody tr:hover td { background:#fbfaff; }
.wa-table tbody tr:nth-child(odd) { background: #fafbff; }
@media (max-width: 576px) {
  /* tabella leggermente più densa ma senza forzare il layout */
  .wa-table{ font-size:.92rem; line-height:1.2; }
  .wa-table thead th{ font-size:.78rem; }
  .wa-table th, .wa-table td{ padding:.40rem .55rem; }
}

.wa-table.compact { font-size: .92rem; }         /* tabella compatta e leggibile */
.wa-table.compact th, .wa-table.compact td { padding: .35rem .55rem; }
.wa-table .col-num { width:86px; text-align:right; font-variant-numeric:tabular-nums; }
.wa-table .col-idx { width: 64px; text-align: right; white-space: nowrap; color:#666; }
.wa-table .col-evnt { width: 50px; }
.wa-table .col-site { width: 45px; }
.wa-table .col-date { width: 72px; white-space: nowrap; color:#666; }
.wa-table .col-soc { min-width: clamp(160px, 24vw, 280px); color:#57546a; font-size:13px; }
/* per tenere su una riga con ellissi: */
.wa-table td.col-soc { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wa-table .col-soc .soc-team{
  font-size: .75em;           /* più piccolo del testo principale */
  color: #9693a8;             /* meno scuro rispetto a --ink */
  font-weight: 400;           /* leggermente più leggero */
}
@media (max-width: 576px){
  .wa-table td.col-soc .soc-team{
    display: block;
    margin-top: 2px;
  }
}
.wa-table .col-ath { min-width:200px; }
.wa-table .sticky-col { position:sticky; left:0; z-index:1; background:#fff; box-shadow:1px 0 0 var(--line); } 
.wa-table .sticky-col-2 { position:sticky; left:200px; z-index:1; background:#fff; box-shadow:1px 0 0 var(--line); } 
.wa-table .mark-best { background:linear-gradient(90deg, rgba(111,237,164,.28), rgba(111,237,164,.02)); border-radius:10px; padding:4px 8px; }


.wa-layout { display:grid; grid-template-columns:1fr 360px; gap:18px; } 
@media (max-width: 980px) { .wa-layout { grid-template-columns:1fr; } }

.wa-sidebar { display:flex; flex-direction:column; gap:18px; }
.wa-list { display:flex; flex-direction:column; }
.wa-list-item { display:flex; align-items:center; justify-content:space-between; padding:12px 14px; border-bottom:1px dashed var(--line); } 
.wa-list-item:last-child { border-bottom:0; }
.pagination { flex-wrap: wrap; row-gap: .25rem; }
.pagination .page-link { min-width: 2.1rem; text-align: center; }


/* ===== Autocomplete (vecchio e nuovo) ===== */
.autocomplete, .wa-autocomplete { position:relative; }
.autocomplete ul, .wa-autocomplete ul { position:absolute; top:calc(100% + 6px); left:0; right:0; background:#fff; border:1px solid #ccc; border-radius:12px; padding:6px 0; margin:0; list-style:none; z-index:1000; max-height:260px; overflow-y:auto; box-shadow:0 8px 24px rgba(0,0,0,.12); } 
.autocomplete li, .wa-autocomplete li { padding:8px 12px; cursor:pointer; } 
.autocomplete li:hover, .wa-autocomplete li:hover, .wa-autocomplete li.active { background:#eef4ff; }
.wa-autocomplete ul { 
  position:absolute; z-index:30; left:0; right:0; top:100%;
  margin:.25rem 0 0; padding:.25rem; list-style:none;
  background:#fff; border:1px solid #e6e6f0; border-radius:.5rem;
  max-height:260px; overflow:auto; box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.wa-autocomplete li { padding:.5rem .6rem; cursor:pointer; border-radius:.35rem; }
.wa-autocomplete li:hover, .wa-autocomplete li.active { background:#f2f3ff; }
.wa-autocomplete .muted { color:#666; font-size:.9em; }
.wa-autocomplete mark { background:#ffe58f; padding:0 .08em; border-radius:.2em; }


/* ===== Chip / tag / badge ===== */
.tag, .wa-tag { padding:4px 8px; border-radius:999px; font-size:12px; background:#eef0f7; color:#384058; font-weight:700; text-transform:capitalize; }
.badge-live { display:inline-flex; align-items:center; gap:8px; background:#221547; color:#fff; padding:6px 10px; border-radius:999px; font-size:13px; font-weight:700; }
.badge-live .led { width:10px; height:10px; background:var(--live); border-radius:50%; box-shadow:0 0 16px var(--live); animation:blink 1.2s infinite; } 
@keyframes blink{
  0%, 100% { opacity:1; }
  50%      { opacity:.35; }
}

/* ===== Utility ===== */
.wa-wrap { max-width:1600px; margin:0 auto; padding:12px 8px 36px; } /* era max-width:1600px; */
.wa-wrap .alert-info{
  background-color:#eef1ff; border-color:#dfe3ff; color:#2b2461;
  --bs-alert-bg: color-mix(in srgb, var(--primary) 10%, white);
  --bs-alert-border-color: color-mix(in srgb, var(--primary) 25%, white);
  --bs-alert-color: color-mix(in srgb, var(--primary) 70%, black);
}
.wa-wrap.wa-wide { max-width: 1400px; } /* larghezza pagina un po' più generosa */
@media (max-width: 576px) {
  .wa-wrap h1{ font-size:1.55rem; }
  .wa-wrap h2{ font-size:1.2rem; }
  .wa-wrap h3{ font-size:1.1rem; }
}
.wa-wrap * { -webkit-tap-highlight-color: transparent; }


/* HOMEPAGE style */
/* Mini stile per overlay "bloccato" (card visibile ma segnalata) */
.lock-wrap{ position:relative; }
.lock-wrap.is-locked::after{
  content:"🔒 Accesso richiesto";
  position:absolute; inset:0; pointer-events:none;
  display:flex; align-items:flex-end; justify-content:flex-end;
  background:linear-gradient(0deg, rgba(34,21,71,.65), rgba(34,21,71,0) 45%);
  color:#fff; font-weight:800; padding:10px 12px; border-radius:var(--radius-lg);
}
.portal-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
@media (max-width: 980px){ .portal-grid{ grid-template-columns:1fr; } }
.portal-card{ display:flex; flex-direction:column; height:100%; text-decoration:none; color:inherit; }
.portal-card .wa-panel__head strong{ display:flex; gap:.6rem; align-items:center; }
.hero-actions{ display:flex; gap:10px; flex-wrap:wrap; }
.top-actions{ display:flex; gap:10px; align-items:center; }
.hidden{ display:none !important; }

.filters-toolbar { position: sticky; top: .25rem; z-index: 3; background: #fff; padding: .25rem 0; }
.filters-inline .form-label { margin-bottom:0; } /* barra filtri orizzontale */
.filters-inline .form-select.w-auto { width:auto; }
@media (max-width: 576px) {
  .filters-toolbar .form-control-sm, .filters-toolbar .form-select-sm { min-width: 120px; }
  .filters-inline .form-select { min-width:150px; } 
  .filters-inline .btn.btn-chip:not(.is-active){ color:#8a84e6 !important; }
}

/* chip evento con ellissi + tooltip nativo (title) */
.evt-chip{
  display:inline-block;
  max-width: 240px;             /* allarga/restringi a piacere */
  padding: .22rem .5rem;
  font-size: .78rem;
  line-height: 1.1;
  border-radius: 999px;
  background: #eef1ff;
  border: 1px solid #dfe3ff;
  color: #2f2f55;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
}
.evt-chip:hover{ text-decoration: underline; }


/* 2025-10-23 reportistica */

/* barretta locale ai report */
.rep-toolbar .btn-group .btn{ padding:.35rem .6rem; }
.rep-toolbar .btn-chip{ font-weight:800; }
.rep-toolbar .btn-chip.is-active{ color:#fff; background:linear-gradient(90deg,var(--primary),var(--primary-2)); border-color:transparent; }
.rep-toolbar .btn-chip:not(.is-active){ color:#6e6aa7; background:#f7f6fe; border:1px solid #e6e2ff; }
.rep-toolbar .btn-chip:not(.is-active):hover{ color:#564fd4; }
/* colonna società con team piccolo */
.wa-table .col-soc { min-width: clamp(200px, 26vw, 420px); }
.wa-table td .team { display:inline-block; margin-left:.3rem; font-size:.78em; color:#888; }
