/* =========================================================================
 * AI Calabria — Area amministrazione
 * Stesso linguaggio visivo del front: token --vision-* / --mc-*, kicker,
 * card a gradiente, pill arrotondate, paginazione compatta.
 * ========================================================================= */
:root {
    --ad-navy: var(--vision-navy, #0B1F3A);
    --ad-blue: var(--vision-blue, #2563EB);
    --ad-coral: var(--vision-coral, #4F6BEF);
    --ad-gold: var(--vision-gold, #D6A84B);
    --ad-teal: var(--vision-teal, #0EA5E9);
    --ad-ink: var(--vision-ink, #10253F);
    --ad-muted: var(--vision-muted, #58708D);
    --ad-line: rgba(11, 31, 58, .12);
    --ad-bg: #EEF3FB;
    --ad-card: #FFFFFF;
    --ad-radius: 22px;
    --ad-shadow: 0 18px 42px rgba(16, 57, 102, .10);
}

.admin-shell { background: var(--ad-bg); min-height: 78vh; padding: clamp(1rem, 3vw, 2.4rem) 0 4rem; }
.admin-layout { display: grid; grid-template-columns: 268px minmax(0, 1fr); gap: clamp(1rem, 2.4vw, 2rem); align-items: start; }

/* ---------- Sidebar ---------- */
.admin-sidebar {
    position: sticky; top: 1.2rem;
    padding: 1.4rem 1.1rem;
    border-radius: 26px;
    color: #EaF2FF;
    background: radial-gradient(circle at 100% 0, rgba(37,99,235,.55), transparent 46%), linear-gradient(160deg, #081B35 0%, #123F78 64%, #1E4FB0 100%);
    box-shadow: var(--vision-shadow, 0 24px 65px rgba(18,53,91,.18));
}
.admin-brand { display: flex; align-items: center; gap: .6rem; margin: 0 0 1.3rem; font-weight: 900; letter-spacing: -.02em; font-size: 1.04rem; color: #fff; }
.admin-brand::before { content: "AI"; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; font-size: .8rem; font-weight: 900; color: #08203c; background: linear-gradient(135deg, var(--ad-gold), #F2C75C); box-shadow: 0 10px 24px rgba(214,168,75,.35); }
.admin-nav { display: flex; flex-direction: column; gap: .15rem; }
.admin-group { margin: 1.15rem .35rem .35rem; font-size: .64rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; color: #F2C75C; opacity: .92; }
.admin-group:first-of-type { margin-top: 0; }
.admin-nav-link {
    display: flex; align-items: center; gap: .55rem;
    padding: .56rem .7rem; border-radius: 13px;
    color: rgba(233,242,255,.82); text-decoration: none; font-weight: 650; font-size: .9rem;
    border: 1px solid transparent; transition: background .15s, color .15s;
}
.admin-nav-link::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .45; flex: none; }
.admin-nav-link:hover { background: rgba(255,255,255,.09); color: #fff; }
.admin-nav-link.is-active { background: rgba(255,255,255,.14); color: #fff; border-color: rgba(255,255,255,.18); box-shadow: inset 3px 0 0 var(--ad-gold); }
.admin-nav-link.is-active::before { opacity: 1; background: var(--ad-gold); }
.admin-back { display: inline-block; margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.14); color: rgba(233,242,255,.7); text-decoration: none; font-size: .82rem; }
.admin-back:hover { color: #fff; }

/* ---------- Content ---------- */
.admin-content { min-width: 0; }
.admin-head, .admin-head-row { margin-bottom: 1.4rem; }
.admin-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.admin-head h1, .admin-head-row h1 { margin: 0; font-size: clamp(1.7rem, 3.4vw, 2.5rem); letter-spacing: -.03em; color: var(--ad-ink); font-weight: 900; }
.admin-head p, .admin-head-row p { margin: .25rem 0 0; color: var(--ad-muted); font-size: .95rem; }
.admin-h2 { font-size: 1.05rem; letter-spacing: -.01em; color: var(--ad-ink); margin: 0 0 .9rem; font-weight: 800; }
.admin-h2-mt { margin-top: 2rem; }
.admin-muted { color: var(--ad-muted); }
.admin-strong { font-weight: 700; color: var(--ad-ink); }
.admin-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .82rem; color: var(--ad-muted); }
.admin-link { color: var(--ad-blue); text-decoration: none; font-weight: 700; }
.admin-link:hover { text-decoration: underline; }
.admin-empty { padding: 1.6rem; border: 1px dashed var(--ad-line); border-radius: 16px; color: var(--ad-muted); background: rgba(255,255,255,.6); }

/* ---------- Buttons ---------- */
.btn-ok, .btn-no, .btn-soft {
    display: inline-flex; align-items: center; justify-content: center; gap: .35rem;
    padding: .5rem .85rem; border: 1px solid transparent; border-radius: 11px;
    font-size: .82rem; font-weight: 750; cursor: pointer; text-decoration: none; line-height: 1.1;
    transition: transform .08s, box-shadow .15s, background .15s;
}
.btn-ok:active, .btn-no:active, .btn-soft:active { transform: translateY(1px); }
.btn-ok { color: #fff; background: linear-gradient(135deg, var(--ad-coral), #6E8BFF); box-shadow: 0 10px 24px rgba(79,107,239,.26); }
.btn-ok:hover { box-shadow: 0 14px 30px rgba(79,107,239,.34); color: #fff; }
.btn-soft { color: var(--ad-ink); background: #fff; border-color: var(--ad-line); }
.btn-soft:hover { border-color: rgba(37,99,235,.45); color: var(--ad-blue); }
.btn-no { color: #B42318; background: #FEF3F2; border-color: rgba(180,35,24,.22); }
.btn-no:hover { background: #FEE4E2; }
.admin-btn-lg { padding: .7rem 1.2rem; font-size: .9rem; border-radius: 13px; }

/* ---------- Cards KPI ---------- */
.admin-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; margin-bottom: 1.6rem; }
.admin-card {
    position: relative; overflow: hidden; padding: 1.25rem 1.3rem;
    border: 1px solid rgba(37,99,235,.16); border-radius: var(--ad-radius); color: #173B62;
    background: radial-gradient(circle at 100% 0, rgba(96,165,250,.20), transparent 44%), linear-gradient(150deg, #fff, #DAE9F9 130%);
    box-shadow: var(--ad-shadow); text-decoration: none; display: block;
}
.admin-card-link:hover { transform: translateY(-2px); box-shadow: 0 22px 50px rgba(16,57,102,.16); transition: transform .15s, box-shadow .15s; }
.admin-card-label { display: block; font-size: .68rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; color: var(--ad-coral); }
.admin-card-value { display: block; margin: .35rem 0 .2rem; font-size: 2.15rem; font-weight: 900; letter-spacing: -.03em; color: var(--ad-ink); line-height: 1; }
.admin-card-foot { display: block; font-size: .8rem; color: var(--ad-muted); }

/* ---------- Filtri ---------- */
.admin-filter { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.1rem; }
.admin-filter input[type=text], .admin-filter input[type=search], .admin-filter select { padding: .55rem .8rem; border: 1px solid var(--ad-line); border-radius: 11px; background: #fff; font-size: .88rem; color: var(--ad-ink); min-width: 170px; }
.admin-filter input:focus, .admin-filter select:focus { outline: none; border-color: var(--ad-blue); box-shadow: 0 0 0 3px rgba(37,99,235,.14); }
.admin-filter--utenti { display: block; padding: 1rem; background: #fff; border: 1px solid var(--ad-line); border-radius: 16px; box-shadow: 0 8px 24px rgba(16,57,102,.06); }
.admin-filter-grid { display: grid; grid-template-columns: minmax(260px, 1.7fr) repeat(5, minmax(145px, 1fr)); gap: .75rem; align-items: end; }
.admin-filter-grid label { display: grid; gap: .32rem; min-width: 0; }
.admin-filter-grid label > span { color: var(--ad-muted); font-size: .66rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.admin-filter-grid input[type=search], .admin-filter-grid select { width: 100%; min-width: 0; height: 42px; }
.admin-filter-actions { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; margin-top: .85rem; padding-top: .85rem; border-top: 1px dashed rgba(16,57,102,.13); }
.admin-filter-result { margin-left: auto; color: var(--ad-muted); font-size: .8rem; font-weight: 700; }
@media (max-width: 1320px) { .admin-filter-grid { grid-template-columns: minmax(260px, 2fr) repeat(3, minmax(155px, 1fr)); } }
@media (max-width: 900px) { .admin-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .admin-filter-search { grid-column: 1 / -1; } }
@media (max-width: 560px) { .admin-filter-grid { grid-template-columns: 1fr; } .admin-filter-search { grid-column: auto; } .admin-filter-actions .btn-ok, .admin-filter-actions .btn-soft { width: 100%; justify-content: center; text-align: center; } .admin-filter-result { width: 100%; margin-left: 0; text-align: center; } }

/* ---------- Tabelle ---------- */
.admin-table { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--ad-line); border-radius: var(--ad-radius); overflow: hidden; box-shadow: var(--ad-shadow); }
.admin-table thead th { text-align: left; padding: .85rem 1rem; font-size: .68rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; color: var(--ad-muted); background: #F4F8FE; border-bottom: 1px solid var(--ad-line); }
.admin-table tbody td { padding: .8rem 1rem; border-bottom: 1px solid #EEF2F8; vertical-align: middle; font-size: .9rem; color: var(--ad-ink); }
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-table tbody tr:hover td { background: #F8FBFF; }
.admin-th-act { text-align: right; white-space: nowrap; }
.admin-th-act .btn-ok, .admin-th-act .btn-no, .admin-th-act .btn-soft { margin-left: .3rem; }
.admin-inline { display: inline; }
.admin-inline select { padding: .35rem .5rem; border: 1px solid var(--ad-line); border-radius: 9px; background: #fff; font-size: .82rem; }

/* ---------- Pill / badge ---------- */
.pill { display: inline-block; padding: .26rem .65rem; border-radius: 999px; font-size: .68rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.pill-ok { color: #045B4E; background: #D6F5EC; }
.pill-off { color: #8A4B00; background: #FCEBD2; }
.pill-soft { color: #2C4A7C; background: #E3ECFB; }
.badge-ok { color: #0EA5E9; font-weight: 900; }
.badge-warn { color: #E0892B; font-weight: 900; }

/* ---------- Dizionario (corpus) ---------- */
.dict-list { display: flex; flex-direction: column; gap: .7rem; }
.dict-row {
    display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .6rem 1rem; align-items: center;
    padding: 1rem 1.2rem; background: #fff; border: 1px solid var(--ad-line); border-radius: 18px;
    box-shadow: 0 10px 26px rgba(16,57,102,.06); transition: box-shadow .15s, transform .1s;
}
.dict-row:hover { box-shadow: 0 16px 34px rgba(16,57,102,.12); transform: translateY(-1px); }
.dict-main { min-width: 0; }
.dict-word { font-size: 1.18rem; font-weight: 900; letter-spacing: -.02em; color: var(--ad-navy); text-decoration: none; }
.dict-word:hover { color: var(--ad-blue); }
.dict-gloss { margin: .15rem 0 0; color: var(--ad-muted); font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dict-meta { display: flex; align-items: center; gap: .5rem; margin-top: .45rem; flex-wrap: wrap; }
.dict-chip { font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ad-blue); background: #EAF1FE; padding: .2rem .55rem; border-radius: 8px; }
.dict-actions { display: flex; align-items: center; gap: .35rem; }

/* ---------- Form ---------- */
.admin-form-card { background: var(--ad-card); border: 1px solid var(--ad-line); border-radius: var(--ad-radius); padding: 1.6rem 1.7rem; box-shadow: var(--ad-shadow); }
.admin-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem 1.1rem; }
.admin-form label, .admin-form-grid label { display: flex; flex-direction: column; gap: .35rem; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--ad-muted); }
.admin-form input, .admin-form select, .admin-form textarea { font: inherit; text-transform: none; letter-spacing: normal; font-weight: 500; color: var(--ad-ink); padding: .6rem .75rem; border: 1px solid var(--ad-line); border-radius: 11px; background: #fff; }
.admin-form input:focus, .admin-form select:focus, .admin-form textarea:focus { outline: none; border-color: var(--ad-blue); box-shadow: 0 0 0 3px rgba(37,99,235,.14); }
.admin-textarea { margin-top: 1rem; }
.admin-form-checks { display: flex; flex-wrap: wrap; gap: 1.2rem; margin: 1.1rem 0; }
.admin-form-checks label { flex-direction: row; align-items: center; gap: .45rem; text-transform: none; letter-spacing: normal; font-weight: 600; color: var(--ad-ink); font-size: .9rem; }
.admin-form .btn-ok { margin-top: 1.2rem; }
.admin-new { background: #fff; border: 1px solid var(--ad-line); border-radius: 16px; padding: .9rem 1.1rem; margin-bottom: 1.2rem; }
.admin-new[open] { padding-bottom: 1.3rem; }
.admin-new summary { cursor: pointer; font-weight: 800; color: var(--ad-blue); }
.admin-new-mt { margin-top: 1.2rem; }
.admin-rowedit summary { cursor: pointer; color: var(--ad-blue); font-weight: 700; font-size: .82rem; }

/* ---------- Grafici / colonne / ranking ---------- */
.admin-charts { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }
.admin-chart-box { background: #fff; border: 1px solid var(--ad-line); border-radius: var(--ad-radius); padding: 1.2rem 1.3rem; box-shadow: var(--ad-shadow); }
.admin-chart-wide { margin-bottom: 1rem; }
.chart-wrap { position: relative; height: 260px; }
.admin-cols2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.account-panel { background: #fff; border: 1px solid var(--ad-line); border-radius: var(--ad-radius); padding: 1.2rem 1.3rem; box-shadow: var(--ad-shadow); }
.account-panel-head h2 { font-size: 1rem; color: var(--ad-ink); margin: 0 0 .8rem; font-weight: 800; }
.admin-rank { list-style: none; margin: 0; padding: 0; counter-reset: r; }
.admin-rank li { display: flex; align-items: center; gap: .6rem; padding: .55rem .1rem; border-bottom: 1px solid #EEF2F8; counter-increment: r; }
.admin-rank li:last-child { border-bottom: 0; }
.admin-rank li::before { content: counter(r); width: 24px; height: 24px; flex: none; display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--ad-coral), #6E8BFF); color: #fff; border-radius: 999px; font-size: .72rem; font-weight: 800; }
.admin-rank li span { flex: 1; color: var(--ad-ink); }
.admin-rank li strong { color: var(--ad-blue); }
.admin-map { height: 460px; border-radius: 16px; overflow: hidden; border: 1px solid var(--ad-line); margin-top: .4rem; }

/* ---------- Paginazione compatta ---------- */
.admin-pager { display: flex; justify-content: center; align-items: center; gap: .55rem; margin-top: 1.2rem; flex-wrap: wrap; }
.admin-pager .admin-page { display: inline-flex; align-items: center; justify-content: center; gap: .3rem; min-height: 38px; min-width: 38px; padding: .45rem .75rem; border: 1px solid var(--ad-line); border-radius: 10px; background: #fff; color: var(--ad-ink); text-decoration: none; font-weight: 800; font-size: .82rem; }
.admin-pager .admin-page:hover { border-color: var(--ad-blue); color: var(--ad-blue); }
.admin-pager .admin-page.is-on { border-color: var(--ad-blue); background: var(--ad-blue); color: #fff; box-shadow: 0 8px 18px rgba(37,99,235,.22); pointer-events: none; }
.admin-pager .admin-page.is-disabled { opacity: .35; pointer-events: none; }
.admin-pager .admin-page-info { color: var(--ad-muted); font-size: .85rem; min-width: 130px; text-align: center; }
.admin-pager .admin-page-info b { color: var(--ad-ink); }
.admin-page-gap { color: var(--ad-muted); padding: 0 .1rem; font-weight: 900; }
.admin-pager-summary { margin: .55rem 0 0; text-align: center; color: var(--ad-muted); font-size: .76rem; font-weight: 700; }
@media (max-width: 620px) { .admin-pager--numbers .admin-page { padding: .42rem .62rem; } .admin-pager--numbers .admin-page:nth-child(2), .admin-pager--numbers .admin-page:nth-last-child(2) { font-size: 0; } .admin-pager--numbers .admin-page:nth-child(2)::after { content: '‹'; font-size: .95rem; } .admin-pager--numbers .admin-page:nth-last-child(2)::after { content: '›'; font-size: .95rem; } }

@media (max-width: 1080px) {
    .admin-layout { grid-template-columns: 1fr; }
    .admin-sidebar { position: static; }
    .admin-nav { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
    .admin-group { grid-column: 1 / -1; }
    .admin-charts, .admin-cols2 { grid-template-columns: 1fr; }
}

/* ============================ Corpus a categorie (fisarmonica + completamento) */
.dict-cats { display: flex; flex-direction: column; gap: .7rem; }
.dict-cat { background: #fff; border: 1px solid var(--ad-line); border-radius: 16px; box-shadow: 0 8px 22px rgba(16,57,102,.06); overflow: hidden; }
.dict-cat[open] { box-shadow: 0 16px 34px rgba(16,57,102,.12); }
.dict-cat-head { list-style: none; cursor: pointer; display: grid; grid-template-columns: minmax(150px, 1.1fr) minmax(120px, 2fr) auto; align-items: center; gap: 1rem; padding: 1rem 1.2rem; }
.dict-cat-head::-webkit-details-marker { display: none; }
.dict-cat-head::before { content: "▸"; position: absolute; margin-left: -1rem; color: var(--ad-muted); transition: transform .15s; }
.dict-cat[open] .dict-cat-head::before { transform: rotate(90deg); }
.dict-cat-name { font-weight: 800; color: var(--ad-navy); letter-spacing: -.01em; }
.dict-cat-bar { height: 9px; border-radius: 999px; background: #E8EEF8; overflow: hidden; }
.dict-cat-fill { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--ad-teal), var(--ad-blue)); transition: width .4s ease; }
.dict-cat-num { font-size: .8rem; color: var(--ad-muted); white-space: nowrap; text-align: right; }
.dict-cat-num b { color: var(--ad-ink); }
.dict-cat--orphan .dict-cat-name { color: var(--ad-muted); }
.dict-cat-body { padding: .2rem 1.2rem 1.1rem; border-top: 1px solid #EEF2F8; }

.dict-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem .2rem; border-bottom: 1px solid #F1F4FA; }
.dict-item:last-of-type { border-bottom: 0; }
.dict-item-main { min-width: 0; }
.dict-item-word { font-weight: 800; color: var(--ad-navy); text-decoration: none; }
.dict-item-word:hover { color: var(--ad-blue); }
.dict-item-gloss { display: block; color: var(--ad-muted); font-size: .85rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dict-item-side { display: flex; align-items: center; gap: .4rem; flex: none; }
.dict-empty { color: var(--ad-muted); padding: .6rem .2rem; }
.dict-loadmore { display: block; width: 100%; margin-top: .6rem; padding: .6rem; border: 1px dashed var(--ad-line); border-radius: 11px; background: #F7FAFF; color: var(--ad-blue); font-weight: 700; cursor: pointer; }
.dict-loadmore:hover { border-color: var(--ad-blue); }

/* Selettore categorie nel form */
.dict-catpick { margin: 1.1rem 0; border: 1px solid var(--ad-line); border-radius: 14px; padding: .9rem 1.1rem; }
.dict-catpick legend { float: none; width: auto; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--ad-muted); padding: 0 .4rem; }
.dict-catpick-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .4rem .8rem; margin-bottom: .7rem; }
.dict-catpick-item { display: flex; align-items: center; gap: .45rem; font-size: .88rem; color: var(--ad-ink); text-transform: none; letter-spacing: normal; font-weight: 600; }
.dict-catpick-prim { display: flex; flex-direction: column; gap: .35rem; max-width: 320px; }

/* ============================ Modale + toast ============================ */
.admin-modal-content { border: 0; border-radius: 22px; box-shadow: var(--vision-shadow, 0 24px 65px rgba(18,53,91,.18)); }
.admin-modal-content .modal-header { border-bottom: 1px solid var(--ad-line); padding: 1.1rem 1.4rem; }
.admin-modal-content .modal-title { color: var(--ad-ink); font-weight: 900; letter-spacing: -.02em; }
.admin-modal-content .modal-body { padding: 1.4rem; }
.admin-modal-loading { padding: 2rem; text-align: center; color: var(--ad-muted); }
.admin-modal-content .admin-form-grid { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }

.admin-toasts { position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 1080; display: flex; flex-direction: column; gap: .5rem; }
.admin-toast { padding: .75rem 1.1rem; border-radius: 13px; color: #fff; font-weight: 700; font-size: .9rem; box-shadow: 0 14px 34px rgba(8,31,44,.22); opacity: 0; transform: translateY(8px); transition: opacity .25s, transform .25s; max-width: 360px; }
.admin-toast.is-in { opacity: 1; transform: translateY(0); }
.admin-toast.is-ok { background: linear-gradient(135deg, #168d82, #0EA5E9); }
.admin-toast.is-no { background: linear-gradient(135deg, #B42318, #E0892B); }

/* ===== Corpus: livello macroarea (sopra le categorie) ===== */
.dict-macro { border: 1px solid var(--ad-line); border-radius: 18px; overflow: hidden; background: radial-gradient(circle at 100% 0, rgba(37,99,235,.10), transparent 50%), #fff; }
.dict-macro + .dict-macro, .dict-cats > .dict-macro + .dict-cat { margin-top: .7rem; }
.dict-macro-head { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.3rem; }
.dict-macro-head::-webkit-details-marker { display: none; }
.dict-macro-head::before { content: "▸"; color: var(--ad-blue); transition: transform .15s; }
.dict-macro[open] .dict-macro-head::before { transform: rotate(90deg); }
.dict-macro-name { font-weight: 900; font-size: 1.05rem; letter-spacing: -.02em; color: var(--ad-navy); flex: 1; }
.dict-macro-meta { font-size: .78rem; color: var(--ad-muted); white-space: nowrap; }
.dict-macro-body { padding: .3rem 1rem 1rem; display: flex; flex-direction: column; gap: .55rem; }
.dict-macro-body .dict-cat { border-radius: 14px; }

/* ===== Gestione categorie a due livelli ===== */
.cat-macro { background: #fff; border: 1px solid var(--ad-line); border-radius: 18px; box-shadow: var(--ad-shadow); padding: 1.1rem 1.3rem; margin-bottom: 1rem; }
.cat-macro-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.cat-macro-head .admin-h2 { margin: 0; }
.cat-macro-act { display: flex; align-items: center; gap: .4rem; }
.cat-kids { margin-top: .9rem; box-shadow: none; }
.dict-catpick-macro { margin: .6rem 0 .2rem; font-size: .68rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; color: var(--ad-coral); }

/* ===================== Console missione (corpus) ===================== */
.mission-breadcrumb { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; font-size: .82rem; color: var(--ad-muted); margin-bottom: 1rem; }
.mission-breadcrumb a { color: var(--ad-blue); text-decoration: none; font-weight: 700; }
.mission-breadcrumb a:hover { text-decoration: underline; }
.mission-breadcrumb span { opacity: .5; }

.mission-hero { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap;
  padding: 1.5rem 1.7rem; border-radius: var(--ad-radius); color: #EAF2FF;
  background: radial-gradient(circle at 100% 0, rgba(37,99,235,.5), transparent 50%), linear-gradient(150deg, #081B35, #123F78 70%, #1E4FB0);
  box-shadow: var(--vision-shadow, 0 24px 65px rgba(18,53,91,.18)); margin-bottom: 1.6rem; }
.mission-hero-main { flex: 1; min-width: 260px; }
.mission-hero-kick { font-size: .68rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; color: #F2C75C; }
.mission-hero-sub { margin: .7rem 0 0; color: rgba(234,242,255,.85); font-size: .92rem; }
.mission-hero-sub b { color: #fff; font-size: 1.05rem; }
.mission-hero-sub strong { color: #F2C75C; }
.mission-hero-points { text-align: center; }
.mission-points-num { display: block; font-size: 2.6rem; font-weight: 900; letter-spacing: -.03em; color: #fff; line-height: 1; }
.mission-points-lab { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(234,242,255,.7); }

.mission-bar { height: 10px; border-radius: 999px; background: rgba(255,255,255,.22); overflow: hidden; margin-top: .35rem; }
.mission-bar-lg { height: 14px; }
.mission-fill { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #34D399, #0EA5E9); transition: width .5s ease; }
.mission-card .mission-bar, .mission-type .mission-bar { background: #E8EEF8; }
.mission-card .mission-fill, .mission-type .mission-fill { background: linear-gradient(90deg, var(--ad-teal), var(--ad-blue)); }

.mission-types { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .8rem; }
.mission-type { background: #fff; border: 1px solid var(--ad-line); border-radius: 14px; padding: .85rem 1rem; box-shadow: 0 8px 22px rgba(16,57,102,.05); }
.mission-type-name { font-weight: 800; color: var(--ad-navy); font-size: .92rem; }
.mission-type-num { font-size: .76rem; color: var(--ad-muted); }
.mission-types-compact { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1.2rem; }
.mission-chip { background: #EAF1FE; color: var(--ad-blue); border-radius: 9px; padding: .25rem .6rem; font-size: .78rem; font-weight: 600; }
.mission-chip b { color: var(--ad-ink); }

.mission-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1rem; }
.mission-card { display: flex; flex-direction: column; gap: .5rem; padding: 1.2rem 1.3rem; background: #fff; border: 1px solid var(--ad-line); border-radius: 18px; box-shadow: 0 10px 26px rgba(16,57,102,.07); text-decoration: none; transition: transform .12s, box-shadow .15s; }
.mission-card:hover { transform: translateY(-2px); box-shadow: 0 18px 38px rgba(16,57,102,.14); }
.mission-card.is-done { border-color: rgba(14,165,233,.4); background: linear-gradient(150deg, #fff, #E6F7F1); }
.mission-card-kick { font-size: .66rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: var(--ad-coral); }
.mission-card-title { font-size: 1.18rem; font-weight: 900; letter-spacing: -.02em; color: var(--ad-navy); }
.mission-card-foot { font-size: .78rem; color: var(--ad-muted); }
.mission-card-foot b { color: var(--ad-ink); }
.mission-card-go { margin-top: .2rem; font-weight: 800; color: var(--ad-blue); font-size: .85rem; }

.mission-block-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-top: .4rem; }
.mission-todo { display: flex; flex-direction: column; gap: .6rem; margin-top: .6rem; }
.mission-task { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: .9rem 1.1rem; background: #fff; border: 1px solid var(--ad-line); border-radius: 14px; box-shadow: 0 8px 20px rgba(16,57,102,.05); }
.mission-task-main { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; min-width: 0; }
.mission-task-word { font-weight: 900; color: var(--ad-navy); font-size: 1.05rem; }
.mission-task-gloss { color: var(--ad-muted); }
.mission-task-act { display: flex; align-items: center; gap: .4rem; }
.mission-next { margin-top: 1rem; text-align: center; }

.mission-done-box { text-align: center; padding: 2.2rem 1.5rem; background: linear-gradient(150deg, #fff, #E6F7F1); border: 1px solid rgba(14,165,233,.35); border-radius: var(--ad-radius); }
.mission-done-box strong { display: block; font-size: 1.3rem; color: var(--ad-navy); margin-bottom: .3rem; }
.mission-done-box p { color: var(--ad-muted); margin-bottom: 1.1rem; }
.mission-done-list { margin-top: 1.6rem; background: #fff; border: 1px solid var(--ad-line); border-radius: 14px; padding: .8rem 1.1rem; }
.mission-done-list summary { cursor: pointer; font-weight: 800; color: var(--ad-blue); }
.mission-done-grid { display: flex; flex-direction: column; gap: .35rem; margin-top: .7rem; }
.mission-done-item { font-size: .85rem; color: var(--ad-muted); }
.mission-done-item b { color: var(--ad-navy); }

@media (max-width: 720px) { .mission-hero { flex-direction: column; align-items: flex-start; } .mission-task-act { width: 100%; } }

/* ===================== Form voce semplificato ===================== */
.termine-form .tf-big { display: flex; flex-direction: column; gap: .4rem; margin-bottom: 1rem; font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--ad-muted); }
.termine-form .tf-big input { font: inherit; text-transform: none; letter-spacing: normal; font-weight: 500; font-size: 1.1rem; color: var(--ad-ink); padding: .75rem .95rem; border: 1px solid var(--ad-line); border-radius: 13px; background: #fff; }
.termine-form .tf-big input:focus { outline: none; border-color: var(--ad-blue); box-shadow: 0 0 0 3px rgba(37,99,235,.14); }
.tf-req { display: inline-block; margin-left: .4rem; font-size: .6rem; font-weight: 900; letter-spacing: .08em; color: var(--ad-coral); background: #FDECEC; padding: .12rem .4rem; border-radius: 6px; vertical-align: middle; }

.tf-switches { display: flex; flex-wrap: wrap; gap: 1.4rem; margin: 1.2rem 0; }
.termine-form .tf-switch { display: inline-flex; flex-direction: row; align-items: center; gap: .6rem; cursor: pointer; }
.tf-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.tf-slider { flex: none; width: 44px; height: 25px; border-radius: 999px; background: #CBD5E1; position: relative; transition: background .2s; }
.tf-slider::after { content: ""; position: absolute; top: 3px; left: 3px; width: 19px; height: 19px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(0,0,0,.2); transition: transform .2s; }
.tf-switch input:checked + .tf-slider { background: linear-gradient(135deg, var(--ad-coral), var(--ad-blue)); }
.tf-switch input:checked + .tf-slider::after { transform: translateX(19px); }
.tf-switch input:focus + .tf-slider { box-shadow: 0 0 0 3px rgba(37,99,235,.2); }
.tf-switch-txt { font-size: .92rem; font-weight: 600; color: var(--ad-ink); }

.tf-more { border: 1px solid var(--ad-line); border-radius: 14px; background: #fff; margin: .8rem 0; overflow: hidden; }
.tf-more summary { cursor: pointer; padding: .8rem 1rem; font-weight: 700; color: var(--ad-blue); list-style: none; }
.tf-more summary::-webkit-details-marker { display: none; }
.tf-more summary::before { content: "＋ "; font-weight: 900; }
.tf-more[open] summary::before { content: "－ "; }
.tf-more[open] summary { border-bottom: 1px solid var(--ad-line); }
.tf-more-body { padding: 1rem; }

/* ===== Percorsi extra come chip rimovibili ===== */
.tf-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .7rem; }
.tf-chips:empty { display: none; }
.tf-chip { display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .3rem .35rem .75rem; background: #EAF1FE; color: var(--ad-ink); border: 1px solid rgba(37,99,235,.25); border-radius: 999px; font-size: .85rem; font-weight: 600; }
.tf-chip-x { border: 0; background: rgba(37,99,235,.15); color: var(--ad-blue); width: 20px; height: 20px; border-radius: 50%; line-height: 1; font-size: .95rem; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.tf-chip-x:hover { background: var(--ad-blue); color: #fff; }
.termine-form .tf-add-perc { font: inherit; color: var(--ad-ink); padding: .6rem .8rem; border: 1px solid var(--ad-line); border-radius: 11px; background: #fff; max-width: 340px; }
.termine-form .tf-add-perc:focus { outline: none; border-color: var(--ad-blue); box-shadow: 0 0 0 3px rgba(37,99,235,.14); }
.tf-hint { margin: .6rem 0 0; font-size: .8rem; color: var(--ad-muted); }

/* ===================== Missione: interfaccia parlante ===================== */
.mission-hero-cta { margin: .6rem 0 0; font-size: .92rem; color: #EAF2FF; }
.mission-hero-cta b { color: #F2C75C; }

/* Banner "colpo facile" */
.mission-suggest { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; text-decoration: none;
  padding: 1rem 1.3rem; margin-bottom: 1.4rem; border-radius: 16px;
  background: linear-gradient(135deg, #FFF7E6, #FDEFD0); border: 1px solid rgba(214,168,75,.5);
  box-shadow: 0 12px 28px rgba(214,168,75,.18); transition: transform .12s, box-shadow .15s; }
.mission-suggest:hover { transform: translateY(-2px); box-shadow: 0 18px 38px rgba(214,168,75,.28); }
.mission-suggest-badge { flex: none; font-size: .66rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; color: #7A5200; background: #F2C75C; padding: .35rem .7rem; border-radius: 999px; }
.mission-suggest-txt { flex: 1; min-width: 220px; color: #5A4a26; font-size: .95rem; }
.mission-suggest-txt b { color: #3d2f12; }
.mission-suggest-go { flex: none; font-weight: 900; color: #7A5200; }

/* Etichette di stato */
.mission-state { align-self: flex-start; font-size: .64rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; padding: .25rem .6rem; border-radius: 999px; }
.mission-state.ms-0 { color: #6B4A9E; background: #EEE6FA; }
.mission-state.ms-1 { color: #B45309; background: #FDEBCF; }
.mission-state.ms-2 { color: #1D4ED8; background: #E3ECFB; }
.mission-state.ms-3 { color: #0E7490; background: #D7F1F7; }
.mission-state.ms-4 { color: #047857; background: #D6F5EC; }

/* Righe parlanti nelle carte */
.mission-card-say { color: var(--ad-ink); font-weight: 600; font-size: .9rem; }
.mission-card-line { font-size: .82rem; color: var(--ad-muted); }
.mission-card-line b { color: var(--ad-ink); }
.mission-card-palio { color: #9A6B10; font-weight: 700; }
.mission-card-meta { opacity: .8; }

/* ============ Schede-gioco (mcard) + KPI (tcard): ordine, colore, simmetria ============ */
.accent-0 { --ac: #2563EB; --ac2: #60A5FA; }
.accent-1 { --ac: #4F6BEF; --ac2: #8FA2FF; }
.accent-2 { --ac: #0EA5E9; --ac2: #56C9F2; }
.accent-3 { --ac: #C98A1E; --ac2: #F2C75C; }
.accent-4 { --ac: #7C3AED; --ac2: #A78BFA; }
.accent-5 { --ac: #E0892B; --ac2: #F6B45A; }

.mcard { position: relative; display: flex; flex-direction: column; gap: .6rem; padding: 1.25rem 1.2rem 1.1rem; background: #fff; border: 1px solid var(--ad-line); border-radius: 18px; box-shadow: 0 10px 26px rgba(16,57,102,.07); text-decoration: none; overflow: hidden; transition: transform .12s, box-shadow .15s; }
.mcard::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: linear-gradient(90deg, var(--ac), var(--ac2)); }
.mcard:hover { transform: translateY(-3px); box-shadow: 0 20px 42px rgba(16,57,102,.16); }
.mcard.is-done { background: linear-gradient(160deg, #fff, #E9F8F1); }
.mcard-top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.mcard-hot { flex: none; font-size: .62rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; color: #7A5200; background: linear-gradient(135deg, #FFE08A, #F2C75C); padding: .24rem .6rem; border-radius: 999px; box-shadow: 0 5px 12px rgba(214,168,75,.4); }
.mcard-title { font-size: 1.15rem; font-weight: 900; letter-spacing: -.02em; color: var(--ad-navy); line-height: 1.16; }
.mcard-prog { display: flex; align-items: center; gap: .65rem; }
.mcard-prog .mission-bar { flex: 1; margin-top: 0; background: #E8EEF8; }
.mcard .mission-fill { background: linear-gradient(90deg, var(--ac), var(--ac2)); }
.mcard-pct { font-weight: 900; color: var(--ac); font-size: .92rem; min-width: 36px; text-align: right; }
.ms-stats { display: grid; grid-template-columns: repeat(3, 1fr); background: #F5F8FE; border-radius: 12px; padding: .65rem 0; }
.ms-stat { display: flex; flex-direction: column; align-items: center; gap: .12rem; border-right: 1px solid #E4ECF7; }
.ms-stat:last-child { border-right: 0; }
.ms-num { font-weight: 900; font-size: 1.12rem; line-height: 1; letter-spacing: -.02em; }
.ms-num.do { color: var(--ad-ink); }
.ms-num.pt { color: #B4790F; }
.ms-num.pe { color: var(--ad-blue); }
.ms-lab { font-size: .6rem; text-transform: uppercase; letter-spacing: .05em; color: var(--ad-muted); }
.mcard-say { font-size: .85rem; color: var(--ad-muted); font-weight: 600; }
.mcard-cta { margin-top: .1rem; text-align: center; font-weight: 900; font-size: .9rem; color: #fff; background: linear-gradient(135deg, var(--ac), var(--ac2)); padding: .6rem; border-radius: 12px; box-shadow: 0 8px 18px rgba(37,99,235,.18); }
.mcard:hover .mcard-cta { filter: brightness(1.06); }

.tcard-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .8rem; }
.tcard { position: relative; display: flex; flex-direction: column; gap: .25rem; padding: 1rem 1.1rem 1.1rem; background: #fff; border: 1px solid var(--ad-line); border-radius: 14px; box-shadow: 0 8px 20px rgba(16,57,102,.05); overflow: hidden; }
.tcard::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--ac), var(--ac2)); }
.tcard-lab { font-size: .66rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; color: var(--ad-muted); }
.tcard-num { font-size: 1.9rem; font-weight: 900; letter-spacing: -.03em; color: var(--ac); line-height: 1; }
.tcard-sub { font-size: .76rem; color: var(--ad-muted); }
.tcard-sub b { color: var(--ad-ink); }
.tcard .mission-bar { margin-top: .45rem; background: #E8EEF8; }
.tcard .mission-fill { background: linear-gradient(90deg, var(--ac), var(--ac2)); }

/* ============ Icone + rifiniture simmetria ============ */
.icn { width: 1em; height: 1em; display: inline-block; vertical-align: -.14em; flex: none; }
.mission-hero-kick { display: inline-flex; align-items: center; gap: .4rem; }
.mission-hero-kick .icn { width: .95em; height: .95em; }
.mission-hero-cta { display: flex; align-items: center; gap: .4rem; }
.mission-hero-cta .icn { color: #F2C75C; width: .95em; height: .95em; }
.mission-suggest-badge { display: inline-flex; align-items: center; gap: .3rem; }
.mission-suggest-badge .icn { width: .85em; height: .85em; }
.mission-suggest-go .icn { width: 1.15rem; height: 1.15rem; }

/* schede missione */
.mcard-ico { width: 36px; height: 36px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, var(--ac), var(--ac2)); flex: none; }
.mcard-ico .icn { width: 20px; height: 20px; }
.mcard-hot { margin-left: auto; display: inline-flex; align-items: center; gap: .28rem; }
.mcard-hot .icn { width: .85em; height: .85em; }
.mcard-cta { display: flex; align-items: center; justify-content: center; gap: .35rem; }
.mcard-cta .icn { width: 1rem; height: 1rem; }
.ms-ico { display: inline-flex; }
.ms-ico .icn { width: 15px; height: 15px; }
.ms-ico.do { color: var(--ad-teal); }
.ms-ico.pt { color: #C98A1E; }
.ms-ico.pe { color: var(--ad-blue); }
.ms-stat { gap: .14rem; padding: 0 .2rem; }

/* KPI simmetrici: colonne fisse, icona in testa, barra allineata in fondo */
.tcard-grid { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) { .tcard-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .tcard-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 440px) { .tcard-grid { grid-template-columns: 1fr; } }
.tcard { min-height: 156px; }
.tcard-head { display: flex; align-items: center; gap: .5rem; }
.tcard-ico { width: 28px; height: 28px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, var(--ac), var(--ac2)); flex: none; }
.tcard-ico .icn { width: 15px; height: 15px; }
.tcard-lab { font-size: .64rem; }
.tcard .tcard-bar { margin-top: auto; }

/* ============ Numeri più piccoli + cruscotto grafici + Forziere + vita ============ */
.mission-points-num { font-size: 2rem; }
.tcard-num { font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.ms-num { font-size: .92rem; font-variant-numeric: tabular-nums; }

/* Cruscotto grafici */
.corpus-dash { display: grid; grid-template-columns: 320px 1fr; gap: 1rem; margin: 0 0 1.6rem; }
@media (max-width: 820px) { .corpus-dash { grid-template-columns: 1fr; } }
.dash-card { background: #fff; border: 1px solid var(--ad-line); border-radius: 18px; padding: 1.1rem 1.2rem; box-shadow: var(--ad-shadow); }
.dash-head { display: flex; align-items: center; gap: .55rem; margin-bottom: .8rem; }
.dash-head h3 { margin: 0; font-size: .98rem; font-weight: 800; color: var(--ad-ink); letter-spacing: -.01em; }
.dash-ico { width: 30px; height: 30px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, var(--ac, #2563EB), var(--ac2, #60A5FA)); flex: none; }
.dash-ico .icn { width: 16px; height: 16px; }
.dash-doughnut { position: relative; height: 190px; }
.dash-center { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: .06rem; pointer-events: none; }
.dash-center b { font-size: 1.9rem; font-weight: 900; color: var(--ad-ink); letter-spacing: -.03em; }
.dash-center span { font-size: .9rem; font-weight: 800; color: var(--ad-muted); align-self: flex-start; margin-top: 1.9rem; }
.dash-canvas { position: relative; height: 210px; }
.dash-note { margin: .6rem 0 0; text-align: center; font-size: .8rem; color: var(--ad-muted); }

/* Forziere del Guardiano */
.forziere { margin-top: 1.4rem; background: linear-gradient(160deg, #fff, #FBF3DF); border: 1px solid rgba(214,168,75,.45); border-radius: 18px; overflow: hidden; }
.forziere > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: .55rem; padding: .95rem 1.1rem; font-weight: 900; color: #7A5200; }
.forziere > summary::-webkit-details-marker { display: none; }
.forziere-ico { width: 30px; height: 30px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; color: #7A5200; background: linear-gradient(135deg, #F2C75C, #FFE08A); flex: none; }
.forziere-ico .icn { width: 17px; height: 17px; }
.forziere-count { margin-left: auto; font-size: .68rem; font-weight: 800; color: #9A6B10; background: #F7E7BF; padding: .22rem .6rem; border-radius: 999px; text-transform: uppercase; letter-spacing: .05em; }
.forziere-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .7rem; padding: .3rem 1rem 1.1rem; }
.forziere-card { display: grid; grid-template-columns: auto 1fr; column-gap: .7rem; align-items: center; padding: .8rem .9rem; background: #fff; border: 1px solid rgba(214,168,75,.4); border-radius: 13px; text-decoration: none; box-shadow: 0 8px 18px rgba(214,168,75,.12); transition: transform .12s; }
.forziere-card:hover { transform: translateY(-2px); }
.forziere-medal { grid-row: 1 / span 2; width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, #E8B23A, #F2C75C); }
.forziere-medal .icn { width: 18px; height: 18px; }
.forziere-name { font-weight: 800; color: #5A4A26; font-size: .9rem; line-height: 1.15; }
.forziere-meta { font-size: .72rem; color: #9A6B10; }

/* Vita: barre che scorrono, badge che pulsano */
.mission-bar.is-live .mission-fill { position: relative; overflow: hidden; }
.mission-bar.is-live .mission-fill::after { content: ""; position: absolute; top: 0; bottom: 0; width: 40%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent); animation: ms-shimmer 2.4s linear infinite; }
@keyframes ms-shimmer { 0% { transform: translateX(-130%); } 100% { transform: translateX(260%); } }
@keyframes ms-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }
.mcard-hot.is-pulse { animation: ms-pulse 1.6s ease-in-out infinite; }
@keyframes ms-glow { 0%, 100% { box-shadow: 0 12px 28px rgba(214,168,75,.18); } 50% { box-shadow: 0 18px 42px rgba(214,168,75,.42); } }
.mission-suggest.is-pulse { animation: ms-glow 2.4s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .is-pulse, .mission-bar.is-live .mission-fill::after { animation: none; } }

/* ============ KPI in colonna blu (a sinistra) accanto ai grafici ============ */
.corpus-cruscotto { display: grid; grid-template-columns: 300px 1fr; gap: 1rem; margin: 0 0 1.6rem; align-items: start; }
@media (max-width: 1080px) { .corpus-cruscotto { grid-template-columns: 1fr; } }
.dash-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-content: start; }
.dash-card--wide { grid-column: 1 / -1; }
@media (max-width: 680px) { .dash-cards { grid-template-columns: 1fr; } }

.kpi-rail { background: radial-gradient(circle at 100% 0, rgba(37,99,235,.5), transparent 46%), linear-gradient(160deg, #081B35 0%, #123F78 64%, #1E4FB0 100%); border-radius: 22px; padding: 1.3rem 1.2rem; color: #EAF2FF; box-shadow: var(--vision-shadow, 0 24px 65px rgba(18,53,91,.18)); }
.kpi-rail h3 { margin: 0; font-size: 1.05rem; font-weight: 900; color: #fff; letter-spacing: -.02em; }
.kpi-rail-sub { margin: .2rem 0 1rem; font-size: .78rem; color: rgba(234,242,255,.7); }
.kpi-list { list-style: none; margin: 0; padding: 0; }
.kpi-row { display: grid; grid-template-columns: auto 1fr auto; gap: .6rem; align-items: center; padding: .6rem .1rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.kpi-row:last-child { border-bottom: 0; }
.kpi-ico { width: 32px; height: 32px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; color: #EAF2FF; background: rgba(255,255,255,.12); flex: none; }
.kpi-ico .icn { width: 16px; height: 16px; }
.kpi-body { min-width: 0; }
.kpi-lab { display: block; font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: rgba(234,242,255,.85); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi-bar { display: block; height: 5px; border-radius: 999px; background: rgba(255,255,255,.16); overflow: hidden; margin-top: .4rem; }
.kpi-bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #34D399, #0EA5E9); transition: width .5s ease; }
.kpi-nums { text-align: right; white-space: nowrap; }
.kpi-nums b { font-size: 1.1rem; font-weight: 900; color: #fff; font-variant-numeric: tabular-nums; }
.kpi-nums small { display: block; font-size: .64rem; color: rgba(234,242,255,.6); }

/* Card missione fisse (stessa altezza, CTA in fondo) + stato vuoto forziere */
.mcard { min-height: 252px; }
.mcard-cta { margin-top: auto; }
.forziere-empty { grid-column: 1 / -1; margin: 0; padding: .4rem .4rem 1rem; color: #7A5200; font-size: .9rem; }
.forziere-empty b { color: #5A4A26; }

/* ============ Esperienza epica: CTA, hero, cruscotto fisso (HUD) ============ */
.btn-ok .icn, .btn-soft .icn, .btn-no .icn { width: .95em; height: .95em; vertical-align: -.12em; }

.hero-cta { display: inline-flex; align-items: center; gap: .4rem; margin-top: 1rem; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.28); color: #fff; font-weight: 800; padding: .6rem 1.1rem; border-radius: 12px; text-decoration: none; transition: background .15s, transform .1s; }
.hero-cta:hover { background: rgba(255,255,255,.24); transform: translateY(-1px); color: #fff; }
.hero-cta .icn { width: 1rem; height: 1rem; }
.hero-cta .icn:first-child { color: #F2C75C; }

.kpi-cta { display: flex; align-items: center; justify-content: center; gap: .4rem; margin-top: 1.1rem; background: linear-gradient(135deg, #34D399, #0EA5E9); color: #05323a; font-weight: 900; padding: .65rem; border-radius: 12px; text-decoration: none; transition: filter .15s, transform .1s; }
.kpi-cta:hover { filter: brightness(1.06); transform: translateY(-1px); color: #05323a; }
.kpi-cta .icn { width: 1rem; height: 1rem; }

/* Cruscotto fisso in basso (HUD) */
.hud-spacer { height: 88px; }
.hud { position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; padding: .7rem clamp(1rem, 4vw, 2.4rem); color: #EAF2FF; background: radial-gradient(circle at 0 0, rgba(37,99,235,.5), transparent 40%), linear-gradient(90deg, #081B35, #123F78 60%, #1E4FB0); border-top: 1px solid rgba(255,255,255,.14); box-shadow: 0 -12px 34px rgba(8,27,53,.4); }
.hud-item { display: flex; align-items: center; gap: .5rem; }
.hud-prog { flex: 1; min-width: 220px; flex-direction: column; align-items: stretch; gap: .25rem; }
.hud-lab { display: flex; align-items: center; gap: .35rem; font-size: .62rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: #F2C75C; }
.hud-lab .icn { width: .9em; height: .9em; }
.hud-bar { height: 8px; border-radius: 999px; background: rgba(255,255,255,.18); overflow: hidden; }
.hud-bar span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #34D399, #0EA5E9); transition: width .5s ease; }
.hud-val { font-size: .76rem; color: rgba(234,242,255,.85); }
.hud-val b { color: #fff; }
.hud-gloria, .hud-forziere { background: rgba(255,255,255,.09); border-radius: 12px; padding: .5rem .85rem; text-decoration: none; color: #EAF2FF; font-size: .86rem; white-space: nowrap; }
.hud-gloria .icn, .hud-forziere .icn { width: 1rem; height: 1rem; color: #F2C75C; }
.hud-gloria b, .hud-forziere b { color: #fff; font-weight: 900; }
.hud-forziere { transition: background .15s; }
.hud-forziere:hover { background: rgba(255,255,255,.18); }
.hud-cta { display: inline-flex; align-items: center; gap: .4rem; background: linear-gradient(135deg, #4F6BEF, #2563EB); color: #fff; font-weight: 900; padding: .65rem 1.15rem; border-radius: 13px; text-decoration: none; box-shadow: 0 10px 24px rgba(37,99,235,.45); white-space: nowrap; transition: filter .15s, transform .1s; }
.hud-cta:hover { filter: brightness(1.08); transform: translateY(-1px); color: #fff; }
.hud-cta .icn { width: 1rem; height: 1rem; }
@media (max-width: 680px) { .hud-prog { flex-basis: 100%; } .hud-gloria span, .hud-forziere span { display: none; } .hud-cta { flex: 1; justify-content: center; } }

/* ============ Wizard epico: Gloria totale, doppia CTA, chip "qui" nell'HUD ============ */
.mission-points-tot { display: block; margin-top: .3rem; font-size: .72rem; color: rgba(234,242,255,.72); }
.mission-points-tot b { color: #fff; font-weight: 800; }
.mission-done-cta { display: flex; gap: .6rem; justify-content: center; flex-wrap: wrap; margin-top: .3rem; }
.mission-done-box strong .icn { width: 1.05em; height: 1.05em; vertical-align: -.14em; color: #D6A84B; margin-right: .2rem; }
.mission-done-list summary .icn { width: 1em; height: 1em; vertical-align: -.12em; margin-right: .25rem; color: #2563EB; }
.hud-here { background: rgba(255,255,255,.09); border-radius: 12px; padding: .5rem .85rem; font-size: .86rem; white-space: nowrap; color: #EAF2FF; }
.hud-here .icn { width: 1rem; height: 1rem; color: #34D399; }
.hud-here b { color: #fff; font-weight: 900; }

/* ============ Sala del Trono (dashboard) ============ */
.trono-cards { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
.trono-card { text-decoration: none; transition: transform .12s, box-shadow .14s, border-color .14s; }
a.trono-card:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(11, 31, 58, .14); border-color: #2563EB; }
.trono-num { display: block; font-size: 1.9rem; font-weight: 900; color: #0B1F3A; letter-spacing: -.02em; font-variant-numeric: tabular-nums; margin: .15rem 0 .1rem; }
.trono-card.is-caldo { border-color: rgba(201, 138, 30, .6); background: linear-gradient(160deg, #FFFDF5, #FFF6DF); }
.trono-card.is-caldo .dash-ico { background: linear-gradient(135deg, #C98A1E, #F2C75C); }
.trono-grafici { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); margin-top: 1rem; }

/* ============ Il Vaglio del Guardiano (validazione) ============ */
.vg-attesa { display: inline-flex; flex-direction: column; align-items: center; gap: .1rem; padding: .7rem 1.3rem; border-radius: 16px; color: #fff; background: radial-gradient(circle at 80% 0, rgba(37, 99, 235, .55), transparent 45%), linear-gradient(135deg, #0B1F3A, #1E4FB0); box-shadow: 0 14px 30px rgba(11, 31, 58, .3); }
.vg-attesa b { font-size: 1.6rem; font-weight: 900; font-variant-numeric: tabular-nums; }
.vg-attesa small { font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #F2C75C; }
.vg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); gap: 1rem; }
.vg-card { display: flex; flex-direction: column; gap: .45rem; background: #fff; border: 1px solid rgba(11, 31, 58, .1); border-left: 4px solid #2563EB; border-radius: 14px; padding: 1rem 1.15rem; box-shadow: 0 10px 26px rgba(11, 31, 58, .07); }
.vg-testa { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; }
.vg-chip { display: inline-flex; align-items: center; gap: .3rem; font-size: .66rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #4A5B74; background: #EFF4FB; border-radius: 999px; padding: .22rem .6rem; }
.vg-chip .icn, .vg-chip svg { width: .95em; height: .95em; }
.vg-chip-comune { color: #1D4ED8; background: #E4EDFD; }
.vg-chip-audio { color: #7C3AED; background: #F1EAFE; }
.vg-chip-warn { color: #92400E; background: #FEF3C7; }
.vg-data { margin-left: auto; font-size: .7rem; color: #7C8AA0; }
.vg-forma { margin: 0; font-size: 1.35rem; font-weight: 900; color: #0B1F3A; letter-spacing: -.01em; line-height: 1.25; }
.vg-ita { margin: 0; font-size: .86rem; color: #4A5B74; }
.vg-ita small { color: #7C8AA0; }
.vg-extra { display: grid; gap: .15rem; margin: 0; font-size: .8rem; color: #4A5B74; background: #F7FAFF; border-radius: 10px; padding: .5rem .7rem; }
.vg-piede { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; margin-top: .3rem; padding-top: .6rem; border-top: 1px dashed rgba(11, 31, 58, .12); }
.vg-autore { display: inline-flex; align-items: center; gap: .3rem; font-size: .8rem; font-weight: 700; color: #0B1F3A; }
.vg-autore svg { width: .95em; height: .95em; color: #2563EB; }
.vg-voti { display: inline-flex; gap: .4rem; flex-wrap: wrap; }
.vg-voto { font-size: .68rem; font-weight: 800; border-radius: 999px; padding: .22rem .6rem; }
.vg-voto.si { color: #14532D; background: #DCFCE7; }
.vg-voto.no { color: #7F1D1D; background: #FEE2E2; }
.vg-voto.zero { color: #7C8AA0; background: #F0F3F8; }
.vg-azioni { margin-left: auto; display: inline-flex; gap: .45rem; }
.vg-azioni .btn-ok { display: inline-flex; align-items: center; gap: .35rem; }
.vg-azioni .btn-ok svg { width: .95em; height: .95em; }
.vg-vuoto { text-align: center; background: #fff; border: 1px dashed rgba(11, 31, 58, .2); border-radius: 18px; padding: 2.6rem 1.4rem; }
.vg-vuoto-ico { display: inline-flex; width: 54px; height: 54px; border-radius: 16px; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, #059669, #34D399); margin-bottom: .7rem; }
.vg-vuoto-ico svg { width: 26px; height: 26px; }
.vg-vuoto h2 { margin: 0 0 .3rem; font-size: 1.25rem; font-weight: 900; color: #0B1F3A; }
.vg-vuoto p { margin: 0; color: #4A5B74; }
.vg-nota { margin-top: .9rem; }

/* ============ Sidebar riorganizzata: icone, badge, aree ============ */
.admin-brand { display: flex; align-items: center; gap: .5rem; font-weight: 900; color: #0B1F3A; }
.admin-brand svg { width: 1.1rem; height: 1.1rem; color: #2563EB; }
.admin-group { margin: 1rem 0 .3rem; font-size: .6rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; color: #94A3B8; }
.admin-nav-link { display: flex; align-items: center; gap: .55rem; border-radius: 10px; padding: .48rem .65rem; font-size: .86rem; font-weight: 700; color: #4A5B74; text-decoration: none; transition: background .12s, color .12s; }
.admin-nav-link:hover { background: rgba(37, 99, 235, .07); color: #0B1F3A; }
.admin-nav-link.is-active { background: linear-gradient(135deg, rgba(37, 99, 235, .12), rgba(14, 165, 233, .14)); color: #0B1F3A; box-shadow: inset 3px 0 0 #2563EB; }
.admin-nav-ico { display: inline-flex; width: 1.6rem; flex: none; }
.admin-nav-ico svg { width: 1rem; height: 1rem; color: #64748B; }
.admin-nav-link.is-active .admin-nav-ico svg, .admin-nav-link:hover .admin-nav-ico svg { color: #2563EB; }
.admin-nav-badge { margin-left: auto; min-width: 1.5rem; text-align: center; font-size: .66rem; font-weight: 900; color: #fff; background: linear-gradient(135deg, #C98A1E, #F2C75C); border-radius: 999px; padding: .14rem .4rem; box-shadow: 0 4px 10px rgba(201, 138, 30, .4); }
.vg-correggi { margin-left: auto; }
.vg-correggi + .vg-azioni { margin-left: 0; }
.vg-link { white-space: nowrap; }

/* ============ Correzione: sidebar navy → testi chiari ============ */
.admin-brand { color: #fff; }
.admin-brand svg { color: #F2C75C; }
.admin-group { color: rgba(234, 242, 255, .45); }
.admin-nav-link { color: rgba(234, 242, 255, .78); }
.admin-nav-link:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.admin-nav-link.is-active { background: rgba(255, 255, 255, .12); color: #fff; box-shadow: inset 3px 0 0 #F2C75C; }
.admin-nav-ico svg { color: rgba(234, 242, 255, .6); }
.admin-nav-link.is-active .admin-nav-ico svg, .admin-nav-link:hover .admin-nav-ico svg { color: #F2C75C; }
.admin-nav-badge { color: #3B2A05; }
.admin-back { color: rgba(234, 242, 255, .65); }
.admin-back:hover { color: #fff; }

/* ============ I Custodi del regno (utenti) ============ */
.cu-lista { display: grid; gap: .6rem; }
.cu-riga { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto auto; align-items: center; gap: 1rem; background: #fff; border: 1px solid rgba(11, 31, 58, .1); border-radius: 13px; padding: .7rem .95rem; box-shadow: 0 6px 16px rgba(11, 31, 58, .05); }
.cu-riga.is-spento { opacity: .62; background: #F6F8FB; }
.cu-avatar { width: 46px; height: 46px; border-radius: 13px; display: inline-flex; align-items: center; justify-content: center; font-weight: 900; font-size: 1.15rem; color: #fff; background: linear-gradient(135deg, #2563EB, #0EA5E9); }
.cu-avatar--admin { background: linear-gradient(135deg, #C98A1E, #F2C75C); color: #3B2A05; }
.cu-avatar--revisore { background: linear-gradient(135deg, #7C3AED, #A78BFA); }
.cu-avatar--proloco, .cu-avatar--associazione, .cu-avatar--scuola, .cu-avatar--provincia { background: linear-gradient(135deg, #059669, #34D399); }
.cu-chi { display: grid; gap: .12rem; min-width: 0; }
.cu-chi b { font-size: .95rem; color: #0B1F3A; }
.cu-io { font-style: normal; font-size: .72rem; color: #2563EB; }
.cu-chi small { color: #64748B; overflow: hidden; text-overflow: ellipsis; }
.cu-chips { display: flex; gap: .35rem; flex-wrap: wrap; margin-top: .15rem; }
.cu-chip { display: inline-flex; align-items: center; gap: .3rem; font-size: .62rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #4A5B74; background: #EFF4FB; border-radius: 999px; padding: .2rem .55rem; }
.cu-chip svg { width: .9em; height: .9em; }
.cu-chip--ruolo { color: #1D4ED8; background: #E4EDFD; }
.cu-chip--ok { color: #14532D; background: #DCFCE7; }
.cu-chip--warn { color: #92400E; background: #FEF3C7; }
.cu-chip--no { color: #7F1D1D; background: #FEE2E2; }
.cu-numeri { display: inline-flex; gap: 1.1rem; }
.cu-numeri span { display: grid; justify-items: center; gap: 0; }
.cu-numeri b { font-size: 1.05rem; font-weight: 900; color: #0B1F3A; font-variant-numeric: tabular-nums; }
.cu-numeri small { font-size: .6rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: #94A3B8; }
.cu-verde { color: #059669 !important; }
.cu-oro { color: #C98A1E !important; }
.cu-azioni { display: inline-flex; gap: .4rem; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 860px) { .cu-riga { grid-template-columns: 46px 1fr; } .cu-numeri, .cu-azioni { grid-column: 2; justify-content: flex-start; } }

/* ============ Le Compagnie (squadre) ============ */
.sq-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 1rem; }
.sq-card { display: flex; flex-direction: column; gap: .6rem; background: #fff; border: 1px solid rgba(11, 31, 58, .1); border-left: 4px solid #94A3B8; border-radius: 14px; padding: 1rem 1.1rem; box-shadow: 0 8px 20px rgba(11, 31, 58, .06); }
.sq-card--attiva { border-left-color: #059669; }
.sq-card--bozza { border-left-color: #94A3B8; }
.sq-card--sospesa { border-left-color: #C98A1E; }
.sq-card--chiusa { border-left-color: #B91C1C; opacity: .75; }
.sq-testa { display: flex; align-items: flex-start; gap: .6rem; }
.sq-vessillo { flex: none; width: 38px; height: 38px; border-radius: 11px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, #123F78, #2563EB); }
.sq-vessillo svg { width: 18px; height: 18px; }
.sq-chi { display: grid; gap: .05rem; min-width: 0; }
.sq-chi b { font-size: 1rem; color: #0B1F3A; }
.sq-chi small { color: #64748B; font-style: italic; }
.sq-stato { margin-left: auto; font-size: .62rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; border-radius: 999px; padding: .22rem .6rem; }
.sq-stato--attiva { color: #14532D; background: #DCFCE7; }
.sq-stato--bozza { color: #475569; background: #E2E8F0; }
.sq-stato--sospesa { color: #92400E; background: #FEF3C7; }
.sq-stato--chiusa { color: #7F1D1D; background: #FEE2E2; }
.sq-chips { display: flex; gap: .35rem; flex-wrap: wrap; }
.sq-numeri { padding: .5rem 0 .1rem; border-top: 1px dashed rgba(11, 31, 58, .1); }
.sq-azioni { display: flex; gap: .45rem; flex-wrap: wrap; align-items: center; margin-top: auto; padding-top: .5rem; border-top: 1px dashed rgba(11, 31, 58, .1); }
.sq-azioni .btn-ok { display: inline-flex; align-items: center; gap: .35rem; }
.sq-azioni .btn-ok svg { width: .9em; height: .9em; }
.sq-profilo { margin-left: auto; display: inline-flex; align-items: center; gap: .3rem; }
.sq-profilo svg { width: .85em; height: .85em; }

/* Badge "voce nuova per il corpus" nel Vaglio */
.vg-chip-nuova { color: #5B21B6; background: #EDE9FE; }
.vg-chip-nuova svg { width: .9em; height: .9em; }

/* ============ Sala del Trono unificata ============ */
.trono-cards4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .trono-cards4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .trono-cards4 { grid-template-columns: 1fr; } }
.trono-trend { color: #0B7A55; font-weight: 700; }
.trono-box { margin-bottom: 1.1rem; }
.trono-box .dash-head { margin-bottom: .7rem; align-items: center; }
.trono-box .dash-head .admin-muted { margin-left: auto; font-size: .72rem; }
.trono-legenda { margin-left: auto; display: inline-flex; align-items: center; gap: .6rem; font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #64748B; }
.trono-legenda .leg { width: 14px; height: 4px; border-radius: 999px; display: inline-block; }
.trono-legenda .leg-blu { background: #1f54d6; }
.trono-legenda .leg-verde { background: #2f8f83; }
.chart-wrap-serie { height: 260px; }
.trono-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.1rem; }
@media (max-width: 1000px) { .trono-grid3 { grid-template-columns: 1fr; } }
.trono-kpi .account-panel-head h2 { display: inline-flex; align-items: center; gap: .45rem; }
.trono-kpi .account-panel-head h2 svg { width: 1rem; height: 1rem; color: #1f54d6; }
.kpi-lista { list-style: none; margin: 0; padding: 0; display: grid; }
.kpi-lista li { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .5rem 0; border-bottom: 1px dashed rgba(11, 31, 58, .1); }
.kpi-lista li:last-child { border-bottom: 0; }
.kpi-lista span { color: #4A5B74; font-size: .84rem; }
.kpi-lista b { font-size: 1rem; font-weight: 900; color: #0B1F3A; font-variant-numeric: tabular-nums; }
.kpi-verde { color: #0B7A55 !important; }
.kpi-ambra { color: #B45309 !important; }
.kpi-oro { color: #C98A1E !important; }

/* ============ I Badge del regno (catalogo modificabile) ============ */
.bg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 1rem; }
.bg-card { display: flex; flex-direction: column; gap: .55rem; background: #fff; border: 1px solid rgba(11, 31, 58, .1); border-left: 4px solid #C98A1E; border-radius: 14px; padding: 1rem 1.1rem; box-shadow: 0 8px 20px rgba(11, 31, 58, .06); }
.bg-card.is-spento { border-left-color: #94A3B8; opacity: .68; }
.bg-testa { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.bg-ico { font-size: 1.6rem; line-height: 1; }
.bg-chi { display: grid; gap: .05rem; min-width: 0; margin-right: auto; }
.bg-chi b { color: #0B1F3A; font-size: .95rem; }
.bg-chi small { color: #94A3B8; font-size: .68rem; }
.bg-regola { margin: 0; display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; font-size: .8rem; color: #4A5B74; }
.bg-regola svg { width: .9em; height: .9em; color: #2563EB; }
.bg-regola b { color: #0B1F3A; }
.bg-bonus { color: #C98A1E; font-weight: 800; }
.bg-descr { margin: 0; font-size: .8rem; color: #64748B; }
.bg-azioni { display: flex; align-items: flex-start; gap: .5rem; margin-top: auto; padding-top: .6rem; border-top: 1px dashed rgba(11, 31, 58, .1); }
.bg-modifica { flex: 1; }
.bg-modifica summary { list-style: none; display: inline-block; cursor: pointer; }
.bg-modifica summary::-webkit-details-marker { display: none; }
.bg-modifica[open] summary { opacity: .55; }
.bg-modifica .admin-form { margin-top: .7rem; background: #F7FAFF; border: 1px solid rgba(11, 31, 58, .1); border-radius: 12px; padding: .8rem; }
.bg-check { display: flex !important; align-items: center; gap: .45rem; font-size: .8rem; color: #4A5B74; }
.bg-check input { width: auto !important; }

/* Variante in modifica: la voce di corpus è fissa, non modificabile */
.admin-corpus-fisso { display: block; margin-top: .3rem; padding: .55rem .8rem; background: #F1F5FB; border: 1.5px solid rgba(11, 31, 58, .12); border-radius: 9px; font-weight: 700; color: #0B1F3A; }
.admin-corpus-fisso small { font-weight: 500; color: #64748B; }

/* ================================================================
   Esporta il dataset
   ================================================================ */
.export-wrap { display: grid; gap: 1.4rem; max-width: 900px; }
.export-h2 { font-size: .92rem; font-weight: 800; color: #0B1F3A; margin: 0 0 .8rem; }
.export-filtri { background: #fff; border: 1.5px solid rgba(11, 31, 58, .1); border-radius: 16px; padding: 1.3rem; }
.export-check-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; margin-bottom: 1rem; }
.export-check { display: flex; align-items: flex-start; gap: .55rem; padding: .7rem .8rem; border: 1.5px solid rgba(11, 31, 58, .12); border-radius: 12px; cursor: pointer; transition: all .15s; }
.export-check:hover { border-color: #2563EB; }
.export-check input:checked + span b { color: #2563EB; }
.export-check span { display: grid; gap: .1rem; }
.export-check b { font-size: .82rem; color: #0B1F3A; }
.export-check small { font-size: .68rem; color: #64748B; line-height: 1.3; }
.export-select-riga { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.export-select-riga label { display: grid; gap: .25rem; font-size: .76rem; font-weight: 700; color: #64748B; }
.export-select-riga select { padding: .5rem .7rem; border-radius: 9px; border: 1.5px solid rgba(11, 31, 58, .14); font: inherit; font-size: .84rem; }
.export-conteggio { display: flex; align-items: baseline; gap: .7rem; justify-content: center; padding: 1.5rem; background: linear-gradient(158deg, #F0F6FF, #E4EEFC); border-radius: 16px; }
.export-conteggio-num { font-size: 2.6rem; font-weight: 900; color: #2563EB; font-variant-numeric: tabular-nums; }
.export-conteggio-lab { font-size: .9rem; color: #4A5B74; }
.export-formati { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; }
.export-btn { display: grid; gap: .2rem; padding: 1.1rem; border-radius: 14px; border: 1.5px solid rgba(11, 31, 58, .14); background: #fff; cursor: pointer; text-align: left; transition: all .15s; }
.export-btn:hover:not(:disabled) { border-color: #2563EB; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(37, 99, 235, .12); }
.export-btn:disabled { opacity: .45; cursor: not-allowed; }
.export-btn b { font-size: .95rem; color: #0B1F3A; }
.export-btn small { font-size: .68rem; color: #64748B; line-height: 1.3; }
.export-btn--primary { border-color: #2563EB; background: linear-gradient(158deg, #F5F9FF, #EAF2FF); }
.export-btn--primary b { color: #2563EB; }
.export-vuoto { margin: .8rem 0 0; font-size: .82rem; color: #C98A1E; text-align: center; }
.export-nota { background: #F8FAFC; border-radius: 14px; padding: 1.1rem 1.3rem; }
.export-nota h3 { font-size: .82rem; font-weight: 800; color: #0B1F3A; margin: 0 0 .5rem; }
.export-nota p { font-size: .76rem; color: #64748B; line-height: 1.5; margin: 0 0 .5rem; }
.export-privacy { display: flex; align-items: center; gap: .4rem; color: #4A5B74 !important; }
.export-privacy svg { width: 14px; height: 14px; flex-shrink: 0; }
@media (max-width: 720px) {
  .export-check-grid, .export-formati, .export-select-riga { grid-template-columns: 1fr; }
}
.export-modalita { font-size: .74rem; color: #64748B; background: #F8FAFC; border-radius: 8px; padding: .5rem .7rem; margin: 0 0 1rem; line-height: 1.4; }
.export-modalita b { color: #0B1F3A; }
.export-check-grid--2 { grid-template-columns: repeat(2, 1fr); }
.export-select-riga--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 720px) { .export-check-grid--2, .export-select-riga--3 { grid-template-columns: 1fr; } }
.export-doc { background: #fff; border: 1.5px solid rgba(11, 31, 58, .1); border-radius: 16px; padding: 1.3rem; }
.export-nota code { background: #EAF2FF; color: #2563EB; padding: .1rem .35rem; border-radius: 5px; font-size: .82em; }


/* Audit copertura regole di gamification */
.admin-score-audit {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .9rem;
  margin: 0 0 1rem;
}
.admin-score-kpi {
  display: flex;
  align-items: baseline;
  gap: .65rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--ad-line);
  border-radius: var(--ad-radius);
  background: #fff;
  box-shadow: var(--ad-shadow);
}
.admin-score-kpi-value { font-size: 1.8rem; line-height: 1; font-weight: 900; }
.admin-score-kpi-label { color: var(--ad-muted); font-size: .84rem; font-weight: 800; }
.admin-score-kpi-ok .admin-score-kpi-value { color: #087863; }
.admin-score-kpi-warn .admin-score-kpi-value { color: #A35A00; }
.admin-score-kpi-missing .admin-score-kpi-value { color: #B42318; }
.admin-score-alert,
.admin-score-complete {
  margin: 0 0 1rem;
  padding: .9rem 1rem;
  border-radius: 14px;
  font-size: .9rem;
}
.admin-score-alert { color: #7A271A; background: #FEF3F2; border: 1px solid #FECDCA; }
.admin-score-complete { color: #05603A; background: #ECFDF3; border: 1px solid #ABEFC6; }
.admin-score-table-wrap { overflow-x: auto; margin-bottom: 1rem; }
.admin-score-table { min-width: 980px; }
.admin-score-row-missing td { background: #FFF8F7; }
.admin-score-row-off td { background: #FFFCF5; }
.admin-score-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78rem; font-weight: 900; color: #17456F; }
.admin-score-name { margin-top: .18rem; font-weight: 900; }
.admin-score-desc { max-width: 540px; margin-top: .2rem; color: var(--ad-muted); font-size: .78rem; line-height: 1.4; }
.admin-score-context { display: inline-flex; padding: .3rem .55rem; border-radius: 999px; background: #EEF6FF; color: #17456F; font-size: .72rem; font-weight: 900; white-space: nowrap; }
.admin-score-points { font-size: 1.1rem !important; font-weight: 900; }
.admin-pill-missing { color: #B42318; background: #FEE4E2; }
.admin-score-quickform {
  display: grid;
  grid-template-columns: 74px 74px auto;
  align-items: end;
  gap: .45rem;
  min-width: 250px;
}
.admin-score-quickform label { display: grid; gap: .2rem; color: var(--ad-muted); font-size: .67rem; font-weight: 900; }
.admin-score-quickform input { width: 100%; min-width: 0; padding: .55rem .5rem; border: 1px solid var(--ad-line); border-radius: 10px; background: #fff; color: var(--ad-ink); }
.admin-score-quickform .btn-ok { min-height: 38px; white-space: nowrap; }
.admin-score-extra { margin-top: 1rem; }
.admin-score-note { margin: .8rem 0; color: var(--ad-muted); font-size: .85rem; }
@media (max-width: 760px) {
  .admin-score-audit { grid-template-columns: 1fr; gap: .55rem; }
  .admin-score-kpi { padding: .8rem .9rem; }
  .admin-score-kpi-value { font-size: 1.5rem; }
}

/* ================================================================
   Console del Guardiano: pannello laterale collassabile
   Ripristino compatibilità con il markup mobile/tablet già presente.
   Sul desktop resta la sidebar; sotto 1080px diventa un drawer.
   ================================================================ */
.admin-mobile-bar,
.admin-sidebar-close,
.admin-drawer-backdrop {
    display: none;
}

.admin-sidebar-head {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
}

.admin-sidebar-head .admin-brand {
    flex: 1;
    min-width: 0;
}

@media (max-width: 1080px) {
    .admin-shell {
        position: relative;
    }

    .admin-layout {
        display: block;
    }

    .admin-content {
        width: 100%;
        min-width: 0;
    }

    .admin-mobile-bar {
        display: flex;
        justify-content: flex-end;
        margin-bottom: .85rem;
    }

    .admin-drawer-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: flex-start;
        gap: .7rem;
        max-width: 100%;
        min-height: 48px;
        padding: .58rem .82rem;
        border: 1px solid rgba(37, 99, 235, .2);
        border-radius: 15px;
        color: #0B1F3A;
        background: rgba(255, 255, 255, .94);
        box-shadow: 0 10px 26px rgba(11, 31, 58, .1);
        cursor: pointer;
        text-align: left;
        -webkit-tap-highlight-color: transparent;
    }

    .admin-drawer-toggle:focus-visible {
        outline: 3px solid rgba(37, 99, 235, .28);
        outline-offset: 2px;
    }

    .admin-drawer-toggle-ico {
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        gap: 4px;
        width: 34px;
        height: 34px;
        flex: none;
        padding: 0 8px;
        border-radius: 11px;
        color: #fff;
        background: linear-gradient(135deg, #123F78, #2563EB);
        box-shadow: 0 7px 16px rgba(37, 99, 235, .25);
    }

    .admin-drawer-toggle-ico span {
        display: block;
        width: 100%;
        height: 2px;
        border-radius: 99px;
        background: currentColor;
        transition: transform .2s ease, opacity .2s ease;
    }

    .admin-drawer-toggle-copy {
        display: grid;
        min-width: 0;
        line-height: 1.08;
    }

    .admin-drawer-toggle-copy strong {
        overflow: hidden;
        color: #0B1F3A;
        font-size: .86rem;
        font-weight: 900;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .admin-drawer-toggle-copy small {
        overflow: hidden;
        margin-top: .2rem;
        color: #64748B;
        font-size: .69rem;
        font-weight: 700;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .admin-drawer-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1088;
        background: rgba(6, 19, 38, .32);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .22s ease, visibility 0s linear .22s;
    }

    .admin-sidebar {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: auto;
        z-index: 1090;
        box-sizing: border-box;
        width: min(340px, calc(100vw - 52px));
        height: 100vh;
        height: 100dvh;
        max-height: none;
        margin: 0;
        padding: max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));
        border-radius: 24px 0 0 24px;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        transform: translate3d(105%, 0, 0);
        visibility: hidden;
        box-shadow: -22px 0 55px rgba(6, 19, 38, .34);
        transition: transform .25s cubic-bezier(.22, .75, .25, 1), visibility 0s linear .25s;
    }

    .admin-sidebar-head {
        position: sticky;
        top: calc(-1 * max(1rem, env(safe-area-inset-top)));
        z-index: 2;
        align-items: center;
        margin: calc(-1 * max(1rem, env(safe-area-inset-top))) -1rem .4rem;
        padding: max(1rem, env(safe-area-inset-top)) 1rem .75rem;
        background: linear-gradient(180deg, rgba(8, 27, 53, .99) 72%, rgba(8, 27, 53, 0));
    }

    .admin-sidebar-head .admin-brand {
        margin: 0;
        font-size: .98rem;
    }

    .admin-sidebar-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 42px;
        flex: none;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, .2);
        border-radius: 13px;
        color: #fff;
        background: rgba(255, 255, 255, .09);
        font: inherit;
        font-size: 1.7rem;
        font-weight: 300;
        line-height: 1;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }

    .admin-sidebar-close:hover,
    .admin-sidebar-close:focus-visible {
        color: #fff;
        background: rgba(255, 255, 255, .17);
    }

    .admin-nav {
        display: flex;
        grid-template-columns: none;
        flex-direction: column;
        gap: .15rem;
    }

    .admin-group {
        grid-column: auto;
    }

    .admin-nav-link {
        min-height: 44px;
        padding: .62rem .7rem;
    }

    .admin-back {
        display: block;
        padding-bottom: .35rem;
    }

    .admin-shell.is-menu-open .admin-sidebar {
        transform: translate3d(0, 0, 0);
        visibility: visible;
        transition-delay: 0s;
    }

    .admin-shell.is-menu-open .admin-drawer-backdrop {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    .admin-shell.is-menu-open .admin-drawer-toggle-ico span:nth-child(1) {
        transform: translateY(6px) rotate(45deg);
    }

    .admin-shell.is-menu-open .admin-drawer-toggle-ico span:nth-child(2) {
        opacity: 0;
    }

    .admin-shell.is-menu-open .admin-drawer-toggle-ico span:nth-child(3) {
        transform: translateY(-6px) rotate(-45deg);
    }

    body.admin-menu-open {
        overflow: hidden;
        overscroll-behavior: none;
    }
}

@media (max-width: 380px) {
    .admin-sidebar {
        width: calc(100vw - 42px);
        border-radius: 20px 0 0 20px;
    }

    .admin-drawer-toggle-copy strong {
        font-size: .8rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .admin-sidebar,
    .admin-drawer-backdrop,
    .admin-drawer-toggle-ico span {
        transition: none !important;
    }
}

/* =====================================================================
   Dashboard strategica
   ===================================================================== */
.strategy-head { align-items: flex-start; }
.strategy-filter-card {
  display: grid;
  grid-template-columns: minmax(180px, .9fr) auto minmax(310px, 1fr);
  align-items: center;
  gap: 1rem;
  margin: 0 0 1rem;
  padding: .85rem 1rem;
  background: #fff;
  border: 1px solid var(--ad-line);
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(16,57,102,.06);
}
.strategy-filter-copy { display: grid; gap: .08rem; }
.strategy-filter-label, .strategy-eyebrow {
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ad-blue);
}
.strategy-filter-copy strong { color: var(--ad-ink); font-size: .95rem; }
.strategy-range-links { display: inline-flex; gap: .3rem; padding: .22rem; border-radius: 12px; background: #EEF4FC; }
.strategy-range-link { padding: .42rem .66rem; border-radius: 9px; color: #526781; text-decoration: none; font-size: .76rem; font-weight: 850; white-space: nowrap; }
.strategy-range-link:hover { color: var(--ad-blue); }
.strategy-range-link.is-active { color: #fff; background: linear-gradient(135deg, #123F78, #2563EB); box-shadow: 0 7px 16px rgba(37,99,235,.2); }
.strategy-custom-range { display: flex; align-items: end; justify-content: flex-end; gap: .45rem; }
.strategy-custom-range label { display: grid; gap: .18rem; color: #64748B; font-size: .65rem; font-weight: 800; }
.strategy-custom-range input[type=date] { min-width: 132px; padding: .42rem .55rem; border: 1px solid var(--ad-line); border-radius: 9px; color: var(--ad-ink); background: #fff; font: inherit; font-size: .76rem; }

.strategy-health {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.1rem;
  margin-bottom: 1rem;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(37,99,235,.16);
  border-radius: 22px;
  color: #EAF2FF;
  background: radial-gradient(circle at 100% 0, rgba(37,99,235,.6), transparent 48%), linear-gradient(135deg, #071A34, #123F78);
  box-shadow: 0 18px 42px rgba(16,57,102,.14);
}
.strategy-health.is-warn { background: radial-gradient(circle at 100% 0, rgba(214,168,75,.5), transparent 48%), linear-gradient(135deg, #1A2435, #694A13); }
.strategy-health.is-bad { background: radial-gradient(circle at 100% 0, rgba(220,38,38,.45), transparent 48%), linear-gradient(135deg, #28131A, #7F1D1D); }
.strategy-health-score { display: flex; align-items: baseline; justify-content: center; min-width: 82px; padding: .68rem .75rem; border: 1px solid rgba(255,255,255,.22); border-radius: 17px; background: rgba(255,255,255,.1); }
.strategy-health-score strong { font-size: 1.9rem; line-height: 1; color: #F2C75C; }
.strategy-health-score span { font-size: .72rem; color: rgba(255,255,255,.7); }
.strategy-health-copy span { font-size: .62rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; color: #8BE2CA; }
.strategy-health-copy h2 { margin: .08rem 0 .18rem; color: #fff; font-size: 1.25rem; font-weight: 900; }
.strategy-health-copy p { margin: 0; color: rgba(234,242,255,.78); font-size: .83rem; }
.strategy-health-facts { display: flex; gap: .55rem; flex-wrap: wrap; justify-content: flex-end; }
.strategy-health-facts span { display: grid; min-width: 92px; padding: .48rem .62rem; border-radius: 13px; background: rgba(255,255,255,.1); color: rgba(255,255,255,.72); font-size: .68rem; }
.strategy-health-facts b { color: #fff; font-size: 1rem; }

.strategy-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; margin-bottom: 1rem; }
.strategy-kpi { display: flex; gap: .8rem; align-items: flex-start; min-width: 0; padding: 1rem; border: 1px solid var(--ad-line); border-radius: 18px; background: #fff; box-shadow: 0 10px 26px rgba(16,57,102,.06); }
.strategy-kpi-icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 40px; height: 40px; border-radius: 12px; color: #fff; background: linear-gradient(135deg, #123F78, #2563EB); }
.strategy-kpi-icon.is-green { background: linear-gradient(135deg, #087863, #0F9F7A); }
.strategy-kpi-icon.is-gold { background: linear-gradient(135deg, #B7791F, #E7B94F); }
.strategy-kpi-icon.is-purple { background: linear-gradient(135deg, #5B4BC4, #7C6EE6); }
.strategy-kpi-icon.is-coral { background: linear-gradient(135deg, #C2415B, #ED6B7B); }
.strategy-kpi-icon.is-cyan { background: linear-gradient(135deg, #0B6F8F, #0EA5E9); }
.strategy-kpi-icon .icn { width: 19px; height: 19px; }
.strategy-kpi > div { min-width: 0; display: grid; }
.strategy-kpi-label { color: #60728A; font-size: .7rem; font-weight: 850; }
.strategy-kpi strong { margin: .08rem 0 .18rem; color: #0B1F3A; font-size: 1.7rem; line-height: 1; font-weight: 900; font-variant-numeric: tabular-nums; }
.strategy-kpi small { color: #64748B; font-size: .68rem; line-height: 1.35; }
.strategy-delta { display: inline-flex; align-items: center; padding: .1rem .34rem; border-radius: 999px; font-size: .62rem; font-weight: 900; }
.strategy-delta.is-up, .strategy-delta.is-new { color: #087863; background: #DDF7EE; }
.strategy-delta.is-down { color: #B42318; background: #FEE4E2; }
.strategy-delta.is-flat { color: #475569; background: #E2E8F0; }

.strategy-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.strategy-chart-card { margin: 0; }
.strategy-chart-wrap { height: 280px; }
.strategy-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; margin-bottom: .8rem; }
.strategy-section-head h2 { margin: .1rem 0 0; color: #0B1F3A; font-size: 1rem; font-weight: 900; letter-spacing: -.01em; }
.strategy-caption { color: #7A8CA4; font-size: .68rem; white-space: nowrap; }
.strategy-total-pill { color: #1F54D6; background: #EAF1FE; border-radius: 999px; padding: .25rem .55rem; font-size: .68rem; white-space: nowrap; }

.strategy-two-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.strategy-panel { min-width: 0; padding: 1rem 1.1rem; }
.strategy-funnel { display: grid; gap: .7rem; }
.strategy-funnel-meta { display: flex; align-items: baseline; justify-content: space-between; gap: .8rem; margin-bottom: .25rem; }
.strategy-funnel-meta span { color: #4A5B74; font-size: .76rem; }
.strategy-funnel-meta strong { color: #0B1F3A; font-size: .78rem; }
.strategy-funnel-track { height: 9px; overflow: hidden; border-radius: 999px; background: #E7EEF8; }
.strategy-funnel-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #2563EB, #0F9F7A); }
.strategy-mini-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-top: .9rem; }
.strategy-mini-facts span { display: grid; gap: .12rem; padding: .65rem; border-radius: 12px; color: #64748B; background: #F4F8FE; font-size: .66rem; }
.strategy-mini-facts b { color: #0B1F3A; font-size: .88rem; }

.strategy-signals { display: grid; gap: .55rem; }
.strategy-signal { display: grid; grid-template-columns: 9px 1fr; gap: .65rem; padding: .66rem .72rem; border-radius: 13px; background: #F7FAFF; border: 1px solid rgba(11,31,58,.08); }
.strategy-signal-dot { width: 9px; height: 9px; margin-top: .28rem; border-radius: 50%; background: #94A3B8; }
.strategy-signal.is-ok .strategy-signal-dot { background: #0F9F7A; }
.strategy-signal.is-warn .strategy-signal-dot { background: #D6A84B; }
.strategy-signal.is-bad .strategy-signal-dot { background: #DC2626; }
.strategy-signal strong { display: block; color: #0B1F3A; font-size: .78rem; }
.strategy-signal p { margin: .08rem 0 .12rem; color: #4A5B74; font-size: .72rem; }
.strategy-signal small { display: block; color: #7A8CA4; font-size: .66rem; line-height: 1.35; }

.strategy-people-list, .strategy-compact-list { display: grid; }
.strategy-person, .strategy-compact-list > a { display: flex; align-items: center; gap: .65rem; padding: .55rem .1rem; border-bottom: 1px solid #EEF2F8; color: inherit; text-decoration: none; }
.strategy-person:last-child, .strategy-compact-list > a:last-child { border-bottom: 0; }
.strategy-person:hover, .strategy-compact-list > a:hover { background: #F8FBFF; }
.strategy-avatar { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 32px; height: 32px; border-radius: 10px; color: #fff; background: linear-gradient(135deg, #123F78, #2563EB); font-size: .72rem; font-weight: 900; }
.strategy-person-copy, .strategy-compact-list span:first-child { display: grid; min-width: 0; flex: 1; }
.strategy-person-copy strong, .strategy-compact-list strong { overflow: hidden; color: #0B1F3A; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.strategy-person-copy small, .strategy-compact-list small { overflow: hidden; color: #71839B; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.strategy-person-stats { display: flex; gap: .25rem; align-items: baseline; color: #71839B; font-size: .65rem; white-space: nowrap; }
.strategy-person-stats b { color: #1F54D6; }
.strategy-compact-list time { color: #7A8CA4; font-size: .64rem; white-space: nowrap; }
.strategy-compact-list .pill { flex: none; }

.strategy-ops-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.strategy-op-card { display: grid; gap: .1rem; padding: .78rem; border: 1px solid #D9E5F5; border-radius: 14px; background: #F5F9FF; color: inherit; text-decoration: none; }
.strategy-op-card span { color: #64748B; font-size: .67rem; }
.strategy-op-card strong { color: #0B1F3A; font-size: 1.25rem; line-height: 1.05; }
.strategy-op-card small { color: #7A8CA4; font-size: .63rem; }
.strategy-op-card.is-warn { border-color: #E7B94F; background: #FFF9E9; }
.strategy-op-card.is-bad { border-color: #F3A7A2; background: #FFF2F1; }

.strategy-latest-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.strategy-map-card { margin: 0; }
.strategy-territory { align-items: stretch; }
.strategy-rank li span { display: grid; min-width: 0; }
.strategy-rank li span strong { overflow: hidden; color: #0B1F3A; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.strategy-rank li span small { color: #71839B; font-size: .65rem; }
.strategy-rank li > b { color: #1F54D6; font-size: .92rem; }

.strategy-snapshot { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .6rem; padding: .8rem; border-radius: 18px; background: #DDE8F7; }
.strategy-snapshot div { display: grid; gap: .12rem; padding: .65rem .7rem; border-radius: 12px; background: rgba(255,255,255,.7); }
.strategy-snapshot span { color: #64748B; font-size: .63rem; }
.strategy-snapshot strong { color: #0B1F3A; font-size: 1rem; }
.strategy-snapshot small { color: #64748B; font-size: .62rem; line-height: 1.35; font-weight: 700; }

@media (max-width: 1180px) {
  .strategy-filter-card { grid-template-columns: 1fr auto; }
  .strategy-custom-range { grid-column: 1 / -1; justify-content: flex-start; }
  .strategy-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .strategy-snapshot { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .strategy-health { grid-template-columns: auto 1fr; }
  .strategy-health-facts { grid-column: 1 / -1; justify-content: flex-start; }
  .strategy-chart-grid, .strategy-two-columns, .strategy-latest-grid { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
  .strategy-filter-card { grid-template-columns: 1fr; align-items: stretch; }
  .strategy-range-links { width: 100%; }
  .strategy-range-link { flex: 1; text-align: center; }
  .strategy-custom-range { display: grid; grid-template-columns: 1fr 1fr; }
  .strategy-custom-range label, .strategy-custom-range input[type=date] { width: 100%; min-width: 0; }
  .strategy-custom-range button { grid-column: 1 / -1; width: 100%; }
  .strategy-health { grid-template-columns: 1fr; }
  .strategy-health-score { justify-self: start; }
  .strategy-health-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
  .strategy-health-facts span { min-width: 0; }
  .strategy-kpis { grid-template-columns: 1fr; }
  .strategy-chart-wrap { height: 230px; }
  .strategy-mini-facts, .strategy-ops-grid { grid-template-columns: 1fr; }
  .strategy-snapshot { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .strategy-person { align-items: flex-start; }
  .strategy-person-stats { display: grid; text-align: right; }
}
.strategy-role-breakdown { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; margin: 0 0 .65rem; }
.strategy-role-breakdown span { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: .25rem .35rem; padding: .52rem .58rem; border-radius: 11px; color: #4A5B74; background: #F4F8FE; font-size: .68rem; }
.strategy-role-breakdown b { color: #1F54D6; font-size: .9rem; }
.strategy-role-breakdown small { grid-column: 1 / -1; color: #7A8CA4; font-size: .6rem; }
@media (max-width: 420px) { .strategy-role-breakdown { grid-template-columns: 1fr; } }


/* Validazione massiva: azioni isolate del Vaglio. */
.vg-head-actions {
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  gap: .7rem;
  flex-wrap: wrap;
}
.vg-bulk-form {
  display: flex;
  margin: 0;
}
.vg-bulk-form .btn-ok {
  min-height: 100%;
  white-space: nowrap;
}
.vg-autore-bulk {
  display: inline-flex;
  margin: 0;
}
.vg-autore-bulk .btn-soft {
  padding: .36rem .65rem;
  font-size: .72rem;
  white-space: nowrap;
}
@media (max-width: 720px) {
  .vg-head-actions {
    width: 100%;
    justify-content: stretch;
  }
  .vg-head-actions .vg-attesa,
  .vg-bulk-form,
  .vg-bulk-form .btn-ok {
    width: 100%;
  }
  .vg-bulk-form .btn-ok {
    justify-content: center;
  }
  .vg-autore-bulk,
  .vg-autore-bulk .btn-soft {
    width: 100%;
  }
  .vg-autore-bulk .btn-soft {
    white-space: normal;
    text-align: center;
  }
}

/* ================================================================
   Bergamotta — gestione compatta degli Shorts YouTube
   ================================================================ */
.bgm-admin-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.bgm-admin-total {
  display: grid;
  min-width: 92px;
  padding: .8rem 1rem;
  border: 1px solid rgba(37,99,235,.16);
  border-radius: 16px;
  background: linear-gradient(145deg, #fff, #EDF4FF);
  box-shadow: 0 10px 26px rgba(16,57,102,.08);
  text-align: center;
}
.bgm-admin-total strong { color: var(--ad-blue); font-size: 1.55rem; line-height: 1; }
.bgm-admin-total span { margin-top: .25rem; color: var(--ad-muted); font-size: .7rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.bgm-admin-note {
  margin: 0 0 1rem;
  padding: .85rem 1rem;
  border: 1px solid rgba(37,99,235,.14);
  border-radius: 14px;
  color: #355276;
  background: #F3F7FE;
  font-size: .84rem;
  line-height: 1.45;
}
.bgm-admin-new { padding: 1rem 1.15rem; }
.bgm-admin-new > summary { font-size: .95rem; }
.bgm-admin-form { display: grid; gap: .95rem; margin-top: 1rem; }
.bgm-admin-form .admin-textarea,
.bgm-admin-form .admin-form-checks,
.bgm-admin-form .btn-ok { margin-top: 0; }
.bgm-admin-field { display: flex; flex-direction: column; gap: .38rem; }
.bgm-admin-field > span { color: var(--ad-muted); font-size: .72rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.bgm-admin-field--title input {
  min-height: 54px;
  padding: .8rem 1rem;
  font-size: 1.08rem;
  font-weight: 800;
}
.bgm-admin-field--url input { width: 100%; min-height: 48px; }
.bgm-admin-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.bgm-admin-home-check {
  margin: 0;
  padding: .75rem .9rem;
  border: 1px solid rgba(37,99,235,.14);
  border-radius: 12px;
  background: #F7FAFF;
}
.bgm-admin-home-check label { margin: 0; }
.bgm-admin-form-actions { display: flex; justify-content: flex-end; }
.bgm-admin-form-actions .btn-ok { min-width: 170px; }

.bgm-admin-archive { margin-top: 1.2rem; }
.bgm-admin-archive-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 .8rem;
}
.bgm-admin-archive-head h2 { margin: .12rem 0 0; color: var(--ad-ink); font-size: 1.08rem; font-weight: 900; }
.bgm-admin-archive-head > span { color: var(--ad-muted); font-size: .76rem; font-weight: 800; }
.bgm-admin-list { display: grid; gap: .7rem; }
.bgm-admin-card {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  align-items: center;
  gap: .8rem;
  min-width: 0;
  padding: .7rem .8rem;
  border: 1px solid rgba(11,31,58,.10);
  border-left: 4px solid #94A3B8;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(11,31,58,.055);
}
.bgm-admin-card.is-home { border-left-color: #7C3AED; }
.bgm-admin-card-thumb-wrap {
  position: relative;
  width: 72px;
  aspect-ratio: 9 / 16;
  overflow: hidden;
  border-radius: 10px;
  background: #E8EEF8;
}
.bgm-admin-thumb { width: 100%; height: 100%; object-fit: cover; display: block; }
.bgm-admin-home-badge {
  position: absolute;
  right: 4px;
  bottom: 4px;
  padding: .18rem .38rem;
  border-radius: 999px;
  color: #fff;
  background: rgba(91,33,182,.92);
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.bgm-admin-card-main { min-width: 0; }
.bgm-admin-card-topline { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; }
.bgm-admin-card-topline time { color: var(--ad-muted); font-size: .69rem; }
.bgm-admin-status {
  display: inline-flex;
  padding: .22rem .5rem;
  border-radius: 999px;
  font-size: .62rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.bgm-admin-status.is-published { color: #05603A; background: #E7F8EF; }
.bgm-admin-status.is-draft { color: #8A4B00; background: #FFF0D5; }
.bgm-admin-card h3 {
  overflow: hidden;
  margin: .34rem 0 .2rem;
  color: var(--ad-ink);
  font-size: .98rem;
  font-weight: 900;
  line-height: 1.22;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bgm-admin-youtube { color: var(--ad-blue); font-size: .74rem; font-weight: 800; text-decoration: none; }
.bgm-admin-youtube:hover { text-decoration: underline; }
.bgm-admin-card-actions { display: flex; align-items: center; justify-content: flex-end; gap: .45rem; }
.bgm-admin-card-actions .admin-inline { display: block; }
.bgm-admin-card-actions .btn-soft,
.bgm-admin-card-actions .btn-no { min-height: 36px; padding: .5rem .7rem; font-size: .74rem; }
.bgm-admin-edit > summary { list-style: none; }
.bgm-admin-edit > summary::-webkit-details-marker { display: none; }
.bgm-admin-edit[open] { position: relative; }
.bgm-admin-edit-form {
  position: absolute;
  z-index: 20;
  top: calc(100% + .55rem);
  right: 0;
  width: min(680px, calc(100vw - 390px));
  min-width: 430px;
  padding: 1rem;
  border: 1px solid rgba(37,99,235,.18);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(11,31,58,.20);
}
.bgm-admin-edit-form .bgm-admin-field--title input { min-height: 48px; font-size: .96rem; }

.bgm-admin-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  margin: 1rem 0 0;
  flex-wrap: wrap;
}
.bgm-admin-page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  min-height: 38px;
  padding: .4rem .65rem;
  border: 1px solid var(--ad-line);
  border-radius: 11px;
  color: var(--ad-ink);
  background: #fff;
  font-size: .8rem;
  font-weight: 900;
  text-decoration: none;
}
.bgm-admin-page:hover { border-color: rgba(37,99,235,.45); color: var(--ad-blue); }
.bgm-admin-page.is-active { color: #fff; border-color: var(--ad-blue); background: var(--ad-blue); }
.bgm-admin-page.is-disabled { opacity: .4; pointer-events: none; }
.bgm-admin-page-gap { color: var(--ad-muted); font-weight: 900; }

@media (max-width: 1080px) {
  .bgm-admin-edit-form { width: min(640px, calc(100vw - 80px)); min-width: 0; }
}
@media (max-width: 720px) {
  .bgm-admin-head { align-items: stretch; }
  .bgm-admin-total { min-width: 76px; padding: .7rem .75rem; }
  .bgm-admin-form-row { grid-template-columns: 1fr; }
  .bgm-admin-form-actions .btn-ok { width: 100%; }
  .bgm-admin-archive-head { align-items: flex-start; flex-direction: column; gap: .3rem; }
  .bgm-admin-card { grid-template-columns: 58px minmax(0,1fr); align-items: start; }
  .bgm-admin-card-thumb-wrap { width: 58px; }
  .bgm-admin-card-actions { grid-column: 1 / -1; justify-content: stretch; }
  .bgm-admin-card-actions > * { flex: 1; }
  .bgm-admin-card-actions .btn-soft,
  .bgm-admin-card-actions .btn-no { width: 100%; justify-content: center; }
  .bgm-admin-edit-form {
    position: fixed;
    z-index: 1120;
    inset: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));
    width: auto;
    min-width: 0;
    overflow-y: auto;
    border-radius: 18px;
  }
  .bgm-admin-card h3 { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
}

/* Bergamotta: scheda video cliccabile e modifica in modale centrata. */
.bgm-admin-card[data-bgm-preview-card] {
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.bgm-admin-card[data-bgm-preview-card]:hover,
.bgm-admin-card[data-bgm-preview-card]:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(37,99,235,.32);
  box-shadow: 0 14px 30px rgba(11,31,58,.12);
  outline: none;
}
.bgm-admin-card-thumb-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 48%, rgba(7,24,52,.72));
  opacity: 0;
  transition: opacity .18s ease;
  pointer-events: none;
}
.bgm-admin-thumb-action {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 8px;
  transform: translate(-50%, 5px);
  padding: .25rem .46rem;
  border-radius: 999px;
  color: #fff;
  background: rgba(37,99,235,.94);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity .18s ease, transform .18s ease;
  pointer-events: none;
}
.bgm-admin-card[data-bgm-preview-card]:hover .bgm-admin-card-thumb-wrap::after,
.bgm-admin-card[data-bgm-preview-card]:focus-visible .bgm-admin-card-thumb-wrap::after,
.bgm-admin-card[data-bgm-preview-card]:hover .bgm-admin-thumb-action,
.bgm-admin-card[data-bgm-preview-card]:focus-visible .bgm-admin-thumb-action {
  opacity: 1;
}
.bgm-admin-card[data-bgm-preview-card]:hover .bgm-admin-thumb-action,
.bgm-admin-card[data-bgm-preview-card]:focus-visible .bgm-admin-thumb-action {
  transform: translate(-50%, 0);
}

body.bgm-admin-modal-open .modal-backdrop.show {
  opacity: 1;
  background: rgba(4,18,43,.62);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
#admin-modal.is-bgm-modal .modal-dialog {
  max-width: 780px;
}
#admin-modal.is-bgm-modal .modal-content {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 22px;
  box-shadow: 0 30px 90px rgba(4,18,43,.34);
}
#admin-modal.is-bgm-modal .modal-header {
  padding: 1rem 1.2rem;
  color: #fff;
  border-bottom: 0;
  background: linear-gradient(120deg, #0B2B5A, #1E5BD8 58%, #7138B8);
}
#admin-modal.is-bgm-modal .modal-title {
  overflow: hidden;
  max-width: calc(100% - 46px);
  color: #fff !important;
  font-size: 1rem;
  font-weight: 900;
  text-shadow: 0 1px 2px rgba(0,0,0,.2);
  text-overflow: ellipsis;
  white-space: nowrap;
}
#admin-modal.is-bgm-modal .btn-close {
  width: 36px;
  height: 36px;
  padding: 0;
  border-radius: 50%;
  background-color: rgba(255,255,255,.94);
  opacity: 1;
}
#admin-modal.is-bgm-modal .modal-body {
  padding: 1.2rem;
  background: linear-gradient(180deg, #F8FBFF, #EEF4FC);
}
#admin-modal.is-bgm-modal .bgm-admin-modal-form {
  margin: 0;
  padding: 0;
}
#admin-modal.is-bgm-modal .bgm-admin-modal-form textarea {
  min-height: 120px;
  resize: vertical;
}

@media (max-width: 720px) {
  #admin-modal.is-bgm-modal .modal-dialog {
    margin: max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom));
  }
  #admin-modal.is-bgm-modal .modal-content {
    max-height: calc(100dvh - 20px);
    border-radius: 18px;
  }
  #admin-modal.is-bgm-modal .modal-body {
    padding: .9rem;
  }
  .bgm-admin-thumb-action { display: none; }
}


/* Bergamotta admin: anteprima pubblica distinta dalla modifica. */
#admin-modal.is-bgm-preview-modal .modal-dialog {
  max-width: 900px;
}
#admin-modal.is-bgm-preview-modal .modal-body {
  padding: 1.25rem;
  background:
    radial-gradient(circle at 85% 12%, rgba(255,229,122,.18), transparent 28%),
    linear-gradient(145deg, #2d0a40 0%, #53146d 48%, #123f77 100%);
}
.bgm-admin-preview {
  display: grid;
  grid-template-columns: minmax(250px, 340px) minmax(0, 1fr);
  gap: 1.5rem;
  align-items: center;
  color: #fff;
}
.bgm-admin-preview-player {
  width: 100%;
  aspect-ratio: 9 / 16;
  max-height: 68vh;
  overflow: hidden;
  border: 7px solid rgba(255,255,255,.92);
  border-radius: 28px;
  background: #100715;
  box-shadow: 0 24px 60px rgba(0,0,0,.38);
}
.bgm-admin-preview-player iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.bgm-admin-preview-copy {
  min-width: 0;
  padding: .5rem .35rem;
}
.bgm-admin-preview-meta {
  display: flex;
  align-items: center;
  gap: .55rem;
  flex-wrap: wrap;
}
.bgm-admin-preview-home {
  display: inline-flex;
  padding: .22rem .5rem;
  border-radius: 999px;
  color: #3f1750;
  background: #ffe57a;
  font-size: .62rem;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.bgm-admin-preview h3 {
  margin: .8rem 0 .85rem;
  color: #fff;
  font-size: clamp(1.65rem, 3vw, 2.65rem);
  font-weight: 950;
  line-height: 1.08;
}
.bgm-admin-preview p {
  max-height: 260px;
  overflow: auto;
  margin: 0;
  color: rgba(255,255,255,.9);
  font-size: 1rem;
  line-height: 1.72;
}
.bgm-admin-preview p.is-empty {
  color: rgba(255,255,255,.62);
  font-style: italic;
}
.bgm-admin-preview-actions {
  display: flex;
  gap: .65rem;
  flex-wrap: wrap;
  margin-top: 1.25rem;
}
.bgm-admin-preview-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  text-decoration: none;
}
#admin-modal.is-bgm-edit-modal .modal-header,
#admin-modal.is-bgm-preview-modal .modal-header {
  color: #fff !important;
}
#admin-modal.is-bgm-edit-modal .modal-header *,
#admin-modal.is-bgm-preview-modal .modal-header * {
  color: inherit;
}

@media (max-width: 720px) {
  #admin-modal.is-bgm-preview-modal .modal-body {
    padding: .8rem;
  }
  .bgm-admin-preview {
    display: block;
  }
  .bgm-admin-preview-player {
    width: min(100%, 330px);
    max-height: none;
    margin: 0 auto;
    border-width: 5px;
    border-radius: 22px;
  }
  .bgm-admin-preview-copy {
    padding: 1rem .15rem .2rem;
  }
  .bgm-admin-preview h3 {
    margin-top: .65rem;
    font-size: 1.55rem;
  }
  .bgm-admin-preview p {
    max-height: none;
    font-size: .96rem;
    line-height: 1.62;
  }
  .bgm-admin-preview-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .bgm-admin-preview-actions a {
    width: 100%;
  }
}

/* =========================================================================
 * Gestione utenti — ricerca AJAX live e filtri contestuali
 * ========================================================================= */
.utenti-admin {
  position: relative;
  max-width: 1540px;
}
.utenti-admin-head {
  margin-bottom: 1rem;
}
.utenti-admin-head > div {
  max-width: 760px;
}

.utenti-kpi {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  margin-bottom: .9rem;
}
.utenti-kpi-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  padding: 1rem 1.05rem;
  border: 1px solid rgba(37, 99, 235, .12);
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(16, 57, 102, .07);
}
.utenti-kpi-card::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 92px;
  height: 92px;
  border-radius: 0 0 0 100%;
  background: rgba(37, 99, 235, .08);
}
.utenti-kpi-card > span,
.utenti-kpi-card > strong,
.utenti-kpi-card > small {
  position: relative;
  z-index: 1;
  display: block;
}
.utenti-kpi-card > span {
  color: #58708D;
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.utenti-kpi-card > strong {
  margin: .28rem 0 .18rem;
  color: #10253F;
  font-size: clamp(1.65rem, 2.5vw, 2.25rem);
  font-weight: 950;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.utenti-kpi-card > small {
  overflow: hidden;
  color: #6D8098;
  font-size: .75rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.utenti-kpi-card--attivi::before { background: rgba(5, 150, 105, .1); }
.utenti-kpi-card--attivi > strong { color: #047857; }
.utenti-kpi-card--enti::before { background: rgba(124, 58, 237, .1); }
.utenti-kpi-card--enti > strong { color: #6D28D9; }
.utenti-kpi-card--verifica::before { background: rgba(217, 119, 6, .12); }
.utenti-kpi-card--verifica > strong { color: #B45309; }

.utenti-filter-panel {
  position: relative;
  margin-bottom: .8rem;
  padding: 1rem;
  border: 1px solid rgba(16, 57, 102, .12);
  border-radius: 20px;
  background:
    radial-gradient(circle at 100% 0, rgba(37, 99, 235, .08), transparent 35%),
    linear-gradient(145deg, #FFFFFF, #F8FBFF);
  box-shadow: 0 14px 34px rgba(16, 57, 102, .08);
}
.utenti-search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: end;
  padding-bottom: .9rem;
  border-bottom: 1px solid rgba(16, 57, 102, .1);
}
.utenti-search-box {
  display: grid;
  gap: .4rem;
  min-width: 0;
}
.utenti-search-label,
.utenti-select-row label > span,
.utenti-comune-field > span {
  color: #58708D;
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.utenti-search-control {
  position: relative;
  display: block;
}
.utenti-search-control input {
  width: 100%;
  height: 52px;
  padding: .7rem 3rem .7rem 2.85rem;
  border: 1px solid rgba(16, 57, 102, .17);
  border-radius: 15px;
  color: #10253F;
  background: #fff;
  font-size: .97rem;
  box-shadow: inset 0 1px 2px rgba(11, 31, 58, .03);
  transition: border-color .16s ease, box-shadow .16s ease;
}
.utenti-search-control input:focus {
  outline: none;
  border-color: #2563EB;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, .12);
}
.utenti-search-icon {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 1rem;
  transform: translateY(-52%);
  color: #2563EB;
  font-size: 1.45rem;
  font-weight: 900;
  pointer-events: none;
}
.utenti-search-clear {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: .7rem;
  display: grid;
  width: 32px;
  height: 32px;
  padding: 0;
  transform: translateY(-50%);
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: #5D718B;
  background: #EDF3FB;
  font-size: 1.15rem;
  cursor: pointer;
}
.utenti-search-clear:hover { color: #B42318; background: #FEE4E2; }
.utenti-live-box {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 42px;
  padding: .55rem .75rem;
  border: 1px solid rgba(5, 150, 105, .16);
  border-radius: 12px;
  color: #166B53;
  background: #ECFDF5;
  font-size: .74rem;
  font-weight: 800;
  white-space: nowrap;
}
.utenti-live-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #10B981;
  box-shadow: 0 0 0 4px rgba(16, 185, 129, .13);
}
.utenti-admin.is-loading .utenti-live-box {
  color: #1D4ED8;
  border-color: rgba(37, 99, 235, .18);
  background: #EFF6FF;
}
.utenti-admin.is-loading .utenti-live-dot {
  background: #2563EB;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, .13);
  animation: utenti-live-pulse 1s infinite ease-in-out;
}
@keyframes utenti-live-pulse {
  0%, 100% { transform: scale(.8); opacity: .65; }
  50% { transform: scale(1.15); opacity: 1; }
}

.utenti-facet-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(240px, .75fr) minmax(270px, .85fr);
  gap: .8rem;
  padding: .9rem 0;
}
.utenti-facet {
  min-width: 0;
  margin: 0;
  padding: .75rem;
  border: 1px solid rgba(16, 57, 102, .1);
  border-radius: 15px;
  background: rgba(255, 255, 255, .78);
}
.utenti-facet legend {
  float: none;
  width: auto;
  margin: 0 0 .5rem;
  padding: 0 .25rem;
  color: #58708D;
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.utenti-facet-options {
  display: flex;
  flex-wrap: wrap;
  gap: .38rem;
}
.utenti-facet-btn {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 34px;
  padding: .35rem .48rem .35rem .68rem;
  border: 1px solid rgba(16, 57, 102, .12);
  border-radius: 999px;
  color: #425A76;
  background: #F5F8FC;
  font-size: .72rem;
  font-weight: 800;
  cursor: pointer;
  transition: transform .12s ease, border-color .12s ease, background .12s ease, color .12s ease;
}
.utenti-facet-btn strong {
  min-width: 25px;
  padding: .14rem .4rem;
  border-radius: 999px;
  color: #425A76;
  background: #E6EDF7;
  font-size: .66rem;
  font-weight: 950;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.utenti-facet-btn:hover:not(:disabled) {
  transform: translateY(-1px);
  border-color: rgba(37, 99, 235, .35);
  color: #1D4ED8;
  background: #EFF6FF;
}
.utenti-facet-btn.is-active {
  color: #fff;
  border-color: #2563EB;
  background: linear-gradient(135deg, #1E5BD8, #4F6BEF);
  box-shadow: 0 7px 18px rgba(37, 99, 235, .22);
}
.utenti-facet-btn.is-active strong {
  color: #173B62;
  background: #fff;
}
.utenti-facet-btn--ok.is-active {
  border-color: #059669;
  background: linear-gradient(135deg, #047857, #10B981);
  box-shadow: 0 7px 18px rgba(5, 150, 105, .2);
}
.utenti-facet-btn--warn.is-active {
  border-color: #D97706;
  background: linear-gradient(135deg, #B45309, #F59E0B);
  box-shadow: 0 7px 18px rgba(217, 119, 6, .2);
}
.utenti-facet-btn--danger.is-active {
  border-color: #B42318;
  background: linear-gradient(135deg, #B42318, #E45D50);
  box-shadow: 0 7px 18px rgba(180, 35, 24, .2);
}
.utenti-facet-btn:disabled {
  cursor: not-allowed;
  opacity: .42;
}

.utenti-select-row {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(150px, 190px) auto auto;
  gap: .65rem;
  align-items: end;
  padding-top: .85rem;
  border-top: 1px solid rgba(16, 57, 102, .1);
}
.utenti-select-row label,
.utenti-comune-field {
  display: grid;
  gap: .35rem;
  min-width: 0;
}
.utenti-select-row select {
  width: 100%;
  height: 43px;
  min-width: 0;
  padding: .5rem .7rem;
  border: 1px solid rgba(16, 57, 102, .15);
  border-radius: 11px;
  color: #10253F;
  background: #fff;
  font-size: .83rem;
}
.utenti-select-row select:focus {
  outline: none;
  border-color: #2563EB;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .11);
}

.utenti-comune-select {
  position: relative;
  min-width: 0;
}
.utenti-comune-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}
.utenti-comune-trigger {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: .55rem;
  width: 100%;
  height: 43px;
  min-width: 0;
  padding: .45rem .65rem .45rem .8rem;
  border: 1px solid rgba(16, 57, 102, .15);
  border-radius: 11px;
  color: #10253F;
  background: #fff;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.utenti-comune-trigger:hover {
  border-color: rgba(37, 99, 235, .38);
  background: #FBFDFF;
}
.utenti-comune-trigger:focus,
.utenti-comune-select.is-open .utenti-comune-trigger {
  outline: none;
  border-color: #2563EB;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .11);
}
.utenti-comune-trigger-text {
  min-width: 0;
  overflow: hidden;
  font-size: .83rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.utenti-comune-trigger-count {
  min-width: 28px;
  padding: .15rem .42rem;
  border-radius: 999px;
  color: #1D4ED8;
  background: #EAF1FF;
  font-size: .68rem;
  font-weight: 950;
  line-height: 1.35;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.utenti-comune-chevron {
  color: #6A7E96;
  font-size: 1rem;
  font-weight: 900;
  transition: transform .15s ease;
}
.utenti-comune-select.is-open .utenti-comune-chevron { transform: rotate(180deg); }
.utenti-comune-panel {
  position: absolute;
  z-index: 50;
  top: calc(100% + .45rem);
  left: 0;
  width: min(100%, 520px);
  min-width: 320px;
  padding: .55rem;
  border: 1px solid rgba(16, 57, 102, .15);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 20px 48px rgba(16, 57, 102, .2);
}
.utenti-comune-search {
  position: relative;
  margin-bottom: .45rem;
}
.utenti-comune-search > span {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: .8rem;
  transform: translateY(-52%);
  color: #2563EB;
  font-size: 1.1rem;
  font-weight: 900;
  pointer-events: none;
}
.utenti-comune-search input {
  width: 100%;
  height: 40px;
  padding: .45rem .7rem .45rem 2.35rem;
  border: 1px solid rgba(16, 57, 102, .16);
  border-radius: 10px;
  color: #10253F;
  background: #F8FBFF;
  font-family: inherit;
  font-size: .82rem;
}
.utenti-comune-search input:focus {
  outline: none;
  border-color: #2563EB;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .1);
}
.utenti-comune-options {
  display: grid;
  gap: .2rem;
  max-height: 290px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.utenti-comune-option[hidden] { display: none; }
.utenti-comune-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .65rem;
  width: 100%;
  min-height: 38px;
  padding: .45rem .55rem .45rem .7rem;
  border: 0;
  border-radius: 9px;
  color: #354D69;
  background: transparent;
  font-family: inherit;
  font-size: .8rem;
  font-weight: 750;
  text-align: left;
  cursor: pointer;
}
.utenti-comune-option span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.utenti-comune-option strong {
  min-width: 28px;
  padding: .13rem .38rem;
  border-radius: 999px;
  color: #526A86;
  background: #EDF2F8;
  font-size: .66rem;
  font-weight: 950;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.utenti-comune-option:hover:not(:disabled),
.utenti-comune-option:focus:not(:disabled) {
  outline: none;
  color: #1D4ED8;
  background: #EFF6FF;
}
.utenti-comune-option.is-selected {
  color: #fff;
  background: linear-gradient(135deg, #1E5BD8, #4F6BEF);
}
.utenti-comune-option.is-selected strong {
  color: #173B62;
  background: #fff;
}
.utenti-comune-option:disabled {
  opacity: .38;
  cursor: not-allowed;
}
.utenti-comune-empty {
  margin: .35rem 0 0;
  padding: .8rem;
  border-radius: 9px;
  color: #6B7E96;
  background: #F6F8FB;
  font-size: .76rem;
  font-weight: 750;
  text-align: center;
}
.utenti-apply-fallback,
.utenti-reset {
  min-height: 43px;
  white-space: nowrap;
}

.utenti-active-filters {
  display: flex;
  align-items: center;
  gap: .38rem;
  flex-wrap: wrap;
  margin: .7rem 0;
}
.utenti-active-label {
  margin-right: .15rem;
  color: #71839A;
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.utenti-active-filters button {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .3rem .55rem;
  border: 1px solid rgba(37, 99, 235, .16);
  border-radius: 999px;
  color: #1E4FB0;
  background: #EFF6FF;
  font-size: .72rem;
  font-weight: 800;
  cursor: pointer;
}
.utenti-active-filters button b {
  color: #6D8098;
  font-size: .9rem;
  line-height: 1;
}
.utenti-active-filters button:hover { color: #B42318; border-color: rgba(180, 35, 24, .2); background: #FEF3F2; }

.utenti-results-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: .85rem 0 .65rem;
  padding: .75rem .9rem;
  border: 1px solid rgba(16, 57, 102, .1);
  border-radius: 14px;
  background: rgba(255, 255, 255, .72);
}
.utenti-results-head > div {
  display: flex;
  align-items: baseline;
  gap: .55rem;
  flex-wrap: wrap;
}
.utenti-results-kicker {
  color: #71839A;
  font-size: .63rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.utenti-results-head strong {
  color: #10253F;
  font-size: 1.06rem;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
}
.utenti-results-head small {
  color: #71839A;
  font-size: .78rem;
}
.utenti-page-badge {
  padding: .28rem .58rem;
  border-radius: 999px;
  color: #1D4ED8;
  background: #E8F0FE;
  font-size: .7rem;
  font-weight: 900;
  white-space: nowrap;
}

.utenti-results-wrap {
  position: relative;
  min-height: 110px;
}
.utenti-loading {
  position: absolute;
  z-index: 30;
  inset: -.1rem;
  display: none;
  align-content: center;
  justify-content: center;
  grid-template-columns: repeat(3, 10px) auto;
  gap: .38rem;
  align-items: center;
  border-radius: 15px;
  color: #1D4ED8;
  background: rgba(244, 248, 254, .86);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  font-size: .78rem;
  font-weight: 900;
}
.utenti-admin.is-loading .utenti-loading { display: grid; }
.utenti-loading span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #2563EB;
  animation: utenti-dot .8s infinite alternate ease-in-out;
}
.utenti-loading span:nth-child(2) { animation-delay: .14s; }
.utenti-loading span:nth-child(3) { animation-delay: .28s; }
@keyframes utenti-dot {
  from { transform: translateY(3px); opacity: .4; }
  to { transform: translateY(-3px); opacity: 1; }
}
.utenti-loading b { margin-left: .25rem; }

.utenti-lista { gap: .55rem; }
.utenti-riga {
  border-radius: 15px;
  padding: .8rem 1rem;
  transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease;
}
.utenti-riga:hover {
  transform: translateY(-1px);
  border-color: rgba(37, 99, 235, .22);
  box-shadow: 0 11px 25px rgba(11, 31, 58, .08);
}
.utenti-riga.is-spento {
  opacity: .72;
}
.utenti-empty {
  display: grid;
  justify-items: center;
  padding: 2.5rem 1rem;
  border: 1px dashed rgba(16, 57, 102, .18);
  border-radius: 17px;
  text-align: center;
  background: rgba(255, 255, 255, .65);
}
.utenti-empty-ico {
  display: grid;
  width: 52px;
  height: 52px;
  margin-bottom: .65rem;
  place-items: center;
  border-radius: 16px;
  color: #2563EB;
  background: #E8F0FE;
}
.utenti-empty-ico svg { width: 25px; height: 25px; }
.utenti-empty h2 { margin: 0; color: #10253F; font-size: 1.15rem; }
.utenti-empty p { max-width: 560px; margin: .45rem 0 1rem; color: #71839A; font-size: .87rem; line-height: 1.55; }
.utenti-pager { margin-top: 1rem; }

@media (max-width: 1220px) {
  .utenti-kpi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .utenti-facet-grid { grid-template-columns: 1fr 1fr; }
  .utenti-facet--ruoli { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  .utenti-search-row { grid-template-columns: 1fr; }
  .utenti-live-box { justify-self: start; }
  .utenti-select-row { grid-template-columns: 1fr 160px; }
  .utenti-apply-fallback,
  .utenti-reset { width: 100%; }
  .utenti-results-head { align-items: flex-start; }
}
@media (max-width: 680px) {
  .utenti-kpi { grid-template-columns: 1fr 1fr; gap: .55rem; }
  .utenti-kpi-card { padding: .85rem; }
  .utenti-kpi-card > small { white-space: normal; }
  .utenti-filter-panel { padding: .75rem; border-radius: 16px; }
  .utenti-facet-grid { grid-template-columns: 1fr; }
  .utenti-facet--ruoli { grid-column: auto; }
  .utenti-select-row { grid-template-columns: 1fr; }
  .utenti-results-head { display: block; }
  .utenti-page-badge { display: inline-flex; margin-top: .45rem; }
  .utenti-loading { grid-template-columns: repeat(3, 9px); }
  .utenti-loading b { grid-column: 1 / -1; margin: .3rem 0 0; text-align: center; }
}
@media (max-width: 430px) {
  .utenti-kpi { grid-template-columns: 1fr; }
  .utenti-facet-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .utenti-facet-btn { justify-content: space-between; }
  .utenti-facet--ruoli .utenti-facet-options { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .utenti-comune-panel {
    right: 0;
    width: 100%;
    min-width: 0;
  }
}

/* Verdetto motivato nel Vaglio del Guardiano. */
.vg-azioni--motivata { min-width: min(100%, 340px); display: grid; gap: 8px; }
.vg-motivazione { display: grid; gap: 5px; }
.vg-motivazione > span { color: #5f6980; font-size: 11px; font-weight: 800; }
.vg-motivazione > span small { font-weight: 600; }
.vg-motivazione textarea { width: 100%; min-height: 56px; resize: vertical; border: 1px solid #d6ddea; border-radius: 10px; padding: 9px 10px; background: #fff; color: #273550; font: inherit; font-size: 12px; line-height: 1.4; }
.vg-motivazione textarea:focus { outline: 2px solid rgba(36,79,174,.2); border-color: #244fae; }
.vg-azioni__buttons { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
@media (max-width: 760px) { .vg-azioni--motivata { width: 100%; min-width: 0; } .vg-azioni__buttons { justify-content: stretch; } .vg-azioni__buttons button { flex: 1; } }

/* =========================================================
   CONTROLLO GIOCO
   ========================================================= */
.game-control-head {
    align-items: flex-start;
}

.game-control-alert,
.game-control-empty {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 15px 17px;
    border: 1px solid #dfe7f3;
    border-radius: 18px;
    background: #fff;
}

.game-control-alert > .icn,
.game-control-empty > .icn {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
}

.game-control-alert strong,
.game-control-empty strong,
.game-control-alert p,
.game-control-empty p {
    display: block;
    margin: 0;
}

.game-control-alert p,
.game-control-empty p {
    margin-top: 3px;
    color: #66738f;
    font-size: 12px;
    line-height: 1.5;
}

.game-control-alert.is-bad {
    border-color: #f2c9cf;
    background: #fff7f8;
    color: #a32c3e;
}

.game-control-empty.is-ok {
    border-color: #cce7d6;
    background: #f5fbf7;
    color: #217148;
}

.game-control-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 18px 0;
    padding: 13px 15px;
    border: 1px solid #dfe6f2;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(27, 50, 104, .07);
}

.game-control-toolbar > div {
    display: grid;
    gap: 2px;
}

.game-control-toolbar small {
    color: #7a869f;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.game-control-toolbar strong {
    color: #17213f;
    font-size: 13px;
}

.game-control-toolbar nav {
    display: flex;
    gap: 6px;
    padding: 4px;
    border-radius: 14px;
    background: #eef3fb;
}

.game-control-toolbar nav a {
    padding: 8px 12px;
    border-radius: 10px;
    color: #53617d;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
}

.game-control-toolbar nav a.is-active {
    background: #1e4ca8;
    color: #fff;
    box-shadow: 0 6px 14px rgba(30, 76, 168, .18);
}

.game-control-health {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    margin-bottom: 18px;
    padding: 18px;
    border: 1px solid #dce5f3;
    border-left: 6px solid #2a63cf;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(27, 50, 104, .08);
}

.game-control-health.is-ok { border-left-color: #238455; }
.game-control-health.is-warn { border-left-color: #c78a12; }
.game-control-health.is-bad { border-left-color: #bc3549; }

.game-control-health__score {
    width: 82px;
    height: 82px;
    display: flex;
    align-items: baseline;
    justify-content: center;
    padding-top: 18px;
    border-radius: 24px;
    background: #eef4ff;
    color: #204ba7;
}

.game-control-health.is-ok .game-control-health__score { background: #eaf7ef; color: #20754a; }
.game-control-health.is-warn .game-control-health__score { background: #fff7e7; color: #94640b; }
.game-control-health.is-bad .game-control-health__score { background: #fff0f2; color: #a8293d; }

.game-control-health__score strong {
    font-size: 34px;
    line-height: 1;
}

.game-control-health__score span {
    font-size: 12px;
    font-weight: 800;
}

.game-control-health small,
.game-control-panel__head small {
    display: block;
    color: #79859e;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.game-control-health h2,
.game-control-panel__head h2 {
    margin: 3px 0 0;
    color: #17213f;
    font-size: 19px;
    line-height: 1.2;
}

.game-control-health p {
    margin: 5px 0 0;
    color: #66738f;
    font-size: 12px;
    line-height: 1.5;
}

.game-control-health__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(90px, 1fr));
    gap: 8px;
}

.game-control-health__facts span {
    padding: 11px 12px;
    border: 1px solid #e2e8f3;
    border-radius: 14px;
    background: #fafcff;
    color: #75819a;
    font-size: 10px;
    font-weight: 750;
    text-align: center;
}

.game-control-health__facts b {
    display: block;
    color: #25375f;
    font-size: 17px;
}

.game-control-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.game-control-kpis article {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px;
    border: 1px solid #dfe6f2;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(27, 50, 104, .06);
}

.game-control-kpis article > span {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: #eaf1ff;
    color: #2458ba;
}

.game-control-kpis article > span.is-purple { background: #f2edff; color: #6747b8; }
.game-control-kpis article > span.is-green { background: #eaf7ef; color: #22774c; }
.game-control-kpis article > span.is-cyan { background: #e8f8fa; color: #147582; }
.game-control-kpis article > span.is-gold { background: #fff5df; color: #956400; }
.game-control-kpis article > span.is-coral { background: #fff0ed; color: #b54f3a; }

.game-control-kpis .icn {
    width: 20px;
    height: 20px;
}

.game-control-kpis article > div {
    min-width: 0;
}

.game-control-kpis small,
.game-control-kpis strong,
.game-control-kpis p {
    display: block;
    margin: 0;
}

.game-control-kpis small {
    color: #748099;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.game-control-kpis strong {
    margin-top: 2px;
    color: #18223f;
    font-size: 24px;
    line-height: 1;
}

.game-control-kpis p {
    margin-top: 5px;
    color: #6d7890;
    font-size: 10px;
    line-height: 1.3;
}

.game-control-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}

.game-control-grid--wide {
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
}

.game-control-panel {
    min-width: 0;
    margin: 0;
    padding: 18px;
    border-radius: 20px;
}

.game-control-panel__head {
    min-height: 40px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 15px;
}

.game-control-panel__head > span,
.game-control-panel__head > a {
    color: #64728f;
    font-size: 10px;
    font-weight: 800;
    text-decoration: none;
}

.game-control-panel__head > a {
    padding: 7px 10px;
    border: 1px solid #dbe4f4;
    border-radius: 10px;
    background: #f7faff;
    color: #2453ad;
}

.game-control-series {
    display: grid;
    gap: 8px;
    max-height: 430px;
    overflow-y: auto;
    padding-right: 4px;
}

.game-control-series__row {
    display: grid;
    grid-template-columns: 44px minmax(80px, 1fr) 34px minmax(120px, auto);
    align-items: center;
    gap: 9px;
}

.game-control-series__row time,
.game-control-series__row b,
.game-control-series__row small {
    font-size: 10px;
}

.game-control-series__row time {
    color: #6f7a92;
    font-weight: 800;
}

.game-control-series__row b {
    color: #20396f;
    text-align: right;
}

.game-control-series__row small {
    color: #7a859c;
    white-space: nowrap;
}

.game-control-series progress,
.game-control-funnel progress {
    width: 100%;
    height: 9px;
    overflow: hidden;
    border: 0;
    border-radius: 999px;
    background: #e8edf6;
}

.game-control-series progress::-webkit-progress-bar,
.game-control-funnel progress::-webkit-progress-bar { background: #e8edf6; }
.game-control-series progress::-webkit-progress-value { border-radius: 999px; background: #2a64cc; }
.game-control-series progress::-moz-progress-bar { border-radius: 999px; background: #2a64cc; }
.game-control-funnel progress::-webkit-progress-value { border-radius: 999px; background: #694cb8; }
.game-control-funnel progress::-moz-progress-bar { border-radius: 999px; background: #694cb8; }
.game-control-funnel .is-alert progress::-webkit-progress-value { background: #c84b5e; }
.game-control-funnel .is-alert progress::-moz-progress-bar { background: #c84b5e; }

.game-control-funnel {
    display: grid;
    gap: 12px;
}

.game-control-funnel > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 5px 10px;
}

.game-control-funnel span {
    color: #4f5d78;
    font-size: 11px;
    font-weight: 750;
}

.game-control-funnel strong {
    color: #233665;
    font-size: 13px;
}

.game-control-funnel progress {
    grid-column: 1 / -1;
}

.game-control-mini-status {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 16px;
}

.game-control-mini-status span {
    padding: 10px 8px;
    border-radius: 13px;
    background: #f4f7fb;
    color: #65718b;
    font-size: 9px;
    text-align: center;
}

.game-control-mini-status b {
    display: block;
    color: #283b6a;
    font-size: 15px;
}

.game-control-mini-status span.is-ok { background: #edf8f1; }
.game-control-mini-status span.is-warn { background: #fff7e8; }
.game-control-mini-status span.is-bad { background: #fff0f2; }

.game-control-settings form {
    display: grid;
    gap: 13px;
}

.game-control-settings fieldset {
    margin: 0;
    padding: 14px;
    border: 1px solid #dfe6f2;
    border-radius: 16px;
    background: #fbfcff;
}

.game-control-settings legend {
    float: none;
    width: auto;
    margin: 0 0 10px;
    padding: 0;
    color: #22335f;
    font-size: 12px;
    font-weight: 850;
}

.game-control-switch {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    cursor: pointer;
}

.game-control-switch input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.game-control-switch > span {
    width: 40px;
    height: 22px;
    position: relative;
    border-radius: 999px;
    background: #cdd5e4;
    transition: background .2s ease;
}

.game-control-switch > span::after {
    content: '';
    width: 16px;
    height: 16px;
    position: absolute;
    top: 3px;
    left: 3px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 6px rgba(24, 40, 78, .2);
    transition: transform .2s ease;
}

.game-control-switch input:checked + span {
    background: #23734a;
}

.game-control-switch input:checked + span::after {
    transform: translateX(18px);
}

.game-control-switch b {
    color: #37445f;
    font-size: 11px;
}

.game-control-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.game-control-form-grid label {
    min-width: 0;
    display: grid;
    gap: 5px;
}

.game-control-form-grid label > span {
    color: #5f6d88;
    font-size: 10px;
    font-weight: 800;
}

.game-control-form-grid input {
    width: 100%;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid #d6e0ef;
    border-radius: 12px;
    background: #fff;
    color: #17213f;
    font-size: 13px;
}

.game-control-form-grid small {
    color: #8791a5;
    font-size: 9px;
}

.game-control-save {
    justify-self: start;
}

.game-control-rules {
    display: grid;
    gap: 9px;
}

.game-control-rule {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px 11px;
    border: 1px solid #dfe6f2;
    border-radius: 15px;
    background: #fff;
}

.game-control-rule > span {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: #edf6f0;
    color: #27734c;
}

.game-control-rule.is-off > span {
    background: #f0f2f6;
    color: #7a8498;
}

.game-control-rule .icn {
    width: 16px;
    height: 16px;
}

.game-control-rule strong,
.game-control-rule small {
    display: block;
}

.game-control-rule strong {
    color: #25345c;
    font-size: 11px;
}

.game-control-rule small {
    margin-top: 2px;
    color: #7a859d;
    font-size: 9px;
}

.game-control-rule button {
    padding: 7px 9px;
    border: 1px solid #cfe2d6;
    border-radius: 10px;
    background: #f1faf4;
    color: #256d49;
    font-size: 9px;
    font-weight: 850;
}

.game-control-rule.is-off button {
    border-color: #d9e4f5;
    background: #f4f7fd;
    color: #2452aa;
}

.game-control-validation {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
}

.game-control-validation > div {
    padding: 12px 10px;
    border: 1px solid #e0e6f1;
    border-radius: 14px;
    background: #fbfcff;
    text-align: center;
}

.game-control-validation > div.is-bad {
    border-color: #f1c8cf;
    background: #fff5f6;
}

.game-control-validation span,
.game-control-validation strong {
    display: block;
}

.game-control-validation span {
    color: #727e96;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.game-control-validation strong {
    margin-top: 5px;
    color: #263968;
    font-size: 19px;
}

.game-control-note {
    margin: 12px 0 0;
    color: #69758d;
    font-size: 11px;
    line-height: 1.5;
}

.game-control-anomalies {
    display: grid;
    gap: 8px;
}

.game-control-anomalies a {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border: 1px solid #f0d3d8;
    border-radius: 14px;
    background: #fff8f9;
    color: inherit;
    text-decoration: none;
}

.game-control-anomalies a > span {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: #ffe8ec;
    color: #a93649;
}

.game-control-anomalies strong,
.game-control-anomalies small {
    display: block;
}

.game-control-anomalies strong {
    color: #27365e;
    font-size: 11px;
}

.game-control-anomalies small {
    color: #78849a;
    font-size: 9px;
}

.game-control-anomalies b {
    color: #a12f42;
    font-size: 10px;
}

.game-control-errors {
    margin-bottom: 0;
}

.game-control-panel__head form {
    margin: 0;
}

.game-control-error-list {
    display: grid;
    gap: 8px;
}

.game-control-error-list details {
    border: 1px solid #e2e7f1;
    border-radius: 14px;
    background: #fff;
}

.game-control-error-list summary {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    cursor: pointer;
    list-style: none;
}

.game-control-error-list summary::-webkit-details-marker { display: none; }

.game-control-error-list summary > span {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: #fff0f2;
    color: #ae3247;
}

.game-control-error-list strong,
.game-control-error-list small {
    display: block;
}

.game-control-error-list strong {
    color: #26365e;
    font-size: 11px;
}

.game-control-error-list small {
    margin-top: 2px;
    color: #7a859b;
    font-size: 9px;
}

.game-control-error-list details > p,
.game-control-error-list details > pre {
    margin: 0 12px 12px;
    padding: 10px;
    border-radius: 10px;
    background: #f7f9fc;
    color: #536079;
    font-size: 10px;
    white-space: pre-wrap;
    word-break: break-word;
}

@media (max-width: 1180px) {
    .game-control-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .game-control-grid--wide { grid-template-columns: 1fr; }
    .game-control-health { grid-template-columns: auto minmax(0, 1fr); }
    .game-control-health__facts { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
    .game-control-toolbar,
    .game-control-health,
    .game-control-panel__head {
        align-items: stretch;
        flex-direction: column;
    }

    .game-control-toolbar {
        display: grid;
    }

    .game-control-toolbar nav {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .game-control-toolbar nav a { text-align: center; }
    .game-control-health { grid-template-columns: 1fr; }
    .game-control-health__score { width: 100%; height: auto; padding: 12px; border-radius: 16px; }
    .game-control-health__facts { grid-column: auto; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .game-control-kpis,
    .game-control-grid,
    .game-control-form-grid { grid-template-columns: 1fr; }
    .game-control-validation { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .game-control-series__row { grid-template-columns: 40px minmax(70px, 1fr) 30px; }
    .game-control-series__row small { grid-column: 2 / -1; white-space: normal; }
    .game-control-mini-status { grid-template-columns: 1fr; }
    .game-control-rule,
    .game-control-anomalies a { grid-template-columns: 34px minmax(0, 1fr); }
    .game-control-rule button,
    .game-control-anomalies b { grid-column: 2; justify-self: start; }
}

/* Console del Guardiano — funnel e coda ospiti */
.guest-admin-panel { margin-top: 18px; }
.guest-admin-kpis {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 9px;
}
.guest-admin-kpis article {
    padding: 13px;
    border: 1px solid #e0e7f3;
    border-radius: 15px;
    background: #fbfcff;
}
.guest-admin-kpis small,
.guest-admin-kpis strong { display: block; }
.guest-admin-kpis small { color: #6b7893; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.guest-admin-kpis strong { margin-top: 5px; color: #1c3267; font-size: 23px; }
.guest-admin-kpis .is-rate { background: #edf8f2; border-color: #c5e7d3; }
.guest-admin-kpis .is-rate strong { color: #177545; }
.guest-admin-funnel { display: grid; gap: 8px; margin-top: 14px; }
.guest-admin-funnel > div { display: grid; grid-template-columns: 150px minmax(0,1fr) 52px; gap: 10px; align-items: center; }
.guest-admin-funnel span { color: #596987; font-size: 11px; }
.guest-admin-funnel progress { width: 100%; height: 9px; border: 0; border-radius: 999px; overflow: hidden; }
.guest-admin-funnel progress::-webkit-progress-bar { background: #e3e9f4; }
.guest-admin-funnel progress::-webkit-progress-value { background: linear-gradient(90deg,#235bd5,#7448dc); }
.guest-admin-funnel progress::-moz-progress-bar { background: linear-gradient(90deg,#235bd5,#7448dc); }
.guest-admin-funnel b { color: #233b76; font-size: 12px; text-align: right; }
.guest-admin-grid { margin-top: 18px; }
.guest-admin-sessions { display: grid; gap: 8px; max-height: 620px; overflow: auto; }
.guest-admin-sessions article { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; align-items: center; padding: 9px; border: 1px solid #e0e7f2; border-radius: 14px; background: #fff; }
.guest-admin-sessions article > a { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 10px; align-items: center; color: inherit; text-decoration: none; }
.guest-admin-sessions span b,
.guest-admin-sessions span small { display: block; }
.guest-admin-sessions span b { color: #243867; font-size: 12px; }
.guest-admin-sessions span small { margin-top: 3px; color: #7a879e; font-size: 9px; }
.guest-admin-sessions strong { color: #234eae; font-size: 13px; }
.guest-admin-sessions em { padding: 4px 7px; border-radius: 999px; background: #edf3ff; color: #3155aa; font-size: 8px; font-style: normal; font-weight: 850; }
.guest-admin-sessions article.is-scaduta em { background: #fff1df; color: #9d5700; }
.guest-admin-sessions article.is-rivendicata em { background: #e9f7ef; color: #137441; }
.guest-admin-sessions article.is-bloccata em { background: #fff0f2; color: #a12e43; }
.guest-admin-sessions form button { border: 0; background: transparent; color: #a12e43; font-size: 9px; font-weight: 800; }
.guest-admin-contributions { display: grid; gap: 10px; }
.guest-admin-contributions article { padding: 13px; border: 1px solid #e1e7f2; border-radius: 15px; background: #fff; }
.guest-admin-contributions header,
.guest-admin-contributions footer { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.guest-admin-contributions small { display: block; color: #7a879e; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.guest-admin-contributions header b { display: block; margin-top: 2px; color: #33446a; font-size: 12px; }
.guest-admin-contributions header em { padding: 4px 7px; border-radius: 999px; background: #f0f3f8; color: #596987; font-size: 8px; font-style: normal; }
.guest-admin-contributions > article > div { margin: 10px 0; padding: 11px; border-radius: 12px; background: #f5f8ff; }
.guest-admin-contributions > article > div strong { display: block; margin-top: 3px; color: #173f9d; font-size: 16px; overflow-wrap: anywhere; }
.guest-admin-contributions footer > span { color: #71809a; font-size: 9px; }
.guest-admin-contributions footer > div { display: flex; gap: 7px; }
.guest-admin-contributions footer form { margin: 0; }
.guest-admin-contributions footer button { min-height: 32px; padding: 6px 9px; font-size: 9px; }
@media (max-width: 1100px) { .guest-admin-kpis { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 700px) {
  .guest-admin-kpis { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .guest-admin-funnel > div { grid-template-columns: 105px minmax(0,1fr) 38px; }
  .guest-admin-sessions article > a { grid-template-columns: minmax(0,1fr) auto; }
  .guest-admin-sessions em { grid-column: 1 / -1; width: fit-content; }
  .guest-admin-contributions footer { align-items: flex-start; flex-direction: column; }
}

/* ========================================================================
 * Home Admin razionalizzata — priorità operative
 * ======================================================================== */
.admin-focus-head {
    align-items: flex-end;
    gap: 1.4rem;
    margin-bottom: 1rem;
}
.admin-focus-head h1 { max-width: 780px; }
.admin-focus-head-actions { display: flex; align-items: center; justify-content: flex-end; gap: .65rem; flex-wrap: wrap; }
.admin-focus-head-actions .admin-btn-lg { min-height: 48px; }
.admin-focus-range { margin-bottom: 1rem; }

.admin-priority-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    margin-bottom: 1rem;
}
.admin-priority-kpi {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 1rem 1.05rem;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 18px;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 14px 30px rgba(16,57,102,.13);
    transition: transform .18s ease, box-shadow .18s ease;
}
.admin-priority-kpi:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 18px 36px rgba(16,57,102,.20); }
.admin-priority-kpi.is-users { background: linear-gradient(135deg, #123f78, #2563eb); }
.admin-priority-kpi.is-anonymous { background: linear-gradient(135deg, #334155, #64748b); }
.admin-priority-kpi.is-new { background: linear-gradient(135deg, #6c3ac9, #a451df); }
.admin-priority-kpi.is-potential { background: linear-gradient(135deg, #8b6510, #c99719); }
.admin-priority-kpi.is-potential.has-work { background: linear-gradient(135deg, #a75a0b, #e1a41f); }
.admin-priority-kpi.is-review { background: linear-gradient(135deg, #146d72, #0ea5a8); }
.admin-priority-kpi.is-review.has-work { background: linear-gradient(135deg, #bb4b1c, #e58a22); }
.admin-priority-kpi.is-testimonial { background: linear-gradient(135deg, #9a295a, #d84d7c); }
.admin-priority-kpi-icon {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(255,255,255,.16);
}
.admin-priority-kpi-icon .icn { width: 23px; height: 23px; }
.admin-priority-kpi-copy { min-width: 0; display: flex; flex-direction: column; line-height: 1.1; }
.admin-priority-kpi-copy small { color: rgba(255,255,255,.76); font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.admin-priority-kpi-copy strong { margin-top: .25rem; font-size: clamp(1.65rem, 2.4vw, 2.4rem); letter-spacing: -.055em; }
.admin-priority-kpi-copy em { margin-top: .28rem; color: rgba(255,255,255,.82); font-size: .76rem; font-style: normal; font-weight: 700; white-space: normal; }
.admin-priority-kpi .strategy-delta { color: #fff; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.22); }

.admin-territory-focus {
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) minmax(260px, .7fr);
    gap: 1rem;
    align-items: stretch;
    margin-bottom: 1rem;
}
.admin-territory-map-card { min-width: 0; margin: 0; }
.admin-map-heading { margin-bottom: .65rem; }
.admin-map-tabs {
    display: inline-flex;
    align-items: stretch;
    gap: .3rem;
    padding: .3rem;
    margin: 0 0 .55rem;
    border: 1px solid #dce5f1;
    border-radius: 14px;
    background: #f4f7fb;
}
.admin-map-tab {
    appearance: none;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #52627a;
    padding: .62rem .9rem;
    min-width: 150px;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: .45rem;
    cursor: pointer;
    font: inherit;
    transition: background .16s ease, color .16s ease, box-shadow .16s ease;
}
.admin-map-tab span { font-weight: 900; }
.admin-map-tab small { font-size: .7rem; font-weight: 800; opacity: .75; }
.admin-map-tab.is-active {
    background: #0f2f5f;
    color: #fff;
    box-shadow: 0 6px 14px rgba(15,47,95,.16);
}
.admin-map-tab:focus-visible { outline: 3px solid rgba(38,99,235,.28); outline-offset: 2px; }
.admin-map-legend {
    display: flex;
    align-items: center;
    gap: .9rem;
    flex-wrap: wrap;
    min-height: 28px;
    margin-bottom: .35rem;
    color: #64748b;
    font-size: .73rem;
    font-weight: 800;
}
.admin-map-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.admin-map-legend i {
    width: 13px;
    height: 13px;
    border-radius: 4px;
    display: inline-block;
    border: 1px solid rgba(15,47,95,.18);
}
.admin-map-legend i.is-effective { background: #4d76dd; }
.admin-map-legend i.is-potential { background: #f6c84b; border: 2px dashed #b97800; }
.admin-map-legend i.has-pending { background: #4d76dd; border: 2px solid #d99a13; }
.admin-focus-map { height: clamp(420px, 50vh, 590px); }
.admin-territory-summary { display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.admin-territory-kpi {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
    padding: 1.15rem;
    border-radius: 20px;
    color: #fff;
    box-shadow: 0 16px 34px rgba(16,57,102,.12);
}
.admin-territory-kpi > span {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 15px;
    background: rgba(255,255,255,.15);
}
.admin-territory-kpi .icn { width: 25px; height: 25px; }
.admin-territory-kpi div { min-width: 0; }
.admin-territory-kpi small { display: block; color: rgba(255,255,255,.76); font-size: .7rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.admin-territory-kpi strong { display: block; margin-top: .18rem; font-size: clamp(2rem, 4vw, 3.2rem); line-height: .95; letter-spacing: -.06em; }
.admin-territory-kpi p { margin: .4rem 0 0; color: rgba(255,255,255,.82); font-size: .79rem; line-height: 1.35; }
.admin-territory-kpi.is-municipalities { background: linear-gradient(145deg, #173f7d, #2b6fe5); }
.admin-territory-kpi.is-guardians { background: linear-gradient(145deg, #176c61, #1aa995); }
.admin-territory-kpi.is-contributions { background: linear-gradient(145deg, #7f348c, #b755c0); }

.admin-daily-work-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(260px, .75fr) minmax(0, 1.05fr);
    gap: 1rem;
    align-items: stretch;
    margin-bottom: 2.2rem;
}
.admin-daily-card { margin: 0; min-width: 0; height: 100%; }
.admin-daily-review {
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #fff;
    background: linear-gradient(150deg, #9f3e19, #e58524);
    border: 0;
}
.admin-daily-review.is-clear { background: linear-gradient(150deg, #176b61, #18a38d); }
.admin-daily-review .strategy-eyebrow { color: rgba(255,255,255,.76); }
.admin-daily-review h2 { margin: .35rem 0 .5rem; color: #fff; font-size: clamp(1.35rem, 2.2vw, 2rem); }
.admin-daily-review p { color: rgba(255,255,255,.84); }
.admin-daily-icon {
    width: 54px;
    height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    border-radius: 18px;
    background: rgba(255,255,255,.16);
}
.admin-daily-icon .icn { width: 28px; height: 28px; }
.admin-daily-review-facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: .55rem; margin: .7rem 0 1rem; }
.admin-daily-review-facts span { padding: .65rem; border-radius: 12px; background: rgba(255,255,255,.13); color: rgba(255,255,255,.86); font-size: .75rem; }
.admin-daily-review-facts b { display: block; color: #fff; font-size: 1rem; }
.admin-daily-review .btn-ok { margin-top: auto; background: #fff; color: #8f3b18; border-color: #fff; box-shadow: none; }
.admin-daily-review.is-clear .btn-ok { color: #12685c; }
.admin-focus-list a { min-height: 54px; }

.admin-testimonial-mini-list { display: flex; flex-direction: column; gap: .55rem; }
.admin-testimonial-mini-list a {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: .7rem;
    align-items: center;
    padding: .52rem;
    border: 1px solid var(--ad-line);
    border-radius: 14px;
    color: var(--ad-ink);
    text-decoration: none;
    background: #fff;
}
.admin-testimonial-mini-list a:hover { border-color: var(--ad-coral); box-shadow: 0 10px 24px rgba(16,57,102,.09); }
.admin-testimonial-mini-list img { width: 76px; height: 48px; object-fit: cover; border-radius: 10px; background: #0b1f3a; }
.admin-testimonial-mini-list span { min-width: 0; display: flex; flex-direction: column; }
.admin-testimonial-mini-list strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-testimonial-mini-list small { margin-top: .2rem; color: var(--ad-muted); font-size: .72rem; }
.admin-testimonial-cta { display: flex; justify-content: center; margin-top: .8rem; }

.admin-secondary-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin: 2.5rem 0 1rem;
    padding-top: 1.7rem;
    border-top: 2px solid rgba(11,31,58,.09);
}
.admin-secondary-heading h2 { margin: .15rem 0 .25rem; color: var(--ad-navy); font-weight: 950; letter-spacing: -.035em; }
.admin-secondary-heading p { margin: 0; color: var(--ad-muted); }
.admin-secondary-block { margin-top: 1rem; }

/* Le tre funzioni usate ogni giorno restano immediatamente riconoscibili nel menu. */
.admin-nav .admin-group:first-child { color: #f5cc69; }
.admin-nav .admin-group:first-child + .admin-nav-link,
.admin-nav .admin-group:first-child + .admin-nav-link + .admin-nav-link,
.admin-nav .admin-group:first-child + .admin-nav-link + .admin-nav-link + .admin-nav-link {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.09);
}

@media (max-width: 1380px) {
    .admin-priority-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-daily-work-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-daily-testimonials { grid-column: 1 / -1; }
    .admin-testimonial-mini-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1080px) {
    .admin-territory-focus { grid-template-columns: 1fr; }
    .admin-territory-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto; }
    .admin-territory-kpi { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 760px) {
    .admin-focus-head { align-items: stretch; }
    .admin-focus-head-actions { justify-content: stretch; }
    .admin-focus-head-actions a { width: 100%; justify-content: center; }
    .admin-priority-kpis { grid-template-columns: 1fr; }
    .admin-territory-summary { grid-template-columns: 1fr; }
    .admin-territory-kpi { flex-direction: row; align-items: center; }
    .admin-map-tabs { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .admin-map-tab { min-width: 0; padding: .62rem .55rem; flex-direction: column; gap: .12rem; }
    .admin-map-legend { align-items: flex-start; flex-direction: column; gap: .35rem; }
    .admin-focus-map { height: 400px; }
    .admin-daily-work-grid { grid-template-columns: 1fr; }
    .admin-daily-testimonials { grid-column: auto; }
    .admin-testimonial-mini-list { grid-template-columns: 1fr; }
    .admin-secondary-heading { margin-top: 2rem; }
}

@media (max-width: 520px) {
    .admin-priority-kpi { padding: .88rem; }
    .admin-territory-kpi strong { font-size: 2.25rem; }
    .admin-focus-map { height: 350px; }
    .admin-daily-review-facts { grid-template-columns: 1fr; }
}

/* Controllo gioco — contributi prodotti senza account */
.guest-unsigned-panel { margin-top: 18px; }
.guest-unsigned-kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.guest-unsigned-filters { display: grid; grid-template-columns: minmax(180px,1fr) minmax(220px,1.2fr) auto auto; gap: 10px; align-items: end; margin: 16px 0; }
.guest-unsigned-filters label { display: grid; gap: 5px; }
.guest-unsigned-filters label > span { color: #6b7893; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.guest-unsigned-filters select { min-height: 40px; width: 100%; border: 1px solid #d9e2f0; border-radius: 11px; background: #fff; color: #263b69; padding: 7px 10px; font-size: 11px; }
.guest-unsigned-filters button,
.guest-unsigned-filters > a { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 11px; padding: 8px 14px; font-size: 10px; font-weight: 850; text-decoration: none; }
.guest-unsigned-filters button { border: 0; background: #244fc2; color: #fff; }
.guest-unsigned-filters > a { border: 1px solid #d9e2f0; color: #51627f; background: #fff; }
.guest-unsigned-communes { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; margin: 14px 0 18px; }
.guest-unsigned-communes a { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 8px; align-items: center; padding: 11px 12px; border: 1px solid #e0e7f2; border-radius: 13px; background: #fff; color: inherit; text-decoration: none; }
.guest-unsigned-communes span b,
.guest-unsigned-communes span small { display: block; }
.guest-unsigned-communes span b { color: #243867; font-size: 11px; }
.guest-unsigned-communes span small { margin-top: 2px; color: #8490a5; font-size: 8px; }
.guest-unsigned-communes strong { color: #214eb3; font-size: 18px; }
.guest-unsigned-communes em { grid-column: 1 / -1; color: #71809a; font-size: 8px; font-style: normal; }
.guest-unsigned-table-wrap { overflow-x: auto; border: 1px solid #e0e7f2; border-radius: 14px; background: #fff; }
.guest-unsigned-table { width: 100%; min-width: 840px; border-collapse: collapse; }
.guest-unsigned-table th { padding: 9px 11px; background: #f5f8ff; color: #6d7a92; font-size: 8px; text-align: left; text-transform: uppercase; letter-spacing: .03em; }
.guest-unsigned-table td { padding: 10px 11px; border-top: 1px solid #edf1f7; color: #42516d; font-size: 10px; vertical-align: middle; }
.guest-unsigned-table td > strong,
.guest-unsigned-table td > small { display: block; }
.guest-unsigned-table td > strong { color: #263b69; font-size: 11px; }
.guest-unsigned-table td > small { margin-top: 2px; color: #8994a8; font-size: 8px; }
.guest-unsigned-table td > b { color: #173f9d; font-size: 12px; }
.guest-unsigned-table td > a { color: #2355bf; font-weight: 800; }
.guest-status { display: inline-flex; padding: 4px 7px; border-radius: 999px; font-size: 8px; font-weight: 850; }
.guest-status--temporaneo { background: #fff3dc; color: #995800; }
.guest-status--anonimo { background: #edf1f7; color: #53627d; }
@media (max-width: 1100px) {
  .guest-unsigned-communes { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .guest-unsigned-filters { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
  .guest-unsigned-kpis,
  .guest-unsigned-communes { grid-template-columns: 1fr 1fr; }
  .guest-unsigned-filters { grid-template-columns: 1fr; }
}

/* ================================================================
   CONTRIBUTI ANONIMI — coda dedicata del Guardiano
   ================================================================ */
.anon-admin-head {
  align-items: flex-end;
  gap: 28px;
  margin-bottom: 22px;
}
.anon-admin-head > div:first-child { max-width: 900px; }
.anon-admin-head h1 { margin-bottom: 8px; }
.anon-admin-head p:last-child { max-width: 820px; }
.anon-head-status {
  min-width: 150px;
  padding: 15px 18px;
  border: 1px solid rgba(15, 38, 71, .12);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(13, 35, 64, .08);
  text-align: right;
}
.anon-head-status span { display: block; color: #657188; font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.anon-head-status strong { display: block; margin-top: 2px; color: #102844; font-size: 2rem; line-height: 1; }
.anon-head-status.has-items { border-color: rgba(233, 171, 38, .5); background: linear-gradient(145deg, #fffaf0, #fff); }
.anon-head-status.has-items strong { color: #a86a00; }

.anon-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
.anon-kpi-grid article {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 92px;
  padding: 17px 18px;
  border: 1px solid rgba(15, 38, 71, .1);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(13, 35, 64, .06);
}
.anon-kpi-grid article > span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 13px;
  background: #eef3f8;
  color: #17395e;
}
.anon-kpi-grid article > span .icn { width: 20px; height: 20px; }
.anon-kpi-grid article small { display: block; margin-bottom: 2px; color: #68758a; font-weight: 700; }
.anon-kpi-grid article strong { color: #102844; font-size: 1.65rem; line-height: 1; }
.anon-kpi-grid article.is-potential > span { background: #fff3d7; color: #a86a00; }
.anon-kpi-grid article.is-active > span { background: #e8f6ee; color: #187347; }

.anon-admin-rule {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 26px;
  padding: 16px 18px;
  border: 1px solid rgba(223, 167, 34, .35);
  border-radius: 17px;
  background: #fffaf0;
  color: #614a19;
}
.anon-admin-rule .icn { width: 21px; height: 21px; flex: 0 0 21px; margin-top: 1px; color: #c07a00; }
.anon-admin-rule p { margin: 0; line-height: 1.55; }

.anon-queue-group { margin-top: 28px; }
.anon-queue-group + .anon-queue-group { margin-top: 38px; }
.anon-queue-group__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 14px;
  padding: 0 2px;
}
.anon-queue-eyebrow {
  display: inline-flex;
  margin-bottom: 6px;
  color: #a76d05;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.anon-queue-group--active .anon-queue-eyebrow { color: #237149; }
.anon-queue-group__head h2 { margin: 0; color: #102844; font-size: 1.4rem; }
.anon-queue-group__head p { margin: 5px 0 0; color: #6c778b; }
.anon-queue-group__head > strong {
  flex: 0 0 auto;
  padding: 8px 11px;
  border-radius: 999px;
  background: #eff3f7;
  color: #46566e;
  font-size: .8rem;
}

.anon-queue-empty {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 24px;
  border: 1px dashed rgba(20, 47, 80, .18);
  border-radius: 18px;
  background: rgba(255,255,255,.64);
}
.anon-queue-empty .icn { width: 28px; height: 28px; color: #8490a1; }
.anon-queue-empty strong { display: block; color: #31435d; }
.anon-queue-empty p { margin: 3px 0 0; color: #7a8493; }

.anon-commune-list { display: grid; gap: 16px; }
.anon-commune-card {
  overflow: hidden;
  border: 1px solid rgba(15, 38, 71, .1);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 13px 38px rgba(13, 35, 64, .07);
}
.anon-commune-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 22px 16px;
}
.anon-commune-card__head h3 { margin: 7px 0 2px; color: #102844; font-size: 1.35rem; }
.anon-commune-card__head p { margin: 0; color: #7a8596; font-size: .9rem; }
.anon-territory-badge {
  display: inline-flex;
  align-items: center;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.anon-territory-badge.is-potential { background: #fff0c9; color: #966000; }
.anon-territory-badge.is-active { background: #e4f4ea; color: #176d43; }
.anon-commune-card__numbers { min-width: 118px; text-align: right; }
.anon-commune-card__numbers strong { display: block; color: #102844; font-size: 1.8rem; line-height: 1; }
.anon-commune-card__numbers span { display: block; margin-top: 4px; color: #7a8596; font-size: .72rem; font-weight: 700; }

.anon-activation-note {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 22px 15px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #fff8e9;
  color: #775311;
  font-size: .85rem;
}
.anon-activation-note .icn { width: 17px; height: 17px; flex: 0 0 17px; }
.anon-existing-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 22px 15px;
}
.anon-existing-stats span { padding: 7px 10px; border-radius: 10px; background: #f3f6f9; color: #5e6b7d; font-size: .78rem; }
.anon-existing-stats b { color: #233b59; }

.anon-session-list { border-top: 1px solid #edf0f4; }
.anon-session-row {
  display: grid;
  grid-template-columns: 68px minmax(150px, 1.15fr) minmax(150px, 1.15fr) minmax(90px, .7fr) 84px minmax(120px, auto);
  align-items: center;
  gap: 13px;
  min-height: 76px;
  padding: 12px 20px;
  border-bottom: 1px solid #edf0f4;
  color: inherit;
  text-decoration: none;
  transition: background .18s ease, transform .18s ease;
}
.anon-session-row:last-child { border-bottom: 0; }
.anon-session-row:hover { background: #f8fafc; }
.anon-session-id { color: #8993a1; font-size: .8rem; font-weight: 800; }
.anon-session-date small,
.anon-session-state small { display: block; margin-bottom: 3px; color: #8a94a3; font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.anon-session-date b,
.anon-session-state b { color: #263b56; font-size: .86rem; }
.anon-session-count { text-align: center; }
.anon-session-count strong { display: block; color: #a86a00; font-size: 1.45rem; line-height: 1; }
.anon-session-count small { color: #7b8697; font-size: .7rem; }
.anon-session-open {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  color: #173e67;
  font-size: .8rem;
  font-weight: 900;
}
.anon-session-open .icn { width: 16px; height: 16px; }

.anon-session-modal { color: #20354e; }
.anon-session-modal__summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  padding: 4px 0 18px;
  border-bottom: 1px solid #e7ebef;
}
.anon-session-modal__summary > div:first-child > span { color: #a36b08; font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.anon-session-modal__summary h3 { margin: 4px 0 2px; color: #102844; font-size: 1.45rem; }
.anon-session-modal__summary p { margin: 0; color: #788397; }
.anon-session-modal__dates { display: grid; grid-template-columns: repeat(2, minmax(142px, 1fr)); gap: 9px; }
.anon-session-modal__dates span { padding: 10px 12px; border-radius: 12px; background: #f3f6f9; }
.anon-session-modal__dates small { display: block; color: #7a8595; font-size: .67rem; font-weight: 800; text-transform: uppercase; }
.anon-session-modal__dates strong { display: block; margin-top: 2px; color: #243b57; font-size: .84rem; }
.anon-session-modal__meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.anon-session-modal__meta span { padding: 7px 10px; border-radius: 999px; background: #eef3f7; color: #526176; font-size: .78rem; }
.anon-session-modal__meta b { color: #173e67; }

.anon-approve-all {
  margin: 14px 0 18px;
  padding: 15px;
  border: 1px solid rgba(31, 126, 79, .2);
  border-radius: 15px;
  background: #eef9f2;
}
.anon-approve-all .btn-ok { display: inline-flex; align-items: center; gap: 8px; min-height: 43px; }
.anon-approve-all .btn-ok .icn { width: 17px; height: 17px; }
.anon-approve-all p { margin: 8px 0 0; color: #557061; font-size: .8rem; line-height: 1.45; }

.anon-modal-contributions { display: grid; gap: 10px; }
.anon-contribution-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 15px 16px;
  border: 1px solid #e6eaf0;
  border-radius: 15px;
  background: #fff;
}
.anon-contribution-row__copy small { display: block; margin-top: 6px; color: #8993a2; font-size: .66rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.anon-contribution-row__copy h4 { margin: 1px 0 0; color: #213750; font-size: .98rem; }
.anon-contribution-row__copy strong { display: block; margin-top: 1px; color: #102844; font-size: 1.12rem; }
.anon-contribution-row__copy p { margin: 7px 0 0; color: #818b9a; font-size: .75rem; }
.anon-contribution-state { display: inline-flex; padding: 4px 8px; border-radius: 999px; background: #fff1ce; color: #926000; font-size: .64rem; font-weight: 900; text-transform: uppercase; }
.anon-contribution-state.is-anonimo { background: #e5f5eb; color: #176d43; }
.anon-contribution-state.is-scartato { background: #f4e9e9; color: #965050; }
.anon-contribution-state.is-rivendicato { background: #e8eff8; color: #42658d; }
.anon-contribution-state.is-duplicato { background: #eef0f3; color: #626c78; }
.anon-contribution-row__actions { display: flex; align-items: center; gap: 8px; }
.anon-contribution-row__actions form { margin: 0; }
.anon-contribution-row__actions button { min-width: 82px; }
.anon-modal-empty { padding: 28px 8px; text-align: center; }
.anon-modal-empty strong { display: block; color: #273d57; font-size: 1.1rem; }
.anon-modal-empty p { margin: 4px 0 0; color: #7c8796; }
.game-control-note--link a { font-weight: 900; }

@media (max-width: 1180px) {
  .anon-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .anon-session-row { grid-template-columns: 54px 1fr 1fr 76px; }
  .anon-session-state { display: none; }
  .anon-session-open { grid-column: 2 / -1; justify-content: flex-start; margin-top: -5px; }
}
@media (max-width: 760px) {
  .anon-admin-head { align-items: stretch; }
  .anon-head-status { align-self: stretch; text-align: left; }
  .anon-kpi-grid { grid-template-columns: 1fr 1fr; gap: 9px; }
  .anon-kpi-grid article { min-height: 78px; padding: 12px; }
  .anon-kpi-grid article > span { width: 36px; height: 36px; flex-basis: 36px; }
  .anon-kpi-grid article strong { font-size: 1.35rem; }
  .anon-queue-group__head { align-items: flex-start; }
  .anon-commune-card__head { align-items: flex-start; padding: 17px 16px 13px; }
  .anon-commune-card__numbers { min-width: 86px; }
  .anon-activation-note, .anon-existing-stats { margin-left: 16px; margin-right: 16px; }
  .anon-session-row {
    grid-template-columns: 44px 1fr auto;
    gap: 9px;
    min-height: 0;
    padding: 13px 15px;
  }
  .anon-session-date:nth-of-type(3) { display: none; }
  .anon-session-count { grid-column: 3; grid-row: 1 / span 2; }
  .anon-session-open { grid-column: 2 / 3; }
  .anon-session-modal__summary { grid-template-columns: 1fr; }
  .anon-session-modal__dates { grid-template-columns: 1fr 1fr; }
  .anon-contribution-row { grid-template-columns: 1fr; }
  .anon-contribution-row__actions { justify-content: flex-start; }
}
@media (max-width: 460px) {
  .anon-kpi-grid { grid-template-columns: 1fr; }
  .anon-queue-group__head > strong { display: none; }
  .anon-session-modal__dates { grid-template-columns: 1fr; }
}

/* Contributi anonimi: scadenza mobile e separazione sessioni scadute/attive. */
.anon-session-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 24px 0 4px;
}
.anon-session-tab {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 2px 14px;
  min-height: 82px;
  padding: 16px 18px;
  border: 1px solid rgba(15, 38, 71, .12);
  border-radius: 18px;
  background: #fff;
  color: #5d6b7e;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 9px 28px rgba(13, 35, 64, .05);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}
.anon-session-tab:hover {
  transform: translateY(-1px);
  border-color: rgba(28, 65, 105, .24);
  box-shadow: 0 12px 30px rgba(13, 35, 64, .08);
}
.anon-session-tab > span {
  color: #173754;
  font-size: 1rem;
  font-weight: 900;
}
.anon-session-tab > strong {
  grid-row: 1 / span 2;
  grid-column: 2;
  color: #102844;
  font-size: 2rem;
  line-height: 1;
}
.anon-session-tab > small {
  color: #7a8696;
  font-size: .76rem;
  font-weight: 700;
}
.anon-session-tab.is-active {
  border-color: rgba(224, 164, 26, .62);
  background: linear-gradient(145deg, #fff8e7, #fff);
  box-shadow: 0 12px 32px rgba(170, 112, 0, .1);
}
.anon-session-tab.is-active > span,
.anon-session-tab.is-active > strong { color: #8d5c00; }
.anon-session-tab-panel[hidden] { display: none !important; }
.anon-session-tab-panel { padding-top: 1px; }

.anon-session-row {
  grid-template-columns: 58px minmax(132px, .95fr) minmax(132px, .95fr) minmax(132px, .95fr) minmax(82px, .6fr) 76px minmax(118px, auto);
}
.anon-session-state.is-attiva b { color: #187347; }
.anon-session-state.is-scaduta b { color: #9b5d00; }
.anon-session-modal__dates {
  grid-template-columns: repeat(4, minmax(118px, 1fr));
}

@media (max-width: 1320px) {
  .anon-session-row {
    grid-template-columns: 52px minmax(128px, 1fr) minmax(128px, 1fr) minmax(128px, 1fr) 72px minmax(112px, auto);
  }
  .anon-session-state { display: none; }
  .anon-session-modal__dates { grid-template-columns: repeat(2, minmax(140px, 1fr)); }
}
@media (max-width: 900px) {
  .anon-session-tabs { grid-template-columns: 1fr; }
  .anon-session-row {
    grid-template-columns: 46px minmax(0, 1fr) auto;
    gap: 8px 10px;
    padding: 14px 15px;
  }
  .anon-session-row .anon-session-date { display: block; grid-column: 2; }
  .anon-session-row .anon-session-count { grid-column: 3; grid-row: 1 / span 4; }
  .anon-session-row .anon-session-open { grid-column: 2 / 4; justify-content: flex-start; margin-top: 3px; }
  .anon-session-state { display: none; }
}
@media (max-width: 520px) {
  .anon-session-tab { min-height: 74px; padding: 14px 15px; }
  .anon-session-tab > strong { font-size: 1.7rem; }
  .anon-session-modal__dates { grid-template-columns: 1fr; }
}
