/*!
 * MMCM Design System — v0.1
 * Colori, tipografia e componenti delle pagine del pilota.
 * Nasce dalle pagine gia' esistenti (storico, tempi sul giro): stessi grigi, stesso rosso,
 * stesse medaglie. Il futuro tema del sito userà QUESTO file, così plugin e sito restano allineati.
 *
 * Tutto vive sotto la classe .mmp e usa solo variabili --mm-*: per ritoccare lo stile si cambiano
 * le variabili qui sotto (o si sovrascrivono dal tema), non i singoli componenti.
 * Mobile-first: gli stili base sono per il telefono, i @media allargano.
 */

.mmp {
	--mm-bg:        #141414;
	--mm-card:      #1c1c1c;
	--mm-card-2:    #262626;
	--mm-line:      #2f2f2f;
	--mm-line-2:    #3a3a3a;
	--mm-text:      #e8e8e8;
	--mm-soft:      #a3a3a3;
	--mm-mute:      #777;
	--mm-accent:    #dc2626;
	--mm-accent-2:  #ef4444;
	--mm-ok:        #22a06b;
	--mm-warn:      #d9a21b;
	--mm-bad:       #e5484d;
	--mm-info:      #4c8dff;
	--mm-gold:      #b8912f;
	--mm-silver:    #9aa0a6;
	--mm-bronze:    #a5673f;
	--mm-me:        #2a1a1a;
	--mm-radius:    12px;
	--mm-gap:       1rem;
	--mm-font:      system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
	--mm-mono:      ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

	box-sizing: border-box;
	color: var(--mm-text);
	font: 15px/1.5 var(--mm-font);
	-webkit-text-size-adjust: 100%;
	text-align: left;
}
/* la pagina ha un suo fondo: cosi' resta leggibile qualunque sia il tema del sito (chiaro o scuro) */
.mmp[data-mmp], .mmp[data-mmp-acc], .mmp[data-mmp-live], .mmp[data-mmp-evo], .mmp[data-mmp-tempi] { background: var(--mm-bg); border-radius: 14px; padding: .75rem; }
@media (min-width: 720px) { .mmp[data-mmp], .mmp[data-mmp-acc], .mmp[data-mmp-live], .mmp[data-mmp-evo], .mmp[data-mmp-tempi] { padding: 1.1rem; } }
.mmp *, .mmp *::before, .mmp *::after { box-sizing: inherit; }

/* variante chiara, per temi chiari: [mmcm_scheda_pilota theme="light"] */
.mmp[data-theme="light"] {
	--mm-bg: #f4f4f5; --mm-card: #ffffff; --mm-card-2: #f0f0f1; --mm-line: #e2e2e4; --mm-line-2: #cfcfd3;
	--mm-text: #18181b; --mm-soft: #52525b; --mm-mute: #8a8a93; --mm-me: #fdecec;
}

.mmp h2, .mmp h3 { margin: 0; font-weight: 600; letter-spacing: .02em; line-height: 1.25; color: var(--mm-text); }
.mmp h2 { font-size: 1.05rem; margin: 1.6rem 0 .7rem; border-left: 3px solid var(--mm-accent); padding-left: .6rem; }
.mmp h3 { font-size: .95rem; }
.mmp p  { margin: 0 0 .6rem; color: inherit; }
.mmp a  { color: var(--mm-accent-2); }
.mmp small, .mmp .mm-small { font-size: .82rem; }
.mmp .mm-soft { color: var(--mm-soft); }
.mmp .mm-mute { color: var(--mm-mute); }
.mmp .mm-num  { font-variant-numeric: tabular-nums; }
.mmp .mm-sr   { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- carte e griglie ---------- */
.mmp .mm-card { background: var(--mm-card); border: 1px solid var(--mm-line); border-radius: var(--mm-radius); padding: 1rem; margin-bottom: var(--mm-gap); }
.mmp .mm-card > h3 + * { margin-top: .6rem; }
.mmp .mm-grid { display: grid; gap: var(--mm-gap); grid-template-columns: 1fr; }
.mmp .mm-grid { margin-bottom: var(--mm-gap); }
.mmp .mm-grid > .mm-card { margin-bottom: 0; }
@media (min-width: 640px) { .mmp .mm-grid.mm-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .mmp .mm-grid.mm-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- testata del pilota ---------- */
.mmp .mm-hero { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.2rem; padding: 1.1rem; border-radius: var(--mm-radius);
	background: linear-gradient(135deg, #2a1414 0%, var(--mm-card) 55%); border: 1px solid var(--mm-line); margin-bottom: var(--mm-gap); }
.mmp[data-theme="light"] .mm-hero { background: linear-gradient(135deg, #fde8e8 0%, var(--mm-card) 55%); }
.mmp .mm-num-gara { flex: none; min-width: 3.4rem; height: 3.4rem; padding: 0 .5rem; display: grid; place-items: center; border-radius: 10px;
	background: var(--mm-accent); color: #fff; font-weight: 700; font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.mmp .mm-hero-t { flex: 1 1 12rem; min-width: 0; }
.mmp .mm-hero-t h2 { all: unset; display: block; font-size: 1.35rem; font-weight: 700; line-height: 1.2; overflow-wrap: anywhere; }
.mmp .mm-hero-t p { margin: .2rem 0 0; color: var(--mm-soft); font-size: .88rem; }
.mmp .mm-hero-b { display: flex; flex-wrap: wrap; gap: .4rem; }

/* ---------- etichette ---------- */
.mmp .mm-badge { display: inline-flex; align-items: center; gap: .3rem; padding: .15rem .6rem; border-radius: 999px; font-size: .78rem; font-weight: 600;
	background: var(--mm-card-2); border: 1px solid var(--mm-line-2); color: var(--mm-text); white-space: nowrap; }
.mmp .mm-badge.ok   { background: rgba(34,160,107,.15); border-color: rgba(34,160,107,.5); color: #5fd4a0; }
.mmp .mm-badge.warn { background: rgba(217,162,27,.15); border-color: rgba(217,162,27,.5); color: #f0c24d; }
.mmp .mm-badge.bad  { background: rgba(229,72,77,.15);  border-color: rgba(229,72,77,.5);  color: #ff8b8f; }
.mmp .mm-badge.info { background: rgba(76,141,255,.15); border-color: rgba(76,141,255,.5); color: #8db6ff; }
.mmp[data-theme="light"] .mm-badge.ok { color: #0c6b45; } .mmp[data-theme="light"] .mm-badge.warn { color: #7a5800; }
.mmp[data-theme="light"] .mm-badge.bad { color: #a31d22; } .mmp[data-theme="light"] .mm-badge.info { color: #1b52b8; }
.mmp .mm-badge.accent { background: var(--mm-accent); border-color: var(--mm-accent); color: #fff; }

/* posizione (medaglie) */
.mmp .mm-pos { display: inline-block; min-width: 1.9rem; text-align: center; border-radius: 5px; padding: .1rem .35rem; background: var(--mm-card-2); font-variant-numeric: tabular-nums; font-weight: 600; }
.mmp .mm-pos.p1 { background: var(--mm-gold); color: #111; }
.mmp .mm-pos.p2 { background: var(--mm-silver); color: #111; }
.mmp .mm-pos.p3 { background: var(--mm-bronze); color: #111; }

/* ---------- navigazione a schede ---------- */
.mmp .mm-tabs { display: flex; gap: .4rem; overflow-x: auto; padding: .1rem .1rem .6rem; margin: 0 -.1rem 1rem; scrollbar-width: thin;
	position: sticky; top: var(--mmcm-sticky-offset, 0px); z-index: 5; background: var(--mm-bg); -webkit-overflow-scrolling: touch; }
.mmp .mm-tabs [role="tab"] { flex: none; cursor: pointer; background: var(--mm-card-2); color: var(--mm-soft); border: 1px solid var(--mm-line-2); border-radius: 8px;
	padding: .5rem .95rem; font: inherit; font-size: .88rem; min-height: 40px; }
.mmp .mm-tabs [role="tab"][aria-selected="true"] { background: var(--mm-accent); border-color: var(--mm-accent); color: #fff; }
.mmp .mm-tabs [role="tab"]:focus-visible, .mmp .mm-btn:focus-visible, .mmp .mm-seg button:focus-visible { outline: 2px solid var(--mm-info); outline-offset: 2px; }
.mmp .mm-tabs .mm-dot { display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; background: var(--mm-warn); margin-left: .35rem; vertical-align: middle; }
.mmp [role="tabpanel"][hidden] { display: none; }

/* controllo a segmenti (SP / MP / tutto) */
.mmp .mm-seg { display: inline-flex; border: 1px solid var(--mm-line-2); border-radius: 8px; overflow: hidden; }
.mmp .mm-seg button { background: var(--mm-card-2); color: var(--mm-soft); border: 0; border-right: 1px solid var(--mm-line-2); padding: .45rem .9rem; font: inherit; font-size: .85rem; cursor: pointer; min-height: 38px; }
.mmp .mm-seg button:last-child { border-right: 0; }
.mmp .mm-seg button[aria-pressed="true"] { background: var(--mm-accent); color: #fff; }

.mmp .mm-btn { display: inline-block; cursor: pointer; background: var(--mm-card-2); color: var(--mm-text); border: 1px solid var(--mm-line-2); border-radius: 8px; padding: .5rem 1rem; font: inherit; font-size: .88rem; text-decoration: none; min-height: 40px; }
.mmp .mm-btn.primary { background: var(--mm-accent); border-color: var(--mm-accent); color: #fff; }

/* ---------- numeri chiave ---------- */
.mmp .mm-kpis { display: grid; gap: .6rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 640px) { .mmp .mm-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 900px) { .mmp .mm-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.mmp .mm-kpi { background: var(--mm-card); border: 1px solid var(--mm-line); border-radius: 10px; padding: .75rem .85rem; min-width: 0; }
.mmp .mm-kpi dt { font-size: .76rem; color: var(--mm-soft); text-transform: uppercase; letter-spacing: .05em; margin: 0; }
.mmp .mm-kpi dd { margin: .15rem 0 0; font-size: 1.45rem; font-weight: 650; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.mmp .mm-kpi dd small { font-size: .78rem; font-weight: 400; color: var(--mm-soft); }
.mmp .mm-kpi.good dd { color: #5fd4a0; } .mmp .mm-kpi.warn dd { color: #f0c24d; } .mmp .mm-kpi.bad dd { color: #ff8b8f; }
.mmp dl.mm-kpis { margin: 0; }

/* ---------- barre di avanzamento ---------- */
.mmp .mm-bar { height: .55rem; border-radius: 999px; background: var(--mm-card-2); overflow: hidden; border: 1px solid var(--mm-line); }
.mmp .mm-bar > i { display: block; height: 100%; background: var(--mm-accent); border-radius: 999px; }
.mmp .mm-bar.ok > i { background: var(--mm-ok); } .mmp .mm-bar.warn > i { background: var(--mm-warn); } .mmp .mm-bar.bad > i { background: var(--mm-bad); }

/* ---------- avvisi ---------- */
.mmp .mm-notice { display: flex; gap: .65rem; align-items: flex-start; border: 1px solid var(--mm-line-2); border-left-width: 4px; border-radius: 8px;
	background: var(--mm-card); padding: .65rem .85rem; margin-bottom: .6rem; font-size: .9rem; }
.mmp .mm-notice.info { border-left-color: var(--mm-info); } .mmp .mm-notice.warn { border-left-color: var(--mm-warn); }
.mmp .mm-notice.bad  { border-left-color: var(--mm-bad); }  .mmp .mm-notice.ok   { border-left-color: var(--mm-ok); }
.mmp .mm-notice > div { min-width: 0; overflow-wrap: anywhere; }

/* ---------- righe requisito / liste ---------- */
.mmp ul.mm-list { list-style: none; margin: 0; padding: 0; }
.mmp .mm-list > li { padding: .65rem 0; border-top: 1px solid var(--mm-line); }
.mmp .mm-list > li:first-child { border-top: 0; padding-top: 0; }
.mmp .mm-req-h { display: flex; justify-content: space-between; gap: .6rem; align-items: baseline; margin-bottom: .3rem; }
.mmp .mm-req-h strong { font-weight: 600; } .mmp .mm-req-h span { color: var(--mm-soft); font-size: .85rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.mmp .mm-note { border-left: 2px solid var(--mm-line-2); padding-left: .7rem; margin-top: .5rem; color: var(--mm-soft); font-size: .85rem; }

/* scala (licenze, categorie) */
.mmp .mm-steps { display: flex; flex-wrap: wrap; gap: .35rem; margin: .5rem 0 .2rem; padding: 0; list-style: none; }
.mmp .mm-steps li { padding: .2rem .65rem; border-radius: 999px; font-size: .78rem; border: 1px solid var(--mm-line-2); color: var(--mm-mute); background: transparent; }
.mmp .mm-steps li.PRESA { color: var(--mm-text); background: var(--mm-card-2); }
.mmp .mm-steps li.ATTUALE { background: var(--mm-accent); border-color: var(--mm-accent); color: #fff; font-weight: 600; }

/* ---------- garage ---------- */
.mmp .mm-car h3 { font-size: 1rem; overflow-wrap: anywhere; }
.mmp .mm-car .mm-meta { display: flex; flex-wrap: wrap; gap: .35rem; margin: .45rem 0 .7rem; }
.mmp .mm-dmg { display: grid; grid-template-columns: 6.2rem 1fr 2.6rem; gap: .25rem .6rem; align-items: center; font-size: .82rem; margin: 0; }
.mmp .mm-foot { margin: 1.2rem 0 0; }
.mmp .mm-dmg dt { color: var(--mm-soft); } .mmp .mm-dmg dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.mmp .mm-money { display: flex; justify-content: space-between; gap: .6rem; font-size: .88rem; padding-top: .6rem; margin-top: .6rem; border-top: 1px solid var(--mm-line); }

/* ---------- tabelle che diventano schede sul telefono ---------- */
.mmp table.mm-t { width: 100%; border-collapse: collapse; font-size: .88rem; }
.mmp table.mm-t th { text-align: left; color: var(--mm-soft); font-weight: 500; padding: .45rem .5rem; border-bottom: 1px solid var(--mm-line-2); white-space: nowrap; }
.mmp table.mm-t td { padding: .5rem; border-bottom: 1px solid var(--mm-line); vertical-align: top; }
.mmp table.mm-t td.r, .mmp table.mm-t th.r { text-align: right; }
@media (max-width: 719px) {
	.mmp table.mm-t thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.mmp table.mm-t, .mmp table.mm-t tbody, .mmp table.mm-t tr, .mmp table.mm-t td { display: block; width: auto; max-width: 100%; }
	.mmp table.mm-t, .mmp table.mm-t tbody { width: 100%; }
	.mmp table.mm-t tr { border: 1px solid var(--mm-line); border-radius: 10px; padding: .4rem .7rem; margin-bottom: .6rem; background: var(--mm-card); }
	.mmp table.mm-t td { display: flex; justify-content: space-between; gap: 1rem; border: 0; padding: .28rem 0; text-align: right !important; }
	.mmp table.mm-t td::before { content: attr(data-l); color: var(--mm-soft); text-align: left; flex: none; }
}

/* grafico del safety rating (Panoramica): disegnato alla larghezza vera, quindi niente stiramento */
.mmp .mm-spark-host { width: 100%; min-height: 150px; }
.mmp .mm-spark { display: block; width: 100%; max-width: 100%; height: auto; overflow: visible; }
.mmp .mm-spark .ar { stroke: none; }
.mmp .mm-spark .l { fill: none; stroke: var(--mm-accent-2); stroke-width: 1.75; stroke-linejoin: round; stroke-linecap: round; }
.mmp .mm-spark .g { stroke: var(--mm-line); stroke-width: 1; stroke-dasharray: 2 4; }
.mmp .mm-spark text { fill: var(--mm-mute); font: 11px var(--mm-font); font-variant-numeric: tabular-nums; }
.mmp .mm-spark .dot { fill: var(--mm-card); stroke: var(--mm-accent-2); stroke-width: 1.4; }
.mmp .mm-spark .halo { fill: var(--mm-accent); opacity: .18; }
.mmp .mm-spark .end { fill: var(--mm-accent-2); stroke: var(--mm-card); stroke-width: 1.5; }

.mmp .mm-empty { text-align: center; padding: 1.6rem 1rem; color: var(--mm-soft); border: 1px dashed var(--mm-line-2); border-radius: var(--mm-radius); }
.mmp .mm-skel { height: 5rem; border-radius: var(--mm-radius); margin-bottom: var(--mm-gap); background: linear-gradient(90deg, var(--mm-card) 25%, var(--mm-card-2) 50%, var(--mm-card) 75%); background-size: 200% 100%; animation: mmskel 1.3s infinite linear; }
@keyframes mmskel { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .mmp .mm-skel { animation: none; } }

/* ---------- stagioni espandibili (storico) ---------- */
.mmp details.mm-season { padding: 0; overflow: hidden; }
.mmp details.mm-season > summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem .8rem; padding: .85rem 1rem; min-height: 48px; }
.mmp details.mm-season > summary::-webkit-details-marker { display: none; }
.mmp details.mm-season > summary::after { content: "▾"; color: var(--mm-soft); margin-left: auto; transition: transform .15s; }
.mmp details.mm-season[open] > summary::after { transform: rotate(180deg); }
.mmp details.mm-season > summary:focus-visible { outline: 2px solid var(--mm-info); outline-offset: -2px; }
.mmp .mm-sum-t { display: flex; flex-direction: column; min-width: 0; flex: 1 1 14rem; }
.mmp .mm-sum-t strong { overflow-wrap: anywhere; }
.mmp .mm-sum-b { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.mmp .mm-sbody { padding: .2rem 1rem 1rem; border-top: 1px solid var(--mm-line); padding-top: 1rem; }
.mmp .mm-sbody .mm-card { background: var(--mm-bg); }
.mmp details.mm-cl { margin-top: 1rem; border: 1px solid var(--mm-line); border-radius: var(--mm-radius, 12px); background: var(--mm-bg); padding: 0 1rem .8rem; }
.mmp details.mm-cl > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; flex-wrap: wrap; gap: .3rem; list-style: none; }
.mmp details.mm-cl > summary::-webkit-details-marker { display: none; }
.mmp details.mm-cl > summary::after { content: "▾"; color: var(--mm-soft); margin-left: auto; }
.mmp details.mm-cl[open] > summary::after { content: "▴"; }
.mmp details.mm-cl > summary:focus-visible { outline: 2px solid var(--mm-info); outline-offset: 2px; }
.mmp details.mm-cl > p { margin: 0 0 .6rem; }
@media (max-width: 480px) {
	.mmp details.mm-cl { padding: 0 .55rem .6rem; }
	.mmp details.mm-cl .hide-sm { display: none !important; }
	.mmp details.mm-cl table.mm-t.mm-compact td, .mmp details.mm-cl table.mm-t.mm-compact th { padding-left: .3rem; padding-right: .3rem; }
}
@media (prefers-reduced-motion: reduce) { .mmp details.mm-season > summary::after { transition: none; } }

/* ---------------- Gara live ---------------- */
.mmp .mm-lv-head { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .9rem; margin-bottom: var(--mm-gap); }
.mmp .mm-lv-track { font-size: 1.1rem; }
.mmp .mm-lv-live { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; font-size: .78rem; letter-spacing: .06em; color: #fff; background: var(--mm-accent); padding: .15rem .6rem; border-radius: 999px; }
.mmp .mm-lv-live i { width: .55rem; height: .55rem; border-radius: 50%; background: #fff; animation: mm-pulse 1.4s ease-in-out infinite; }
@keyframes mm-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
.mmp .mm-lv-warn { color: var(--mm-warn); }
.mmp .mm-lv-sub { margin: -.4rem 0 var(--mm-gap); font-size: .9rem; }
.mmp .mm-lv-reg { font-weight: 700; font-size: .8rem; padding: .15rem .65rem; border-radius: 999px; border: 1px solid transparent; }
.mmp .mm-lv-reg[hidden], .mmp .mm-lv-sub[hidden] { display: none; }
.mmp .mm-lv-reg.y { background: #facc15; color: #1f1700; }
.mmp .mm-lv-reg.sc { background: #f97316; color: #1f0a00; }
.mmp .mm-lv-reg.rs { background: #22c55e; color: #04200d; }
.mmp .mm-lv-grid { display: grid; gap: var(--mm-gap); grid-template-columns: 1fr; align-items: start; }
@media (min-width: 900px) { .mmp .mm-lv-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
.mmp .mm-lv-grid > .mm-card { margin-bottom: 0; }
.mmp .mm-lv-svg { display: block; width: 100%; height: auto; max-height: 72vh; margin: .4rem auto 0; touch-action: manipulation; }
.mmp .mm-lv-asf { fill: none; stroke: var(--mm-line-2); stroke-linejoin: round; stroke-linecap: round; }
.mmp .mm-lv-line { fill: none; stroke: var(--mm-card-2); stroke-linejoin: round; stroke-linecap: round; }
.mmp[data-theme="light"] .mm-lv-line { stroke: #fff; }
.mmp .mm-lv-sf { stroke: var(--mm-text); stroke-linecap: butt; }
.mmp .mm-dot { cursor: pointer; }
.mmp .mm-dot circle { fill: var(--mm-card-2); stroke: var(--mm-text); stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.mmp .mm-dot text { fill: var(--mm-text); font-weight: 700; font-family: var(--mm-font); pointer-events: none; }
.mmp .mm-dot.p1 circle { fill: var(--mm-gold); stroke: #fff; } .mmp .mm-dot.p1 text { fill: #111; }
.mmp .mm-dot.p2 circle { fill: var(--mm-silver); stroke: #fff; } .mmp .mm-dot.p2 text { fill: #111; }
.mmp .mm-dot.p3 circle { fill: var(--mm-bronze); stroke: #fff; } .mmp .mm-dot.p3 text { fill: #fff; }
.mmp .mm-dot.me circle { stroke: var(--mm-accent-2); stroke-width: 3; }
.mmp .mm-dot.sel circle { stroke: var(--mm-info); stroke-width: 3.5; }
.mmp .mm-dot.pit { opacity: .55; } .mmp .mm-dot.pit circle { stroke-dasharray: 3 2; }
.mmp .mm-dot.stale { opacity: .3; }
.mmp .mm-lv-list { list-style: none; margin: .4rem 0 .6rem; padding: 0; }
.mmp .mm-lv-row { display: grid; grid-template-columns: 2.2rem 3rem minmax(0, 1fr) auto; align-items: center; gap: .5rem; padding: .5rem .3rem; border-bottom: 1px solid var(--mm-line); cursor: pointer; border-radius: 8px; min-height: 48px; }
.mmp .mm-lv-row:last-child { border-bottom: 0; }
.mmp .mm-lv-row:focus-visible { outline: 2px solid var(--mm-info); outline-offset: -2px; }
.mmp .mm-lv-row.me { background: var(--mm-me); }
.mmp .mm-lv-row.sel { box-shadow: inset 3px 0 0 var(--mm-info); background: var(--mm-card-2); }
.mmp .mm-lv-row.pit { opacity: .8; } .mmp .mm-lv-row.stale { opacity: .5; }
.mmp .mm-lv-num { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--mm-soft); }
.mmp .mm-lv-who { display: flex; flex-direction: column; min-width: 0; }
.mmp .mm-lv-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mmp .mm-lv-name.me { color: var(--mm-accent-2); }
.mmp .mm-lv-gapbox { display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.mmp .mm-lv-gap { font-weight: 700; font-variant-numeric: tabular-nums; }
@media (max-width: 420px) { .mmp .mm-lv-row { grid-template-columns: 1.9rem 2.5rem minmax(0, 1fr) auto; gap: .3rem; } .mmp .mm-lv-name { white-space: normal; line-height: 1.2; } .mmp .mm-lv-gapbox .mm-small { font-size: .72rem; white-space: nowrap; } }
.mmp .mm-lv-who .mm-small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (prefers-reduced-motion: reduce) { .mmp .mm-lv-live i { animation: none; } }

/* ---------------- Barra dei collegamenti fra le pagine ---------------- */
/* colori ereditati dal tema del sito (currentColor): funziona su fondo chiaro e scuro */
nav.mmp.mm-nav { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; padding: 0; background: none; color: inherit; }
nav.mmp.mm-nav a { display: inline-flex; align-items: center; min-height: 40px; padding: .35rem .9rem; border-radius: 999px; text-decoration: none; font: 600 .9rem/1.2 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	color: inherit; border: 1px solid currentColor; opacity: .75; }
nav.mmp.mm-nav a:hover { opacity: 1; }
nav.mmp.mm-nav a[aria-current="page"] { background: #dc2626; border-color: #dc2626; color: #fff; opacity: 1; }
nav.mmp.mm-nav a:focus-visible { outline: 2px solid #4c8dff; outline-offset: 2px; opacity: 1; }
a.mm-livebtn { display: inline-flex; align-items: center; gap: .3rem; padding: .45rem 1rem; border-radius: 999px; background: #dc2626; color: #fff; font-weight: 700; text-decoration: none; }

/* ---------------- Operazioni: pulsanti, conferme, concessionario, prestiti ---------------- */
.mmp .mm-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .8rem; }
.mmp .mm-btn:disabled, .mmp .mm-btn[disabled] { opacity: .5; cursor: not-allowed; }
.mmp .mm-btn.primary:hover:not(:disabled) { background: var(--mm-accent-2); }
.mmp .mm-btn.danger { border-color: var(--mm-bad); color: var(--mm-bad); }
.mmp.mm-busy { cursor: progress; }
.mmp .mm-vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.mmp .mm-select { background: var(--mm-card-2); color: var(--mm-text); border: 1px solid var(--mm-line-2); border-radius: 8px; padding: .4rem .6rem; min-height: 40px; font: inherit; margin-left: auto; }
.mmp .mm-shop-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-bottom: 1rem; }
.mmp details.mm-shop { margin-top: var(--mm-gap); padding: 0; overflow: hidden; }
.mmp details.mm-shop > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .9rem 1rem; min-height: 48px; }
.mmp details.mm-shop > summary::-webkit-details-marker { display: none; }
.mmp details.mm-shop > summary::after { content: "▾"; color: var(--mm-soft); }
.mmp details.mm-shop[open] > summary::after { transform: rotate(180deg); }
.mmp details.mm-shop .mm-sbody { padding: 1rem; border-top: 1px solid var(--mm-line); }
.mmp .mm-loan { margin-top: 1.2rem; border-top: 1px solid var(--mm-line); padding-top: 1rem; }
.mmp .mm-loan h4 { margin: 0 0 .4rem; font-size: .95rem; }
.mmp fieldset.mm-plans { border: 0; margin: .6rem 0 0; padding: 0; display: grid; gap: .5rem; position: relative; }
.mmp .mm-plan { display: flex; gap: .7rem; align-items: flex-start; padding: .6rem .7rem; border: 1px solid var(--mm-line-2); border-radius: 10px; cursor: pointer; background: var(--mm-bg); min-height: 48px; }
.mmp .mm-plan:has(input:checked) { border-color: var(--mm-accent); background: var(--mm-me); }
.mmp .mm-plan:has(input:focus-visible) { outline: 2px solid var(--mm-info); outline-offset: 2px; }
.mmp .mm-plan input { margin-top: .25rem; accent-color: var(--mm-accent); width: 1.1rem; height: 1.1rem; flex: none; }
.mmp .mm-plan > span { display: flex; flex-direction: column; min-width: 0; }
.mmp dialog.mm-dlg { border: 1px solid var(--mm-line-2); border-radius: 14px; background: var(--mm-card); color: var(--mm-text); padding: 0; width: min(92vw, 30rem); max-height: 90vh; overflow: auto; font: 15px/1.5 var(--mm-font); }
.mmp dialog.mm-dlg::backdrop { background: rgba(0,0,0,.6); }
.mmp .mm-dlg-b { padding: 1.2rem; }
.mmp .mm-dlg-b h2 { margin: 0 0 .8rem; border: 0; padding: 0; font-size: 1.15rem; }
.mmp dl.mm-dlg-l { margin: 0 0 .8rem; display: grid; grid-template-columns: 1fr auto; gap: .3rem 1rem; }
.mmp dl.mm-dlg-l dt { color: var(--mm-soft); } .mmp dl.mm-dlg-l dd { margin: 0; text-align: right; font-weight: 700; overflow-wrap: anywhere; }
.mmp .mm-dlg-a { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1rem; flex-wrap: wrap; }
.mmp .mm-dlg-a .mm-btn { min-height: 44px; }
.mmp .mm-dlg-sub { margin: -.4rem 0 .8rem; color: var(--mm-soft); overflow-wrap: anywhere; }

/* ---- dettaglio sessione (finestra), grafici SVG, elenco con "Mostra altre" ---- */
.mmp .mm-ok { color: #5fd4a0; } .mmp .mm-bad { color: #ff8b8f; }
.mmp[data-theme="light"] .mm-ok { color: #0c6b45; } .mmp[data-theme="light"] .mm-bad { color: #a31d22; }
.mmp dialog.mm-dlg.wide { width: min(96vw, 46rem); }
.mmp .mm-sd-h { display: flex; justify-content: space-between; align-items: flex-start; gap: .8rem; margin-bottom: .8rem; }
.mmp .mm-sd-h h2 { margin: 0 0 .15rem; overflow-wrap: anywhere; }
.mmp .mm-sd-h p { margin: 0; }
.mmp .mm-sd-h .mm-btn { flex: none; min-height: 40px; }
.mmp .mm-sd-k { margin-bottom: 1rem; gap: .5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mmp .mm-sd-k .mm-kpi { padding: .5rem .65rem; }
.mmp .mm-sd-k .mm-kpi dd { font-size: 1.1rem; }
@media (min-width: 640px) { .mmp .mm-sd-k { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mmp .mm-sd-b h3 { margin: 1.1rem 0 .5rem; }
.mmp .mm-sd-b h3:first-child { margin-top: 0; }
.mmp .mm-sd-list .mm-req-h span:first-child { color: inherit; white-space: normal; font-size: inherit; }
.mmp .mm-sd-b .mm-skel { height: 4rem; }
.mmp table.mm-t tr.me td { background: var(--mm-me); }
.mmp table.mm-t tr.mm-gap td { text-align: center; color: var(--mm-mute); }
.mmp .mm-linkbtn { all: unset; cursor: pointer; color: var(--mm-text); border-bottom: 1px dotted var(--mm-soft); }
.mmp .mm-linkbtn:hover { color: var(--mm-accent-2); }
.mmp .mm-linkbtn:focus-visible { outline: 2px solid var(--mm-info); outline-offset: 2px; border-radius: 3px; }
.mmp tr.mm-click { cursor: pointer; } .mmp tr.mm-click:hover td { background: var(--mm-card-2); }
.mmp .mm-more { display: flex; justify-content: center; gap: .6rem; margin: .8rem 0; flex-wrap: wrap; }
.mmp .mm-more .mm-btn { min-height: 44px; }

.mmp figure.mm-chart { margin: 0 0 1rem; background: var(--mm-card); border: 1px solid var(--mm-line); border-radius: 10px; padding: .75rem .85rem; min-width: 0; }
.mmp figure.mm-chart h3 { margin: 0 0 .4rem; font-size: .9rem; }
.mmp .mm-svg { width: 100%; height: auto; display: block; }
.mmp .mm-svg .g { stroke: var(--mm-line); stroke-width: 1; }
.mmp .mm-svg .ax { fill: var(--mm-soft); font-size: 11px; font-family: var(--mm-font); }
.mmp .mm-svg .l { fill: none; stroke-width: 2.4; stroke-linejoin: round; stroke-linecap: round; }
.mmp .mm-svg .l.thin { stroke-width: 1.4; }
.mmp .mm-svg .a { opacity: .13; stroke: none; }
.mmp .mm-svg .c1 { stroke: var(--mm-accent-2); fill: var(--mm-accent-2); } .mmp .mm-svg .l.c1 { fill: none; }
.mmp .mm-svg .c2 { stroke: var(--mm-info); fill: var(--mm-info); } .mmp .mm-svg .l.c2 { fill: none; }
.mmp .mm-svg .c3 { stroke: var(--mm-ok); fill: var(--mm-ok); } .mmp .mm-svg .l.c3 { fill: none; }
.mmp .mm-svg .c4 { stroke: var(--mm-warn); fill: var(--mm-warn); } .mmp .mm-svg .l.c4 { fill: none; }
.mmp .mm-svg .a.c1 { fill: var(--mm-accent); } .mmp .mm-svg .a.c3 { fill: var(--mm-ok); }
.mmp .mm-svg .p { stroke: none; }
.mmp .mm-svg .b { stroke: none; }
.mmp ul.mm-legend { list-style: none; display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin: .4rem 0 0; padding: 0; font-size: .8rem; color: var(--mm-soft); }
.mmp .mm-sw { display: inline-block; width: .7rem; height: .7rem; border-radius: 2px; margin-right: .35rem; vertical-align: -1px; }
.mmp .mm-sw.c1 { background: var(--mm-accent-2); } .mmp .mm-sw.c2 { background: var(--mm-info); } .mmp .mm-sw.c3 { background: var(--mm-ok); } .mmp .mm-sw.c4 { background: var(--mm-warn); }
.mmp ul.mm-hbars { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.mmp .mm-hbars li { display: grid; grid-template-columns: minmax(5rem, 9rem) 1fr auto; gap: .6rem; align-items: center; font-size: .85rem; }
.mmp .mm-hbars .lb { color: var(--mm-soft); overflow-wrap: anywhere; }
.mmp .mm-hbars .tr { height: .6rem; background: var(--mm-card-2); border-radius: 99px; overflow: hidden; }
.mmp .mm-hbars .fl { display: block; height: 100%; background: var(--mm-accent); border-radius: 99px; }
.mmp .mm-grid2 { display: grid; gap: var(--mm-gap); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 720px) { .mmp .mm-grid2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* tabelle che restano tabelle anche sul telefono (poche colonne, o la griglia dei round con scorrimento laterale) */
@media (max-width: 719px) {
	.mmp table.mm-t.mm-compact, .mmp table.mm-t.mm-grid-t { display: table; font-size: .82rem; }
	.mmp table.mm-t.mm-grid-t { width: max-content; min-width: 100%; }
	.mmp table.mm-t.mm-compact thead, .mmp table.mm-t.mm-grid-t thead { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
	.mmp table.mm-t.mm-compact tbody, .mmp table.mm-t.mm-grid-t tbody { display: table-row-group; width: auto; }
	.mmp table.mm-t.mm-compact tr, .mmp table.mm-t.mm-grid-t tr { display: table-row; width: auto; border: 0; border-radius: 0; padding: 0; margin: 0; background: transparent; }
	.mmp table.mm-t.mm-compact td, .mmp table.mm-t.mm-grid-t td { display: table-cell; width: auto; padding: .45rem .4rem; border-bottom: 1px solid var(--mm-line); text-align: left !important; }
	.mmp table.mm-t.mm-compact td.r, .mmp table.mm-t.mm-grid-t td.r { text-align: right !important; }
	.mmp table.mm-t.mm-compact td::before, .mmp table.mm-t.mm-grid-t td::before { content: none; }
	.mmp table.mm-t.mm-compact tr.me td, .mmp table.mm-t.mm-grid-t tr.me td { background: var(--mm-me); }
}
.mmp .mm-xscroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 -.2rem; padding: 0 .2rem; }
.mmp .mm-grid-t th.rr, .mmp .mm-grid-t td.rr { padding-left: .3rem; padding-right: .3rem; text-align: center; }
.mmp h3.mm-sub { margin: 1.4rem 0 .6rem; }
.mmp h2.mm-first { margin-top: .2rem; font-size: 1.25rem; }
.mmp .mm-scope { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem .8rem; margin-top: 1.6rem; }
.mmp .mm-scope p { flex-basis: 100%; margin: 0; }
@media (max-width: 480px) { .mmp .mm-sd-k .mm-kpi dd { font-size: .98rem; } }
@media (max-width: 719px) { .mmp table.mm-t:not(.mm-compact):not(.mm-grid-t) td:empty { display: none; } }

/* ======================================================================
   Pagina di accesso — [mmcm_accesso]
   Veste i plugin di login (Super Socializer, Forminator, modulo WordPress) senza toccarne il funzionamento.
   Gli stili dei plugin hanno specificita' alta: qui si usa .mmp.mm-login (+ classi) e, dove serve, !important.
   ====================================================================== */
.mmp.mm-login { max-width: 27rem; margin: 1.5rem auto; padding: 1.4rem 1.2rem 1.2rem; background: var(--mm-bg); border: 1px solid var(--mm-line); border-radius: 16px; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
@media (min-width: 480px) { .mmp.mm-login { padding: 1.8rem 1.8rem 1.4rem; } }
.mmp.mm-login .mm-lg-h { text-align: center; margin-bottom: 1.3rem; }
.mmp.mm-login .mm-lg-k { margin: 0 0 .3rem; font-size: .75rem; letter-spacing: .22em; text-transform: uppercase; color: var(--mm-accent-2); font-weight: 700; }
.mmp.mm-login .mm-lg-h h2 { margin: 0 0 .3rem; border: 0; padding: 0; font-size: 1.5rem; }
.mmp.mm-login .mm-lg-h p { margin: 0; }

/* Steam: bottone grande; l'originale resta nel DOM ma nascosto */
.mmp.mm-login .mm-steam { display: flex; align-items: center; justify-content: center; gap: .7rem; width: 100%; min-height: 54px; border: 1px solid #3b4a63; border-radius: 12px; cursor: pointer;
	background: linear-gradient(180deg, #2a3a55, #17202f); color: #fff; font: 600 1.05rem/1 var(--mm-font); letter-spacing: .02em; transition: transform .08s, filter .15s; }
.mmp.mm-login .mm-steam[hidden] { display: none; }
.mmp.mm-login .mm-steam:hover { filter: brightness(1.15); }
.mmp.mm-login .mm-steam:active { transform: translateY(1px); }
.mmp.mm-login .mm-steam:focus-visible { outline: 2px solid var(--mm-info); outline-offset: 3px; }
.mmp.mm-login .mm-steam[aria-busy="true"] { opacity: .7; cursor: progress; }
.mmp.mm-login .mm-lg-note { text-align: center; margin: .6rem 0 0; }
.mmp.mm-login .mm-lg-src-off { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* se il bottone originale resta visibile (nessun JS o bottone non trovato) lo si rende presentabile */
.mmp.mm-login .the_champ_login_title, .mmp.mm-login .the_champ_social_login_title { display: none !important; }
.mmp.mm-login .the_champ_login_container { margin: 0 !important; text-align: center; }
.mmp.mm-login ul.the_champ_login_ul { margin: 0 !important; padding: 0 !important; list-style: none !important; display: flex; justify-content: center; }
.mmp.mm-login ul.the_champ_login_ul li { margin: .2rem !important; }

.mmp.mm-login .mm-lg-or { display: flex; align-items: center; gap: .8rem; margin: 1.3rem 0; color: var(--mm-mute); font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; }
.mmp.mm-login .mm-lg-or::before, .mmp.mm-login .mm-lg-or::after { content: ""; flex: 1; height: 1px; background: var(--mm-line-2); }

/* campi: Forminator, modulo WordPress, e tutto cio' che e' dentro .mm-lg-form */
.mmp.mm-login .mm-lg-form { color: var(--mm-text); }
.mmp.mm-login .mm-lg-form form { margin: 0 !important; padding: 0 !important; }
.mmp.mm-login .mm-lg-form .forminator-ui, .mmp.mm-login .mm-lg-form .forminator-custom-form { padding: 0 !important; margin: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
.mmp.mm-login .mm-lg-form .forminator-row { margin-bottom: .9rem !important; }
.mmp.mm-login .mm-lg-form .forminator-col { padding: 0 !important; }
.mmp.mm-login .mm-lg-form label, .mmp.mm-login .mm-lg-form .forminator-label, .mmp.mm-login .mm-lg-form .forminator-checkbox .forminator-checkbox-label { color: var(--mm-soft) !important; font: 600 .82rem/1.3 var(--mm-font) !important; letter-spacing: .03em; }
.mmp.mm-login .mm-lg-form .forminator-required { color: var(--mm-accent-2) !important; }
.mmp.mm-login .mm-lg-form input[type="text"], .mmp.mm-login .mm-lg-form input[type="email"], .mmp.mm-login .mm-lg-form input[type="password"],
.mmp.mm-login .mm-lg-form .forminator-input, .mmp.mm-login .mm-lg-form .forminator-ui.forminator-custom-form .forminator-input {
	width: 100% !important; min-height: 48px; padding: .65rem .85rem !important; border-radius: 10px !important; border: 1px solid var(--mm-line-2) !important;
	background: var(--mm-card) !important; color: var(--mm-text) !important; font: 1rem/1.3 var(--mm-font) !important; box-shadow: none !important; }
.mmp.mm-login .mm-lg-form input:focus, .mmp.mm-login .mm-lg-form .forminator-input:focus { border-color: var(--mm-info) !important; outline: 2px solid color-mix(in srgb, var(--mm-info) 40%, transparent) !important; outline-offset: 0; }
.mmp.mm-login .mm-lg-form .forminator-input-with-icon { position: relative; }
.mmp.mm-login .mm-lg-form .forminator-icon-eye, .mmp.mm-login .mm-lg-form .forminator-icon-eye-hide { color: var(--mm-soft) !important; }
.mmp.mm-login .mm-lg-form input[type="checkbox"] { width: 1.1rem; height: 1.1rem; accent-color: var(--mm-accent); vertical-align: -3px; margin-right: .4rem; }
.mmp.mm-login .mm-lg-form .forminator-checkbox-box { border-color: var(--mm-line-2) !important; background: var(--mm-card) !important; }
.mmp.mm-login .mm-lg-form .forminator-checkbox input:checked + .forminator-checkbox-box { background: var(--mm-accent) !important; border-color: var(--mm-accent) !important; }
.mmp.mm-login .mm-lg-form button[type="submit"], .mmp.mm-login .mm-lg-form input[type="submit"], .mmp.mm-login .mm-lg-form .forminator-button-submit, .mmp.mm-login .mm-lg-form .forminator-ui.forminator-custom-form .forminator-button-submit {
	display: block; width: 100% !important; min-height: 52px; margin-top: .4rem; border: 0 !important; border-radius: 12px !important; cursor: pointer; background: var(--mm-accent) !important; color: #fff !important;
	font: 700 1.05rem/1 var(--mm-font) !important; letter-spacing: .03em; text-transform: none !important; box-shadow: none !important; }
.mmp.mm-login .mm-lg-form button[type="submit"]:hover, .mmp.mm-login .mm-lg-form .forminator-button-submit:hover { background: var(--mm-accent-2) !important; }
.mmp.mm-login .mm-lg-form .forminator-button-submit:focus-visible { outline: 2px solid var(--mm-info); outline-offset: 3px; }
.mmp.mm-login .mm-lg-form .forminator-button-submit.forminator-button-onload, .mmp.mm-login .mm-lg-form .forminator-button-submit[disabled] { opacity: .7; }
/* messaggi */
.mmp.mm-login .mm-lg-form .forminator-response-message, .mmp.mm-login .mm-lg-form .login-error, .mmp.mm-login .mm-lg-form #login_error { border-radius: 10px; padding: .7rem .9rem !important; margin: 0 0 1rem !important; font-size: .9rem; border: 1px solid var(--mm-line-2); background: var(--mm-card-2) !important; color: var(--mm-text) !important; }
.mmp.mm-login .mm-lg-form .forminator-response-message.forminator-error, .mmp.mm-login .mm-lg-form .forminator-error-message { border-left: 4px solid var(--mm-bad) !important; color: #ff8b8f !important; background: transparent; }
.mmp[data-theme="light"].mm-login .mm-lg-form .forminator-error-message, .mmp[data-theme="light"].mm-login .mm-lg-form .forminator-response-message.forminator-error { color: #a31d22 !important; }
.mmp.mm-login .mm-lg-form .forminator-response-message.forminator-success { border-left: 4px solid var(--mm-ok) !important; }
/* modulo nativo di WordPress */
.mmp.mm-login .mm-lg-form .login-username, .mmp.mm-login .mm-lg-form .login-password, .mmp.mm-login .mm-lg-form .login-remember, .mmp.mm-login .mm-lg-form .login-submit { margin: 0 0 .9rem; }
.mmp.mm-login .mm-lg-form .login-username label, .mmp.mm-login .mm-lg-form .login-password label { display: block; margin-bottom: .3rem; }

.mmp.mm-login .mm-lg-f { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem; margin-top: 1.2rem; font-size: .88rem; }
.mmp.mm-login .mm-lg-f a { color: var(--mm-soft); }
.mmp.mm-login .mm-lg-f a:hover { color: var(--mm-accent-2); }
.mmp.mm-login .mm-lg-in { text-align: center; }
.mmp.mm-login .mm-lg-act { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-top: 1rem; }
.mmp.mm-login .mm-lg-act .mm-btn { min-height: 46px; text-decoration: none; display: inline-flex; align-items: center; }

.mmp.mm-login .mm-lg-msg { margin: 0 0 1.1rem; padding: .65rem .9rem; border-radius: 10px; border: 1px solid var(--mm-line-2); border-left: 4px solid var(--mm-ok); background: var(--mm-card-2); color: var(--mm-text); font-size: .9rem; text-align: center; }

/* ---------- Campionato MP e I miei dati (mmcm-mp.js) ---------- */
.mmp .mm-mphead .mm-mph-t { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem .8rem; }
.mmp .mm-mphead h3 { margin: 0; }
.mmp .mm-mplinks { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.mmp .mm-mplinks .mm-btn { text-decoration: none; }
.mmp .mm-mpnext { margin-top: .6rem; }
.mmp .mm-step { display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; margin-right: .5rem; border-radius: 50%; background: var(--mm-accent); color: #fff; font-size: .8rem; font-weight: 700; vertical-align: 1px; }
.mmp .mm-lbl { display: block; margin: .8rem 0 .3rem; font-size: .82rem; font-weight: 600; color: var(--mm-soft); letter-spacing: .02em; }
.mmp .mm-form { display: grid; gap: .1rem 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: .8rem; }
.mmp .mm-fld { min-width: 0; }
.mmp .mm-fld .mm-small { margin: .3rem 0 0; }
.mmp .mm-in { display: block; width: 100%; box-sizing: border-box; min-height: 44px; padding: .55rem .75rem; border-radius: 8px; border: 1px solid var(--mm-line-2); background: var(--mm-card-2); color: var(--mm-text); font: inherit; font-size: 16px; }
.mmp .mm-in:focus-visible { outline: 2px solid var(--mm-info); outline-offset: 1px; border-color: var(--mm-info); }
.mmp .mm-in:disabled { opacity: .6; cursor: not-allowed; }
.mmp .mm-in[aria-invalid="true"] { border-color: var(--mm-bad); }
.mmp .mm-ferr { margin: .3rem 0 0; font-size: .85rem; color: var(--mm-bad); }
.mmp[data-theme="light"] .mm-ferr { color: #a31d22; }
.mmp .mm-opts { display: grid; gap: .5rem; margin-bottom: .6rem; }
.mmp .mm-opt, .mmp .mm-carrow { display: flex; gap: .7rem; align-items: flex-start; padding: .7rem .8rem; border: 1px solid var(--mm-line-2); border-radius: 10px; background: var(--mm-card-2); cursor: pointer; }
.mmp .mm-opt.on, .mmp .mm-carrow:has(input:checked) { border-color: var(--mm-accent); box-shadow: 0 0 0 1px var(--mm-accent) inset; }
.mmp .mm-opt.off, .mmp .mm-carrow.off { opacity: .55; cursor: not-allowed; }
.mmp .mm-opt input, .mmp .mm-carrow input { margin-top: .25rem; accent-color: var(--mm-accent); width: 1.1rem; height: 1.1rem; flex: none; }
.mmp .mm-opt:focus-within, .mmp .mm-carrow:focus-within { outline: 2px solid var(--mm-info); outline-offset: 2px; }
.mmp .mm-opt-b { display: flex; flex-direction: column; gap: .15rem; min-width: 0; overflow-wrap: anywhere; }
.mmp .mm-optsub { margin: .4rem 0 .8rem; display: grid; gap: .4rem; }
.mmp .mm-carrow { padding: .55rem .7rem; }
.mmp .mm-cal > li.done { opacity: .85; }
.mmp .mm-cal-b { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.mmp .mm-det { margin-top: .5rem; }
.mmp .mm-det summary { cursor: pointer; font-size: .85rem; color: var(--mm-soft); min-height: 32px; display: flex; align-items: center; }
.mmp .mm-det summary:focus-visible { outline: 2px solid var(--mm-info); outline-offset: 2px; }
.mmp .mm-cal-r { margin-top: .4rem; overflow-x: auto; }
@media (max-width: 640px) {
	.mmp .mm-form { grid-template-columns: minmax(0, 1fr); }
	.mmp .mm-req-h { flex-wrap: wrap; }
}
.mmp .mm-notice[hidden], .mmp .mm-ferr[hidden], .mmp .mm-btn[hidden] { display: none !important; }
.mmp .mm-mpgrid { align-items: start; }
.mmp .mm-kpis.mm-sm { grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); }
.mmp .mm-kpis.mm-sm .mm-kpi dd { font-size: 1rem; line-height: 1.3; overflow-wrap: break-word; word-break: normal; }
.mmp .mm-card > h3 + .mm-cal { margin-top: .7rem; }
.mmp .mm-card > h3 + .mm-mpnext, .mmp .mm-card > p + .mm-kpis { margin-top: .6rem; }

/* ---------- Direzione Gara e Prequalifiche (mmcm-mp-dg.js) ---------- */
.mmp .mm-xscroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.mmp .mm-dgsea { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .9rem; }
.mmp .mm-dgsea .mm-lbl { margin: 0; }
.mmp .mm-dgsea .mm-in { width: auto; min-width: 12rem; max-width: 100%; }
.mmp .mm-dgfilter { margin: .8rem 0; max-width: 100%; flex-wrap: wrap; }
.mmp .mm-dglist { display: grid; gap: .7rem; }
.mmp .mm-dground { border: 1px solid var(--mm-line-2); border-radius: 10px; background: var(--mm-card); padding: 0 .8rem .8rem; }
.mmp .mm-dground > summary { cursor: pointer; padding: .7rem 0; min-height: 44px; display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .2rem; list-style: none; }
.mmp .mm-dground > summary::-webkit-details-marker { display: none; }
.mmp .mm-dground > summary::before { content: "▸"; margin-right: .5rem; color: var(--mm-soft); transition: transform .15s; }
.mmp .mm-dground[open] > summary::before { transform: rotate(90deg); }
.mmp .mm-dground > summary:focus-visible { outline: 2px solid var(--mm-info); outline-offset: 2px; border-radius: 6px; }
.mmp .mm-ep { border: 1px solid var(--mm-line-2); border-left-width: 4px; border-radius: 8px; background: var(--mm-card-2); padding: .7rem .85rem; margin-top: .6rem; min-width: 0; overflow-wrap: anywhere; }
.mmp .mm-ep p { margin: .35rem 0 0; }
.mmp .mm-ep.ok { border-left-color: var(--mm-ok); } .mmp .mm-ep.bad { border-left-color: var(--mm-bad); }
.mmp .mm-ep.warn { border-left-color: var(--mm-warn); } .mmp .mm-ep.mute { border-left-color: var(--mm-mute); }
.mmp .mm-ep.arch { opacity: .75; }
.mmp .mm-ep.nuovo { box-shadow: 0 0 0 2px var(--mm-info); }
.mmp .mm-ep-h { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; }
.mmp .mm-ep-who { font-weight: 600; }
.mmp .mm-ep-esito { font-weight: 700; font-size: 1.02rem; }
.mmp .mm-ep-esito.bad { color: #ff8b8f; } .mmp .mm-ep-esito.ok { color: #5fd4a0; } .mmp .mm-ep-esito.warn { color: #f0c24d; }
.mmp[data-theme="light"] .mm-ep-esito.bad { color: #a31d22; } .mmp[data-theme="light"] .mm-ep-esito.ok { color: #0c6b45; } .mmp[data-theme="light"] .mm-ep-esito.warn { color: #7a5800; }
.mmp .mm-warnt { color: #f0c24d; } .mmp .mm-okt { color: #5fd4a0; }
.mmp[data-theme="light"] .mm-warnt { color: #7a5800; } .mmp[data-theme="light"] .mm-okt { color: #0c6b45; }
.mmp .mm-quote { font-style: italic; color: var(--mm-soft); border-left: 3px solid var(--mm-line-2); padding-left: .6rem; white-space: pre-wrap; }
.mmp .mm-answer { white-space: pre-wrap; margin: .2rem 0 0; }
.mmp .mm-ep .mm-notice { margin: .6rem 0 0; }
.mmp .mm-ep .mm-notice.nuovo { box-shadow: 0 0 0 2px var(--mm-info); }
.mmp .mm-ep > .mm-btn { margin-top: .6rem; }
.mmp textarea.mm-ta { min-height: 9rem; resize: vertical; line-height: 1.45; }
.mmp .mm-list .mm-btn { text-decoration: none; margin-top: .3rem; }
.mmp .mm-dground > summary + .mm-ep { margin-top: 0; }
.mmp .mm-card > h3 + ul.mm-list, .mmp .mm-card > h3 + .mm-xscroll { margin-top: .7rem; }
.mmp .mm-pq p { margin: 0 0 .4rem; }
.mmp dl.mm-pqv { margin: 0; display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; }
.mmp dl.mm-pqv > div { min-width: 0; }
.mmp dl.mm-pqv dt { font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--mm-mute); }
.mmp dl.mm-pqv dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.mmp .mm-card > p + ul.mm-pq, .mmp .mm-card > .mm-kpis + ul.mm-pq { margin-top: .8rem; }

/* ---------- App installabile (mmcm-pwa.js) ---------- */
.mmp .mm-pwa { display: flex; gap: .9rem; align-items: flex-start; margin: 0 0 1rem; }
.mmp .mm-pwa-ic { flex: none; width: 48px; height: 48px; border-radius: 12px; }
.mmp .mm-pwa-b { min-width: 0; }
.mmp .mm-pwa-b h3 { margin: 0 0 .2rem; font-size: 1rem; }
.mmp .mm-pwa-b p { margin: .2rem 0 0; }
.mmp .mm-pwa-a { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .7rem; }
.mmp .mm-pwa-steps { margin: .6rem 0 0; padding-left: 1.2rem; }
.mmp .mm-pwa-steps li { margin: .2rem 0; }
.mmp .mm-pwa-share { display: inline-block; padding: 0 .35rem; border: 1px solid var(--mm-line-2); border-radius: 6px; line-height: 1.3; }

/* ---------- Tempi sul giro (record, classifica pista, confronto) ---------- */
.mmp .mm-tg-bar { display: grid; gap: .6rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 720px) { .mmp .mm-tg-bar { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); } }
.mmp .mm-tg-fld { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.mmp .mm-tg-sel { text-overflow: ellipsis; }
.mmp .mm-tg-pair { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-top: .6rem; }
.mmp .mm-tg-up { color: #5fd4a0; } .mmp .mm-tg-dn { color: #ff8b8f; }
.mmp[data-theme="light"] .mm-tg-up { color: #0c6b45; } .mmp[data-theme="light"] .mm-tg-dn { color: #a31d22; }
.mmp .mm-tg-lnk { color: inherit; text-decoration: underline dotted; text-underline-offset: 3px; }
.mmp .mm-tg-lnk:hover { text-decoration-style: solid; }
.mmp .mm-tg-tbl table.mm-t th, .mmp .mm-tg-tbl table.mm-t td { white-space: nowrap; }
.mmp .mm-tg-chart { border: 0; padding: 0; margin: 0 0 .5rem; background: none; }
.mmp table.mm-t.mm-tg-names th { white-space: normal; vertical-align: bottom; line-height: 1.25; }
.mmp table.mm-t.mm-tg-names th.r { min-width: 4.2rem; }
.mmp .mm-card > h3 + dl.mm-kpis { margin-top: .6rem; }
.mmp .mm-card > dl.mm-kpis + .mm-xscroll, .mmp .mm-card > dl.mm-kpis + .mm-tg-tbl { margin-top: .9rem; }

/* ---------- foto pilota e logo team ("I miei dati") ---------- */
.mmp .mm-img-grid { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); margin-top: .7rem; }
@media (min-width: 720px) { .mmp .mm-img-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mmp .mm-img-blk { display: flex; gap: .9rem; align-items: center; min-width: 0; padding: .75rem; border: 1px solid var(--mm-line); border-radius: 10px; background: var(--mm-card-2); }
.mmp .mm-img-pv { flex: none; width: 88px; height: 88px; display: grid; place-items: center; overflow: hidden; background: var(--mm-bg); border: 1px solid var(--mm-line-2); color: var(--mm-mute); font-size: 1.5rem; font-weight: 700; }
.mmp .mm-img-pv.round { border-radius: 50%; }
.mmp .mm-img-pv.square { border-radius: 10px; }
.mmp .mm-img-pv.none { border-style: dashed; }
.mmp .mm-img-pv img { width: 100%; height: 100%; display: block; }
.mmp .mm-img-pv.round img { object-fit: cover; }
.mmp .mm-img-pv.square img { object-fit: contain; }
.mmp .mm-img-t { min-width: 0; display: flex; flex-direction: column; gap: .5rem; }
.mmp .mm-img-a { display: flex; flex-wrap: wrap; gap: .4rem; }
.mmp .mm-img-card .mm-notice { margin-top: .8rem; }

/* tabelle -> schede sul telefono: le righe (tr) restano DENTRO il riquadro anche se il tema o il browser le vogliono content-box */
.mmp table.mm-t, .mmp table.mm-t thead, .mmp table.mm-t tbody, .mmp table.mm-t tr, .mmp table.mm-t th, .mmp table.mm-t td { box-sizing: border-box; }

/* Storico EVO: scelta del campionato quando sono molti (elenco a tendina + ricerca) */
.mmp .mm-champ-bar { display: grid; grid-template-columns: minmax(0, 1fr); gap: .5rem; margin: .4rem 0 .9rem; }
.mmp .mm-champ-row { display: flex; gap: .5rem; align-items: center; }
.mmp .mm-champ-sel { flex: 1 1 0; min-width: 0; width: auto; text-overflow: ellipsis; }
.mmp .mm-champ-nav { flex: 0 0 auto; min-width: 44px; min-height: 44px; font-size: 1.3rem; line-height: 1; padding: 0 .6rem; }
.mmp .mm-champ-nav:disabled { opacity: .45; cursor: not-allowed; }
.mmp .mm-champ-q { flex: 1 1 0; min-width: 0; width: auto; }
.mmp .mm-champ-cnt { flex: 0 0 auto; white-space: nowrap; }
.mmp .mm-champ-sel optgroup { font-weight: 600; }

/* Pagina Campionato MP: le schede (Campionato, Direzione Gara, Statistiche) sono le "figlie" della pillola Campionato MP della barra:
   riga rientrata con freccia, pillole piu' piccole, attaccata alla barra */
nav.mmp.mm-nav + .mmp .mm-subtabs { margin-top: -.35rem; }
.mmp .mm-subtabs { position: relative; top: auto; z-index: auto; background: none; padding-left: 1.9rem; margin-bottom: 1.1rem; align-items: center; }
.mmp .mm-subtabs::before { content: "\21B3"; position: absolute; left: .45rem; top: 50%; transform: translateY(-62%); color: var(--mm-mute); font-size: 1.15rem; line-height: 1; pointer-events: none; }
.mmp .mm-subtabs [role="tab"] { border-radius: 999px; padding: .3rem .85rem; font-size: .84rem; min-height: 34px; }
@media (max-width: 480px) {
	.mmp .mm-subtabs { padding-left: 1.6rem; gap: .3rem; }
	.mmp .mm-subtabs [role="tab"] { padding: .3rem .65rem; font-size: .8rem; }
	.mmp .mm-subtabs::before { left: .3rem; }
}

/* ---- v0.11: campionati SP, coperture, cambio vettura, tabellone prequalifiche ---- */
.mmp .mm-spt { margin: 0 0 .4rem; font-size: 1rem; overflow-wrap: anywhere; }
.mmp .mm-spch { display: flex; flex-direction: column; gap: .5rem; }
.mmp .mm-spch .mm-actions { margin-top: auto; }
.mmp details.mm-spdet { margin-top: .6rem; border: 1px solid var(--mm-line); border-radius: 10px; background: var(--mm-bg); }
.mmp details.mm-spdet > summary { cursor: pointer; padding: .55rem .8rem; min-height: 40px; display: flex; align-items: center; color: var(--mm-soft); font-weight: 600; }
.mmp details.mm-spdet > summary:focus-visible { outline: 2px solid var(--mm-info); outline-offset: 2px; }
.mmp details.mm-spdet > .mm-spcalbox, .mmp details.mm-spdet > .mm-boardbody { padding: 0 .8rem .8rem; }
.mmp .mm-spcal { list-style: none; margin: 0; padding: 0; }
.mmp .mm-spcal li { padding: .45rem 0; border-top: 1px solid var(--mm-line); }
.mmp .mm-spcal li:first-child { border-top: 0; }
.mmp .mm-spcal li.now strong { color: var(--mm-accent-2); }
.mmp .mm-spcal li.done { opacity: .7; }
.mmp .mm-spcal .mm-req-h span:first-child, .mmp .mm-spcal .mm-req-h strong { white-space: normal; }
.mmp .mm-cover { margin-top: .8rem; padding: .7rem .8rem; border: 1px solid var(--mm-line); border-radius: 10px; background: var(--mm-bg); }
.mmp .mm-cover .mm-req-h { flex-wrap: wrap; }
.mmp .mm-cover p { margin: .35rem 0 0; }
.mmp .mm-plan.off { opacity: .55; cursor: not-allowed; }
.mmp fieldset.mm-plans legend { padding: 0; font-weight: 600; color: var(--mm-text); margin-bottom: .3rem; }
.mmp .mm-cambio { margin-top: 1.2rem; border-top: 1px solid var(--mm-line); padding-top: 1rem; }
.mmp .mm-cambio h4 { margin: 0 0 .4rem; font-size: .95rem; }
.mmp .mm-board .mm-boardbody > * + * { margin-top: .6rem; }
.mmp .mm-board tr.leader td:first-child { font-weight: 700; }
.mmp .mm-dlg-b h3 { margin: 1rem 0 .4rem; font-size: 1rem; }
