/* Campionato Mii — stile principale */
:root {
  --navy: #17365d;
  --navy-2: #0f243e;
  --blue: #2f75b5;
  --sky: #d9eaf7;
  --paper: #f5f7fb;
  --card: #ffffff;
  --ink: #18202c;
  --muted: #687386;
  --line: #dfe5ed;
  --success: #2e7d32;
  --warning: #a46700;
  --danger: #b3261e;
  --shadow: 0 12px 30px rgba(15,36,62,.08);
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: var(--paper); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.app-header { min-height: 104px; padding: 22px clamp(18px,4vw,54px); display:flex; justify-content:space-between; gap:24px; align-items:center; color:#fff; background:linear-gradient(130deg,var(--navy-2),var(--navy)); }
.app-header h1 { margin: 0; font-size: clamp(25px,4vw,38px); }
.eyebrow { margin:0 0 3px; font-size:12px; text-transform:uppercase; letter-spacing:.16em; opacity:.75; }
.header-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
button, .file-button { border:0; border-radius:10px; padding:10px 14px; background:var(--blue); color:#fff; font-weight:700; transition:.15s ease; }
button:hover, .file-button:hover { transform:translateY(-1px); filter:brightness(1.04); }
button:disabled { opacity:.45; cursor:not-allowed; transform:none; }
button.ghost, .file-button.ghost { background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.25); }
button.secondary { background:#eaf1f8; color:var(--navy); }
button.danger { background:var(--danger); }
button.small { padding:7px 10px; font-size:13px; }
.file-button input { display:none; }
.main-nav { display:flex; gap:6px; padding:9px clamp(12px,4vw,54px); overflow:auto; background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; }
.main-nav button { flex:0 0 auto; color:var(--muted); background:transparent; border-radius:999px; padding:9px 14px; }
.main-nav button.active { color:#fff; background:var(--navy); }
.app-shell { width:min(1280px, calc(100% - 28px)); margin:26px auto 70px; }
.page-title { display:flex; gap:20px; justify-content:space-between; align-items:flex-end; margin-bottom:18px; }
.page-title h2 { margin:0; font-size:clamp(24px,3vw,34px); }
.page-title p { margin:4px 0 0; color:var(--muted); }
.grid { display:grid; gap:16px; }
.grid.cols-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.grid.cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.grid.cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.card { background:var(--card); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); padding:18px; }
.card h3 { margin:0 0 12px; }
.metric { font-size:30px; font-weight:800; line-height:1; color:var(--navy); }
.metric-label { margin-top:7px; color:var(--muted); font-size:13px; }
.kicker { color:var(--blue); text-transform:uppercase; letter-spacing:.08em; font-weight:800; font-size:12px; }
.hero-fixture { display:grid; grid-template-columns:1fr auto 1fr; gap:18px; align-items:center; text-align:center; padding:28px; }
.hero-fixture .team-name { font-size:clamp(20px,3vw,34px); font-weight:850; }
.hero-fixture .versus { color:var(--muted); font-weight:800; }
.toolbar { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
.toolbar .push { margin-left:auto; }
select, input, textarea { width:100%; border:1px solid #cfd8e4; border-radius:10px; padding:10px 11px; background:#fff; color:var(--ink); }
textarea { min-height:120px; resize:vertical; }
label.field { display:grid; gap:6px; font-size:13px; font-weight:750; color:#3e4a5b; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.table-wrap { overflow:auto; border:1px solid var(--line); border-radius:12px; }
table { border-collapse:collapse; width:100%; min-width:720px; background:#fff; }
th, td { padding:11px 12px; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; }
th { background:#edf3f9; color:var(--navy); font-size:12px; text-transform:uppercase; letter-spacing:.04em; position:sticky; top:0; z-index:1; }
tr:last-child td { border-bottom:0; }
.position { width:34px; height:34px; display:inline-grid; place-items:center; border-radius:50%; background:var(--navy); color:#fff; font-size:12px; font-weight:800; }
.badge { display:inline-flex; align-items:center; padding:4px 8px; border-radius:999px; font-size:12px; font-weight:800; background:#edf3f9; color:var(--navy); }
.badge.success { background:#e2f2e4; color:#216225; }
.badge.warning { background:#fff2cc; color:#7f6000; }
.badge.danger { background:#f8dddd; color:#8b1f18; }
.fixture-list { display:grid; gap:10px; }
.fixture { display:grid; grid-template-columns:minmax(0,1fr) 74px minmax(0,1fr) auto; gap:10px; align-items:center; padding:13px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.fixture .home { text-align:right; font-weight:750; }
.fixture .away { font-weight:750; }
.score { text-align:center; font-weight:900; font-size:18px; color:var(--navy); }
.fixture.mii { border:2px solid var(--blue); background:#f6fbff; }
.result-input { display:grid; grid-template-columns:1fr auto 1fr; gap:7px; align-items:center; }
.result-input input { text-align:center; font-weight:900; }
.ranking-form { display:flex; gap:3px; }
.form-dot { width:22px; height:22px; border-radius:50%; display:grid; place-items:center; font-size:10px; color:#fff; font-weight:800; }
.form-dot.W { background:#2e7d32; } .form-dot.D { background:#8a6d1d; } .form-dot.L { background:#b3261e; }
.roster-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:13px; }
.player-card { border:1px solid var(--line); background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 6px 18px rgba(15,36,62,.05); }
.player-card .photo { height:140px; background:linear-gradient(135deg,#dce8f4,#eef4fa); display:grid; place-items:center; color:var(--navy); font-size:42px; font-weight:900; overflow:hidden; }
.player-card .photo img { width:100%; height:100%; object-fit:cover; }
.player-card .body { padding:13px; }
.player-card h4 { margin:0 0 6px; font-size:18px; }
.player-card .meta { color:var(--muted); font-size:13px; }
.player-card .actions { display:flex; gap:7px; margin-top:12px; }
.news-card { display:grid; gap:8px; }
.news-card h3 { margin:0; }
.news-card p { margin:0; line-height:1.55; color:#3e4a5b; }
.news-card .meta { color:var(--muted); font-size:12px; }
.empty { padding:34px; text-align:center; color:var(--muted); border:1px dashed #c7d1dd; border-radius:14px; }
.modal-backdrop { position:fixed; inset:0; z-index:100; background:rgba(10,20,34,.64); display:grid; place-items:center; padding:18px; }
.modal { width:min(900px,100%); max-height:92vh; overflow:auto; background:#fff; border-radius:18px; box-shadow:0 30px 80px rgba(0,0,0,.25); }
.modal header { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:18px 20px; border-bottom:1px solid var(--line); }
.modal header h2 { margin:0; }
.modal .content { padding:20px; }
.modal .footer { display:flex; justify-content:flex-end; gap:9px; padding:16px 20px; border-top:1px solid var(--line); position:sticky; bottom:0; background:#fff; }
.goal-row { display:grid; grid-template-columns:70px 1fr 1fr auto; gap:9px; align-items:end; padding:10px 0; border-bottom:1px solid var(--line); }
.section-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:22px 0 10px; }
.section-heading h3 { margin:0; }
.toast { position:fixed; right:20px; bottom:20px; z-index:200; color:#fff; background:var(--navy-2); border-radius:12px; padding:12px 16px; box-shadow:var(--shadow); opacity:0; transform:translateY(10px); pointer-events:none; transition:.2s; }
.toast.show { opacity:1; transform:translateY(0); }
.note { padding:12px 14px; border-left:4px solid var(--blue); background:#eef6fd; color:#33455a; border-radius:8px; line-height:1.45; }
.warning-box { border-left-color:#c28100; background:#fff7df; }
@media (max-width:900px) { .grid.cols-4,.grid.cols-3 { grid-template-columns:repeat(2,minmax(0,1fr)); } .hero-fixture { grid-template-columns:1fr; } .fixture { grid-template-columns:1fr 60px 1fr; } .fixture button { grid-column:1/-1; } }
@media (max-width:620px) { .app-header { align-items:flex-start; flex-direction:column; } .header-actions { justify-content:flex-start; } .grid.cols-4,.grid.cols-3,.grid.cols-2,.form-grid { grid-template-columns:1fr; } .app-shell { width:min(100% - 18px,1280px); margin-top:16px; } .goal-row { grid-template-columns:1fr; } .fixture { font-size:13px; } }

/* =========================================================
   TEMA STADIO — livello grafico aggiuntivo
   ========================================================= */
:root {
  --navy: #123b31;
  --navy-2: #061f1a;
  --blue: #1f8f62;
  --sky: #dff4e9;
  --paper: #071813;
  --card: rgba(252, 255, 253, .94);
  --ink: #14251f;
  --muted: #60746c;
  --line: rgba(17, 76, 57, .16);
  --success: #177245;
  --warning: #a46600;
  --danger: #b3261e;
  --shadow: 0 18px 45px rgba(0, 20, 14, .20);
  --gold: #f1c75b;
}

html { min-height: 100%; background: #061711; }
body {
  min-height: 100vh;
  background:
    linear-gradient(rgba(4, 23, 17, .42), rgba(4, 23, 17, .56)),
    url("assets/stadium-bg.svg") center 6% / cover fixed,
    #071813;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 12% 2%, rgba(255,255,255,.10), transparent 22%),
    radial-gradient(circle at 88% 4%, rgba(255,255,255,.08), transparent 20%);
  z-index: -1;
}

.app-header {
  position: relative;
  overflow: hidden;
  min-height: 128px;
  border-bottom: 1px solid rgba(255,255,255,.14);
  background:
    linear-gradient(115deg, rgba(3,26,19,.82), rgba(16,91,63,.72)),
    url("assets/stadium-bg.svg") center 18% / cover;
  box-shadow: 0 14px 40px rgba(0,0,0,.24);
}
.app-header::after {
  content: "";
  position: absolute;
  width: 320px;
  height: 320px;
  right: 8%;
  top: -210px;
  border: 2px solid rgba(255,255,255,.12);
  border-radius: 50%;
}
.brand { display:flex; align-items:center; gap:15px; position:relative; z-index:1; }
.brand-mark {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  border-radius: 18px;
  display:grid;
  place-items:center;
  background: #271710;
  box-shadow: inset 0 1px rgba(255,255,255,.65), 0 10px 24px rgba(0,0,0,.24);
}
.brand-mark img { width:40px; height:40px; display:block; }
.app-header h1 { letter-spacing:-.035em; text-shadow:0 2px 18px rgba(0,0,0,.28); }
.eyebrow { color:#ccebdc; opacity:1; font-weight:800; }
.header-actions { position:relative; z-index:1; }
.header-actions button, .header-actions .file-button {
  backdrop-filter: blur(8px);
  box-shadow: 0 7px 18px rgba(0,0,0,.14);
}

.main-nav {
  top: 0;
  background: rgba(248, 253, 250, .92);
  backdrop-filter: blur(15px);
  box-shadow: 0 9px 25px rgba(0,0,0,.10);
}
.main-nav button { font-weight:800; }
.main-nav button.active {
  background: linear-gradient(135deg, #0d5138, #208b61);
  box-shadow: 0 7px 16px rgba(18,95,66,.24);
}

.app-shell { width:min(1320px, calc(100% - 28px)); }
.page-title { color:#fff; align-items:center; }
.page-title p { color:#c6d7d0; }
.page-title h2 { text-shadow:0 3px 18px rgba(0,0,0,.30); }

.card {
  border: 1px solid rgba(255,255,255,.54);
  background: var(--card);
  box-shadow: var(--shadow);
  backdrop-filter: blur(13px);
}
.card h2, .card h3 { color:#153d30; }
.stat-card, .mini-card {
  position:relative;
  overflow:hidden;
}
.stat-card::after, .mini-card::after {
  content:"";
  position:absolute;
  right:-28px;
  bottom:-34px;
  width:92px;
  height:92px;
  border-radius:50%;
  background:rgba(31,143,98,.08);
}

button, .file-button {
  background: linear-gradient(135deg, #14704d, #259b6c);
  box-shadow: 0 7px 15px rgba(18,103,72,.18);
}
button:hover, .file-button:hover { transform:translateY(-2px); box-shadow:0 11px 20px rgba(18,103,72,.24); }
button.secondary { background:#e5f2ec; color:#155139; box-shadow:none; }
button.danger { background:linear-gradient(135deg,#9c201a,#c64238); }

input, select, textarea {
  border-radius: 11px;
  border: 1px solid rgba(17,76,57,.20);
  background: rgba(255,255,255,.92);
}
input:focus, select:focus, textarea:focus {
  outline: 3px solid rgba(31,143,98,.16);
  border-color:#258d64;
}

table { border-radius:14px; overflow:hidden; }
thead th {
  color:#fff;
  background:linear-gradient(135deg,#123e30,#1c6e50);
}
tbody tr:hover { background:#edf8f2; }

.badge, .pill { border-color:rgba(16,84,59,.14); }
.toast { background:#092b20; box-shadow:0 12px 35px rgba(0,0,0,.30); }
.modal-backdrop { background:rgba(0,17,12,.72); backdrop-filter:blur(7px); }
.modal { border:1px solid rgba(255,255,255,.45); box-shadow:0 30px 80px rgba(0,0,0,.38); }

.pitch {
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.045) 0 8%, rgba(0,0,0,.02) 8% 16%),
    linear-gradient(180deg,#258a55,#176f43);
  border:2px solid rgba(255,255,255,.75);
  box-shadow: inset 0 0 0 6px rgba(255,255,255,.08), 0 17px 32px rgba(0,0,0,.20);
}

.loading-card { display:flex; align-items:center; gap:16px; min-height:110px; }
.spinner {
  width:34px; height:34px; border-radius:50%;
  border:4px solid #d7ece2; border-top-color:#1d8b60;
  animation:spin .8s linear infinite;
}
@keyframes spin { to { transform:rotate(360deg); } }
.error-card { display:flex; gap:16px; align-items:flex-start; border-left:5px solid var(--danger); }
.error-icon {
  width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center;
  border-radius:50%; background:#fde7e5; color:#a9231c; font-weight:900; font-size:24px;
}

.app-footer {
  width:min(1320px, calc(100% - 28px));
  margin: -35px auto 35px;
  color:#b8cec4;
  text-align:center;
  font-size:12px;
}

@media (max-width: 720px) {
  .app-header { align-items:flex-start; flex-direction:column; min-height:165px; }
  .header-actions { justify-content:flex-start; }
  .brand-mark { width:50px; height:50px; flex-basis:50px; border-radius:15px; }
  .brand-mark img { width:34px; height:34px; }
}

/* =========================================================
   FUNZIONI ESTESE: CLASSIFICA, FORMAZIONE, ARCHIVIO, REFERTI
   ========================================================= */
:root { --accent-user: #1f8f62; }

button:not(.danger):not(.secondary):not(.ghost),
.file-button:not(.ghost) {
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent-user) 78%, #063c2a), var(--accent-user));
}

.fixture-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; flex-wrap:wrap; }
.wide-modal { width:min(1180px, 100%); }
.event-row {
  display:grid;
  grid-template-columns:minmax(130px,.8fr) minmax(90px,.55fr) minmax(160px,1fr) minmax(160px,1fr) auto;
  gap:9px;
  align-items:end;
  padding:11px;
  margin-bottom:8px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.72);
}
.goal-row { grid-template-columns:110px 1fr 1fr auto; }
.injury-row { grid-template-columns:minmax(120px,.7fr) 90px 1fr 1.2fr 120px auto; }
.remove-event { min-width:38px; align-self:end; }

/* =========================================================
   ZONE QUALIFICAZIONE EUROPEA
   ========================================================= */

tbody tr.zone-champions,
tbody tr.zone-champions:hover {
  background: rgba(52, 134, 235, .18);
  box-shadow: inset 6px 0 0 #3486eb;
}

tbody tr.zone-europa,
tbody tr.zone-europa:hover {
  background: rgba(241, 145, 44, .20);
  box-shadow: inset 6px 0 0 #f1912c;
}

tbody tr.zone-conference,
tbody tr.zone-conference:hover {
  background: rgba(55, 166, 92, .20);
  box-shadow: inset 6px 0 0 #37a65c;
}

tbody tr.zone-none,
tbody tr.zone-none:hover {
  background: rgba(120, 130, 140, .12);
  box-shadow: inset 6px 0 0 #87919b;
}

.standings-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  align-items: center;
  margin-bottom: 16px;
  padding: 14px 18px;
}

.legend-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #33455a;
  font-size: 13px;
  font-weight: 800;
}

.legend-color {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border-radius: 5px;
}

.legend-color.champions {
  background: #3486eb;
}

.legend-color.europa {
  background: #f1912c;
}

.legend-color.conference {
  background: #37a65c;
}

.legend-color.none {
  background: #87919b;
}

.qualification-badge {
  display: inline-flex;
  align-items: center;
  min-width: 138px;
  padding: 5px 9px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}

.qualification-badge.champions {
  color: #174d9d;
  background: rgba(52, 134, 235, .16);
  border-color: rgba(52, 134, 235, .35);
}

.qualification-badge.europa {
  color: #8a4900;
  background: rgba(241, 145, 44, .18);
  border-color: rgba(241, 145, 44, .40);
}

.qualification-badge.conference {
  color: #176634;
  background: rgba(55, 166, 92, .18);
  border-color: rgba(55, 166, 92, .38);
}

.qualification-badge.none {
  color: #52606c;
  background: rgba(120, 130, 140, .14);
  border-color: rgba(120, 130, 140, .30);
}

body[data-theme="scuro"] .legend-item {
  color: #e4f0ea;
}

body[data-theme="scuro"] .qualification-badge.champions {
  color: #bcd8ff;
}

body[data-theme="scuro"] .qualification-badge.europa {
  color: #ffd1a0;
}

body[data-theme="scuro"] .qualification-badge.conference {
  color: #bceacb;
}

body[data-theme="scuro"] .qualification-badge.none {
  color: #d2d8dd;
}

/* Calendario */
.calendar-rounds { display:grid; grid-template-columns:repeat(auto-fit,minmax(360px,1fr)); gap:16px; }
.calendar-round { padding:16px; }
.calendar-match { display:grid; grid-template-columns:1fr 54px 1fr auto; gap:10px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); }
.calendar-match:last-child { border-bottom:0; }
.calendar-match span:first-child { text-align:right; }
.calendar-match strong { text-align:center; color:var(--navy); }

/* Formazione */
.formation-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.7fr); gap:16px; align-items:start; }
.pitch-board {
  position:relative;
  min-height:720px;
  overflow:hidden;
  border:4px solid rgba(255,255,255,.86);
  border-radius:24px;
  background:
    linear-gradient(90deg, transparent 49.7%, rgba(255,255,255,.72) 49.7% 50.3%, transparent 50.3%),
    radial-gradient(circle at 50% 50%, transparent 0 9%, rgba(255,255,255,.72) 9.2% 9.7%, transparent 10%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 10%, rgba(0,0,0,.025) 10% 20%),
    linear-gradient(180deg,#2f9d61,#197446);
  box-shadow:inset 0 0 0 8px rgba(255,255,255,.08), 0 22px 46px rgba(0,0,0,.25);
}
.pitch-board::before, .pitch-board::after {
  content:"";
  position:absolute;
  left:25%; right:25%; height:16%;
  border:2px solid rgba(255,255,255,.72);
}
.pitch-board::before { top:-2px; border-top:0; }
.pitch-board::after { bottom:-2px; border-bottom:0; }
.pitch-slot {
  position:absolute;
  width:168px;
  transform:translate(-50%,-50%);
  display:grid;
  gap:5px;
  padding:7px;
  border-radius:12px;
  background:rgba(4,39,26,.76);
  box-shadow:0 8px 20px rgba(0,0,0,.24);
}
.pitch-slot span { color:#f5d879; font-size:11px; font-weight:900; text-align:center; }
.pitch-slot select { padding:7px; font-size:12px; }
.bench-editor { display:grid; gap:10px; max-height:700px; overflow:auto; padding-right:4px; }

/* Archivio, record, cronologia */
.archive-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:16px; }
.archive-card { display:grid; gap:8px; align-content:start; }
.archive-card h3, .archive-card p { margin:0; }
.record-card { min-height:140px; position:relative; overflow:hidden; }
.record-card::after { content:"★"; position:absolute; right:16px; bottom:-12px; font-size:76px; opacity:.08; }
.timeline { display:grid; gap:8px; }
.timeline-item { display:grid; grid-template-columns:50px 1fr auto; gap:10px; align-items:center; padding:10px; border-radius:10px; background:#edf6f1; }
.timeline-item strong { color:var(--navy); }
.timeline-item small { color:var(--muted); }

/* News */
.news-header-actions { display:flex; flex-wrap:wrap; gap:9px; justify-content:flex-end; }
.news-card-header { display:flex; justify-content:space-between; align-items:center; gap:12px; }
blockquote { margin:8px 0 0; padding:12px 14px; border-left:4px solid var(--accent-user); background:rgba(31,143,98,.08); border-radius:8px; }

/* Temi e sfondo personalizzato */
body.has-custom-bg {
  background:
    linear-gradient(rgba(4,23,17,.28), rgba(4,23,17,.42)),
    var(--custom-bg) center 6% / cover fixed,
    #071813;
}
body[data-theme="chiaro"] {
  --paper:#eef3f1;
  --card:rgba(255,255,255,.97);
  --ink:#15231e;
  --muted:#607068;
  background:#eef3f1;
}
body[data-theme="chiaro"] .page-title { color:#173b30; }
body[data-theme="chiaro"] .page-title p { color:#5d7068; }
body[data-theme="scuro"] {
  --paper:#07100d;
  --card:rgba(16,31,25,.96);
  --ink:#eff9f4;
  --muted:#a9bdb4;
  --line:rgba(226,255,242,.13);
  background:#07100d;
}
body[data-theme="scuro"] .card,
body[data-theme="scuro"] table,
body[data-theme="scuro"] .fixture,
body[data-theme="scuro"] .event-row { color:var(--ink); background:var(--card); }
body[data-theme="scuro"] .card h2,
body[data-theme="scuro"] .card h3,
body[data-theme="scuro"] label.field { color:var(--ink); }
body[data-theme="scuro"] input,
body[data-theme="scuro"] select,
body[data-theme="scuro"] textarea { color:#eef8f3; background:#12231c; border-color:rgba(255,255,255,.16); }
body[data-theme="scuro"] .timeline-item { background:#13271f; }

@media (max-width:1050px) {
  .formation-layout { grid-template-columns:1fr; }
  .pitch-board { min-height:650px; }
  .event-row, .injury-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .remove-event { width:100%; }
}
@media (max-width:700px) {
  .calendar-rounds { grid-template-columns:1fr; }
  .calendar-match { grid-template-columns:1fr 45px 1fr; }
  .calendar-match button { grid-column:1/-1; }
  .pitch-board { min-height:760px; }
  .pitch-slot { width:130px; }
  .event-row, .goal-row, .injury-row { grid-template-columns:1fr; }
  .standings-legend { align-items:flex-start; flex-direction:column; }
  .news-header-actions { margin-top:10px; justify-content:flex-start; }
} 

.pitch-board::before,
.pitch-board::after {
  pointer-events: none;
}

.pitch-slot {
  z-index: 2;
}

.pitch-slot select {
  position: relative;
  z-index: 3;
  pointer-events: auto;
}

/* =========================================================
   REGOLAZIONE FOTO GIOCATORI
   ========================================================= */

.photo-adjuster {
  margin-top: 22px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.72);
}

.photo-adjuster .section-heading {
  margin-top: 0;
}

.photo-adjuster .section-heading h3,
.photo-adjuster .section-heading p {
  margin: 0;
}

.photo-adjuster .section-heading p {
  margin-top: 5px;
  color: var(--muted);
  font-size: 13px;
}

.photo-adjuster-layout {
  display: grid;
  grid-template-columns: minmax(240px, 340px) 1fr;
  gap: 22px;
  align-items: center;
  margin-top: 16px;
}

.photo-crop-frame {
  width: 100%;
  max-width: 340px;
  aspect-ratio: 1;
  overflow: hidden;
  border: 5px solid #ffffff;
  border-radius: 24px;
  background: #dce9e2;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
}

.photo-crop-frame canvas {
  display: block;
  width: 100%;
  height: 100%;
  cursor: move;
}

.photo-controls {
  display: grid;
  gap: 17px;
}

.photo-control {
  display: grid;
  gap: 8px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
}

.photo-control > span {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.photo-control input[type="range"] {
  width: 100%;
  cursor: pointer;
}

.photo-control-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 6px;
}

.photo-control input:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

body[data-theme="scuro"] .photo-adjuster {
  background: rgba(18, 35, 28, 0.9);
}

@media (max-width: 700px) {
  .photo-adjuster-layout {
    grid-template-columns: 1fr;
  }

  .photo-crop-frame {
    margin: 0 auto;
  }
}

/* =========================================================
   ACCESSO E SINCRONIZZAZIONE ONLINE
   ========================================================= */
.cloud-hidden {
  display: none !important;
}

body.cloud-locked .app-header .header-actions > :not(.cloud-button) {
  opacity: .38;
  pointer-events: none;
}

.cloud-screen {
  min-height: calc(100vh - 245px);
  display: grid;
  place-items: center;
  padding: 26px 0 50px;
}

.cloud-auth-card,
.cloud-onboarding-card {
  width: min(760px, 100%);
  padding: clamp(24px, 4vw, 42px);
}

.cloud-onboarding-card {
  width: min(980px, 100%);
}

.cloud-auth-card h2,
.cloud-onboarding-card h2 {
  margin: 6px 0 10px;
  font-size: clamp(28px, 4vw, 42px);
}

.cloud-intro {
  margin: 0 0 22px;
  color: var(--muted);
  line-height: 1.55;
}

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

.cloud-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.cloud-offline-button {
  color: #fff;
  background: rgba(17, 76, 57, .72) !important;
}

.cloud-small {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.cloud-message {
  margin: 16px 0;
}

.cloud-onboarding-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.cloud-option {
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255, 255, 255, .70);
}

.cloud-option h3,
.cloud-option p {
  margin: 0;
}

.cloud-option p {
  color: var(--muted);
  line-height: 1.5;
}

.cloud-user-code {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px;
  border-radius: 12px;
  background: rgba(15, 70, 51, .08);
}

.cloud-user-code code {
  flex: 1;
  overflow-wrap: anywhere;
  color: #143d30;
  font-size: 12px;
}

.cloud-championship-list {
  display: grid;
  gap: 10px;
  margin: 18px 0;
}

.cloud-championship-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  width: 100%;
  text-align: left;
  color: #fff;
}

.cloud-championship-card span {
  font-size: 12px;
  opacity: .82;
}

.cloud-bottom-actions {
  justify-content: flex-end;
  padding-top: 8px;
}

.cloud-modal {
  width: min(760px, 100%);
}

.cloud-status-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px;
  border-radius: 14px;
  background: #edf8f2;
}

.cloud-status-card div {
  display: grid;
  gap: 3px;
}

.cloud-status-card small {
  color: var(--muted);
}

.cloud-status-dot {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #23a56d;
  box-shadow: 0 0 0 6px rgba(35, 165, 109, .14);
}

.cloud-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.cloud-info-grid > div {
  display: grid;
  gap: 4px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 13px;
}

.cloud-info-grid span {
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.cloud-user-section {
  display: grid;
  gap: 10px;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.cloud-user-section h3,
.cloud-user-section p {
  margin: 0;
}

.cloud-user-section p {
  color: var(--muted);
}

body[data-theme="scuro"] .cloud-option,
body[data-theme="scuro"] .cloud-status-card {
  background: rgba(19, 39, 31, .94);
}

body[data-theme="scuro"] .cloud-user-code code {
  color: #eff9f4;
}

@media (max-width: 700px) {
  .cloud-form,
  .cloud-onboarding-grid,
  .cloud-info-grid {
    grid-template-columns: 1fr;
  }

  .cloud-championship-card {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* =========================================================
   SOUNDTRACK E MINI-PLAYER
   ========================================================= */
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
body.music-player-ready:not(.cloud-locked) { padding-bottom: 112px; }
body.cloud-locked .music-player { display:none; }
.music-player {
  position:fixed;
  left:16px;
  right:16px;
  bottom:14px;
  z-index:85;
  display:grid;
  grid-template-columns:minmax(230px,1fr) auto minmax(260px,1.3fr) minmax(260px,1fr);
  gap:14px;
  align-items:center;
  padding:12px 14px;
  color:#f4fff9;
  border:1px solid rgba(255,255,255,.22);
  border-radius:18px;
  background:linear-gradient(125deg,rgba(4,27,20,.97),rgba(15,74,54,.96));
  box-shadow:0 22px 55px rgba(0,0,0,.36);
  backdrop-filter:blur(18px);
}
.music-mini-track { min-width:0; display:flex; align-items:center; gap:11px; }
.music-mini-copy { min-width:0; display:grid; gap:3px; }
.music-mini-copy strong, .music-mini-copy span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.music-mini-copy strong { font-size:14px; }
.music-mini-copy span { color:#bcd9cc; font-size:12px; }
.music-art {
  --music-hue:24;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  color:#fff7cf;
  font-weight:950;
  letter-spacing:.04em;
  border:1px solid rgba(255,255,255,.38);
  background:
    radial-gradient(circle at 50% 50%,#07150f 0 10%,#d9b64c 10.5% 15%,transparent 15.5%),
    repeating-radial-gradient(circle at 50% 50%,hsla(var(--music-hue),76%,58%,.72) 0 5px,hsla(calc(var(--music-hue) + 35),70%,32%,.9) 6px 11px);
  box-shadow:inset 0 0 0 5px rgba(0,0,0,.13),0 10px 25px rgba(0,0,0,.22);
}
.music-art-small { width:50px; height:50px; border-radius:14px; font-size:12px; }
.music-art-large { width:min(260px,34vw); aspect-ratio:1; border-radius:28px; font-size:36px; }
.music-mini-controls, .music-page-controls { display:flex; align-items:center; justify-content:center; gap:8px; }
.music-player button, .music-now-card button { box-shadow:none; }
.music-icon-button, .music-play-button {
  display:inline-grid;
  place-items:center;
  min-width:38px;
  height:38px;
  padding:0 10px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  color:#fff;
  background:rgba(255,255,255,.10);
}
.music-icon-button:hover, .music-play-button:hover { transform:translateY(-1px); background:rgba(255,255,255,.18); }
.music-icon-button.is-active { color:#123b31; background:#f1c75b; border-color:#f1c75b; }
.music-play-button { width:44px; height:44px; padding:0; color:#17361e; background:linear-gradient(145deg,#f7d97c,#dba82c); border:0; font-size:17px; }
.music-play-button-large { width:58px; height:58px; font-size:22px; }
.music-mini-progress { min-width:0; display:grid; grid-template-columns:38px 1fr 38px; gap:8px; align-items:center; font-size:11px; color:#bdd7cc; }
.music-mini-extra { min-width:0; display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.music-mini-extra input[type="range"] { width:min(120px,11vw); }
.music-player input[type="range"], .music-now-card input[type="range"] { accent-color:#f1c75b; padding:0; border:0; background:transparent; }
.music-now-card { display:grid; grid-template-columns:auto minmax(0,1fr); gap:30px; align-items:center; padding:28px; overflow:hidden; }
.music-now-main { min-width:0; display:grid; gap:10px; }
.music-now-main h3 { margin:0; font-size:clamp(27px,4vw,48px); line-height:1.02; }
.music-now-main p { margin:0; color:var(--muted); font-size:clamp(15px,2vw,20px); }
.music-page-progress { display:grid; grid-template-columns:42px 1fr 42px; gap:10px; align-items:center; margin-top:8px; color:var(--muted); font-size:12px; }
.music-page-controls { justify-content:flex-start; flex-wrap:wrap; margin-top:8px; }
.music-volume-control { display:flex; align-items:center; gap:7px; margin-left:auto; }
.music-volume-control input { width:130px; }
.music-library-card { margin-top:16px; }
.music-library-heading { display:flex; justify-content:space-between; align-items:end; gap:18px; margin-bottom:16px; }
.music-library-heading h3 { margin:3px 0 0; }
.music-search { width:min(340px,100%); }
.music-track-list { display:grid; gap:7px; }
.music-track-row {
  width:100%;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 46px 52px;
  gap:12px;
  align-items:center;
  padding:11px 13px;
  color:var(--ink);
  text-align:left;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.76);
  box-shadow:none;
}
.music-track-row:hover { transform:translateY(-1px); background:#edf8f2; }
.music-track-row.is-playing { border-color:var(--accent-user); background:rgba(31,143,98,.13); box-shadow:inset 4px 0 0 var(--accent-user); }
.music-track-number { color:var(--muted); font-size:12px; font-weight:900; text-align:center; }
.music-track-details { min-width:0; display:grid; gap:3px; }
.music-track-details strong, .music-track-details small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.music-track-details small { color:var(--muted); }
.music-track-duration { color:var(--muted); font-size:12px; text-align:right; }
.music-track-equalizer { height:22px; display:flex; align-items:end; justify-content:center; gap:3px; opacity:0; }
.music-track-equalizer i { width:3px; height:7px; border-radius:3px; background:var(--accent-user); animation:musicBars .7s ease-in-out infinite alternate; }
.music-track-equalizer i:nth-child(2) { height:16px; animation-delay:.15s; }
.music-track-equalizer i:nth-child(3) { height:11px; animation-delay:.3s; }
.music-track-row.is-playing .music-track-equalizer { opacity:1; }
@keyframes musicBars { to { height:20px; } }
body[data-theme="scuro"] .music-track-row { color:#eef8f3; background:rgba(19,39,31,.86); }
body[data-theme="scuro"] .music-track-row:hover { background:rgba(27,63,48,.94); }
body[data-theme="scuro"] .music-track-row.is-playing { background:rgba(31,143,98,.25); }
@media (max-width:1100px) {
  body.music-player-ready:not(.cloud-locked) { padding-bottom:154px; }
  .music-player { grid-template-columns:minmax(220px,1fr) auto minmax(260px,1.4fr); }
  .music-mini-extra { grid-column:1/-1; justify-content:center; }
  .music-mini-extra input[type="range"] { width:150px; }
}
@media (max-width:760px) {
  body.music-player-ready:not(.cloud-locked) { padding-bottom:190px; }
  .music-player { left:8px; right:8px; bottom:8px; grid-template-columns:1fr auto; gap:10px; padding:10px; border-radius:16px; }
  .music-mini-progress { grid-column:1/-1; }
  .music-mini-extra { grid-column:1/-1; justify-content:space-between; }
  .music-mini-extra input[type="range"] { width:100px; }
  .music-now-card { grid-template-columns:1fr; text-align:center; }
  .music-art-large { width:min(250px,72vw); margin:auto; }
  .music-page-controls { justify-content:center; }
  .music-volume-control { width:100%; justify-content:center; margin-left:0; }
  .music-library-heading { align-items:stretch; flex-direction:column; }
  .music-search { width:100%; }
  .music-track-row { grid-template-columns:34px minmax(0,1fr) 34px 42px; gap:8px; padding:10px 8px; }
}
@media (max-width:480px) {
  body.music-player-ready:not(.cloud-locked) { padding-bottom:202px; }
  .music-mini-copy span { display:none; }
  .music-art-small { width:42px; height:42px; }
  .music-track-row { grid-template-columns:30px minmax(0,1fr) 34px; }
  .music-track-equalizer { display:none; }
}

/* =========================================================
   NEWS ESTESЕ — articoli lunghi e lettura vocale
   ========================================================= */
.news-card {
  align-content: start;
}

.news-card-header {
  align-items: flex-start;
}

.news-card-controls {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.news-body {
  margin: 0;
  white-space: pre-line;
  line-height: 1.72;
  color: #33455a;
}

.news-card .meta {
  display: block;
  margin-top: 4px;
}

.news-listen-button.is-speaking {
  color: #fff;
  background: linear-gradient(135deg, #9a6310, #c88b23);
}

body[data-theme="scuro"] .news-body {
  color: var(--ink);
}

@media (max-width: 620px) {
  .news-card-header {
    align-items: stretch;
    flex-direction: column;
  }

  .news-card-controls {
    justify-content: flex-start;
  }
}



/* =========================================================
   TOP 11 DELLA GIORNATA — HOME GIORNALE
   ========================================================= */
.newspaper-team-section { padding:22px; overflow:hidden; }
.newspaper-section-heading { display:flex; justify-content:space-between; gap:22px; align-items:flex-start; margin-bottom:18px; }
.newspaper-section-heading h2 { margin:3px 0 5px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(28px,4vw,46px); letter-spacing:-.035em; }
.newspaper-section-heading p { margin:0; color:var(--muted); }
.round-mvp { min-width:190px; padding:14px 16px; border:1px solid rgba(135,94,0,.24); border-radius:14px; background:linear-gradient(135deg,#fff7d6,#f7df8c); color:#563c00; display:grid; gap:2px; box-shadow:0 10px 24px rgba(91,62,0,.12); }
.round-mvp span { font-size:11px; font-weight:900; letter-spacing:.14em; }
.round-mvp strong { font-size:19px; }
.round-mvp small { opacity:.75; }
.round-pitch { min-height:720px; padding:34px 24px; border:4px solid rgba(255,255,255,.82); border-radius:25px; display:flex; flex-direction:column; justify-content:space-between; gap:18px; background:linear-gradient(90deg,transparent 49.7%,rgba(255,255,255,.65) 49.7% 50.3%,transparent 50.3%),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 10%,rgba(0,0,0,.025) 10% 20%),linear-gradient(180deg,#2f9d61,#176c42); box-shadow:inset 0 0 0 7px rgba(255,255,255,.08),0 18px 38px rgba(0,0,0,.22); }
.round-line { display:grid; justify-content:center; align-items:center; gap:16px; }
.round-line.attackers,.round-line.midfielders { grid-template-columns:repeat(3,minmax(150px,210px)); }
.round-line.defenders { grid-template-columns:repeat(4,minmax(135px,190px)); }
.round-line.goalkeeper { grid-template-columns:minmax(150px,210px); }
.round-player-card { min-width:0; display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:9px; padding:9px; border:1px solid rgba(255,255,255,.35); border-radius:14px; color:#fff; background:rgba(4,39,26,.84); box-shadow:0 9px 20px rgba(0,0,0,.24); backdrop-filter:blur(7px); }
.round-player-card.empty-slot { min-height:68px; grid-template-columns:1fr; text-align:center; opacity:.7; }
.round-player-photo { width:48px; height:48px; border-radius:12px; overflow:hidden; display:grid; place-items:center; background:linear-gradient(135deg,#f4d779,#c89c2d); color:#183c2f; font-size:15px; font-weight:950; }
.round-player-photo img { width:100%; height:100%; object-fit:cover; }
.round-player-copy { min-width:0; display:grid; gap:2px; }
.round-player-copy strong,.round-player-copy small,.round-player-copy span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.round-player-copy strong { font-size:14px; }
.round-player-copy small { color:#cae4d8; font-size:10px; }
.round-player-copy span { color:#f6da78; font-size:11px; font-weight:900; }
.round-bench { margin-top:20px; }
.round-bench-grid { display:grid; grid-template-columns:repeat(7,minmax(135px,1fr)); gap:10px; }
.round-player-card.compact { grid-template-columns:40px minmax(0,1fr); color:var(--ink); background:rgba(255,255,255,.88); border-color:var(--line); box-shadow:none; }
.round-player-card.compact .round-player-photo { width:40px; height:40px; border-radius:10px; }
.round-player-card.compact .round-player-copy small { color:var(--muted); }
.round-player-card.compact .round-player-copy span { color:#856100; }
@media (max-width:1100px) { .round-bench-grid { grid-template-columns:repeat(4,minmax(140px,1fr)); } .round-line.defenders { grid-template-columns:repeat(2,minmax(150px,210px)); } .round-pitch { min-height:820px; } }
@media (max-width:720px) { .newspaper-section-heading { flex-direction:column; } .round-mvp { width:100%; } .round-pitch { min-height:auto; padding:22px 12px; } .round-line,.round-line.attackers,.round-line.midfielders,.round-line.defenders,.round-line.goalkeeper { grid-template-columns:1fr; width:100%; } .round-player-card { width:100%; } .round-bench-grid { grid-template-columns:1fr; } }
/* Navigazione Squadra della settimana */

.week-team-heading-actions {
  display: grid;
  justify-items: end;
  gap: 12px;
}

.week-team-navigation {
  display: flex;
  align-items: end;
  gap: 8px;
}

.week-team-navigation .field {
  min-width: 155px;
}

.week-team-navigation select {
  padding: 8px 10px;
}

.week-team-navigation button {
  min-width: 42px;
  height: 40px;
}

@media (max-width: 720px) {
  .week-team-heading-actions {
    width: 100%;
    justify-items: stretch;
  }

  .week-team-navigation {
    width: 100%;
  }

  .week-team-navigation .field {
    min-width: 0;
    flex: 1;
  }
}

/* Nuove card Squadra della settimana */

.round-player-card {
  position: relative;
  min-height: 104px;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 11px;
  padding: 11px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.42);
  background:
    linear-gradient(
      135deg,
      rgba(3, 48, 32, .94),
      rgba(5, 30, 22, .92)
    );
}

.round-player-card::after {
  content: "";
  position: absolute;
  width: 65px;
  height: 65px;
  right: -30px;
  bottom: -32px;
  border-radius: 50%;
  background: rgba(255,255,255,.07);
}

.round-player-photo {
  width: 58px;
  height: 58px;
  border-radius: 15px;
  border: 2px solid rgba(255,255,255,.3);
  box-shadow: 0 6px 14px rgba(0,0,0,.25);
}

.round-player-name-row strong {
  min-width: 0;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-height: 1.08;
  font-size: 14px;
  white-space: normal;
}

.round-player-name-row strong {
  min-width: 0;
  overflow: hidden;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.round-player-rating {
  flex: 0 0 auto;
  padding: 3px 7px;
  border-radius: 999px;
  color: #2e2200 !important;
  background: linear-gradient(135deg, #ffe58a, #e6b82e);
  font-size: 12px !important;
  font-weight: 950 !important;
}

.round-player-team {
  color: #bcd9cc !important;
  font-size: 10px !important;
}

.round-player-position {
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 800 !important;
}

.round-player-performance {
  overflow: hidden;
  color: #f5d66e;
  font-size: 10px;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.round-player-performance.quiet {
  color: rgba(255,255,255,.56);
  font-weight: 650;
}

.round-player-card.outstanding {
  border-color: #f7d55d;
  box-shadow:
    0 0 0 2px rgba(247,213,93,.18),
    0 11px 24px rgba(0,0,0,.30);
}

.round-player-card.outstanding::before {
  content: "★";
  position: absolute;
  right: 7px;
  top: 5px;
  color: rgba(255,224,111,.28);
  font-size: 32px;
}

.round-player-card.compact {
  min-height: 78px;
  grid-template-columns: 46px minmax(0,1fr);
  background: rgba(255,255,255,.94);
}

.round-player-card.compact .round-player-photo {
  width: 46px;
  height: 46px;
}

.round-player-card.compact .round-player-position {
  color: #25483c !important;
}

.round-player-card.compact .round-player-performance {
  color: #8a6700;
}

.round-player-card.compact .round-player-team {
  color: var(--muted) !important;
}

/* Nome completo nelle card della Squadra della settimana */

.round-player-name-row {
  align-items: flex-start;
}

.round-player-name-row strong {
  display: -webkit-box;
  min-width: 0;
  overflow: hidden;
  white-space: normal;
  text-overflow: unset;
  line-height: 1.12;
  font-size: 13px;
  overflow-wrap: anywhere;

  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.round-player-rating {
  margin-left: auto;
  flex-shrink: 0;
}

.round-player-copy {
  overflow: visible;
}

.round-player-copy strong {
  white-space: normal;
}

.round-player-card.compact .round-player-name-row strong {
  font-size: 12px;
}

.round-player-card.compact .round-player-name-row strong {
  font-size: 13px;
  -webkit-line-clamp: 2;
}
/* Uomo della settimana */

.week-mvp-card {
  width: min(390px, 100%);
  overflow: hidden;
  border: 1px solid rgba(142, 97, 0, .25);
  border-radius: 18px;
  color: #3d2a00;
  background:
    radial-gradient(
      circle at 90% 10%,
      rgba(255,255,255,.75),
      transparent 30%
    ),
    linear-gradient(135deg, #fff8d8, #edc958);
  box-shadow: 0 14px 30px rgba(91,62,0,.17);
}

.week-mvp-label {
  padding: 9px 14px;
  color: #fff;
  background: linear-gradient(135deg, #7f5b00, #b98708);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.week-mvp-main {
  display: grid;
  grid-template-columns: 82px minmax(0,1fr);
  gap: 13px;
  align-items: center;
  padding: 14px 14px 9px;
}

.week-mvp-photo {
  width: 82px;
  height: 82px;
  overflow: hidden;
  display: grid;
  place-items: center;
  border: 3px solid rgba(255,255,255,.72);
  border-radius: 20px;
  color: #153d30;
  background: rgba(255,255,255,.55);
  box-shadow: 0 8px 20px rgba(85,55,0,.17);
  font-size: 25px;
  font-weight: 950;
}

.week-mvp-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.week-mvp-copy {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.week-mvp-copy strong {
  overflow: hidden;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.week-mvp-copy small {
  color: rgba(61,42,0,.72);
  font-size: 11px;
  font-weight: 750;
}

.week-mvp-numbers {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}

.week-mvp-numbers span {
  padding: 4px 7px;
  border-radius: 999px;
  color: #4b3500;
  background: rgba(255,255,255,.52);
  font-size: 10px;
  font-weight: 850;
}

.week-mvp-rating {
  color: #fff !important;
  background: #6c4d00 !important;
  font-size: 14px !important;
}

.week-mvp-description {
  margin: 0;
  padding: 0 14px 14px;
  color: rgba(61,42,0,.80);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  line-height: 1.38;
}

@media (max-width: 720px) {
  .week-mvp-card {
    width: 100%;
  }

  .week-mvp-copy strong {
    white-space: normal;
  }
}
/* Il punto della settimana */

.weekly-point-card {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 16px;
  min-height: 100%;
  background:
    radial-gradient(
      circle at 95% 5%,
      rgba(31,143,98,.15),
      transparent 32%
    ),
    rgba(252,255,253,.96);
}

.weekly-point-card::after {
  content: "CM";
  position: absolute;
  right: -8px;
  bottom: -30px;
  color: rgba(20,91,64,.055);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 125px;
  font-weight: 950;
  pointer-events: none;
}

.weekly-point-heading {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.weekly-point-heading h3 {
  margin: 3px 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
}

.weekly-point-round {
  padding: 6px 9px;
  border-radius: 999px;
  color: #155139;
  background: #e4f3eb;
  font-size: 11px;
  font-weight: 900;
}

.weekly-point-lead {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 44px minmax(0,1fr);
  gap: 12px;
  align-items: start;
}

.weekly-point-lead > span {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: linear-gradient(135deg, #153f31, #278c64);
  box-shadow: 0 8px 18px rgba(16,75,54,.20);
  font-size: 21px;
}

.weekly-point-lead strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 19px;
}

.weekly-point-lead p {
  margin: 4px 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.weekly-point-stats {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 8px;
}

.weekly-point-stats > div {
  display: grid;
  gap: 3px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.72);
}

.weekly-point-stats span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}

.weekly-point-stats strong {
  color: #174d39;
  font-size: 19px;
}

.weekly-point-form {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: end;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.weekly-point-label,
.weekly-point-streak span {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.weekly-point-streak {
  text-align: right;
}

.weekly-point-streak strong {
  color: #174d39;
  font-size: 13px;
}

@media (max-width: 720px) {
  .weekly-point-stats {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }

  .weekly-point-form {
    align-items: flex-start;
    flex-direction: column;
  }

  .weekly-point-streak {
    text-align: left;
  }
}
.weekly-point-stat-wide {
  grid-column: span 2;
}

.weekly-point-stat-wide strong {
  overflow: hidden;
  font-size: 14px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 720px) {
  .weekly-point-stat-wide {
    grid-column: 1 / -1;
  }
}
/* =========================================================
   SQUADRA DELLA SETTIMANA / SQUADRA DELLE MERDE
   ========================================================= */

.weekly-team-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 22px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(230, 241, 235, .76);
}

.weekly-team-tab {
  min-height: 48px;
  border: 1px solid transparent;
  border-radius: 12px;
  color: #245140;
  background: transparent;
  box-shadow: none;
  font-size: 13px;
  font-weight: 950;
}

.weekly-team-tab:hover {
  transform: none;
}

.weekly-team-tab.active {
  color: #fff;
  border-color: rgba(255,255,255,.18);
  background:
    linear-gradient(135deg, #164f39, #299369);
  box-shadow: 0 8px 18px rgba(12, 79, 54, .20);
}

.weekly-team-tab-flop {
  color: #71332d;
}

.weekly-team-tab-flop.active {
  color: #fff;
  background:
    linear-gradient(135deg, #571d1a, #a53a31);
  box-shadow: 0 8px 18px rgba(111, 27, 21, .24);
}

/* Aspetto generale modalità flop */

.newspaper-team-section.is-flop {
  border-color: rgba(128, 37, 29, .24);
  background:
    radial-gradient(
      circle at 100% 0,
      rgba(151, 47, 38, .10),
      transparent 30%
    ),
    rgba(255, 251, 249, .96);
}

.newspaper-team-section.is-flop
.newspaper-section-heading h2 {
  color: #742820;
}

.newspaper-team-section.is-flop .kicker {
  color: #a13a30;
}

/* Campo della squadra peggiore */

.round-pitch-flop {
  border-color: rgba(255, 224, 213, .80);
  background:
    linear-gradient(
      90deg,
      transparent 49.7%,
      rgba(255, 230, 222, .56) 49.7% 50.3%,
      transparent 50.3%
    ),
    repeating-linear-gradient(
      90deg,
      rgba(255,255,255,.018) 0 10%,
      rgba(0,0,0,.035) 10% 20%
    ),
    linear-gradient(180deg, #69524a, #402e2a);
  box-shadow:
    inset 0 0 0 7px rgba(255,255,255,.035),
    0 18px 38px rgba(57, 20, 15, .30);
}

.is-flop .round-player-card {
  border-color: rgba(255, 190, 173, .34);
  background:
    linear-gradient(
      135deg,
      rgba(77, 25, 21, .94),
      rgba(42, 20, 18, .95)
    );
}

.is-flop .round-player-photo {
  color: #fff1ed;
  border-color: rgba(255,255,255,.18);
  background:
    linear-gradient(135deg, #b24b3d, #6f251f);
}

.is-flop .round-player-rating {
  color: #fff !important;
  background:
    linear-gradient(135deg, #a9342b, #6d1e19);
}

.is-flop .round-player-team {
  color: #e0bbb3 !important;
}

.is-flop .round-player-performance {
  color: #ffb3a5;
}

.is-flop .round-player-card.outstanding {
  border-color: rgba(255, 190, 173, .34);
  box-shadow: 0 9px 20px rgba(0,0,0,.24);
}

.is-flop .round-player-card.outstanding::before {
  display: none;
}

/* Card del peggiore */

.week-flop-card {
  width: min(390px, 100%);
  overflow: hidden;
  border: 1px solid rgba(99, 25, 20, .30);
  border-radius: 18px;
  color: #401815;
  background:
    radial-gradient(
      circle at 90% 10%,
      rgba(255,255,255,.48),
      transparent 30%
    ),
    linear-gradient(135deg, #f7d2c9, #d87869);
  box-shadow: 0 14px 30px rgba(80, 20, 16, .20);
}

.week-flop-label {
  padding: 9px 14px;
  color: #fff;
  background:
    linear-gradient(135deg, #521b17, #922d27);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.week-flop-main {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 13px;
  align-items: center;
  padding: 14px 14px 9px;
}

.week-flop-photo {
  width: 82px;
  height: 82px;
  overflow: hidden;
  display: grid;
  place-items: center;
  border: 3px solid rgba(255,255,255,.52);
  border-radius: 20px;
  color: #fff;
  background:
    linear-gradient(135deg, #9a352d, #5d201c);
  box-shadow: 0 8px 20px rgba(74, 20, 16, .20);
  font-size: 25px;
  font-weight: 950;
}

.week-flop-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.week-flop-copy {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.week-flop-copy strong {
  overflow: hidden;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.week-flop-copy small {
  color: rgba(64, 24, 21, .72);
  font-size: 11px;
  font-weight: 750;
}

.week-flop-numbers {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}

.week-flop-numbers span {
  padding: 4px 7px;
  border-radius: 999px;
  color: #5e211c;
  background: rgba(255,255,255,.48);
  font-size: 10px;
  font-weight: 850;
}

.week-flop-rating {
  color: #fff !important;
  background: #72221c !important;
  font-size: 14px !important;
}

.week-flop-description {
  margin: 0;
  padding: 0 14px 14px;
  color: rgba(64, 24, 21, .82);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  line-height: 1.38;
}

.flop-editorial-note {
  display: grid;
  gap: 4px;
  margin-top: 18px;
  padding: 14px 16px;
  border-left: 5px solid #922d27;
  border-radius: 10px;
  color: #5e2924;
  background: rgba(247, 216, 207, .70);
}

.flop-editorial-note p {
  margin: 0;
  color: #795049;
  line-height: 1.45;
}

@media (max-width: 720px) {
  .weekly-team-tabs {
    grid-template-columns: 1fr;
  }

  .week-flop-card {
    width: 100%;
  }

  .week-flop-copy strong {
    white-space: normal;
  }
}
.is-flop .round-player-performance.quiet {
  color: #ff9f8f;
  font-weight: 850;
}
.is-flop .round-player-performance,
.is-flop .round-player-performance.quiet {
  min-height: 24px;
  display: -webkit-box;
  overflow: hidden;
  color: #ff9f8f;
  font-weight: 850;
  line-height: 1.15;
  white-space: normal;
  text-overflow: clip;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
/* =========================================================
   CARD GIOCATORI — NESSUN TESTO TAGLIATO
   ========================================================= */

.round-player-card {
  height: auto;
  min-height: 112px;
  align-items: start;
}

.round-player-copy {
  min-width: 0;
  align-content: start;
  gap: 3px;
  overflow: visible;
}

.round-player-name-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
  align-items: start;
}

/* Nome completo */

.round-player-name-row strong,
.round-player-copy > strong {
  display: block;
  overflow: visible;
  white-space: normal;
  
  text-overflow: clip;
  -webkit-line-clamp: unset;
  -webkit-box-orient: initial;
  line-height: 1.12;
}

/* Squadra e posizione complete */

.round-player-team,
.round-player-position,
.round-player-copy small {
  display: block;
  overflow: visible;
  white-space: normal;
  
  text-overflow: clip;
  line-height: 1.18;
}

/* Gol, assist, porta inviolata e descrizioni complete */

.round-player-performance,
.round-player-performance.quiet,
.round-player-copy > span {
  display: block;
  min-height: 0;
  overflow: visible;
  white-space: normal;
  
  text-overflow: clip;
  -webkit-line-clamp: unset;
  -webkit-box-orient: initial;
  line-height: 1.18;
}

/* La panchina può crescere in altezza quando serve */

.round-player-card.compact {
  height: auto;
  min-height: 92px;
  align-items: start;
}

.round-player-card.compact .round-player-copy {
  overflow: visible;
}

.round-player-card.compact .round-player-name-row strong,
.round-player-card.compact .round-player-position,
.round-player-card.compact .round-player-team,
.round-player-card.compact .round-player-performance {
  overflow: visible;
  white-space: normal;
  
  text-overflow: clip;
  -webkit-line-clamp: unset;
}
/* Non spezzare mai i cognomi a metà */

.round-player-name-row strong,
.round-player-copy > strong {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.round-player-team,
.round-player-position,
.round-player-copy small,
.round-player-performance,
.round-player-performance.quiet,
.round-player-copy > span {
  overflow-wrap: normal;
  word-break: normal;
}
/* =========================================================
   OTTIMIZZAZIONE SCORRIMENTO HOME
   ========================================================= */

/* Le card sono già quasi opache:
   il blur dietro di loro è inutile e pesante */
.card,
.round-player-card,
.week-mvp-card,
.week-flop-card {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* Anche la barra fissa superiore viene ridisegnata
   durante tutto lo scorrimento */
.main-nav {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  background: rgba(248, 253, 250, .98);
}

/* Isola campo e formazione dal resto della pagina */
.newspaper-team-section {
  contain: layout paint;
}

.round-pitch {
  contain: layout paint;
  transform: translateZ(0);
}

/* Evita che il browser prepari animazioni inutili */
.round-player-card,
.week-mvp-card,
.week-flop-card {
  will-change: auto;
}
/* Ripristino corretto dello sfondo e della personalizzazione */

body {
  min-height: 100vh;
  background:
    linear-gradient(
      rgba(4, 23, 17, .42),
      rgba(4, 23, 17, .56)
    ),
    url("assets/stadium-bg.svg")
      center 6% / cover fixed,
    #071813;
}

body.has-custom-bg {
  background:
    linear-gradient(
      rgba(4, 23, 17, .28),
      rgba(4, 23, 17, .42)
    ),
    var(--custom-bg)
      center 6% / cover fixed,
    #071813 !important;
}
/* =========================================================
   GIOCATORE DEL MESE
   ========================================================= */

.month-award-section {
  position: relative;
  overflow: hidden;
  padding: 24px;
  border-color: rgba(151, 106, 12, .26);
  background:
    radial-gradient(
      circle at 100% 0,
      rgba(238, 198, 80, .18),
      transparent 35%
    ),
    rgba(255, 253, 244, .97);
  contain: layout paint;
}

.month-award-header {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 22px;
  align-items: flex-start;
  margin-bottom: 20px;
}

.month-award-header h2 {
  margin: 3px 0 5px;
  color: #513b08;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1;
  letter-spacing: -.035em;
}

.month-award-header p {
  max-width: 560px;
  margin: 0;
  color: #766743;
}

.month-award-navigation {
  display: flex;
  gap: 8px;
  align-items: flex-end;
}

.month-award-navigation .field {
  min-width: 210px;
}

.month-award-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns:
    minmax(0, 1.18fr)
    minmax(300px, .82fr);
  gap: 18px;
  align-items: stretch;
}

/* Vincitore */

.month-winner-card {
  position: relative;
  overflow: hidden;
  display: grid;
  align-content: start;
  border: 1px solid rgba(116, 77, 5, .30);
  border-radius: 22px;
  color: #402d05;
  background:
    radial-gradient(
      circle at 88% 10%,
      rgba(255, 255, 255, .62),
      transparent 28%
    ),
    linear-gradient(
      135deg,
      #fff4b9,
      #edc656 55%,
      #dba52a
    );
  box-shadow:
    0 18px 35px rgba(99, 68, 7, .18);
}

.month-winner-ribbon {
  display: flex;
  gap: 7px;
  align-items: center;
  padding: 10px 15px;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      #604006,
      #9f7213
    );
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.month-winner-ribbon span {
  color: #ffe27a;
  font-size: 16px;
}

.month-winner-main {
  display: grid;
  grid-template-columns:
    118px
    minmax(0, 1fr);
  gap: 17px;
  align-items: center;
  padding: 20px 20px 14px;
}

.month-winner-photo {
  width: 118px;
  height: 118px;
  overflow: hidden;
  display: grid;
  place-items: center;
  border: 4px solid rgba(255,255,255,.66);
  border-radius: 27px;
  color: #4d3707;
  background:
    linear-gradient(
      135deg,
      #fff4ae,
      #c98e15
    );
  box-shadow:
    0 13px 25px rgba(83, 52, 2, .20);
  font-size: 34px;
  font-weight: 950;
}

.month-winner-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.month-winner-copy {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.month-winner-number {
  color: rgba(64, 45, 5, .68);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.month-winner-copy strong {
  overflow: visible;
  color: #392702;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: clamp(28px, 4vw, 42px);
  line-height: .98;
  white-space: normal;
  word-break: normal;
}

.month-winner-copy small {
  color: rgba(57, 39, 2, .72);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
  white-space: normal;
}

.month-winner-stats {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 0 20px 15px;
}

.month-winner-stats div {
  min-width: 0;
  display: grid;
  gap: 2px;
  padding: 10px;
  border: 1px solid rgba(87, 57, 2, .14);
  border-radius: 12px;
  background: rgba(255,255,255,.34);
}

.month-winner-stats strong {
  color: #493204;
  font-size: 20px;
}

.month-winner-stats span {
  color: rgba(64, 45, 5, .68);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.month-winner-reason {
  margin: 0;
  padding: 0 20px 20px;
  color: rgba(58, 40, 4, .82);
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 14px;
  line-height: 1.46;
}

/* Classifica dei cinque */

.month-ranking-panel {
  display: grid;
  align-content: start;
  padding: 16px;
  border: 1px solid rgba(109, 78, 17, .20);
  border-radius: 20px;
  background: rgba(255,255,255,.72);
}

.month-ranking-heading {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 12px;
}

.month-ranking-heading h3 {
  margin: 2px 0 0;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 23px;
}

.month-ranking-list {
  display: grid;
  gap: 7px;
}

.month-ranking-row {
  display: grid;
  grid-template-columns:
    34px
    minmax(0, 1fr)
    auto;
  gap: 10px;
  align-items: center;
  min-height: 58px;
  padding: 8px 10px;
  border: 1px solid rgba(25, 72, 53, .10);
  border-radius: 13px;
  background: rgba(242, 248, 244, .78);
}

.month-ranking-row.winner {
  border-color: rgba(157, 111, 15, .30);
  background:
    linear-gradient(
      135deg,
      rgba(255, 244, 190, .88),
      rgba(244, 213, 113, .66)
    );
}

.month-ranking-position {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: #fff;
  background: #215f47;
  font-size: 13px;
  font-weight: 950;
}

.month-ranking-row.winner
.month-ranking-position {
  color: #4a3203;
  background: #f2c94d;
}

.month-ranking-player {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.month-ranking-player strong {
  overflow: visible;
  color: #173d31;
  line-height: 1.12;
  white-space: normal;
  word-break: normal;
}

.month-ranking-player small {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.2;
  white-space: normal;
}

.month-ranking-numbers {
  display: grid;
  justify-items: end;
  gap: 2px;
  text-align: right;
}

.month-ranking-numbers strong {
  color: #6d4c07;
  font-size: 18px;
}

.month-ranking-numbers small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 850;
  white-space: nowrap;
}

/* Premio non ancora disponibile */

.month-award-waiting {
  min-height: 150px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 5px;
  padding: 25px;
  border: 1px dashed rgba(140, 100, 20, .32);
  border-radius: 18px;
  color: #655221;
  background: rgba(255, 248, 214, .55);
  text-align: center;
}

.month-award-waiting > span {
  font-size: 36px;
}

.month-award-waiting strong {
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 21px;
}

.month-award-waiting small {
  color: #83734d;
}

@media (max-width: 920px) {
  .month-award-layout {
    grid-template-columns: 1fr;
  }

  .month-award-header {
    flex-direction: column;
  }

  .month-award-navigation {
    width: 100%;
  }

  .month-award-navigation .field {
    flex: 1;
  }
}

@media (max-width: 560px) {
  .month-award-section {
    padding: 16px;
  }

  .month-winner-main {
    grid-template-columns: 82px minmax(0, 1fr);
    padding: 15px 15px 12px;
  }

  .month-winner-photo {
    width: 82px;
    height: 82px;
    border-radius: 20px;
    font-size: 25px;
  }

  .month-winner-copy strong {
    font-size: 25px;
  }

  .month-winner-stats {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
    padding: 0 15px 13px;
  }

  .month-winner-reason {
    padding: 0 15px 16px;
  }

  .month-award-navigation {
    display: grid;
    grid-template-columns:
      auto
      minmax(0, 1fr)
      auto;
  }

  .month-ranking-row {
    grid-template-columns:
      31px
      minmax(0, 1fr);
  }

  .month-ranking-numbers {
    grid-column: 2;
    justify-items: start;
    text-align: left;
  }
}

/* =========================================================
   LA VOCE DEL MII
   ========================================================= */

/* Prima pagina del giocatore del mese */

.newspaper-month-cover {
  padding-top: 24px;
  background:
    radial-gradient(
      circle at 100% 0,
      rgba(203, 163, 54, .16),
      transparent 32%
    ),
    linear-gradient(
      180deg,
      #fffdf4,
      #f7f0d9
    );
}

.newspaper-cover-masthead {
  margin: -24px -24px 22px;
  padding: 13px 24px 11px;
  border-bottom: 4px double rgba(48, 42, 25, .72);
  color: #272216;
  background:
    linear-gradient(
      180deg,
      #f9f5e8,
      #eee4c7
    );
  text-align: center;
}

.newspaper-cover-masthead > span {
  display: block;
  margin-bottom: 2px;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.newspaper-cover-masthead > strong {
  display: block;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: clamp(31px, 5vw, 56px);
  line-height: .95;
  letter-spacing: -.045em;
}

.newspaper-cover-meta {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 7px;
  padding-top: 6px;
  border-top: 1px solid rgba(48, 42, 25, .30);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.newspaper-cover-headline {
  align-items: flex-end;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(72, 57, 20, .24);
}

.newspaper-cover-label {
  display: inline-block;
  margin-bottom: 7px;
  padding: 4px 8px;
  border-radius: 3px;
  color: #fff;
  background: #8a6815;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.newspaper-cover-headline h2 {
  max-width: 780px;
  margin: 0 0 8px;
  color: #292217;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: clamp(34px, 5.2vw, 64px);
  line-height: .91;
  letter-spacing: -.048em;
  overflow: visible;
  white-space: normal;
  word-break: normal;
  text-transform: uppercase;
}

.newspaper-cover-headline p {
  max-width: 760px;
  margin: 0;
  color: #655b42;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 15px;
  font-style: italic;
  line-height: 1.42;
}

.newspaper-month-cover .month-winner-ribbon {
  background:
    linear-gradient(
      135deg,
      #272216,
      #66511b
    );
}

.month-cover-signature {
  display: grid;
  gap: 2px;
  margin: 0 20px 20px;
  padding-top: 13px;
  border-top: 1px solid rgba(67, 45, 3, .22);
}

.month-cover-signature span {
  color: rgba(57, 39, 2, .68);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.month-cover-signature strong {
  color: #493204;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 17px;
}

/* Notiziario nella Home */

.home-newspaper-news {
  min-height: 100%;
  overflow: hidden;
  padding: 0;
  border-color: rgba(52, 47, 31, .24);
  background:
    linear-gradient(
      180deg,
      #fffdf5,
      #f4eedc
    );
}

.home-newspaper-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 12px 16px 10px;
  border-bottom: 4px double rgba(42, 38, 25, .70);
  background: rgba(239, 230, 203, .76);
}

.home-newspaper-head > div {
  display: grid;
  gap: 1px;
}

.home-newspaper-head > div > span {
  color: #302a1b;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 20px;
  font-weight: 950;
  line-height: 1;
}

.home-newspaper-head > div > strong {
  color: #796018;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.home-newspaper-body {
  display: grid;
  gap: 13px;
  padding: 15px 16px 16px;
}

.home-newspaper-lead {
  display: grid;
  gap: 6px;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(49, 43, 27, .24);
}

.home-newspaper-lead > strong {
  overflow: visible;
  color: #272216;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: clamp(22px, 2.8vw, 31px);
  line-height: 1.02;
  white-space: normal;
  word-break: normal;
  text-overflow: clip;
}

.home-newspaper-lead > small {
  color: #7a7055;
  font-size: 10px;
  font-weight: 800;
}

.home-newspaper-briefs {
  display: grid;
  gap: 9px;
}

.home-newspaper-brief {
  display: grid;
  grid-template-columns: 43px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
}

.home-newspaper-brief > span {
  padding-top: 2px;
  color: #8b6915;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.home-newspaper-brief > strong {
  overflow: visible;
  color: #393224;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 14px;
  line-height: 1.18;
  white-space: normal;
  word-break: normal;
  text-overflow: clip;
}

.home-newspaper-empty {
  min-height: 170px;
  display: grid;
  place-items: center;
  text-align: center;
}

@media (max-width: 720px) {
  .newspaper-cover-masthead {
    margin: -24px -24px 18px;
  }

  .newspaper-cover-meta {
    flex-wrap: wrap;
    gap: 5px 10px;
  }

  .newspaper-cover-headline h2 {
    font-size: 35px;
  }
}

@media (max-width: 560px) {
  .newspaper-cover-masthead {
    margin: -16px -16px 17px;
    padding: 12px 14px 10px;
  }

  .newspaper-cover-masthead > strong {
    font-size: 34px;
  }

  .month-cover-signature {
    margin: 0 15px 16px;
  }

  .home-newspaper-head {
    align-items: flex-start;
  }

  .home-newspaper-head > div > span {
    font-size: 18px;
  }
}
/* =========================================================
   LA GAZZETTA DEI MII — VERSIONE COMPLETA
   ========================================================= */

.home-newspaper-news,
.gazzetta-page,
.newspaper-month-cover {
  color: #29251b;
  background:
    radial-gradient(
      circle at 12% 4%,
      rgba(132, 101, 32, .07),
      transparent 22%
    ),
    repeating-linear-gradient(
      0deg,
      rgba(65, 53, 25, .018) 0,
      rgba(65, 53, 25, .018) 1px,
      transparent 1px,
      transparent 4px
    ),
    #f8f2df;
}

/* Masthead Home */

.home-newspaper-news {
  min-height: 100%;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(55, 46, 25, .30);
  box-shadow:
    0 14px 30px rgba(54, 41, 13, .13);
}

.home-gazzetta-masthead {
  padding: 10px 16px 12px;
  border-bottom: 4px double #332d20;
  text-align: center;
}

.home-gazzetta-topline {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
  color: #645b45;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.home-gazzetta-masthead > strong {
  display: block;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: clamp(27px, 3.7vw, 43px);
  line-height: .9;
  letter-spacing: -.055em;
}

.home-gazzetta-masthead > small {
  display: block;
  margin-top: 6px;
  color: #756a50;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 10px;
  font-style: italic;
}

.home-gazzetta-breaking {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 16px;
  color: #fff;
  background: #7c1d18;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.home-newspaper-body {
  display: grid;
  gap: 14px;
  padding: 15px 16px;
}

.home-newspaper-lead {
  display: grid;
  gap: 7px;
  padding-bottom: 15px;
  border-bottom: 3px double rgba(43, 37, 24, .52);
}

.home-newspaper-lead-meta {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.home-newspaper-lead-meta small {
  color: #756b54;
  font-size: 9px;
  font-weight: 850;
  text-transform: uppercase;
}

.home-newspaper-lead > strong {
  overflow: visible;
  color: #252116;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: clamp(25px, 3.2vw, 38px);
  line-height: .96;
  letter-spacing: -.025em;
  white-space: normal;
  word-break: normal;
}

.home-newspaper-lead > p {
  margin: 0;
  color: #514936;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 13px;
  line-height: 1.45;
}

.home-newspaper-lead > em {
  padding-left: 10px;
  border-left: 3px solid #9b7524;
  color: #76601f;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
}

.home-newspaper-secondary-grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid rgba(47, 40, 25, .22);
  border-bottom: 1px solid rgba(47, 40, 25, .22);
}

.home-newspaper-secondary {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 12px;
}

.home-newspaper-secondary + 
.home-newspaper-secondary {
  border-left: 1px solid rgba(47, 40, 25, .22);
}

.home-newspaper-secondary > span {
  color: #8b201b;
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.home-newspaper-secondary > strong {
  overflow: visible;
  color: #2b261a;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 17px;
  line-height: 1.05;
  white-space: normal;
  word-break: normal;
}

.home-newspaper-secondary > p {
  margin: 0;
  color: #5c5340;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 10px;
  line-height: 1.4;
}

.home-newspaper-secondary > small {
  color: #866a22;
  font-size: 9px;
  font-style: italic;
  line-height: 1.3;
}

.home-newspaper-ticker {
  display: grid;
  gap: 0;
}

.home-newspaper-ticker-title {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 6px;
  border-bottom: 2px solid #332d20;
}

.home-newspaper-ticker-title > span {
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 15px;
  font-weight: 950;
}

.home-newspaper-ticker-title > small {
  color: #756b54;
  font-size: 8px;
  font-style: italic;
}

.home-newspaper-ticker-row {
  display: grid;
  grid-template-columns:
    30px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px dotted rgba(48, 41, 25, .35);
}

.home-newspaper-number {
  color: #9a7527;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 19px;
  font-weight: 950;
}

.home-newspaper-ticker-row > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.home-newspaper-ticker-row strong {
  overflow: visible;
  color: #302a1d;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 12px;
  line-height: 1.15;
  white-space: normal;
  word-break: normal;
}

.home-newspaper-ticker-row small {
  color: #81765d;
  font-size: 8px;
  text-transform: uppercase;
}

.home-newspaper-footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 10px 16px;
  border-top: 3px double rgba(43, 37, 24, .58);
  background: rgba(226, 215, 181, .52);
}

.home-newspaper-footer > span {
  color: #766b52;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .05em;
  text-transform: uppercase;
}

/* Copertina del mese */

.newspaper-cover-topline {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(42, 35, 20, .34);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.newspaper-cover-tagline {
  display: block;
  margin-top: 7px;
  color: #665d48;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 11px;
}

/* Pagina News */

.gazzetta-page {
  overflow: hidden;
  border: 1px solid rgba(52, 44, 24, .28);
  border-radius: 18px;
  box-shadow:
    0 18px 40px rgba(42, 31, 10, .14);
}

.gazzetta-page-masthead {
  padding: 15px 22px 14px;
  border-bottom: 5px double #312b1e;
  text-align: center;
}

.gazzetta-page-masthead > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: #6c624d;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.gazzetta-page-masthead > strong {
  display: block;
  margin-top: 8px;
  color: #272216;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: clamp(43px, 8vw, 86px);
  line-height: .82;
  letter-spacing: -.065em;
}

.gazzetta-page-masthead > em {
  display: block;
  margin-top: 10px;
  color: #6c614b;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 13px;
}

.gazzetta-page-strip {
  padding: 8px 18px;
  color: #fff;
  background: #7d1e19;
  font-size: 9px;
  letter-spacing: .07em;
  text-align: center;
}

.gazzetta-page-grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 0;
  padding: 18px;
}

.gazzetta-article {
  margin: 0;
  border: 0;
  border-radius: 0;
  border-right: 1px solid rgba(49, 41, 24, .22);
  border-bottom: 1px solid rgba(49, 41, 24, .22);
  background: transparent;
  box-shadow: none;
}

.gazzetta-article:nth-child(even) {
  border-right: 0;
}

.gazzetta-article.lead {
  grid-column: 1 / -1;
  padding-bottom: 24px;
  border-right: 0;
  border-bottom: 4px double rgba(42, 35, 20, .58);
}

.gazzetta-article h3 {
  overflow: visible;
  margin: 11px 0 8px;
  color: #292419;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: clamp(25px, 3.5vw, 42px);
  line-height: .98;
  letter-spacing: -.025em;
  white-space: normal;
  word-break: normal;
}

.gazzetta-article.lead h3 {
  font-size: clamp(38px, 6vw, 68px);
  line-height: .91;
}

.gazzetta-article-strapline {
  margin: 0 0 13px;
  padding-left: 12px;
  border-left: 4px solid #9a7425;
  color: #756021;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 12px;
  font-style: italic;
  font-weight: 700;
}

.gazzetta-article .news-body {
  color: #4c4433;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  line-height: 1.62;
  white-space: pre-line;
}

@media (max-width: 760px) {
  .home-gazzetta-breaking,
  .home-newspaper-footer,
  .newspaper-cover-topline,
  .gazzetta-page-masthead > div {
    flex-direction: column;
  }

  .home-newspaper-secondary-grid,
  .gazzetta-page-grid {
    grid-template-columns: 1fr;
  }

  .home-newspaper-secondary +
  .home-newspaper-secondary {
    border-top: 1px solid rgba(47, 40, 25, .22);
    border-left: 0;
  }

  .gazzetta-article,
  .gazzetta-article:nth-child(even) {
    border-right: 0;
  }

  .gazzetta-page-masthead > strong {
    font-size: 44px;
  }
}
/* Evita che Il punto della settimana venga
   stirato fino all'altezza del giornale */

.home-editorial-grid {
  align-items: start;
}

.home-editorial-grid > .weekly-point-card {
  align-self: start;
  height: auto;
  min-height: 0;
}

.home-editorial-grid > .home-newspaper-news {
  align-self: start;
}
.gazzetta-article.manual-editorial {
  position: relative;
  background:
    linear-gradient(
      180deg,
      rgba(255, 247, 204, .55),
      rgba(255, 252, 235, .20)
    );
}

.gazzetta-article.manual-editorial::before {
  content: "SCELTO DALLA REDAZIONE";
  display: inline-block;
  margin-bottom: 8px;
  padding: 4px 7px;
  border-radius: 3px;
  color: #fff;
  background: #7c1d18;
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .09em;
}
/* =========================================================
   OTTIMIZZAZIONI GIORNALE
   ========================================================= */

.gazzetta-page,
.home-newspaper-news,
.newspaper-month-cover {
  /*
   * Rimuove la texture ripetuta sull'intera area,
   * molto più costosa da ridisegnare durante lo scroll.
   */
  background:
    linear-gradient(
      180deg,
      #fbf6e7,
      #f3ead1
    ) !important;
}

.gazzetta-page-grid {
  contain: layout paint;
}

.gazzetta-article {
  content-visibility: auto;
  contain-intrinsic-size: 380px;
  box-shadow: none !important;
}

.gazzetta-article.lead {
  content-visibility: visible;
}

.home-newspaper-news {
  contain: layout paint;
  box-shadow:
    0 8px 18px rgba(54, 41, 13, .10);
}

.month-award-section,
.newspaper-team-section {
  content-visibility: auto;
  contain-intrinsic-size: 850px;
}

.gazzetta-load-more {
  display: flex;
  justify-content: center;
  padding: 5px 18px 22px;
}

.gazzetta-load-more button {
  min-width: 250px;
}

/* =========================================================
   FORMAZIONE CON TRASCINAMENTO
   ========================================================= */

.formation-drag-layout {
  align-items: start;
}

.formation-pitch {
  min-height: 760px;

  /*
   * Linea di centrocampo orizzontale.
   * Prima era verticale perché usava 90deg.
   */
  background:
    linear-gradient(
      180deg,
      transparent 49.65%,
      rgba(255,255,255,.78) 49.65%,
      rgba(255,255,255,.78) 50.35%,
      transparent 50.35%
    ),
    radial-gradient(
      circle at 50% 50%,
      transparent 0 9%,
      rgba(255,255,255,.76) 9.2% 9.7%,
      transparent 10%
    ),
    repeating-linear-gradient(
      180deg,
      rgba(255,255,255,.035) 0 10%,
      rgba(0,0,0,.025) 10% 20%
    ),
    linear-gradient(
      180deg,
      #2f9d61,
      #197446
    ) !important;
}

.formation-toolbar {
  align-items: flex-end;
}

.formation-drag-hint {
  display: grid;
  gap: 2px;
  align-self: center;
  color: var(--muted);
}

.formation-drag-hint strong {
  color: var(--navy);
  font-size: 12px;
}

.formation-drag-hint small {
  font-size: 10px;
}

.pitch-slot {
  width: 150px;
  padding: 0;
  gap: 4px;
  background: transparent;
  box-shadow: none;
}

.formation-slot-label {
  justify-self: center;
  display: inline-flex;
  padding: 3px 8px;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 999px;
  color: #fff !important;
  background: rgba(3,42,27,.82);
  font-size: 9px !important;
  font-weight: 950;
  letter-spacing: .06em;
  text-align: center;
  text-transform: uppercase;
}

.formation-player-card {
  width: 100%;
  min-width: 0;
  min-height: 62px;
  display: grid;
  grid-template-columns: 42px minmax(0,1fr);
  gap: 7px;
  align-items: center;
  padding: 6px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 13px;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      rgba(4,49,31,.96),
      rgba(8,91,57,.94)
    );
  box-shadow:
    0 8px 18px rgba(0,0,0,.25);
  cursor: grab;
  text-align: left;
  touch-action: manipulation;
  transition:
    transform .14s ease,
    border-color .14s ease,
    opacity .14s ease;
}

.formation-player-card:hover {
  transform: translateY(-2px);
  border-color: rgba(255,224,117,.9);
}

.formation-player-card:active {
  cursor: grabbing;
}

.formation-player-card.is-dragging {
  opacity: .35;
  transform: scale(.94);
}

.formation-player-card.is-selected {
  outline: 3px solid #f4cf57;
  outline-offset: 2px;
}

.formation-player-card.is-unavailable {
  background:
    linear-gradient(
      135deg,
      rgba(95,24,20,.96),
      rgba(154,42,31,.94)
    );
}

.formation-player-card.is-empty {
  min-height: 62px;
  grid-template-columns: 1fr;
  place-content: center;
  gap: 1px;
  border: 2px dashed rgba(255,255,255,.42);
  color: rgba(255,255,255,.75);
  background: rgba(5,47,30,.45);
  box-shadow: none;
  cursor: default;
  text-align: center;
}

.formation-empty-symbol {
  color: #fff !important;
  font-size: 19px !important;
  font-weight: 900;
}

.formation-player-photo {
  width: 42px;
  height: 42px;
  overflow: hidden;
  display: grid;
  place-items: center;
  border: 2px solid rgba(255,255,255,.75);
  border-radius: 50%;
  color: #164b35 !important;
  background: #f3ead0;
  font-size: 11px !important;
  font-weight: 950;
}

.formation-player-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.formation-player-photo > span {
  color: #164b35 !important;
  font-size: 11px !important;
}

.formation-player-copy {
  min-width: 0;
  display: grid;
  gap: 1px;
  color: #fff !important;
  text-align: left !important;
}

.formation-player-name {
  overflow: hidden;
  color: #fff;
  font-size: 11px;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.formation-player-meta {
  overflow: hidden;
  color: rgba(255,255,255,.76);
  font-size: 8px;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.formation-player-copy em {
  overflow: hidden;
  color: #ffd7d2;
  font-size: 7px;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.formation-drop-zone.is-drag-over
.formation-player-card {
  outline: 3px solid #f5d76c;
  outline-offset: 3px;
  transform: scale(1.04);
}

.formation-bench-card {
  padding: 16px;
}

.formation-bench-heading {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  margin-bottom: 13px;
}

.formation-bench-heading h3 {
  margin: 2px 0 0;
}

.formation-bench-editor {
  max-height: 720px;
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0,1fr));
  gap: 8px;
  overflow: auto;
  padding-right: 4px;
}

.formation-bench-slot {
  min-width: 0;
  display: grid;
  grid-template-columns: 25px minmax(0,1fr);
  gap: 6px;
  align-items: center;
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(255,255,255,.62);
}

.formation-bench-number {
  color: var(--muted);
  font-size: 9px;
  font-weight: 950;
  text-align: center;
}

.formation-bench-slot
.formation-player-card {
  min-height: 58px;
}

.formation-bench-slot
.formation-player-card.is-empty {
  color: var(--muted);
  border-color: var(--line);
  background: rgba(255,255,255,.38);
}

@media (max-width: 1180px) {
  .formation-bench-editor {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1050px) {
  .formation-pitch {
    min-height: 700px;
  }

  .formation-bench-editor {
    grid-template-columns:
      repeat(2, minmax(0,1fr));
    max-height: none;
  }
}

@media (max-width: 700px) {
  .formation-toolbar {
    align-items: stretch;
  }

  .formation-toolbar .push {
    margin-left: 0;
  }

  .formation-pitch {
    min-height: 780px;
  }

  .pitch-slot {
    width: 125px;
  }

  .formation-player-card {
    grid-template-columns: 34px minmax(0,1fr);
    min-height: 54px;
    padding: 5px;
  }

  .formation-player-photo {
    width: 34px;
    height: 34px;
  }

  .formation-player-name {
    font-size: 9px;
  }

  .formation-player-meta {
    font-size: 7px;
  }

  .formation-bench-editor {
    grid-template-columns: 1fr;
  }
}
/* =========================================================
   CLASSIFICHE — SCORRIMENTO SOPRA E SOTTO
   ========================================================= */

.ranking-scroll-shell {
  min-width: 0;
}

.ranking-scroll-top {
  width: 100%;
  height: 15px;
  overflow-x: auto;
  overflow-y: hidden;
  margin: 5px 0 7px;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.ranking-scroll-spacer {
  height: 1px;
}

.ranking-scroll-bottom {
  border-radius: 10px;
}

.ranking-table {
  min-width: 720px;
}

/*
 * Posizione e nome rimangono visibili
 * mentre si scorre verso gol, assist e media.
 */

.ranking-table th:nth-child(1),
.ranking-table td:nth-child(1) {
  position: sticky;
  left: 0;
  width: 50px;
  min-width: 50px;
}

.ranking-table th:nth-child(2),
.ranking-table td:nth-child(2) {
  position: sticky;
  left: 50px;
  min-width: 175px;
}

.ranking-table th:nth-child(1),
.ranking-table th:nth-child(2) {
  z-index: 4;
  background: #edf3f9;
}

.ranking-table td:nth-child(1),
.ranking-table td:nth-child(2) {
  z-index: 2;
  background: #fff;
}

.ranking-table td:nth-child(2) {
  box-shadow:
    8px 0 10px -10px rgba(0,0,0,.55);
}

body[data-theme="scuro"]
.ranking-table th:nth-child(1),

body[data-theme="scuro"]
.ranking-table th:nth-child(2) {
  background: #183328;
}

body[data-theme="scuro"]
.ranking-table td:nth-child(1),

body[data-theme="scuro"]
.ranking-table td:nth-child(2) {
  background: #12231c;
}
.formation-slot-label {
  display: none !important;
}
/* Acronimo posizione dentro la carta */

.formation-player-card {
  position: relative;
}

.formation-player-copy {
  padding-right: 29px;
}

.formation-position-code {
  position: absolute;
  top: 5px;
  right: 5px;
  min-width: 25px;
  height: 20px;
  display: inline-grid;
  place-items: center;
  padding: 0 5px;
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 999px;
  color: #173d2d !important;
  background: #f5d976;
  font-size: 8px !important;
  font-weight: 950;
  line-height: 1;
  letter-spacing: .03em;
  box-shadow:
    0 3px 8px rgba(0,0,0,.22);
}

.formation-player-card.is-unavailable
.formation-position-code {
  color: #6c1712 !important;
  background: #ffd1cb;
}

.formation-bench-slot
.formation-position-code {
  top: 4px;
  right: 4px;
}
/* =========================================================
   CLASSIFICHE TRASCINABILI
   ========================================================= */

.ranking-drag-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  cursor: grab;
  user-select: none;
  touch-action: pan-x pan-y;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;

  scrollbar-width: none;
  -ms-overflow-style: none;
}

.ranking-drag-scroll::-webkit-scrollbar {
  display: none;
}

.ranking-drag-scroll.is-dragging {
  cursor: grabbing;
}

.ranking-drag-scroll.is-dragging * {
  cursor: grabbing !important;
}

.ranking-table {
  min-width: 720px;
}

/* Nome e posizione restano visibili */

.ranking-table th:nth-child(1),
.ranking-table td:nth-child(1) {
  position: sticky;
  left: 0;
  width: 48px;
  min-width: 48px;
}

.ranking-table th:nth-child(2),
.ranking-table td:nth-child(2) {
  position: sticky;
  left: 48px;
  min-width: 170px;
}

.ranking-table th:nth-child(1),
.ranking-table th:nth-child(2) {
  z-index: 4;
  background: #edf3f9;
}

.ranking-table td:nth-child(1),
.ranking-table td:nth-child(2) {
  z-index: 2;
  background: #fff;
}

.ranking-table td:nth-child(2) {
  box-shadow:
    9px 0 12px -12px rgba(0,0,0,.65);
}
/* =========================================================
   COMPATIBILITÀ TATTICA
   ========================================================= */

.formation-player-card.compatibility-natural {
  border-color: rgba(154, 235, 181, .85);
}

.formation-player-card.compatibility-adapted {
  border-color: rgba(255, 216, 89, .95);
  background:
    linear-gradient(
      135deg,
      rgba(113, 76, 6, .97),
      rgba(169, 116, 12, .95)
    );
}

.formation-player-card.compatibility-out-of-position {
  border-color: rgba(255, 134, 120, .95);
  background:
    linear-gradient(
      135deg,
      rgba(103, 21, 18, .98),
      rgba(169, 43, 32, .96)
    );
}

.formation-player-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 6px;
  align-items: center;
  color: rgba(255,255,255,.88);
  font-size: 9px;
  line-height: 1.25;
  white-space: normal;
}

.formation-player-meta span {
  color: inherit;
  font-size: inherit;
}

.formation-player-meta strong {
  color: #fff;
  font-size: 10px;
  font-weight: 950;
}

.formation-compatibility-label {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  margin-top: 3px;
  padding: 3px 6px;
  border-radius: 999px;
  font-size: 7px;
  font-weight: 950;
  line-height: 1;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.formation-compatibility-label.compatibility-natural {
  color: #123d25;
  background: #bdecca;
}

.formation-compatibility-label.compatibility-adapted {
  color: #4d3400;
  background: #ffe08a;
}

.formation-compatibility-label.compatibility-out-of-position {
  color: #65140e;
  background: #ffc3bc;
}

.formation-player-card.compatibility-out-of-position
.formation-position-code {
  color: #671610 !important;
  background: #ffc4bd;
}

.formation-player-card.compatibility-adapted
.formation-position-code {
  color: #594000 !important;
  background: #ffe38b;
}
/* =========================================================
   CONTRASTO TABELLE PREMI
   ========================================================= */

.ranking-table {
  color: #26342e;
  background: #fff;
}

.ranking-table thead th {
  color: #16382c !important;
  background: #e6efe9 !important;
  border-bottom-color: #c5d6cd;
}

.ranking-table thead th strong {
  color: inherit !important;
}

.ranking-table tbody td {
  color: #33423c;
  background: #fff;
}

.ranking-table tbody td strong {
  color: #173c2e !important;
}

.ranking-table th:nth-child(1),
.ranking-table th:nth-child(2) {
  color: #16382c !important;
  background: #e6efe9 !important;
}

.ranking-table td:nth-child(1),
.ranking-table td:nth-child(2) {
  color: #263a31 !important;
  background: #fff !important;
}

.ranking-table td:nth-child(2) strong {
  color: #123b2b !important;
}

/* Righe alternate per leggere meglio */

.ranking-table tbody tr:nth-child(even) td {
  background: #f5f8f6;
}

.ranking-table tbody tr:nth-child(even)
td:nth-child(1),

.ranking-table tbody tr:nth-child(even)
td:nth-child(2) {
  background: #f5f8f6 !important;
}

/* Tema scuro */

body[data-theme="scuro"]
.ranking-table {
  color: #e7f2ed;
  background: #11261e;
}

body[data-theme="scuro"]
.ranking-table thead th,

body[data-theme="scuro"]
.ranking-table th:nth-child(1),

body[data-theme="scuro"]
.ranking-table th:nth-child(2) {
  color: #f1fff8 !important;
  background: #21483a !important;
}

body[data-theme="scuro"]
.ranking-table tbody td {
  color: #dcebe4;
  background: #142b22;
}

body[data-theme="scuro"]
.ranking-table tbody td strong,

body[data-theme="scuro"]
.ranking-table td:nth-child(2) strong {
  color: #fff !important;
}

body[data-theme="scuro"]
.ranking-table td:nth-child(1),

body[data-theme="scuro"]
.ranking-table td:nth-child(2) {
  color: #e9f7f0 !important;
  background: #142b22 !important;
}

body[data-theme="scuro"]
.ranking-table tbody tr:nth-child(even) td,

body[data-theme="scuro"]
.ranking-table tbody tr:nth-child(even)
td:nth-child(1),

body[data-theme="scuro"]
.ranking-table tbody tr:nth-child(even)
td:nth-child(2) {
  background: #183328 !important;
}
/* =========================================================
   PREMI — INTESTAZIONI VERDE SCURO
   ========================================================= */

.ranking-table thead th {
  color: #ffffff !important;
  background: #174d38 !important;
  border-bottom: 1px solid #0d3526 !important;
  font-weight: 950;
  letter-spacing: .045em;
}

/*
 * Mantiene lo stesso verde anche sulle
 * colonne fisse Numero e Giocatore.
 */

.ranking-table thead th:nth-child(1),
.ranking-table thead th:nth-child(2) {
  color: #ffffff !important;
  background: #174d38 !important;
}

/* Separazione più evidente tra le colonne */

.ranking-table thead th + th {
  border-left: 1px solid rgba(255,255,255,.16);
}

/* Effetto leggermente più chiaro al passaggio */

.ranking-table thead th:hover {
  background: #1d6046 !important;
}
.ranking-table tbody td {
  color: #263a31 !important;
  background: #ffffff;
}

.ranking-table tbody tr:nth-child(even) td {
  background: #eef5f1;
}

.ranking-table tbody tr:hover td {
  background: #dfeee6 !important;
}

.ranking-table tbody td strong {
  color: #123d2c !important;
}
/* Badge PT leggermente più in basso */

/* Abbassa tutta la carta del portiere */

.pitch-slot[data-slot-position="GK"] {
  transform: translate(-50%, calc(-50% + 14px));
}

/* =========================================================
   MIILAB — CENTRO SPORTIVO E INFERMERIA
   ========================================================= */

.home-editorial-left {
  min-width: 0;
  display: grid;
  gap: 16px;
  align-content: start;
}

.miilab-card {
  min-width: 0;
  display: grid;
  gap: 14px;
  padding: 0;
  overflow: hidden;
  border-color: rgba(13, 75, 52, .24);
  contain: layout paint;
}

.miilab-header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  padding: 18px 18px 15px;
  color: #fff;
  background:
    radial-gradient(
      circle at 92% 15%,
      rgba(255,255,255,.14),
      transparent 30%
    ),
    linear-gradient(135deg, #092d21, #176044);
}

.miilab-header h3 {
  margin: 3px 0 4px;
  color: #fff;
  font-size: 21px;
}

.miilab-header p {
  margin: 0;
  color: rgba(255,255,255,.76);
  font-size: 12px;
  line-height: 1.4;
}

.miilab-header .kicker {
  color: #bce9d2;
}

.miilab-round-badge {
  flex: 0 0 auto;
  padding: 6px 9px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  color: #fff;
  background: rgba(255,255,255,.11);
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
}

.miilab-bulletin {
  display: grid;
  gap: 11px;
  margin: 0 14px;
  padding: 14px;
  border: 1px solid rgba(12, 70, 49, .16);
  border-radius: 15px;
  background: #f3f8f5;
}

.miilab-bulletin-injury {
  border-left: 5px solid #a92e24;
  background: #fff6f4;
}

.miilab-bulletin-return {
  border-left: 5px solid #278250;
  background: #f2faf5;
}

.miilab-bulletin-clear {
  border-left: 5px solid #278250;
}

.miilab-bulletin-heading {
  display: flex;
  gap: 10px;
  align-items: center;
}

.miilab-bulletin-heading > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.miilab-bulletin-heading small {
  color: #6b7d75;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.miilab-bulletin-heading strong {
  color: #163d2f;
  font-size: 15px;
  line-height: 1.2;
}

.miilab-status-light {
  width: 11px;
  height: 11px;
  flex: 0 0 11px;
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(0,0,0,.05);
}

.miilab-status-light.is-success {
  background: #2d9b61;
}

.miilab-status-light.is-danger {
  background: #c74438;
}

.miilab-bulletin > p {
  margin: 0;
  color: #3d5149;
  font-size: 12px;
  line-height: 1.55;
  white-space: pre-line;
}

.miilab-medical-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 8px;
}

.miilab-medical-grid > div {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 8px 9px;
  border: 1px solid rgba(12, 70, 49, .12);
  border-radius: 10px;
  background: rgba(255,255,255,.76);
}

.miilab-medical-grid span {
  color: #718079;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.miilab-medical-grid strong {
  color: #193d30;
  font-size: 10px;
  line-height: 1.25;
}

.miilab-medical-wide {
  grid-column: 1 / -1;
}

.miilab-severity {
  width: fit-content;
  padding: 3px 6px;
  border-radius: 999px;
}

.miilab-severity-mild {
  color: #275d39 !important;
  background: #d9f1df;
}

.miilab-severity-medium {
  color: #765100 !important;
  background: #ffecb8;
}

.miilab-severity-serious,
.miilab-severity-catastrophic {
  color: #7a1d16 !important;
  background: #ffd6d1;
}

.miilab-versions {
  display: grid;
  gap: 5px;
  padding-top: 9px;
  border-top: 1px dashed rgba(61, 81, 73, .25);
}

.miilab-versions p {
  margin: 0;
  color: #51645c;
  font-size: 10px;
  line-height: 1.4;
}

.miilab-versions strong {
  color: #1c4837;
}

.miilab-columns {
  display: grid;
  grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr);
  gap: 10px;
  padding: 0 14px;
}

.miilab-panel {
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(12, 70, 49, .14);
  border-radius: 13px;
  background: rgba(244, 249, 246, .85);
}

.miilab-panel-heading {
  display: flex;
  justify-content: space-between;
  gap: 9px;
  align-items: center;
  margin-bottom: 9px;
}

.miilab-panel-heading h4 {
  margin: 0;
  color: #173f30;
  font-size: 12px;
}

.miilab-panel-heading span {
  min-width: 21px;
  height: 21px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  background: #175d41;
  font-size: 9px;
  font-weight: 950;
}

.miilab-infirmary-list,
.miilab-return-list {
  display: grid;
  gap: 7px;
}

.miilab-infirmary-player {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr);
  gap: 8px;
  align-items: center;
  padding: 7px;
  border-radius: 10px;
  background: #fff;
}

.miilab-player-photo {
  width: 34px;
  height: 34px;
  overflow: hidden;
  display: grid;
  place-items: center;
  border: 2px solid #d5e7dd;
  border-radius: 50%;
  color: #164a35;
  background: #e9f3ed;
  font-size: 9px;
  font-weight: 950;
}

.miilab-player-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.miilab-infirmary-player > div {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.miilab-infirmary-player strong,
.miilab-return-row strong {
  overflow: hidden;
  color: #173d30;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.miilab-infirmary-player span,
.miilab-infirmary-player small,
.miilab-return-row small {
  overflow: hidden;
  color: #687a72;
  font-size: 8px;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.miilab-empty-list {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 9px;
  border: 1px dashed #b8d3c5;
  border-radius: 10px;
}

.miilab-empty-list span {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #2c8b59;
  font-size: 10px;
  font-weight: 950;
}

.miilab-empty-list p,
.miilab-no-returns {
  margin: 0;
  color: #687a72;
  font-size: 9px;
  line-height: 1.4;
}

.miilab-return-row {
  display: grid;
  grid-template-columns: 24px minmax(0,1fr);
  gap: 7px;
  align-items: center;
  padding: 7px;
  border-radius: 9px;
  background: #fff;
}

.miilab-return-row > span {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #2c8b59;
  font-size: 11px;
  font-weight: 950;
}

.miilab-return-row > div {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.miilab-footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 12px 14px 14px;
  border-top: 1px solid rgba(12, 70, 49, .12);
  color: #65786f;
  background: #f5f9f7;
  font-size: 9px;
}

.miilab-footer strong {
  color: #173f30;
}

.availability-severity {
  display: inline-flex;
  padding: 4px 7px;
  border-radius: 999px;
  color: #7a1d16;
  background: #ffe0dc;
  font-size: 10px;
  font-weight: 900;
}

body[data-theme="scuro"] .miilab-bulletin,
body[data-theme="scuro"] .miilab-panel,
body[data-theme="scuro"] .miilab-footer {
  color: #eaf7f0;
  background: #10281e;
  border-color: rgba(255,255,255,.12);
}

body[data-theme="scuro"] .miilab-bulletin-heading strong,
body[data-theme="scuro"] .miilab-panel-heading h4,
body[data-theme="scuro"] .miilab-infirmary-player strong,
body[data-theme="scuro"] .miilab-return-row strong,
body[data-theme="scuro"] .miilab-footer strong {
  color: #effbf5;
}

body[data-theme="scuro"] .miilab-bulletin > p,
body[data-theme="scuro"] .miilab-versions p,
body[data-theme="scuro"] .miilab-infirmary-player span,
body[data-theme="scuro"] .miilab-infirmary-player small,
body[data-theme="scuro"] .miilab-return-row small,
body[data-theme="scuro"] .miilab-no-returns,
body[data-theme="scuro"] .miilab-footer {
  color: #abc1b7;
}

body[data-theme="scuro"] .miilab-medical-grid > div,
body[data-theme="scuro"] .miilab-infirmary-player,
body[data-theme="scuro"] .miilab-return-row {
  background: #173329;
  border-color: rgba(255,255,255,.10);
}

body[data-theme="scuro"] .miilab-medical-grid strong,
body[data-theme="scuro"] .miilab-versions strong {
  color: #e9f7f0;
}

@media (max-width: 860px) {
  .miilab-columns {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .miilab-header,
  .miilab-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .miilab-medical-grid {
    grid-template-columns: 1fr;
  }

  .miilab-medical-wide {
    grid-column: auto;
  }
}
/* =========================================================
   FORMAZIONE — GIOCATORI INFORTUNATI
   ========================================================= */

.formation-player-card.is-unavailable,
.formation-player-card.is-unavailable.compatibility-natural,
.formation-player-card.is-unavailable.compatibility-adapted,
.formation-player-card.is-unavailable.compatibility-out-of-position {
  border: 2px solid #ff9a91 !important;
  background:
    linear-gradient(
      135deg,
      rgba(91, 15, 14, .98),
      rgba(174, 38, 31, .97)
    ) !important;
  box-shadow:
    0 0 0 2px rgba(255, 115, 103, .20),
    0 9px 22px rgba(64, 4, 2, .42) !important;
}

.formation-medical-badge {
  position: absolute;
  top: 4px;
  left: 4px;
  z-index: 4;
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border: 2px solid rgba(255,255,255,.92);
  border-radius: 50%;
  background: #a51f18;
  box-shadow: 0 4px 10px rgba(0,0,0,.34);
  font-size: 14px;
  line-height: 1;
  pointer-events: none;
}

.formation-player-card.is-unavailable
.formation-player-photo {
  filter:
    grayscale(.75)
    saturate(.55)
    brightness(.82);
}

.formation-player-card.is-unavailable
.formation-player-name {
  color: #fff !important;
}

.formation-player-card.is-unavailable
.formation-player-copy em {
  display: inline-flex;
  width: fit-content;
  margin-top: 4px;
  padding: 3px 6px;
  border-radius: 999px;
  color: #67120e;
  background: #ffd1cc;
  font-size: 7px;
  font-style: normal;
  font-weight: 950;
  line-height: 1.15;
  text-transform: uppercase;
}

.formation-player-card.is-unavailable
.formation-position-code {
  color: #67120e !important;
  background: #ffd1cc !important;
}
/* Simboli infortunio e squalifica */

.formation-status-badges {
  position: absolute;
  top: 4px;
  left: 4px;
  z-index: 5;
  display: flex;
  gap: 4px;
  pointer-events: none;
}

.formation-status-badge {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border: 2px solid rgba(255,255,255,.92);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,.34);
  font-size: 14px;
  line-height: 1;
}

.formation-status-badge.is-injury {
  background: #a51f18;
}

.formation-status-badge.is-suspension {
  background: #65110d;
}
/* =========================================================
   MOBILE — GIORNALE, PREMI E SQUADRA DELLA SETTIMANA
   ========================================================= */

@media (max-width: 720px) {

  /* ---------------------------------------------------------
     SICUREZZA GENERALE: niente pagina tagliata lateralmente
     --------------------------------------------------------- */

  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .app-shell {
    width: calc(100% - 16px) !important;
    max-width: calc(100% - 16px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .card,
  .grid,
  .grid > *,
  .gazzetta-page,
  .home-newspaper-news,
  .newspaper-team-section,
  .ranking-scroll-shell {
    min-width: 0 !important;
    max-width: 100% !important;
  }


  /* ---------------------------------------------------------
     PREMI E CLASSIFICHE
     La tabella scorre dentro la card, non sposta tutta l'app.
     --------------------------------------------------------- */

  .grid.cols-3 {
    grid-template-columns: 1fr !important;
  }

  .grid.cols-3 > .card {
    width: 100%;
    min-width: 0;
    padding: 14px;
    overflow: hidden;
  }

  .ranking-scroll-shell {
    width: 100%;
    overflow: hidden;
  }

  .ranking-drag-scroll,
  .ranking-scroll-bottom {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
  }

  .ranking-table {
    width: 720px !important;
    min-width: 720px !important;
    max-width: none !important;
  }

  /*
   * Posizione e giocatore restano fissi,
   * le altre statistiche scorrono lateralmente.
   */

  .ranking-table th:nth-child(1),
  .ranking-table td:nth-child(1) {
    width: 42px !important;
    min-width: 42px !important;
    left: 0 !important;
  }

  .ranking-table th:nth-child(2),
  .ranking-table td:nth-child(2) {
    width: 155px !important;
    min-width: 155px !important;
    left: 42px !important;
  }

  .ranking-table th,
  .ranking-table td {
    padding: 10px 9px;
  }


  /* ---------------------------------------------------------
     GAZZETTA COMPLETA
     --------------------------------------------------------- */

  .gazzetta-page {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    border-radius: 14px;
  }

  .gazzetta-page-masthead {
    padding: 13px 12px 12px;
  }

  .gazzetta-page-masthead > div {
    gap: 4px;
    align-items: center;
    flex-direction: column;
    text-align: center;
  }

  .gazzetta-page-masthead > strong {
    max-width: 100%;
    margin-top: 7px;
    font-size: clamp(34px, 11vw, 46px) !important;
    line-height: .9;
    letter-spacing: -.055em;
    overflow-wrap: normal;
    word-break: normal;
  }

  .gazzetta-page-masthead > em {
    margin-top: 8px;
    padding: 0 8px;
    font-size: 12px;
    line-height: 1.25;
  }

  .gazzetta-page-strip {
    padding: 9px 11px;
    font-size: 8px;
    line-height: 1.35;
  }

  .gazzetta-page-grid {
    grid-template-columns: 1fr !important;
    width: 100%;
    padding: 10px !important;
  }

  .gazzetta-article {
    width: 100%;
    min-width: 0;
    padding: 15px 10px !important;
    border-right: 0 !important;
  }

  .gazzetta-article h2,
  .gazzetta-article h3,
  .gazzetta-article strong {
    max-width: 100%;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: normal;
    word-break: normal;
  }

  .gazzetta-article.lead h2,
  .gazzetta-article.lead h3,
  .gazzetta-article.lead > strong {
    font-size: clamp(32px, 10vw, 47px) !important;
    line-height: .95 !important;
    letter-spacing: -.045em;
  }

  .gazzetta-article p,
  .gazzetta-article blockquote {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
  }

  .gazzetta-article p {
    font-size: 18px;
    line-height: 1.45;
  }

  .gazzetta-article blockquote {
    margin-left: 0;
    margin-right: 0;
    padding: 10px 12px;
    font-size: 19px;
    line-height: 1.3;
  }


  /* ---------------------------------------------------------
     GIORNALE NELLA HOME
     --------------------------------------------------------- */

  .home-newspaper-news {
    width: 100%;
    overflow: hidden;
  }

  .home-newspaper-body {
    padding: 13px 12px;
  }

  .home-newspaper-lead > strong {
    max-width: 100%;
    font-size: clamp(25px, 8vw, 35px) !important;
    line-height: 1;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: normal;
    word-break: normal;
  }

  .home-newspaper-secondary-grid {
    grid-template-columns: 1fr !important;
  }


  /* ---------------------------------------------------------
     SQUADRA DELLA SETTIMANA
     Elimina la colonna infinita e ricrea il campo.
     --------------------------------------------------------- */

  .newspaper-team-section {
    width: 100%;
    padding: 14px 8px !important;
    overflow: hidden;
  }

  .round-pitch {
    min-height: 720px !important;
    width: 100%;
    padding: 25px 8px !important;
    gap: 18px;
  }

  /*
   * Annulla la vecchia regola mobile che impostava:
   * grid-template-columns: 1fr;
   */

  .round-line {
    width: 100% !important;
    display: grid !important;
    justify-content: center;
    gap: 7px !important;
  }

  .round-line.attackers,
  .round-line.midfielders {
    grid-template-columns:
      repeat(3, minmax(0, 1fr)) !important;
  }

  .round-line.defenders {
    grid-template-columns:
      repeat(4, minmax(0, 1fr)) !important;
  }

  .round-line.goalkeeper {
    grid-template-columns:
      minmax(0, 145px) !important;
  }

  .round-player-card {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 125px;
    padding: 9px 6px !important;
  }

  .round-player-card .round-player-photo,
  .round-player-card .photo {
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
  }

  .round-player-card h3,
  .round-player-card h4,
  .round-player-name {
    max-width: 100%;
    font-size: 12px !important;
    white-space: normal !important;
    line-height: 1.05;
  }

  .round-player-team,
  .round-player-position,
  .round-player-performance {
    font-size: 9px !important;
    line-height: 1.15;
    white-space: normal !important;
  }

  .round-player-rating {
    padding: 4px 7px !important;
    font-size: 11px !important;
  }

  .round-bench-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;
  }
}
/* =========================================================
   MOBILE — CARD FORMAZIONE PIÙ COMPATTE
   ========================================================= */

@media (max-width: 720px) {

  .round-pitch {
    min-height: 620px !important;
    padding: 20px 6px !important;
    gap: 12px !important;
  }

  .round-line {
    gap: 5px !important;
  }

  .round-player-card {
    min-height: 96px !important;
    padding: 7px 5px !important;
    border-radius: 15px !important;
  }

  .round-player-card .round-player-photo,
  .round-player-card .photo {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    border-radius: 12px !important;
    font-size: 17px !important;
  }

  .round-player-card h3,
  .round-player-card h4,
  .round-player-name {
    font-size: 10px !important;
    line-height: 1.05 !important;
  }

  .round-player-team {
    font-size: 7px !important;
    line-height: 1.05 !important;
  }

  .round-player-position {
    font-size: 7.5px !important;
    line-height: 1.05 !important;
  }

  .round-player-performance {
    min-height: 0 !important;
    font-size: 7px !important;
    line-height: 1.05 !important;
  }

  .round-player-rating {
    top: 6px !important;
    right: 5px !important;
    padding: 3px 5px !important;
    font-size: 9px !important;
  }

  .round-player-copy {
    gap: 1px !important;
    min-width: 0 !important;
  }

  .round-player-card {
    grid-template-columns: 42px minmax(0, 1fr) !important;
    column-gap: 5px !important;
  }

  .round-line.goalkeeper {
    grid-template-columns: minmax(0, 125px) !important;
  }

  .round-line.attackers,
  .round-line.midfielders {
    grid-template-columns:
      repeat(3, minmax(0, 1fr)) !important;
  }

  .round-line.defenders {
    grid-template-columns:
      repeat(4, minmax(0, 1fr)) !important;
  }
}
/* =========================================================
   MOBILE — FOTO/INIZIALI PIÙ PICCOLE NELLA TOP 11
   ========================================================= */

@media (max-width: 720px) {

  .round-player-card {
    grid-template-columns:
      30px minmax(0, 1fr) !important;
    column-gap: 5px !important;
    padding: 7px 5px !important;
  }

  .round-player-card .round-player-photo,
  .round-player-card .photo {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    border-radius: 9px !important;
    font-size: 11px !important;
  }

  .round-player-copy {
    width: 100%;
    min-width: 0 !important;
    padding-right: 1px;
  }

  .round-player-name,
  .round-player-card h3,
  .round-player-card h4 {
    display: block;
    max-width: 100%;
    font-size: 11px !important;
    line-height: 1.05 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    word-break: normal !important;
  }

  .round-player-team {
    font-size: 7px !important;
    line-height: 1.1 !important;
  }

  .round-player-position {
    font-size: 7px !important;
    line-height: 1.05 !important;
  }

  .round-player-performance {
    font-size: 7px !important;
    line-height: 1.05 !important;
  }

  .round-player-rating {
    top: 5px !important;
    right: 4px !important;
    padding: 2px 4px !important;
    font-size: 8px !important;
  }
}
/* =========================================================
   MOBILE — TOP 11 CON TESTI SOTTO L'ICONA
   ========================================================= */

@media (max-width: 720px) {

  .round-player-card {
    display: grid !important;
    grid-template-columns: 26px minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    column-gap: 5px !important;
    row-gap: 4px !important;
    min-height: 108px !important;
    padding: 7px 5px !important;
    align-content: start !important;
  }

  .round-player-card .round-player-photo,
  .round-player-card .photo {
    grid-column: 1;
    grid-row: 1;
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    border-radius: 8px !important;
    font-size: 9px !important;
    align-self: start;
  }

  .round-player-copy {
    display: contents !important;
  }

  .round-player-name,
  .round-player-card h3,
  .round-player-card h4 {
    grid-column: 2;
    grid-row: 1;
    display: block;
    min-width: 0;
    padding-right: 22px;
    font-size: 10px !important;
    line-height: 1.02 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    word-break: normal !important;
  }

  .round-player-team {
    grid-column: 1 / -1;
    grid-row: 2;
    display: block;
    margin-top: 1px;
    font-size: 7px !important;
    line-height: 1.05 !important;
    white-space: normal !important;
  }

  .round-player-position {
    grid-column: 1 / -1;
    display: block;
    font-size: 7px !important;
    line-height: 1.05 !important;
    white-space: normal !important;
  }

  .round-player-performance {
    grid-column: 1 / -1;
    display: block;
    min-height: 0 !important;
    font-size: 7px !important;
    line-height: 1.05 !important;
    white-space: normal !important;
  }

  .round-player-rating {
    top: 5px !important;
    right: 4px !important;
    padding: 2px 4px !important;
    font-size: 8px !important;
  }
}

/* =========================================================
   COPPA DI LEGA — TABELLONE A ELIMINAZIONE DIRETTA
   ========================================================= */
.league-cup-header-actions,
.league-cup-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.league-cup-intro {
  display: grid;
  gap: 14px;
  max-width: 920px;
}

.league-cup-intro p {
  margin: 0;
  line-height: 1.6;
  color: #40554c;
}

.league-cup-seeding-preview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.league-cup-seeding-preview span {
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: rgba(230, 245, 237, .82);
  color: #174d39;
  font-size: 13px;
  font-weight: 800;
}

.league-cup-summary {
  margin-bottom: 16px;
}

.league-cup-summary .card {
  min-height: 128px;
}

.league-cup-summary p {
  margin: 8px 0 0;
  color: var(--muted);
}

.league-cup-preliminaries {
  margin-bottom: 18px;
}

.league-cup-preliminary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  gap: 16px;
}

.league-cup-scroll {
  overflow-x: auto;
  padding: 4px 2px 18px;
  scrollbar-color: rgba(31, 143, 98, .72) rgba(255, 255, 255, .18);
}

.league-cup-bracket {
  min-width: 1620px;
  min-height: 720px;
  display: grid;
  grid-template-columns: 230px 220px 210px 250px 210px 220px 230px;
  gap: 42px;
  align-items: stretch;
  padding: 22px;
  border: 1px solid rgba(255, 255, 255, .26);
  border-radius: 22px;
  background:
    radial-gradient(circle at 50% 50%, rgba(241, 199, 91, .13), transparent 23%),
    linear-gradient(145deg, rgba(4, 32, 23, .92), rgba(10, 67, 47, .88));
  box-shadow: 0 24px 58px rgba(0, 0, 0, .26);
}

.league-cup-round {
  min-width: 0;
  min-height: 670px;
  display: flex;
  flex-direction: column;
}

.league-cup-round > h3 {
  min-height: 32px;
  margin: 0;
  color: #eaf8f1;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .11em;
  font-size: 12px;
}

.league-cup-round-matches {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  gap: 18px;
}

.league-cup-match {
  position: relative;
  z-index: 2;
  overflow: visible;
  padding: 10px;
  border: 1px solid rgba(255, 255, 255, .60);
  border-radius: 14px;
  background: rgba(253, 255, 254, .96);
  box-shadow: 0 12px 28px rgba(0, 0, 0, .22);
}

.league-cup-match.is-played {
  border-color: rgba(241, 199, 91, .78);
}

.league-cup-match.is-mii {
  border: 2px solid #3fc48b;
  box-shadow: 0 0 0 3px rgba(63, 196, 139, .16), 0 14px 32px rgba(0, 0, 0, .24);
}

.league-cup-match.connect-right::after,
.league-cup-match.connect-left::before {
  content: "";
  position: absolute;
  top: 50%;
  width: 43px;
  height: 2px;
  background: rgba(232, 247, 239, .68);
}

.league-cup-match.connect-right::after {
  left: 100%;
}

.league-cup-match.connect-left::before {
  right: 100%;
}

.league-cup-match-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 7px;
  color: #174b39;
  font-weight: 900;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .055em;
}

.league-cup-match-title small {
  color: #71847c;
  font-size: 9px;
  letter-spacing: 0;
  text-transform: none;
}

.league-cup-team {
  display: grid;
  grid-template-columns: 27px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-height: 36px;
  padding: 6px 7px;
  border-top: 1px solid rgba(17, 76, 57, .11);
}

.league-cup-team.is-winner {
  margin-inline: -2px;
  border-radius: 8px;
  background: linear-gradient(90deg, rgba(241, 199, 91, .27), rgba(241, 199, 91, .06));
}

.league-cup-seed {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #155b40;
  font-size: 11px;
  font-weight: 900;
}

.league-cup-team.is-winner .league-cup-seed {
  color: #4b3300;
  background: var(--gold, #f1c75b);
}

.league-cup-team-name {
  min-width: 0;
  overflow: hidden;
  color: #1b3128;
  font-size: 12px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.league-cup-score {
  color: #123b31;
  font-size: 14px;
}

.league-cup-actions {
  justify-content: flex-end;
  margin-top: 8px;
}

.league-cup-actions:empty {
  display: none;
}

.final-column .league-cup-round-matches {
  justify-content: center;
}

.league-cup-trophy {
  margin-bottom: 2px;
  text-align: center;
  font-size: 58px;
  filter: drop-shadow(0 8px 14px rgba(0, 0, 0, .28));
}

.final-column .league-cup-match {
  border: 2px solid rgba(241, 199, 91, .88);
  box-shadow: 0 0 0 5px rgba(241, 199, 91, .10), 0 18px 42px rgba(0, 0, 0, .32);
}

.league-cup-champion {
  display: grid;
  gap: 4px;
  margin-top: 13px;
  padding: 12px;
  border: 1px solid rgba(241, 199, 91, .58);
  border-radius: 13px;
  text-align: center;
  color: #fff2c6;
  background: rgba(80, 54, 4, .43);
}

.league-cup-champion span {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.league-cup-champion strong {
  font-size: 18px;
}

.league-cup-result-modal {
  width: min(720px, 100%);
}

.league-cup-penalty-box {
  margin-top: 16px;
  padding: 14px;
  border: 1px solid rgba(164, 102, 0, .24);
  border-radius: 12px;
  background: #fff7df;
}

.league-cup-penalty-box p {
  margin: 0 0 12px;
  color: #6f4b08;
  font-weight: 800;
}

.league-cup-penalty-box.is-hidden {
  display: none;
}

@media (max-width: 900px) {
  .league-cup-preliminary-grid,
  .league-cup-seeding-preview {
    grid-template-columns: 1fr;
  }

  .league-cup-header-actions {
    margin-top: 10px;
  }
}

@media (max-width: 620px) {
  .league-cup-bracket {
    min-width: 1480px;
    grid-template-columns: 205px 195px 185px 225px 185px 195px 205px;
    gap: 34px;
    padding: 16px;
  }

  .league-cup-match.connect-right::after,
  .league-cup-match.connect-left::before {
    width: 35px;
  }

  .league-cup-team-name {
    font-size: 11px;
  }
}


/* =========================================================
   RIQUADRI RIEPILOGO
   ========================================================= */

.league-cup-summary {
  position: relative;
  margin-bottom: 18px;
}

.league-cup-summary .card {
  position: relative;
  overflow: hidden;
  min-height: 134px;
  border: 1px solid rgba(75, 184, 255, .25);
  background:
    radial-gradient(
      circle at 100% 0,
      rgba(32, 183, 255, .18),
      transparent 44%
    ),
    linear-gradient(
      145deg,
      rgba(8, 21, 40, .98),
      rgba(15, 42, 72, .96)
    );
  color: var(--cup-white);
  box-shadow:
    0 18px 38px rgba(0, 0, 0, .28),
    inset 0 1px rgba(255, 255, 255, .08);
}

.league-cup-summary .card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 18px;
  right: 18px;
  height: 3px;
  border-radius: 0 0 4px 4px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--cup-blue),
    var(--cup-gold),
    transparent
  );
}

.league-cup-summary .card::after {
  content: "◆";
  position: absolute;
  right: 15px;
  bottom: -14px;
  color: rgba(255, 255, 255, .055);
  font-size: 90px;
  line-height: 1;
  transform: rotate(20deg);
}

.league-cup-summary .kicker {
  position: relative;
  z-index: 1;
  color: var(--cup-gold);
}

.league-cup-summary .metric,
.league-cup-summary h3 {
  position: relative;
  z-index: 1;
  color: var(--cup-white);
}

.league-cup-summary p {
  position: relative;
  z-index: 1;
  color: var(--cup-muted);
}

/* =========================================================
   TURNO PRELIMINARE
   ========================================================= */

.league-cup-preliminaries {
  position: relative;
  overflow: hidden;
  margin-bottom: 20px;
  border: 1px solid rgba(32, 183, 255, .26);
  background:
    radial-gradient(
      circle at 50% -60px,
      rgba(32, 183, 255, .20),
      transparent 48%
    ),
    linear-gradient(
      135deg,
      rgba(5, 14, 28, .97),
      rgba(10, 35, 58, .96)
    );
  box-shadow:
    0 20px 42px rgba(0, 0, 0, .25),
    inset 0 1px rgba(255, 255, 255, .08);
}

.league-cup-preliminaries::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(
      115deg,
      transparent 0 45%,
      rgba(255, 255, 255, .035) 45% 46%,
      transparent 46% 100%
    );
}

.league-cup-preliminaries .section-heading {
  position: relative;
  z-index: 1;
}

.league-cup-preliminaries .section-heading h3 {
  color: var(--cup-white);
}

.league-cup-preliminaries .kicker {
  color: var(--cup-gold);
}

.league-cup-preliminaries .badge {
  border: 1px solid rgba(245, 196, 81, .35);
  color: #ffe7a4;
  background: rgba(245, 196, 81, .12);
}

.league-cup-preliminary-grid {
  position: relative;
  z-index: 1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

/* =========================================================
   CONTENITORE DEL TABELLONE
   Impedisce al tabellone di uscire dalla pagina
   ========================================================= */

.league-cup-scroll {
  position: relative;
  display: block;

  /* Correzione principale dell’overflow */
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;

  overflow-x: auto !important;
  overflow-y: hidden;

  margin: 0;
  padding: 16px 16px 22px;

  border: 1px solid rgba(32, 183, 255, .28);
  border-radius: 26px;

  background:
    radial-gradient(
      circle at 50% 0,
      rgba(32, 183, 255, .16),
      transparent 36%
    ),
    linear-gradient(
      145deg,
      rgba(3, 9, 20, .97),
      rgba(7, 25, 44, .97)
    );

  box-shadow:
    0 24px 55px rgba(0, 0, 0, .34),
    inset 0 1px rgba(255, 255, 255, .08);

  scrollbar-width: thin;
  scrollbar-color:
    var(--cup-gold)
    rgba(255, 255, 255, .09);

  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}

/* Titolo interno del riquadro */
.league-cup-scroll::before {
  content: "COPPA DI LEGA  •  FASE A ELIMINAZIONE DIRETTA";
  position: sticky;
  left: 16px;
  z-index: 10;

  display: inline-flex;
  align-items: center;

  margin: 0 0 14px;
  padding: 7px 13px;

  border: 1px solid rgba(245, 196, 81, .34);
  border-radius: 999px;

  color: #ffe8a7;
  background: rgba(245, 196, 81, .10);

  font-size: 10px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}

/* Scrollbar Chrome, Edge e Safari */
.league-cup-scroll::-webkit-scrollbar {
  height: 11px;
}

.league-cup-scroll::-webkit-scrollbar-track {
  border-radius: 999px;
  background: rgba(255, 255, 255, .08);
}

.league-cup-scroll::-webkit-scrollbar-thumb {
  border: 2px solid #071426;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    var(--cup-blue),
    var(--cup-gold)
  );
}

/* =========================================================
   TABELLONE
   Larghezza esplicita: scorre DENTRO il riquadro
   ========================================================= */

.league-cup-bracket {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  box-sizing: border-box;

  /* Non allarga più la pagina */
  width: 1594px;
  min-width: 1594px;
  max-width: none;

  min-height: 760px;

  display: grid;
  grid-template-columns:
    214px
    190px
    170px
    226px
    170px
    190px
    214px;

  gap: 28px;
  align-items: stretch;

  margin: 0;
  padding: 28px 26px;

  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 21px;

  background:
    radial-gradient(
      circle at 50% 50%,
      rgba(245, 196, 81, .15) 0,
      rgba(245, 196, 81, .06) 95px,
      transparent 190px
    ),
    radial-gradient(
      circle at 8% 48%,
      rgba(32, 183, 255, .12),
      transparent 27%
    ),
    radial-gradient(
      circle at 92% 48%,
      rgba(32, 183, 255, .12),
      transparent 27%
    ),
    repeating-linear-gradient(
      135deg,
      rgba(255, 255, 255, .017) 0 2px,
      transparent 2px 18px
    ),
    linear-gradient(
      135deg,
      #050c19,
      #0a1c32 48%,
      #050c19
    );

  box-shadow:
    inset 0 0 70px rgba(0, 0, 0, .30),
    0 18px 40px rgba(0, 0, 0, .24);
}

/* Linea centrale della finale */
.league-cup-bracket::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 68px;
  bottom: 30px;
  left: 50%;
  width: 1px;

  background: linear-gradient(
    transparent,
    rgba(245, 196, 81, .38),
    transparent
  );
}

/* Cerchio decorativo centrale */
.league-cup-bracket::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;

  width: 255px;
  height: 255px;

  border: 1px solid rgba(245, 196, 81, .13);
  border-radius: 50%;

  box-shadow:
    0 0 0 35px rgba(245, 196, 81, .025),
    0 0 70px rgba(245, 196, 81, .08);

  transform: translate(-50%, -50%);
}

/* =========================================================
   COLONNE E NOMI DEI TURNI
   ========================================================= */

.league-cup-round {
  position: relative;
  z-index: 2;
  min-width: 0;
  min-height: 700px;
}

.league-cup-round > h3 {
  width: fit-content;
  min-width: 82px;
  min-height: auto;

  margin: 0 auto 11px;
  padding: 7px 12px;

  border: 1px solid rgba(32, 183, 255, .28);
  border-radius: 999px;

  color: #dff5ff;
  background: rgba(32, 183, 255, .10);

  text-align: center;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 10px;
  font-weight: 900;

  box-shadow: inset 0 1px rgba(255, 255, 255, .08);
}

.final-column > h3 {
  border-color: rgba(245, 196, 81, .42);
  color: #ffe8a6;
  background: rgba(245, 196, 81, .13);
}

.league-cup-round-matches {
  gap: 18px;
}

/* =========================================================
   CARTELLINI DELLE PARTITE
   ========================================================= */

.league-cup-match {
  position: relative;
  z-index: 3;
  overflow: visible;

  padding: 9px;

  border: 1px solid rgba(105, 188, 231, .44);
  border-top: 3px solid var(--cup-blue);
  border-radius: 12px;

  background:
    linear-gradient(
      145deg,
      rgba(250, 253, 255, .99),
      rgba(225, 237, 247, .98)
    );

  box-shadow:
    0 13px 28px rgba(0, 0, 0, .32),
    inset 0 1px rgba(255, 255, 255, .95);

  transition:
    transform .18s ease,
    box-shadow .18s ease,
    border-color .18s ease;
}

.league-cup-match:hover {
  z-index: 5;
  transform: translateY(-3px);
  border-color: rgba(32, 183, 255, .82);
  box-shadow:
    0 18px 36px rgba(0, 0, 0, .38),
    0 0 20px rgba(32, 183, 255, .12);
}

.league-cup-match.is-played {
  border-top-color: var(--cup-gold);
  border-color: rgba(245, 196, 81, .62);
}

.league-cup-match.is-mii {
  border: 2px solid #2ee59d;
  border-top: 4px solid #2ee59d;

  box-shadow:
    0 0 0 4px rgba(46, 229, 157, .13),
    0 16px 35px rgba(0, 0, 0, .36);
}

/* Titolo partita */
.league-cup-match-title {
  margin-bottom: 6px;
  color: #153653;
  font-size: 10px;
  letter-spacing: .08em;
}

.league-cup-match-title small {
  padding: 3px 6px;
  border-radius: 999px;
  color: #60778b;
  background: rgba(20, 73, 108, .07);
  font-size: 8px;
}

/* Squadre */
.league-cup-team {
  min-height: 37px;
  grid-template-columns: 27px minmax(0, 1fr) auto;
  gap: 7px;

  padding: 6px 5px;
  border-top: 1px solid rgba(16, 64, 96, .10);
}

.league-cup-team.is-winner {
  margin-inline: -3px;
  padding-inline: 8px;

  border-radius: 8px;

  background: linear-gradient(
    90deg,
    rgba(245, 196, 81, .34),
    rgba(245, 196, 81, .07)
  );

  box-shadow: inset 3px 0 var(--cup-gold);
}

.league-cup-seed {
  width: 27px;
  height: 27px;

  border: 1px solid rgba(255, 255, 255, .32);

  color: #fff;
  background: linear-gradient(
    145deg,
    #0c416c,
    #1389bf
  );

  box-shadow:
    0 4px 9px rgba(6, 54, 88, .25),
    inset 0 1px rgba(255, 255, 255, .30);
}

.league-cup-team.is-winner .league-cup-seed {
  color: #4b3300;
  background: linear-gradient(
    145deg,
    #ffe08a,
    var(--cup-gold)
  );
}

.league-cup-team-name {
  min-width: 0;
  overflow: hidden;

  color: #102c42;
  font-size: 11px;
  font-weight: 850;

  text-overflow: ellipsis;
  white-space: nowrap;
}

.league-cup-score {
  min-width: 24px;
  color: #071e31;
  text-align: right;
  font-size: 14px;
  font-weight: 950;
}

/* Pulsanti dentro le partite */
.league-cup-actions {
  justify-content: flex-end;
  gap: 5px;
  margin-top: 7px;
}

.league-cup-actions button {
  padding: 6px 9px;
  border-radius: 8px;
  font-size: 10px;
}

/* =========================================================
   LINEE DI COLLEGAMENTO
   ========================================================= */

.league-cup-match.connect-right::after,
.league-cup-match.connect-left::before {
  top: 50%;
  width: 29px;
  height: 2px;

  background: linear-gradient(
    90deg,
    rgba(32, 183, 255, .40),
    rgba(245, 196, 81, .85)
  );

  box-shadow: 0 0 8px rgba(32, 183, 255, .25);
}

.league-cup-match.connect-left::before {
  background: linear-gradient(
    90deg,
    rgba(245, 196, 81, .85),
    rgba(32, 183, 255, .40)
  );
}

/* =========================================================
   FINALE
   ========================================================= */

.final-column {
  padding-inline: 4px;
}

.final-column .league-cup-round-matches {
  justify-content: center;
}

.league-cup-trophy {
  margin-bottom: 7px;

  font-size: 68px;

  filter:
    drop-shadow(0 0 9px rgba(245, 196, 81, .50))
    drop-shadow(0 13px 16px rgba(0, 0, 0, .50));

  animation: leagueCupTrophyFloat 3s ease-in-out infinite;
}

@keyframes leagueCupTrophyFloat {
  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-6px);
  }
}

.final-column .league-cup-match {
  border: 2px solid var(--cup-gold);
  border-top: 5px solid var(--cup-gold);

  background:
    radial-gradient(
      circle at 50% 0,
      rgba(245, 196, 81, .20),
      transparent 46%
    ),
    linear-gradient(
      145deg,
      #fffdf5,
      #f2ead0
    );

  box-shadow:
    0 0 0 5px rgba(245, 196, 81, .09),
    0 20px 48px rgba(0, 0, 0, .42),
    0 0 35px rgba(245, 196, 81, .16);
}

.league-cup-champion {
  position: relative;
  overflow: hidden;

  margin-top: 17px;
  padding: 15px 12px;

  border: 1px solid rgba(245, 196, 81, .70);
  border-radius: 14px;

  color: #fff1bd;

  background:
    radial-gradient(
      circle at 50% 0,
      rgba(245, 196, 81, .23),
      transparent 62%
    ),
    linear-gradient(
      145deg,
      rgba(60, 40, 5, .92),
      rgba(20, 16, 8, .96)
    );

  box-shadow:
    0 15px 32px rgba(0, 0, 0, .35),
    inset 0 1px rgba(255, 255, 255, .10);
}

.league-cup-champion::before {
  content: "★";
  position: absolute;
  top: -25px;
  left: 50%;

  color: rgba(245, 196, 81, .14);
  font-size: 95px;

  transform: translateX(-50%);
}

.league-cup-champion span,
.league-cup-champion strong {
  position: relative;
  z-index: 1;
}

.league-cup-champion strong {
  color: #fff5d5;
  font-size: 18px;
}

/* =========================================================
   SCHERMI PIÙ PICCOLI
   ========================================================= */

@media (max-width: 900px) {
  .league-cup-preliminary-grid {
    grid-template-columns: 1fr;
  }

  .league-cup-summary {
    grid-template-columns: 1fr !important;
  }

  .league-cup-scroll {
    padding: 12px 12px 18px;
    border-radius: 20px;
  }

  .league-cup-scroll::before {
    left: 12px;
    font-size: 9px;
  }
}

@media (max-width: 620px) {
  .league-cup-scroll {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .league-cup-bracket {
    width: 1430px;
    min-width: 1430px;

    grid-template-columns:
      190px
      172px
      154px
      210px
      154px
      172px
      190px;

    gap: 22px;
    min-height: 700px;
    padding: 22px 18px;
  }

  .league-cup-round {
    min-height: 645px;
  }

  .league-cup-match.connect-right::after,
  .league-cup-match.connect-left::before {
    width: 23px;
  }

  .league-cup-team-name {
    font-size: 10px;
  }

  .league-cup-trophy {
    font-size: 57px;
  }
}

/* =========================================================
   COPPA DI LEGA — STILE COMPETIZIONE LEGGERO
   ========================================================= */

.league-cup-scroll,
.league-cup-preliminaries,
.league-cup-summary {
  --cup-dark: #061a16;
  --cup-green: #0c5b43;
  --cup-green-light: #16845f;
  --cup-gold: #f1c75b;
  --cup-white: #f8fffb;
  --cup-line: rgba(241, 199, 91, .45);
}

/* Riepilogo e preliminari */
.league-cup-summary .card,
.league-cup-preliminaries {
  border: 1px solid rgba(241, 199, 91, .35);
  background: linear-gradient(135deg, #073326, #0b5c43);
  color: var(--cup-white);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .22);
}

.league-cup-summary .card::before,
.league-cup-summary .card::after,
.league-cup-preliminaries::before {
  display: none !important;
}

.league-cup-summary h3,
.league-cup-summary .metric,
.league-cup-preliminaries h3 {
  color: #fff;
}

.league-cup-summary p {
  color: #cce5db;
}

.league-cup-summary .kicker,
.league-cup-preliminaries .kicker {
  color: var(--cup-gold);
}

.league-cup-preliminary-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

/* Riquadro contenitore */
.league-cup-scroll {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;

  overflow-x: auto !important;
  overflow-y: hidden;

  padding: 14px;
  border: 1px solid rgba(241, 199, 91, .38);
  border-radius: 18px;

  background: #041d17;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .24);

  contain: layout paint;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;

  scrollbar-width: thin;
  scrollbar-color: var(--cup-gold) #0a3428;
}

.league-cup-scroll::before {
  content: "COPPA DI LEGA · FASE A ELIMINAZIONE DIRETTA";
  display: block;
  width: max-content;

  margin-bottom: 13px;
  padding: 6px 11px;

  border: 1px solid rgba(241, 199, 91, .45);
  border-radius: 999px;

  color: #ffe9a8;
  background: #103a2e;

  font-size: 10px;
  font-weight: 900;
  letter-spacing: .1em;
}

.league-cup-scroll::-webkit-scrollbar {
  height: 9px;
}

.league-cup-scroll::-webkit-scrollbar-track {
  background: #0a3428;
  border-radius: 999px;
}

.league-cup-scroll::-webkit-scrollbar-thumb {
  background: var(--cup-gold);
  border-radius: 999px;
}

/* Tabellone */
.league-cup-bracket {
  position: relative;

  width: 1500px;
  min-width: 1500px;
  max-width: none;
  min-height: 720px;

  display: grid;
  grid-template-columns:
    205px
    185px
    165px
    220px
    165px
    185px
    205px;

  gap: 24px;
  align-items: stretch;

  padding: 24px;

  border: 1px solid rgba(255, 255, 255, .11);
  border-radius: 16px;

  background: linear-gradient(
    135deg,
    #031813,
    #07503b 50%,
    #031813
  );

  contain: layout paint;
}

/* Elimina gli elementi grafici costosi */
.league-cup-bracket::before,
.league-cup-bracket::after {
  display: none !important;
}

/* Colonne */
.league-cup-round {
  position: relative;
  min-width: 0;
  min-height: 670px;
}

.league-cup-round > h3 {
  width: fit-content;
  min-width: 78px;

  margin: 0 auto 12px;
  padding: 6px 11px;

  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;

  color: #fff;
  background: #0b5c43;

  text-align: center;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: 10px;
  font-weight: 900;
}

.final-column > h3 {
  color: #3d2b00;
  background: var(--cup-gold);
  border-color: var(--cup-gold);
}

.league-cup-round-matches {
  gap: 17px;
}

/* Partite */
.league-cup-match {
  position: relative;
  overflow: visible;

  padding: 9px;

  border: 1px solid rgba(17, 91, 67, .34);
  border-top: 3px solid var(--cup-green-light);
  border-radius: 11px;

  background: #f8fbfa;
  box-shadow: 0 7px 15px rgba(0, 0, 0, .24);

  /* Niente animazioni o transizioni pesanti */
  transition: none !important;
  backdrop-filter: none !important;
  filter: none !important;
}

.league-cup-match:hover {
  transform: none !important;
  box-shadow: 0 7px 15px rgba(0, 0, 0, .24);
}

.league-cup-match.is-played {
  border-top-color: var(--cup-gold);
}

.league-cup-match.is-mii {
  border: 2px solid #20a873;
  border-top: 4px solid #20a873;
  box-shadow: 0 7px 16px rgba(0, 0, 0, .25);
}

.league-cup-match-title {
  margin-bottom: 5px;
  color: #124432;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .06em;
}

.league-cup-match-title small {
  color: #667b73;
  font-size: 8px;
}

/* Squadre */
.league-cup-team {
  min-height: 36px;
  grid-template-columns: 27px minmax(0, 1fr) auto;
  gap: 7px;

  padding: 6px 4px;
  border-top: 1px solid rgba(12, 74, 54, .12);
}

.league-cup-team.is-winner {
  border-radius: 7px;
  background: #fff4cf;
  box-shadow: inset 3px 0 var(--cup-gold);
}

.league-cup-seed {
  width: 27px;
  height: 27px;

  color: #fff;
  background: #116d50;

  border: 0;
  box-shadow: none;
}

.league-cup-team.is-winner .league-cup-seed {
  color: #3b2a00;
  background: var(--cup-gold);
}

.league-cup-team-name {
  min-width: 0;
  overflow: hidden;

  color: #193d31;
  font-size: 11px;
  font-weight: 850;

  white-space: nowrap;
  text-overflow: ellipsis;
}

.league-cup-score {
  min-width: 23px;
  color: #082a20;
  text-align: right;
  font-size: 14px;
  font-weight: 950;
}

/* Pulsanti */
.league-cup-actions {
  justify-content: flex-end;
  gap: 5px;
  margin-top: 7px;
}

.league-cup-actions button {
  padding: 6px 9px;
  border-radius: 8px;
  font-size: 10px;
  box-shadow: none;
}

/* Collegamenti tra le partite */
.league-cup-match.connect-right::after,
.league-cup-match.connect-left::before {
  width: 25px;
  height: 2px;
  background: var(--cup-line);
  box-shadow: none;
}

/* Finale */
.final-column .league-cup-round-matches {
  justify-content: center;
}

.league-cup-trophy {
  margin-bottom: 8px;
  font-size: 57px;

  animation: none !important;
  filter: none !important;
}

.final-column .league-cup-match {
  border: 2px solid var(--cup-gold);
  border-top: 5px solid var(--cup-gold);
  background: #fff9e7;
  box-shadow: 0 9px 20px rgba(0, 0, 0, .26);
}

.league-cup-champion {
  margin-top: 16px;
  padding: 13px 10px;

  border: 1px solid var(--cup-gold);
  border-radius: 12px;

  color: #ffe9a8;
  background: #3b2b08;

  box-shadow: 0 8px 18px rgba(0, 0, 0, .25);
}

.league-cup-champion::before {
  display: none !important;
}

/* Disattiva effetti costosi dentro tutta la Coppa */
.league-cup-scroll *,
.league-cup-preliminaries *,
.league-cup-summary * {
  backdrop-filter: none !important;
}

/* Riduce il lag dello sfondo sui dispositivi piccoli */
@media (max-width: 900px) {
  body {
    background-attachment: scroll !important;
  }

  .league-cup-preliminary-grid {
    grid-template-columns: 1fr;
  }

  .league-cup-scroll {
    padding: 10px;
    border-radius: 15px;
  }

  .league-cup-bracket {
    width: 1370px;
    min-width: 1370px;
    min-height: 660px;

    grid-template-columns:
      185px
      165px
      145px
      200px
      145px
      165px
      185px;

    gap: 20px;
    padding: 18px;
  }

  .league-cup-round {
    min-height: 610px;
  }

  .league-cup-team-name {
    font-size: 10px;
  }
}

/* =========================================================
   COPPA DI LEGA — STILE TABELLONE UFFICIALE
   ISPIRATO ALLA COPPA ITALIA
   VERSIONE LEGGERA
   ========================================================= */

.league-cup-scroll,
.league-cup-preliminaries,
.league-cup-summary {
  --cup-red: #ef293a;
  --cup-red-dark: #700019;
  --cup-red-deep: #4e0013;
  --cup-green: #74e36d;
  --cup-gold: #ffd158;
  --cup-white: #ffffff;
  --cup-ink: #18241f;
}

/* Disattiva definitivamente gli effetti pesanti */
.league-cup-scroll,
.league-cup-bracket,
.league-cup-match,
.league-cup-preliminaries,
.league-cup-summary .card {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  filter: none !important;
  animation: none !important;
}

/* =========================================================
   RIEPILOGO SUPERIORE
   ========================================================= */

.league-cup-summary {
  margin-bottom: 18px !important;
}

.league-cup-summary .card {
  position: relative;
  overflow: hidden;

  min-height: 122px;

  border: 1px solid rgba(255, 255, 255, .18) !important;
  border-radius: 12px !important;

  color: #fff !important;

  background:
    linear-gradient(
      135deg,
      var(--cup-red-dark),
      #930022
    ) !important;

  box-shadow:
    0 7px 16px rgba(0, 0, 0, .22) !important;
}

.league-cup-summary .card::before {
  content: "";
  display: block !important;

  position: absolute;
  top: 0;
  left: 0;
  right: 0;

  height: 4px;

  background:
    linear-gradient(
      90deg,
      var(--cup-green),
      var(--cup-gold)
    );
}

.league-cup-summary .card::after {
  display: none !important;
}

.league-cup-summary .kicker {
  color: #ffe27e !important;
}

.league-cup-summary h3,
.league-cup-summary .metric {
  color: #fff !important;
}

.league-cup-summary p {
  color: rgba(255, 255, 255, .78) !important;
}

/* =========================================================
   TURNO PRELIMINARE
   ========================================================= */

.league-cup-preliminaries {
  position: relative;
  overflow: hidden;

  margin-bottom: 20px !important;
  padding: 19px !important;

  border: 2px solid var(--cup-green) !important;
  border-radius: 15px !important;

  background:
    linear-gradient(
      105deg,
      var(--cup-green) 0 16px,
      var(--cup-red-dark) 16px 26px,
      transparent 26px
    ),
    linear-gradient(
      255deg,
      var(--cup-green) 0 16px,
      var(--cup-red-dark) 16px 26px,
      transparent 26px
    ),
    var(--cup-red) !important;

  box-shadow:
    0 8px 20px rgba(0, 0, 0, .23) !important;
}

.league-cup-preliminaries::before {
  content: "TURNO PRELIMINARE";
  display: block !important;

  position: absolute;
  top: 14px;
  left: 50%;

  color: rgba(255, 255, 255, .09);

  font-size: clamp(28px, 5vw, 60px);
  font-weight: 950;
  letter-spacing: .08em;

  transform: translateX(-50%);

  white-space: nowrap;
  pointer-events: none;
}

.league-cup-preliminaries .section-heading,
.league-cup-preliminary-grid {
  position: relative;
  z-index: 2;
}

.league-cup-preliminaries .section-heading h3 {
  color: #fff !important;
}

.league-cup-preliminaries .kicker {
  color: #fff3ad !important;
}

.league-cup-preliminaries .badge {
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, .40) !important;
  background: var(--cup-red-dark) !important;
}

.league-cup-preliminary-grid {
  display: grid !important;

  grid-template-columns:
    repeat(2, minmax(280px, 1fr)) !important;

  gap: 16px !important;
}

/* =========================================================
   CONTENITORE DEL TABELLONE
   ========================================================= */

.league-cup-scroll {
  position: relative;
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  overflow-x: auto !important;
  overflow-y: hidden !important;

  padding: 0 0 12px !important;

  border: 2px solid var(--cup-red-dark) !important;
  border-radius: 17px !important;

  background: var(--cup-red) !important;

  box-shadow:
    0 10px 24px rgba(0, 0, 0, .28) !important;

  scrollbar-width: thin;
  scrollbar-color:
    var(--cup-gold)
    var(--cup-red-dark);

  overscroll-behavior-x: contain;
}

/* Titolo grande superiore */
.league-cup-scroll::before {
  content: "COPPA DI LEGA  🏆";

  position: sticky !important;
  left: 0 !important;
  z-index: 10 !important;

  display: flex !important;
  align-items: center;
  justify-content: center;

  box-sizing: border-box;

  width: 100% !important;
  min-height: 78px;

  margin: 0 !important;
  padding: 17px 24px !important;

  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, .22) !important;
  border-radius: 0 !important;

  color: #fff !important;

  background:
    linear-gradient(
      90deg,
      var(--cup-red-dark),
      var(--cup-red),
      var(--cup-red-dark)
    ) !important;

  font-size: clamp(22px, 3.2vw, 38px) !important;
  font-weight: 950 !important;
  letter-spacing: .075em !important;
  text-transform: uppercase !important;

  text-shadow:
    0 3px 8px rgba(70, 0, 15, .40);

  white-space: nowrap;
}

/* Scrollbar */
.league-cup-scroll::-webkit-scrollbar {
  height: 10px;
}

.league-cup-scroll::-webkit-scrollbar-track {
  background: var(--cup-red-dark);
}

.league-cup-scroll::-webkit-scrollbar-thumb {
  border: 2px solid var(--cup-red-dark);
  border-radius: 999px;

  background: var(--cup-gold);
}

/* =========================================================
   SUPERFICIE DEL TABELLONE
   ========================================================= */

.league-cup-bracket {
  position: relative !important;
  isolation: isolate;
  overflow: hidden !important;

  box-sizing: border-box;

  width: 1500px !important;
  min-width: 1500px !important;
  max-width: none !important;
  min-height: 720px !important;

  display: grid !important;

  grid-template-columns:
    205px
    185px
    165px
    220px
    165px
    185px
    205px !important;

  gap: 24px !important;
  align-items: stretch !important;

  margin: 0 !important;
  padding: 25px 24px 28px !important;

  border: 0 !important;
  border-radius: 0 !important;

  /*
    Le due sfumature laterali creano
    le fasce verdi e bordeaux.
  */
  background:
    linear-gradient(
      103deg,
      var(--cup-green) 0 22px,
      var(--cup-red-dark) 22px 34px,
      transparent 34px
    ),
    linear-gradient(
      257deg,
      var(--cup-green) 0 22px,
      var(--cup-red-dark) 22px 34px,
      transparent 34px
    ),
    var(--cup-red) !important;

  box-shadow: none !important;
}

/*
  Sagoma scura centrale:
  comprende semifinali e finale.
*/
.league-cup-bracket::before {
  content: "" !important;
  display: block !important;

  position: absolute !important;
  z-index: 0 !important;

  top: 78px !important;
  bottom: 22px !important;
  left: 50% !important;

  width: 650px !important;
  height: auto !important;

  background:
    linear-gradient(
      180deg,
      var(--cup-red-dark),
      var(--cup-red-deep)
    ) !important;

  clip-path:
    polygon(
      27% 0,
      73% 0,
      100% 70%,
      50% 100%,
      0 70%
    );

  transform: translateX(-50%) !important;

  pointer-events: none;
}

/* Logo circolare al centro in alto */
.league-cup-bracket::after {
  content: "🏆" !important;
  display: grid !important;
  place-items: center;

  position: absolute !important;
  z-index: 1 !important;

  top: 32px !important;
  left: 50% !important;

  width: 72px !important;
  height: 72px !important;

  border: 7px solid #fff !important;
  border-radius: 50% !important;

  color: #fff !important;
  background: var(--cup-red-dark) !important;

  font-size: 29px !important;

  box-shadow:
    0 0 0 5px var(--cup-green),
    0 5px 12px rgba(0, 0, 0, .25) !important;

  transform: translateX(-50%) !important;

  pointer-events: none;
}

/* Tutte le colonne davanti allo sfondo */
.league-cup-bracket > * {
  position: relative;
  z-index: 2;
}

/* =========================================================
   TITOLI DEI TURNI
   ========================================================= */

.league-cup-round {
  min-width: 0 !important;
  min-height: 665px !important;

  display: flex !important;
  flex-direction: column !important;
}

.league-cup-round > h3 {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 32px !important;

  margin: 0 0 12px !important;
  padding: 5px 3px !important;

  border: 0 !important;
  border-radius: 0 !important;

  color: #fff !important;
  background: transparent !important;

  text-align: center !important;
  text-transform: uppercase !important;

  font-size: 10px !important;
  font-weight: 950 !important;
  letter-spacing: .08em !important;

  text-shadow:
    0 2px 5px rgba(88, 0, 20, .35);
}

/* Semifinali e finale sopra la sagoma scura */
.semifinals > h3 {
  color: #fff !important;
}

.final-column > h3 {
  width: fit-content !important;

  margin-inline: auto !important;
  padding: 6px 14px !important;

  border-radius: 999px !important;

  color: var(--cup-red-dark) !important;
  background: var(--cup-gold) !important;

  text-shadow: none !important;
}

.league-cup-round-matches {
  flex: 1 !important;

  display: flex !important;
  flex-direction: column !important;
  justify-content: space-around !important;

  gap: 17px !important;
}

/* =========================================================
   SCHEDE DELLE PARTITE
   ========================================================= */

.league-cup-match {
  position: relative !important;
  z-index: 3 !important;
  overflow: visible !important;

  padding: 8px !important;

  border: 1px solid rgba(90, 0, 20, .27) !important;
  border-radius: 5px !important;

  background: #fff !important;

  box-shadow:
    0 5px 10px rgba(76, 0, 17, .22) !important;

  transition: none !important;
}

.league-cup-match:hover {
  transform: none !important;

  box-shadow:
    0 5px 10px rgba(76, 0, 17, .22) !important;
}

.league-cup-match.is-played {
  border-color: var(--cup-gold) !important;
}

.league-cup-match.is-mii {
  border:
    2px solid var(--cup-green) !important;

  box-shadow:
    0 0 0 2px rgba(116, 227, 109, .22),
    0 5px 10px rgba(76, 0, 17, .22) !important;
}

.league-cup-match-title {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;

  gap: 6px !important;

  margin-bottom: 5px !important;

  color: var(--cup-red-dark) !important;

  font-size: 9px !important;
  font-weight: 950 !important;
  letter-spacing: .045em !important;
}

.league-cup-match-title small {
  color: #7e8782 !important;

  font-size: 7px !important;
  font-weight: 800 !important;
}

/* Squadre */
.league-cup-team {
  display: grid !important;

  grid-template-columns:
    25px minmax(0, 1fr) auto !important;

  gap: 6px !important;
  align-items: center !important;

  min-height: 34px !important;

  padding: 5px 4px !important;

  border-top:
    1px solid rgba(91, 0, 20, .10) !important;
}

.league-cup-team.is-winner {
  border-radius: 3px !important;

  background:
    rgba(255, 209, 88, .25) !important;

  box-shadow:
    inset 3px 0 var(--cup-gold) !important;
}

.league-cup-seed {
  width: 25px !important;
  height: 25px !important;

  display: grid !important;
  place-items: center !important;

  border: 0 !important;
  border-radius: 50% !important;

  color: #fff !important;
  background: var(--cup-red-dark) !important;

  font-size: 10px !important;
  font-weight: 950 !important;

  box-shadow: none !important;
}

.league-cup-team.is-winner .league-cup-seed {
  color: #4a3000 !important;
  background: var(--cup-gold) !important;
}

.league-cup-team-name {
  min-width: 0 !important;
  overflow: hidden !important;

  color: var(--cup-ink) !important;

  font-size: 10px !important;
  font-weight: 850 !important;

  white-space: nowrap !important;
  text-overflow: ellipsis !important;
}

.league-cup-score {
  min-width: 20px !important;

  color: var(--cup-red-dark) !important;

  text-align: right !important;

  font-size: 13px !important;
  font-weight: 950 !important;
}

/* Pulsanti */
.league-cup-actions {
  display: flex !important;
  justify-content: flex-end !important;

  gap: 4px !important;

  margin-top: 6px !important;
}

.league-cup-actions button {
  padding: 5px 7px !important;

  border-radius: 5px !important;

  font-size: 9px !important;

  box-shadow: none !important;
}

.league-cup-actions button:not(.secondary) {
  color: var(--cup-red-dark) !important;
  background: var(--cup-gold) !important;
}

.league-cup-actions button.secondary {
  color: #fff !important;
  background: var(--cup-red-dark) !important;
}

/* =========================================================
   LINEE DEL TABELLONE
   ========================================================= */

.league-cup-match.connect-right::after,
.league-cup-match.connect-left::before {
  content: "" !important;

  position: absolute !important;
  top: 50% !important;

  width: 25px !important;
  height: 2px !important;

  background:
    rgba(255, 255, 255, .78) !important;

  box-shadow: none !important;
}

.league-cup-match.connect-right::after {
  left: 100% !important;
}

.league-cup-match.connect-left::before {
  right: 100% !important;
}

/* =========================================================
   FINALE
   ========================================================= */

.final-column {
  padding-top: 74px !important;
}

.final-column .league-cup-round-matches {
  justify-content: center !important;
}

.league-cup-trophy {
  display: none !important;
}

.final-column .league-cup-match {
  border:
    3px solid var(--cup-gold) !important;

  background:
    #fffdf3 !important;

  box-shadow:
    0 7px 14px rgba(45, 0, 10, .35) !important;
}

.league-cup-champion {
  margin-top: 14px !important;
  padding: 12px 10px !important;

  border:
    2px solid var(--cup-gold) !important;
  border-radius: 5px !important;

  color: #fff !important;
  background:
    var(--cup-red-dark) !important;

  box-shadow:
    0 6px 12px rgba(0, 0, 0, .22) !important;
}

.league-cup-champion::before {
  display: none !important;
}

.league-cup-champion span {
  color: #ffe387 !important;
}

.league-cup-champion strong {
  color: #fff !important;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 900px) {
  .league-cup-preliminary-grid {
    grid-template-columns: 1fr !important;
  }

  .league-cup-scroll::before {
    min-height: 66px;

    font-size: 22px !important;
  }

  .league-cup-bracket {
    width: 1370px !important;
    min-width: 1370px !important;

    grid-template-columns:
      185px
      165px
      145px
      200px
      145px
      165px
      185px !important;

    gap: 20px !important;

    padding-inline: 20px !important;
  }

  .league-cup-bracket::before {
    width: 575px !important;
  }

  .league-cup-team-name {
    font-size: 9px !important;
  }
}

/* Tendina della sezione Squadre */
#teamSelect {
  position: relative;
  z-index: 10;

  pointer-events: auto !important;
  user-select: auto !important;
  touch-action: manipulation !important;

  cursor: pointer;
}

/* =========================================================
   MONDIALE MII
   ========================================================= */

.world-cup-navigation,
.world-cup-round-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.world-cup-banner {
  position: relative;
  overflow: hidden;
  margin-bottom: 18px;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      #34135f,
      #702b95 55%,
      #ad326d
    );
  border-color: rgba(255,255,255,.22);
}

.world-cup-banner::after {
  content: "🏆";
  position: absolute;
  right: 24px;
  top: 12px;
  font-size: 76px;
  opacity: .16;
}

.world-cup-banner h3 {
  color: #fff;
  font-size: 28px;
  margin-bottom: 7px;
}

.world-cup-banner p {
  max-width: 620px;
  color: rgba(255,255,255,.82);
}

.world-cup-banner .kicker {
  color: #ffd767;
}

.world-cup-round-tabs {
  margin-bottom: 16px;
}

.world-cup-matchday {
  margin-bottom: 18px;
}

.world-cup-fixture-list {
  display: grid;
  gap: 9px;
}

.world-cup-fixture {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    76px
    minmax(0, 1fr)
    auto;
  gap: 10px;
  align-items: center;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
}

.world-cup-fixture.is-mii {
  border: 2px solid #7d35a8;
  background: #faf5ff;
}

.world-cup-fixture.is-played {
  background: #f3f7f5;
}

.world-cup-home {
  text-align: right;
  font-weight: 800;
}

.world-cup-away {
  font-weight: 800;
}

.world-cup-score {
  color: #51216e;
  text-align: center;
  font-size: 16px;
  font-weight: 950;
}

.world-cup-fixture-action {
  min-width: 74px;
  text-align: right;
}

.world-cup-groups-grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.world-cup-group-card {
  padding: 14px;
}

.world-cup-group-title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 11px;
  color: #51216e;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .1em;
}

.world-cup-group-title strong {
  width: 35px;
  height: 35px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #6f2c91;
  font-size: 18px;
}

.world-cup-table {
  min-width: 480px;
}

.world-cup-qualified {
  background: rgba(46, 125, 50, .11);
  box-shadow: inset 4px 0 #2e7d32;
}

.world-cup-knockout-grid {
  display: grid;
  grid-template-columns:
    repeat(4, minmax(260px, 1fr));
  gap: 16px;
  overflow-x: auto;
  padding-bottom: 10px;
}

.world-cup-stage {
  min-width: 260px;
}

.world-cup-stage h3 {
  padding-bottom: 10px;
  border-bottom: 3px solid #6f2c91;
  color: #51216e;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.world-cup-stage-final h3 {
  border-bottom-color: #e2b631;
}

.world-cup-stage-matches {
  display: flex;
  min-height: 570px;
  flex-direction: column;
  justify-content: space-around;
  gap: 15px;
}

.world-cup-stage .world-cup-fixture {
  grid-template-columns: 1fr 56px 1fr;
}

.world-cup-stage .world-cup-fixture-action {
  grid-column: 1 / -1;
  text-align: center;
}

.world-cup-champion-card {
  margin-bottom: 18px;
  padding: 28px;
  color: #fff;
  text-align: center;
  background:
    linear-gradient(
      135deg,
      #684a08,
      #d39a19,
      #684a08
    );
}

.world-cup-champion-card span {
  color: #fff0b4;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .15em;
}

.world-cup-champion-card h2 {
  margin: 8px 0 0;
  color: #fff;
  font-size: 34px;
}

.world-cup-start-card {
  max-width: 760px;
  margin: 40px auto;
  padding: 42px 30px;
  text-align: center;
  background:
    linear-gradient(
      145deg,
      #fff,
      #f4eaf9
    );
}

.world-cup-start-card h2 {
  margin: 10px 0;
  font-size: 32px;
}

.world-cup-start-card p {
  max-width: 560px;
  margin: 0 auto 22px;
  color: var(--muted);
}

.world-cup-start-trophy {
  margin-bottom: 10px;
  font-size: 74px;
}

@media (max-width: 850px) {
  .world-cup-groups-grid {
    grid-template-columns: 1fr;
  }

  .world-cup-fixture {
    grid-template-columns:
      minmax(0, 1fr)
      56px
      minmax(0, 1fr);
  }

  .world-cup-fixture-action {
    grid-column: 1 / -1;
    text-align: center;
  }

  .world-cup-knockout-grid {
    grid-template-columns:
      repeat(4, 260px);
  }
}

/* =========================================================
   MONDIALE — TROFEO REALE E TABELLONE FASE FINALE
   ========================================================= */

.world-cup-start-trophy {
  width: 150px;
  height: 190px;

  margin: 0 auto 18px;

  overflow: hidden;

  border: 4px solid #d9aa37;
  border-radius: 75px 75px 24px 24px;

  background: #08182b;

  box-shadow:
    0 10px 25px rgba(0, 0, 0, .28);
}

.world-cup-start-trophy img {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;
  object-position: center;
}

/* Foto della coppa anche nel banner dei gironi */
.world-cup-banner::after {
  content: "" !important;

  width: 118px;
  height: 142px;

  top: 8px;
  right: 22px;

  border: 3px solid rgba(255, 215, 103, .70);
  border-radius: 60px 60px 18px 18px;

  background:
    url("./assets/Coppa-del-Mondo-calcio.jpg")
    center / cover
    no-repeat !important;

  opacity: .30 !important;
}

/* Contenitore generale */
.wc-knockout-shell {
  overflow: hidden;

  border: 1px solid rgba(92, 177, 255, .35);
  border-radius: 18px;

  background: #06162c;

  box-shadow:
    0 16px 36px rgba(0, 0, 0, .32);
}

.wc-knockout-heading {
  padding: 18px 20px;

  color: #fff;
  text-align: center;

  background:
    linear-gradient(
      90deg,
      #061329,
      #113e6e,
      #061329
    );

  border-bottom:
    1px solid rgba(255, 255, 255, .15);
}

.wc-knockout-heading span {
  color: #f5c759;

  font-size: 10px;
  font-weight: 950;
  letter-spacing: .18em;
}

.wc-knockout-heading h2 {
  margin: 4px 0 0;

  color: #fff;

  font-size: 27px;
  letter-spacing: .08em;
}

/* Scorrimento orizzontale */
.wc-knockout-scroll {
  width: 100%;
  max-width: 100%;

  overflow-x: auto;
  overflow-y: hidden;

  padding-bottom: 12px;

  scrollbar-width: thin;
  scrollbar-color:
    #e5b83e
    #092443;
}

.wc-knockout-scroll::-webkit-scrollbar {
  height: 10px;
}

.wc-knockout-scroll::-webkit-scrollbar-track {
  background: #092443;
}

.wc-knockout-scroll::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #e5b83e;
}

/* Superficie del tabellone */
.wc-knockout-board {
  position: relative;

  width: 1800px;
  min-width: 1800px;
  height: 760px;

  overflow: hidden;

  background:
    radial-gradient(
      circle at 50% 8%,
      rgba(67, 184, 255, .40),
      transparent 24%
    ),
    radial-gradient(
      circle at 50% 55%,
      rgba(15, 99, 158, .35),
      transparent 44%
    ),
    linear-gradient(
      135deg,
      #020b1b,
      #0a315a 48%,
      #020b1b
    );
}

/* Disegno leggero sullo sfondo */
.wc-knockout-board::before {
  content: "";

  position: absolute;
  inset: 0;

  pointer-events: none;

  background:
    repeating-radial-gradient(
      ellipse at 50% 55%,
      transparent 0 65px,
      rgba(255,255,255,.025) 66px 68px
    );

  opacity: .85;
}

/* Etichette dei turni */
.wc-stage-label {
  position: absolute;
  z-index: 5;

  top: 22px;

  width: 200px;

  padding: 7px 5px;

  color: #dcefff;
  text-align: center;

  font-size: 10px;
  font-weight: 950;
  letter-spacing: .13em;

  border: 1px solid rgba(100, 191, 255, .42);
  border-radius: 999px;

  background: #0a3157;
}

.wc-stage-label.final {
  color: #342300;
  border-color: #f2c755;
  background: #f2c755;
}

/* Foto centrale della coppa */
.wc-bracket-trophy {
  position: absolute;
  z-index: 4;

  top: 67px;
  left: 50%;

  width: 116px;

  text-align: center;

  transform: translateX(-50%);
}

.wc-bracket-trophy img {
  width: 92px;
  height: 122px;

  display: block;

  margin: 0 auto 7px;

  object-fit: cover;
  object-position: center;

  border: 4px solid #f3c751;
  border-radius: 50px 50px 18px 18px;

  box-shadow:
    0 9px 22px rgba(0, 0, 0, .45);
}

.wc-bracket-trophy span {
  color: #ffe49a;

  font-size: 9px;
  font-weight: 950;
  letter-spacing: .13em;
}

/* Linee del tabellone */
.wc-bracket-lines {
  position: absolute;
  z-index: 1;

  inset: 0;

  width: 1800px;
  height: 760px;

  pointer-events: none;
}

.wc-bracket-lines path {
  fill: none;

  stroke: rgba(153, 213, 255, .78);
  stroke-width: 2;

  vector-effect: non-scaling-stroke;
}

/* Schede delle partite */
.wc-bracket-match {
  position: absolute;
  z-index: 3;

  box-sizing: border-box;

  width: 200px;
  min-height: 108px;

  padding: 8px;

  border: 1px solid rgba(96, 186, 241, .60);
  border-radius: 8px;

  color: #eef8ff;

  background:
    linear-gradient(
      145deg,
      #102d4e,
      #071b34
    );

  box-shadow:
    0 7px 15px rgba(0, 0, 0, .35);
}

.wc-bracket-match.is-mii {
  border: 2px solid #f3cc58;

  box-shadow:
    0 0 0 3px rgba(243, 204, 88, .13),
    0 7px 15px rgba(0, 0, 0, .35);
}

.wc-bracket-match.final-match {
  border: 3px solid #f3c751;

  background:
    linear-gradient(
      145deg,
      #5a3d07,
      #1f1808
    );
}

.wc-bracket-match-header {
  display: flex;
  justify-content: space-between;
  align-items: center;

  gap: 7px;

  margin-bottom: 5px;
  padding-bottom: 5px;

  border-bottom:
    1px solid rgba(255, 255, 255, .15);

  color: #8fd2ff;

  font-size: 8px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.final-match .wc-bracket-match-header {
  color: #ffe293;
}

.wc-bracket-match-header strong {
  color: #fff;

  font-size: 12px;
}

.wc-bracket-team {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    24px;

  gap: 6px;
  align-items: center;

  min-height: 27px;

  padding: 4px 6px;

  border-radius: 5px;

  font-size: 10px;
  font-weight: 800;
}

.wc-bracket-team span {
  overflow: hidden;

  white-space: nowrap;
  text-overflow: ellipsis;
}

.wc-bracket-team strong {
  text-align: right;

  font-size: 12px;
}

.wc-bracket-team.is-winner {
  color: #332400;

  background: #f3c751;
}

.wc-bracket-action {
  display: flex;
  justify-content: flex-end;

  min-height: 23px;

  margin-top: 5px;
}

.wc-bracket-action button {
  padding: 4px 7px;

  border-radius: 5px;

  font-size: 8px;

  box-shadow: none;
}

.wc-bracket-status {
  align-self: center;

  color: #8ea9bc;

  font-size: 7px;
  font-weight: 850;
  text-transform: uppercase;
}

.wc-bracket-status.completed {
  color: #77e0a5;
}

/* Campione */
.world-cup-champion-card {
  border: 2px solid #f1c75b;

  background:
    linear-gradient(
      135deg,
      #493206,
      #c78e14,
      #493206
    );
}

.world-cup-champion-card::before {
  content: "";

  display: block;

  width: 80px;
  height: 105px;

  margin: 0 auto 10px;

  border: 3px solid #ffe18a;
  border-radius: 45px 45px 15px 15px;

  background:
    url("./assets/Coppa-del-Mondo-calcio.jpg")
    center / cover
    no-repeat;
}

@media (max-width: 800px) {
  .wc-knockout-heading h2 {
    font-size: 21px;
  }

  .wc-knockout-board {
    height: 760px;
  }

  .world-cup-banner::after {
    width: 88px;
    height: 112px;
    right: 12px;
  }

  .world-cup-banner {
    padding-right: 115px;
  }
}

#worldcup-img {
  width: 90%;
  height: 90%;
  object-fit: contain;
}

#cup-container {
  display: flex;
  justify-content: center;
  align-items: center;
 }

/* Coppa nella schermata iniziale del Mondiale */
.world-cup-start-trophy {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto 20px;
}

.world-cup-start-trophy img,
#worldcup-img {
  display: block !important;
  width: 135px !important;
  height: 175px !important;
  max-width: 135px !important;

  object-fit: contain;
  object-position: center;

  opacity: 1 !important;
  visibility: visible !important;
}

/* Coppa al centro del tabellone */
.wc-bracket-trophy img {
  display: block !important;
  width: 65px !important;
  height: 88px !important;

  margin: 0 auto 6px;

  object-fit: contain;
  object-position: center;

  opacity: 1 !important;
  visibility: visible !important;
}

/* =========================================================
   COMPETIZIONI IMPORTANTI — LOOK PREMIUM
   ========================================================= */

.competition-start-shell {
  display: flex;
  justify-content: center;
  margin: 28px 0 18px;
}

.competition-start-card {
  width: min(920px, 100%);
  padding: 38px 34px;
  border-radius: 28px;
  text-align: center;
  background:
    linear-gradient(
      145deg,
      rgba(255,255,255,.97),
      rgba(248,245,250,.94)
    );
  border: 1px solid rgba(255,255,255,.45);
  box-shadow:
    0 24px 50px rgba(0, 0, 0, .18);
  backdrop-filter: blur(6px);
}

.competition-start-emblem {
  width: 130px;
  height: 130px;
  margin: 0 auto 18px;
  border-radius: 30px;
  display: grid;
  place-items: center;
  background:
    linear-gradient(
      145deg,
      #072041,
      #0a2e5d
    );
  border: 4px solid #d9a81f;
  box-shadow:
    0 10px 24px rgba(0,0,0,.22);
}

.competition-start-emblem span {
  font-size: 58px;
  line-height: 1;
}

.competition-start-kicker {
  display: inline-block;
  margin-bottom: 10px;
  color: #0b8154;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .16em;
}

.competition-start-title {
  margin: 0 0 14px;
  color: #103a32;
  font-size: 30px;
  line-height: 1.1;
}

.competition-start-text {
  max-width: 720px;
  margin: 0 auto 24px;
  color: #49625e;
  font-size: 18px;
  line-height: 1.55;
}

.competition-start-actions {
  margin-top: 18px;
}

.competition-main-button {
  min-width: 320px;
  padding: 15px 28px;
  border: 0;
  border-radius: 16px;
  color: #fff;
  font-size: 18px;
  font-weight: 900;
  background:
    linear-gradient(
      90deg,
      #d5c500,
      #f0dc00
    );
  box-shadow:
    0 10px 18px rgba(212, 191, 9, .28);
}

.competition-main-button:hover {
  transform: translateY(-1px);
}

/* COPPA DI LEGA: schermata iniziale */
.competition-start-shell-cup .competition-start-card {
  background:
    linear-gradient(
      145deg,
      rgba(255,255,255,.96),
      rgba(250,244,244,.94)
    );
}

.cup-start-emblem {
  background:
    linear-gradient(
      145deg,
      #5a0000,
      #b41010
    );
  border-color: #f0c640;
}

.cup-format-grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
  text-align: left;
}

.cup-format-item {
  padding: 14px 16px;
  border-radius: 14px;
  color: #5b1212;
  font-weight: 850;
  background:
    linear-gradient(
      145deg,
      #fff,
      #f8efef
    );
  border: 1px solid rgba(180, 16, 16, .16);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.7);
}

/* HERO competizioni */
.competition-hero {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 24px 28px;
  margin: 0 0 18px;
  border-radius: 24px;
  color: #fff;
  overflow: hidden;
  box-shadow:
    0 18px 34px rgba(0,0,0,.18);
}

.competition-hero-content {
  max-width: 760px;
}

.competition-hero-kicker {
  display: inline-block;
  margin-bottom: 8px;
  color: rgba(255,255,255,.82);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
}

.competition-hero h2 {
  margin: 0 0 8px;
  color: #fff;
  font-size: 34px;
}

.competition-hero p {
  margin: 0;
  color: rgba(255,255,255,.85);
  font-size: 17px;
  line-height: 1.45;
}

.competition-hero-mark {
  flex: 0 0 auto;
  font-size: 62px;
  opacity: .92;
}

/* Coppa */
.competition-hero-cup {
  background:
    linear-gradient(
      135deg,
      #6d0000,
      #c01515 55%,
      #7d0000
    );
}

/* Mondiale: se vuoi uniformarlo meglio */
.world-cup-banner {
  border-radius: 24px !important;
  box-shadow:
    0 18px 34px rgba(0,0,0,.18);
}

/* Card rosse della Coppa */
.league-cup-summary,
.cup-summary-card,
.league-cup-stat-card {
  border-radius: 20px !important;
  box-shadow:
    0 14px 28px rgba(0,0,0,.18);
}

/* Se hai card rosse con queste classi generiche */
.cup-overview-grid {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.cup-overview-card {
  padding: 18px;
  border-radius: 20px;
  color: #fff;
  background:
    linear-gradient(
      145deg,
      #8f0303,
      #cc1212
    );
  box-shadow:
    0 14px 28px rgba(0,0,0,.18);
}

.cup-overview-card span {
  display: block;
  margin-bottom: 8px;
  color: rgba(255,255,255,.78);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
}

.cup-overview-card strong {
  display: block;
  font-size: 28px;
  line-height: 1.1;
}

.cup-overview-card small {
  display: block;
  margin-top: 8px;
  color: rgba(255,255,255,.84);
  font-size: 14px;
}

/* Responsive */
@media (max-width: 850px) {
  .competition-start-card {
    padding: 26px 18px;
    border-radius: 22px;
  }

  .competition-start-title {
    font-size: 24px;
  }

  .competition-start-text {
    font-size: 16px;
  }

  .cup-format-grid {
    grid-template-columns: 1fr;
  }

  .competition-hero {
    flex-direction: column;
    align-items: flex-start;
  }

  .competition-hero h2 {
    font-size: 28px;
  }
}

/* =========================================================
   COPPA DI LEGA — SCHERMATA PREMIUM
   ========================================================= */

.league-cup-start-card {
  position: relative;
  width: min(920px, 100%);
  margin: 28px auto 0;
  overflow: hidden;
  border: 1px solid rgba(255, 219, 97, .65);
  border-radius: 30px;
  background:
    radial-gradient(
      circle at 50% 0,
      rgba(255, 220, 86, .26),
      transparent 38%
    ),
    linear-gradient(
      145deg,
      rgba(116, 0, 0, .97),
      rgba(176, 8, 8, .97) 52%,
      rgba(76, 0, 0, .98)
    );
  box-shadow:
    0 30px 70px rgba(0, 0, 0, .36),
    inset 0 1px rgba(255, 255, 255, .18);
}

.league-cup-start-decoration {
  position: absolute;
  width: 460px;
  height: 460px;
  top: -300px;
  left: 50%;
  border: 2px solid rgba(255, 220, 105, .22);
  border-radius: 50%;
  transform: translateX(-50%);
}

.league-cup-start-content {
  position: relative;
  z-index: 1;
  padding: 38px clamp(20px, 5vw, 60px);
  text-align: center;
}

.league-cup-start-trophy {
  width: 150px;
  height: 180px;
  margin: 0 auto 18px;
  padding: 8px;
  overflow: hidden;
  border: 4px solid #e8b92e;
  border-radius: 28px;
  background: #fff;
  box-shadow:
    0 18px 38px rgba(0, 0, 0, .32),
    0 0 35px rgba(255, 207, 56, .22);
}

.league-cup-start-trophy img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 19px;
}

.league-cup-start-kicker {
  display: block;
  margin-bottom: 9px;
  color: #ffdb68;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .18em;
}

.league-cup-start-content h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(27px, 4vw, 40px);
  line-height: 1.08;
  text-shadow: 0 4px 18px rgba(0, 0, 0, .25);
}

.league-cup-start-description {
  max-width: 690px;
  margin: 16px auto 26px;
  color: rgba(255, 255, 255, .84);
  font-size: 16px;
  line-height: 1.58;
}

.league-cup-start-format {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
  margin-bottom: 25px;
  text-align: left;
}

.league-cup-start-format > div {
  display: grid;
  gap: 4px;
  padding: 13px 15px;
  border: 1px solid rgba(255, 221, 104, .22);
  border-radius: 14px;
  background: rgba(255, 255, 255, .10);
  backdrop-filter: blur(7px);
}

.league-cup-start-format span {
  color: #f6c845;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .12em;
}

.league-cup-start-format strong {
  color: #fff;
  font-size: 13px;
}

.league-cup-start-button {
  min-width: min(420px, 100%);
  padding: 15px 24px;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 15px;
  color: #4c2400;
  font-size: 16px;
  font-weight: 950;
  background:
    linear-gradient(
      135deg,
      #f9dc65,
      #e6ae19
    );
  box-shadow:
    0 13px 28px rgba(0, 0, 0, .25);
}

.league-cup-start-button:hover {
  filter: brightness(1.06);
  transform: translateY(-2px);
}

/* Coppa al centro del tabellone */

.league-cup-trophy {
  width: 82px;
  height: 102px;
  margin: 0 auto 12px;
  padding: 5px;
  overflow: hidden;
  display: block;
  border: 3px solid #e1ae26;
  border-radius: 18px;
  background: #fff;
  box-shadow:
    0 11px 24px rgba(0, 0, 0, .25);
}

.league-cup-trophy img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 11px;
}

@media (max-width: 700px) {
  .league-cup-start-content {
    padding: 28px 17px;
  }

  .league-cup-start-format {
    grid-template-columns: 1fr;
  }

  .league-cup-start-trophy {
    width: 125px;
    height: 150px;
  }
}

.competition-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  align-items: center;
  gap: 24px;

  padding: 26px 30px;
  margin: 0 0 18px;

  border-radius: 24px;
  color: #fff;
  overflow: hidden;

  box-shadow: 0 18px 34px rgba(0, 0, 0, .18);
}

.competition-hero-content {
  max-width: 520px;
}

.competition-hero-kicker {
  display: inline-block;
  margin-bottom: 8px;
  color: rgba(255,255,255,.82);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
}

.competition-hero h2 {
  margin: 0 0 8px;
  color: #fff;
  font-size: 34px;
  line-height: 1.08;
}

.competition-hero p {
  margin: 0;
  color: rgba(255,255,255,.85);
  font-size: 15px;
  line-height: 1.45;
}

.competition-hero-mark {
  display: flex;
  justify-content: center;
  align-items: center;

  width: 220px;
  min-height: 220px;
  margin-left: auto;
}

.competition-hero-mark img {
  display: block;

  width: 150px;
  height: 190px;

  object-fit: contain;

  border-radius: 18px;
  background: #fff;
  border: 3px solid #e4b52e;

  box-shadow: 0 12px 26px rgba(0, 0, 0, .28);
}

.league-cup-trophy {
  width: 110px;
  height: 138px;

  margin: 0 auto -18px;
  padding: 6px;

  overflow: hidden;
  display: block;
  position: relative;
  z-index: 2;

  border: 3px solid #e1ae26;
  border-radius: 20px;
  background: #fff;

  box-shadow: 0 11px 24px rgba(0, 0, 0, .25);
}

.league-cup-trophy img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 12px;
}

@media (max-width: 700px) {
  .league-cup-start-content {
    padding: 28px 17px;
  }

  .league-cup-start-format {
    grid-template-columns: 1fr;
  }

  .league-cup-start-trophy {
    width: 125px;
    height: 150px;
  }

  .competition-hero {
    grid-template-columns: 1fr;
    text-align: left;
  }

  .competition-hero-mark {
    width: 100%;
    min-height: auto;
    justify-content: flex-start;
  }

  .competition-hero-mark img {
    width: 120px;
    height: 152px;
  }

  .league-cup-trophy {
    width: 92px;
    height: 118px;
    margin: 0 auto -14px;
  }
}

/* =========================================================
   FORMAZIONE — MODALITÀ PRESTAZIONI
   ========================================================= */

/* Lo sfondo fisso è molto pesante durante lo scroll */
body.formation-performance,
body.formation-performance.has-custom-bg {
  background-attachment: scroll !important;
}

body.formation-performance::before {
  display: none !important;
}

/* Isolamento grafico della pagina */
body.formation-performance
.formation-layout {
  contain: layout paint style;
}

body.formation-performance
.formation-pitch {
  contain: layout paint style;
  box-shadow:
    inset 0 0 0 5px
    rgba(255, 255, 255, .08) !important;
}

/* Carte più leggere, mantenendo l'aspetto */
body.formation-performance
.formation-player-card {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  filter: none !important;

  box-shadow:
    0 3px 8px
    rgba(0, 0, 0, .20) !important;

  transition:
    opacity .08s ease,
    border-color .08s ease !important;

  contain: layout paint style;
}

body.formation-performance
.formation-player-card:hover {
  transform: none !important;
}

body.formation-performance
.pitch-slot {
  box-shadow:
    0 3px 8px
    rgba(0, 0, 0, .18) !important;
}

body.formation-performance
.formation-bench-card {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  filter: none !important;

  box-shadow:
    0 5px 14px
    rgba(0, 0, 0, .15) !important;
}

/*
 * Le riserve fuori dalla parte visibile
 * non vengono disegnate continuamente.
 */
body.formation-performance
.formation-bench-slot {
  content-visibility: auto;
  contain-intrinsic-size: 68px;
  contain: layout paint style;
}

body.formation-performance
.formation-player-photo {
  contain: strict;
}

body.formation-performance
.formation-player-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translateZ(0);
}

/* Anteprima leggera usata durante il trascinamento */
.formation-drag-ghost {
  position: fixed;
  left: -10000px;
  top: -10000px;

  min-width: 140px;
  padding: 9px 14px;

  border: 2px solid #f1d36d;
  border-radius: 10px;

  color: #fff;
  background: #075238;

  box-shadow:
    0 5px 12px
    rgba(0, 0, 0, .25);

  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

/* =========================================================
   CHAMPIONS · EUROPA · CONFERENCE
   GRAFICA PREMIUM LEGGERA
   ========================================================= */

.europe-start-card,
.europe-hero,
.europe-round-card,
.europe-group-card,
.europe-knockout-shell,
.europe-champion-card,
.europe-navigation,
.europe-groups-grid {
  --europe-dark: #071b35;
  --europe-main: #17365d;
  --europe-accent: #82b6ff;
  --europe-bright: #fff;
  --europe-soft: rgba(130, 182, 255, .16);
  --europe-line: rgba(130, 182, 255, .40);
  --europe-card: #f7f9fd;
  --europe-card-2: #eaf0f8;
  --europe-ink: #10253f;
}

/* CHAMPIONS */

.is-champions {
  --europe-dark: #030929;
  --europe-main: #162d8c;
  --europe-accent: #77b5ff;
  --europe-bright: #fff;
  --europe-soft: rgba(74, 119, 255, .20);
  --europe-line: rgba(119, 181, 255, .46);
  --europe-card: #f5f7ff;
  --europe-card-2: #e6ecff;
  --europe-ink: #101a4c;
}

/* EUROPA LEAGUE */

.is-europa {
  --europe-dark: #090807;
  --europe-main: #4b1b00;
  --europe-accent: #ff6900;
  --europe-bright: #fff4e9;
  --europe-soft: rgba(255, 105, 0, .18);
  --europe-line: rgba(255, 105, 0, .50);
  --europe-card: #fff8f1;
  --europe-card-2: #ffe8d5;
  --europe-ink: #4c2105;
}

/* CONFERENCE LEAGUE */

.is-conference {
  --europe-dark: #06100b;
  --europe-main: #075a3c;
  --europe-accent: #20df89;
  --europe-bright: #edfff7;
  --europe-soft: rgba(32, 223, 137, .17);
  --europe-line: rgba(32, 223, 137, .46);
  --europe-card: #f1fff8;
  --europe-card-2: #d9f8e8;
  --europe-ink: #08492f;
}

/* Modalità prestazioni */

.europe-start-card,
.europe-hero,
.europe-round-card,
.europe-group-card,
.europe-knockout-shell,
.europe-champion-card,
.europe-tie-card,
.europe-final-card {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  filter: none !important;
}

.europe-start-card,
.europe-hero,
.europe-knockout-shell,
.europe-champion-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  color: var(--europe-bright);

  border:
    1px solid
    var(--europe-line);

  background:
    linear-gradient(
      125deg,
      var(--europe-dark) 0%,
      var(--europe-main) 58%,
      var(--europe-dark) 100%
    );

  box-shadow:
    0 18px 38px
    rgba(0, 0, 0, .25);

  contain: layout paint;
}

.europe-start-card > *,
.europe-hero > *,
.europe-knockout-shell > *,
.europe-champion-card > * {
  position: relative;
  z-index: 2;
}

/* Motivi grafici statici */

.europe-start-card::after,
.europe-hero::after,
.europe-knockout-shell::after,
.europe-champion-card::after {
  position: absolute;
  inset: 0;
  z-index: 0;

  content: "";
  pointer-events: none;
}

.is-champions::after {
  background:
    radial-gradient(
      circle at 84% 20%,
      rgba(126, 184, 255, .30)
      0 2px,
      transparent 3px
    ),
    linear-gradient(
      32deg,
      transparent 0 58%,
      rgba(255, 255, 255, .08)
      58% 59%,
      transparent 59%
    ),
    linear-gradient(
      148deg,
      transparent 0 67%,
      rgba(126, 184, 255, .12)
      67% 68%,
      transparent 68%
    );

  background-size:
    44px 44px,
    100% 100%,
    100% 100%;
}

.is-europa::after {
  background:
    radial-gradient(
      ellipse at 88% 48%,
      transparent 0 20%,
      rgba(255, 105, 0, .25)
      20.5% 22.5%,
      transparent 23% 31%,
      rgba(255, 105, 0, .12)
      31.5% 33%,
      transparent 33.5%
    ),
    repeating-linear-gradient(
      118deg,
      transparent 0 35px,
      rgba(255, 105, 0, .06)
      35px 37px,
      transparent 37px 70px
    );
}

.is-conference::after {
  background:
    linear-gradient(
      118deg,
      transparent 0 62%,
      rgba(32, 223, 137, .15)
      62% 65%,
      transparent 65% 68%,
      rgba(32, 223, 137, .08)
      68% 71%,
      transparent 71%
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0 46px,
      rgba(255, 255, 255, .035)
      46px 47px
    );
}

/* Sigla grande decorativa */

.europe-start-card::before,
.europe-hero::before,
.europe-knockout-shell::before {
  position: absolute;
  z-index: 1;

  right: clamp(25px, 6vw, 90px);
  top: 30px;

  color:
    rgba(255, 255, 255, .08);

  font-size:
    clamp(80px, 15vw, 190px);

  font-weight: 950;
  line-height: 1;

  letter-spacing: -.08em;

  pointer-events: none;
}

.europe-start-card.is-champions::before,
.europe-hero.is-champions::before,
.europe-knockout-shell.is-champions::before {
  content: "UCL";
}

.europe-start-card.is-europa::before,
.europe-hero.is-europa::before,
.europe-knockout-shell.is-europa::before {
  content: "UEL";
}

.europe-start-card.is-conference::before,
.europe-hero.is-conference::before,
.europe-knockout-shell.is-conference::before {
  content: "UECL";
}

/* Schermata iniziale */

.europe-start-card {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    360px;

  gap:
    clamp(25px, 4vw, 54px);

  align-items: center;

  min-height: 520px;

  padding:
    clamp(30px, 5vw, 62px);

  border-radius: 30px;
}

.europe-start-card > div {
  max-width: 780px;
}

.europe-start-card > div > span {
  display: block;

  color:
    var(--europe-accent);

  font-size: 11px;
  font-weight: 950;

  letter-spacing: .20em;
  text-transform: uppercase;
}

.europe-start-card h2 {
  max-width: 780px;

  margin:
    12px 0 0;

  color:
    var(--europe-bright);

  font-size:
    clamp(46px, 7vw, 88px);

  line-height: .93;
  letter-spacing: -.055em;
}

.europe-start-card p {
  max-width: 650px;

  margin-top: 22px;

  color:
    rgba(255, 255, 255, .80);

  font-size:
    clamp(16px, 2vw, 21px);

  line-height: 1.55;
}

.europe-start-card .note {
  margin:
    24px 0;

  border-left-color:
    var(--europe-accent);

  color:
    var(--europe-ink);

  background:
    var(--europe-card);
}

.europe-start-card > aside.europe-start-side {
  display: grid;

  grid-template-columns: 1fr;

  gap: 16px;

  align-content: start;

  width: 100%;
  min-width: 0;

  padding: 0;

  border: 0;
  border-radius: 0;

  background: transparent;
  box-shadow: none;
}

.europe-start-card
#createEuropeanCompetition {
  border:
    1px solid
    var(--europe-accent);

  color:
    var(--europe-dark);

  background:
    var(--europe-accent);

  box-shadow: none;
}

/* Navigazione interna */

.europe-navigation {
  display: flex;
  flex-wrap: wrap;

  justify-content:
    flex-end;

  gap: 8px;
}

.europe-navigation
button:not(.danger) {
  border:
    1px solid
    var(--europe-line);

  color:
    var(--europe-bright);

  background:
    var(--europe-main);

  box-shadow: none;
}

.europe-navigation
button.secondary {
  color:
    var(--europe-ink);

  background:
    var(--europe-card);
}

/* Hero gironi */

.europe-hero {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    170px;

  gap: 24px;

  align-items: center;

  min-height: 290px;

  margin-bottom: 16px;

  padding:
    clamp(28px, 4vw, 46px);

  border-radius: 26px;
}

.europe-hero span {
  display: block;

  color:
    var(--europe-accent);

  font-size: 11px;
  font-weight: 950;

  letter-spacing: .18em;
}

.europe-hero h2 {
  margin:
    9px 0 0;

  color:
    var(--europe-bright);

  font-size:
    clamp(40px, 5vw, 70px);

  line-height: .95;
  letter-spacing: -.05em;
}

.europe-hero p {
  max-width: 610px;

  margin:
    16px 0 0;

  color:
    rgba(255, 255, 255, .78);

  line-height: 1.55;
}

.europe-hero > strong {
  display: grid;

  width: 150px;
  height: 150px;

  place-items: center;

  border:
    1px solid
    var(--europe-line);

  border-radius: 26px;

  color:
    var(--europe-bright);

  background:
    rgba(0, 0, 0, .24);

  font-size: 68px;
}

/* Giornata */

.europe-round-card {
  margin-bottom: 16px;

  border-top:
    5px solid
    var(--europe-accent);

  background:
    var(--europe-card);

  contain:
    layout paint;
}

.europe-round-heading {
  display: flex;

  justify-content:
    space-between;

  align-items: center;

  gap: 14px;

  margin-bottom: 14px;
}

.europe-round-heading h3 {
  margin:
    3px 0 0;

  color:
    var(--europe-ink);
}

.europe-round-card .kicker {
  color:
    var(--europe-accent);
}

.europe-round-tabs {
  display: flex;
  flex-wrap: wrap;

  gap: 7px;

  margin-bottom: 16px;
}

.europe-round-tabs
button:not(.secondary) {
  color:
    var(--europe-dark);

  background:
    var(--europe-accent);

  box-shadow: none;
}

.europe-round-tabs
button.secondary {
  color:
    var(--europe-ink);

  background:
    var(--europe-card-2);
}

/* Partite */

.europe-fixture-list {
  display: grid;
  gap: 9px;
}

.europe-fixture {
  display: grid;

  grid-template-columns:
    minmax(120px, 1fr)
    62px
    minmax(120px, 1fr)
    110px;

  gap: 10px;

  align-items: center;

  min-height: 58px;

  padding:
    10px 12px;

  border:
    1px solid
    rgba(20, 35, 55, .14);

  border-radius: 13px;

  color:
    var(--europe-ink);

  background: #fff;
}

.europe-fixture >
span:first-child {
  text-align: right;
}

.europe-fixture > strong {
  color:
    var(--europe-main);

  font-size: 17px;
  text-align: center;
}

.europe-fixture > div {
  display: flex;

  justify-content:
    flex-end;
}

.europe-fixture.is-mii {
  border:
    2px solid
    var(--europe-accent);

  background:
    var(--europe-card-2);
}

.europe-fixture.is-played {
  background: #f3f5f7;
}

.europe-fixture.is-compact {
  grid-template-columns:
    minmax(82px, 1fr)
    48px
    minmax(82px, 1fr);

  min-height: 48px;

  padding: 7px;

  font-size: 11px;
}

.europe-fixture.is-compact > div {
  grid-column: 1 / -1;

  justify-content: center;
}

.europe-fixture.is-compact button,
.europe-fixture.is-compact .badge {
  padding: 5px 8px;

  font-size: 9px;
}

/* Classifiche gironi */

.europe-groups-grid {
  display: grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    );

  gap: 16px;
}

.europe-group-card {
  padding: 0;
  overflow: hidden;

  border-top:
    5px solid
    var(--europe-accent);

  background:
    var(--europe-card);

  content-visibility: auto;

  contain-intrinsic-size:
    340px;

  contain:
    layout paint style;
}

.europe-group-title {
  display: flex;

  align-items: center;

  gap: 10px;

  padding:
    15px 17px;

  color:
    var(--europe-bright);

  background:
    linear-gradient(
      115deg,
      var(--europe-dark),
      var(--europe-main)
    );
}

.europe-group-title span {
  font-size: 11px;
  font-weight: 900;

  letter-spacing: .12em;
}

.europe-group-title strong {
  display: grid;

  width: 32px;
  height: 32px;

  place-items: center;

  border-radius: 10px;

  color:
    var(--europe-dark);

  background:
    var(--europe-accent);
}

.europe-group-table {
  min-width: 510px;
}

.europe-group-table thead th {
  color:
    var(--europe-ink);

  background:
    var(--europe-card-2);
}

.europe-group-table
tr.is-qualified
td:first-child {
  box-shadow:
    inset 5px 0 0
    var(--europe-accent);
}

.europe-group-table
tr.is-mii {
  background:
    var(--europe-card-2);
}

/* Tabellone finale */

.europe-knockout-shell {
  border-radius: 28px;
}

.europe-knockout-heading {
  display: flex;

  justify-content:
    space-between;

  align-items: center;

  gap: 20px;

  padding:
    24px 26px;

  border-bottom:
    1px solid
    var(--europe-line);
}

.europe-knockout-heading span {
  color:
    var(--europe-accent);
}

.europe-knockout-heading h2 {
  margin: 0;

  color:
    var(--europe-bright);
}

.europe-knockout-scroll {
  overflow-x: auto;

  overscroll-behavior-inline:
    contain;

  scrollbar-gutter: stable;

  contain:
    layout paint;
}

.europe-knockout-board {
  display: grid;

  grid-template-columns:
    360px
    330px
    310px
    330px
    360px;

  gap: 24px;

  width: max-content;
  min-width: 100%;

  padding: 28px;
}

.europe-bracket-column {
  position: relative;

  display: flex;

  min-height: 720px;

  flex-direction: column;

  gap: 14px;
}

.europe-bracket-column > h3 {
  margin: 0;

  color:
    var(--europe-bright);

  font-size: 13px;
  font-weight: 900;

  letter-spacing: .12em;

  text-align: center;
  text-transform: uppercase;
}

.europe-bracket-column
.europe-tie-card:first-of-type {
  margin-top: 28px;
}

.europe-bracket-column.is-quarter
.europe-tie-card:last-of-type {
  margin-top: auto;
  margin-bottom: 28px;
}

.europe-bracket-column.is-semifinal
.europe-tie-card,
.europe-bracket-column.is-final
.europe-final-card {
  margin:
    auto 0;
}

.europe-bracket-column::after {
  position: absolute;

  top: 50%;

  width: 24px;
  height: 1px;

  content: "";

  background:
    var(--europe-line);
}

.europe-bracket-column.is-left::after {
  right: -24px;
}

.europe-bracket-column.is-right::after {
  left: -24px;
}

.europe-bracket-column.is-final::after {
  display: none;
}

.europe-final-emblem {
  display: grid;

  justify-items: center;

  gap: 4px;

  margin:
    0 auto 14px;
}

.europe-final-emblem strong {
  color:
    var(--europe-accent);

  font-size: 24px;
  letter-spacing: .15em;
}

.europe-final-emblem span {
  color:
    rgba(255, 255, 255, .70);

  font-size: 9px;
  font-weight: 900;

  letter-spacing: .10em;
  text-transform: uppercase;
}

.europe-tie-card,
.europe-final-card {
  padding: 15px;

  border:
    1px solid
    var(--europe-line);

  border-radius: 17px;

  color:
    var(--europe-ink);

  background:
    var(--europe-card);

  box-shadow:
    0 8px 18px
    rgba(0, 0, 0, .18);

  contain:
    layout paint;
}

.europe-tie-card.is-mii,
.europe-final-card.is-mii {
  border:
    3px solid
    var(--europe-accent);
}

.europe-tie-card > header {
  display: flex;

  justify-content:
    space-between;

  align-items: center;

  margin-bottom: 10px;

  color:
    var(--europe-ink);
}

.europe-tie-card >
header span {
  color:
    var(--europe-main);

  font-size: 10px;
  font-weight: 950;

  letter-spacing: .09em;
}

.europe-tie-card >
header strong {
  font-size: 20px;
}

.europe-tie-teams {
  display: grid;
  gap: 5px;

  margin-bottom: 12px;
}

.europe-tie-teams span {
  padding: 7px 9px;

  border-radius: 9px;

  background:
    var(--europe-card-2);

  font-weight: 850;
}

.europe-tie-teams
span.is-winner {
  color:
    var(--europe-dark);

  background:
    var(--europe-accent);
}

.europe-tie-card > small {
  display: block;

  margin:
    10px 0 5px;

  color:
    var(--europe-main);

  font-size: 9px;
  font-weight: 950;

  letter-spacing: .12em;
}

.europe-tie-card > p {
  margin:
    12px 0 0;

  color:
    var(--europe-ink);

  font-size: 12px;
}

.europe-final-card {
  display: grid;

  min-height: 250px;

  align-content: center;

  gap: 14px;

  border-width: 2px;
}

.europe-final-card > span {
  color:
    var(--europe-main);

  font-size: 10px;
  font-weight: 950;

  letter-spacing: .12em;
  text-align: center;
}

/* Campione */

.europe-champion-card {
  display: grid;

  justify-items: center;

  gap: 8px;

  margin-bottom: 16px;

  padding: 30px;

  border-radius: 25px;

  text-align: center;
}

.europe-champion-card > span {
  color:
    var(--europe-accent);

  font-size: 10px;
  font-weight: 950;

  letter-spacing: .16em;
}

.europe-champion-card h2 {
  margin: 0;

  color:
    var(--europe-bright);

  font-size:
    clamp(34px, 5vw, 60px);
}

.europe-champion-card p {
  margin: 0;

  color:
    rgba(255, 255, 255, .76);
}

/* Responsive */

@media (max-width: 980px) {
  .europe-start-card {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .europe-groups-grid {
    grid-template-columns: 1fr;
  }

  .europe-fixture {
    grid-template-columns:
      minmax(90px, 1fr)
      52px
      minmax(90px, 1fr);
  }

  .europe-fixture > div {
    grid-column: 1 / -1;

    justify-content: center;
  }
}

@media (max-width: 700px) {
  .europe-navigation,
  .europe-round-heading,
  .europe-knockout-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .europe-start-card,
  .europe-hero {
    padding: 24px;
  }

  .europe-hero {
    grid-template-columns: 1fr;
  }

  .europe-hero > strong {
    width: 120px;
    height: 120px;

    font-size: 52px;
  }

  .europe-fixture,
  .europe-fixture.is-compact {
    grid-template-columns:
      1fr
      46px
      1fr;

    font-size: 11px;
  }

  .europe-knockout-board {
    grid-template-columns:
      325px
      305px
      285px
      305px
      325px;

    gap: 18px;

    padding: 18px;
  }

  .europe-bracket-column {
    min-height: 680px;
  }
}

/* =========================================================
   COPPE EUROPEE — TROFEI E SCHERMATE COMPLETE
   ========================================================= */

/*
 * Nessuna animazione continua, nessun filtro
 * e nessun effetto pesante durante lo scroll.
 */

.europe-start-trophy img,
.europe-hero-media img,
.europe-final-trophy img,
.europe-champion-trophy img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;

  user-select: none;
  pointer-events: none;

  transform: translateZ(0);
}

/* Posizione specifica delle tre fotografie */

.is-champions
.europe-start-trophy img,
.is-champions
.europe-hero-media img,
.is-champions
.europe-final-trophy img,
.is-champions
.europe-champion-trophy img {
  object-position: center;
}

.is-europa
.europe-start-trophy img,
.is-europa
.europe-hero-media img,
.is-europa
.europe-final-trophy img,
.is-europa
.europe-champion-trophy img {
  object-position: center 46%;
}

.is-conference
.europe-start-trophy img,
.is-conference
.europe-hero-media img,
.is-conference
.europe-final-trophy img,
.is-conference
.europe-champion-trophy img {
  object-position: center 44%;
}

/* Schermata di presentazione */

.europe-start-side {
  display: grid;

  gap: 16px;

  align-content: center;
}

.europe-start-trophy {
  position: relative;

  height: 300px;

  overflow: hidden;

  border:
    1px solid
    var(--europe-line);

  border-radius: 24px;

  background:
    var(--europe-dark);

  box-shadow:
    0 16px 30px
    rgba(0, 0, 0, .28);

  contain:
    layout paint;
}

.europe-start-trophy::after {
  position: absolute;
  inset: 0;

  content: "";
  pointer-events: none;

  background:
    linear-gradient(
      180deg,
      transparent 35%,
      rgba(0, 0, 0, .80)
    );
}

.europe-trophy-caption {
  position: absolute;

  left: 20px;
  right: 20px;
  bottom: 18px;

  z-index: 2;

  display: grid;

  gap: 2px;
}

.europe-trophy-caption strong {
  color:
    var(--europe-accent);

  font-size: 27px;
  font-weight: 950;

  letter-spacing: .16em;
}

.europe-trophy-caption span {
  color: #fff;

  font-size: 11px;
  font-weight: 900;

  letter-spacing: .10em;
  text-transform: uppercase;
}

.europe-start-stats {
  display: grid;

  grid-template-columns: 1fr;

  gap: 12px;

  width: 100%;
}

.europe-start-stats > div {
  display: grid;

  grid-template-columns: 56px 1fr;

  gap: 10px;

  align-items: center;

  min-height: 82px;

  padding: 14px 16px;

  border:
    1px solid
    var(--europe-line);

  border-radius: 16px;

  background:
    rgba(0, 0, 0, .26);
}

.europe-start-stats strong {
  display: block;

  color:
    var(--europe-accent);

  font-size: 34px;
  line-height: 1;

  text-align: center;
}

.europe-start-stats span {
  display: block;

  color:
    rgba(255, 255, 255, .78);

  font-size: 11px;
  font-weight: 850;

  line-height: 1.25;
}

.europe-start-stats > div > div,
.europe-start-stat-text {
  min-width: 0;
}

/* Hero della fase a gironi */

.europe-hero-media {
  position: relative;

  width: 310px;
  height: 215px;

  justify-self: end;

  overflow: hidden;

  border:
    1px solid
    var(--europe-line);

  border-radius: 22px;

  background:
    var(--europe-dark);

  box-shadow:
    0 15px 28px
    rgba(0, 0, 0, .26);

  contain:
    layout paint;
}

.europe-hero-media::after {
  position: absolute;
  inset: 0;

  content: "";
  pointer-events: none;

  background:
    linear-gradient(
      180deg,
      transparent 35%,
      rgba(0, 0, 0, .82)
    );
}

.europe-team-count {
  position: absolute;

  left: 16px;
  bottom: 14px;

  z-index: 2;

  display: flex;

  align-items: baseline;

  gap: 8px;
}

.europe-team-count strong {
  color: #fff;

  font-size: 45px;
  line-height: 1;
}

.europe-team-count span {
  color:
    var(--europe-accent);

  font-size: 10px;
  font-weight: 950;

  letter-spacing: .14em;
}

/* Classifiche simili alle grafiche ufficiali */

.europe-group-card {
  border-color:
    var(--europe-line);

  background:
    var(--europe-dark);
}

.europe-group-card
.table-wrap {
  border: 0;
  border-radius: 0;

  background:
    var(--europe-dark);
}

.europe-group-table {
  background:
    transparent;
}

.europe-group-table thead th {
  position: static;

  color:
    rgba(255, 255, 255, .64);

  border-color:
    rgba(255, 255, 255, .10);

  background:
    rgba(0, 0, 0, .28);
}

.europe-group-table td {
  color:
    rgba(255, 255, 255, .88);

  border-color:
    rgba(255, 255, 255, .10);

  background:
    transparent;
}

.europe-group-table tbody tr:hover {
  background:
    var(--europe-soft);
}

.europe-group-table
tr.is-qualified {
  background:
    rgba(255, 255, 255, .045);
}

.europe-group-table
tr.is-mii {
  background:
    var(--europe-soft);
}

.europe-group-table
tr.is-qualified
td:first-child {
  box-shadow:
    inset 5px 0 0
    var(--europe-accent);
}

/* Champions: pannelli blu elettrico */

.europe-group-card.is-champions
.europe-group-title {
  background:
    linear-gradient(
      90deg,
      #06124d,
      #123ddb
    );
}

/* Europa: pannelli nero/arancione */

.europe-group-card.is-europa
.europe-group-title {
  background:
    linear-gradient(
      90deg,
      #080808,
      #d75000
    );
}

/* Conference: pannelli nero/verde */

.europe-group-card.is-conference
.europe-group-title {
  background:
    linear-gradient(
      90deg,
      #060b08,
      #08a758
    );
}

/* Trofeo centrale nel tabellone */

.europe-final-emblem {
  display: grid;

  justify-items: center;

  gap: 5px;

  margin:
    0 auto 18px;
}

.europe-final-trophy {
  position: relative;

  width: 250px;
  height: 175px;

  overflow: hidden;

  border:
    2px solid
    var(--europe-line);

  border-radius: 22px;

  background:
    var(--europe-dark);

  box-shadow:
    0 15px 32px
    rgba(0, 0, 0, .34);

  contain:
    layout paint;
}

.europe-final-trophy::after {
  position: absolute;
  inset: 0;

  content: "";
  pointer-events: none;

  background:
    linear-gradient(
      180deg,
      transparent 50%,
      rgba(0, 0, 0, .52)
    );
}

.europe-final-emblem strong {
  color:
    var(--europe-accent);

  font-size: 25px;
  font-weight: 950;

  letter-spacing: .17em;
}

.europe-final-emblem span {
  color:
    rgba(255, 255, 255, .74);

  font-size: 9px;
  font-weight: 900;

  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Trofeo del vincitore */

.europe-champion-trophy {
  width: 210px;
  height: 145px;

  margin-bottom: 8px;

  overflow: hidden;

  border:
    2px solid
    var(--europe-line);

  border-radius: 20px;

  box-shadow:
    0 14px 28px
    rgba(0, 0, 0, .28);

  contain:
    layout paint;
}

/* Scroll senza movimento animato */

.europe-knockout-scroll {
  scroll-behavior:
    auto !important;

  overflow-anchor:
    none;

  touch-action:
    pan-x pan-y;
}

/*
 * Evita trasformazioni o transizioni
 * dei grandi contenitori durante lo scroll.
 */

.europe-knockout-board,
.europe-bracket-column,
.europe-knockout-shell,
.europe-group-card,
.europe-round-card {
  animation: none !important;
  transition: none !important;
}

/* Responsive */

@media (max-width: 980px) {
  .europe-hero-media {
    width: 260px;
    height: 190px;
  }
}

@media (max-width: 700px) {
  .europe-start-trophy {
    height: 250px;
  }

  .europe-start-stats {
    grid-template-columns: 1fr;
  }

  .europe-hero-media {
    width: 100%;
    height: 210px;

    justify-self: stretch;
  }

  .europe-final-trophy {
    width: 220px;
    height: 155px;
  }
}

/* =========================================================
   CALENDARIO STAGIONALE E FORMAZIONE-PARTITA
   ========================================================= */

.season-calendar-toolbar {
  display: grid;

  grid-template-columns:
    repeat(
      2,
      minmax(240px, 1fr)
    );

  gap: 12px;
}

.season-calendar {
  display: grid;
  gap: 16px;
}

.season-month-card {
  content-visibility: auto;

  contain-intrinsic-size:
    520px;
}

.season-month-card
.section-heading {
  margin-top: 0;
}

.season-month-card h3 {
  text-transform: capitalize;
}

.season-fixture-list {
  display: grid;
  gap: 8px;
}

.season-fixture-row {
  display: grid;

  grid-template-columns:
    155px
    155px
    minmax(120px, 1fr)
    58px
    minmax(120px, 1fr)
    100px;

  gap: 10px;

  align-items: center;

  min-height: 64px;

  padding: 10px 12px;

  border:
    1px solid
    var(--line);

  border-radius: 12px;

  background: #fff;
}

.season-fixture-row.is-mii {
  border:
    2px solid
    var(--blue);

  background: #f3fbf7;
}

.season-fixture-row time {
  color: var(--muted);

  font-size: 12px;
  font-weight: 800;

  text-transform: capitalize;
}

.season-fixture-competition {
  display: grid;
  gap: 2px;
}

.season-fixture-competition strong {
  color: var(--navy);
  font-size: 12px;
}

.season-fixture-competition small {
  color: var(--muted);

  font-size: 10px;
  font-weight: 750;
}

.season-fixture-team {
  font-weight: 850;
}

.season-fixture-team.home {
  text-align: right;
}

.season-fixture-score {
  color: var(--navy);

  text-align: center;
  font-size: 17px;
}

.season-fixture-action {
  display: flex;

  justify-content:
    flex-end;
}

.formation-target-card {
  display: flex;

  justify-content:
    space-between;

  align-items: center;

  gap: 18px;

  margin-bottom: 16px;

  border-left:
    5px solid
    var(--blue);

  background:
    linear-gradient(
      110deg,
      rgba(31, 143, 98, .13),
      rgba(255, 255, 255, .96)
    );
}

.formation-target-card h3 {
  margin: 5px 0 4px;
}

.formation-target-card p {
  margin: 0;

  color: var(--muted);
}

@media (max-width: 980px) {
  .season-fixture-row {
    grid-template-columns:
      130px
      145px
      minmax(100px, 1fr)
      50px
      minmax(100px, 1fr);
  }

  .season-fixture-action {
    grid-column: 1 / -1;

    justify-content: center;
  }
}

@media (max-width: 700px) {
  .season-calendar-toolbar {
    grid-template-columns: 1fr;
  }

  .season-fixture-row {
    grid-template-columns:
      1fr
      48px
      1fr;
  }

  .season-fixture-row time,
  .season-fixture-competition {
    grid-column: 1 / -1;
  }

  .formation-target-card {
    align-items: flex-start;

    flex-direction: column;
  }
}


/* =========================================================
   STAGIONE COMPLETA 2.0
   ========================================================= */

.season-next-match {
  --season-accent: #1f8f62;

  position: relative;
  overflow: hidden;

  display: grid;
  gap: 16px;

  margin-top: 16px;

  padding:
    clamp(
      22px,
      4vw,
      38px
    );

  color: #fff;

  border:
    1px solid
    color-mix(
      in srgb,
      var(--season-accent) 70%,
      #fff
    );

  background:
    radial-gradient(
      circle at 85% 15%,
      color-mix(
        in srgb,
        var(--season-accent) 34%,
        transparent
      ),
      transparent 34%
    ),
    linear-gradient(
      135deg,
      #071b16,
      #102c25 58%,
      color-mix(
        in srgb,
        var(--season-accent) 35%,
        #071b16
      )
    );
}

.season-next-match::after {
  content: "";

  position: absolute;

  width: 280px;
  height: 280px;

  right: -110px;
  bottom: -170px;

  border:
    2px solid
    rgba(255, 255, 255, .13);

  border-radius: 50%;
}

.season-next-match.competition-champions {
  --season-accent: #2d75ff;
}

.season-next-match.competition-europa {
  --season-accent: #ff7a18;
}

.season-next-match.competition-conference {
  --season-accent: #54d66b;
}

.season-next-match.competition-cup {
  --season-accent: #e3b94c;
}

.season-next-match.competition-world-cup {
  --season-accent: #c9414c;
}

.season-next-top,
.season-next-actions {
  position: relative;
  z-index: 1;

  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 14px;
  flex-wrap: wrap;
}

.season-next-top div {
  display: grid;
  gap: 3px;
}

.season-next-top span {
  color:
    var(--season-accent);

  font-size: 13px;
  font-weight: 950;

  letter-spacing: .12em;
  text-transform: uppercase;
}

.season-next-top small {
  color:
    rgba(255, 255, 255, .72);

  font-weight: 800;
}

.season-next-top b {
  padding: 7px 11px;

  border:
    1px solid
    rgba(255, 255, 255, .22);

  border-radius: 999px;

  background:
    rgba(255, 255, 255, .09);
}

.season-next-match > time {
  position: relative;
  z-index: 1;

  color:
    rgba(255, 255, 255, .78);

  font-size: 14px;
  font-weight: 850;

  text-transform: capitalize;
}

.season-next-fixture {
  position: relative;
  z-index: 1;

  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto
    minmax(0, 1fr);

  gap: 18px;

  align-items: center;
  text-align: center;
}

.season-next-fixture strong {
  font-size:
    clamp(
      24px,
      4vw,
      44px
    );

  line-height: 1.05;
}

.season-next-fixture em {
  width: 58px;
  height: 58px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  color: #071b16;

  background:
    var(--season-accent);

  font-style: normal;
  font-weight: 950;
}

.season-next-match p {
  position: relative;
  z-index: 1;

  margin: 0;

  color:
    rgba(255, 255, 255, .76);

  text-align: center;
}

.season-next-actions {
  justify-content: center;
}

.season-week-toolbar {
  display: grid;

  grid-template-columns:
    auto
    minmax(240px, 1fr)
    auto
    auto;

  align-items: end;
}

.season-week-confirm {
  display: flex;
  gap: 10px;

  flex-wrap: wrap;

  margin-bottom: 16px;
}

.season-week-days {
  display: grid;
  gap: 16px;
}

.season-week-day {
  padding: 16px;

  content-visibility: auto;

  contain-intrinsic-size:
    360px;
}

.season-week-day > header {
  display: flex;

  justify-content: space-between;
  align-items: center;

  gap: 14px;

  margin-bottom: 12px;
}

.season-week-day h3 {
  margin: 3px 0 0;

  text-transform: capitalize;
}

.season-week-day > div {
  display: grid;
  gap: 8px;
}

.season-week-row {
  --season-accent: #1f8f62;

  display: grid;

  grid-template-columns:
    64px
    150px
    minmax(130px, 1fr)
    54px
    minmax(130px, 1fr)
    96px;

  gap: 10px;

  align-items: center;

  min-height: 66px;

  padding: 10px 12px;

  border:
    1px solid
    var(--line);

  border-left:
    5px solid
    var(--season-accent);

  border-radius: 12px;

  background: #fff;
}

.season-week-row.competition-champions {
  --season-accent: #2d75ff;
}

.season-week-row.competition-europa {
  --season-accent: #ff7a18;
}

.season-week-row.competition-conference {
  --season-accent: #45c85d;
}

.season-week-row.competition-cup {
  --season-accent: #d5a934;
}

.season-week-row.competition-world-cup {
  --season-accent: #c9414c;
}

.season-week-row.is-mii {
  border-width:
    2px
    2px
    2px
    6px;

  background:
    color-mix(
      in srgb,
      var(--season-accent) 7%,
      #fff
    );

  box-shadow:
    0 8px 22px
    color-mix(
      in srgb,
      var(--season-accent) 16%,
      transparent
    );
}

.season-week-row time {
  color: var(--muted);
  font-weight: 900;
}

.season-week-row > div:first-of-type {
  display: grid;
  gap: 2px;
}

.season-week-row > div:first-of-type strong {
  color:
    var(--season-accent);

  font-size: 12px;
}

.season-week-row > div:first-of-type small {
  color: var(--muted);

  font-size: 10px;
  font-weight: 750;
}

.season-week-row .home {
  text-align: right;
}

.season-week-row > span {
  font-weight: 850;
}

.season-week-row > b {
  color: var(--navy);

  text-align: center;
  font-size: 17px;
}

.season-week-row > div:last-child {
  display: flex;
  justify-content: flex-end;
}

.season-calendar-nav {
  display: grid;

  grid-template-columns:
    auto
    minmax(220px, 1fr)
    auto
    auto;

  align-items: center;
}

.season-calendar-nav h3 {
  margin: 0;

  color: #fff;
  text-align: center;
}

.season-calendar-legend {
  display: flex;
  flex-wrap: wrap;

  gap: 8px;

  margin-bottom: 12px;
}

.season-calendar-pill {
  --season-accent: #1f8f62;

  display: inline-flex;
  align-items: center;

  max-width: 100%;

  padding: 4px 7px;

  border:
    1px solid
    color-mix(
      in srgb,
      var(--season-accent) 42%,
      transparent
    );

  border-radius: 999px;

  color:
    color-mix(
      in srgb,
      var(--season-accent) 75%,
      #102820
    );

  background:
    color-mix(
      in srgb,
      var(--season-accent) 14%,
      #fff
    );

  font-size: 9px;
  font-weight: 900;
  line-height: 1.1;

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.season-calendar-pill.competition-champions {
  --season-accent: #2d75ff;
}

.season-calendar-pill.competition-europa {
  --season-accent: #ff7a18;
}

.season-calendar-pill.competition-conference {
  --season-accent: #45c85d;
}

.season-calendar-pill.competition-cup {
  --season-accent: #d5a934;
}

.season-calendar-pill.competition-world-cup {
  --season-accent: #c9414c;
}

.season-calendar-board {
  padding: 14px;
  overflow: auto;
}

.season-calendar-weekdays,
.season-calendar-grid {
  min-width: 910px;

  display: grid;

  grid-template-columns:
    repeat(
      7,
      minmax(125px, 1fr)
    );
}

.season-calendar-weekdays strong {
  padding: 10px;

  color: var(--navy);

  text-align: center;
  text-transform: uppercase;

  font-size: 11px;
  letter-spacing: .08em;
}

.season-calendar-grid {
  border-top:
    1px solid
    var(--line);

  border-left:
    1px solid
    var(--line);
}

.season-calendar-cell {
  min-height: 132px;

  display: flex;

  flex-direction: column;

  gap: 7px;

  align-items: stretch;

  padding: 9px;

  color: var(--ink);
  text-align: left;

  border: 0;

  border-right:
    1px solid
    var(--line);

  border-bottom:
    1px solid
    var(--line);

  border-radius: 0;

  background:
    rgba(255, 255, 255, .84);

  box-shadow: none;
  transform: none;
}

button.season-calendar-cell:hover {
  transform: none;

  background: #f4faf7;

  box-shadow:
    inset 0 0 0 2px
    rgba(31, 143, 98, .18);
}

.season-calendar-cell.outside {
  background:
    rgba(225, 233, 229, .5);
}

.season-calendar-cell.has-mii {
  background: #eef9f3;

  box-shadow:
    inset 0 0 0 2px
    rgba(31, 143, 98, .48);
}

.season-calendar-cell > b {
  align-self: flex-start;

  color: var(--navy);
  font-size: 16px;
}

.season-calendar-cell > div {
  display: grid;
  gap: 4px;
}

.season-calendar-cell p {
  display: flex;

  justify-content: space-between;

  gap: 6px;

  margin: auto 0 0;

  padding-top: 7px;

  border-top:
    1px dashed
    var(--line);

  color: #174c38;

  font-size: 10px;
}

.season-calendar-cell p strong {
  overflow: hidden;

  text-overflow: ellipsis;
  white-space: nowrap;
}

.season-calendar-cell p small {
  white-space: nowrap;
}

@media (max-width: 1000px) {
  .season-week-toolbar {
    grid-template-columns:
      1fr 1fr;
  }

  .season-week-row {
    grid-template-columns:
      58px
      130px
      minmax(110px, 1fr)
      48px
      minmax(110px, 1fr);
  }

  .season-week-row > div:last-child {
    grid-column: 1 / -1;

    justify-content: center;
  }

  .season-calendar-nav {
    grid-template-columns:
      1fr 1fr;
  }

  .season-calendar-nav h3 {
    grid-column: 1 / -1;
    grid-row: 1;
  }
}

@media (max-width: 700px) {
  .season-next-fixture {
    grid-template-columns: 1fr;
  }

  .season-next-fixture em {
    margin: auto;
  }

  .season-week-toolbar,
  .season-calendar-nav {
    grid-template-columns: 1fr;
  }

  .season-calendar-nav h3 {
    grid-column: auto;
    grid-row: auto;
  }

  .season-week-day > header {
    align-items: flex-start;
  }

  .season-week-row {
    grid-template-columns:
      52px
      1fr
      44px
      1fr;
  }

  .season-week-row > div:first-of-type {
    grid-column: 2 / -1;
  }

  .season-week-row .home {
    grid-column: 1 / 3;
  }

  .season-week-row > b {
    grid-column: 3;
  }

  .season-week-row > span:last-of-type {
    grid-column: 4;
  }
}

/* =========================================================
   STAGIONE COMPLETA 2.1
   Colori competizioni, giornate e Mondiale
   ========================================================= */

.season-next-match.competition-cup,
.season-week-row.competition-cup,
.season-calendar-pill.competition-cup {
  --season-accent: #c62828;
}

.season-next-match.competition-world-cup,
.season-week-row.competition-world-cup,
.season-calendar-pill.competition-world-cup {
  --season-accent: #f2c94c;
}

.season-round-toolbar {
  display: grid;

  grid-template-columns:
    auto
    minmax(220px, 1fr)
    auto
    auto;

  gap: 10px;
  align-items: end;
}

.season-round-summary {
  display: grid;

  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    )
    auto;

  gap: 14px;
  align-items: center;

  margin-bottom: 16px;
}

.season-round-summary > div {
  display: grid;
  gap: 5px;

  min-width: 0;
}

.season-round-summary strong {
  color: var(--navy);
  overflow-wrap: anywhere;
}

/* Giorni senza partite: grigi */
.season-calendar-cell {
  --calendar-cell-bg: #d7dbde;
  --calendar-cell-text: #344048;

  color:
    var(--calendar-cell-text)
    !important;

  background:
    var(--calendar-cell-bg)
    !important;

  border-color:
    rgba(255, 255, 255, .32)
    !important;

  transition:
    filter .16s ease,
    transform .16s ease,
    box-shadow .16s ease;
}

.season-calendar-cell.is-empty-day {
  color: #344048 !important;
  background: #d7dbde !important;
}

.season-calendar-cell.outside {
  background: #aeb5ba !important;
  opacity: .58;
}

button.season-calendar-cell:hover {
  background:
    var(--calendar-cell-bg)
    !important;

  filter: brightness(1.08);
  transform: translateY(-2px);

  box-shadow:
    inset 0 0 0 2px
      rgba(255, 255, 255, .52),
    0 8px 18px
      rgba(0, 0, 0, .16);
}

/* Giorni con una competizione:
   il quadrato assume il suo colore */
.season-calendar-cell.has-events > b,
.season-calendar-cell.has-events p,
.season-calendar-cell.has-events p strong,
.season-calendar-cell.has-events p small {
  color:
    var(--calendar-cell-text)
    !important;
}

.season-calendar-cell.has-events > b {
  width: 31px;
  height: 31px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  background:
    rgba(255, 255, 255, .18);

  box-shadow:
    inset 0 0 0 1px
      rgba(255, 255, 255, .22);
}

.season-calendar-cell.has-events p {
  border-top-color:
    rgba(255, 255, 255, .42);

  text-shadow:
    0 1px 4px
      rgba(0, 0, 0, .24);
}

.season-calendar-cell.has-events
.season-calendar-pill {
  --season-accent: #fff;

  color:
    var(--calendar-cell-text);

  background:
    rgba(255, 255, 255, .18);

  border-color:
    rgba(255, 255, 255, .42);

  backdrop-filter: blur(5px);
}

/* Mondiale giallo con testo scuro */
.season-calendar-cell.competition-world-cup
.season-calendar-pill {
  color: #3a2b00;

  background:
    rgba(255, 255, 255, .32);

  border-color:
    rgba(58, 43, 0, .22);
}

/* Partita della Squadra/Nazionale Mii */
.season-calendar-cell.has-mii {
  outline:
    4px solid #fff;

  outline-offset: -5px;

  box-shadow:
    inset 0 0 0 7px
      rgba(241, 199, 91, .78),
    0 10px 24px
      rgba(0, 0, 0, .20);
}

/* Due competizioni nello stesso giorno:
   il JS divide il quadrato tra i colori */
.season-calendar-cell.has-mixed-events {
  text-shadow:
    0 1px 4px
      rgba(0, 0, 0, .25);
}

/* Legenda colori definitivi */
.season-calendar-legend
.competition-league {
  --season-accent: #16784b;
}

.season-calendar-legend
.competition-cup {
  --season-accent: #c62828;
}

.season-calendar-legend
.competition-champions {
  --season-accent: #1657d9;
}

.season-calendar-legend
.competition-europa {
  --season-accent: #ea7417;
}

.season-calendar-legend
.competition-conference {
  --season-accent: #2cad54;
}

.season-calendar-legend
.competition-world-cup {
  --season-accent: #f2c94c;
}

/* =========================================================
   MONDIALE — SCHERMATA INIZIALE ORO
   ========================================================= */

.world-cup-start-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  max-width: 980px;
  min-height: 560px;

  margin: 38px auto;

  padding:
    clamp(
      30px,
      5vw,
      58px
    );

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  color: #302300;
  text-align: center;

  border:
    2px solid
    rgba(255, 255, 255, .72);

  border-radius: 28px;

  background:
    radial-gradient(
      circle at 18% 18%,
      rgba(255, 255, 255, .65),
      transparent 24%
    ),
    radial-gradient(
      circle at 82% 24%,
      rgba(255, 255, 255, .32),
      transparent 21%
    ),
    repeating-linear-gradient(
      135deg,
      rgba(255, 255, 255, .09)
        0 12px,
      rgba(255, 255, 255, 0)
        12px 28px
    ),
    linear-gradient(
      145deg,
      #ffe88b 0%,
      #f5c842 46%,
      #d99a00 100%
    ) !important;

  box-shadow:
    0 28px 65px
      rgba(71, 47, 0, .34),
    inset 0 1px 0
      rgba(255, 255, 255, .78);
}

.world-cup-start-card::before,
.world-cup-start-card::after {
  content: "";

  position: absolute;
  z-index: -1;

  border:
    2px solid
    rgba(82, 55, 0, .18);

  border-radius: 50%;
}

.world-cup-start-card::before {
  width: 430px;
  height: 430px;

  left: -235px;
  bottom: -250px;
}

.world-cup-start-card::after {
  width: 330px;
  height: 330px;

  right: -170px;
  top: -190px;

  box-shadow:
    0 0 0 35px
      rgba(255, 255, 255, .06),
    0 0 0 72px
      rgba(255, 255, 255, .035);
}

.world-cup-start-card .kicker {
  color: #6e4a00;
  letter-spacing: .18em;
}

.world-cup-start-card h2 {
  position: relative;

  margin: 14px 0 10px;

  color: #2f2200;

  font-size:
    clamp(
      34px,
      5vw,
      58px
    );

  line-height: 1;

  text-shadow:
    0 2px 0
      rgba(255, 255, 255, .42);
}

.world-cup-start-card p {
  max-width: 650px;

  margin:
    0 auto 28px;

  color: #5d4300;

  font-size: 17px;
  font-weight: 750;
  line-height: 1.55;
}

.world-cup-start-trophy {
  width: 210px;
  height: 235px;

  margin:
    0 auto 22px;

  padding: 16px;

  border:
    1px solid
    rgba(255, 255, 255, .66);

  border-radius: 32px;

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, .52),
      rgba(255, 255, 255, .14)
    );

  box-shadow:
    0 22px 38px
      rgba(88, 57, 0, .24),
    inset 0 1px 0
      rgba(255, 255, 255, .9);
}

.world-cup-start-trophy img,
.world-cup-start-card #worldcup-img {
  width: 165px !important;
  height: 205px !important;

  max-width: 165px !important;

  border-radius: 20px;

  object-fit: contain;

  filter:
    saturate(1.08)
    contrast(1.04);

  box-shadow:
    0 14px 26px
      rgba(65, 43, 0, .22);
}

.world-cup-start-card
.competition-main-button {
  min-width: 250px;

  padding: 14px 22px;

  color: #ffe47b;

  background:
    linear-gradient(
      135deg,
      #251b00,
      #684900
    );

  box-shadow:
    0 13px 24px
      rgba(63, 42, 0, .28);
}

/* Banner del Mondiale già iniziato */
.world-cup-banner {
  border-color:
    rgba(255, 220, 92, .72)
    !important;

  background:
    radial-gradient(
      circle at 88% 20%,
      rgba(255, 255, 255, .24),
      transparent 25%
    ),
    linear-gradient(
      135deg,
      #f7d45b,
      #c98b00
    ) !important;
}

.world-cup-banner h3,
.world-cup-banner p,
.world-cup-banner .kicker {
  color: #332400 !important;
}

@media (max-width: 980px) {
  .season-round-toolbar,
  .season-round-summary {
    grid-template-columns:
      1fr 1fr;
  }
}

@media (max-width: 700px) {
  .season-round-toolbar,
  .season-round-summary {
    grid-template-columns:
      1fr;
  }

  .world-cup-start-card {
    min-height: 500px;
    padding: 30px 20px;
  }
}

/* =========================================================
   STAGIONE COMPLETA 2.2
   REFERTI UNIVERSALI
   ========================================================= */

.universal-match-editor .content,
.universal-match-report .content {
  display: grid;
  gap: 16px;
}

.universal-penalty-box {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid rgba(161, 31, 31, .24);
  border-left: 5px solid #c62828;
  border-radius: 14px;
  background:
    linear-gradient(
      135deg,
      rgba(198, 40, 40, .08),
      rgba(255, 255, 255, .92)
    );
}

.universal-penalty-box .section-heading {
  margin: 0 0 8px;
}

.universal-penalty-box p {
  margin: 0 0 14px;
  color: var(--muted);
  line-height: 1.5;
}

.universal-report-grid {
  align-items: stretch;
}

.universal-report-grid > .card {
  min-height: 240px;
}

.universal-report-summary {
  display: grid;
  align-content: start;
  gap: 9px;
}

.universal-report-summary p {
  margin: 0;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, .72);
}

.universal-match-report .timeline-item {
  grid-template-columns: 58px minmax(0, 1fr) auto;
}

.universal-match-report table {
  min-width: 640px;
}

.universal-match-editor .mii-rating {
  min-width: 90px;
  text-align: center;
  font-weight: 900;
}

@media (max-width: 760px) {
  .universal-match-report .timeline-item {
    grid-template-columns: 48px minmax(0, 1fr);
  }

  .universal-match-report .timeline-item small {
    grid-column: 2;
  }
}

/* =========================================================
   REFERTI UNIVERSALI 2.3
   Stato voti giocatori Mii
   ========================================================= */

.mii-rating:disabled {
  color: #7a8580;

  background:
    #e3e7e5 !important;

  border-color:
    #cbd2cf !important;

  cursor: not-allowed;
  opacity: .78;
}

tr.mii-rating-not-played {
  opacity: .52;

  background:
    #edf0ef !important;
}

tr.mii-rating-not-played:hover {
  background:
    #edf0ef !important;
}

tr.mii-rating-sv {
  background:
    #fff7df !important;
}

tr.mii-rating-sv:hover {
  background:
    #fff7df !important;
}

tr.mii-rating-enabled {
  background:
    #eef9f3 !important;
}

tr.mii-rating-enabled:hover {
  background:
    #e5f5ed !important;
}

tr.mii-rating-enabled
.mii-rating {
  border-color:
    rgba(31, 143, 98, .45);

  background:
    #fff;
}

.universal-match-editor
.mii-rating::placeholder {
  font-size: 12px;
}

/* =========================================================
   STATISTICHE PER COMPETIZIONE 2.5
   ========================================================= */

.s25-stats-panel {
  --s25-accent: #16784b;
  --s25-soft:
    rgba(22, 120, 75, .10);

  position: relative;
  overflow: hidden;

  margin-top: 24px;

  padding:
    clamp(
      18px,
      3vw,
      28px
    );

  border-top:
    6px solid
    var(--s25-accent);
}

.s25-stats-panel.competition-cup {
  --s25-accent: #c62828;
  --s25-soft:
    rgba(198, 40, 40, .12);
}

.s25-stats-panel.competition-champions {
  --s25-accent: #1657d9;
  --s25-soft:
    rgba(22, 87, 217, .12);
}

.s25-stats-panel.competition-europa {
  --s25-accent: #ea7417;
  --s25-soft:
    rgba(234, 116, 23, .13);
}

.s25-stats-panel.competition-conference {
  --s25-accent: #2cad54;
  --s25-soft:
    rgba(44, 173, 84, .12);
}

.s25-stats-panel.competition-world-cup {
  --s25-accent: #e0ae13;
  --s25-soft:
    rgba(242, 201, 76, .20);
}

.s25-stats-heading {
  display: flex;

  align-items: flex-end;
  justify-content: space-between;

  gap: 18px;
  flex-wrap: wrap;

  margin-bottom: 18px;
}

.s25-stats-heading h2 {
  margin: 4px 0 3px;

  font-size:
    clamp(
      25px,
      3vw,
      36px
    );
}

.s25-stats-heading p {
  margin: 0;
  color: var(--muted);
}

.s25-stat-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.s25-stat-tabs button {
  min-width: 105px;
}

.s25-stat-tabs button.is-active {
  color: #fff;

  background:
    linear-gradient(
      135deg,
      color-mix(
        in srgb,
        var(--s25-accent) 74%,
        #13261f
      ),
      var(--s25-accent)
    );

  box-shadow:
    0 8px 18px
    color-mix(
      in srgb,
      var(--s25-accent) 24%,
      transparent
    );
}

.s25-incomplete-note {
  margin-bottom: 16px;
}

.s25-podium {
  display: grid;

  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );

  gap: 14px;

  margin-bottom: 16px;
}

.s25-podium-card {
  position: relative;
  overflow: hidden;

  min-height: 170px;

  display: grid;
  align-content: start;

  gap: 10px;
  padding: 18px;

  border:
    1px solid
    color-mix(
      in srgb,
      var(--s25-accent) 28%,
      var(--line)
    );

  border-radius: 16px;

  background:
    linear-gradient(
      145deg,
      #fff,
      color-mix(
        in srgb,
        var(--s25-accent) 8%,
        #fff
      )
    );

  box-shadow:
    0 10px 24px
    rgba(12, 46, 33, .08);
}

.s25-podium-card.place-1 {
  border-width: 2px;

  transform:
    translateY(-5px);

  box-shadow:
    0 16px 30px
    color-mix(
      in srgb,
      var(--s25-accent) 17%,
      transparent
    );
}

.s25-podium-card.is-empty {
  opacity: .58;

  justify-items: center;
  align-content: center;

  text-align: center;
}

.s25-medal {
  font-size: 29px;
  line-height: 1;
}

.s25-podium-card > div {
  display: grid;
  gap: 3px;
}

.s25-podium-card > div strong {
  color: #153d30;
  font-size: 20px;
}

.s25-podium-card > div small {
  color: var(--muted);
  font-weight: 750;
}

.s25-podium-card > b {
  color: var(--s25-accent);
  font-size: 24px;
}

.s25-podium-card footer {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;

  margin-top: auto;
}

.s25-podium-card footer span {
  padding: 4px 7px;

  border-radius: 999px;

  color: #40554c;

  background:
    rgba(16, 84, 59, .08);

  font-size: 11px;
  font-weight: 800;
}

.s25-formula-note {
  margin-bottom: 14px;

  padding: 11px 13px;

  border-left:
    4px solid
    var(--s25-accent);

  border-radius: 9px;

  color: #405149;
  background: var(--s25-soft);

  line-height: 1.45;
}

.s25-table-wrap {
  border-color:
    color-mix(
      in srgb,
      var(--s25-accent) 28%,
      var(--line)
    );
}

.s25-ranking-table {
  min-width: 980px;
}

.s25-ranking-table thead th {
  background:
    linear-gradient(
      135deg,
      color-mix(
        in srgb,
        var(--s25-accent) 70%,
        #15382c
      ),
      var(--s25-accent)
    );
}

.s25-player-cell {
  display: grid;
  gap: 2px;
}

.s25-player-cell small {
  color: var(--muted);

  font-size: 11px;
  font-weight: 700;
}

.s25-active-stat {
  color: var(--s25-accent);
  background: var(--s25-soft);

  font-size: 16px;
  font-weight: 900;
}

@media (max-width: 850px) {
  .s25-podium {
    grid-template-columns: 1fr;
  }

  .s25-podium-card.place-1 {
    transform: none;
  }
}

@media (max-width: 620px) {
  .s25-stat-tabs {
    display: grid;
    grid-template-columns: 1fr;

    width: 100%;
  }

  .s25-stat-tabs button {
    width: 100%;
  }
}

/* Top 20 delle statistiche per competizione */

.s25-ranking-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;

  gap: 14px;
  flex-wrap: wrap;

  margin:
    20px 0 10px;
}

.s25-ranking-heading h3 {
  margin: 3px 0 0;

  color: #153d30;
  font-size: 22px;
}

/* =========================================================
   PREMI COMPLESSIVI STAGIONE 2.6
   ========================================================= */

.s26-summary-grid {
  display: grid;

  grid-template-columns:
    repeat(
      4,
      minmax(0, 1fr)
    );

  gap: 14px;

  margin-bottom: 18px;
}

.s26-summary-card {
  position: relative;
  overflow: hidden;

  min-height: 150px;

  display: grid;
  align-content: start;

  gap: 8px;
}

.s26-summary-card::after {
  content: "";

  position: absolute;

  right: -35px;
  bottom: -45px;

  width: 120px;
  height: 120px;

  border-radius: 50%;

  background:
    rgba(31, 143, 98, .09);
}

.s26-summary-card > * {
  position: relative;
  z-index: 1;
}

.s26-summary-card > strong {
  color: #153d30;

  font-size: 34px;
  line-height: 1;
}

.s26-summary-card p {
  margin: 0;

  color: var(--muted);

  font-size: 12px;
  line-height: 1.45;
}

.s26-warning {
  margin-bottom: 18px;
}

.s26-main-ranking {
  position: relative;
  overflow: hidden;

  padding:
    clamp(
      18px,
      3vw,
      28px
    );

  border-top:
    6px solid
    #d4aa2f;

  background:
    radial-gradient(
      circle at 92% 5%,
      rgba(241, 199, 91, .18),
      transparent 25%
    ),
    var(--card);
}

.s26-ranking-heading,
.s26-ranking-title-row,
.s26-section-heading {
  display: flex;

  align-items: flex-end;
  justify-content: space-between;

  gap: 18px;
  flex-wrap: wrap;
}

.s26-ranking-heading {
  margin-bottom: 20px;
}

.s26-ranking-heading h2,
.s26-section-heading h2 {
  margin: 4px 0 3px;

  color: #153d30;

  font-size:
    clamp(
      26px,
      3vw,
      38px
    );
}

.s26-ranking-heading p,
.s26-section-heading p {
  margin: 0;
  color: var(--muted);
}

.s26-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.s26-tabs button {
  min-width: 120px;
}

.s26-tabs button.is-active {
  color: #fff;

  background:
    linear-gradient(
      135deg,
      #7b5b08,
      #d3a92e
    );

  box-shadow:
    0 9px 20px
    rgba(124, 89, 0, .23);
}

.s26-podium {
  display: grid;

  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );

  gap: 14px;

  margin-bottom: 20px;
}

.s26-podium
.s25-podium-card {
  --s25-accent: #d0a326;
}

.s26-ranking-title-row {
  margin: 18px 0 10px;
}

.s26-ranking-title-row h3 {
  margin: 3px 0 0;

  color: #153d30;
  font-size: 23px;
}

.s26-table-wrap {
  border-color:
    rgba(178, 135, 20, .28);
}

.s26-ranking-table {
  min-width: 1040px;
}

.s26-ranking-table thead th {
  color: #fff;

  background:
    linear-gradient(
      135deg,
      #5b4407,
      #b78b17
    );
}

.s26-player-cell {
  display: grid;
  gap: 2px;

  min-width: 190px;
}

.s26-player-cell > small {
  color: var(--muted);

  font-size: 11px;
  font-weight: 750;
}

.s26-active-stat {
  color: #7b5900;

  background:
    rgba(241, 199, 91, .22);

  font-size: 16px;
  font-weight: 950;
}

.s26-competition-badges {
  display: flex;
  flex-wrap: wrap;

  gap: 4px;

  margin-top: 4px;
}

.s26-competition-badge {
  --s26-badge: #16784b;

  display: inline-flex;

  max-width: 130px;

  padding: 3px 6px;

  overflow: hidden;

  border:
    1px solid
    color-mix(
      in srgb,
      var(--s26-badge) 38%,
      transparent
    );

  border-radius: 999px;

  color:
    color-mix(
      in srgb,
      var(--s26-badge) 78%,
      #102820
    );

  background:
    color-mix(
      in srgb,
      var(--s26-badge) 12%,
      #fff
    );

  font-size: 8px;
  font-weight: 900;
  line-height: 1;

  white-space: nowrap;
  text-overflow: ellipsis;
}

.s26-competition-badge.competition-cup {
  --s26-badge: #c62828;
}

.s26-competition-badge.competition-champions {
  --s26-badge: #1657d9;
}

.s26-competition-badge.competition-europa {
  --s26-badge: #ea7417;
}

.s26-competition-badge.competition-conference {
  --s26-badge: #2cad54;
}

.s26-competition-badge.competition-world-cup {
  --s26-badge: #d1a20d;
}

.s26-role-section {
  margin-top: 26px;
}

.s26-section-heading {
  margin-bottom: 15px;
  color: #fff;
}

.s26-section-heading h2 {
  color: #fff;

  text-shadow:
    0 3px 18px
    rgba(0, 0, 0, .28);
}

.s26-section-heading p {
  color: #c6d7d0;
}

.s26-role-grid {
  display: grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    );

  gap: 16px;
}

.s26-role-award {
  --s26-role-accent: #1f8f62;

  position: relative;
  overflow: hidden;

  min-height: 330px;

  padding: 22px;

  border-top:
    5px solid
    var(--s26-role-accent);

  background:
    radial-gradient(
      circle at 92% 7%,
      color-mix(
        in srgb,
        var(--s26-role-accent) 14%,
        transparent
      ),
      transparent 28%
    ),
    var(--card);
}

.s26-role-award.role-por {
  --s26-role-accent: #d1a20d;
}

.s26-role-award.role-dif {
  --s26-role-accent: #2670c8;
}

.s26-role-award.role-cen {
  --s26-role-accent: #2b9d62;
}

.s26-role-award.role-att {
  --s26-role-accent: #c83f38;
}

.s26-role-award.is-empty {
  min-height: 180px;

  align-content: center;

  text-align: center;
  opacity: .7;
}

.s26-role-award > header {
  display: flex;

  align-items: flex-start;
  justify-content: space-between;

  gap: 14px;

  margin-bottom: 17px;
}

.s26-role-award h3 {
  margin: 5px 0 3px;

  color: #153d30;
  font-size: 26px;
}

.s26-role-award header p {
  margin: 0;

  color: var(--muted);
  font-weight: 750;
}

.s26-role-trophy {
  font-size: 42px;

  filter:
    drop-shadow(
      0 7px 9px
      rgba(91, 63, 0, .18)
    );
}

.s26-role-winner-stats {
  display: grid;

  grid-template-columns:
    repeat(
      4,
      minmax(0, 1fr)
    );

  gap: 8px;

  margin-bottom: 17px;
}

.s26-role-winner-stats span {
  display: grid;
  gap: 3px;

  padding: 10px 8px;

  border-radius: 11px;

  color: var(--muted);

  background:
    color-mix(
      in srgb,
      var(--s26-role-accent) 9%,
      #fff
    );

  text-align: center;

  font-size: 10px;
  font-weight: 800;
}

.s26-role-winner-stats strong {
  color: var(--s26-role-accent);
  font-size: 19px;
}

.s26-role-top-three {
  display: grid;
  gap: 8px;

  margin: 0;
  padding: 0;

  list-style: none;
}

.s26-role-top-three li {
  display: grid;

  grid-template-columns:
    32px
    minmax(0, 1fr)
    auto;

  gap: 10px;
  align-items: center;

  padding: 9px 10px;

  border:
    1px solid
    color-mix(
      in srgb,
      var(--s26-role-accent) 20%,
      var(--line)
    );

  border-radius: 11px;

  background:
    rgba(255, 255, 255, .72);
}

.s26-role-top-three li > span {
  width: 28px;
  height: 28px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  color: #fff;
  background: var(--s26-role-accent);

  font-size: 11px;
  font-weight: 950;
}

.s26-role-top-three li > div {
  display: grid;
  min-width: 0;
}

.s26-role-top-three li strong,
.s26-role-top-three li small {
  overflow: hidden;

  white-space: nowrap;
  text-overflow: ellipsis;
}

.s26-role-top-three li small {
  color: var(--muted);
  font-size: 10px;
}

.s26-role-top-three li b {
  color: var(--s26-role-accent);
  white-space: nowrap;
}

@media (max-width: 1050px) {
  .s26-summary-grid {
    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );
  }

  .s26-role-winner-stats {
    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );
  }
}

@media (max-width: 850px) {
  .s26-podium,
  .s26-role-grid {
    grid-template-columns: 1fr;
  }

  .s26-podium
  .s25-podium-card.place-1 {
    transform: none;
  }
}

@media (max-width: 620px) {
  .s26-summary-grid {
    grid-template-columns: 1fr;
  }

  .s26-tabs {
    display: grid;
    grid-template-columns: 1fr;

    width: 100%;
  }

  .s26-tabs button {
    width: 100%;
  }

  .s26-role-winner-stats {
    grid-template-columns:
      1fr 1fr;
  }
}

/* =========================================================
   PREMI E ARCHIVIO 2.9
   Top 20 dei premi di ruolo
   ========================================================= */

.s29-role-award {
  min-height: auto;
}

.s29-role-subheading {
  margin:
    18px 0 8px;
}

.s29-role-ranking {
  margin-top: 18px;

  border:
    1px solid
    color-mix(
      in srgb,
      var(--s26-role-accent) 24%,
      var(--line)
    );

  border-radius: 14px;

  background:
    rgba(255, 255, 255, .72);

  overflow: hidden;
}

.s29-role-ranking > summary {
  display: flex;

  justify-content: space-between;
  align-items: center;

  gap: 12px;

  padding: 13px 15px;

  cursor: pointer;

  color: #153d30;

  background:
    color-mix(
      in srgb,
      var(--s26-role-accent) 10%,
      #fff
    );

  font-weight: 900;
}

.s29-role-ranking > summary strong {
  color:
    var(--s26-role-accent);
}

.s29-role-ranking
.s26-table-wrap {
  margin: 0;

  border: 0;
  border-radius: 0;

  max-height: 520px;

  overflow-x: auto;
  overflow-y: auto;

  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}

/* Intestazione sempre visibile durante lo scorrimento */

.s29-role-ranking
.s26-ranking-table thead th {
  position: sticky;
  top: 0;
  z-index: 5;
}

/* Barra di scorrimento verticale più visibile */

.s29-role-ranking
.s26-table-wrap::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

.s29-role-ranking
.s26-table-wrap::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 999px;

  background:
    color-mix(
      in srgb,
      var(--s26-role-accent) 65%,
      #6c7772
    );

  background-clip: padding-box;
}

.s29-role-ranking
.s26-table-wrap::-webkit-scrollbar-track {
  background:
    rgba(20, 65, 48, .08);
}

/* Evita che le card si allunghino tutte
   alla stessa altezza nella griglia */

.s26-role-grid {
  align-items: start;
}

.s29-role-award {
  min-width: 0;
}

.s29-role-ranking
.s26-ranking-table {
  min-width: 880px;
}

.s29-archive-modal {
  width:
    min(
      96vw,
      1480px
    );

  max-height: 95vh;
}

.s29-archive-summary {
  margin-bottom: 18px;
}

.s29-archive-summary
.card {
  min-height: 135px;
}

.s29-archive-summary h3 {
  margin:
    7px 0 3px;

  color: #153d30;
}

.s29-archive-summary p {
  margin: 0;

  color: var(--muted);

  font-weight: 800;
}

.s29-archive-ranking {
  margin-bottom: 17px;

  border:
    1px solid
    rgba(38, 91, 69, .18);

  border-radius: 16px;

  overflow: hidden;

  background:
    rgba(255, 255, 255, .72);
}

.s29-archive-ranking > summary {
  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 15px;

  padding: 15px 18px;

  cursor: pointer;

  background:
    linear-gradient(
      135deg,
      rgba(31, 143, 98, .12),
      rgba(211, 169, 46, .12)
    );
}

.s29-archive-ranking
summary > div {
  display: grid;
  gap: 3px;
}

.s29-archive-ranking
summary strong {
  color: #153d30;

  font-size: 18px;
}

.s29-archive-ranking
summary small {
  color: var(--muted);
}

.s29-archive-ranking
summary > span {
  padding: 6px 10px;

  border-radius: 999px;

  color: #765707;

  background:
    rgba(241, 199, 91, .24);

  font-size: 11px;
  font-weight: 900;
}

.s29-archive-ranking-content {
  padding: 18px;
}

.s29-archive-podium {
  display: grid;

  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );

  gap: 14px;

  margin-bottom: 17px;
}

.s29-archive-podium
.s25-podium-card {
  --s25-accent: #c99b20;
}

.s29-archive-role-section,
.s29-archive-standings {
  margin-top: 25px;
}

.s29-archive-role-heading {
  margin-bottom: 13px;
}

.s29-archive-role-heading h3 {
  margin:
    4px 0 3px;

  color: #153d30;

  font-size: 25px;
}

.s29-archive-role-heading p {
  margin: 0;

  color: var(--muted);
}

@media (max-width: 900px) {
  .s29-archive-podium {
    grid-template-columns: 1fr;
  }

  .s29-archive-podium
  .s25-podium-card.place-1 {
    transform: none;
  }
}

@media (max-width: 620px) {
  .s29-archive-ranking-content {
    padding: 12px;
  }

  .s29-archive-ranking > summary {
    align-items: flex-start;
  }
}

/* =========================================================
   TRASCINAMENTO A MANO DELLE TOP 20 PER RUOLO
   ========================================================= */

.s29-role-ranking
.s26-table-wrap {
  cursor: grab;

  overflow-x: auto;
  overflow-y: auto;

  touch-action:
    pan-x pan-y;

  user-select: none;
  -webkit-user-select: none;

  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.s29-role-ranking
.s26-table-wrap.is-dragging {
  cursor: grabbing;
}

.s29-role-ranking
.s26-table-wrap.is-dragging * {
  cursor: grabbing !important;

  user-select: none !important;
  -webkit-user-select: none !important;
}

/*
 * Evita che immagini o testi vengano
 * trascinati separatamente dalla tabella.
 */
.s29-role-ranking
.s26-table-wrap img {
  pointer-events: none;
  -webkit-user-drag: none;
}

/* =========================================================
   PRESTAZIONI APP 3.0
   Scorrimento e disegno delle pagine pesanti
   ========================================================= */

/*
 * Lo sfondo fissato alla finestra obbligava Chrome
 * a ridisegnare tutta la pagina a ogni scatto della rotellina.
 */
body,
body.has-custom-bg {
  background-attachment:
    scroll !important;
}

/*
 * Mantiene il riflesso nella parte alta senza lasciarlo
 * agganciato alla finestra durante tutto lo scorrimento.
 */
body::before {
  position: absolute !important;
  inset: 0 0 auto 0 !important;
  height: 560px;
}

/* Blur eliminato dai contenitori che restano visibili
   mentre la pagina viene spostata. */
.main-nav,
.card,
.header-actions button,
.header-actions .file-button {
  -webkit-backdrop-filter:
    none !important;
  backdrop-filter:
    none !important;
}

.main-nav {
  background:
    rgba(248, 253, 250, .985) !important;
}

/* ---------------------------------------------------------
   HOME
   --------------------------------------------------------- */

#app[data-active-view="home"]
.home-editorial-grid,
#app[data-active-view="home"]
.home-editorial-left,
#app[data-active-view="home"]
.home-newspaper-news,
#app[data-active-view="home"]
.month-award-section,
#app[data-active-view="home"]
.newspaper-team-section {
  contain:
    layout paint style;
}

#app[data-active-view="home"]
.month-award-section,
#app[data-active-view="home"]
.newspaper-team-section {
  content-visibility: auto;
  contain-intrinsic-size:
    900px;
}

#app[data-active-view="home"]
.home-newspaper-news {
  box-shadow:
    0 7px 17px
    rgba(54, 41, 13, .09) !important;
}

/* ---------------------------------------------------------
   GIORNATA E CALENDARIO
   --------------------------------------------------------- */

#app[data-active-view="matchday"]
.season-week-day,
#app[data-active-view="calendar"]
.season-month-card {
  content-visibility: auto;
  contain:
    layout paint style;
}

#app[data-active-view="matchday"]
.season-week-day {
  contain-intrinsic-size:
    370px;
}

#app[data-active-view="calendar"]
.season-month-card {
  contain-intrinsic-size:
    560px;
}

/* ---------------------------------------------------------
   CLASSIFICA E PREMI
   --------------------------------------------------------- */

#app[data-active-view="standings"]
.s25-stats-panel,
#app[data-active-view="awards"]
.s26-role-award,
#app[data-active-view="awards"]
.s29-role-ranking {
  content-visibility: auto;
  contain:
    layout paint style;
}

#app[data-active-view="standings"]
.s25-stats-panel {
  contain-intrinsic-size:
    1250px;
}

#app[data-active-view="awards"]
.s26-role-award {
  contain-intrinsic-size:
    980px;
}

.s25-table-wrap,
.s26-table-wrap {
  overscroll-behavior: contain;
}

/* ---------------------------------------------------------
   ROSA E NEWS
   --------------------------------------------------------- */

#app[data-active-view="mii"]
.player-card,
#app[data-active-view="news"]
.gazzetta-article {
  content-visibility: auto;
  contain:
    layout paint style;
}

#app[data-active-view="mii"]
.player-card {
  contain-intrinsic-size:
    290px;
}

#app[data-active-view="news"]
.gazzetta-article {
  contain-intrinsic-size:
    420px;
}

#app img {
  -webkit-user-drag: none;
}

/* ---------------------------------------------------------
   SCHERMATA DI CALCOLO NON BLOCCANTE
   --------------------------------------------------------- */

.s30-loading-card {
  min-height: 132px;

  display: flex;
  align-items: center;

  gap: 16px;

  margin-top: 18px;

  contain:
    layout paint style;
}

.s30-loading-card > div {
  display: grid;
  gap: 5px;
}

.s30-loading-card strong {
  color: #153d30;
  font-size: 18px;
}

.s30-loading-spinner {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;

  border:
    4px solid
    rgba(31, 143, 98, .18);

  border-top-color:
    #1f8f62;

  border-radius: 50%;

  animation:
    s30Spin .72s linear infinite;
}

@keyframes s30Spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .s30-loading-spinner {
    animation-duration: 1.4s;
  }
}
/* =========================================================
   CORREZIONE SFONDO PRESTAZIONI 3.0.1
   Mantiene l'inquadratura originale senza background-attachment
   ========================================================= */

/*
 * Il body non deve più usare l'immagine come sfondo della sua
 * intera altezza: con pagine molto lunghe "cover" la ingrandiva.
 */
body,
body.has-custom-bg {
  position: relative;
  isolation: isolate;

  background-color: #071813 !important;
  background-image: none !important;
}

/*
 * Lo sfondo viene disegnato una sola volta su un livello grande
 * quanto la finestra. Chrome può tenerlo nella GPU durante lo scroll.
 */
body::after {
  content: "";

  position: fixed;
  inset: -2px;
  z-index: -2;

  pointer-events: none;

  background:
    linear-gradient(
      rgba(4, 23, 17, .42),
      rgba(4, 23, 17, .56)
    ),
    url("assets/stadium-bg.svg")
      center 6% / cover no-repeat,
    #071813;

  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  will-change: transform;
  contain: paint;
}

/* Conserva anche l'eventuale sfondo personalizzato. */
body.has-custom-bg::after {
  background:
    linear-gradient(
      rgba(4, 23, 17, .28),
      rgba(4, 23, 17, .42)
    ),
    var(--custom-bg)
      center 6% / cover no-repeat,
    #071813;
}

/* Il riflesso superiore resta separato e compositato. */
body::before {
  position: fixed !important;
  inset: 0 !important;
  height: auto !important;

  z-index: -1;

  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  contain: paint;
}

/* Il tema chiaro continua a non mostrare lo stadio. */
body[data-theme="chiaro"] {
  background-color: #eef3f1 !important;
}

body[data-theme="chiaro"]::after {
  display: none;
}

/* =========================================================
   ARCHIVIO NAVIGABILE 3.1
   ========================================================= */

.s31-archive-grid {
  display: grid;
  grid-template-columns:
    repeat(auto-fit, minmax(280px, 1fr));
  gap: 17px;
}

.s31-archive-card {
  position: relative;
  display: grid;
  gap: 17px;
  min-height: 300px;
  overflow: hidden;
  contain: layout paint;
}

.s31-archive-card::after {
  content: "";
  position: absolute;
  width: 190px;
  height: 190px;
  right: -74px;
  bottom: -92px;
  border-radius: 50%;
  background:
    rgba(31, 143, 98, .09);
  pointer-events: none;
}

.s31-archive-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.s31-archive-card > header > div {
  display: grid;
  justify-items: start;
  gap: 9px;
}

.s31-archive-number {
  color: rgba(18, 81, 57, .12);
  font-size: 56px;
  font-weight: 950;
  line-height: .9;
  letter-spacing: -.08em;
}

.s31-archive-card-copy {
  position: relative;
  z-index: 1;
}

.s31-archive-card-copy h3 {
  margin: 0 0 7px;
  font-size: 23px;
}

.s31-archive-card-copy p {
  margin: 0;
  color: var(--muted);
}

.s31-archive-card-meta {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.s31-archive-card-meta span {
  padding: 6px 9px;
  border: 1px solid rgba(17, 76, 57, .13);
  border-radius: 999px;
  color: #3e5f53;
  background: rgba(238, 247, 242, .86);
  font-size: 11px;
  font-weight: 850;
}

.s31-archive-card > button {
  position: relative;
  z-index: 1;
  align-self: end;
  width: 100%;
}

.s31-archive-banner {
  position: sticky;
  top: 58px;
  z-index: 18;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
  padding: 14px 16px;
  border: 1px solid rgba(241, 199, 91, .45);
  border-radius: 15px;
  color: #f8fffb;
  background:
    linear-gradient(
      135deg,
      rgba(7, 42, 31, .98),
      rgba(18, 91, 63, .97)
    );
  box-shadow: 0 12px 28px rgba(0, 24, 16, .22);
}

.s31-archive-banner > div {
  display: grid;
  gap: 3px;
}

.s31-archive-banner .kicker {
  color: #f1c75b;
}

.s31-archive-banner strong {
  font-size: 17px;
}

.s31-archive-banner small {
  color: rgba(239, 251, 245, .78);
}

.s31-archive-banner button {
  flex: 0 0 auto;
  border: 1px solid rgba(255, 255, 255, .24);
  background: rgba(255, 255, 255, .94);
}

body.archive-reading-mode
#app {
  position: relative;
}

body.archive-reading-mode
.archive-control-locked,
body.archive-reading-mode
input:disabled,
body.archive-reading-mode
textarea:disabled,
body.archive-reading-mode
select:disabled {
  cursor: not-allowed;
}

body.archive-reading-mode
.archive-control-locked {
  opacity: .45;
  filter: grayscale(.35);
  box-shadow: none;
  transform: none;
}

body.archive-reading-mode
input:disabled,
body.archive-reading-mode
textarea:disabled,
body.archive-reading-mode
select:disabled {
  opacity: .72;
  color: #64736d;
  background: #eef2f0;
}

body.archive-reading-mode
#newSeasonBtn:disabled,
body.archive-reading-mode
#renameSeasonBtn:disabled,
body.archive-reading-mode
#resetBtn:disabled {
  opacity: .46;
}

@media (max-width: 760px) {
  .s31-archive-banner {
    position: relative;
    top: auto;
    align-items: stretch;
    flex-direction: column;
  }

  .s31-archive-banner button {
    width: 100%;
  }
}
/* =========================================================
   ARCHIVIO 3.1.1 — CAMPIONE PREMIUM
   ========================================================= */

.s311-champion-showcase {
  position: relative;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  margin-top: 15px;
  padding: 14px 15px;
  overflow: hidden;
  border: 1px solid rgba(210, 162, 32, .42);
  border-radius: 16px;
  color: #fff9e8;
  background:
    radial-gradient(
      circle at 92% 0%,
      rgba(255, 231, 153, .24),
      transparent 38%
    ),
    linear-gradient(
      135deg,
      #083628 0%,
      #0f6043 58%,
      #9a7114 150%
    );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .16),
    0 11px 24px rgba(2, 38, 26, .18);
  transition:
    transform .18s ease,
    box-shadow .18s ease;
}

.s311-champion-showcase::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(
      112deg,
      transparent 0 52%,
      rgba(255, 255, 255, .10) 53% 61%,
      transparent 62% 100%
    );
}

.s31-archive-card:hover
.s311-champion-showcase {
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .18),
    0 15px 30px rgba(2, 38, 26, .24);
}

.s311-champion-trophy {
  position: relative;
  z-index: 1;
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 232, 157, .42);
  border-radius: 17px;
  background:
    linear-gradient(
      145deg,
      rgba(255, 244, 197, .25),
      rgba(184, 127, 12, .20)
    );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .23),
    0 7px 16px rgba(0, 0, 0, .16);
  font-size: 29px;
  line-height: 1;
}

.s311-champion-copy {
  position: relative;
  z-index: 1;
  min-width: 0;
  display: grid;
  gap: 2px;
}

.s311-champion-copy span {
  color: #f5d778;
  font-size: 10px;
  font-weight: 950;
  line-height: 1.2;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.s311-champion-copy strong {
  overflow: hidden;
  color: #fff;
  font-size: clamp(20px, 2vw, 25px);
  font-weight: 950;
  line-height: 1.08;
  letter-spacing: -.025em;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 2px 11px rgba(0, 0, 0, .22);
}

.s311-champion-copy small {
  color: rgba(239, 251, 245, .75);
  font-size: 11px;
  font-weight: 700;
}

.s311-champion-showcase.is-unassigned {
  border-color: rgba(120, 130, 140, .28);
  background:
    linear-gradient(
      135deg,
      #34443e,
      #59665f
    );
  box-shadow: none;
}

.s311-champion-showcase.is-unassigned
.s311-champion-copy span {
  color: rgba(255, 255, 255, .68);
}

@media (max-width: 430px) {
  .s311-champion-showcase {
    grid-template-columns: 50px minmax(0, 1fr);
    padding: 12px;
  }

  .s311-champion-trophy {
    width: 50px;
    height: 50px;
    border-radius: 14px;
    font-size: 25px;
  }

  .s311-champion-copy strong {
    font-size: 19px;
  }
}
/* =========================================================
   ARCHIVIO 3.1.2 — RACCOGLITORE STAGIONI
   ========================================================= */

.s312-season-grid {
  grid-template-columns:
    repeat(auto-fit, minmax(270px, 1fr));
}

.s312-season-card {
  min-height: 280px;
  align-content: stretch;
  grid-template-rows: auto 1fr auto;
  padding: 20px;
}

.s312-season-card::after {
  width: 210px;
  height: 210px;
  right: -86px;
  bottom: -112px;
  background:
    linear-gradient(
      145deg,
      rgba(31, 143, 98, .13),
      rgba(241, 199, 91, .08)
    );
}

.s312-season-card > header {
  position: relative;
  z-index: 1;
  min-height: 57px;
}

.s312-season-card
.s31-archive-number {
  color: rgba(18, 81, 57, .14);
  font-size: 64px;
}

.s312-season-identity {
  position: relative;
  z-index: 1;
  display: grid;
  align-content: center;
  gap: 8px;
  min-width: 0;
  padding: 12px 0 20px;
}

.s312-season-identity h3 {
  margin: 0;
  color: #123e30;
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 950;
  line-height: 1;
  letter-spacing: -.045em;
}

.s312-season-identity p {
  max-width: 32ch;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.5;
}

.s312-season-card > button {
  min-height: 46px;
  font-size: 14px;
}

body[data-theme="scuro"]
.s312-season-identity h3 {
  color: #eaf8f1;
}

body[data-theme="scuro"]
.s312-season-card
.s31-archive-number {
  color: rgba(226, 246, 236, .12);
}

@media (max-width: 520px) {
  .s312-season-card {
    min-height: 250px;
  }

  .s312-season-identity h3 {
    font-size: 34px;
  }
}

/* =========================================================
   ALBO D'ORO 3.2 — TUTTE LE COMPETIZIONI
   ========================================================= */

.s32-hall-list {
  display: grid;
  gap: 18px;
}

.s32-season-block {
  padding: 0;
  overflow: hidden;
}

.s32-season-block > summary {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 118px;
  padding: 20px 22px;
  cursor: pointer;
  list-style: none;
  user-select: none;
  background:
    linear-gradient(
      135deg,
      rgba(255, 255, 255, .98),
      rgba(236, 248, 242, .96)
    );
}

.s32-season-block > summary::-webkit-details-marker {
  display: none;
}

.s32-season-block.is-current > summary {
  background:
    linear-gradient(
      135deg,
      rgba(236, 250, 243, .99),
      rgba(255, 246, 209, .96)
    );
}

.s32-season-block > summary::after {
  content: "";
  position: absolute;
  right: -52px;
  bottom: -92px;
  width: 220px;
  height: 220px;
  border: 28px solid rgba(18, 95, 66, .07);
  border-radius: 50%;
  pointer-events: none;
}

.s32-season-heading {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 0;
}

.s32-season-number {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
  border-radius: 22px;
  color: #fff;
  background:
    linear-gradient(
      145deg,
      #0a3d2b,
      #23865e
    );
  box-shadow:
    inset 0 1px rgba(255, 255, 255, .28),
    0 12px 24px rgba(7, 62, 42, .18);
  font-size: 27px;
  font-weight: 950;
  letter-spacing: -.04em;
}

.s32-season-heading h3 {
  margin: 3px 0 2px;
  color: #123e30;
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1;
  letter-spacing: -.04em;
}

.s32-season-heading p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.s32-season-summary-side {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: end;
  gap: 9px;
}

.s32-season-toggle {
  color: #1a6549;
  font-size: 12px;
  font-weight: 900;
}

.s32-season-toggle::after {
  content: " ↓";
}

.s32-season-block[open]
.s32-season-toggle::after {
  content: " ↑";
}

.s32-season-content {
  display: grid;
  gap: 26px;
  padding: 8px 22px 24px;
  border-top: 1px solid rgba(17, 76, 57, .12);
}

.s32-competition-grid {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.s32-competition-card {
  --s32-accent: #16764f;
  --s32-soft: rgba(22, 118, 79, .10);

  position: relative;
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 116px;
  padding: 15px;
  overflow: hidden;
  text-align: left;
  color: #173a2e;
  border: 1px solid
    color-mix(
      in srgb,
      var(--s32-accent) 28%,
      transparent
    );
  border-radius: 16px;
  background:
    linear-gradient(
      145deg,
      #fff,
      var(--s32-soft)
    );
  box-shadow:
    0 8px 18px rgba(4, 48, 31, .07);
  transform: none;
  transition:
    transform .15s ease,
    border-color .15s ease,
    box-shadow .15s ease;
}

.s32-competition-card:hover {
  transform: translateY(-2px);
  filter: none;
  border-color:
    color-mix(
      in srgb,
      var(--s32-accent) 52%,
      transparent
    );
  box-shadow:
    0 12px 24px rgba(4, 48, 31, .11);
}

.s32-competition-card::after {
  content: "";
  position: absolute;
  right: -28px;
  bottom: -42px;
  width: 100px;
  height: 100px;
  border: 18px solid var(--s32-soft);
  border-radius: 50%;
  pointer-events: none;
}

.s32-competition-card.competition-league {
  --s32-accent: #178a56;
  --s32-soft: rgba(23, 138, 86, .11);
}

.s32-competition-card.competition-cup {
  --s32-accent: #b3261e;
  --s32-soft: rgba(179, 38, 30, .10);
}

.s32-competition-card.competition-champions {
  --s32-accent: #1859cf;
  --s32-soft: rgba(24, 89, 207, .11);
}

.s32-competition-card.competition-europa {
  --s32-accent: #d46c12;
  --s32-soft: rgba(212, 108, 18, .12);
}

.s32-competition-card.competition-conference {
  --s32-accent: #55a817;
  --s32-soft: rgba(85, 168, 23, .12);
}

.s32-competition-card.competition-worldCup {
  --s32-accent: #bd8a04;
  --s32-soft: rgba(225, 181, 32, .16);
}

.s32-competition-card.is-unavailable {
  opacity: .68;
  filter: saturate(.65);
}

.s32-competition-icon {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 15px;
  color: #fff;
  background: var(--s32-accent);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, .28);
  font-size: 23px;
  font-weight: 950;
}

.s32-competition-copy {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 3px;
  min-width: 0;
}

.s32-competition-copy small {
  color: var(--s32-accent);
  font-size: 11px;
  font-style: normal;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.s32-competition-copy strong {
  overflow: hidden;
  color: #153d30;
  font-size: 17px;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.s32-competition-copy em {
  color: var(--muted);
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
}

.s32-competition-arrow {
  position: relative;
  z-index: 1;
  color: var(--s32-accent);
  font-size: 27px;
  font-weight: 900;
}

.s32-general-section {
  padding-top: 2px;
}

.s32-general-grid {
  display: grid;
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.s32-general-award {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 94px;
  padding: 12px;
  border: 1px solid rgba(17, 76, 57, .13);
  border-radius: 14px;
  background: rgba(255, 255, 255, .78);
}

.s32-general-award.is-empty {
  opacity: .7;
}

.s32-general-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: #eef7f2;
  font-size: 19px;
}

.s32-general-award > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.s32-general-award small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.s32-general-award strong {
  overflow: hidden;
  color: #153d30;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.s32-general-award span:last-child {
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Modale della singola competizione */

.s32-competition-modal {
  --s32-modal-accent: #16764f;
}

.s32-competition-modal.competition-cup {
  --s32-modal-accent: #b3261e;
}

.s32-competition-modal.competition-champions {
  --s32-modal-accent: #1859cf;
}

.s32-competition-modal.competition-europa {
  --s32-modal-accent: #d46c12;
}

.s32-competition-modal.competition-conference {
  --s32-modal-accent: #55a817;
}

.s32-competition-modal.competition-worldCup {
  --s32-modal-accent: #bd8a04;
}

.s32-winner-hero {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  min-height: 150px;
  padding: 22px;
  overflow: hidden;
  border: 1px solid
    color-mix(
      in srgb,
      var(--s32-modal-accent) 28%,
      transparent
    );
  border-radius: 20px;
  background:
    linear-gradient(
      135deg,
      rgba(255, 255, 255, .98),
      color-mix(
        in srgb,
        var(--s32-modal-accent) 12%,
        #fff
      )
    );
}

.s32-winner-icon {
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  border-radius: 24px;
  color: #fff;
  background: var(--s32-modal-accent);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, .30),
    0 14px 28px
      color-mix(
        in srgb,
        var(--s32-modal-accent) 24%,
        transparent
      );
  font-size: 35px;
  font-weight: 950;
}

.s32-winner-hero > div {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.s32-winner-hero small {
  color: var(--s32-modal-accent);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.s32-winner-hero strong {
  overflow-wrap: anywhere;
  color: #123e30;
  font-size: clamp(27px, 5vw, 44px);
  font-weight: 950;
  line-height: 1;
  letter-spacing: -.045em;
}

.s32-winner-hero p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
}

.s32-modal-awards-grid {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.s32-modal-award {
  display: grid;
  align-content: start;
  gap: 6px;
  min-height: 150px;
  padding: 16px;
  border: 1px solid rgba(17, 76, 57, .14);
  border-radius: 16px;
  background: rgba(255, 255, 255, .86);
}

.s32-modal-award.is-empty {
  opacity: .7;
}

.s32-modal-award > span {
  font-size: 25px;
}

.s32-modal-award small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.s32-modal-award strong {
  color: #153d30;
  font-size: 20px;
  line-height: 1.1;
}

.s32-modal-award p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.4;
}

.s32-modal-footnote {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.s32-modal-footnote span {
  padding: 7px 10px;
  border-radius: 999px;
  color: #205641;
  background: #eaf5ef;
  font-size: 11px;
  font-weight: 850;
}

body[data-theme="scuro"]
.s32-season-block > summary {
  background:
    linear-gradient(
      135deg,
      rgba(18, 48, 38, .98),
      rgba(20, 70, 51, .96)
    );
}

body[data-theme="scuro"]
.s32-season-block.is-current > summary {
  background:
    linear-gradient(
      135deg,
      rgba(21, 67, 49, .98),
      rgba(83, 66, 20, .95)
    );
}

body[data-theme="scuro"]
.s32-season-heading h3,
body[data-theme="scuro"]
.s32-competition-copy strong,
body[data-theme="scuro"]
.s32-general-award strong,
body[data-theme="scuro"]
.s32-winner-hero strong,
body[data-theme="scuro"]
.s32-modal-award strong {
  color: #eaf8f1;
}

body[data-theme="scuro"]
.s32-competition-card,
body[data-theme="scuro"]
.s32-general-award,
body[data-theme="scuro"]
.s32-modal-award,
body[data-theme="scuro"]
.s32-winner-hero {
  background:
    linear-gradient(
      145deg,
      rgba(17, 44, 35, .98),
      rgba(25, 58, 46, .96)
    );
}

body[data-theme="scuro"]
.s32-general-icon,
body[data-theme="scuro"]
.s32-modal-footnote span {
  color: #d9f2e6;
  background: rgba(62, 143, 104, .18);
}

@media (max-width: 1050px) {
  .s32-competition-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .s32-general-grid {
    grid-template-columns:
      repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .s32-season-block > summary {
    align-items: flex-start;
    min-height: 104px;
    padding: 17px;
  }

  .s32-season-number {
    width: 58px;
    height: 58px;
    flex-basis: 58px;
    border-radius: 18px;
    font-size: 22px;
  }

  .s32-season-summary-side {
    gap: 6px;
  }

  .s32-season-toggle {
    display: none;
  }

  .s32-season-content {
    padding:
      6px 15px 18px;
  }

  .s32-general-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .s32-modal-awards-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .s32-season-heading {
    align-items: flex-start;
    gap: 11px;
  }

  .s32-season-heading h3 {
    font-size: 25px;
  }

  .s32-season-heading p {
    max-width: 22ch;
  }

  .s32-competition-grid,
  .s32-general-grid {
    grid-template-columns: 1fr;
  }

  .s32-competition-card {
    min-height: 104px;
  }

  .s32-winner-hero {
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .s32-winner-icon {
    width: 62px;
    height: 62px;
    border-radius: 19px;
    font-size: 29px;
  }
}
/* =========================================================
   AUTOGOL + CONTROLLO DIFENSORI MII 3.3
   ========================================================= */

.s33-goal-row {
  grid-template-columns:
    minmax(82px, .55fr)
    minmax(135px, .75fr)
    minmax(180px, 1fr)
    minmax(180px, 1fr)
    auto;
  align-items: end;
  transition:
    border-color .16s ease,
    background-color .16s ease;
}

.s33-goal-row.is-own-goal {
  border-color: rgba(181, 74, 45, .38);
  background:
    linear-gradient(
      135deg,
      rgba(255, 242, 235, .96),
      rgba(255, 250, 246, .92)
    );
}

.s33-goal-row.is-own-goal .goal-type,
.s33-goal-row.is-own-goal .goal-scorer {
  border-color: rgba(181, 74, 45, .42);
}

.s33-goal-assist-field select:disabled {
  opacity: .52;
  cursor: not-allowed;
  background: rgba(228, 233, 230, .82);
}

.s33-beneficiary-badge {
  min-height: 38px;
  align-self: end;
  justify-content: center;
  white-space: nowrap;
}

.s33-own-goal-timeline {
  border-left: 4px solid #b54a2d;
  background: rgba(255, 237, 229, .88);
}

.s33-own-goal-timeline span {
  font-weight: 850;
  color: #7d2f1d;
}

.s33-defender-audit {
  margin-top: 18px;
  border-top: 1px solid rgba(17, 76, 57, .16);
  padding-top: 14px;
}

.s33-defender-audit > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  color: #153d30;
  font-size: 13px;
  font-weight: 900;
  list-style: none;
}

.s33-defender-audit > summary::-webkit-details-marker {
  display: none;
}

.s33-defender-audit > summary::after {
  content: "▾";
  margin-left: auto;
  color: var(--accent-user);
  font-size: 16px;
}

.s33-defender-audit:not([open]) > summary::after {
  content: "▸";
}

.s33-defender-audit > summary strong {
  color: var(--muted);
  font-size: 11px;
  letter-spacing: .02em;
}

.s33-defender-note {
  margin: 12px 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(31, 143, 98, .08);
  color: #40554c;
  font-size: 12px;
  line-height: 1.45;
}

.s33-defender-list {
  display: grid;
  gap: 9px;
}

.s33-defender-row {
  display: grid;
  grid-template-columns:
    minmax(150px, .8fr)
    minmax(270px, 1.25fr)
    minmax(180px, .9fr);
  gap: 12px;
  align-items: center;
  padding: 11px 12px;
  border: 1px solid rgba(17, 76, 57, .14);
  border-radius: 12px;
  background: rgba(249, 253, 251, .88);
}

.s33-defender-player,
.s33-defender-numbers {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
  align-items: center;
}

.s33-defender-player {
  display: grid;
  gap: 3px;
}

.s33-defender-player strong {
  color: #123e30;
  font-size: 14px;
}

.s33-defender-player span,
.s33-defender-numbers span {
  color: var(--muted);
  font-size: 11px;
}

.s33-defender-numbers strong {
  color: #153d30;
  font-size: 12px;
}

.s33-defender-status {
  display: inline-flex;
  justify-content: center;
  padding: 7px 9px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.25;
  text-align: center;
}

.s33-defender-status.is-success {
  color: #176634;
  background: rgba(55, 166, 92, .17);
}

.s33-defender-status.is-warning {
  color: #805000;
  background: rgba(241, 185, 44, .20);
}

.s33-defender-status.is-danger {
  color: #8c281d;
  background: rgba(198, 66, 56, .15);
}

.s33-defender-status.is-neutral {
  color: #40505a;
  background: rgba(120, 130, 140, .14);
}

.s33-defender-empty {
  margin-top: 12px;
  padding: 12px;
  border-radius: 10px;
  background: rgba(241, 185, 44, .15);
  color: #715000;
  font-size: 12px;
  line-height: 1.45;
}

body[data-theme="scuro"] .s33-goal-row.is-own-goal {
  background: rgba(93, 40, 28, .36);
}

body[data-theme="scuro"] .s33-defender-row,
body[data-theme="scuro"] .s33-defender-note {
  background: rgba(6, 36, 27, .62);
}

body[data-theme="scuro"] .s33-defender-audit > summary,
body[data-theme="scuro"] .s33-defender-player strong,
body[data-theme="scuro"] .s33-defender-numbers strong {
  color: #e9f7f0;
}

body[data-theme="scuro"] .s33-defender-note,
body[data-theme="scuro"] .s33-defender-player span,
body[data-theme="scuro"] .s33-defender-numbers span {
  color: #bfd4ca;
}

@media (max-width: 980px) {
  .s33-goal-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .s33-beneficiary-badge {
    grid-column: 1 / -1;
  }

  .s33-defender-row {
    grid-template-columns: 1fr;
  }

  .s33-defender-status {
    justify-self: start;
  }
}

@media (max-width: 620px) {
  .s33-goal-row {
    grid-template-columns: 1fr;
  }

  .s33-defender-audit > summary {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* =========================================================
   NUOVA STAGIONE 3.4
   ========================================================= */

.s34-new-season-modal {
  width: min(920px, 100%);
}

.s34-new-season-modal > header h2 {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 4px;
}

.s34-new-season-modal > header h2 span {
  color: var(--accent-user);
  font-size: .8em;
}

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

.s34-season-summary > div {
  display: grid;
  gap: 7px;
  min-height: 104px;
  align-content: center;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(31, 143, 98, .07);
}

.s34-season-summary span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.s34-season-summary strong {
  color: #123e30;
  font-size: clamp(22px, 3vw, 31px);
  line-height: 1;
}

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

.s34-status-item {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  min-height: 72px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255, 255, 255, .72);
}

.s34-status-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 17px;
  font-weight: 950;
}

.s34-status-item div {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.s34-status-item strong,
.s34-status-item small {
  overflow: hidden;
  text-overflow: ellipsis;
}

.s34-status-item small {
  color: var(--muted);
  font-size: 12px;
}

.s34-status-item.is-complete {
  border-color: rgba(35, 137, 84, .28);
  background: rgba(35, 137, 84, .08);
}

.s34-status-item.is-complete .s34-status-icon {
  color: #176438;
  background: rgba(35, 137, 84, .16);
}

.s34-status-item.is-incomplete {
  border-color: rgba(190, 123, 0, .32);
  background: rgba(255, 184, 45, .10);
}

.s34-status-item.is-incomplete .s34-status-icon {
  color: #875600;
  background: rgba(255, 184, 45, .22);
}

.s34-status-item.is-not-played {
  opacity: .72;
}

.s34-status-item.is-not-played .s34-status-icon {
  color: #60746c;
  background: rgba(96, 116, 108, .13);
}

.s34-transition-note {
  margin-top: 16px;
  padding: 14px 16px;
  border-left: 5px solid;
  border-radius: 10px;
  line-height: 1.5;
}

.s34-transition-note.is-ready {
  color: #184f34;
  border-left-color: #278954;
  background: rgba(39, 137, 84, .10);
}

.s34-transition-note.is-warning {
  color: #734a00;
  border-left-color: #c48600;
  background: rgba(255, 190, 57, .15);
}

.s34-season-name-field {
  margin-top: 18px;
}

.s34-season-name-field input {
  font-size: 16px;
  font-weight: 800;
}

.s34-preserved-data {
  display: grid;
  gap: 4px;
  margin-top: 14px;
  padding: 13px 15px;
  border: 1px dashed rgba(31, 143, 98, .34);
  border-radius: 12px;
  background: rgba(31, 143, 98, .055);
}

.s34-preserved-data span {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.s34-confirm-interrupted {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  margin-top: 16px;
  padding: 14px;
  border: 1px solid rgba(179, 38, 30, .24);
  border-radius: 12px;
  color: #76251f;
  background: rgba(179, 38, 30, .07);
  font-size: 13px;
  font-weight: 750;
  line-height: 1.45;
}

.s34-confirm-interrupted input {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  margin: 1px 0 0;
}

body[data-theme="scuro"]
.s34-season-summary strong,
body[data-theme="scuro"]
.s34-status-item strong {
  color: #e9f7ef;
}

body[data-theme="scuro"]
.s34-season-summary > div,
body[data-theme="scuro"]
.s34-status-item {
  background: rgba(7, 31, 23, .66);
}

body[data-theme="scuro"]
.s34-transition-note.is-ready {
  color: #c7f0d9;
}

body[data-theme="scuro"]
.s34-transition-note.is-warning {
  color: #ffe0a1;
}

body[data-theme="scuro"]
.s34-confirm-interrupted {
  color: #ffd0cc;
}

@media (max-width: 680px) {
  .s34-season-summary,
  .s34-status-grid {
    grid-template-columns: 1fr;
  }

  .s34-season-summary > div {
    min-height: 86px;
  }

  .s34-new-season-modal > header h2 {
    font-size: 22px;
  }
}
/* =========================================================
   TRACKER COMPLETO GIOCATORI MII 3.5
   ========================================================= */

.s35-tracker-card {
  margin-top: 26px;
  padding: 0;
  overflow: hidden;
  border-color: rgba(241, 199, 91, .36);
}

.s35-tracker-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding: 24px;
  color: #fff;
  background:
    radial-gradient(circle at 88% 8%, rgba(241, 199, 91, .20), transparent 24%),
    linear-gradient(135deg, #082b21, #176345 62%, #208b61);
}

.s35-tracker-header h2 {
  margin: 4px 0 6px;
  color: #fff;
  font-size: clamp(24px, 3vw, 34px);
  letter-spacing: -.035em;
}

.s35-tracker-header p {
  margin: 0;
  color: rgba(239, 250, 244, .82);
}

.s35-tracker-header .kicker {
  color: #f3d77e;
}

.s35-tracker-filters {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) minmax(220px, 1.15fr);
  gap: 12px;
  width: min(500px, 100%);
}

.s35-tracker-filters .field {
  color: #eaf8f1;
}

.s35-tracker-filters select {
  border-color: rgba(255, 255, 255, .25);
  background: rgba(255, 255, 255, .94);
  color: #153d30;
  font-weight: 800;
}

.s35-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: rgba(15, 81, 57, .13);
  border-bottom: 1px solid var(--line);
}

.s35-summary-grid article {
  display: grid;
  gap: 5px;
  padding: 17px 20px;
  background: rgba(255, 255, 255, .88);
}

.s35-summary-grid span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.s35-summary-grid strong {
  color: #123e30;
  font-size: 26px;
  line-height: 1;
}

.s35-table-wrap {
  border: 0;
  border-radius: 0;
  max-height: 690px;
}

.s35-tracker-table {
  min-width: 1870px;
  border-radius: 0;
}

.s35-tracker-table th,
.s35-tracker-table td {
  text-align: center;
  vertical-align: middle;
}

.s35-tracker-table th {
  padding: 0;
  top: 0;
  z-index: 5;
}

.s35-tracker-table th:first-child,
.s35-tracker-table td:first-child {
  position: sticky;
  left: 0;
}

.s35-tracker-table th:first-child {
  z-index: 8;
  min-width: 250px;
  background: linear-gradient(135deg, #123e30, #1c6e50);
}

.s35-tracker-table td:first-child {
  z-index: 2;
  background: rgba(251, 254, 252, .98);
  box-shadow: 8px 0 18px rgba(10, 56, 39, .06);
}

.s35-sort-button,
.s35-sort-button:hover {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  min-height: 46px;
  padding: 10px 11px;
  border-radius: 0;
  color: inherit;
  background: transparent !important;
  box-shadow: none !important;
  filter: none;
  transform: none;
  font-size: 11px;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.s35-sort-button b {
  color: rgba(255, 255, 255, .58);
  font-size: 13px;
}

.s35-sort-button.is-active {
  background: rgba(255, 255, 255, .12) !important;
}

.s35-sort-button.is-active b {
  color: #f3d77e;
}

.s35-player-cell {
  min-width: 250px;
  text-align: left !important;
}

.s35-player-identity {
  display: flex;
  align-items: center;
  gap: 10px;
}

.s35-player-avatar {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(135deg, #0c5138, #28a574);
  box-shadow: 0 6px 14px rgba(18, 103, 72, .18);
  font-size: 12px;
  font-weight: 950;
}

.s35-player-identity > span:last-child {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.s35-player-identity strong {
  overflow: hidden;
  color: #153d30;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.s35-player-identity small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.s35-competition-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5px;
  min-width: 210px;
}

.s35-competition-tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 7px;
  border: 1px solid rgba(18, 81, 57, .16);
  border-radius: 999px;
  color: #205943;
  background: #edf7f1;
  font-size: 10px;
  font-weight: 850;
}

.s35-competition-tag.is-champions {
  color: #174d9d;
  background: rgba(52, 134, 235, .13);
}

.s35-competition-tag.is-europa {
  color: #8a4900;
  background: rgba(241, 145, 44, .15);
}

.s35-competition-tag.is-conference {
  color: #176634;
  background: rgba(55, 166, 92, .15);
}

.s35-competition-tag.is-worldCup {
  color: #745400;
  background: rgba(241, 199, 91, .24);
}

.s35-no-competition {
  color: var(--muted);
}

.s35-tracker-footer {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 20px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  background: rgba(237, 247, 241, .72);
  font-size: 11px;
  font-weight: 700;
}

.s35-empty {
  margin: 20px;
}

body[data-theme="scuro"] .s35-summary-grid article,
body[data-theme="scuro"] .s35-tracker-table td:first-child {
  background: rgba(13, 40, 31, .98);
}

body[data-theme="scuro"] .s35-summary-grid strong,
body[data-theme="scuro"] .s35-player-identity strong {
  color: #eaf8f1;
}

body[data-theme="scuro"] .s35-tracker-footer {
  background: rgba(9, 31, 24, .88);
}

body[data-theme="scuro"] .s35-competition-tag {
  color: #d9eee4;
  background: rgba(38, 126, 89, .20);
}

@media (max-width: 900px) {
  .s35-tracker-header {
    align-items: stretch;
    flex-direction: column;
  }

  .s35-tracker-filters {
    width: 100%;
  }

  .s35-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .s35-tracker-header {
    padding: 20px 16px;
  }

  .s35-tracker-filters,
  .s35-summary-grid {
    grid-template-columns: 1fr;
  }

  .s35-tracker-footer {
    flex-direction: column;
  }
}

/* =========================================================
   TRACKER MII 3.5.1 — VISTA COMPATTA E MANINA
   ========================================================= */

.s35-summary-grid {
  display: none !important;
}

.s351-role-cell {
  min-width: 145px;
  color: #174d3a;
  font-size: 12px;
  font-weight: 900;
  text-align: center;
  white-space: nowrap;
}

.s35-table-wrap {
  cursor: grab;
}

.s35-table-wrap.is-dragging,
.s35-table-wrap.is-dragging * {
  cursor: grabbing !important;
  user-select: none !important;
}

body[data-theme="scuro"]
.s351-role-cell {
  color: #dff4e9;
}

/* =========================================================
   SOSTITUZIONE MII 3.6
   ========================================================= */

.s36-replace-button {
  margin-right: auto;
}

.s36-replacement-modal {
  width: min(720px, 100%);
}

.s36-warning {
  margin-bottom: 18px;
}

.s36-warning strong {
  color: #7d241f;
}

.s36-name-field {
  margin-top: 4px;
}

.s36-help {
  margin: 14px 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.s36-confirm {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 10px;
  align-items: start;
  padding: 14px;
  border: 1px solid rgba(179, 38, 30, .25);
  border-radius: 12px;
  background: rgba(179, 38, 30, .07);
  color: #5c2926;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.45;
}

.s36-confirm input {
  width: 18px;
  height: 18px;
  margin-top: 1px;
}

body[data-theme="scuro"]
.s36-warning strong,
body[data-theme="scuro"]
.s36-confirm {
  color: #ffd7d3;
}

body[data-theme="scuro"]
.s36-confirm {
  border-color:
    rgba(255, 120, 110, .32);

  background:
    rgba(145, 35, 29, .22);
}

@media (max-width: 620px) {
  .s36-replace-button {
    width: 100%;
    margin-right: 0;
  }

  .s36-replacement-modal
  .footer {
    flex-wrap: wrap;
  }
}

/* =========================================================
   NAVIGAZIONE COMPATTA 3.7
   ========================================================= */

#mainNav[data-s37-ready="1"] {
  overflow: visible;
  align-items: center;
}

.s37-menu-shell,
.s37-menu-groups {
  display: flex;
  align-items: center;
  gap: 6px;
}

.s37-menu-shell {
  min-width: 0;
}

.s37-mobile-menu-toggle {
  display: none;
}

.s37-nav-group {
  position: relative;
  flex: 0 0 auto;
}

#mainNav .s37-nav-trigger,
#mainNav .s37-mobile-menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}

#mainNav .s37-nav-trigger b,
#mainNav .s37-mobile-menu-toggle b {
  font-size: 11px;
  line-height: 1;
  transition: transform .18s ease;
}

.s37-nav-group.is-open
.s37-nav-trigger b {
  transform: rotate(180deg);
}

#mainNav .s37-nav-group.is-active
.s37-nav-trigger {
  color: #fff;
  background: var(--navy);
}

.s37-nav-panel {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  z-index: 80;
  display: none;
  width: max-content;
  min-width: 235px;
  max-width: min(300px, calc(100vw - 24px));
  padding: 8px;
  border: 1px solid rgba(17, 76, 57, .17);
  border-radius: 15px;
  background: rgba(250, 254, 252, .98);
  box-shadow: 0 20px 46px rgba(0, 24, 16, .23);
  backdrop-filter: blur(18px);
}

.s37-nav-group:last-child
.s37-nav-panel {
  right: 0;
  left: auto;
}

.s37-nav-group.is-open
.s37-nav-panel {
  display: grid;
  gap: 4px;
  animation: s37NavOpen .14s ease-out;
}

@keyframes s37NavOpen {
  from {
    opacity: 0;
    transform: translateY(-5px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

#mainNav .s37-nav-panel button {
  width: 100%;
  justify-content: flex-start;
  padding: 10px 12px;
  border-radius: 10px;
  color: #29483d;
  background: transparent;
  box-shadow: none;
  text-align: left;
  white-space: nowrap;
}

#mainNav .s37-nav-panel button:hover {
  color: #103d2e;
  background: #e8f5ee;
  transform: none;
  box-shadow: none;
}

#mainNav .s37-nav-panel button.active {
  color: #fff;
  background: linear-gradient(
    135deg,
    #0d5138,
    #208b61
  );
}

body[data-theme="scuro"]
.s37-nav-panel,
body[data-theme="scuro"]
.s37-menu-groups {
  border-color: rgba(255, 255, 255, .12);
  background: rgba(10, 35, 27, .98);
}

body[data-theme="scuro"]
#mainNav .s37-nav-panel button {
  color: #dcece5;
}

body[data-theme="scuro"]
#mainNav .s37-nav-panel button:hover {
  color: #fff;
  background: rgba(255, 255, 255, .09);
}

@media (max-width: 820px) {
  #mainNav[data-s37-ready="1"] {
    gap: 5px;
    padding-right: 10px;
    padding-left: 10px;
  }

  #mainNav[data-s37-ready="1"]
  .s37-direct-link {
    padding-right: 12px;
    padding-left: 12px;
  }

  .s37-menu-shell {
    position: static;
    margin-left: auto;
  }

  #mainNav .s37-mobile-menu-toggle {
    display: inline-flex;
  }

  .s37-menu-groups {
    position: absolute;
    top: calc(100% + 8px);
    right: 10px;
    left: 10px;
    z-index: 90;
    display: none;
    max-height: calc(100vh - 92px);
    padding: 10px;
    overflow: auto;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    border: 1px solid rgba(17, 76, 57, .17);
    border-radius: 16px;
    background: rgba(250, 254, 252, .98);
    box-shadow: 0 22px 50px rgba(0, 24, 16, .28);
    backdrop-filter: blur(18px);
  }

  .s37-menu-shell.is-open
  .s37-menu-groups {
    display: flex;
    animation: s37NavOpen .14s ease-out;
  }

  .s37-nav-group {
    position: static;
    width: 100%;
  }

  #mainNav .s37-nav-trigger {
    width: 100%;
    justify-content: space-between;
    padding: 11px 13px;
    border-radius: 11px;
    color: #29483d;
    background: #edf7f2;
  }

  #mainNav .s37-nav-group.is-active
  .s37-nav-trigger {
    color: #fff;
    background: linear-gradient(
      135deg,
      #0d5138,
      #208b61
    );
  }

  .s37-nav-panel,
  .s37-nav-group:last-child
  .s37-nav-panel {
    position: static;
    display: none;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin-top: 6px;
    padding: 5px;
    border-radius: 11px;
    box-shadow: none;
  }

  .s37-nav-group.is-open
  .s37-nav-panel {
    display: grid;
    animation: none;
  }

  #mainNav .s37-nav-panel button {
    white-space: normal;
  }

  body[data-theme="scuro"]
  #mainNav .s37-nav-trigger {
    color: #dcece5;
    background: rgba(255, 255, 255, .07);
  }
}

@media (max-width: 390px) {
  #mainNav[data-s37-ready="1"]
  .s37-direct-link,
  #mainNav .s37-mobile-menu-toggle {
    padding-right: 10px;
    padding-left: 10px;
    font-size: 12px;
  }
}

/* Correzione navigazione 3.7.1:
   il pulsante Menu compare solo su telefono/tablet */

@media (min-width: 821px) {
  #mainNav .s37-mobile-menu-toggle {
    display: none !important;
  }
}

/* =========================================================
   DISCIPLINA MULTICOMPETIZIONE 3.8
   ========================================================= */

.s38-discipline-note,
.s38-editor-discipline-note {
  margin-bottom: 14px;
}

.s38-discipline-list {
  display: grid;
  gap: 7px;
  min-width: 245px;
  white-space: normal;
}

.s38-discipline-line {
  display: grid;
  gap: 4px;
  justify-items: start;
}

.s38-discipline-line small {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
  white-space: normal;
}

.s38-discipline-chip {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 4px 9px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: #fff;
  background: #8d2d27;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.s38-discipline-chip.is-warning {
  color: #624400;
  border-color: rgba(183, 126, 0, .30);
  background: #fff0b8;
}

.s38-discipline-chip[
  data-competition="league"
] {
  background: #18754d;
}

.s38-discipline-chip[
  data-competition="cup"
] {
  color: #4b3500;
  background: #efc95d;
}

.s38-discipline-chip[
  data-competition="champions"
] {
  background: #2458b8;
}

.s38-discipline-chip[
  data-competition="europa"
] {
  background: #d66c1e;
}

.s38-discipline-chip[
  data-competition="conference"
] {
  background: #168e82;
}

.s38-discipline-chip[
  data-competition="worldCup"
] {
  background:
    linear-gradient(
      135deg,
      #781f35,
      #b88a25
    );
}

.s38-competition-suspended {
  box-shadow:
    inset 0 0 0 3px
      rgba(179, 38, 30, .46),
    0 10px 24px
      rgba(70, 12, 8, .22)
    !important;
}

.s38-suspension-badge {
  background:
    #a9241d !important;
}

.s38-warning-badge {
  color:
    #5f4300 !important;

  background:
    #f4c94f !important;
}

.s38-formation-note {
  color:
    #ffd6d2 !important;

  font-size:
    10px !important;

  font-weight:
    850;

  line-height:
    1.3;
}

.s38-settings-rule {
  margin: 0;
  font-weight: 650;
}

body[data-theme="scuro"]
.s38-discipline-chip.is-warning {
  color: #ffe9a2;

  border-color:
    rgba(255, 211, 90, .34);

  background:
    rgba(139, 98, 0, .38);
}

body[data-theme="scuro"]
.s38-discipline-line small {
  color: #c9dbd3;
}

@media (max-width: 760px) {
  .s38-discipline-list {
    min-width: 210px;
  }
}

/* =========================================================
   MIILAB MULTICOMPETIZIONE 3.9
   ========================================================= */

.s39-medical-note {
  margin-bottom: 14px;
  border-left-color: #8d3bb8;
  background: rgba(141, 59, 184, .09);
}

.s39-return-label {
  display: inline-flex;
  max-width: 230px;
  color: #7a241f;
  font-size: 12px;
  font-weight: 850;
  line-height: 1.35;
  white-space: normal;
}

.s39-injury-unavailable {
  box-shadow:
    inset 0 0 0 3px rgba(176, 45, 37, .48),
    0 10px 24px rgba(70, 12, 8, .22)
    !important;
}

.s39-injury-badge {
  background: #a9241d !important;
}

.s39-formation-injury-note {
  display: block;
  margin-top: 3px;
  color: #ffd6d2 !important;
  font-size: 10px !important;
  font-weight: 850;
  line-height: 1.3;
}

body[data-theme="scuro"]
.s39-medical-note {
  color: #eddcff;
  border-left-color: #c589ea;
  background: rgba(121, 51, 160, .24);
}

body[data-theme="scuro"]
.s39-return-label {
  color: #ffd5d1;
}

/* =========================================================
   NEWS MULTICOMPETIZIONE 3.10
   ========================================================= */

.s310-news-filter-bar {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
  padding: 10px;
  overflow-x: auto;
  border:
    1px solid
    rgba(22, 72, 55, .14);
  border-radius: 16px;
  background:
    rgba(249, 253, 251, .92);
  box-shadow:
    0 10px 28px
    rgba(5, 43, 30, .08);
  scrollbar-width: thin;
}

.s310-news-filter-bar button {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
  min-height: 39px;
  padding: 8px 12px;
  border:
    1px solid
    rgba(18, 72, 53, .12);
  border-radius: 999px;
  color: #36564a;
  background: #edf6f2;
  box-shadow: none;
  font-size: 12px;
}

.s310-news-filter-bar
button:hover {
  color: #123c2d;
  background: #e0f1e9;
  transform: none;
}

.s310-news-filter-bar
button.is-active {
  color: #fff;
  border-color: transparent;
  background:
    linear-gradient(
      135deg,
      #0e4b35,
      #228560
    );
  box-shadow:
    0 7px 18px
    rgba(11, 72, 49, .20);
}

.s310-news-filter-bar button b {
  display: grid;
  min-width: 21px;
  height: 21px;
  place-items: center;
  padding: 0 5px;
  border-radius: 999px;
  color: inherit;
  background:
    rgba(255, 255, 255, .18);
  font-size: 10px;
}

.s310-gazzetta-page {
  border-color:
    rgba(42, 35, 20, .22);
}

.s310-news-grid {
  gap: 14px !important;
  padding: 16px !important;
}

.s310-news-card {
  --s310-accent: #7c1d18;
  --s310-accent-2: #b64431;
  --s310-paper: #fffaf0;
  --s310-paper-2: #f4ead2;
  --s310-ink: #2e261b;
  --s310-muted: #766852;
  --s310-line:
    rgba(70, 53, 29, .22);

  position: relative;
  isolation: isolate;
  min-height: 340px;
  padding: 18px !important;
  overflow: hidden;
  border:
    1px solid
    var(--s310-line)
    !important;
  border-radius:
    18px !important;
  background:
    linear-gradient(
      145deg,
      var(--s310-paper),
      var(--s310-paper-2)
    )
    !important;
  box-shadow:
    0 15px 34px
    rgba(45, 33, 15, .13)
    !important;
}

.s310-news-card.lead {
  min-height: 410px;
  padding: 24px !important;
  border:
    1px solid
    var(--s310-line)
    !important;
}

.s310-news-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  opacity: .68;
}

.s310-news-card::after {
  content:
    attr(data-s310-icon);
  position: absolute;
  right: 18px;
  bottom: -22px;
  z-index: -1;
  color:
    var(--s310-accent);
  font-size: 110px;
  font-weight: 950;
  line-height: 1;
  opacity: .075;
  pointer-events: none;
  transform: rotate(-8deg);
}

.s310-news-card
.manual-editorial::before {
  display: block;
}

.s310-news-card
.manual-editorial::after,
.s310-news-card
.automatic-editorial::after {
  display: block;
}

.gazzetta-article
.s310-news-card
.manual-editorial::before {
  content: "";
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
}

.s310-card-brand {
  display: grid;
  grid-template-columns:
    48px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
  margin:
    -18px -18px 16px;
  padding: 12px 15px;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      var(--s310-accent),
      var(--s310-accent-2)
    );
}

.s310-news-card.lead
.s310-card-brand {
  margin:
    -24px -24px 20px;
  padding: 15px 20px;
}

.s310-card-emblem {
  display: grid;
  width: 43px;
  height: 43px;
  place-items: center;
  border:
    1px solid
    rgba(255, 255, 255, .34);
  border-radius: 13px;
  background:
    rgba(255, 255, 255, .13);
  box-shadow:
    inset 0 1px 0
    rgba(255, 255, 255, .20);
  font-size: 22px;
}

.s310-card-brand > div {
  min-width: 0;
}

.s310-card-brand strong,
.s310-card-brand small {
  display: block;
  color: #fff !important;
}

.s310-card-brand strong {
  font-size: 14px;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.s310-card-brand small {
  margin-top: 2px;
  overflow: hidden;
  font-size: 10px;
  font-weight: 750;
  opacity: .82;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.s310-source-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 9px;
  border:
    1px solid
    rgba(255, 255, 255, .28);
  border-radius: 999px;
  color: #fff;
  background:
    rgba(3, 17, 12, .20);
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
  white-space: nowrap;
}

.s310-source-badge.is-manual {
  color: #302100;
  border-color:
    rgba(255, 227, 144, .60);
  background: #f5d77a;
}

.s310-news-card
.news-card-header {
  position: relative;
  z-index: 2;
  align-items: flex-start;
  margin-bottom: 6px;
}

.s310-category-pill {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 5px 9px;
  border:
    1px solid
    color-mix(
      in srgb,
      var(--s310-accent) 30%,
      transparent
    );
  border-radius: 999px;
  color:
    var(--s310-accent);
  background:
    color-mix(
      in srgb,
      var(--s310-accent) 9%,
      #fff
    );
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.s310-news-card h3,
.s310-news-card.lead h3 {
  position: relative;
  z-index: 1;
  margin: 13px 0 10px;
  color:
    var(--s310-ink)
    !important;
  font-size:
    clamp(
      28px,
      3.6vw,
      48px
    )
    !important;
  line-height:
    .98 !important;
}

.s310-news-card.lead h3 {
  max-width: 900px;
  font-size:
    clamp(
      40px,
      5.5vw,
      68px
    )
    !important;
}

.s310-news-card
.gazzetta-article-strapline {
  border-left-color:
    var(--s310-accent);
  color:
    var(--s310-accent);
}

.s310-news-card .news-body {
  position: relative;
  z-index: 1;
  color:
    var(--s310-ink)
    !important;
  font-size: 15px;
  line-height: 1.66;
}

.s310-news-card blockquote {
  position: relative;
  z-index: 1;
  border-left-color:
    var(--s310-accent);
  color:
    var(--s310-ink);
  background:
    color-mix(
      in srgb,
      var(--s310-accent) 8%,
      #fff
    );
}

.s310-card-footer {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content:
    space-between;
  gap: 12px;
  align-items: center;
  margin-top: 17px;
  padding-top: 11px;
  border-top:
    1px solid
    var(--s310-line);
  color:
    var(--s310-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.s310-card-footer strong {
  color:
    var(--s310-accent);
}

.s310-news-empty {
  grid-column: 1 / -1;
  display: grid;
  min-height: 180px;
  place-items: center;
  text-align: center;
}

/* Campionato:
   linee del campo
   e verde stadio */

.s310-theme-league {
  --s310-accent: #0b6544;
  --s310-accent-2: #21a36e;
  --s310-paper: #f6fff9;
  --s310-paper-2: #dff4e8;
  --s310-ink: #153a2d;
  --s310-muted: #58756a;
  --s310-line:
    rgba(11, 101, 68, .22);
}

.s310-news-card
.s310-theme-league::before {
  background:
    linear-gradient(
      90deg,
      transparent 49.5%,
      rgba(12, 104, 69, .11)
        49.5%,
      rgba(12, 104, 69, .11)
        50.5%,
      transparent 50.5%
    ),
    radial-gradient(
      circle at 50% 50%,
      transparent 0 52px,
      rgba(12, 104, 69, .10)
        53px 55px,
      transparent 56px
    ),
    linear-gradient(
      rgba(255, 255, 255, .25),
      rgba(255, 255, 255, .25)
    );
}

/* Coppa:
   oro, metallo
   ed eliminazione diretta */

.s310-theme-cup {
  --s310-accent: #8c5d08;
  --s310-accent-2: #dbad3a;
  --s310-paper: #fffdf4;
  --s310-paper-2: #f5e1aa;
  --s310-ink: #3c2b08;
  --s310-muted: #786337;
  --s310-line:
    rgba(140, 93, 8, .28);
}

.s310-news-card
.s310-theme-cup::before {
  background:
    repeating-linear-gradient(
      125deg,
      rgba(155, 104, 12, .055)
        0 8px,
      transparent 8px 18px
    ),
    radial-gradient(
      circle at 88% 14%,
      rgba(255, 227, 130, .34),
      transparent 32%
    );
}

.s310-news-card
.s310-theme-cup {
  box-shadow:
    inset 0 0 0 2px
    rgba(255, 223, 126, .34),

    0 16px 36px
    rgba(91, 63, 5, .18)
    !important;
}

/* Champions:
   cielo notturno,
   stelle e riflettori */

.s310-theme-champions {
  --s310-accent: #142f87;
  --s310-accent-2: #5277dd;
  --s310-paper: #f7f9ff;
  --s310-paper-2: #dce5ff;
  --s310-ink: #14234b;
  --s310-muted: #546287;
  --s310-line:
    rgba(20, 47, 135, .24);
}

.s310-news-card
.s310-theme-champions::before {
  background:
    radial-gradient(
      circle at 15% 18%,
      rgba(255, 255, 255, .85)
        0 1px,
      transparent 2px
    ),
    radial-gradient(
      circle at 37% 11%,
      rgba(74, 111, 215, .34)
        0 2px,
      transparent 3px
    ),
    radial-gradient(
      circle at 76% 20%,
      rgba(255, 255, 255, .90)
        0 1px,
      transparent 2px
    ),
    radial-gradient(
      circle at 92% 38%,
      rgba(74, 111, 215, .28)
        0 2px,
      transparent 3px
    ),
    radial-gradient(
      ellipse at 50% -15%,
      rgba(92, 130, 230, .30),
      transparent 46%
    );

  background-size:
    120px 110px,
    170px 150px,
    140px 130px,
    190px 180px,
    auto;
}

/* Europa:
   diagonali arancioni */

.s310-theme-europa {
  --s310-accent: #bd4f0d;
  --s310-accent-2: #f29a2e;
  --s310-paper: #fff9f3;
  --s310-paper-2: #ffe0bd;
  --s310-ink: #4a250e;
  --s310-muted: #865d40;
  --s310-line:
    rgba(189, 79, 13, .25);
}

.s310-news-card
.s310-theme-europa::before {
  background:
    repeating-linear-gradient(
      135deg,
      transparent 0 28px,
      rgba(215, 93, 16, .075)
        28px 36px,
      transparent 36px 55px
    ),
    linear-gradient(
      90deg,
      rgba(255, 255, 255, .35),
      transparent 65%
    );
}

/* Conference:
   geometria turchese */

.s310-theme-conference {
  --s310-accent: #087b72;
  --s310-accent-2: #24b5a6;
  --s310-paper: #f3fffd;
  --s310-paper-2: #d1f2ed;
  --s310-ink: #123f3b;
  --s310-muted: #557b77;
  --s310-line:
    rgba(8, 123, 114, .24);
}

.s310-news-card
.s310-theme-conference::before {
  background:
    linear-gradient(
      30deg,
      rgba(8, 123, 114, .06) 12%,
      transparent 12.5%,
      transparent 87%,
      rgba(8, 123, 114, .06)
        87.5%,
      rgba(8, 123, 114, .06)
    ),
    linear-gradient(
      150deg,
      rgba(8, 123, 114, .06) 12%,
      transparent 12.5%,
      transparent 87%,
      rgba(8, 123, 114, .06)
        87.5%,
      rgba(8, 123, 114, .06)
    ),
    linear-gradient(
      30deg,
      rgba(8, 123, 114, .06) 12%,
      transparent 12.5%,
      transparent 87%,
      rgba(8, 123, 114, .06)
        87.5%,
      rgba(8, 123, 114, .06)
    ),
    linear-gradient(
      150deg,
      rgba(8, 123, 114, .06) 12%,
      transparent 12.5%,
      transparent 87%,
      rgba(8, 123, 114, .06)
        87.5%,
      rgba(8, 123, 114, .06)
    );

  background-position:
    0 0,
    0 0,
    32px 56px,
    32px 56px;

  background-size:
    64px 112px;
}

/* Mondiale:
   bordeaux, oro e globo */

.s310-theme-worldCup {
  --s310-accent: #7b1f3b;
  --s310-accent-2: #bd8a28;
  --s310-paper: #fffaf5;
  --s310-paper-2: #eed7c6;
  --s310-ink: #431a28;
  --s310-muted: #7b5b65;
  --s310-line:
    rgba(123, 31, 59, .25);
}

.s310-news-card
.s310-theme-worldCup::before {
  background:
    radial-gradient(
      circle at 88% 22%,
      transparent 0 62px,
      rgba(123, 31, 59, .10)
        63px 65px,
      transparent 66px
    ),
    linear-gradient(
      90deg,
      transparent 82%,
      rgba(123, 31, 59, .08)
        82.5%,
      transparent 83%
    ),
    linear-gradient(
      0deg,
      transparent 21%,
      rgba(184, 138, 37, .08)
        21.5%,
      transparent 22%
    );
}

.s310-news-card
.s310-theme-worldCup {
  box-shadow:
    inset 0 0 0 2px
    rgba(190, 145, 57, .22),

    0 16px 36px
    rgba(82, 21, 42, .16)
    !important;
}

/* MiiLab:
   bollettino medico,
   griglia ed ECG */

.s310-theme-miilab {
  --s310-accent: #8c2857;
  --s310-accent-2: #6b3ba8;
  --s310-paper: #fff8fc;
  --s310-paper-2: #eddef5;
  --s310-ink: #43223b;
  --s310-muted: #795f75;
  --s310-line:
    rgba(140, 40, 87, .24);
}

.s310-news-card
.s310-theme-miilab::before {
  background:
    linear-gradient(
      rgba(140, 40, 87, .05)
        1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(140, 40, 87, .05)
        1px,
      transparent 1px
    ),
    linear-gradient(
      100deg,
      transparent 0 34%,
      rgba(140, 40, 87, .13)
        34.5% 35%,
      transparent 35.5% 42%,
      rgba(140, 40, 87, .13)
        42.5% 43%,
      transparent 43.5% 100%
    );

  background-size:
    22px 22px,
    22px 22px,
    100% 100%;
}

/* Generale:
   prima pagina classica */

.s310-theme-general {
  --s310-accent: #761f1b;
  --s310-accent-2: #302a22;
  --s310-paper: #fffdf5;
  --s310-paper-2: #ece3ce;
  --s310-ink: #2d281e;
  --s310-muted: #746b59;
  --s310-line:
    rgba(64, 52, 32, .24);
}

.s310-news-card
.s310-theme-general::before {
  background:
    repeating-linear-gradient(
      0deg,
      transparent 0 15px,
      rgba(62, 51, 31, .025)
        15px 16px
    );
}

.s310-page-strip {
  background:
    linear-gradient(
      135deg,
      var(
        --s310-accent,
        #761f1b
      ),
      var(
        --s310-accent-2,
        #302a22
      )
    )
    !important;
}

/* Editor manuale */

.s310-article-modal {
  width:
    min(980px, 100%);
  max-width:
    980px !important;
}

.s310-editor-layout {
  display: grid;
  grid-template-columns:
    minmax(0, 1.55fr)
    minmax(260px, .75fr);
  gap: 18px;
  align-items: start;
}

.s310-editor-fields textarea {
  min-height: 210px;
}

#s310ArticlePreview {
  position: sticky;
  top: 0;
}

.s310-editor-preview {
  --s310-accent: #761f1b;
  --s310-accent-2: #302a22;
  --s310-paper: #fffdf5;
  --s310-paper-2: #ece3ce;
  --s310-ink: #2d281e;

  position: relative;
  display: grid;
  grid-template-columns:
    55px 1fr;
  gap: 13px;
  min-height: 170px;
  padding: 17px;
  overflow: hidden;
  border:
    1px solid
    color-mix(
      in srgb,
      var(--s310-accent) 30%,
      transparent
    );
  border-radius: 18px;
  color:
    var(--s310-ink);
  background:
    linear-gradient(
      145deg,
      var(--s310-paper),
      var(--s310-paper-2)
    );
  box-shadow:
    0 15px 32px
    rgba(28, 20, 8, .13);
}

.s310-editor-preview::before {
  content:
    attr(data-s310-icon);
  position: absolute;
  right: -5px;
  bottom: -22px;
  color:
    var(--s310-accent);
  font-size: 95px;
  font-weight: 950;
  opacity: .09;
  transform: rotate(-8deg);
}

.s310-editor-preview-icon {
  position: relative;
  z-index: 1;
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 15px;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      var(--s310-accent),
      var(--s310-accent-2)
    );
  font-size: 25px;
}

.s310-editor-preview > div {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.s310-editor-preview small,
.s310-editor-preview strong,
.s310-editor-preview p {
  display: block;
}

.s310-editor-preview small {
  color:
    var(--s310-accent);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.s310-editor-preview strong {
  margin-top: 8px;
  color:
    var(--s310-ink);
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 24px;
  line-height: 1;
}

.s310-editor-preview p {
  margin: 10px 0 0;
  color:
    color-mix(
      in srgb,
      var(--s310-ink) 72%,
      transparent
    );
  font-size: 12px;
  line-height: 1.45;
}

body[data-theme="scuro"]
.s310-news-filter-bar {
  border-color:
    rgba(255, 255, 255, .11);
  background:
    rgba(8, 29, 22, .92);
}

body[data-theme="scuro"]
.s310-news-filter-bar button {
  color: #d9e9e2;
  border-color:
    rgba(255, 255, 255, .10);
  background:
    rgba(255, 255, 255, .06);
}

body[data-theme="scuro"]
.s310-news-filter-bar
button.is-active {
  color: #fff;
  background:
    linear-gradient(
      135deg,
      #116645,
      #25966c
    );
}

body[data-theme="scuro"]
.s310-news-card,
body[data-theme="scuro"]
.s310-editor-preview {
  filter:
    saturate(.92)
    brightness(.92);
}

@media (max-width: 900px) {
  .s310-editor-layout {
    grid-template-columns:
      1fr;
  }

  #s310ArticlePreview {
    position: static;
    order: -1;
  }
}

@media (max-width: 760px) {
  .s310-news-grid {
    gap: 11px !important;
    padding: 10px !important;
  }

  .s310-news-card,
  .s310-news-card.lead {
    min-height: 0;
    padding:
      15px !important;
    border-radius:
      15px !important;
  }

  .s310-card-brand,
  .s310-news-card.lead
  .s310-card-brand {
    grid-template-columns:
      41px minmax(0, 1fr);
    margin:
      -15px -15px 14px;
    padding: 11px 12px;
  }

  .s310-card-emblem {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    font-size: 19px;
  }

  .s310-source-badge {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .s310-news-card h3,
  .s310-news-card.lead h3 {
    font-size:
      clamp(
        30px,
        9.5vw,
        44px
      )
      !important;
  }

  .s310-card-footer {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 520px) {
  .s310-news-filter-bar {
    margin-right: -4px;
    margin-left: -4px;
    padding: 8px;
    border-radius: 13px;
  }

  .s310-news-filter-bar button {
    min-height: 36px;
    padding: 7px 10px;
    font-size: 11px;
  }

  .s310-editor-preview {
    grid-template-columns:
      45px 1fr;
    min-height: 145px;
    padding: 14px;
  }

  .s310-editor-preview-icon {
    width: 43px;
    height: 43px;
    font-size: 21px;
  }
}

/* =========================================================
   HOME NEWS COLLEGATE 3.10.1
   ========================================================= */

.s3101-home-story {
  --s3101-accent: #7b211c;
  --s3101-soft:
    rgba(123, 33, 28, .08);

  position: relative;
  cursor: pointer;

  transition:
    transform .16s ease,
    box-shadow .16s ease,
    background-color .16s ease;
}

.s3101-home-story:hover {
  transform: translateY(-2px);
}

.s3101-home-story:focus-visible {
  outline:
    3px solid
    var(--s3101-accent);

  outline-offset: 3px;
}

.home-newspaper-lead
.s3101-home-story {
  padding-top: 18px;

  border-top:
    5px solid
    var(--s3101-accent);

  background:
    linear-gradient(
      180deg,
      var(--s3101-soft),
      transparent 62%
    );
}

.home-newspaper-lead.s3101-home-story {
  padding-top: 18px;

  border-top:
    5px solid
    var(--s3101-accent);

  background:
    linear-gradient(
      180deg,
      var(--s3101-soft),
      transparent 62%
    );
}

.home-newspaper-secondary
.s3101-home-story {
  padding-top: 15px;
}

.home-newspaper-secondary
.s3101-home-story,
.home-newspaper-secondary.s3101-home-story {
  padding-top: 15px;

  box-shadow:
    inset 0 4px 0
    var(--s3101-accent);
}

.s3101-home-competition {
  display:
    inline-flex !important;

  align-items: center;
  gap: 6px;
  width: max-content;
  padding: 4px 8px;

  border:
    1px solid
    var(--s3101-accent);

  border-radius: 999px;

  color:
    var(--s3101-accent)
    !important;

  background:
    rgba(
      255,
      255,
      255,
      .62
    );

  font-size:
    9px !important;

  font-weight:
    950 !important;

  letter-spacing: .07em;
  line-height: 1;
  text-transform: uppercase;
}

.s3101-home-competition b {
  color: inherit;
  font-size: 12px;
}

.s3101-home-link-row {
  display: flex;
  justify-content:
    space-between;
  gap: 12px;
  align-items: center;
  margin-top: 12px;
  padding-top: 9px;

  border-top:
    1px solid
    rgba(54, 44, 25, .20);

  color: #75664e;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.s3101-home-link-row b {
  color:
    var(--s3101-accent);

  white-space: nowrap;
}

.s3101-home-brief {
  grid-template-columns:
    32px
    minmax(0, 1fr)
    24px
    !important;

  gap: 8px;
  align-items: center;
  padding-left: 8px;

  border-left:
    4px solid
    var(--s3101-accent);
}

.s3101-home-brief:hover {
  background:
    var(--s3101-soft);
}

.s3101-home-brief > div {
  min-width: 0;
}

.s3101-home-brief
> div
> small {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 9px;
  align-items: center;
}

.s3101-home-brief-competition {
  color:
    var(--s3101-accent);

  font-weight: 950;
  text-transform: uppercase;
}

.s3101-home-brief-arrow {
  color:
    var(--s3101-accent);

  font-size: 18px;
  text-align: right;
}

/* Generale */

.s3101-home-theme-general {
  --s3101-accent: #7b211c;
  --s3101-soft:
    rgba(123, 33, 28, .08);
}

/* Campionato */

.s3101-home-theme-league {
  --s3101-accent: #14754f;
  --s3101-soft:
    rgba(20, 117, 79, .09);
}

/* Coppa di Lega */

.s3101-home-theme-cup {
  --s3101-accent: #9a6a09;
  --s3101-soft:
    rgba(154, 106, 9, .10);
}

/* Champions */

.s3101-home-theme-champions {
  --s3101-accent: #3156ad;
  --s3101-soft:
    rgba(49, 86, 173, .10);
}

/* Europa League */

.s3101-home-theme-europa {
  --s3101-accent: #c85c16;
  --s3101-soft:
    rgba(200, 92, 22, .10);
}

/* Conference */

.s3101-home-theme-conference {
  --s3101-accent: #138b81;
  --s3101-soft:
    rgba(19, 139, 129, .10);
}

/* Mondiale */

.s3101-home-theme-worldCup {
  --s3101-accent: #842846;
  --s3101-soft:
    rgba(132, 40, 70, .10);
}

/* MiiLab */

.s3101-home-theme-miilab {
  --s3101-accent: #8d3d91;
  --s3101-soft:
    rgba(141, 61, 145, .10);
}

/* Evidenzia l'articolo
   aperto dalla Home */

.s3101-opened-from-home {
  animation:
    s3101HomeFocus
    2.6s ease;
}

@keyframes s3101HomeFocus {
  0%,
  100% {
    box-shadow:
      0 15px 34px
      rgba(45, 33, 15, .13)
      !important;
  }

  18%,
  65% {
    box-shadow:
      0 0 0 5px
      rgba(244, 197, 70, .72),

      0 20px 48px
      rgba(45, 33, 15, .25)
      !important;
  }
}

body[data-theme="scuro"]
.s3101-home-competition {
  background:
    rgba(7, 25, 19, .70);
}

body[data-theme="scuro"]
.s3101-home-link-row {
  color: #c7d8d0;

  border-top-color:
    rgba(255, 255, 255, .12);
}

@media (max-width: 620px) {
  .s3101-home-link-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .s3101-home-brief {
    grid-template-columns:
      28px
      minmax(0, 1fr)
      20px
      !important;
  }
}

/* =========================================================
   SPECIALI DI STAGIONE E CAMPIONI 3.10.2
   ========================================================= */

.s3102-special-card {
  position: relative;
  overflow: hidden;
  border-color:
    rgba(214, 169, 58, .58)
    !important;
  box-shadow:
    0 0 0 2px
      rgba(255, 224, 133, .22),
    0 24px 58px
      rgba(45, 30, 4, .24)
    !important;
}

.s3102-special-card::before {
  opacity: .88 !important;
}

.s3102-special-hero {
  position: relative;
  isolation: isolate;
  margin: 0 -18px 22px;
  padding:
    clamp(22px, 4vw, 42px);
  overflow: hidden;
  color: #fff;

  background:
    radial-gradient(
      circle at 78% 12%,
      rgba(255, 229, 145, .28),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      color-mix(
        in srgb,
        var(--s310-accent) 82%,
        #120c05
      ),
      color-mix(
        in srgb,
        var(--s310-accent-2) 72%,
        #281604
      )
    );

  border-bottom:
    4px solid
    rgba(244, 197, 70, .86);
}

.s310-news-card.lead
.s3102-special-hero {
  margin: 0 -24px 26px;
  padding:
    clamp(28px, 5vw, 54px);
}

.s3102-special-glow {
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;

  background:
    repeating-linear-gradient(
      125deg,
      transparent 0 22px,
      rgba(255, 255, 255, .035)
        22px 24px,
      transparent 24px 48px
    );
}

.s3102-special-glow::before,
.s3102-special-glow::after {
  content: "";
  position: absolute;

  border:
    1px solid
    rgba(255, 231, 160, .24);

  border-radius: 50%;
}

.s3102-special-glow::before {
  width: 310px;
  height: 310px;
  right: -105px;
  top: -145px;
}

.s3102-special-glow::after {
  width: 195px;
  height: 195px;
  right: -32px;
  top: -80px;
}

.s3102-special-heading {
  display: flex;
  gap: 13px;
  align-items: center;
}

.s3102-special-trophy {
  display: grid;
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  place-items: center;

  border:
    1px solid
    rgba(255, 235, 177, .58);

  border-radius: 18px;

  background:
    linear-gradient(
      145deg,
      rgba(255, 238, 180, .28),
      rgba(255, 255, 255, .06)
    );

  box-shadow:
    inset 0 1px 0
      rgba(255, 255, 255, .34),
    0 13px 28px
      rgba(0, 0, 0, .20);

  font-size: 29px;
}

.s3102-special-heading small,
.s3102-special-heading strong {
  display: block;
  color: #fff !important;
}

.s3102-special-heading small {
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .16em;
  opacity: .76;
}

.s3102-special-heading strong {
  margin-top: 4px;

  font-size:
    clamp(14px, 2vw, 21px);

  font-weight: 950;
  letter-spacing: .08em;
}

.s3102-special-hero h2 {
  max-width: 950px;
  margin: 24px 0 8px;
  color: #fff !important;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(42px, 7vw, 86px);

  line-height: .92;
  letter-spacing: -.045em;

  text-shadow:
    0 4px 22px
    rgba(0, 0, 0, .32);
}

.s3102-special-hero > p {
  max-width: 850px;
  margin: 0;

  color:
    rgba(255, 255, 255, .87)
    !important;

  font-size:
    clamp(13px, 1.8vw, 18px);

  font-weight: 760;
  line-height: 1.45;
}

.s3102-special-podium {
  display: grid;
  gap: 7px;
  max-width: 900px;
  margin-top: 25px;
  padding: 9px;

  border:
    1px solid
    rgba(255, 236, 179, .30);

  border-radius: 17px;
  background:
    rgba(3, 10, 7, .22);

  backdrop-filter:
    blur(8px);
}

.s3102-podium-row {
  display: grid;

  grid-template-columns:
    39px minmax(0, 1fr) auto;

  gap: 11px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 12px;

  background:
    rgba(255, 255, 255, .07);
}

.s3102-podium-row:first-child {
  background:
    linear-gradient(
      90deg,
      rgba(244, 197, 70, .28),
      rgba(255, 255, 255, .07)
    );
}

.s3102-podium-row > span {
  display: grid;
  width: 33px;
  height: 33px;
  place-items: center;

  border:
    1px solid
    rgba(255, 237, 181, .43);

  border-radius: 50%;
  color: #ffe5a0;

  background:
    rgba(255, 255, 255, .09);

  font-size: 11px;
  font-weight: 950;
}

.s3102-podium-row > div {
  min-width: 0;
}

.s3102-podium-row strong,
.s3102-podium-row small {
  display: block;
  color: #fff !important;
}

.s3102-podium-row strong {
  overflow: hidden;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.s3102-podium-row small {
  margin-top: 2px;
  font-size: 9px;
  opacity: .70;
}

.s3102-podium-row > b {
  color: #ffe39a;
  font-size: 11px;
  text-align: right;
  white-space: nowrap;
}

.s3102-special-stats {
  display: grid;

  grid-template-columns:
    repeat(4, minmax(0, 1fr));

  gap: 8px;
  max-width: 1000px;
  margin-top: 10px;
}

.s3102-special-stats > div {
  min-width: 0;
  padding: 11px 12px;

  border:
    1px solid
    rgba(255, 237, 181, .22);

  border-radius: 13px;

  background:
    rgba(255, 255, 255, .08);
}

.s3102-special-stats span,
.s3102-special-stats strong {
  display: block;
  color: #fff !important;
}

.s3102-special-stats span {
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .08em;
  opacity: .66;
  text-transform: uppercase;
}

.s3102-special-stats strong {
  margin-top: 5px;
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.s3102-special-card
.s310-category-pill {
  border-color:
    rgba(184, 132, 21, .36);

  color: #7b5200;
  background: #fff0b8;
}

.s3102-special-card
.gazzetta-article-strapline {
  border-left-width: 6px;
  font-weight: 850;
}

.s3102-special-midpoint
.s3102-special-hero {
  background:
    radial-gradient(
      circle at 82% 18%,
      rgba(255, 235, 166, .24),
      transparent 31%
    ),
    linear-gradient(
      135deg,
      #063f2d,
      #16835a
    );
}

.s3102-special-league-champion
.s3102-special-hero {
  background:
    radial-gradient(
      circle at 80% 15%,
      rgba(255, 229, 137, .35),
      transparent 33%
    ),
    linear-gradient(
      135deg,
      #073924,
      #947016
    );
}

.s310-theme-cup
.s3102-special-hero {
  background:
    radial-gradient(
      circle at 82% 13%,
      rgba(255, 236, 173, .40),
      transparent 33%
    ),
    linear-gradient(
      135deg,
      #392400,
      #a87a12
    );
}

.s310-theme-champions
.s3102-special-hero {
  background:
    radial-gradient(
      circle at 78% 13%,
      rgba(255, 255, 255, .25),
      transparent 29%
    ),
    radial-gradient(
      circle at 20% 20%,
      rgba(86, 127, 236, .36),
      transparent 35%
    ),
    linear-gradient(
      135deg,
      #071343,
      #254fb2
    );
}

.s310-theme-europa
.s3102-special-hero {
  background:
    radial-gradient(
      circle at 80% 12%,
      rgba(255, 214, 135, .28),
      transparent 32%
    ),
    linear-gradient(
      135deg,
      #2b1406,
      #c65a11
    );
}

.s310-theme-conference
.s3102-special-hero {
  background:
    radial-gradient(
      circle at 80% 12%,
      rgba(154, 255, 239, .24),
      transparent 32%
    ),
    linear-gradient(
      135deg,
      #063e3a,
      #139488
    );
}

.s310-theme-worldCup
.s3102-special-hero {
  background:
    radial-gradient(
      circle at 82% 13%,
      rgba(255, 224, 138, .32),
      transparent 33%
    ),
    linear-gradient(
      135deg,
      #421022,
      #9b6b16
    );
}

/* Anteprima speciale nella Home */

.s3102-home-special {
  overflow: visible !important;

  border-color:
    rgba(180, 130, 22, .48)
    !important;

  box-shadow:
    inset 0 4px 0
      var(--s3101-accent),
    0 12px 26px
      rgba(72, 48, 4, .13);
}

.s3102-home-special::before {
  content:
    attr(data-s3102-ribbon);

  position: absolute;
  z-index: 5;
  top: -10px;
  right: 12px;

  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 4px 9px;

  border:
    1px solid
    rgba(113, 74, 0, .28);

  border-radius: 999px;
  color: #4c3300;

  background:
    linear-gradient(
      135deg,
      #ffe9a7,
      #e9bd4d
    );

  box-shadow:
    0 6px 15px
    rgba(65, 41, 0, .18);

  font-size: 7px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.home-newspaper-lead
.s3102-home-special::before,
.home-newspaper-lead.s3102-home-special::before {
  top: -13px;
  right: 16px;
}

.s3102-home-special
.s3101-home-competition {
  color: #6f4900 !important;

  border-color:
    rgba(161, 111, 8, .48);

  background: #fff1bd;
}

.s3102-home-special
.s3101-home-link-row b {
  color: #8a5e00;
}

body[data-theme="scuro"]
.s3102-special-card {
  box-shadow:
    0 0 0 2px
      rgba(255, 218, 112, .20),
    0 24px 58px
      rgba(0, 0, 0, .38)
    !important;
}

body[data-theme="scuro"]
.s3102-home-special::before {
  color: #fff0b4;

  border-color:
    rgba(255, 224, 127, .35);

  background:
    linear-gradient(
      135deg,
      #72500b,
      #a77a1d
    );
}

@media (max-width: 860px) {
  .s3102-special-stats {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .s3102-special-hero,
  .s310-news-card.lead
  .s3102-special-hero {
    margin: 0 -15px 18px;
    padding: 22px 16px;
  }

  .s3102-special-trophy {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
    border-radius: 14px;
    font-size: 24px;
  }

  .s3102-special-hero h2 {
    margin-top: 18px;

    font-size:
      clamp(38px, 13vw, 58px);
  }

  .s3102-podium-row {
    grid-template-columns:
      34px minmax(0, 1fr);
  }

  .s3102-podium-row > b {
    grid-column: 2;
    text-align: left;
  }

  .s3102-special-stats {
    grid-template-columns: 1fr;
  }

  .s3102-home-special::before {
    right: 6px;
    max-width: 145px;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

@media (
  prefers-reduced-motion:
  no-preference
) {
  .s3102-special-card
  .s3102-special-trophy {
    animation:
      s3102TrophyFloat
      3.4s ease-in-out
      infinite;
  }

  @keyframes s3102TrophyFloat {
    0%,
    100% {
      transform:
        translateY(0);
    }

    50% {
      transform:
        translateY(-5px);
    }
  }
}

/* =========================================================
   CHIUSURA E CONGELAMENTO EDIZIONE 3.11
   ========================================================= */

.s311-frozen-season-banner,
.s311-ready-to-close {
  position: relative;
  display: grid;
  grid-template-columns:
    auto minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  margin-bottom: 18px;
  padding: 18px 20px;
  overflow: hidden;
  border-radius: 20px;
}

.s311-frozen-season-banner {
  border:
    1px solid
    rgba(211, 172, 69, .52);
  color: #fff;
  background:
    radial-gradient(
      circle at 88% 18%,
      rgba(255, 224, 137, .23),
      transparent 31%
    ),
    linear-gradient(
      135deg,
      #071e2d,
      #153b50 58%,
      #765913
    );
  box-shadow:
    0 0 0 2px
    rgba(255, 225, 137, .12),

    0 18px 42px
    rgba(5, 23, 34, .25);
}

.s311-frozen-season-banner::before,
.s311-ready-to-close::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    repeating-linear-gradient(
      125deg,
      transparent 0 24px,
      rgba(255, 255, 255, .035)
        24px 26px,
      transparent 26px 52px
    );
}

.s311-frozen-emblem,
.s311-ready-icon {
  position: relative;
  z-index: 1;
  display: grid;
  width: 62px;
  height: 62px;
  place-items: center;
  border-radius: 19px;
  font-size: 30px;
}

.s311-frozen-emblem {
  border:
    1px solid
    rgba(255, 232, 170, .38);
  color: #ffe8aa;
  background:
    rgba(255, 255, 255, .10);
  box-shadow:
    inset 0 1px 0
    rgba(255, 255, 255, .20);
}

.s311-frozen-copy,
.s311-ready-to-close
> div:nth-child(2) {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.s311-frozen-copy span,
.s311-frozen-copy strong,
.s311-frozen-copy small,
.s311-ready-to-close span,
.s311-ready-to-close strong,
.s311-ready-to-close small {
  display: block;
}

.s311-frozen-copy .kicker {
  color: #f3ce70;
}

.s311-frozen-copy strong {
  margin-top: 4px;
  color: #fff;
  font-size:
    clamp(
      20px,
      2.7vw,
      31px
    );
  line-height: 1;
}

.s311-frozen-copy small {
  max-width: 820px;
  margin-top: 7px;
  color:
    rgba(255, 255, 255, .76);
  font-size: 12px;
  line-height: 1.5;
}

#s311StartNextSeason,
#s311CreateNextSeason {
  position: relative;
  z-index: 1;
  color: #1e1705;
  border-color: #f0cc65;
  background:
    linear-gradient(
      135deg,
      #ffe9a6,
      #d7a92f
    );
  box-shadow:
    0 10px 24px
    rgba(0, 0, 0, .22);
}

#s311StartNextSeason:hover,
#s311CreateNextSeason:hover {
  color: #130f04;
  background:
    linear-gradient(
      135deg,
      #fff2be,
      #e4b83d
    );
}

.s311-ready-to-close {
  border:
    1px solid
    rgba(28, 129, 86, .31);
  color: #173d30;
  background:
    radial-gradient(
      circle at 90% 12%,
      rgba(245, 196, 69, .20),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #f5fff9,
      #dff4e8
    );
  box-shadow:
    0 15px 34px
    rgba(12, 73, 49, .12);
}

.s311-ready-icon {
  border:
    1px solid
    rgba(23, 117, 76, .22);
  color: #fff;
  background:
    linear-gradient(
      135deg,
      #0d6644,
      #24a26e
    );
  box-shadow:
    0 10px 22px
    rgba(10, 89, 58, .20);
}

.s311-ready-to-close .kicker {
  color: #17734f;
}

.s311-ready-to-close strong {
  margin-top: 4px;
  color: #153d2f;
  font-size:
    clamp(
      18px,
      2.4vw,
      27px
    );
  line-height: 1.08;
}

.s311-ready-to-close small {
  max-width: 850px;
  margin-top: 7px;
  color: #587468;
  font-size: 12px;
  line-height: 1.5;
}

.s311-close-button {
  position: relative;
  z-index: 1;
  color: #fff;
  border-color: transparent;
  background:
    linear-gradient(
      135deg,
      #0b6443,
      #198e60
    );
  box-shadow:
    0 10px 24px
    rgba(8, 84, 54, .21);
}

.s311-close-button:hover {
  color: #fff;
  background:
    linear-gradient(
      135deg,
      #0d7350,
      #21a772
    );
}

.s311-close-modal,
.s311-next-season-modal {
  width:
    min(900px, 100%);
  max-width:
    900px !important;
}

.s311-close-hero,
.s311-next-summary {
  display: grid;
  grid-template-columns:
    64px minmax(0, 1fr);
  gap: 15px;
  align-items: center;
  padding: 18px;
  border-radius: 18px;
}

.s311-close-hero {
  color: #fff;
  background:
    radial-gradient(
      circle at 88% 15%,
      rgba(255, 227, 145, .27),
      transparent 32%
    ),
    linear-gradient(
      135deg,
      #073b29,
      #8a6815
    );
}

.s311-next-summary {
  border:
    1px solid
    rgba(25, 126, 84, .22);
  color: #173d30;
  background:
    linear-gradient(
      135deg,
      #effcf5,
      #dcefe5
    );
}

.s311-close-hero > span,
.s311-next-summary > span {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 18px;
  font-size: 29px;
}

.s311-close-hero > span {
  border:
    1px solid
    rgba(255, 235, 176, .38);
  background:
    rgba(255, 255, 255, .10);
}

.s311-next-summary > span {
  color: #fff;
  background:
    linear-gradient(
      135deg,
      #0e6545,
      #25a06e
    );
}

.s311-close-hero small,
.s311-close-hero strong,
.s311-close-hero p,
.s311-next-summary small,
.s311-next-summary strong,
.s311-next-summary p {
  display: block;
}

.s311-close-hero small {
  color: #f7d77d;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.s311-close-hero strong {
  margin-top: 4px;
  color: #fff;
  font-size:
    clamp(
      24px,
      4vw,
      38px
    );
  line-height: 1;
}

.s311-close-hero p {
  margin: 8px 0 0;
  color:
    rgba(255, 255, 255, .80);
  font-size: 12px;
}

.s311-next-summary small {
  color: #19734f;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.s311-next-summary strong {
  margin-top: 4px;
  color: #173d30;
  font-size: 24px;
}

.s311-next-summary p {
  margin: 6px 0 0;
  color: #5c776b;
  font-size: 12px;
}

.s311-status-grid {
  display: grid;
  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    );
  gap: 9px;
  margin-top: 14px;
}

.s311-status-item {
  display: grid;
  grid-template-columns:
    35px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-width: 0;
  padding: 11px 12px;
  border:
    1px solid
    rgba(31, 73, 58, .13);
  border-radius: 14px;
  background: #f5faf7;
}

.s311-status-item > span {
  display: grid;
  width: 31px;
  height: 31px;
  place-items: center;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 950;
}

.s311-status-item strong,
.s311-status-item small {
  display: block;
}

.s311-status-item strong {
  color: #28483c;
  font-size: 12px;
}

.s311-status-item small {
  margin-top: 2px;
  color: #75877f;
  font-size: 9px;
}

.s311-status-item.is-complete
> span {
  color: #fff;
  background: #18845a;
}

.s311-status-item.is-not-played
> span {
  color: #6a746f;
  background: #e3ebe7;
}

.s311-status-item.is-incomplete
> span {
  color: #fff;
  background: #b26917;
}

.s311-freeze-note,
.s311-preserved-data {
  margin-top: 14px;
  padding: 15px 16px;
  border-radius: 15px;
}

.s311-freeze-note {
  border:
    1px solid
    rgba(126, 87, 12, .20);
  color: #564217;
  background: #fff8df;
}

.s311-freeze-note strong,
.s311-preserved-data strong {
  display: block;
  margin-bottom: 5px;
}

.s311-freeze-note p {
  margin: 5px 0 0;
  font-size: 12px;
  line-height: 1.55;
}

.s311-next-name-field {
  margin-top: 16px;
}

.s311-preserved-data {
  border:
    1px solid
    rgba(21, 103, 70, .16);
  color: #426457;
  background: #eef8f3;
  font-size: 12px;
}

.s311-frozen-control {
  cursor:
    not-allowed !important;
  opacity: .46 !important;
  filter: grayscale(.35);
}

body.season-frozen-mode #app {
  --season-frozen-accent:
    #d7ae45;
}

body[data-theme="scuro"]
.s311-ready-to-close,
body[data-theme="scuro"]
.s311-next-summary,
body[data-theme="scuro"]
.s311-status-item,
body[data-theme="scuro"]
.s311-preserved-data {
  border-color:
    rgba(255, 255, 255, .10);
  color: #e0eee7;
  background:
    rgba(255, 255, 255, .055);
}

body[data-theme="scuro"]
.s311-ready-to-close strong,
body[data-theme="scuro"]
.s311-next-summary strong,
body[data-theme="scuro"]
.s311-status-item strong {
  color: #f1f7f4;
}

body[data-theme="scuro"]
.s311-ready-to-close small,
body[data-theme="scuro"]
.s311-next-summary p,
body[data-theme="scuro"]
.s311-status-item small,
body[data-theme="scuro"]
.s311-preserved-data {
  color: #b8cbc2;
}

body[data-theme="scuro"]
.s311-freeze-note {
  border-color:
    rgba(235, 190, 73, .20);
  color: #eadba9;
  background:
    rgba(122, 88, 14, .16);
}

@media (max-width: 760px) {
  .s311-frozen-season-banner,
  .s311-ready-to-close {
    grid-template-columns:
      50px minmax(0, 1fr);
    gap: 12px;
    padding: 15px;
    border-radius: 17px;
  }

  .s311-frozen-emblem,
  .s311-ready-icon {
    width: 48px;
    height: 48px;
    border-radius: 15px;
    font-size: 23px;
  }

  #s311StartNextSeason,
  #s311CloseEditionFromHome {
    grid-column: 1 / -1;
    width: 100%;
  }

  .s311-status-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .s311-frozen-season-banner,
  .s311-ready-to-close {
    grid-template-columns: 1fr;
  }

  .s311-frozen-emblem,
  .s311-ready-icon {
    width: 44px;
    height: 44px;
  }

  .s311-close-hero,
  .s311-next-summary {
    grid-template-columns:
      48px minmax(0, 1fr);
    padding: 14px;
  }

  .s311-close-hero > span,
  .s311-next-summary > span {
    width: 45px;
    height: 45px;
    border-radius: 14px;
    font-size: 22px;
  }
}

/* =========================================================
   PREMI DEL CAMPIONATO E RICONOSCIMENTI DEL TURNO 3.12
   ========================================================= */

.s312-league-awards-header {
  position: relative;
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 15px;
  align-items: center;
  margin: 20px 0 12px;
  padding: 18px 20px;
  overflow: hidden;
  border: 1px solid rgba(20, 117, 79, .27);
  border-radius: 20px;
  color: #173f31;
  background:
    radial-gradient(
      circle at 88% 18%,
      rgba(224, 181, 61, .18),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #f4fff9,
      #dff3e8
    );
  box-shadow:
    0 15px 34px
    rgba(10, 76, 50, .10);
}

.s312-league-awards-header::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    repeating-linear-gradient(
      125deg,
      transparent 0 24px,
      rgba(20, 117, 79, .035)
        24px 26px,
      transparent 26px 52px
    );
}

.s312-league-awards-icon {
  position: relative;
  z-index: 1;
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 1px solid rgba(255, 232, 160, .55);
  border-radius: 18px;
  color: #ffe7a0;
  background:
    linear-gradient(
      145deg,
      #0b5c3e,
      #1a8c61
    );
  box-shadow:
    0 10px 23px
    rgba(10, 85, 56, .22);
  font-size: 28px;
}

.s312-league-awards-header > div:last-child {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.s312-league-awards-header span,
.s312-league-awards-header strong,
.s312-league-awards-header small {
  display: block;
}

.s312-league-awards-header .kicker {
  color: #14754f;
}

.s312-league-awards-header strong {
  margin-top: 4px;
  color: #173f31;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size:
    clamp(21px, 3vw, 31px);
  line-height: 1.05;
}

.s312-league-awards-header small {
  max-width: 820px;
  margin-top: 7px;
  color: #60796f;
  font-size: 11px;
  line-height: 1.5;
}

.s312-league-award-child {
  border-top-color:
    rgba(20, 117, 79, .28);
}

.s312-turn-awards,
.s312-xi-modal {
  --s312-accent: #9a6a09;
  --s312-accent-2: #e0b348;
  --s312-dark: #312000;
  --s312-soft: rgba(154, 106, 9, .10);
  --s312-light: #fff8df;
}

.s312-turn-awards.competition-league,
.s312-xi-modal.competition-league {
  --s312-accent: #14754f;
  --s312-accent-2: #5bc08f;
  --s312-dark: #063a28;
  --s312-soft: rgba(20, 117, 79, .11);
  --s312-light: #eafff3;
}

.s312-turn-awards.competition-cup,
.s312-xi-modal.competition-cup {
  --s312-accent: #9a6a09;
  --s312-accent-2: #e0b348;
  --s312-dark: #352200;
  --s312-soft: rgba(154, 106, 9, .11);
  --s312-light: #fff7da;
}

.s312-turn-awards.competition-champions,
.s312-xi-modal.competition-champions {
  --s312-accent: #3156ad;
  --s312-accent-2: #83afff;
  --s312-dark: #071343;
  --s312-soft: rgba(49, 86, 173, .11);
  --s312-light: #eef3ff;
}

.s312-turn-awards.competition-europa,
.s312-xi-modal.competition-europa {
  --s312-accent: #c85c16;
  --s312-accent-2: #ff9a49;
  --s312-dark: #331505;
  --s312-soft: rgba(200, 92, 22, .11);
  --s312-light: #fff1e5;
}

.s312-turn-awards.competition-conference,
.s312-xi-modal.competition-conference {
  --s312-accent: #138b81;
  --s312-accent-2: #61d8ca;
  --s312-dark: #063e3a;
  --s312-soft: rgba(19, 139, 129, .11);
  --s312-light: #e9fffb;
}

.s312-turn-awards.competition-world-cup,
.s312-xi-modal.competition-world-cup {
  --s312-accent: #842846;
  --s312-accent-2: #d8a84c;
  --s312-dark: #421022;
  --s312-soft: rgba(132, 40, 70, .11);
  --s312-light: #fff0f4;
}

.s312-turn-awards {
  position: relative;
  margin-top: 18px;
  padding: 0;
  overflow: hidden;
  border:
    1px solid
    rgba(81, 65, 28, .17);
  box-shadow:
    0 16px 38px
    rgba(32, 24, 8, .10);
}

.s312-awards-heading {
  position: relative;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  padding:
    clamp(20px, 3vw, 30px);
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(
      circle at 82% 14%,
      rgba(255, 255, 255, .19),
      transparent 31%
    ),
    linear-gradient(
      135deg,
      var(--s312-dark),
      var(--s312-accent)
    );
}

.s312-awards-heading::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    repeating-linear-gradient(
      125deg,
      transparent 0 23px,
      rgba(255, 255, 255, .035)
        23px 25px,
      transparent 25px 48px
    );
}

.s312-awards-heading > * {
  position: relative;
  z-index: 1;
}

.s312-awards-heading .kicker,
.s312-awards-heading h2,
.s312-awards-heading p {
  color: #fff !important;
}

.s312-awards-heading .kicker {
  opacity: .70;
}

.s312-awards-heading h2 {
  margin: 5px 0 0;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size:
    clamp(29px, 4vw, 47px);
  line-height: .98;
}

.s312-awards-heading p {
  max-width: 770px;
  margin: 10px 0 0;
  opacity: .78;
  font-size: 11px;
  line-height: 1.55;
}

.s312-competition-mark {
  display: grid;
  width: 68px;
  height: 68px;
  flex: 0 0 68px;
  place-items: center;
  border:
    1px solid
    rgba(255, 255, 255, .28);
  border-radius: 21px;
  background:
    rgba(255, 255, 255, .10);
  box-shadow:
    inset 0 1px 0
    rgba(255, 255, 255, .18),
    0 13px 28px
    rgba(0, 0, 0, .18);
  font-size: 31px;
}

.s312-turn-toolbar {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-end;
  padding: 17px 20px;
  border-bottom:
    1px solid
    rgba(70, 58, 28, .12);
  background: var(--s312-light);
}

.s312-turn-toolbar .field {
  min-width:
    min(340px, 100%);
  margin: 0;
}

.s312-turn-toolbar select {
  border-color:
    rgba(70, 58, 28, .18);
  background: #fff;
}

.s312-turn-status {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 11px;
  border:
    1px solid
    var(--s312-accent);
  border-radius: 999px;
  color: var(--s312-accent);
  background: #fff;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .05em;
  text-transform: uppercase;
  white-space: nowrap;
}

.s312-turn-main {
  display: grid;
  grid-template-columns:
    minmax(0, 1.35fr)
    minmax(260px, .65fr);
  gap: 12px;
  padding: 20px;
}

.s312-turn-mvp,
.s312-turn-eleven {
  min-width: 0;
  border:
    1px solid
    rgba(71, 58, 24, .13);
  border-radius: 18px;
}

.s312-turn-mvp {
  padding: 16px;
  background:
    radial-gradient(
      circle at 92% 12%,
      var(--s312-soft),
      transparent 38%
    ),
    #fff;
}

.s312-mvp-label {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 5px 9px;
  border:
    1px solid
    var(--s312-accent);
  border-radius: 999px;
  color: var(--s312-accent);
  background: var(--s312-light);
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .08em;
}

.s312-mvp-player {
  display: grid;
  grid-template-columns:
    72px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  margin-top: 14px;
}

.s312-player-photo {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  place-items: center;
  overflow: hidden;
  border:
    2px solid
    rgba(255, 255, 255, .80);
  border-radius: 50%;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      var(--s312-dark),
      var(--s312-accent)
    );
  box-shadow:
    0 8px 18px
    rgba(0, 0, 0, .15);
  font-size: 13px;
  font-weight: 950;
}

.s312-player-photo.is-mvp {
  width: 72px;
  height: 72px;
  flex-basis: 72px;
  border-width: 3px;
  font-size: 18px;
}

.s312-player-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.s312-mvp-player > div:nth-child(2) {
  min-width: 0;
}

.s312-mvp-player strong,
.s312-mvp-player small,
.s312-mvp-player p {
  display: block;
}

.s312-mvp-player strong {
  overflow: hidden;
  color: #242116;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size:
    clamp(21px, 3vw, 31px);
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.s312-mvp-player small {
  margin-top: 5px;
  color: #796f5a;
  font-size: 10px;
  font-weight: 800;
}

.s312-mvp-player p {
  margin: 8px 0 0;
  color: #665f50;
  font-size: 10px;
  line-height: 1.45;
}

.s312-mvp-player > b {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border:
    1px solid
    var(--s312-accent);
  border-radius: 17px;
  color: #fff;
  background:
    linear-gradient(
      145deg,
      var(--s312-accent),
      var(--s312-dark)
    );
  box-shadow:
    0 10px 22px
    var(--s312-soft);
  font-size: 22px;
}

.s312-turn-eleven {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 18px;
  padding: 17px;
  color: #fff;
  background:
    radial-gradient(
      circle at 85% 10%,
      rgba(255, 255, 255, .14),
      transparent 34%
    ),
    linear-gradient(
      145deg,
      var(--s312-accent),
      var(--s312-dark)
    );
}

.s312-turn-eleven span,
.s312-turn-eleven strong,
.s312-turn-eleven small {
  display: block;
  color: #fff !important;
}

.s312-turn-eleven .kicker {
  opacity: .68;
}

.s312-turn-eleven strong {
  margin-top: 5px;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 25px;
  line-height: 1;
}

.s312-turn-eleven small {
  margin-top: 8px;
  opacity: .72;
  font-size: 10px;
  line-height: 1.45;
}

.s312-turn-eleven button {
  width: 100%;
  color: var(--s312-dark);
  border:
    1px solid
    rgba(255, 255, 255, .60);
  background: #fff;
}

.s312-awards-empty {
  display: grid;
  grid-template-columns:
    52px minmax(0, 1fr);
  gap: 13px;
  align-items: center;
  margin: 20px;
  padding: 18px;
  border:
    1px dashed
    rgba(85, 69, 31, .22);
  border-radius: 17px;
  background: var(--s312-light);
}

.s312-awards-empty > span {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 15px;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      var(--s312-accent),
      var(--s312-dark)
    );
  font-size: 22px;
}

.s312-awards-empty strong,
.s312-awards-empty small {
  display: block;
}

.s312-awards-empty strong {
  color: #332e22;
  font-size: 15px;
}

.s312-awards-empty small {
  margin-top: 4px;
  color: #786f5f;
  font-size: 10px;
  line-height: 1.45;
}

.s312-final-section {
  margin: 0 20px 20px;
  padding: 18px;
  border:
    1px solid
    rgba(180, 130, 22, .25);
  border-radius: 19px;
  background:
    radial-gradient(
      circle at 90% 8%,
      rgba(236, 193, 74, .16),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #fffdf5,
      #fff6d9
    );
}

.s312-final-section > header {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  align-items: flex-start;
}

.s312-final-section h3 {
  margin: 4px 0 0;
  color: #3f3215;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size:
    clamp(22px, 3vw, 32px);
}

.s312-final-section header p {
  max-width: 700px;
  margin: 7px 0 0;
  color: #756846;
  font-size: 10px;
  line-height: 1.5;
}

.s312-final-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 6px 10px;
  border:
    1px solid
    rgba(134, 91, 7, .28);
  border-radius: 999px;
  color: #6d4900;
  background: #ffe9a6;
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
  white-space: nowrap;
}

.s312-final-awards-grid {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin-top: 15px;
}

.s312-final-award {
  display: grid;
  grid-template-columns:
    42px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-width: 0;
  padding: 12px;
  border:
    1px solid
    rgba(126, 88, 14, .14);
  border-radius: 14px;
  background:
    rgba(255, 255, 255, .78);
}

.s312-final-award > span {
  display: grid;
  width: 39px;
  height: 39px;
  place-items: center;
  border-radius: 12px;
  color: #fff;
  background:
    linear-gradient(
      145deg,
      #9b6a08,
      #e0b348
    );
  font-size: 19px;
}

.s312-final-award > div {
  min-width: 0;
}

.s312-final-award small,
.s312-final-award strong,
.s312-final-award p {
  display: block;
}

.s312-final-award small {
  color: #8c7440;
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.s312-final-award strong {
  margin-top: 3px;
  overflow: hidden;
  color: #3d321b;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.s312-final-award p {
  margin: 3px 0 0;
  overflow: hidden;
  color: #7a6c4d;
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.s312-final-award.is-empty {
  opacity: .56;
}

.s312-final-eleven-row {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  margin-top: 11px;
  padding: 12px 14px;
  border:
    1px solid
    rgba(126, 88, 14, .15);
  border-radius: 14px;
  background:
    rgba(255, 255, 255, .70);
}

.s312-final-eleven-row strong,
.s312-final-eleven-row span {
  display: block;
}

.s312-final-eleven-row strong {
  color: #403319;
  font-size: 13px;
}

.s312-final-eleven-row span {
  margin-top: 3px;
  color: #7b6c4d;
  font-size: 9px;
  line-height: 1.4;
}

.s312-final-eleven-row button {
  flex: 0 0 auto;
}

.s312-xi-modal {
  width: min(1120px, 100%);
  max-width: 1120px !important;
}

.s312-xi-modal > header {
  border-bottom:
    3px solid
    var(--s312-accent);
}

.s312-xi-explanation {
  display: grid;
  grid-template-columns:
    44px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  margin-bottom: 14px;
  padding: 11px 13px;
  border:
    1px solid
    rgba(75, 61, 27, .13);
  border-radius: 14px;
  background: var(--s312-light);
}

.s312-xi-explanation > span {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 12px;
  color: #fff;
  background:
    linear-gradient(
      145deg,
      var(--s312-accent),
      var(--s312-dark)
    );
  font-size: 20px;
}

.s312-xi-explanation p {
  margin: 0;
  color: #6d6657;
  font-size: 10px;
  line-height: 1.5;
}

.s312-awards-pitch {
  position: relative;
  display: grid;
  gap: 17px;
  min-height: 680px;
  padding:
    clamp(25px, 5vw, 52px)
    clamp(14px, 4vw, 38px);
  overflow: hidden;
  border:
    5px solid
    rgba(255, 255, 255, .62);
  border-radius: 24px;
  background:
    linear-gradient(
      90deg,
      transparent 49.7%,
      rgba(255, 255, 255, .52)
        49.7% 50.3%,
      transparent 50.3%
    ),
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, .035)
        0 80px,
      rgba(0, 0, 0, .025)
        80px 160px
    ),
    linear-gradient(
      180deg,
      #14754f,
      #0d5e3e
    );
  box-shadow:
    inset 0 0 0 2px
    rgba(255, 255, 255, .34),
    0 18px 38px
    rgba(8, 66, 43, .23);
}

.s312-awards-pitch::before,
.s312-awards-pitch::after {
  content: "";
  position: absolute;
  left: 50%;
  pointer-events: none;
  transform: translateX(-50%);
}

.s312-awards-pitch::before {
  top: 50%;
  width: 150px;
  height: 150px;
  border:
    2px solid
    rgba(255, 255, 255, .48);
  border-radius: 50%;
  transform:
    translate(-50%, -50%);
}

.s312-awards-pitch::after {
  inset: 18px auto;
  width:
    calc(100% - 36px);
  border:
    2px solid
    rgba(255, 255, 255, .42);
  transform: translateX(-50%);
}

.s312-pitch-line {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-evenly;
  gap: 10px;
  align-items: center;
}

.s312-pitch-player {
  position: relative;
  display: flex;
  width: min(190px, 23%);
  min-width: 0;
  min-height: 123px;
  flex-direction: column;
  align-items: center;
  padding: 11px 8px 9px;
  border:
    1px solid
    rgba(255, 255, 255, .50);
  border-radius: 16px;
  color: #fff;
  background:
    linear-gradient(
      160deg,
      rgba(4, 26, 19, .83),
      rgba(4, 47, 32, .72)
    );
  box-shadow:
    0 12px 25px
    rgba(0, 0, 0, .20);
  text-align: center;
  backdrop-filter: blur(7px);
}

.s312-pitch-player .s312-player-photo {
  width: 45px;
  height: 45px;
  margin-top: -30px;
  border-color:
    rgba(255, 232, 157, .82);
}

.s312-pitch-player > strong {
  max-width: 100%;
  margin-top: 7px;
  overflow: hidden;
  color: #fff !important;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.s312-pitch-player > small,
.s312-pitch-player > span,
.s312-pitch-player > em {
  display: block;
  max-width: 100%;
  overflow: hidden;
  color:
    rgba(255, 255, 255, .72)
    !important;
  font-size: 7px;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.s312-pitch-player > small {
  margin-top: 2px;
}

.s312-pitch-player > span {
  margin-top: 4px;
  color: #ffe099 !important;
  font-weight: 900;
  text-transform: uppercase;
}

.s312-pitch-player > b {
  position: absolute;
  top: 7px;
  right: 7px;
  display: grid;
  min-width: 31px;
  height: 25px;
  padding: 0 5px;
  place-items: center;
  border:
    1px solid
    rgba(255, 231, 156, .47);
  border-radius: 9px;
  color: #2f2100;
  background: #ffe49a;
  font-size: 9px;
}

.s312-pitch-player > em {
  width: 100%;
  margin-top: 6px;
  font-style: normal;
}

.s312-pitch-player.is-empty {
  justify-content: center;
  opacity: .40;
  border-style: dashed;
}

.s312-pitch-player.is-empty > span {
  font-size: 22px;
}

.s312-pitch-player.is-empty > strong {
  margin-top: 3px;
}

body[data-theme="scuro"]
.s312-league-awards-header,
body[data-theme="scuro"]
.s312-turn-toolbar,
body[data-theme="scuro"]
.s312-turn-mvp,
body[data-theme="scuro"]
.s312-awards-empty,
body[data-theme="scuro"]
.s312-final-section,
body[data-theme="scuro"]
.s312-final-award,
body[data-theme="scuro"]
.s312-final-eleven-row,
body[data-theme="scuro"]
.s312-xi-explanation {
  border-color:
    rgba(255, 255, 255, .10);
  color: #eaf4ef;
  background:
    rgba(255, 255, 255, .055);
}

body[data-theme="scuro"]
.s312-league-awards-header strong,
body[data-theme="scuro"]
.s312-mvp-player strong,
body[data-theme="scuro"]
.s312-awards-empty strong,
body[data-theme="scuro"]
.s312-final-section h3,
body[data-theme="scuro"]
.s312-final-award strong,
body[data-theme="scuro"]
.s312-final-eleven-row strong {
  color: #f3f8f5;
}

body[data-theme="scuro"]
.s312-league-awards-header small,
body[data-theme="scuro"]
.s312-mvp-player small,
body[data-theme="scuro"]
.s312-mvp-player p,
body[data-theme="scuro"]
.s312-awards-empty small,
body[data-theme="scuro"]
.s312-final-section header p,
body[data-theme="scuro"]
.s312-final-award p,
body[data-theme="scuro"]
.s312-final-eleven-row span,
body[data-theme="scuro"]
.s312-xi-explanation p {
  color: #bdcec6;
}

body[data-theme="scuro"]
.s312-turn-toolbar select,
body[data-theme="scuro"]
.s312-turn-status {
  color: #eaf4ef;
  background: #10231c;
}

@media (max-width: 900px) {
  .s312-turn-main {
    grid-template-columns: 1fr;
  }

  .s312-final-awards-grid {
    grid-template-columns: 1fr;
  }

  .s312-awards-pitch {
    min-height: 620px;
  }

  .s312-pitch-player {
    width: min(170px, 24%);
  }
}

@media (max-width: 680px) {
  .s312-league-awards-header {
    grid-template-columns:
      48px minmax(0, 1fr);
    padding: 15px;
    border-radius: 17px;
  }

  .s312-league-awards-icon {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    font-size: 22px;
  }

  .s312-awards-heading {
    padding: 19px 16px;
  }

  .s312-competition-mark {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
    border-radius: 16px;
    font-size: 24px;
  }

  .s312-turn-toolbar,
  .s312-final-section > header,
  .s312-final-eleven-row {
    align-items: stretch;
    flex-direction: column;
  }

  .s312-turn-toolbar {
    padding: 14px 15px;
  }

  .s312-turn-toolbar .field {
    min-width: 0;
    width: 100%;
  }

  .s312-turn-status {
    width: max-content;
  }

  .s312-turn-main {
    padding: 15px;
  }

  .s312-mvp-player {
    grid-template-columns:
      58px minmax(0, 1fr);
  }

  .s312-player-photo.is-mvp {
    width: 58px;
    height: 58px;
    flex-basis: 58px;
  }

  .s312-mvp-player > b {
    grid-column: 2;
    width: max-content;
    height: 34px;
    min-width: 48px;
    margin-top: 6px;
    padding: 0 9px;
    font-size: 15px;
  }

  .s312-final-section {
    margin: 0 15px 15px;
    padding: 15px;
  }

  .s312-final-eleven-row button {
    width: 100%;
  }

  .s312-xi-modal .content {
    padding-left: 10px;
    padding-right: 10px;
  }

  .s312-awards-pitch {
    gap: 13px;
    min-height: 720px;
    padding: 38px 7px 25px;
    border-width: 3px;
    border-radius: 18px;
  }

  .s312-pitch-line {
    gap: 5px;
  }

  .s312-pitch-player {
    width: 24%;
    min-height: 116px;
    padding: 9px 4px 7px;
    border-radius: 12px;
  }

  .s312-pitch-player .s312-player-photo {
    width: 38px;
    height: 38px;
    margin-top: -25px;
  }

  .s312-pitch-player > strong {
    font-size: 8px;
  }

  .s312-pitch-player > small,
  .s312-pitch-player > span,
  .s312-pitch-player > em {
    font-size: 5.8px;
  }

  .s312-pitch-player > b {
    top: 5px;
    right: 4px;
    min-width: 26px;
    height: 21px;
    font-size: 7px;
  }
}

@media (max-width: 460px) {
  .s312-league-awards-header {
    grid-template-columns: 1fr;
  }

  .s312-awards-heading {
    flex-direction: column;
  }

  .s312-competition-mark {
    position: absolute;
    top: 14px;
    right: 14px;
    opacity: .34;
  }

  .s312-awards-heading h2 {
    padding-right: 40px;
  }

  .s312-awards-empty {
    grid-template-columns: 1fr;
  }

  .s312-xi-explanation {
    grid-template-columns: 1fr;
  }

  .s312-awards-pitch {
    min-height: 690px;
  }

  .s312-pitch-player > em {
    display: none;
  }
}

/* =========================================================
   REFERTO RAPIDO MII 3.13
   ========================================================= */

.s313-report-modal .event-row,
.s313-report-modal .goal-row,
.s313-report-modal .substitution-row,
.s313-report-modal .card-row,
.s313-report-modal .injury-row {
  overflow: visible;
}

.s313-report-tip {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  margin: 14px 0 4px;
  padding: 11px 13px;
  border: 1px solid rgba(22, 123, 83, .20);
  border-radius: 14px;
  color: #244b3b;
  background:
    radial-gradient(
      circle at 92% 12%,
      rgba(244, 194, 67, .16),
      transparent 34%
    ),
    linear-gradient(135deg, #effbf5, #e2f3ea);
}

.s313-report-tip-icon {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 13px;
  color: #fff;
  background: linear-gradient(135deg, #0c6242, #22a06d);
  box-shadow: 0 8px 18px rgba(11, 96, 64, .18);
  font-size: 19px;
}

.s313-report-tip strong,
.s313-report-tip small {
  display: block;
}

.s313-report-tip strong {
  color: #174b37;
  font-size: 12px;
}

.s313-report-tip small {
  margin-top: 3px;
  color: #627b70;
  font-size: 9px;
  line-height: 1.45;
}

.s313-native-select {
  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;
}

.s313-player-combobox {
  position: relative;
  width: 100%;
  min-width: 0;
  z-index: 2;
}

.s313-player-combobox.is-open {
  z-index: 80;
}

.s313-search-shell {
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  align-items: center;
  min-height: 42px;
  overflow: hidden;
  border: 1px solid rgba(17, 76, 57, .22);
  border-radius: 11px;
  background: rgba(255, 255, 255, .96);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72);
  transition:
    border-color .15s ease,
    box-shadow .15s ease,
    transform .15s ease;
}

.s313-player-combobox.is-open .s313-search-shell,
.s313-search-shell:focus-within {
  border-color: #238d63;
  box-shadow:
    0 0 0 3px rgba(35, 141, 99, .15),
    0 8px 20px rgba(12, 88, 58, .10);
}

.s313-player-combobox.has-value .s313-search-shell {
  border-color: rgba(23, 126, 84, .45);
  background:
    linear-gradient(135deg, rgba(239, 252, 246, .97), #fff);
}

.s313-search-icon {
  display: grid;
  place-items: center;
  color: #1c7654;
  font-size: 19px;
  font-weight: 900;
  pointer-events: none;
}

.s313-player-search {
  width: 100%;
  min-width: 0;
  height: 40px;
  padding: 8px 5px !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0 !important;
  color: #183d2f;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 12px;
  font-weight: 800;
}

.s313-player-search::placeholder {
  color: #81938b;
  font-weight: 650;
}

button.s313-clear:not(.danger):not(.secondary):not(.ghost) {
  display: grid;
  width: 27px;
  height: 27px;
  min-width: 27px;
  margin: 0 5px 0 0;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 9px;
  color: #687a72;
  background: rgba(18, 88, 62, .08);
  box-shadow: none;
  font-size: 18px;
  line-height: 1;
  transform: none;
}

button.s313-clear:not(.danger):not(.secondary):not(.ghost):hover {
  color: #fff;
  background: #a32c24;
  box-shadow: none;
  transform: none;
}

button.s313-clear[hidden] {
  display: none !important;
}

.s313-selected-meta {
  display: block;
  margin: 4px 3px 0;
  color: #618074;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .03em;
}

.s313-selected-meta[hidden] {
  display: none;
}

.s313-options {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 500;
  max-height: 310px;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 6px;
  border: 1px solid rgba(17, 76, 57, .18);
  border-radius: 14px;
  background: rgba(253, 255, 254, .985);
  box-shadow:
    0 22px 50px rgba(1, 28, 19, .25),
    0 0 0 1px rgba(255, 255, 255, .65) inset;
  backdrop-filter: blur(18px);
}

.s313-player-combobox.opens-up .s313-options {
  top: auto;
  bottom: calc(100% + 6px);
}

.s313-options[hidden] {
  display: none;
}

button.s313-option:not(.danger):not(.secondary):not(.ghost) {
  display: grid;
  width: 100%;
  grid-template-columns: 40px minmax(0, 1fr) 24px;
  gap: 10px;
  align-items: center;
  margin: 0;
  padding: 8px 9px;
  border: 1px solid transparent;
  border-radius: 11px;
  color: #213c31;
  background: transparent;
  box-shadow: none;
  text-align: left;
  transform: none;
}

button.s313-option:not(.danger):not(.secondary):not(.ghost) +
button.s313-option:not(.danger):not(.secondary):not(.ghost) {
  margin-top: 3px;
}

button.s313-option:not(.danger):not(.secondary):not(.ghost):hover,
button.s313-option:not(.danger):not(.secondary):not(.ghost).is-active {
  border-color: rgba(27, 132, 89, .20);
  color: #143d2d;
  background: #eaf8f1;
  box-shadow: none;
  transform: none;
}

button.s313-option:not(.danger):not(.secondary):not(.ghost).is-selected {
  border-color: rgba(189, 140, 23, .24);
  background:
    linear-gradient(135deg, #fff9e5, #f5fced);
}

.s313-option-photo {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, .82);
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg, #0d5c3f, #2a9a6e);
  box-shadow: 0 6px 14px rgba(7, 80, 52, .16);
  font-size: 10px;
}

.s313-option-photo.is-empty {
  color: #6a776f;
  background: #e4ebe7;
  box-shadow: none;
  font-size: 18px;
}

.s313-option-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.s313-option-copy {
  display: block;
  min-width: 0;
}

.s313-option-copy strong,
.s313-option-copy small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.s313-option-copy strong {
  color: inherit;
  font-size: 11px;
  font-weight: 900;
}

.s313-option-copy small {
  margin-top: 3px;
  color: #74867e;
  font-size: 8px;
  font-weight: 750;
}

.s313-option-check {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 8px;
  color: #1d7c57;
  background: rgba(25, 130, 87, .08);
  font-size: 12px;
  font-weight: 950;
}

.s313-no-results {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 14px 11px;
  color: #6e7e77;
}

.s313-no-results > span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 12px;
  background: #edf3f0;
  font-size: 20px;
}

.s313-no-results strong,
.s313-no-results small {
  display: block;
}

.s313-no-results strong {
  color: #41544b;
  font-size: 10px;
}

.s313-no-results small {
  margin-top: 3px;
  font-size: 8px;
}

.s313-player-combobox.is-disabled {
  opacity: .55;
}

.s313-player-combobox.is-disabled .s313-search-shell {
  background: #eef2f0;
  box-shadow: none;
}

body[data-theme="scuro"] .s313-report-tip {
  border-color: rgba(255, 255, 255, .10);
  color: #e5f1eb;
  background:
    radial-gradient(
      circle at 92% 12%,
      rgba(235, 184, 53, .12),
      transparent 34%
    ),
    rgba(255, 255, 255, .055);
}

body[data-theme="scuro"] .s313-report-tip strong,
body[data-theme="scuro"] .s313-player-search,
body[data-theme="scuro"] .s313-option-copy strong,
body[data-theme="scuro"] .s313-no-results strong {
  color: #eef7f2;
}

body[data-theme="scuro"] .s313-report-tip small,
body[data-theme="scuro"] .s313-selected-meta,
body[data-theme="scuro"] .s313-option-copy small,
body[data-theme="scuro"] .s313-no-results {
  color: #b7cac1;
}

body[data-theme="scuro"] .s313-search-shell,
body[data-theme="scuro"] .s313-options {
  border-color: rgba(255, 255, 255, .12);
  background: rgba(12, 31, 24, .985);
}

body[data-theme="scuro"] .s313-player-combobox.has-value .s313-search-shell {
  background: linear-gradient(135deg, #102d22, #12251e);
}

body[data-theme="scuro"]
button.s313-option:not(.danger):not(.secondary):not(.ghost) {
  color: #e9f5ef;
}

body[data-theme="scuro"]
button.s313-option:not(.danger):not(.secondary):not(.ghost):hover,
body[data-theme="scuro"]
button.s313-option:not(.danger):not(.secondary):not(.ghost).is-active {
  border-color: rgba(86, 205, 151, .18);
  color: #fff;
  background: rgba(70, 174, 128, .13);
}

body[data-theme="scuro"]
button.s313-option:not(.danger):not(.secondary):not(.ghost).is-selected {
  border-color: rgba(238, 193, 78, .20);
  background: rgba(154, 112, 18, .15);
}

body[data-theme="scuro"] .s313-no-results > span,
body[data-theme="scuro"] .s313-option-photo.is-empty {
  color: #b9c8c1;
  background: rgba(255, 255, 255, .07);
}

@media (max-width: 760px) {
  .s313-report-tip {
    grid-template-columns: 38px minmax(0, 1fr);
    padding: 10px;
  }

  .s313-report-tip-icon {
    width: 36px;
    height: 36px;
    border-radius: 11px;
  }

  .s313-options {
    max-height: 280px;
  }

  button.s313-option:not(.danger):not(.secondary):not(.ghost) {
    min-height: 54px;
    grid-template-columns: 42px minmax(0, 1fr) 24px;
  }

  .s313-option-photo {
    width: 40px;
    height: 40px;
  }
}

@media (max-width: 520px) {
  .s313-options {
    left: -4px;
    right: -4px;
  }

  .s313-player-search {
    font-size: 16px;
  }
}

/* =========================================================
   LA GAZZETTA DEI MII 3.15A
   Incollare ALLA FINE di style.css
   ========================================================= */

body.s315a-gazette-view .page-title {
  align-items: flex-start;
}

body.s315a-gazette-view .page-title h2 {
  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      34px,
      5vw,
      58px
    );

  letter-spacing: -.045em;
}

body.s315a-gazette-view .page-title p {
  max-width: 760px;
}

.s315a-editorial-desk {
  display: grid;

  grid-template-columns:
    76px
    minmax(0, 1fr)
    auto;

  gap: 18px;
  align-items: center;

  margin-bottom: 14px;
  padding: 18px 20px;
  overflow: hidden;

  border:
    1px solid
    rgba(71, 48, 17, .24);

  border-radius: 18px;

  color: #34291c;

  background:
    radial-gradient(
      circle at 90% 0,
      rgba(145, 28, 22, .10),
      transparent 34%
    ),
    repeating-linear-gradient(
      0deg,
      transparent 0 17px,
      rgba(68, 52, 26, .025)
        17px 18px
    ),
    linear-gradient(
      145deg,
      #fffdf6,
      #efe4ca
    );

  box-shadow:
    0 16px 36px
    rgba(33, 24, 10, .16);
}

.s315a-editorial-seal {
  display: grid;
  width: 70px;
  height: 70px;
  place-items: center;

  border:
    2px solid
    rgba(255, 238, 190, .70);

  border-radius: 20px;

  color: #fff4cf;

  background:
    linear-gradient(
      145deg,
      #641914,
      #9f3328
    );

  box-shadow:
    inset 0 0 0 4px
      rgba(255, 255, 255, .07),
    0 11px 24px
      rgba(91, 28, 20, .25);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 25px;
  font-weight: 950;
  letter-spacing: -.05em;
}

.s315a-editorial-copy {
  min-width: 0;
}

.s315a-editorial-copy > span {
  color: #8d2d25;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .14em;
}

.s315a-editorial-copy h3 {
  margin: 5px 0 4px;
  color: #34291c;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      23px,
      3vw,
      36px
    );

  line-height: 1;
  letter-spacing: -.035em;
}

.s315a-editorial-copy p {
  margin: 0;
  color: #6d604d;
  font-size: 12px;
  line-height: 1.45;
}

.s315a-editorial-stats {
  display: grid;

  grid-template-columns:
    repeat(
      3,
      minmax(74px, 1fr)
    );

  gap: 8px;
}

.s315a-editorial-stats > div {
  min-width: 74px;
  padding: 10px 11px;

  border:
    1px solid
    rgba(92, 64, 24, .16);

  border-radius: 13px;
  text-align: center;

  background:
    rgba(255, 255, 255, .50);
}

.s315a-editorial-stats strong,
.s315a-editorial-stats span {
  display: block;
}

.s315a-editorial-stats strong {
  color: #7d241d;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 25px;
  line-height: 1;
}

.s315a-editorial-stats span {
  margin-top: 4px;
  color: #756752;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.s315a-gazette-page {
  overflow: hidden;

  border:
    1px solid
    rgba(54, 39, 17, .30)
    !important;

  box-shadow:
    0 0 0 1px
      rgba(255, 255, 255, .52)
      inset,
    0 24px 62px
      rgba(30, 20, 6, .23)
      !important;
}

.s315a-masthead {
  position: relative;
  overflow: hidden;
}

.s315a-masthead::after {
  content: "GM";

  position: absolute;
  right: 18px;
  bottom: -30px;

  color:
    rgba(111, 31, 25, .06);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 125px;
  font-weight: 950;
  line-height: 1;

  pointer-events: none;

  transform:
    rotate(-7deg);
}

.s315a-news-card {
  container-type: inline-size;
}

.s315a-cover {
  --s315a-cover-dark:
    color-mix(
      in srgb,
      var(
        --s310-accent,
        #721d18
      ) 75%,
      #120d08
    );

  --s315a-cover-light:
    color-mix(
      in srgb,
      var(
        --s310-accent-2,
        #b54836
      ) 86%,
      #fff
    );

  position: relative;
  isolation: isolate;

  min-height: 245px;

  margin:
    0 0 18px;

  overflow: hidden;

  border:
    1px solid
    rgba(255, 255, 255, .18);

  border-radius: 17px;

  color: #fff;

  background:
    radial-gradient(
      circle at 82% 13%,
      color-mix(
        in srgb,
        var(
          --s315a-cover-light
        ) 34%,
        transparent
      ),
      transparent 30%
    ),
    linear-gradient(
      130deg,
      var(
        --s315a-cover-dark
      ),
      var(
        --s310-accent,
        #721d18
      )
    );

  box-shadow:
    inset 0 1px 0
      rgba(255, 255, 255, .18),
    0 17px 34px
      rgba(28, 17, 5, .24);
}

.s310-news-card.lead
.s315a-cover {
  min-height: 330px;
  margin-bottom: 23px;
}

.s315a-cover-pattern {
  position: absolute;
  inset: 0;
  z-index: -3;

  pointer-events: none;

  opacity: .52;

  background:
    repeating-linear-gradient(
      125deg,
      transparent 0 25px,
      rgba(255, 255, 255, .035)
        25px 27px,
      transparent 27px 52px
    );
}

.s315a-cover-pattern::before,
.s315a-cover-pattern::after {
  content: "";

  position: absolute;

  border:
    1px solid
    rgba(255, 255, 255, .13);

  border-radius: 50%;
}

.s315a-cover-pattern::before {
  width: 310px;
  height: 310px;
  right: -150px;
  top: -175px;
}

.s315a-cover-pattern::after {
  width: 190px;
  height: 190px;
  right: -35px;
  top: -95px;
}

.s315a-cover-photo {
  position: absolute;
  z-index: -1;

  top: 0;
  right: 0;
  bottom: 0;

  width:
    min(
      46%,
      390px
    );

  overflow: hidden;
}

.s315a-cover-photo::before {
  content: "";

  position: absolute;
  inset: 0;
  z-index: 2;

  background:
    linear-gradient(
      90deg,
      var(
        --s315a-cover-dark
      ) 0,
      transparent 55%
    ),
    linear-gradient(
      0deg,
      rgba(5, 6, 5, .45),
      transparent 50%
    );
}

.s315a-cover-photo img {
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center 18%;

  filter:
    saturate(.92)
    contrast(1.05);

  transform:
    scale(1.025);
}

.s315a-cover-fallback {
  position: absolute;
  z-index: -1;

  right:
    clamp(
      18px,
      4vw,
      44px
    );

  bottom:
    clamp(
      12px,
      3vw,
      28px
    );

  display: grid;

  width:
    clamp(
      110px,
      18vw,
      190px
    );

  height:
    clamp(
      110px,
      18vw,
      190px
    );

  place-items: center;

  border:
    1px solid
    rgba(255, 255, 255, .18);

  border-radius: 50%;

  color:
    rgba(255, 255, 255, .82);

  background:
    rgba(255, 255, 255, .07);

  box-shadow:
    inset 0 0 0 8px
      rgba(255, 255, 255, .03),
    0 16px 35px
      rgba(0, 0, 0, .17);
}

.s315a-cover-fallback span {
  position: absolute;
  top: 18%;

  font-size:
    clamp(
      28px,
      5vw,
      48px
    );
}

.s315a-cover-fallback b {
  align-self: end;
  margin-bottom: 20%;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      27px,
      5vw,
      49px
    );

  letter-spacing: -.05em;
}

.s315a-cover-content {
  position: relative;
  z-index: 3;

  display: flex;
  min-height: inherit;

  flex-direction: column;
  justify-content: space-between;

  padding:
    clamp(
      17px,
      3vw,
      29px
    );
}

.s315a-cover.has-photo
.s315a-cover-content {
  padding-right:
    min(
      42%,
      340px
    );
}

.s315a-cover-topline {
  display: flex;
  flex-wrap: wrap;

  justify-content:
    space-between;

  gap: 8px 16px;
  align-items: center;

  padding-bottom: 10px;

  border-bottom:
    1px solid
    rgba(255, 255, 255, .28);
}

.s315a-cover-topline span,
.s315a-cover-topline b {
  color: #fff;
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.s315a-cover-topline b {
  padding: 5px 8px;

  border:
    1px solid
    rgba(255, 255, 255, .25);

  border-radius: 999px;

  background:
    rgba(0, 0, 0, .16);
}

.s315a-cover-copy {
  max-width: 820px;
  margin-top: 32px;
}

.s315a-cover-copy small,
.s315a-cover-copy strong,
.s315a-cover-copy span {
  display: block;
  color: #fff;
}

.s315a-cover-copy small {
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .08em;
  opacity: .78;
  text-transform: uppercase;
}

.s315a-cover-copy strong {
  display: -webkit-box;

  margin-top: 9px;
  overflow: hidden;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      31px,
      4.9vw,
      64px
    );

  line-height: .94;
  letter-spacing: -.045em;
  text-wrap: balance;

  text-shadow:
    0 4px 20px
    rgba(0, 0, 0, .33);

  -webkit-box-orient:
    vertical;

  -webkit-line-clamp: 3;
}

.s315a-cover-copy span {
  margin-top: 13px;
  overflow: hidden;

  font-size: 11px;
  font-weight: 800;
  opacity: .82;

  text-overflow: ellipsis;
  white-space: nowrap;
}

.s315a-cover-victory {
  --s315a-cover-dark:
    #12321e;

  --s315a-cover-light:
    #f1ca57;

  background:
    radial-gradient(
      circle at 78% 11%,
      rgba(255, 225, 126, .30),
      transparent 30%
    ),
    linear-gradient(
      130deg,
      #12321e,
      #8a6814
    );
}

.s315a-cover-defeat {
  --s315a-cover-dark:
    #291010;

  --s315a-cover-light:
    #c8544e;

  background:
    radial-gradient(
      circle at 83% 10%,
      rgba(255, 116, 107, .18),
      transparent 31%
    ),
    linear-gradient(
      130deg,
      #291010,
      #8e2924
    );
}

.s315a-cover-draw {
  --s315a-cover-dark:
    #26323b;

  --s315a-cover-light:
    #9cb2bf;

  background:
    radial-gradient(
      circle at 83% 12%,
      rgba(218, 235, 244, .18),
      transparent 31%
    ),
    linear-gradient(
      130deg,
      #26323b,
      #526b77
    );
}

.s315a-cover-medical {
  --s315a-cover-dark:
    #31132c;

  --s315a-cover-light:
    #cf79b3;
}

.s315a-cover-interview {
  --s315a-cover-dark:
    #18171f;

  --s315a-cover-light:
    #d8bc68;

  background:
    radial-gradient(
      circle at 82% 14%,
      rgba(255, 231, 157, .21),
      transparent 30%
    ),
    linear-gradient(
      130deg,
      #18171f,
      #594824
    );
}

.s315a-cover-breaking,
.s315a-cover-offAir {
  --s315a-cover-dark:
    #3b0906;

  --s315a-cover-light:
    #ffb13c;

  background:
    repeating-linear-gradient(
      -45deg,
      rgba(255, 255, 255, .035)
        0 12px,
      transparent 12px 25px
    ),
    linear-gradient(
      130deg,
      #3b0906,
      #b3431d
    );
}

.s315a-cover-analysis {
  --s315a-cover-dark:
    #122b37;

  --s315a-cover-light:
    #75b6d2;
}

.s315a-cover-weeklyTeam {
  --s315a-cover-dark:
    #13351f;

  --s315a-cover-light:
    #e6c24e;
}

.s315a-cover-weeklyFlop {
  --s315a-cover-dark:
    #241a0d;

  --s315a-cover-light:
    #b89251;

  background:
    radial-gradient(
      circle at 82% 12%,
      rgba(217, 183, 106, .18),
      transparent 30%
    ),
    linear-gradient(
      130deg,
      #241a0d,
      #6b4b20
    );
}

.s315a-existing-special-cover
.s3102-special-hero {
  box-shadow:
    inset 0 -1px 0
      rgba(255, 255, 255, .16),
    0 17px 34px
      rgba(28, 17, 5, .18);
}

.s315a-existing-special-cover
.s3102-special-hero::after {
  content:
    "COPERTINA SPECIALE · LA GAZZETTA DEI MII";

  position: absolute;
  right: 14px;
  bottom: 10px;

  color:
    rgba(255, 255, 255, .68);

  font-size: 7px;
  font-weight: 950;
  letter-spacing: .12em;
}

body[data-theme="scuro"]
.s315a-editorial-desk {
  color: #f4ead7;

  border-color:
    rgba(255, 255, 255, .12);

  background:
    radial-gradient(
      circle at 90% 0,
      rgba(172, 50, 41, .17),
      transparent 34%
    ),
    repeating-linear-gradient(
      0deg,
      transparent 0 17px,
      rgba(255, 255, 255, .018)
        17px 18px
    ),
    linear-gradient(
      145deg,
      #201b16,
      #33291c
    );
}

body[data-theme="scuro"]
.s315a-editorial-copy h3 {
  color: #fff5df;
}

body[data-theme="scuro"]
.s315a-editorial-copy p,
body[data-theme="scuro"]
.s315a-editorial-stats span {
  color: #cfc1a9;
}

body[data-theme="scuro"]
.s315a-editorial-stats > div {
  border-color:
    rgba(255, 255, 255, .10);

  background:
    rgba(255, 255, 255, .045);
}

body[data-theme="scuro"]
.s315a-editorial-stats strong {
  color: #f0c46b;
}

@media (max-width: 940px) {
  .s315a-editorial-desk {
    grid-template-columns:
      68px
      minmax(0, 1fr);
  }

  .s315a-editorial-seal {
    width: 62px;
    height: 62px;
  }

  .s315a-editorial-stats {
    grid-column: 1 / -1;
  }

  .s315a-cover.has-photo
  .s315a-cover-content {
    padding-right:
      min(
        38%,
        285px
      );
  }
}

@media (max-width: 720px) {
  .s315a-editorial-desk {
    grid-template-columns:
      54px
      minmax(0, 1fr);

    gap: 12px;
    padding: 14px;
    border-radius: 15px;
  }

  .s315a-editorial-seal {
    width: 52px;
    height: 52px;
    border-radius: 15px;
    font-size: 19px;
  }

  .s315a-editorial-stats {
    grid-template-columns:
      repeat(
        3,
        minmax(0, 1fr)
      );
  }

  .s315a-editorial-stats > div {
    min-width: 0;
    padding: 9px 5px;
  }

  .s315a-cover,
  .s310-news-card.lead
  .s315a-cover {
    min-height: 285px;
    border-radius: 14px;
  }

  .s315a-cover-photo {
    width: 52%;
  }

  .s315a-cover.has-photo
  .s315a-cover-content {
    padding-right: 31%;
  }

  .s315a-cover-copy strong {
    font-size:
      clamp(
        29px,
        9vw,
        43px
      );

    -webkit-line-clamp: 4;
  }

  .s315a-cover-copy span {
    max-width: 76%;
  }
}

@media (max-width: 520px) {
  .s315a-editorial-copy > span {
    font-size: 7px;
  }

  .s315a-editorial-copy h3 {
    font-size: 22px;
  }

  .s315a-editorial-copy p {
    font-size: 10px;
  }

  .s315a-editorial-stats strong {
    font-size: 21px;
  }

  .s315a-editorial-stats span {
    font-size: 7px;
  }

  .s315a-cover,
  .s310-news-card.lead
  .s315a-cover {
    min-height: 310px;
  }

  .s315a-cover-photo {
    width: 58%;
    opacity: .82;
  }

  .s315a-cover.has-photo
  .s315a-cover-content {
    padding-right: 17px;
  }

  .s315a-cover-photo::before {
    background:
      linear-gradient(
        90deg,
        var(
          --s315a-cover-dark
        ) 0,
        rgba(0, 0, 0, .08)
          75%
      ),
      linear-gradient(
        0deg,
        rgba(5, 6, 5, .62),
        transparent 62%
      );
  }

  .s315a-cover-copy {
    margin-top: 50px;
  }

  .s315a-cover-copy strong {
    max-width: 95%;

    font-size:
      clamp(
        31px,
        11.5vw,
        48px
      );
  }

  .s315a-cover-copy span {
    max-width: 88%;
    white-space: normal;
  }

  .s315a-cover-topline {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* =========================================================
   3.15A — ARTICOLI AUTOMATICI SENZA IMMAGINE
   ========================================================= */

.s315a-text-only-article
.s310-card-brand {
  margin-bottom: 18px;
}

.s315a-text-only-article
.s315a-cover {
  display: none !important;
}

/* =========================================================
   STRUTTURA SALA STAMPA 3.15B
   Incollare ALLA FINE di style.css
   ========================================================= */

body.s315b-press-room-view
.page-title h2 {
  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      34px,
      5vw,
      58px
    );

  letter-spacing:
    -.045em;
}

.s315b-hero {
  position: relative;
  isolation: isolate;

  display: grid;

  grid-template-columns:
    82px
    minmax(0, 1fr)
    auto;

  gap: 20px;
  align-items: center;

  margin-bottom: 22px;
  padding:
    clamp(
      20px,
      4vw,
      34px
    );

  overflow: hidden;

  border:
    1px solid
    rgba(
      214,
      177,
      83,
      .40
    );

  border-radius: 23px;

  color: #fff;

  background:
    radial-gradient(
      circle at 86% 8%,
      rgba(
        255,
        220,
        127,
        .24
      ),
      transparent 32%
    ),
    radial-gradient(
      circle at 12% 100%,
      rgba(
        124,
        41,
        34,
        .38
      ),
      transparent 37%
    ),
    linear-gradient(
      135deg,
      #151614,
      #342a1f 58%,
      #6c221c
    );

  box-shadow:
    inset 0 1px 0
      rgba(
        255,
        255,
        255,
        .16
      ),
    0 24px 55px
      rgba(
        20,
        12,
        5,
        .28
      );
}

.s315b-hero::before {
  content: "";

  position: absolute;
  inset: 0;
  z-index: -1;

  pointer-events: none;

  opacity: .46;

  background:
    repeating-linear-gradient(
      120deg,
      transparent
        0 27px,
      rgba(
        255,
        255,
        255,
        .035
      )
        27px 29px,
      transparent
        29px 57px
    );
}

.s315b-hero::after {
  content: "PRESS";

  position: absolute;
  right: -20px;
  bottom: -40px;
  z-index: -1;

  color:
    rgba(
      255,
      255,
      255,
      .045
    );

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      90px,
      17vw,
      190px
    );

  font-weight: 950;
  line-height: 1;

  pointer-events: none;
}

.s315b-hero-mark {
  display: grid;
  width: 76px;
  height: 76px;
  place-items: center;

  border:
    1px solid
    rgba(
      255,
      231,
      166,
      .48
    );

  border-radius: 22px;

  background:
    linear-gradient(
      145deg,
      rgba(
        255,
        242,
        198,
        .19
      ),
      rgba(
        255,
        255,
        255,
        .035
      )
    );

  box-shadow:
    inset 0 1px 0
      rgba(
        255,
        255,
        255,
        .25
      ),
    0 14px 30px
      rgba(
        0,
        0,
        0,
        .22
      );

  font-size: 36px;
}

.s315b-hero > div:nth-child(2) {
  min-width: 0;
}

.s315b-hero
> div:nth-child(2)
> span {
  display: block;

  color: #e9c76f;

  font-size: 9px;
  font-weight: 950;
  letter-spacing: .16em;
}

.s315b-hero h2 {
  max-width: 850px;

  margin:
    7px 0 8px;

  color: #fff;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      28px,
      4.5vw,
      54px
    );

  line-height: .98;
  letter-spacing: -.04em;
}

.s315b-hero p {
  max-width: 800px;
  margin: 0;

  color:
    rgba(
      255,
      255,
      255,
      .76
    );

  font-size: 12px;
  line-height: 1.5;
}

.s315b-hero-stats {
  display: grid;
  grid-template-columns:
    repeat(
      3,
      minmax(
        76px,
        1fr
      )
    );

  gap: 8px;
}

.s315b-hero-stats > div {
  min-width: 76px;
  padding: 12px 10px;

  border:
    1px solid
    rgba(
      255,
      237,
      184,
      .20
    );

  border-radius: 14px;

  text-align: center;

  background:
    rgba(
      0,
      0,
      0,
      .18
    );

  backdrop-filter:
    blur(8px);
}

.s315b-hero-stats strong,
.s315b-hero-stats span {
  display: block;
}

.s315b-hero-stats strong {
  color: #f0cf78;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 27px;
  line-height: 1;
}

.s315b-hero-stats span {
  margin-top: 4px;

  color:
    rgba(
      255,
      255,
      255,
      .69
    );

  font-size: 7px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.s315b-section {
  margin-top: 22px;
}

.s315b-section > header {
  display: flex;

  justify-content:
    space-between;

  gap: 14px;
  align-items: flex-end;

  margin-bottom: 12px;
  padding:
    0 3px 10px;

  border-bottom:
    1px solid
    rgba(
      21,
      69,
      50,
      .14
    );
}

.s315b-section > header h2 {
  margin:
    3px 0 0;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      25px,
      3vw,
      36px
    );

  letter-spacing:
    -.035em;
}

.s315b-grid {
  align-items: stretch;
}

.s315b-session-card,
.s315b-available-card,
.s315b-declined-card {
  position: relative;
  overflow: hidden;

  border:
    1px solid
    rgba(
      28,
      86,
      63,
      .15
    );

  background:
    radial-gradient(
      circle at 92% 7%,
      rgba(
        183,
        139,
        38,
        .10
      ),
      transparent 33%
    ),
    linear-gradient(
      145deg,
      #fffef9,
      #f2eddf
    );

  box-shadow:
    0 15px 35px
      rgba(
        21,
        50,
        37,
        .10
      );
}

.s315b-session-card::after,
.s315b-available-card::after,
.s315b-declined-card::after {
  content: "🎙";

  position: absolute;
  right: 13px;
  bottom: -20px;

  font-size: 86px;
  opacity: .045;

  pointer-events: none;

  transform:
    rotate(-9deg);
}

.s315b-session-card.is-selected {
  border-color:
    rgba(
      192,
      140,
      28,
      .56
    );

  box-shadow:
    0 0 0 4px
      rgba(
        239,
        190,
        70,
        .18
      ),
    0 19px 43px
      rgba(
        52,
        38,
        8,
        .17
      );
}

.s315b-session-phase {
  display: flex;

  justify-content:
    space-between;

  gap: 12px;
  align-items: center;

  margin-bottom: 13px;
}

.s315b-session-phase span {
  display: inline-grid;

  min-width: 45px;
  min-height: 27px;

  place-items: center;
  padding: 5px 9px;

  border-radius: 999px;

  color: #fff;

  background:
    linear-gradient(
      135deg,
      #43241d,
      #8e2c24
    );

  font-size: 8px;
  font-weight: 950;
  letter-spacing: .10em;
}

.s315b-session-phase b {
  color: #8a6413;
  font-size: 9px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.s315b-session-card small,
.s315b-available-card small,
.s315b-declined-card small {
  display: block;

  color: #77705e;

  font-size: 9px;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.s315b-session-card h3,
.s315b-available-card h3,
.s315b-declined-card h3 {
  margin:
    10px 0 9px;

  color: #30291f;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      23px,
      3vw,
      34px
    );

  line-height: 1;
  letter-spacing: -.03em;
}

.s315b-session-card p,
.s315b-available-card p,
.s315b-declined-card p {
  color: #625c50;
  font-size: 12px;
  line-height: 1.5;
}

.s315b-session-reason {
  padding: 9px 11px;

  border-left:
    4px solid
    #a67a1c;

  border-radius:
    0 11px 11px 0;

  background:
    rgba(
      192,
      147,
      36,
      .09
    );
}

.s315b-two-actions {
  display: grid;

  grid-template-columns:
    repeat(
      2,
      minmax(
        0,
        1fr
      )
    );

  gap: 8px;
}

.s315b-two-actions button {
  min-height: 44px;
}

.s315b-declined-section {
  opacity: .86;
}

.s315b-declined-card {
  border-color:
    rgba(
      134,
      52,
      44,
      .16
    );

  background:
    linear-gradient(
      145deg,
      #fffafa,
      #eee3e1
    );
}

.s315b-declined-card
.badge {
  margin-bottom: 12px;

  color: #8c332c;

  background:
    rgba(
      146,
      49,
      42,
      .10
    );
}

.s315b-match-button {
  margin-left: 5px;
}

.s315b-modal-backdrop {
  background:
    rgba(
      4,
      10,
      8,
      .77
    );

  backdrop-filter:
    blur(8px);
}

.s315b-decision-modal,
.s315b-speaker-modal,
.s315b-ready-modal {
  width:
    min(
      720px,
      100%
    );

  max-width:
    720px !important;

  overflow: hidden;

  border:
    1px solid
    rgba(
      216,
      178,
      75,
      .27
    );

  background:
    linear-gradient(
      145deg,
      #fffef9,
      #eee5d1
    );

  box-shadow:
    0 30px 85px
      rgba(
        0,
        0,
        0,
        .40
      );
}

.s315b-decision-modal
> header,
.s315b-speaker-modal
> header {
  color: #fff;

  background:
    radial-gradient(
      circle at 88% 8%,
      rgba(
        255,
        223,
        139,
        .24
      ),
      transparent 34%
    ),
    linear-gradient(
      135deg,
      #171813,
      #5e211b
    );
}

.s315b-decision-modal
> header h2,
.s315b-speaker-modal
> header h2 {
  color: #fff;
}

.s315b-decision-match {
  padding: 20px;

  border:
    1px solid
    rgba(
      81,
      55,
      22,
      .16
    );

  border-radius: 17px;

  background:
    rgba(
      255,
      255,
      255,
      .58
    );

  text-align: center;
}

.s315b-decision-match small {
  display: block;

  color: #8b6a1d;

  font-size: 9px;
  font-weight: 950;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.s315b-decision-match strong {
  display: flex;

  justify-content: center;

  gap: 13px;
  align-items: center;

  margin-top: 10px;

  color: #31291e;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      21px,
      4vw,
      34px
    );

  line-height: 1;
}

.s315b-decision-match
strong span {
  display: inline-grid;

  min-width: 58px;
  min-height: 41px;

  place-items: center;

  border-radius: 12px;

  color: #fff;

  background:
    linear-gradient(
      135deg,
      #174c36,
      #21835e
    );

  font-family:
    inherit;

  font-size: 20px;
}

.s315b-decision-copy {
  margin:
    17px 2px 0;

  color: #575044;
  font-size: 13px;
  line-height: 1.55;
  text-align: center;
}

.s315b-decision-actions {
  display: grid;

  grid-template-columns:
    repeat(
      2,
      minmax(
        0,
        1fr
      )
    );

  gap: 10px;
}

.s315b-decision-actions button {
  min-height: 50px;
}

.s315b-requested-player {
  display: grid;

  grid-template-columns:
    58px
    minmax(
      0,
      1fr
    );

  gap: 14px;
  align-items: center;

  padding: 16px;

  border:
    1px solid
    rgba(
      156,
      112,
      18,
      .20
    );

  border-radius: 17px;

  background:
    radial-gradient(
      circle at 90% 10%,
      rgba(
        209,
        161,
        48,
        .13
      ),
      transparent 35%
    ),
    rgba(
      255,
      255,
      255,
      .55
    );
}

.s315b-requested-player
> span {
  display: grid;
  width: 54px;
  height: 54px;

  place-items: center;

  border-radius: 16px;

  color: #fff;

  background:
    linear-gradient(
      145deg,
      #3d261b,
      #922f27
    );

  font-size: 26px;
}

.s315b-requested-player
small,
.s315b-requested-player
strong,
.s315b-requested-player
p {
  display: block;
}

.s315b-requested-player
small {
  color: #96701b;

  font-size: 8px;
  font-weight: 950;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.s315b-requested-player
strong {
  margin-top: 4px;

  color: #332a20;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 26px;
  line-height: 1;
}

.s315b-requested-player
p {
  margin:
    6px 0 0;

  color: #6d6456;
  font-size: 11px;
}

.s315b-ready-panel {
  display: grid;

  grid-template-columns:
    60px
    minmax(
      0,
      1fr
    );

  gap: 15px;
  align-items: center;

  padding: 20px;

  border:
    1px solid
    rgba(
      34,
      111,
      79,
      .19
    );

  border-radius: 18px;

  background:
    linear-gradient(
      145deg,
      #f4fff9,
      #dfefe7
    );
}

.s315b-ready-panel
> span {
  display: grid;
  width: 58px;
  height: 58px;

  place-items: center;

  border-radius: 17px;

  color: #fff;

  background:
    linear-gradient(
      145deg,
      #164b36,
      #24906a
    );

  font-size: 28px;
}

.s315b-ready-panel
strong {
  display: block;

  color: #1c4836;

  font-size: 17px;
}

.s315b-ready-panel p {
  margin:
    6px 0 0;

  color: #557065;
  font-size: 12px;
  line-height: 1.5;
}

body[data-theme="scuro"]
.s315b-session-card,
body[data-theme="scuro"]
.s315b-available-card,
body[data-theme="scuro"]
.s315b-declined-card,
body[data-theme="scuro"]
.s315b-decision-modal,
body[data-theme="scuro"]
.s315b-speaker-modal,
body[data-theme="scuro"]
.s315b-ready-modal {
  color: #edf5f0;

  border-color:
    rgba(
      255,
      255,
      255,
      .10
    );

  background:
    radial-gradient(
      circle at 92% 7%,
      rgba(
        210,
        164,
        56,
        .10
      ),
      transparent 33%
    ),
    linear-gradient(
      145deg,
      #111d18,
      #24251e
    );
}

body[data-theme="scuro"]
.s315b-session-card h3,
body[data-theme="scuro"]
.s315b-available-card h3,
body[data-theme="scuro"]
.s315b-declined-card h3,
body[data-theme="scuro"]
.s315b-requested-player
strong,
body[data-theme="scuro"]
.s315b-decision-match
strong {
  color: #fff5df;
}

body[data-theme="scuro"]
.s315b-session-card p,
body[data-theme="scuro"]
.s315b-available-card p,
body[data-theme="scuro"]
.s315b-declined-card p,
body[data-theme="scuro"]
.s315b-requested-player p,
body[data-theme="scuro"]
.s315b-decision-copy {
  color: #c9d4ce;
}

body[data-theme="scuro"]
.s315b-decision-match,
body[data-theme="scuro"]
.s315b-requested-player {
  border-color:
    rgba(
      255,
      255,
      255,
      .10
    );

  background:
    rgba(
      255,
      255,
      255,
      .045
    );
}

body[data-theme="scuro"]
.s315b-ready-panel {
  border-color:
    rgba(
      255,
      255,
      255,
      .10
    );

  background:
    linear-gradient(
      145deg,
      #10271d,
      #182b23
    );
}

body[data-theme="scuro"]
.s315b-ready-panel
strong {
  color: #e7fff2;
}

body[data-theme="scuro"]
.s315b-ready-panel p {
  color: #b8cdc2;
}

@media (max-width: 920px) {
  .s315b-hero {
    grid-template-columns:
      70px
      minmax(
        0,
        1fr
      );
  }

  .s315b-hero-mark {
    width: 65px;
    height: 65px;

    border-radius: 18px;
    font-size: 30px;
  }

  .s315b-hero-stats {
    grid-column:
      1 / -1;
  }
}

@media (max-width: 720px) {
  .s315b-grid {
    grid-template-columns:
      1fr !important;
  }

  .s315b-two-actions,
  .s315b-decision-actions {
    grid-template-columns:
      1fr;
  }

  .s315b-decision-match
  strong {
    flex-direction: column;
  }

  .s315b-match-button {
    margin:
      5px 0 0;
  }
}

@media (max-width: 520px) {
  .s315b-hero {
    grid-template-columns:
      52px
      minmax(
        0,
        1fr
      );

    gap: 12px;
    padding: 17px;
    border-radius: 18px;
  }

  .s315b-hero-mark {
    width: 50px;
    height: 50px;

    border-radius: 15px;
    font-size: 23px;
  }

  .s315b-hero h2 {
    font-size:
      clamp(
        25px,
        8.5vw,
        37px
      );
  }

  .s315b-hero p {
    font-size: 10px;
  }

  .s315b-hero-stats {
    grid-template-columns:
      repeat(
        3,
        minmax(
          0,
          1fr
        )
      );
  }

  .s315b-hero-stats > div {
    min-width: 0;
    padding: 9px 4px;
  }

  .s315b-hero-stats strong {
    font-size: 22px;
  }

  .s315b-hero-stats span {
    font-size: 6px;
  }

  .s315b-requested-player,
  .s315b-ready-panel {
    grid-template-columns:
      48px
      minmax(
        0,
        1fr
      );

    gap: 10px;
    padding: 13px;
  }

  .s315b-requested-player
  > span,
  .s315b-ready-panel
  > span {
    width: 46px;
    height: 46px;

    border-radius: 14px;
    font-size: 22px;
  }

  .s315b-requested-player
  strong {
    font-size: 21px;
  }
}

/* =========================================================
   MOTORE DELLE CONFERENZE 3.15C
   Incollare ALLA FINE di style.css
   ========================================================= */

.s315c-conference-hero {
  position: relative;
  isolation: isolate;

  display: grid;

  grid-template-columns:
    112px
    minmax(0, 1fr)
    auto;

  gap: 20px;
  align-items: center;

  margin-bottom: 20px;

  padding:
    clamp(
      19px,
      3.5vw,
      30px
    );

  overflow: hidden;

  border:
    1px solid
    rgba(220, 183, 89, .36);

  border-radius: 23px;
  color: #fff;

  background:
    radial-gradient(
      circle at 87% 8%,
      rgba(255, 222, 134, .24),
      transparent 31%
    ),
    radial-gradient(
      circle at 8% 100%,
      rgba(131, 39, 33, .38),
      transparent 37%
    ),
    linear-gradient(
      135deg,
      #111713,
      #293027 54%,
      #6d241d
    );

  box-shadow:
    inset 0 1px 0
      rgba(255, 255, 255, .14),
    0 23px 56px
      rgba(13, 18, 14, .28);
}

.s315c-conference-hero::before {
  content: "SALA STAMPA";

  position: absolute;
  right: -12px;
  bottom: -28px;
  z-index: -1;

  color:
    rgba(255, 255, 255, .045);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      68px,
      12vw,
      144px
    );

  font-weight: 950;
  line-height: 1;

  pointer-events: none;
  white-space: nowrap;
}

.s315c-player-photo {
  display: grid;
  width: 106px;
  height: 106px;

  place-items: center;
  overflow: hidden;

  border:
    3px solid
    rgba(255, 235, 180, .62);

  border-radius: 50%;
  color: #fff5d3;

  background:
    linear-gradient(
      145deg,
      #173e2d,
      #8c2d25
    );

  box-shadow:
    inset 0 0 0 5px
      rgba(255, 255, 255, .07),
    0 16px 35px
      rgba(0, 0, 0, .27);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 34px;
  font-weight: 950;
}

.s315c-player-photo img {
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center 18%;
}

.s315c-conference-copy {
  min-width: 0;
}

.s315c-conference-copy > span {
  display: block;
  color: #e9c66d;

  font-size: 9px;
  font-weight: 950;
  letter-spacing: .14em;
}

.s315c-conference-copy h2 {
  margin: 5px 0 7px;
  color: #fff;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      34px,
      5vw,
      62px
    );

  line-height: .94;
  letter-spacing: -.045em;
}

.s315c-conference-copy p {
  margin: 0;

  color:
    rgba(255, 255, 255, .76);

  font-size: 12px;
  font-weight: 760;
}

.s315c-conference-copy p strong {
  display: inline-grid;
  min-width: 45px;
  min-height: 29px;

  margin: 0 7px;
  place-items: center;

  border-radius: 9px;
  color: #17251e;
  background: #f2cf72;

  font-size: 14px;
}

.s315c-conference-state {
  display: grid;

  justify-items: end;
  gap: 8px;

  text-align: right;
}

.s315c-conference-state small {
  max-width: 190px;

  color:
    rgba(255, 255, 255, .62);

  font-size: 8px;
  font-weight: 850;
  line-height: 1.4;
  text-transform: uppercase;
}

.s315c-mood {
  display: inline-flex;
  align-items: center;

  min-height: 31px;
  padding: 6px 11px;

  border:
    1px solid
    rgba(255, 255, 255, .20);

  border-radius: 999px;
  color: #fff;
  background: rgba(0, 0, 0, .20);

  box-shadow:
    inset 0 1px 0
    rgba(255, 255, 255, .10);

  font-size: 8px;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.s315c-mood-calm {
  background:
    rgba(27, 118, 79, .42);
}

.s315c-mood-curious {
  background:
    rgba(45, 96, 145, .43);
}

.s315c-mood-cautious {
  background:
    rgba(139, 105, 33, .47);
}

.s315c-mood-amused {
  background:
    rgba(155, 113, 18, .47);
}

.s315c-mood-tense {
  background:
    rgba(154, 75, 17, .50);
}

.s315c-mood-hostile {
  background:
    rgba(153, 37, 31, .54);
}

.s315c-mood-out_of_control {
  background:
    rgba(95, 6, 3, .76);
}

.s315c-stage {
  max-width: 1080px;
  margin: 0 auto;
}

.s315c-question-card,
.s315c-reaction-card {
  padding:
    clamp(
      18px,
      3.5vw,
      31px
    );

  overflow: hidden;

  border:
    1px solid
    rgba(52, 78, 65, .16);

  border-radius: 22px;

  background:
    radial-gradient(
      circle at 94% 4%,
      rgba(180, 132, 32, .09),
      transparent 32%
    ),
    linear-gradient(
      145deg,
      #fffef9,
      #f1eadb
    );

  box-shadow:
    0 21px 48px
    rgba(24, 42, 33, .13);
}

.s315c-question-progress {
  display: flex;

  justify-content:
    space-between;

  gap: 12px;
  align-items: center;

  margin-bottom: 15px;
  padding-bottom: 11px;

  border-bottom:
    1px solid
    rgba(51, 76, 64, .13);
}

.s315c-question-progress span,
.s315c-question-progress b {
  color: #7e6c4b;

  font-size: 8px;
  font-weight: 950;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.s315c-question-progress b {
  padding: 5px 8px;

  border-radius: 999px;
  color: #fff;

  background:
    linear-gradient(
      135deg,
      #8a2b23,
      #c0503e
    );
}

.s315c-journalist-row {
  display: grid;

  grid-template-columns:
    56px
    minmax(0, 1fr);

  gap: 13px;
  align-items: center;
}

.s315c-outlet-icon {
  display: grid;
  width: 53px;
  height: 53px;

  place-items: center;

  border:
    1px solid
    rgba(130, 91, 19, .22);

  border-radius: 16px;

  background:
    linear-gradient(
      145deg,
      #fff5d5,
      #dfbd66
    );

  box-shadow:
    0 9px 20px
    rgba(75, 52, 10, .14);

  font-size: 25px;
}

.s315c-journalist-row strong,
.s315c-journalist-row small {
  display: block;
}

.s315c-journalist-row strong {
  color: #30291e;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 22px;
}

.s315c-journalist-row small {
  margin-top: 3px;
  color: #776d5c;

  font-size: 9px;
  font-weight: 800;
}

.s315c-question-text {
  margin: 22px 0;
  padding: 18px 20px;

  border: 0;
  border-left: 6px solid #8b2922;

  border-radius:
    0 15px 15px 0;

  color: #2d271f;

  background:
    rgba(255, 255, 255, .56);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      21px,
      3vw,
      31px
    );

  font-weight: 750;
  line-height: 1.25;
}

.s315c-response-grid {
  display: grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    );

  gap: 10px;
}

button.s315c-response:not(.danger):not(.secondary):not(.ghost) {
  display: block;
  min-height: 120px;

  padding: 15px;

  border:
    1px solid
    rgba(37, 83, 62, .16);

  border-radius: 16px;
  color: #2c3d34;

  background:
    rgba(255, 255, 255, .63);

  box-shadow:
    0 8px 18px
    rgba(31, 54, 42, .07);

  text-align: left;
  transform: none;
}

button.s315c-response:not(.danger):not(.secondary):not(.ghost):hover {
  border-color:
    rgba(24, 117, 78, .38);

  background: #f7fffb;

  box-shadow:
    0 12px 27px
    rgba(24, 88, 60, .14);

  transform:
    translateY(-2px);
}

.s315c-response span,
.s315c-response strong {
  display: block;
}

.s315c-response span {
  width: max-content;
  max-width: 100%;

  margin-bottom: 9px;
  padding: 4px 8px;

  border-radius: 999px;
  color: #fff;
  background: #315e49;

  font-size: 7px;
  font-weight: 950;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.s315c-response strong {
  color: inherit;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 15px;
  line-height: 1.38;
}

.s315c-tone-arrogant span {
  background: #8f6814;
}

.s315c-tone-polemic span {
  background: #9d4720;
}

.s315c-tone-furious span {
  background: #a12c25;
}

.s315c-tone-meme span {
  background: #6f3d91;
}

.s315c-tone-absurd span {
  background: #415594;
}

.s315c-tone-self_critical span {
  background: #39749a;
}

.s315c-secondary-actions {
  display: grid;

  grid-template-columns:
    repeat(
      4,
      minmax(0, 1fr)
    );

  gap: 8px;
  margin-top: 13px;
  padding-top: 13px;

  border-top:
    1px solid
    rgba(43, 78, 61, .13);
}

.s315c-secondary-actions button {
  min-height: 43px;
  padding: 8px 10px;

  font-size: 9px;
  line-height: 1.25;
}

.s315c-personal-area {
  margin-top: 14px;
  padding: 15px;

  border:
    1px solid
    rgba(32, 105, 74, .20);

  border-radius: 16px;

  background:
    linear-gradient(
      145deg,
      #f2fff8,
      #e4f0e9
    );
}

.s315c-personal-area[hidden] {
  display: none !important;
}

.s315c-personal-area textarea {
  min-height: 145px;
  resize: vertical;
}

.s315c-personal-area > small {
  display: block;

  margin-top: 10px;
  color: #60756a;

  font-size: 9px;
  line-height: 1.45;
}

.s315c-reaction-card {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}

.s315c-reaction-label {
  display: inline-flex;
  padding: 6px 10px;

  border-radius: 999px;
  color: #fff;

  background:
    linear-gradient(
      135deg,
      #632019,
      #a83b30
    );

  font-size: 8px;
  font-weight: 950;
  letter-spacing: .12em;
}

.s315c-reaction-card h2 {
  margin: 13px 0 8px;
  color: #30291e;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      34px,
      5vw,
      57px
    );

  line-height: .95;
  letter-spacing: -.045em;
}

.s315c-reaction-card > p {
  max-width: 680px;
  margin: 0 auto;

  color: #645c4f;

  font-size: 14px;
  line-height: 1.6;
}

.s315c-reaction-card blockquote {
  max-width: 690px;

  margin:
    20px auto 0;

  padding: 16px 18px;

  border: 0;
  border-left: 5px solid #9e741a;

  border-radius:
    0 14px 14px 0;

  color: #30291f;

  background:
    rgba(255, 255, 255, .57);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 18px;
  line-height: 1.45;
  text-align: left;
}

.s315c-reaction-card blockquote small {
  display: block;

  margin-top: 8px;
  color: #836a3c;

  font-family: inherit;
  font-size: 11px;
}

.s315c-reaction-card .actions {
  justify-content: center;
  margin-top: 20px;
}

.s315c-conference-controls {
  display: flex;
  max-width: 1080px;

  justify-content:
    flex-end;

  gap: 9px;

  margin:
    14px auto 0;

  padding:
    13px 0 0;

  border-top:
    1px solid
    rgba(33, 79, 59, .14);
}

.s315c-transcript {
  display: grid;
  gap: 15px;
}

.s315c-transcript > header {
  display: flex;

  justify-content:
    space-between;

  gap: 16px;
  align-items: flex-end;

  padding:
    0 3px 12px;

  border-bottom:
    1px solid
    rgba(32, 74, 56, .15);
}

.s315c-transcript > header h2 {
  margin: 4px 0 0;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      28px,
      4vw,
      42px
    );

  letter-spacing: -.04em;
}

.s315c-transcript > header .s315c-mood {
  color: #fff;
}

.s315c-walkout-note {
  padding: 15px 17px;

  border:
    1px solid
    rgba(157, 45, 37, .24);

  border-left:
    6px solid #a22e26;

  border-radius:
    0 15px 15px 0;

  color: #752a24;
  background: #fff0ed;

  font-size: 12px;
  font-weight: 850;
  line-height: 1.5;
}

.s315c-transcript-list {
  display: grid;
  gap: 12px;
}

.s315c-transcript-item {
  padding: 18px;

  border-color:
    rgba(39, 89, 65, .14);

  background:
    linear-gradient(
      145deg,
      #fffef9,
      #f1ecdf
    );
}

.s315c-transcript-question {
  display: grid;

  grid-template-columns:
    37px
    minmax(0, 1fr);

  gap: 12px;
  align-items: start;
}

.s315c-transcript-question > span {
  display: grid;
  width: 34px;
  height: 34px;

  place-items: center;

  border-radius: 11px;
  color: #fff;

  background:
    linear-gradient(
      145deg,
      #183f2d,
      #287759
    );

  font-size: 12px;
  font-weight: 950;
}

.s315c-transcript-question small,
.s315c-transcript-question strong {
  display: block;
}

.s315c-transcript-question small {
  color: #897344;

  font-size: 8px;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.s315c-transcript-question strong {
  margin-top: 4px;
  color: #30291e;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 17px;
  line-height: 1.35;
}

.s315c-transcript-item blockquote {
  margin:
    15px 0 0 49px;

  padding: 14px 16px;

  border: 0;
  border-left: 5px solid #9b721a;

  border-radius:
    0 13px 13px 0;

  color: #332c23;

  background:
    rgba(255, 255, 255, .55);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 16px;
  line-height: 1.45;
}

.s315c-transcript-item blockquote small {
  display: block;

  margin-top: 7px;
  color: #836f48;

  font-size: 10px;
}

.s315c-transcript-reaction {
  margin:
    12px 0 0 49px;

  padding: 10px 12px;

  border-radius: 11px;
  color: #536a5e;

  background:
    rgba(27, 101, 70, .07);

  font-size: 10px;
  line-height: 1.5;
}

body[data-theme="scuro"] .s315c-question-card,
body[data-theme="scuro"] .s315c-reaction-card,
body[data-theme="scuro"] .s315c-transcript-item {
  border-color:
    rgba(255, 255, 255, .10);

  background:
    radial-gradient(
      circle at 94% 4%,
      rgba(203, 157, 50, .09),
      transparent 32%
    ),
    linear-gradient(
      145deg,
      #101d17,
      #26241d
    );
}

body[data-theme="scuro"] .s315c-journalist-row strong,
body[data-theme="scuro"] .s315c-question-text,
body[data-theme="scuro"] .s315c-reaction-card h2,
body[data-theme="scuro"] .s315c-transcript-question strong,
body[data-theme="scuro"] .s315c-transcript-item blockquote,
body[data-theme="scuro"] button.s315c-response:not(.danger):not(.secondary):not(.ghost) {
  color: #fff6df;
}

body[data-theme="scuro"] .s315c-journalist-row small,
body[data-theme="scuro"] .s315c-reaction-card > p,
body[data-theme="scuro"] .s315c-transcript-reaction,
body[data-theme="scuro"] .s315c-personal-area > small {
  color: #b9cbc1;
}

body[data-theme="scuro"] .s315c-question-text,
body[data-theme="scuro"] .s315c-reaction-card blockquote,
body[data-theme="scuro"] .s315c-transcript-item blockquote,
body[data-theme="scuro"] button.s315c-response:not(.danger):not(.secondary):not(.ghost) {
  border-color:
    rgba(255, 255, 255, .10);

  background:
    rgba(255, 255, 255, .045);
}

body[data-theme="scuro"] .s315c-personal-area {
  border-color:
    rgba(255, 255, 255, .10);

  background:
    linear-gradient(
      145deg,
      #10261c,
      #1b2a22
    );
}

body[data-theme="scuro"] .s315c-transcript-reaction {
  background:
    rgba(69, 180, 126, .08);
}

@media (max-width: 900px) {
  .s315c-conference-hero {
    grid-template-columns:
      92px
      minmax(0, 1fr);
  }

  .s315c-player-photo {
    width: 88px;
    height: 88px;
  }

  .s315c-conference-state {
    grid-column: 1 / -1;

    grid-template-columns:
      auto
      minmax(0, 1fr);

    justify-items: start;
    align-items: center;

    text-align: left;
  }

  .s315c-conference-state small {
    max-width: none;
  }

  .s315c-secondary-actions {
    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );
  }
}

@media (max-width: 680px) {
  .s315c-response-grid {
    grid-template-columns:
      1fr;
  }

  button.s315c-response:not(.danger):not(.secondary):not(.ghost) {
    min-height: 0;
  }

  .s315c-conference-controls {
    display: grid;
    grid-template-columns: 1fr;
  }

  .s315c-transcript > header {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 520px) {
  .s315c-conference-hero {
    grid-template-columns:
      66px
      minmax(0, 1fr);

    gap: 12px;
    padding: 16px;

    border-radius: 18px;
  }

  .s315c-player-photo {
    width: 64px;
    height: 64px;

    border-width: 2px;
    font-size: 23px;
  }

  .s315c-conference-copy > span {
    font-size: 7px;
  }

  .s315c-conference-copy h2 {
    font-size:
      clamp(
        29px,
        10vw,
        43px
      );
  }

  .s315c-conference-copy p {
    font-size: 9px;
  }

  .s315c-conference-state {
    grid-template-columns:
      1fr;
  }

  .s315c-question-card,
  .s315c-reaction-card {
    padding: 15px;
    border-radius: 17px;
  }

  .s315c-journalist-row {
    grid-template-columns:
      46px
      minmax(0, 1fr);

    gap: 10px;
  }

  .s315c-outlet-icon {
    width: 44px;
    height: 44px;

    border-radius: 13px;
    font-size: 20px;
  }

  .s315c-journalist-row strong {
    font-size: 18px;
  }

  .s315c-question-text {
    margin: 16px 0;
    padding: 14px;

    font-size: 20px;
  }

  .s315c-secondary-actions {
    grid-template-columns:
      1fr;
  }

  .s315c-personal-area textarea {
    min-height: 125px;
    font-size: 16px;
  }

  .s315c-transcript-item {
    padding: 14px;
  }

  .s315c-transcript-item blockquote,
  .s315c-transcript-reaction {
    margin-left: 0;
  }
}

/* =========================================================
   INTELLIGENZA ARTIFICIALE ONLINE 3.15D
   Incollare ALLA FINE di style.css
   ========================================================= */

.s315d-online-badge {
  display: inline-flex;

  width: max-content;
  min-height: 29px;

  align-items: center;
  gap: 7px;

  padding: 6px 10px;

  border:
    1px solid
    rgba(
      137,
      215,
      179,
      .28
    );

  border-radius: 999px;

  color: #dfffee;

  background:
    rgba(
      15,
      91,
      61,
      .36
    );

  box-shadow:
    inset 0 1px 0
    rgba(
      255,
      255,
      255,
      .10
    );

  font-size: 7px;
  font-style: normal;
  font-weight: 950;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.s315d-online-badge i {
  display: block;
  width: 7px;
  height: 7px;

  border-radius: 50%;
  background: #78e6ae;

  box-shadow:
    0 0 0 4px
    rgba(
      120,
      230,
      174,
      .13
    );
}

.s315c-personal-area.is-analyzing {
  position: relative;

  border-color:
    rgba(
      39,
      135,
      91,
      .38
    );

  box-shadow:
    0 0 0 4px
    rgba(
      41,
      139,
      94,
      .09
    );
}

.s315c-personal-area.is-analyzing
textarea {
  opacity: .62;
}

.s315d-ai-loader {
  display: grid;

  grid-template-columns:
    35px
    minmax(0, 1fr);

  gap: 11px;
  align-items: center;

  margin-top: 13px;
  padding: 12px 13px;

  border:
    1px solid
    rgba(
      39,
      128,
      88,
      .18
    );

  border-radius: 13px;

  color: #27523e;

  background:
    rgba(
      255,
      255,
      255,
      .54
    );
}

.s315d-ai-loader > span {
  display: block;
  width: 28px;
  height: 28px;

  border:
    3px solid
    rgba(
      32,
      118,
      79,
      .17
    );

  border-top-color:
    #27825b;

  border-radius: 50%;

  animation:
    s315d-spin
    .78s
    linear
    infinite;
}

.s315d-ai-loader strong,
.s315d-ai-loader small {
  display: block;
}

.s315d-ai-loader strong {
  color: #234d39;
  font-size: 12px;
}

.s315d-ai-loader small {
  margin-top: 3px;

  color: #61786c;

  font-size: 9px;
  line-height: 1.4;
}

.s315d-ai-error {
  margin-top: 12px;
  padding: 11px 13px;

  border:
    1px solid
    rgba(
      171,
      50,
      42,
      .24
    );

  border-left:
    5px solid
    #a9322b;

  border-radius:
    0 12px 12px 0;

  color: #842d27;
  background: #fff0ed;

  font-size: 10px;
  font-weight: 800;
  line-height: 1.5;
}

body[data-theme="scuro"]
.s315d-ai-loader {
  color: #dff9eb;

  border-color:
    rgba(
      255,
      255,
      255,
      .10
    );

  background:
    rgba(
      255,
      255,
      255,
      .045
    );
}

body[data-theme="scuro"]
.s315d-ai-loader strong {
  color: #e8fff2;
}

body[data-theme="scuro"]
.s315d-ai-loader small {
  color: #b8cdc2;
}

body[data-theme="scuro"]
.s315d-ai-error {
  color: #ffd8d2;

  border-color:
    rgba(
      255,
      104,
      91,
      .23
    );

  border-left-color:
    #ef685c;

  background:
    rgba(
      126,
      27,
      20,
      .29
    );
}

@keyframes s315d-spin {
  to {
    transform:
      rotate(360deg);
  }
}

@media (
  prefers-reduced-motion:
  reduce
) {
  .s315d-ai-loader > span {
    animation-duration:
      1.8s;
  }
}

/* =========================================================
   SISTEMA MEDIATICO AVANZATO 3.15E
   Incollare ALLA FINE di style.css
   ========================================================= */

.s315e-media-summary {
  display: grid;
  grid-template-columns:
    58px
    minmax(0, 1fr)
    minmax(180px, 280px);

  gap: 15px;
  align-items: center;

  margin: -5px 0 18px;
  padding: 14px 16px;

  border:
    1px solid
    rgba(120, 87, 26, .20);

  border-radius: 17px;

  background:
    radial-gradient(
      circle at 92% 6%,
      rgba(178, 126, 24, .12),
      transparent 34%
    ),
    linear-gradient(
      145deg,
      #fffdf6,
      #eee5d1
    );

  box-shadow:
    0 13px 30px
    rgba(41, 32, 13, .10);
}

.s315e-media-summary-mark {
  display: grid;
  width: 54px;
  height: 54px;

  place-items: center;

  border-radius: 16px;
  color: #ffe6a2;

  background:
    linear-gradient(
      145deg,
      #1b3d2d,
      #872b24
    );

  box-shadow:
    inset 0 1px 0
      rgba(255, 255, 255, .18),
    0 10px 22px
      rgba(41, 25, 11, .18);

  font-size: 24px;
}

.s315e-media-summary-copy {
  min-width: 0;
}

.s315e-media-summary-copy > span {
  display: block;

  color: #8e6917;

  font-size: 8px;
  font-weight: 950;
  letter-spacing: .12em;
}

.s315e-media-summary-copy > strong {
  display: block;

  margin-top: 4px;

  color: #30291f;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 23px;
  line-height: 1;
  letter-spacing: -.025em;
}

.s315e-media-summary-copy > p {
  margin: 6px 0 0;

  color: #686052;

  font-size: 10px;
  line-height: 1.45;
}

.s315e-media-summary-note {
  padding: 10px 12px;

  border-left:
    4px solid
    #8e2f27;

  border-radius:
    0 11px 11px 0;

  color: #725e3a;

  background:
    rgba(255, 255, 255, .48);

  font-size: 9px;
  font-weight: 800;
  line-height: 1.45;
}

.s315e-cross-intervention {
  display: grid;

  grid-template-columns:
    48px
    minmax(0, 1fr);

  gap: 12px;
  align-items: start;

  margin-top: 17px;
  padding: 14px;

  border:
    1px solid
    rgba(130, 46, 37, .20);

  border-left:
    6px solid
    #8f3028;

  border-radius:
    0 15px 15px 0;

  background:
    radial-gradient(
      circle at 92% 8%,
      rgba(157, 54, 43, .10),
      transparent 35%
    ),
    rgba(255, 248, 240, .72);

  text-align: left;
}

.s315e-cross-icon {
  display: grid;
  width: 45px;
  height: 45px;

  place-items: center;

  border-radius: 14px;

  background:
    linear-gradient(
      145deg,
      #30281f,
      #8d3028
    );

  box-shadow:
    0 8px 18px
    rgba(69, 29, 21, .18);

  font-size: 21px;
}

.s315e-cross-intervention small,
.s315e-cross-intervention strong,
.s315e-cross-intervention p {
  display: block;
}

.s315e-cross-intervention small {
  color: #9b4b3c;

  font-size: 7px;
  font-weight: 950;
  letter-spacing: .10em;
}

.s315e-cross-intervention strong {
  margin-top: 4px;

  color: #352b22;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 17px;
}

.s315e-cross-intervention p {
  margin: 6px 0 0;

  color: #62584b;

  font-size: 11px;
  line-height: 1.5;
}

.s315e-cited-players {
  display: flex;
  flex-wrap: wrap;

  gap: 6px;
  align-items: center;

  margin: 12px 0 0 49px;
  padding-top: 10px;

  border-top:
    1px solid
    rgba(43, 83, 62, .11);
}

.s315e-cited-players small {
  margin-right: 3px;

  color: #7d6b47;

  font-size: 7px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.s315e-cited-players span,
.s315e-card-profile {
  display: inline-flex;
  align-items: center;

  min-height: 25px;
  padding: 5px 9px;

  border:
    1px solid
    rgba(30, 109, 75, .16);

  border-radius: 999px;

  color: #246047;

  background:
    rgba(39, 128, 88, .08);

  font-size: 8px;
  font-weight: 900;
}

.s315e-card-profile {
  width: max-content;
  max-width: 100%;

  margin: 10px 0 12px;

  color: #7a5714;

  border-color:
    rgba(151, 108, 24, .18);

  background:
    rgba(181, 134, 35, .09);

  text-transform: uppercase;
  letter-spacing: .06em;
}

body[data-theme="scuro"]
.s315e-media-summary {
  border-color:
    rgba(255, 255, 255, .10);

  background:
    radial-gradient(
      circle at 92% 6%,
      rgba(201, 150, 45, .10),
      transparent 34%
    ),
    linear-gradient(
      145deg,
      #121e18,
      #28241c
    );
}

body[data-theme="scuro"]
.s315e-media-summary-copy > strong,
body[data-theme="scuro"]
.s315e-cross-intervention strong {
  color: #fff4dc;
}

body[data-theme="scuro"]
.s315e-media-summary-copy > p,
body[data-theme="scuro"]
.s315e-media-summary-note,
body[data-theme="scuro"]
.s315e-cross-intervention p {
  color: #c4cec8;
}

body[data-theme="scuro"]
.s315e-media-summary-note,
body[data-theme="scuro"]
.s315e-cross-intervention {
  border-color:
    rgba(255, 255, 255, .10);

  background:
    rgba(255, 255, 255, .045);
}

body[data-theme="scuro"]
.s315e-cited-players span,
body[data-theme="scuro"]
.s315e-card-profile {
  color: #dceadf;

  border-color:
    rgba(255, 255, 255, .10);

  background:
    rgba(255, 255, 255, .05);
}

@media (max-width: 820px) {
  .s315e-media-summary {
    grid-template-columns:
      54px
      minmax(0, 1fr);
  }

  .s315e-media-summary-note {
    grid-column: 1 / -1;
  }
}

@media (max-width: 520px) {
  .s315e-media-summary {
    grid-template-columns:
      45px
      minmax(0, 1fr);

    gap: 10px;
    padding: 12px;
  }

  .s315e-media-summary-mark {
    width: 43px;
    height: 43px;

    border-radius: 13px;
    font-size: 19px;
  }

  .s315e-media-summary-copy > strong {
    font-size: 19px;
  }

  .s315e-cross-intervention {
    grid-template-columns:
      40px
      minmax(0, 1fr);

    gap: 9px;
    padding: 11px;
  }

  .s315e-cross-icon {
    width: 38px;
    height: 38px;

    border-radius: 12px;
    font-size: 18px;
  }

  .s315e-cited-players {
    margin-left: 0;
  }
}

/* =========================================================
   ORDINE NAZIONALE
   Settima testata della Sala stampa
   ========================================================= */

.s315c-question-card.s315c-outlet-partito_nazionale_fascista {
  border-color:
    rgba(112, 27, 21, .34);

  background:
    radial-gradient(
      circle at 92% 5%,
      rgba(122, 31, 24, .16),
      transparent 34%
    ),
    linear-gradient(
      145deg,
      #fffaf0,
      #e8ddc7
    );
}

.s315c-outlet-partito_nazionale_fascista
.s315c-outlet-icon {
  color: #f6df9b;

  border-color:
    rgba(111, 29, 23, .32);

  background:
    linear-gradient(
      145deg,
      #211b17,
      #79271f
    );
}

.s315c-outlet-partito_nazionale_fascista
.s315c-question-text {
  border-left-color:
    #6f201a;
}

.s315c-outlet-partito_nazionale_fascista
.s315c-journalist-row strong {
  color: #6d211c;
}

.s315c-outlet-partito_nazionale_fascista
.s315c-question-progress b {
  color: #fff1bd;
  background: #74241d;
}

body[data-theme="scuro"]
.s315c-question-card.s315c-outlet-partito_nazionale_fascista {
  border-color:
    rgba(211, 81, 67, .30);

  background:
    radial-gradient(
      circle at 92% 5%,
      rgba(148, 42, 32, .17),
      transparent 34%
    ),
    linear-gradient(
      145deg,
      #171410,
      #2d211b
    );
}

body[data-theme="scuro"]
.s315c-outlet-partito_nazionale_fascista
.s315c-journalist-row strong {
  color: #ffb4a8;
}

/* =========================================================
   EVENTI SPECIALI SALA STAMPA 3.15F
   Incollare ALLA FINE di style.css
   ========================================================= */

.s315f-special-banner {
  display: grid;
  grid-template-columns:
    58px
    minmax(0, 1fr)
    auto;

  gap: 14px;
  align-items: center;

  margin: -4px 0 18px;
  padding: 15px 16px;

  border:
    1px solid
    rgba(124, 71, 25, .24);

  border-left:
    6px solid
    #8d3428;

  border-radius:
    0 17px 17px 0;

  background:
    radial-gradient(
      circle at 94% 4%,
      rgba(160, 68, 37, .14),
      transparent 36%
    ),
    linear-gradient(
      145deg,
      #fffaf0,
      #e9dfcc
    );

  box-shadow:
    0 13px 30px
    rgba(51, 35, 17, .10);
}

.s315f-special-icon {
  display: grid;

  width: 54px;
  height: 54px;

  place-items: center;

  border-radius: 16px;

  color: #ffe4a6;

  background:
    linear-gradient(
      145deg,
      #231b16,
      #8b3026
    );

  box-shadow:
    inset 0 1px 0
      rgba(255, 255, 255, .16),
    0 9px 20px
      rgba(66, 31, 22, .19);

  font-size: 24px;
  font-style: normal;
}

.s315f-special-banner
> div:nth-child(2) {
  min-width: 0;
}

.s315f-special-banner
> div:nth-child(2)
> span {
  display: block;

  color: #9a4a38;

  font-size: 8px;
  font-weight: 950;
  letter-spacing: .12em;
}

.s315f-special-banner
> div:nth-child(2)
> strong {
  display: block;

  margin-top: 4px;

  color: #30271f;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 23px;
  line-height: 1.05;
}

.s315f-special-banner
> div:nth-child(2)
> p {
  margin: 6px 0 0;

  color: #6c5f51;

  font-size: 10px;
  line-height: 1.5;
}

.s315f-special-decisive {
  border-left-color:
    #a47a1d;
}

.s315f-special-rivalry {
  border-left-color:
    #9b2d25;
}

.s315f-special-crisis,
.s315f-special-disciplinary,
.s315f-special-media_storm {
  border-left-color:
    #7e211d;
}

.s315f-special-celebration {
  border-left-color:
    #24704e;
}

.s315f-rivalry-chip {
  display: grid;

  min-width: 126px;

  padding: 9px 12px;

  border:
    1px solid
    rgba(126, 38, 31, .18);

  border-radius: 13px;

  background:
    rgba(255, 255, 255, .52);

  text-align: center;
}

.s315f-rivalry-chip small {
  color: #95664b;

  font-size: 7px;
  font-weight: 950;
  letter-spacing: .10em;
}

.s315f-rivalry-chip b {
  margin-top: 2px;

  color: #74251f;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 22px;
  line-height: 1;
}

.s315f-rivalry-chip span {
  margin-top: 3px;

  color: #6f5747;

  font-size: 8px;
  font-weight: 900;
}

.s315f-hot-mic {
  display: grid;

  grid-template-columns:
    52px
    minmax(0, 1fr);

  gap: 14px;
  align-items: start;

  margin-top: 18px;
  padding: 17px;

  border:
    1px solid
    rgba(132, 29, 24, .24);

  border-radius: 17px;

  background:
    radial-gradient(
      circle at 92% 7%,
      rgba(151, 32, 27, .14),
      transparent 35%
    ),
    linear-gradient(
      145deg,
      #fff7ef,
      #ebddd1
    );

  box-shadow:
    0 14px 30px
    rgba(61, 29, 21, .11);
}

.s315f-hot-mic-mark {
  display: grid;

  width: 48px;
  height: 48px;

  place-items: center;

  border-radius: 50%;

  color: #ffcdc7;
  background: #7f211c;

  box-shadow:
    0 0 0 7px
      rgba(127, 33, 28, .10),
    0 9px 19px
      rgba(81, 26, 22, .20);

  font-size: 18px;

  animation:
    s315f-recording-pulse
    1.8s
    ease-in-out
    infinite;
}

@keyframes s315f-recording-pulse {
  0%,
  100% {
    box-shadow:
      0 0 0 7px
        rgba(127, 33, 28, .08),
      0 9px 19px
        rgba(81, 26, 22, .20);
  }

  50% {
    box-shadow:
      0 0 0 12px
        rgba(127, 33, 28, .03),
      0 9px 19px
        rgba(81, 26, 22, .20);
  }
}

.s315f-hot-mic span {
  color: #a03a30;

  font-size: 8px;
  font-weight: 950;
  letter-spacing: .13em;
}

.s315f-hot-mic h3 {
  margin: 4px 0 0;

  color: #352821;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 22px;
}

.s315f-hot-mic p {
  margin: 7px 0 0;

  color: #6b5d52;

  font-size: 10px;
  line-height: 1.5;
}

.s315f-hot-mic blockquote {
  margin: 13px 0 0;
  padding: 12px 14px;

  border-left:
    5px solid
    #872720;

  border-radius:
    0 12px 12px 0;

  color: #4c332b;

  background:
    rgba(255, 255, 255, .58);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 16px;
  font-weight: 700;
  line-height: 1.45;
}

.s315f-historic-badge {
  width: max-content;
  max-width: 100%;

  margin:
    0
    0
    11px
    48px;

  padding: 6px 9px;

  border:
    1px solid
    rgba(159, 111, 23, .22);

  border-radius: 999px;

  color: #805a13;

  background:
    rgba(190, 140, 34, .10);

  font-size: 7px;
  font-weight: 950;
  letter-spacing: .09em;
}

.s315f-events-board {
  margin: 18px 0;
  padding: 17px;

  border:
    1px solid
    rgba(104, 76, 29, .15);

  border-radius: 18px;

  background:
    radial-gradient(
      circle at 95% 0%,
      rgba(169, 119, 26, .12),
      transparent 32%
    ),
    linear-gradient(
      145deg,
      #fffdf7,
      #eee7d9
    );

  box-shadow:
    0 14px 30px
    rgba(49, 38, 20, .09);
}

.s315f-events-board
> header {
  display: flex;

  justify-content:
    space-between;

  gap: 15px;
  align-items: end;

  margin-bottom: 13px;
}

.s315f-events-board
> header span {
  color: #936817;

  font-size: 8px;
  font-weight: 950;
  letter-spacing: .12em;
}

.s315f-events-board
> header h3 {
  margin: 3px 0 0;

  color: #302920;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 22px;
}

.s315f-events-board
> header
> small {
  max-width: 230px;

  color: #7c705f;

  font-size: 9px;
  line-height: 1.4;

  text-align: right;
}

.s315f-events-grid {
  display: grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    );

  gap: 10px;
}

.s315f-events-grid article {
  display: grid;

  grid-template-columns:
    38px
    minmax(0, 1fr);

  gap: 10px;
  align-items: start;

  padding: 12px;

  border:
    1px solid
    rgba(65, 52, 31, .10);

  border-radius: 14px;

  background:
    rgba(255, 255, 255, .50);
}

.s315f-events-grid
article > i {
  display: grid;

  width: 36px;
  height: 36px;

  place-items: center;

  border-radius: 12px;

  color: #ffe2a1;

  background:
    linear-gradient(
      145deg,
      #26372d,
      #803128
    );

  font-style: normal;
  font-size: 17px;
}

.s315f-events-grid
article small,
.s315f-events-grid
article strong,
.s315f-events-grid
article p {
  display: block;
}

.s315f-events-grid
article small {
  color: #9a7151;

  font-size: 7px;
  font-weight: 900;
  letter-spacing: .07em;

  text-transform:
    uppercase;
}

.s315f-events-grid
article strong {
  margin-top: 3px;

  color: #392f27;

  font-size: 11px;
}

.s315f-events-grid
article p {
  margin: 5px 0 0;

  color: #71675b;

  font-size: 9px;
  line-height: 1.45;
}

.s315f-card-tags {
  display: flex;
  flex-wrap: wrap;

  gap: 6px;

  margin: 10px 0 12px;
}

.s315f-card-tags span {
  display: inline-flex;

  min-height: 24px;

  align-items: center;

  padding: 5px 9px;

  border:
    1px solid
    rgba(126, 51, 37, .17);

  border-radius: 999px;

  color: #7a392d;

  background:
    rgba(145, 55, 42, .07);

  font-size: 7px;
  font-weight: 950;
  letter-spacing: .06em;

  text-transform:
    uppercase;
}

body[data-theme="scuro"]
.s315f-special-banner,
body[data-theme="scuro"]
.s315f-hot-mic,
body[data-theme="scuro"]
.s315f-events-board {
  border-color:
    rgba(255, 255, 255, .10);

  background:
    radial-gradient(
      circle at 93% 4%,
      rgba(154, 55, 38, .13),
      transparent 35%
    ),
    linear-gradient(
      145deg,
      #151a17,
      #29221c
    );
}

body[data-theme="scuro"]
.s315f-special-banner
> div:nth-child(2)
> strong,
body[data-theme="scuro"]
.s315f-hot-mic h3,
body[data-theme="scuro"]
.s315f-events-board
> header h3,
body[data-theme="scuro"]
.s315f-events-grid
article strong {
  color: #fff1d8;
}

body[data-theme="scuro"]
.s315f-special-banner
> div:nth-child(2)
> p,
body[data-theme="scuro"]
.s315f-hot-mic p,
body[data-theme="scuro"]
.s315f-events-board
> header
> small,
body[data-theme="scuro"]
.s315f-events-grid
article p {
  color: #c7cec9;
}

body[data-theme="scuro"]
.s315f-rivalry-chip,
body[data-theme="scuro"]
.s315f-hot-mic blockquote,
body[data-theme="scuro"]
.s315f-events-grid article {
  border-color:
    rgba(255, 255, 255, .09);

  background:
    rgba(255, 255, 255, .045);
}

body[data-theme="scuro"]
.s315f-hot-mic blockquote {
  color: #f1ded7;
}

body[data-theme="scuro"]
.s315f-card-tags span,
body[data-theme="scuro"]
.s315f-historic-badge {
  border-color:
    rgba(255, 255, 255, .10);

  color: #f0d7b8;

  background:
    rgba(255, 255, 255, .05);
}

@media (max-width: 820px) {
  .s315f-special-banner {
    grid-template-columns:
      54px
      minmax(0, 1fr);
  }

  .s315f-rivalry-chip {
    grid-column:
      1 / -1;

    grid-template-columns:
      auto
      auto
      1fr;

    gap: 8px;
    align-items: center;

    text-align: left;
  }

  .s315f-rivalry-chip b {
    margin: 0;
  }

  .s315f-rivalry-chip span {
    margin: 0;
  }
}

@media (max-width: 620px) {
  .s315f-events-grid {
    grid-template-columns:
      1fr;
  }

  .s315f-events-board
  > header {
    display: block;
  }

  .s315f-events-board
  > header
  > small {
    display: block;

    margin-top: 5px;

    max-width: none;

    text-align: left;
  }
}

@media (max-width: 520px) {
  .s315f-special-banner {
    grid-template-columns:
      44px
      minmax(0, 1fr);

    gap: 10px;
    padding: 12px;
  }

  .s315f-special-icon {
    width: 42px;
    height: 42px;

    border-radius: 13px;

    font-size: 19px;
  }

  .s315f-special-banner
  > div:nth-child(2)
  > strong {
    font-size: 19px;
  }

  .s315f-hot-mic {
    grid-template-columns:
      40px
      minmax(0, 1fr);

    gap: 10px;
    padding: 13px;
  }

  .s315f-hot-mic-mark {
    width: 38px;
    height: 38px;

    font-size: 14px;
  }

  .s315f-hot-mic h3 {
    font-size: 19px;
  }

  .s315f-hot-mic blockquote {
    font-size: 14px;
  }

  .s315f-historic-badge {
    margin-left: 0;
  }
}

@media (
  prefers-reduced-motion:
  reduce
) {
  .s315f-hot-mic-mark {
    animation: none;
  }
}

.s315e-cross-answer-note {
  display: inline-flex;

  margin-top: 9px;
  padding: 6px 9px;

  border:
    1px solid
    rgba(128, 47, 38, .17);

  border-radius: 999px;

  color: #7e3029;
  background:
    rgba(139, 48, 39, .07);

  font-size: 8px;
  font-weight: 900;
  letter-spacing: .04em;
}

body[data-theme="scuro"]
.s315e-cross-answer-note {
  color: #ffc3b7;

  border-color:
    rgba(255, 255, 255, .10);

  background:
    rgba(255, 255, 255, .05);
}

/* =========================================================
   FUORI ONDA DURANTE LA CONFERENZA 3.15F.1
   ========================================================= */

.s315c-question-card.s315f-live-hot-question {
  border:
    1px solid
    rgba(155, 58, 45, .30);

  border-left:
    6px solid
    #8c2922;

  background:
    radial-gradient(
      circle at 93% 3%,
      rgba(151, 44, 34, .15),
      transparent 35%
    ),
    linear-gradient(
      145deg,
      #fff8ef,
      #e9ded0
    );
}

.s315f-live-hot-heading {
  display: flex;

  gap: 11px;
  align-items: center;

  margin-bottom: 15px;
  padding: 11px 12px;

  border:
    1px solid
    rgba(130, 38, 31, .17);

  border-radius: 14px;

  background:
    rgba(255, 255, 255, .48);
}

.s315f-live-hot-heading
> span {
  display: grid;

  width: 42px;
  height: 42px;

  flex: 0 0 42px;

  place-items: center;

  border-radius: 13px;

  color: #ffe2d4;

  background:
    linear-gradient(
      145deg,
      #31221e,
      #842820
    );

  box-shadow:
    0 8px 18px
    rgba(74, 28, 22, .17);

  font-size: 19px;
}

.s315f-live-hot-heading small,
.s315f-live-hot-heading strong {
  display: block;
}

.s315f-live-hot-heading small {
  color: #a04438;

  font-size: 7px;
  font-weight: 950;
  letter-spacing: .11em;
}

.s315f-live-hot-heading strong {
  margin-top: 3px;

  color: #3d2d26;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 17px;
}

.s315f-live-hot-badge {
  width: max-content;
  max-width: 100%;

  margin:
    0
    0
    10px
    48px;

  padding: 6px 9px;

  border:
    1px solid
    rgba(152, 39, 31, .24);

  border-radius: 999px;

  color: #8d2b25;

  background:
    rgba(161, 44, 35, .09);

  font-size: 7px;
  font-weight: 950;
  letter-spacing: .08em;
}

.s315f-live-hot-question
.s315c-personal-area {
  border-color:
    rgba(143, 45, 35, .18);

  background:
    rgba(255, 255, 255, .45);
}

body[data-theme="scuro"]
.s315c-question-card.s315f-live-hot-question {
  border-color:
    rgba(218, 83, 69, .27);

  background:
    radial-gradient(
      circle at 93% 3%,
      rgba(158, 49, 39, .18),
      transparent 35%
    ),
    linear-gradient(
      145deg,
      #171513,
      #30231e
    );
}

body[data-theme="scuro"]
.s315f-live-hot-heading {
  border-color:
    rgba(255, 255, 255, .09);

  background:
    rgba(255, 255, 255, .045);
}

body[data-theme="scuro"]
.s315f-live-hot-heading strong {
  color: #fff1dc;
}

body[data-theme="scuro"]
.s315f-live-hot-badge {
  color: #ffb9ae;

  border-color:
    rgba(255, 255, 255, .10);

  background:
    rgba(255, 255, 255, .05);
}

@media (max-width: 520px) {
  .s315f-live-hot-heading {
    gap: 8px;
    padding: 9px;
  }

  .s315f-live-hot-heading
  > span {
    width: 37px;
    height: 37px;

    flex-basis: 37px;

    font-size: 17px;
  }

  .s315f-live-hot-heading strong {
    font-size: 15px;
  }

  .s315f-live-hot-badge {
    margin-left: 0;
  }
}
/* =========================================================
   SALA STAMPA COMPATTA E OSSERVATORIO RAPPORTI 3.15F.2
   ========================================================= */

.s315ui-collapsible-section
> .s315b-grid[hidden],
.s315ui-player-picker[hidden] {
  display: none !important;
}

.s315ui-collapsible-section
> header {
  align-items: center;

  padding:
    14px
    16px;

  border:
    1px solid
    transparent;

  border-radius:
    16px;

  box-shadow:
    0 10px 24px
    rgba(20, 31, 24, .10);
}

.s315ui-collapsible-section
> header h2 {
  color: #fff;

  text-shadow:
    0 2px 12px
    rgba(0, 0, 0, .20);
}

.s315ui-collapsible-section
> header
.kicker {
  color: #ffe096;
}

.s315ui-section-available
> header {
  border-color:
    rgba(236, 199, 89, .30);

  background:
    radial-gradient(
      circle at 90% 0%,
      rgba(243, 202, 88, .20),
      transparent 35%
    ),
    linear-gradient(
      135deg,
      #123d2e,
      #1e7652
    );
}

.s315ui-section-archive
> header {
  border-color:
    rgba(170, 201, 230, .24);

  background:
    radial-gradient(
      circle at 90% 0%,
      rgba(125, 177, 218, .17),
      transparent 35%
    ),
    linear-gradient(
      135deg,
      #17364d,
      #285f79
    );
}

.s315ui-section-declined
> header {
  border-color:
    rgba(255, 183, 166, .22);

  background:
    radial-gradient(
      circle at 90% 0%,
      rgba(209, 91, 71, .18),
      transparent 35%
    ),
    linear-gradient(
      135deg,
      #54211e,
      #8a342c
    );
}

.s315ui-section-toggle {
  display: grid;

  min-width:
    190px;

  gap: 3px;

  padding:
    9px
    12px;

  border:
    1px solid
    rgba(255, 255, 255, .22);

  border-radius:
    13px;

  color: #fff;

  background:
    rgba(0, 0, 0, .18)
    !important;

  box-shadow:
    none !important;

  text-align: left;
}

.s315ui-section-toggle:hover {
  transform:
    translateY(-1px);

  background:
    rgba(0, 0, 0, .27)
    !important;
}

.s315ui-section-toggle strong,
.s315ui-section-toggle span {
  display: block;
}

.s315ui-section-toggle strong {
  font-size: 11px;
}

.s315ui-section-toggle span {
  color:
    rgba(255, 255, 255, .72);

  font-size: 8px;
  font-weight: 900;
  letter-spacing: .06em;

  text-transform:
    uppercase;
}

.s315ui-collapsible-section
> .s315b-grid {
  margin-top: 13px;
}

.s315ui-relations-panel {
  margin:
    18px 0 22px;

  padding: 18px;

  border:
    1px solid
    rgba(124, 88, 25, .18);

  border-radius:
    19px;

  background:
    radial-gradient(
      circle at 96% 0%,
      rgba(189, 136, 35, .13),
      transparent 34%
    ),
    linear-gradient(
      145deg,
      #fffdf6,
      #ebe3d3
    );

  box-shadow:
    0 15px 34px
    rgba(35, 28, 15, .11);
}

.s315ui-relations-header {
  display: flex;

  justify-content:
    space-between;

  gap: 18px;
  align-items: flex-end;

  margin-bottom:
    15px;
}

.s315ui-relations-header
> div:first-child {
  min-width: 0;
}

.s315ui-relations-header
> div:first-child
> span {
  color: #8d6516;

  font-size: 8px;
  font-weight: 950;
  letter-spacing: .13em;
}

.s315ui-relations-header h2 {
  margin:
    4px 0 0;

  color: #30291f;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      24px,
      3vw,
      34px
    );

  letter-spacing:
    -.035em;
}

.s315ui-relations-header p {
  max-width: 780px;

  margin:
    7px 0 0;

  color: #6d6457;

  font-size: 10px;
  line-height: 1.5;
}

.s315ui-relation-mode {
  display:
    inline-grid;

  grid-template-columns:
    repeat(
      2,
      minmax(
        92px,
        1fr
      )
    );

  gap: 5px;

  padding: 5px;

  border:
    1px solid
    rgba(76, 66, 45, .13);

  border-radius:
    14px;

  background:
    rgba(255, 255, 255, .48);
}

.s315ui-relation-mode button {
  padding:
    8px 11px;

  border-radius:
    10px;

  color: #625642;

  background:
    transparent !important;

  box-shadow:
    none !important;

  font-size: 9px;
}

.s315ui-relation-mode
button.is-active {
  color: #fff7de;

  background:
    linear-gradient(
      135deg,
      #254f3b,
      #8b3429
    )
    !important;
}

.s315ui-player-picker {
  margin-bottom:
    14px;

  padding: 13px;

  border:
    1px solid
    rgba(68, 87, 70, .13);

  border-radius:
    15px;

  background:
    rgba(255, 255, 255, .48);
}

.s315ui-player-picker
> label {
  display: block;

  margin-bottom:
    6px;

  color: #5d5548;

  font-size: 9px;
  font-weight: 900;
}

.s315ui-player-picker
> div {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  gap: 8px;
}

.s315ui-player-picker input {
  min-width: 0;
}

.s315ui-player-picker button {
  white-space:
    nowrap;
}

.s315ui-player-picker
> small {
  display: block;

  margin-top: 7px;

  color: #746a5b;

  font-size: 9px;
}

.s315ui-media-list {
  display: grid;
  gap: 9px;
}

.s315ui-media-row {
  display: grid;

  grid-template-columns:
    minmax(210px, .8fr)
    repeat(
      2,
      minmax(180px, 1fr)
    );

  gap: 10px;
  align-items: stretch;

  padding: 11px;

  border:
    1px solid
    rgba(57, 69, 57, .10);

  border-radius:
    15px;

  background:
    rgba(255, 255, 255, .54);
}

.s315ui-media-identity {
  display: flex;

  gap: 10px;
  align-items: center;

  min-width: 0;

  padding: 8px;
}

.s315ui-media-identity
> span {
  display: grid;

  width: 43px;
  height: 43px;

  flex:
    0 0 43px;

  place-items:
    center;

  border-radius:
    13px;

  color: #ffe2a0;

  background:
    linear-gradient(
      145deg,
      #173c2c,
      #762c25
    );

  font-size: 20px;
}

.s315ui-media-identity small,
.s315ui-media-identity strong {
  display: block;
}

.s315ui-media-identity small {
  overflow: hidden;

  color: #876c3b;

  font-size: 8px;
  font-weight: 900;

  text-overflow:
    ellipsis;

  white-space:
    nowrap;
}

.s315ui-media-identity strong {
  margin-top: 3px;

  color: #332d25;

  font-size: 13px;
}

.s315ui-relation-cell {
  position: relative;
  overflow: hidden;

  padding:
    10px 11px;

  border:
    1px solid
    rgba(71, 73, 61, .11);

  border-left:
    4px solid
    #8a8375;

  border-radius:
    12px;

  background:
    rgba(249, 248, 243, .84);
}

.s315ui-relation-cell.is-friendly {
  border-left-color:
    #23734e;
}

.s315ui-relation-cell.is-cordial {
  border-left-color:
    #5b8a50;
}

.s315ui-relation-cell.is-cold {
  border-left-color:
    #b07127;
}

.s315ui-relation-cell.is-hostile {
  border-left-color:
    #a42f27;
}

.s315ui-relation-cell-head {
  display: flex;

  justify-content:
    space-between;

  gap: 8px;
  align-items: center;
}

.s315ui-relation-cell-head span {
  color: #776b5b;

  font-size: 7px;
  font-weight: 950;
  letter-spacing: .06em;

  text-transform:
    uppercase;
}

.s315ui-relation-cell-head b {
  color: #4e463b;

  font-size: 11px;
}

.s315ui-relation-cell
> strong,
.s315ui-relation-cell
> small {
  display: block;
}

.s315ui-relation-cell
> strong {
  margin-top: 4px;

  color: #3b332a;

  font-size: 10px;
}

.s315ui-relation-cell
> small {
  margin-top: 3px;

  color: #857a6b;

  font-size: 8px;
}

.s315ui-relation-meter {
  position: relative;

  height: 5px;

  margin-top: 9px;

  border-radius:
    999px;

  background:
    linear-gradient(
      90deg,
      #a52f29 0%,
      #bd7b2e 35%,
      #9b9276 50%,
      #5c8f52 68%,
      #23734e 100%
    );
}

.s315ui-relation-meter::after {
  content: "";

  position: absolute;

  left: 50%;
  top: -2px;

  width: 1px;
  height: 9px;

  background:
    rgba(39, 33, 26, .38);
}

.s315ui-relation-meter i {
  position: absolute;

  top: 50%;

  width: 11px;
  height: 11px;

  border:
    2px solid
    #fff;

  border-radius:
    50%;

  background:
    #28231d;

  box-shadow:
    0 2px 7px
    rgba(0, 0, 0, .24);

  transform:
    translate(
      -50%,
      -50%
    );
}

body[data-theme="scuro"]
.s315ui-relations-panel {
  border-color:
    rgba(255, 255, 255, .10);

  background:
    radial-gradient(
      circle at 96% 0%,
      rgba(187, 132, 35, .10),
      transparent 34%
    ),
    linear-gradient(
      145deg,
      #121d17,
      #29231b
    );
}

body[data-theme="scuro"]
.s315ui-relations-header h2,
body[data-theme="scuro"]
.s315ui-media-identity strong,
body[data-theme="scuro"]
.s315ui-relation-cell
> strong {
  color: #fff3dc;
}

body[data-theme="scuro"]
.s315ui-relations-header p,
body[data-theme="scuro"]
.s315ui-player-picker
> label,
body[data-theme="scuro"]
.s315ui-player-picker
> small,
body[data-theme="scuro"]
.s315ui-relation-cell-head span,
body[data-theme="scuro"]
.s315ui-relation-cell
> small {
  color: #c6cec8;
}

body[data-theme="scuro"]
.s315ui-relation-mode,
body[data-theme="scuro"]
.s315ui-player-picker,
body[data-theme="scuro"]
.s315ui-media-row,
body[data-theme="scuro"]
.s315ui-relation-cell {
  border-color:
    rgba(255, 255, 255, .09);

  background:
    rgba(255, 255, 255, .045);
}

body[data-theme="scuro"]
.s315ui-relation-mode button,
body[data-theme="scuro"]
.s315ui-relation-cell-head b {
  color: #e8e0d1;
}

@media (max-width: 820px) {
  .s315ui-relations-header {
    display: block;
  }

  .s315ui-relation-mode {
    margin-top: 12px;
  }

  .s315ui-media-row {
    grid-template-columns:
      1fr
      1fr;
  }

  .s315ui-media-identity {
    grid-column:
      1 / -1;
  }
}

@media (max-width: 620px) {
  .s315ui-collapsible-section
  > header {
    display: grid;
    align-items: stretch;
  }

  .s315ui-section-toggle {
    width: 100%;
    min-width: 0;

    margin-top: 10px;
  }

  .s315ui-relations-panel {
    padding: 13px;
  }

  .s315ui-player-picker
  > div,
  .s315ui-media-row {
    grid-template-columns:
      1fr;
  }

  .s315ui-media-identity {
    grid-column: auto;
  }

  .s315ui-player-picker button {
    width: 100%;
  }
}

/* =========================================================
   LISTA VISIBILE GIOCATORI — OSSERVATORIO MEDIA 3.15F.3
   ========================================================= */

.s315ui-player-search-row {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  gap: 8px;
  align-items: start;
}

.s315ui-player-combobox {
  position: relative;
  min-width: 0;
}

.s315ui-player-combobox
> input {
  min-width: 0;

  padding-right:
    48px;
}

.s315ui-player-list-button {
  position: absolute;

  top: 5px;
  right: 5px;

  display: grid;

  width: 37px;
  height: 37px;

  place-items: center;

  padding: 0;

  border:
    1px solid
    rgba(36, 85, 62, .16);

  border-radius: 9px;

  color: #234d3b;

  background:
    rgba(224, 239, 231, .96)
    !important;

  box-shadow:
    none !important;

  font-size: 18px;
  line-height: 1;

  transform: none;
}

.s315ui-player-list-button:hover {
  background:
    #d4eadd
    !important;

  transform: none;
}

.s315ui-player-list-button.is-open {
  color: #fff;

  background:
    linear-gradient(
      135deg,
      #1b6849,
      #8a352a
    )
    !important;
}

.s315ui-player-dropdown {
  position: absolute;

  top:
    calc(
      100% +
      6px
    );

  left: 0;
  right: 0;

  z-index: 80;

  max-height: 310px;
  overflow-y: auto;

  padding: 6px;

  border:
    1px solid
    rgba(35, 78, 57, .20);

  border-radius: 13px;

  background:
    rgba(253, 255, 254, .98);

  box-shadow:
    0 18px 38px
    rgba(14, 34, 24, .22);

  backdrop-filter:
    blur(15px);
}

.s315ui-player-dropdown[hidden] {
  display: none !important;
}

.s315ui-player-option {
  display: grid;

  width: 100%;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  gap: 10px;
  align-items: center;

  padding:
    10px
    11px;

  border: 0;
  border-radius: 9px;

  color: #28362f;

  background:
    transparent
    !important;

  box-shadow:
    none !important;

  text-align: left;

  transform: none;
}

.s315ui-player-option:hover,
.s315ui-player-option:focus {
  color: #173d2f;

  background:
    rgba(37, 139, 96, .12)
    !important;

  outline: none;
  transform: none;
}

.s315ui-player-option.is-selected {
  color: #fff;

  background:
    linear-gradient(
      135deg,
      #1d684a,
      #2d8b64
    )
    !important;
}

.s315ui-player-option span {
  overflow: hidden;

  font-size: 11px;
  font-weight: 900;

  text-overflow: ellipsis;
  white-space: nowrap;
}

.s315ui-player-option small {
  color: #7c887f;

  font-size: 8px;
  font-weight: 800;

  white-space: nowrap;
}

.s315ui-player-option.is-selected
small {
  color:
    rgba(255, 255, 255, .75);
}

.s315ui-player-no-results {
  padding: 18px 12px;

  color: #766d61;

  font-size: 10px;
  font-weight: 800;

  text-align: center;
}

body[data-theme="scuro"]
.s315ui-player-list-button {
  color: #e8f4ed;

  border-color:
    rgba(255, 255, 255, .10);

  background:
    rgba(255, 255, 255, .07)
    !important;
}

body[data-theme="scuro"]
.s315ui-player-dropdown {
  border-color:
    rgba(255, 255, 255, .10);

  background:
    rgba(19, 29, 24, .98);

  box-shadow:
    0 20px 44px
    rgba(0, 0, 0, .42);
}

body[data-theme="scuro"]
.s315ui-player-option {
  color: #edf5f0;
}

body[data-theme="scuro"]
.s315ui-player-option:hover,
body[data-theme="scuro"]
.s315ui-player-option:focus {
  color: #fff;

  background:
    rgba(255, 255, 255, .08)
    !important;
}

body[data-theme="scuro"]
.s315ui-player-option small,
body[data-theme="scuro"]
.s315ui-player-no-results {
  color: #b8c6be;
}

@media (max-width: 620px) {
  .s315ui-player-search-row {
    grid-template-columns:
      1fr;
  }

  .s315ui-player-dropdown {
    max-height: 260px;
  }
}

/* =========================================================
   FILTRO REALE GIOCATORI 3.15F.4
   ========================================================= */

.s315ui-player-option[hidden],
.s315ui-player-option.is-filtered-out {
  display: none !important;
}

.s315ui-player-no-results[hidden] {
  display: none !important;
}

.s315ui-player-no-results.is-visible {
  display: block;
}

.s315ui-player-option.is-keyboard-focus:not(
  .is-filtered-out
) {
  background:
    rgba(37, 139, 96, .08)
    !important;
}

/* =========================================================
   PERSONALITÀ TESTATE 3.15F.4
   ========================================================= */

.s315ui-outlet-personality {
  display: inline-flex;

  width: max-content;
  max-width: 100%;

  margin-top: 6px;
  padding: 5px 8px;

  border:
    1px solid
    rgba(123, 86, 30, .16);

  border-radius: 999px;

  color: #7b5a25;

  background:
    rgba(187, 139, 45, .09);

  font-size: 7px;
  font-style: normal;
  font-weight: 950;
  letter-spacing: .055em;

  text-transform: uppercase;
}

body[data-theme="scuro"]
.s315ui-outlet-personality {
  color: #f1d58e;

  border-color:
    rgba(255, 255, 255, .10);

  background:
    rgba(255, 255, 255, .05);
}

/* =========================================================
   ESITO CHIARO FUORI ONDA 3.15F.5
   ========================================================= */

.s315f-hot-mic-outcome {
  position: relative;

  overflow: hidden;

  border:
    1px solid
    rgba(82, 93, 86, .18);
}

.s315f-hot-mic-outcome::before {
  content: "";

  position: absolute;

  inset:
    0 auto 0 0;

  width: 5px;
}

.s315f-hot-mic-outcome.is-heard {
  background:
    radial-gradient(
      circle at 95% 0%,
      rgba(190, 42, 31, .15),
      transparent 38%
    ),
    var(
      --surface,
      #fff
    );
}

.s315f-hot-mic-outcome.is-heard::before {
  background:
    #bd3027;
}

.s315f-hot-mic-outcome.is-not_heard {
  background:
    radial-gradient(
      circle at 95% 0%,
      rgba(35, 118, 77, .14),
      transparent 38%
    ),
    var(
      --surface,
      #fff
    );
}

.s315f-hot-mic-outcome.is-not_heard::before {
  background:
    #26784f;
}

.s315f-hot-mic-outcome-badge {
  display: inline-flex;

  margin:
    5px 0 10px;

  padding:
    7px 10px;

  border-radius:
    999px;

  font-size: 8px;
  font-weight: 950;
  letter-spacing: .07em;
}

.s315f-hot-mic-outcome-badge.is-heard {
  color: #8e211a;

  border:
    1px solid
    rgba(189, 48, 39, .22);

  background:
    rgba(189, 48, 39, .10);
}

.s315f-hot-mic-outcome-badge.is-not_heard {
  color: #17633e;

  border:
    1px solid
    rgba(38, 120, 79, .22);

  background:
    rgba(38, 120, 79, .10);
}

body[data-theme="scuro"]
.s315f-hot-mic-outcome-badge.is-heard {
  color: #ffb7ae;
}

body[data-theme="scuro"]
.s315f-hot-mic-outcome-badge.is-not_heard {
  color: #a8e7c4;
}