:root {
  --bg: #07110e;
  --panel: #0d1b17;
  --panel-2: #13251f;
  --line: rgba(255,255,255,.10);
  --text: #f4f7f5;
  --muted: #91a39b;
  --lime: #c9f31d;
  --lime-dark: #8faf08;
  --p: #8b5cf6;
  --d: #20c878;
  --c: #f6c945;
  --a: #ff5c52;
  --shadow: 0 32px 80px rgba(0,0,0,.34);
}
* { box-sizing: border-box; }
html { background: var(--bg); }
body { margin: 0; min-height: 100vh; color: var(--text); background: radial-gradient(circle at 70% 10%, #173a2d 0, transparent 30%), var(--bg); font-family: Inter, system-ui, sans-serif; }
button, input, select { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }
.archive-view { min-height: 100vh; background: radial-gradient(circle at 80% 0,#173a2d 0,transparent 35%),var(--bg); }
.archive-header,.welcome-header,.page-bar { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:16px; padding:18px 28px; border-bottom:1px solid var(--line); background:#0b1814; }
.archive-header .brand-lockup,.welcome-header .brand-lockup,.page-bar .brand-lockup { display:flex; align-items:center; gap:13px; border:0; color:var(--text); background:none; text-align:left; }.archive-header .brand-lockup strong,.archive-header .brand-lockup span,.welcome-header .brand-lockup strong,.welcome-header .brand-lockup span,.page-bar .brand-lockup strong,.page-bar .brand-lockup span { display:block; }.archive-header .brand-lockup span,.welcome-header .brand-lockup span,.page-bar .brand-lockup span { color:var(--lime); }.mini-mark { width:32px; height:32px; }.archive-header-tools { display:flex; align-items:center; gap:8px; justify-self:end; }
.archive-main { max-width:1200px; margin:auto; padding:30px 24px 60px; }.archive-main .section-heading { justify-content:space-between; height:auto; padding-bottom:16px; }.archive-main h2 { margin:0; font:italic 800 2.5rem Barlow Condensed; text-transform:uppercase; }.archive-list { display:grid; gap:10px; }.archive-card { display:grid; grid-template-columns:minmax(180px,1fr) auto auto; align-items:center; gap:18px; padding:18px; border:1px solid var(--line); border-radius:13px; background:rgba(13,27,23,.8); }.archive-card strong,.archive-card small { display:block; }.archive-card small,.archive-card>span { color:var(--muted); font-size:.68rem; }.archive-card-actions { display:flex; gap:7px; }.archive-card-actions .btn { min-height:38px; padding-inline:12px; font-size:.65rem; }.archive-detail-head { display:flex; justify-content:space-between; align-items:start; gap:20px; padding:26px 0; }.archive-detail-head h2 { color:var(--lime); }.download-links,.archive-subtabs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }.download-links .btn,.archive-subtabs .btn { min-height:40px; padding-inline:12px; font-size:.64rem; text-decoration:none; }.archive-roster { margin:10px 0; padding:17px; border:1px solid var(--line); border-radius:12px; background:#0f201a; }.archive-roster>div { display:flex; justify-content:space-between; border-bottom:1px solid var(--line); padding-bottom:10px; }.archive-roster h3 { margin:0; color:var(--lime); font:700 1.2rem Barlow Condensed; text-transform:uppercase; }.archive-roster span { color:var(--muted); font-size:.67rem; }.archive-roster ul { display:grid; grid-template-columns:repeat(2,1fr); gap:5px 20px; padding:10px 0 0; margin:0; list-style:none; }.archive-roster li { display:flex; justify-content:space-between; gap:10px; font-size:.68rem; }.archive-roster li span { color:var(--text); }.archive-search { width:100%; height:48px; margin:8px 0 18px; padding:0 13px; border:1px solid var(--line); border-radius:9px; color:white; background:#10231d; }.archive-player-list { display:grid; gap:8px; }.archive-player { display:grid; grid-template-columns:180px 120px 1fr; gap:10px; padding:14px; border:1px solid var(--line); border-radius:10px; font-size:.7rem; }.archive-player small { color:var(--muted); }.archive-player span { color:#cbd5d0; }.league-manager { padding:25px 28px; }.league-list { display:grid; gap:8px; }.league-new { display:grid; grid-template-columns:1fr 150px auto; align-items:end; gap:10px; margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }.league-new label { color:var(--muted); font-size:.7rem; }.league-new input,.league-new select { display:block; width:100%; margin-top:6px; }.danger-btn { color:#ff8e8e !important; border-color:#7b302c !important; background:#351715 !important; }.danger-btn:disabled { opacity:.4; cursor:not-allowed; }
.archive-finder { display:grid; grid-template-columns:180px minmax(0,1fr); gap:10px; margin-bottom:28px; padding:16px; border:1px solid var(--line); border-radius:15px; background:rgba(13,27,23,.86); }.archive-finder label { min-width:0; color:var(--muted); font-size:.64rem; font-weight:700; letter-spacing:.08em; }.archive-finder label>span { display:block; margin:0 0 7px 2px; }.archive-finder select,.archive-finder input { width:100%; height:48px; padding:0 14px; border:1px solid var(--line); border-radius:10px; outline:0; color:var(--text); background:#10231d; font-weight:650; }.archive-finder select:focus,.archive-finder input:focus { border-color:var(--lime); box-shadow:0 0 0 3px rgba(201,243,29,.08); }.archive-results-count { color:var(--muted); font-size:.72rem; }.archive-empty { margin:0; padding:40px 18px; border:1px dashed var(--line); border-radius:13px; color:var(--muted); text-align:center; }
.archive-list { grid-template-columns:1fr; }.archive-card { display:block; padding:18px; }.archive-card-heading { display:flex; justify-content:space-between; gap:12px; }.archive-card-heading strong { margin-top:8px; color:var(--text); font-size:1rem; }.archive-card-heading small { margin-top:4px; color:var(--muted); }.archive-titolo { display:flex; align-items:center; flex-wrap:wrap; gap:6px 14px; width:100%; min-width:0; }
.archive-titolo .archive-status { margin-left:auto; }
.archive-titolo h2, .archive-titolo h3, .archive-titolo .eyebrow { margin:0; }
.archive-card .archive-titolo h3 { color:var(--lime); font:italic 800 1.7rem "Barlow Condensed", "Arial Narrow", sans-serif; letter-spacing:-.01em; text-transform:uppercase; }
.archive-card-heading.archive-titolo { justify-content:flex-start; }
.archive-status { display:inline-flex; width:fit-content; padding:4px 7px; border-radius:999px; color:#c7d2cd; background:#273a33; font-size:.55rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.archive-status.live { color:#152000; background:var(--lime); }.archive-card-stats { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:16px 0; }.archive-card-stats span,.archive-recap-stats span { padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.025); }.archive-card-stats small,.archive-recap-stats small { display:block; margin-bottom:4px; color:var(--muted); font-size:.55rem; letter-spacing:.08em; text-transform:uppercase; }.archive-card-stats b { font:800 1.35rem Barlow Condensed; }.archive-card-actions { display:grid; grid-template-columns:1fr auto; }.archive-card-actions .btn { min-height:42px; }
.archive-recap { margin-top:16px; padding:20px; border:1px solid var(--line); border-radius:16px; background:rgba(13,27,23,.88); }.archive-recap .archive-detail-head { padding:0; }.archive-recap .eyebrow { margin:12px 0 4px; }.archive-recap-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:18px; }.archive-recap-stats b { font:800 1.65rem Barlow Condensed; }.archive-download { display:grid; grid-template-columns:minmax(220px,1fr) auto; align-items:end; gap:8px; margin-top:16px; }.archive-download label { color:var(--muted); font-size:.62rem; font-weight:700; text-align:left; }.archive-download label>span { display:block; margin:0 0 7px 2px; }.archive-download select { width:100%; height:46px; padding:0 12px; border:1px solid var(--line); border-radius:10px; color:white; background:#10231d; }.archive-download .btn { min-height:46px; display:inline-flex; align-items:center; text-decoration:none; }.archive-subtabs { margin:16px 0 10px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.archive-roster { padding:15px; }.archive-roster>div span small { color:#71847b; text-transform:uppercase; }.archive-roster li span { display:flex; align-items:center; gap:7px; }.archive-roster li i { min-width:20px; padding:2px 4px; border-radius:4px; font-style:normal; font-weight:800; text-align:center; }.archive-roster li .role-P { color:var(--p); background:rgba(143,91,255,.1); }.archive-roster li .role-D { color:var(--d); background:rgba(21,215,133,.1); }.archive-roster li .role-C { color:var(--c); background:rgba(255,209,71,.1); }.archive-roster li .role-A { color:var(--a); background:rgba(255,91,88,.1); }
.archive-player { display:block; padding:0; overflow:hidden; background:#0f201a; }.archive-player>header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px; border-bottom:1px solid var(--line); }.archive-player>header strong,.archive-player>header small { display:block; }.archive-player>header strong { color:white; font-size:.9rem; }.archive-player>header small { margin-top:3px; }.archive-player>header>span { flex:0 0 auto; color:var(--lime); font-size:.62rem; font-weight:800; }.archive-player-history { display:grid; }.archive-player-history>div { display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; padding:12px 15px; border-top:1px solid rgba(255,255,255,.045); }.archive-player-history>div:first-child { border-top:0; }.archive-player-history span b,.archive-player-history span small { display:block; }.archive-player-history span small { margin-top:3px; color:var(--muted); font-size:.6rem; }.archive-player-history>div>span:last-child { text-align:right; }.archive-player-history>div>span:last-child strong { display:block; margin-top:3px; color:var(--lime); }
.noise { position: fixed; inset: 0; opacity: .03; pointer-events: none; z-index: 20; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }
.eyebrow { margin: 0 0 .65rem; color: var(--lime); font: 700 .75rem/1 Inter, sans-serif; letter-spacing: .18em; }
.btn { min-height: 50px; padding: 0 22px; border: 1px solid transparent; border-radius: 12px; color: var(--text); background: var(--panel-2); font-weight: 700; transition: transform .16s, border-color .16s, filter .16s; }
.btn:hover { transform: translateY(-1px); filter: brightness(1.08); }
.btn:active { transform: translateY(1px); }
.btn-primary { color: #10180a; background: var(--lime); }
.btn-secondary { border-color: var(--line); background: #1d312a; }
.btn-ghost { border-color: var(--line); background: transparent; }
.page-back .ico { width: 18px; height: 18px; opacity: .85; }
.search-modal .main-nav { display: none; }
.official-list-link { display: flex; align-items: center; justify-content: center; text-align: center; }

.welcome-view { min-height: 100vh; display: grid; grid-template-rows: auto 1fr; text-align: center; position: relative; overflow: hidden; }
.welcome-header { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; }
.welcome-header .welcome-header-actions { justify-content: flex-end; }
.welcome-header .brand-lockup { cursor: pointer; }
.welcome-header-actions { display: flex; align-items: center; gap: 8px; }
.welcome-header-actions .btn { min-height: 40px; display: inline-flex; align-items: center; padding-inline: 14px; text-decoration: none; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: 26px; flex-wrap: wrap; }
.mobile-menu-toggle,.mobile-menu-head,.mobile-menu-backdrop { display: none; }
/* Le pagine aperte dentro un'asta tornano sempre alla regia: la navigazione
   generale appartiene alla home e alle schermate che nascono da lì. */
#rostersDialog > .page-bar > .main-nav,
#finishDialog > .page-bar > .main-nav,
#auditDialog > .page-bar > .main-nav,
#shareDialog > .page-bar > .main-nav,
#searchDialog > .page-bar > .main-nav,
#rosterEditorDialog > .page-bar > .main-nav { display: none !important; }
/* Voci di navigazione: testo, non bottoni. */
.nav-link { padding: 4px 0; border: 0; background: transparent; color: #c3d1cb; font-size: .82rem; font-weight: 600; letter-spacing: .01em; cursor: pointer; }
.nav-link:hover { color: var(--text); text-decoration: underline; text-underline-offset: 5px; }
.nav-link:focus-visible { outline: none; color: var(--text); text-decoration: underline; text-underline-offset: 5px; }
@media (max-width: 760px) {
  .welcome-header { grid-template-columns: 1fr auto; row-gap: 12px; }
  .main-nav { grid-column: 1 / -1; }
}
.welcome-hero { display: grid; place-content: center; padding: 48px 24px; position: relative; overflow: hidden; }
.welcome-hero::before { content: ""; width: 540px; height: 540px; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-48%) rotate(18deg); border: 1px solid rgba(201,243,29,.12); border-radius: 48px; box-shadow: 0 0 0 70px rgba(201,243,29,.025), 0 0 0 140px rgba(201,243,29,.018); }
.welcome-hero > * { position: relative; z-index: 1; }
.welcome-mark { margin: 0 auto 24px; width: 78px; height: 78px; display: block; border-radius: 20px; object-fit: cover; box-shadow: 0 12px 32px rgba(0,0,0,.35); }
.welcome-view h1 { margin: 0; font: italic 900 clamp(4.5rem, 11vw, 8rem)/.72 Barlow Condensed, sans-serif; letter-spacing: -.04em; text-transform: uppercase; }
.welcome-view h1 span { color: transparent; -webkit-text-stroke: 1.5px var(--lime); }
.welcome-copy { max-width: 590px; margin: 32px auto 26px; color: #b4c2bc; font-size: 1.05rem; line-height: 1.6; }
.welcome-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; }
#loginLink { justify-self: center; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.welcome-auction-list { width: min(620px, 92vw); margin: 0 auto 18px; display: grid; gap: 8px; }
.welcome-auction { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: rgba(11,24,20,.82); text-align: left; }
.welcome-auction span,.welcome-auction small { display: block; }.welcome-auction small { margin-top: 3px; color: var(--muted); }
.file-label { display: inline-flex; align-items: center; }
.file-label input { display: none; }
.saved-info { color: var(--muted); font-size: .82rem; min-height: 1.2em; }

.auction-view { height: 100vh; min-height: 620px; display: flex; flex-direction: column; overflow: hidden; }
.topbar { min-height: 70px; flex: 0 0 auto; position: relative; z-index: 10; display: grid; grid-template-columns: auto minmax(230px,max-content) 1fr auto; align-items: center; column-gap: 14px; padding: 0 28px; border-bottom: 1px solid var(--line); background: rgba(7,17,14,.88); backdrop-filter: blur(18px); }
.brand-lockup { display: flex; align-items: center; gap: 13px; padding: 0; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.brand-lockup:hover .mini-mark { transform: scale(1.06); box-shadow: 0 0 0 3px rgba(201,243,29,.16); }
.mini-mark { width: 40px; height: 40px; display: block; border-radius: 10px; object-fit: cover; }
.brand-lockup strong { display: block; font: italic 800 1.15rem Barlow Condensed; text-transform: uppercase; }
.brand-lockup span { display: block; color: var(--muted); font: italic 800 1.2rem "Barlow Condensed", "Arial Narrow", sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.header-league-logo { width: 36px; height: 36px; margin-left: auto; object-fit: contain; }
/* Pillola-progresso: il riempimento lime avanza da sinistra; il testo è disegnato due volte
   (chiaro sotto, scuro sopra ritagliato alla larghezza del riempimento) così cambia colore
   esattamente dove la barra lo copre. La larghezza è la variabile --fill, messa da app.js. */
.progress-pill { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 99px; background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px rgba(255,255,255,.03); }
.pill-fill { position: absolute; inset: 0 auto 0 0; width: var(--fill); border-radius: 99px; background: var(--lime); transition: width .35s ease; }
/* Lo strato chiaro sta NEL FLUSSO: è lui a dare la larghezza alla pillola, altrimenti con
   numeri lunghi (MANCANO 134, CHIAMATI 274) il testo sborderebbe e verrebbe tagliato.
   Lo strato scuro lo ricalca in assoluto sulla stessa scatola, così i due combaciano. */
.pill-layer { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; box-sizing: border-box; min-height: 38px; gap: 3px 13px; padding: 8px 18px; font: 700 .58rem Inter; letter-spacing: .1em; text-transform: uppercase; }
.pill-layer > span { white-space: nowrap; }
.pill-layer b { font-size: .68rem; font-variant-numeric: tabular-nums; }
.pill-layer .pill-phase { font-size: .7rem; letter-spacing: .13em; }
.pill-light { position: relative; color: #9fb1a8; }.pill-light b,.pill-light .pill-phase { color: #fff; }
.pill-dark { position: absolute; inset: 0; color: #1f3126; clip-path: inset(0 calc(100% - var(--fill)) 0 0); transition: clip-path .35s ease; }.pill-dark b,.pill-dark .pill-phase { color: #07110e; }
.toolbar { display: flex; justify-content: flex-end; align-items: center; gap: 10px; }
.toolbar-group { display: flex; align-items: center; gap: 3px; }
/* Le azioni dell'asta e quelle di gestione sono due cose diverse: una linea le separa,
   e «Termina» resta l'ultimo, staccato, perché è l'unica irreversibile. */
.toolbar-group + .toolbar-group { padding-left: 10px; border-left: 1px solid var(--line); }
.toolbar-group .danger-btn { margin-left: 5px; }
#searchBtn,#rostersBtn { border-color: var(--line); background: transparent; }
.rosters-btn b { margin-left: 4px; padding: 3px 5px; border-radius: 5px; color: var(--lime); background: rgba(201,243,29,.1); font-size: .58rem; }
.icon-btn { min-height: 38px; display: inline-flex; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid transparent; border-radius: 9px; color: #bdcac4; background: transparent; font-size: .78rem; font-weight: 600; }
.icon-btn.icon-only { width: 40px; padding: 0; justify-content: center; }
/* Icone a tratto: grandi ma leggere. `currentColor` le tiene in tinta col pulsante,
   anche quando è quello rosso di «Termina» o quando ci passi sopra. */
.ico { width: 21px; height: 21px; flex: 0 0 21px; opacity: .82; }
.icon-btn:hover .ico { opacity: 1; }
.icon-only .ico { width: 22px; height: 22px; flex-basis: 22px; }
.icon-btn:hover { border-color: var(--line); background: var(--panel); color: white; }

.auction-stage { min-height: 0; flex: 1 1 auto; display: grid; grid-template-columns: minmax(280px, 330px) minmax(380px, 500px) minmax(185px, 215px); justify-content: center; align-items: center; gap: clamp(18px,2.2vw,34px); padding: 10px 24px 8px; }
.player-card { --role: var(--p); height: min(100%, 380px); width: auto; max-width: 100%; aspect-ratio: .88; position: relative; isolation: isolate; overflow: hidden; border: 1px solid rgba(255,255,255,.14); border-radius: 22px 7px 22px 7px; background: linear-gradient(150deg, color-mix(in srgb, var(--role) 35%, #111) 0%, #0b1512 48%, #050a08 100%); box-shadow: var(--shadow), inset 0 0 0 1px rgba(255,255,255,.03); }
.player-card.role-D { --role: var(--d); }.player-card.role-C { --role: var(--c); }.player-card.role-A { --role: var(--a); }
.card-stripes { position: absolute; inset: 0; z-index: -1; opacity: .26; background: repeating-linear-gradient(112deg, transparent 0 58px, color-mix(in srgb, var(--role) 35%, transparent) 59px 60px); }
.card-topline { height: 54px; display: flex; justify-content: space-between; align-items: center; padding: 0 19px; position: relative; z-index: 4; }
.role-badge { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--role) 80%, white); border-radius: 50%; background: var(--role); color: #06110c; font: 900 1.15rem Barlow Condensed; }
.precise-role { min-width: 64px; padding: 7px 13px; border: 1px solid color-mix(in srgb, var(--role) 65%, white); border-radius: 7px; color: #06110c; background: var(--role); text-align: center; font: 900 1.2rem/1 Barlow Condensed; letter-spacing: .04em; box-shadow: 0 5px 18px color-mix(in srgb, var(--role) 22%, transparent); }
.call-count { padding: 7px 10px; border: 1px solid rgba(255,255,255,.18); border-radius: 99px; background: rgba(0,0,0,.25); color: #dae2de; font-size: .6rem; font-weight: 700; letter-spacing: .12em; }
.portrait-wrap { position: absolute; z-index: 0; inset: 46px 0 0; }
.portrait-wrap img { width: 100%; height: 82%; position: relative; z-index: 2; object-fit: contain; object-position: 50% 100%; filter: saturate(.88) contrast(1.05); }
.portrait-wrap img.club-logo { width: 62%; height: 58%; left: 19%; top: 5%; object-position: 50% 50%; filter: drop-shadow(0 18px 30px rgba(0,0,0,.38)); }
.portrait-fallback { width: 72%; aspect-ratio: 1; position: absolute; left: 14%; top: 8%; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--role) 30%, transparent); border-radius: 50%; color: color-mix(in srgb, var(--role) 65%, white); background: radial-gradient(circle at 50% 30%, color-mix(in srgb, var(--role) 22%, transparent), transparent 65%); font: italic 900 7rem Barlow Condensed; opacity: .75; }
.portrait-shade { position: absolute; z-index: 3; inset: 35% 0 0; background: linear-gradient(transparent, rgba(5,10,8,.72) 54%, #050a08 84%); }
.player-copy { position: absolute; z-index: 5; left: 21px; right: 21px; bottom: 19px; }
.player-details { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.player-club { margin: 0; color: var(--role); font: 900 1.12rem/1 Barlow Condensed; letter-spacing: .14em; text-shadow: 0 2px 12px color-mix(in srgb, var(--role) 65%, transparent); }
.mantra-role { display: flex; align-items: center; margin: 0; padding: 6px 11px; border: 0; border-radius: 6px; color: #06110c; background: var(--role); box-shadow: 0 4px 16px color-mix(in srgb, var(--role) 25%, transparent); }
.mantra-role strong { font: 900 1.05rem/1 Barlow Condensed; letter-spacing: .03em; }
.player-copy h2 { max-width: 100%; margin: 0; overflow: hidden; font: italic 900 clamp(2.55rem,3.7vw,3.65rem)/.82 Barlow Condensed; letter-spacing: -.035em; text-transform: uppercase; text-overflow: clip; white-space: nowrap; }
.player-copy h2.name-long { font-size: clamp(2.05rem,3vw,2.75rem); letter-spacing: -.045em; }.player-copy h2.name-xlong { font-size: clamp(1.6rem,2.35vw,2.15rem); letter-spacing: -.05em; }
.player-meta { margin: 11px 0 0; color: #c1cbc6; font-size: .62rem; font-weight: 700; letter-spacing: .08em; line-height: 1.5; }
.fvm-disc { width: 58px; height: 58px; position: absolute; z-index: 6; right: 17px; top: 66px; display: grid; place-content: center; text-align: center; border: 1px solid color-mix(in srgb, var(--role) 80%, white); border-radius: 50%; color: #06110c; background: var(--role); transform: rotate(5deg); box-shadow: 0 8px 22px rgba(0,0,0,.28); }
.fvm-disc small { font: 700 .52rem Inter; letter-spacing: .1em; }.fvm-disc strong { font: 900 1.45rem/1 Barlow Condensed; }
.bid-panel { max-width: 500px; }
.selected-team { width: 100%; padding: 0 0 12px; border: 0; border-bottom: 1px solid var(--line); color: var(--text); background: transparent; text-align: left; font: italic 800 clamp(2.1rem,3.3vw,3.5rem)/1 Barlow Condensed; text-transform: uppercase; }
.selected-team.needs-selection { color: var(--lime); }
.bid-row { margin-top: 23px; }
.bid-row > label { display: block; margin-bottom: 9px; color: var(--muted); font: 700 .7rem Inter; letter-spacing: .15em; }
.price-control { display: grid; grid-template-columns: 58px minmax(120px,1fr) 58px; align-items: center; border: 1px solid var(--line); border-radius: 15px; background: var(--panel); }
.price-control button { height: 64px; border: 0; color: var(--muted); background: transparent; font-size: 1.8rem; }
.price-control input { width: 100%; border: 0; outline: none; color: white; background: transparent; text-align: center; font: 900 3.4rem Barlow Condensed; }
.price-control input::-webkit-inner-spin-button { display: none; }
/* La freccina di sistema non si può vestire: si toglie e se ne disegna una in casa. */
input[type="number"]::-webkit-outer-spin-button, input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input[type="number"] { appearance: textfield; -moz-appearance: textfield; }
.stepper { position: relative; display: block; }
.stepper > input[type="number"] { width: 100%; padding-right: 34px; }
.stepper-controls { position: absolute; right: 7px; top: 50%; transform: translateY(-50%); display: grid; gap: 3px; }
.stepper-btn { display: grid; place-items: center; width: 22px; height: 15px; padding: 0; border: 0; border-radius: 5px; background: transparent; color: var(--muted); cursor: pointer; transition: color .14s, background .14s; }
.stepper-btn::before { content: ""; width: 0; height: 0; border-inline: 4px solid transparent; }
.stepper-up::before { border-bottom: 5px solid currentColor; }
.stepper-down::before { border-top: 5px solid currentColor; }
.stepper-btn:hover { color: var(--lime); background: rgba(201,243,29,.12); }
.stepper-btn:active { background: rgba(201,243,29,.22); }
.stepper > input[type="number"]:focus ~ .stepper-controls .stepper-btn { color: #c3d1cb; }
.max-bid { margin: 8px 2px 0; color: var(--muted); font-size: .72rem; }
.auction-actions { display: grid; grid-template-columns: 62px minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr); gap: 8px; margin-top: 18px; }
.auction-actions .btn { min-height: 62px; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 0 12px; white-space: nowrap; }
.auction-actions small { opacity: .55; font-size: .65rem; font-weight: 500; }
.btn-undo { border-color: var(--line); color: #bdcac4; background: transparent; }.auction-actions .btn-undo { justify-content: center; padding: 0; }.btn-undo .ico { width: 24px; height: 24px; opacity: .82; }.btn-undo:hover:not(:disabled) { color: #fff; }.btn-undo:hover:not(:disabled) .ico { opacity: 1; }
.btn-pass { border-color: var(--line); background: transparent; }
.btn-buy { color: #07110e; background: var(--lime); }
.autosave { margin-top: 12px; color: #6d8178; font-size: .62rem; }.autosave::first-letter { color: var(--lime); }
.download-status { max-width: 360px; min-height: 1.2em; margin: 5px auto 0; color: #ffad42; font-size: .62rem; line-height: 1.4; }
.download-block-reason { min-height: 1.2em; margin: 10px 24px; color: #ffad42; font-size: .66rem; text-align: center; }
.unsaved-banner { padding: 7px 18px; color: white; background: #a82d28; text-align: center; font-size: .72rem; font-weight: 800; letter-spacing: .04em; }

.previous-call { --previous-role: var(--p); min-height: 255px; align-self: center; padding: 20px 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 15px 5px 15px 5px; background: linear-gradient(145deg, color-mix(in srgb, var(--previous-role) 13%, var(--panel)), var(--panel)); box-shadow: inset 3px 0 var(--previous-role); }
.previous-call[data-role="D"] { --previous-role: var(--d); }.previous-call[data-role="C"] { --previous-role: var(--c); }.previous-call[data-role="A"] { --previous-role: var(--a); }
.previous-call .eyebrow { margin-bottom: 14px; color: #80928a; font-size: .57rem; }.previous-role { display: inline-flex; min-width: 48px; min-height: 38px; align-items: center; justify-content: center; padding: 5px 10px; border-radius: 7px; color: #06110c; background: var(--previous-role); font: 900 1.05rem Barlow Condensed; }.previous-club { margin: 16px 0 4px; color: var(--previous-role); font: 800 .67rem Inter; letter-spacing: .13em; }.previous-call h3 { margin: 0; font: italic 900 1.75rem/.85 Barlow Condensed; text-transform: uppercase; overflow-wrap: anywhere; }.previous-result { margin-top: 20px; padding-top: 13px; border-top: 1px solid var(--line); }.previous-result span { display: block; color: #cad5d0; font-size: .68rem; line-height: 1.3; text-transform: uppercase; }.previous-result strong { display: block; margin-top: 4px; color: var(--previous-role); font: 900 1.4rem Barlow Condensed; }.previous-time { margin: 8px 0 0; color: #6f8279; font-size: .58rem; }.previous-call.empty { opacity: .55; filter: saturate(.35); }

.teams-section { position: relative; flex: 0 0 294px; padding: 0 24px 26px; }
.section-heading { height: 38px; display: flex; align-items: center; gap: 12px; padding: 0; border-top: 1px solid var(--line); }.section-heading h3 { margin: 0; font: 700 1.12rem Barlow Condensed; text-transform: uppercase; }.section-heading p { margin: 0; color: var(--muted); font-size: .65rem; }
.shortage-banner { position: absolute; z-index: 1; top: 0; right: 24px; left: 50%; height: 38px; display: flex; align-items: center; justify-content: flex-end; gap: 18px; overflow: auto hidden; color: #ffdbaa; background: linear-gradient(90deg, transparent, #23190f 8%); white-space: nowrap; font-size: .61rem; }.shortage-banner span { flex: 0 0 auto; }.shortage-banner b { color: #ffad42; letter-spacing: .06em; }
.teams-grid { max-height: 230px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; display: grid; grid-template-columns: repeat(auto-fill,minmax(148px,1fr)); grid-auto-rows: minmax(107px,auto); gap: 8px; }
.teams-grid::-webkit-scrollbar { width: 8px; }
.teams-grid::-webkit-scrollbar-thumb { border-radius: 99px; background: rgba(201,243,29,.32); }
.teams-grid::-webkit-scrollbar-thumb:hover { background: rgba(201,243,29,.5); }
.teams-grid::-webkit-scrollbar-track { background: rgba(255,255,255,.04); border-radius: 99px; }
.team-card { min-width: 0; padding: 14px 13px; border: 1px solid var(--line); border-radius: 11px; color: var(--text); background: rgba(13,27,23,.72); text-align: left; transition: .16s; }
.team-card:hover { border-color: rgba(201,243,29,.4); }.team-card.selected { border-color: var(--lime); background: rgba(201,243,29,.1); box-shadow: inset 3px 0 var(--lime); }.team-card.full-role,.team-card:disabled { opacity: .38; cursor: not-allowed; filter: saturate(.55); }.team-card:disabled:hover { border-color: var(--line); }
.team-card-title { min-width: 0; display: flex; align-items: center; gap: 9px; margin-bottom: 12px; }.team-logo { width: 29px; height: 29px; flex: 0 0 29px; object-fit: contain; }.team-card-name { min-width: 0; display: block; overflow: hidden; color: #f0f5f2; font: 750 .82rem Inter; text-overflow: ellipsis; white-space: nowrap; }
.team-card-main { display: flex; align-items: end; justify-content: space-between; gap: 8px; }.team-budget { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }.team-card-main strong { flex: 0 0 auto; font: 800 1.9rem/1 Barlow Condensed; }.team-card-main strong small { color: var(--muted); font-size: .62rem; }.role-counts { min-width: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 8px; color: #a9b8b1; font-size: .63rem; }.role-counts b { color: white; font-weight: 800; }

.modal { width: min(1080px, calc(100% - 32px)); max-height: calc(100vh - 32px); padding: 0; overflow: auto; border: 1px solid rgba(255,255,255,.14); border-radius: 22px; color: var(--text); background: #0b1814; box-shadow: 0 40px 120px #000; }
.modal::backdrop { background: rgba(0,8,5,.76); backdrop-filter: blur(7px); }
/* Finestre diventate pagine: occupano tutto e portano la barra dell'app in cima. */
.modal.as-page { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; border: 0; border-radius: 0; background: var(--bg); box-shadow: none; }
.modal.as-page::backdrop { background: var(--bg); backdrop-filter: none; }
.modal.as-page > .page-bar { position: sticky; top: 0; z-index: 3; }
.modal.as-page > *:not(.page-bar) { width: 100%; max-width: 1120px; margin-inline: auto; }
.page-bar .brand-lockup { cursor: pointer; }
.page-bar .brand-lockup:focus,
.page-bar .brand-lockup:focus-visible { outline: none; box-shadow: none; }
.page-bar-actions { justify-self: end; }
.page-bar-actions { grid-column: 3; display: flex; align-items: center; gap: 8px; }
@media (max-width: 900px) {
  .archive-header,.welcome-header,.page-bar { grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); row-gap: 10px; }
  .archive-header > .brand-lockup,.welcome-header > .brand-lockup,.page-bar > .brand-lockup { grid-area: 1/2/2/3; justify-self: center; }
  .archive-header > .brand-lockup > div,.welcome-header > .brand-lockup > div,.page-bar > .brand-lockup > div { display: none; }
  .archive-header > .brand-lockup .mini-mark,.welcome-header > .brand-lockup .mini-mark,.page-bar > .brand-lockup .mini-mark { width: 40px; height: 40px; flex: 0 0 40px; }
  .page-bar-actions,.welcome-header-actions { grid-area: 1/3/2/4; justify-self: end; }
  .main-nav:not(.hidden) { position: fixed; z-index: 100; inset: 0 auto 0 0; width: min(82vw,320px); height: 100dvh; display: flex; flex-direction: column; flex-wrap: nowrap; align-items: stretch; justify-content: flex-start; gap: 7px; padding: 18px; visibility: hidden; background: #07110e; border-right: 1px solid var(--line); box-shadow: 28px 0 70px rgba(0,0,0,.5); transform: translateX(-105%); transition: transform .22s ease,visibility .22s; }
  .main-nav.mobile-open { visibility: visible; transform: translateX(0); }
  .main-nav .nav-link { width: 100%; min-height: 52px; display: flex; align-items: center; padding: 0 15px; border: 1px solid var(--line); border-radius: 11px; color: var(--text); background: #10231d; font-size: .86rem; text-align: left; }
  .main-nav .nav-link:hover { border-color: rgba(201,243,29,.5); background: rgba(201,243,29,.07); }
  .main-nav .file-label { cursor: pointer; }
  .mobile-menu-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 13px; padding: 2px 2px 15px; border-bottom: 1px solid var(--line); color: var(--lime); font: italic 800 1.25rem Barlow Condensed; letter-spacing: .07em; text-transform: uppercase; }
  .mobile-menu-close,.mobile-menu-toggle { width: 40px; height: 40px; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 11px; color: var(--text); background: transparent; }
  .mobile-menu-close { display: grid; font-size: 1.35rem; line-height: 1; }
  .mobile-menu-toggle { display: grid; flex: 0 0 40px; }
  .mobile-menu-toggle svg { width: 19px; height: 19px; }
  header:has(> .main-nav.hidden) .mobile-menu-toggle,
  #rostersDialog .mobile-menu-toggle,#finishDialog .mobile-menu-toggle,#auditDialog .mobile-menu-toggle,#shareDialog .mobile-menu-toggle,#searchDialog .mobile-menu-toggle,#rosterEditorDialog .mobile-menu-toggle { display: none !important; }
  .mobile-menu-backdrop { position: fixed; z-index: 99; inset: 0; border: 0; background: rgba(0,8,5,.62); backdrop-filter: blur(3px); }
  .mobile-menu-backdrop.open { display: block; }
  header:has(.main-nav.mobile-open) { position: relative; z-index: 101; }
  .mobile-menu-header { grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: 8px; }
  .mobile-menu-header > .brand-lockup { grid-area: 1/2/2/3; justify-self: center; }
  .mobile-menu-header > .mobile-menu-toggle { grid-area: 1/1/2/2; justify-self: start; }
  .mobile-menu-header > .welcome-header-actions { grid-area: 1/3/2/4; justify-self: end; }
  .mobile-menu-header > .page-bar-actions { grid-area: 1/3/2/4; justify-self: end; }
  .mobile-menu-header > .page-bar-actions,
  .mobile-menu-header > .welcome-header-actions { gap: 6px; }
  .mobile-menu-header > .page-bar-actions .btn,
  .mobile-menu-header > .welcome-header-actions .btn { min-height: 40px; padding-inline: 10px; font-size: .6rem; white-space: nowrap; }
  .archive-header-tools { display: contents; }
  .archive-header-tools > .page-back { grid-area: 1/3/2/4; justify-self: end; }
  .page-back span { display: none; }
  .page-back { width: 40px; justify-content: center; padding-inline: 0; }
  .field-row.two-up { grid-template-columns: 1fr 1fr; }
  .auction-actions .btn { justify-content: center; }
  .auction-actions small { display: none; }
  .teams-section .section-heading p { display: none; }
  .main-nav { grid-column: auto; }
}
.page-bar-actions .btn { min-height: 40px; display: inline-flex; align-items: center; padding-inline: 14px; font-size: .64rem; text-decoration: none; }
.rosters-modal .page-bar-actions .btn { min-height: 44px; padding-inline: 18px; font-size: .72rem; }
/* Il ritorno prende la misura del gruppo in cui sta, mai il colore dell'azione principale. */
.topbar .page-back { min-height: 34px; padding-inline: 11px; font-size: .72rem; color: #93a49c; }
.topbar .page-back:hover { color: var(--text); }
.page-back { min-height: 40px; display: inline-flex; align-items: center; gap: 8px; padding-inline: 14px; border: 1px solid var(--line); border-radius: 12px; background: transparent; color: #c3d1cb; font-size: .64rem; font-weight: 700; text-decoration: none; }
.page-back:hover { transform: none; filter: none; color: var(--text); background: rgba(255,255,255,.055); }
/* Nessun anello colorato sul ritorno, né di sistema né nostro: si schiarisce e basta. */
.page-back:focus, .page-back:focus-visible { outline: none; box-shadow: none; border-color: var(--line); color: var(--text); background: rgba(255,255,255,.055); }
.page-bar-actions .btn:not(.page-back):focus-visible { outline: 2px solid rgba(201,243,29,.55); outline-offset: 2px; }
.modal.compact { width: min(520px, calc(100% - 32px)); padding: 28px 30px 0; }
.modal.data { width: min(980px, calc(100% - 32px)); padding: 28px 30px 0; }
/* Cancello del listone e pagina Impostazioni */
.campo-riga { display: grid; gap: 6px; color: var(--muted); font-size: .7rem; }
.campo-riga select { height: 42px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; color: white; background: #10231d; }


.impostazioni-corpo { padding: 28px; display: grid; gap: 34px; }
.impostazioni-sezione h2 { margin: 0; font: italic 800 2.1rem "Barlow Condensed", sans-serif; text-transform: uppercase; }
.impostazioni-sezione .page-subtitle { margin: 8px 0 18px; padding-inline: 0; }
.listoni-carica { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin-bottom: 16px; }
.listoni-carica .campo-riga { min-width: 190px; }
.listoni-list { display: grid; gap: 8px; }
.listone-riga { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 11px; background: var(--panel-2); }
.listone-riga strong { display: block; font-size: .82rem; }
.listone-riga small { display: block; color: var(--muted); font-size: .66rem; }
.listone-riga .btn { min-height: 36px; padding-inline: 12px; font-size: .62rem; }
.repair-origine { margin-bottom: 18px; padding-inline: 28px; }
.repair-origine .page-eyebrow { margin: 0 0 10px; padding-inline: 0; }
.download-row.scelta { border-color: var(--lime); background: rgba(201,243,29,.10); }
.riparazione-di { margin-top: 10px; color: var(--muted); font-size: .72rem; }
.riparazione-di b { color: var(--text); }
.listone-scelto { display: flex; align-items: baseline; gap: 10px; padding: 13px 15px; border: 1px dashed rgba(201,243,29,.34); border-radius: 11px; background: rgba(201,243,29,.05); }
.listone-scelto span { color: var(--muted); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }
.listone-scelto strong { color: var(--text); font-size: .76rem; }
.archive-data-body { max-height: min(64vh, 620px); overflow: auto; padding-right: 4px; }
.archive-data-body .archive-roster:first-child { margin-top: 0; }
/* Il registro qui dentro scorre nella finestra: l'intestazione si aggancia in cima, non a 93px. */
.archive-data-body .audit-table-head { top: 0; padding: 10px 0; }
.archive-data-body .audit-row { padding-inline: 0; }
.archive-recap-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 20px; }
.download-list { display: grid; gap: 8px; }
.download-row { display: grid; gap: 3px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel-2); color: var(--text); text-align: left; cursor: pointer; }
.download-row:hover:not(:disabled) { border-color: rgba(201,243,29,.42); background: #1b352c; }
.download-row:disabled { opacity: .5; cursor: progress; }
.download-row strong { font-size: .8rem; font-weight: 700; }
.download-row small { color: var(--muted); font-size: .66rem; }
.form-warning { margin: 0 0 12px; color: #f6c945; font-size: .72rem; }
#downloadStatus:empty { display: none; }
@media (max-width: 760px) { .archive-recap-actions { justify-content: stretch; } .archive-recap-actions .btn { flex: 1 1 auto; } }
.modal.compact .compact-title { margin: 4px 0 20px; font: italic 800 2rem Barlow Condensed; text-transform: uppercase; }
.modal.compact .league-new { grid-template-columns: 1fr; gap: 14px; margin-top: 0; padding-top: 0; border-top: 0; }
.modal.compact .modal-actions { margin: 22px -30px 0; }
.page-eyebrow { margin: 22px auto 0; padding-inline: 28px; color: var(--lime); font-size: .55rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.page-subtitle { margin: 10px auto 0; padding-inline: 28px; color: var(--muted); font-size: .82rem; line-height: 1.5; }
.page-eyebrow + .page-subtitle { margin-top: 4px; }
.modal.as-page .finish-icon { margin-top: 28px; }
@media (max-width: 760px) { .page-subtitle, .page-eyebrow { padding-inline: 18px; } }
.blocking-modal { width: min(620px,calc(100% - 32px)); padding: 32px; text-align: center; }.blocking-modal h2 { margin: 5px 0 18px; font: italic 800 2.2rem Barlow Condensed; text-transform: uppercase; }.blocking-modal > p:not(.eyebrow) { color: var(--muted); line-height: 1.55; }.blocking-modal .modal-actions { justify-content: center; margin: 24px -32px -32px; }.rejection-modal > .btn { margin-top: 18px; }
.modal-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; padding: 25px 28px; border-bottom: 1px solid var(--line); background: rgba(11,24,20,.95); }.modal-head h2 { margin: 0; font: italic 800 2.2rem Barlow Condensed; text-transform: uppercase; }.close-btn { width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 50%; color: white; background: transparent; font-size: 1.6rem; }
.modal-head-actions { display: flex; align-items: center; gap: 9px; }.modal-head-actions .btn { min-height: 42px; padding-inline: 15px; font-size: .66rem; }
.modal-subtitle { margin: 5px 0 0; color: var(--muted); font-size: .72rem; }
.audit-btn b { min-width: 18px; margin-left: 3px; padding: 3px 5px; border-radius: 5px; color: var(--lime); background: rgba(201,243,29,.1); font-size: .58rem; }
/* Pagina impostazioni. La testata usa la stessa gabbia del contenuto: senza questo, su
   schermi larghi, logo e bottoni corrono da bordo a bordo mentre le due colonne restano
   strette al centro e la pagina sembra storta. Le colonne sono pari, così il divisore cade
   a metà, e il tutto sta in un riquadro che dichiara dove finisce la pagina. */
.settings-modal > .page-bar { padding-inline: max(28px, calc((100% - 1120px) / 2)); }
.settings-modal > form { padding: 26px 18px 46px; }
.settings-grid { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: #0c1a15; }.settings-block { padding: 26px 28px; }.settings-block + .settings-block { border-left: 1px solid var(--line); }.settings-block h3 { margin: 0 0 20px; font: 700 1.1rem Barlow Condensed; text-transform: uppercase; }
.settings-block label { display: block; margin-bottom: 16px; color: #afbeb7; font-size: .72rem; font-weight: 600; }.settings-block input, .settings-block select { width: 100%; height: 46px; margin-top: 7px; padding: 0 12px; border: 1px solid var(--line); border-radius: 9px; outline: none; color: white; background: #10231d; }.settings-block input:focus,.settings-block select:focus { border-color: var(--lime); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.limits-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }.upload-box { padding: 14px; border: 1px dashed rgba(201,243,29,.4); border-radius: 10px; background: rgba(201,243,29,.04); }.upload-box input { height: auto; padding: 8px 0; border: 0; background: transparent; }.upload-box span { display: block; color: var(--lime); font-size: .67rem; }.field-hint { color: var(--muted); font-size: .65rem; line-height: 1.5; }.block-title { display: flex; justify-content: space-between; }.text-btn { border: 0; color: var(--lime); background: transparent; font-size: .65rem; }.team-names-list { max-height: 430px; overflow: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; padding-right: 5px; }.team-name-field { display: grid !important; grid-template-columns: 24px 1fr; align-items: center; margin: 0 !important; }.team-name-field span { color: #60736a; font: 700 .7rem Barlow Condensed; }.team-name-field > img { width: 21px; height: 21px; object-fit: contain; }.team-name-field input { margin: 0; height: 40px; }
.alphabet-starts { margin: -4px 0 14px; padding: 12px; border: 1px solid rgba(201,243,29,.18); border-radius: 10px; background: rgba(201,243,29,.035); }.alphabet-starts p { margin: 0 0 8px; color: var(--lime); font-size: .62rem; font-weight: 700; text-transform: uppercase; }.field-row.three { grid-template-columns: repeat(3,1fr); }.alphabet-starts label { margin-bottom: 0; }.alphabet-starts input { height: 38px; margin-top: 5px; text-align: center; text-transform: uppercase; }
.league-import { margin-bottom: 14px; padding: 12px; border: 1px solid rgba(255,255,255,.09); border-radius: 10px; background: rgba(255,255,255,.025); }.league-import label { margin: 0; }.league-import-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; margin-top: 7px; }.league-import-row input { min-width: 0; margin: 0; }.league-import-row .btn { min-height: 46px; padding-inline: 13px; font-size: .64rem; }.league-import p { margin: 7px 1px 0; color: var(--muted); font-size: .59rem; line-height: 1.35; }
.modal-actions { display: flex; justify-content: flex-end; gap: 9px; padding: 18px 28px; border-top: 1px solid var(--line); }.form-error { min-height: 1.2em; margin: 0; padding: 0 28px; color: #ff817a; font-size: .75rem; }
.rosters-modal { width: min(1400px,calc(100% - 28px)); }.rosters-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(290px,1fr)); gap: 8px; padding: 12px; }.roster-card { min-height: 230px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #0f201a; }.roster-card-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding-bottom: 11px; border-bottom: 1px solid var(--line); }.roster-team-title { min-width: 0; display: flex; align-items: center; gap: 8px; }.roster-team-logo { width: 30px; height: 30px; flex: 0 0 30px; object-fit: contain; }.roster-card h3 { margin: 0; color: var(--lime); font: 700 1.1rem Barlow Condensed; text-transform: uppercase; }.roster-card-head p { margin: 0; color: var(--muted); font-size: .65rem; }.roster-card-head strong { color: white; font-size: .86rem; }.roster-list { columns: 2; column-gap: 14px; margin-top: 10px; }.roster-player { break-inside: avoid; display: grid; grid-template-columns: 20px 1fr auto; gap: 5px; padding: 3px 0; font-size: .61rem; }.roster-player .r { font-weight: 800; }.roster-player .P { color: var(--p); }.roster-player .D { color: var(--d); }.roster-player .C { color: var(--c); }.roster-player .A { color: var(--a); }.empty-roster { color: var(--muted); font-size: .75rem; }
.finish-modal { padding: 0; text-align: center; }.finish-modal .page-bar-actions .btn { width: 112px; min-height: 40px; justify-content: center; padding-inline: 10px; }.finish-content { padding: 42px; }.finish-icon { width: 70px; height: 70px; display: grid; place-items: center; margin: 0 auto 20px; border-radius: 50%; color: #102000; background: var(--lime); font-size: 2rem; }.finish-modal h2 { margin: 0; font: italic 900 3rem Barlow Condensed; text-transform: uppercase; }.finish-content > p:not(.eyebrow) { color: var(--muted); line-height: 1.6; }.finish-actions { display: grid; grid-template-columns: minmax(220px,320px) auto; align-items: end; justify-content: center; gap: 8px; margin-top: 22px; }.finish-format { display: grid; gap: 7px; color: var(--muted); font-size: .66rem; font-weight: 700; text-align: left; }.finish-format span { display: block; margin-left: 2px; letter-spacing: .08em; }.finish-format select { display: block; width: 100%; height: 50px; padding: 0 42px 0 14px; border: 1px solid var(--line); border-radius: 12px; color: white; background: var(--panel-2); font-weight: 700; }.finish-actions .btn { min-width: 122px; height: 50px; align-self: end; }
.finish-modal .integration-note { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--line); color: #81958b; font-size: .63rem; }
.finish-modal .integration-note b { color: #cbd6d0; }.btn-import { color: #08130e; background: #ffad42; }
.audit-modal { width: min(1100px,calc(100% - 32px)); }.audit-summary { display: flex; justify-content: space-between; align-items: center; padding: 14px 24px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .65rem; letter-spacing: .12em; }.audit-summary b { color: var(--lime); font-size: .9rem; }.audit-summary .btn { min-height: 38px; padding-inline: 14px; font-size: .68rem; }.audit-table-head,.audit-row { display: grid; grid-template-columns: 82px 105px minmax(220px,1.35fr) minmax(180px,1fr) 70px; align-items: center; gap: 12px; }.audit-table-head { position: sticky; top: 93px; z-index: 1; padding: 10px 24px; color: #71847b; background: #0b1814; font-size: .55rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.audit-list { min-height: 180px; max-height: 58vh; overflow: auto; padding: 0 24px 20px; }.audit-row { min-height: 62px; border-top: 1px solid var(--line); color: #cbd5d0; font-size: .7rem; }.audit-row time { color: #71847b; font-variant-numeric: tabular-nums; }.audit-type { width: fit-content; padding: 5px 7px; border-radius: 5px; color: #0b1814; background: var(--muted); font-size: .53rem; font-weight: 800; }.audit-type.buy { background: var(--lime); }.audit-type.skip { color: white; background: #53645c; }.audit-type.undo { color: white; background: #b5413b; }.audit-player b,.audit-player small { display: block; }.audit-player b { color: white; font-size: .75rem; }.audit-player small { margin-top: 3px; color: #71847b; font-size: .58rem; }.audit-row > strong { color: var(--lime); font: 800 1rem Barlow Condensed; }.audit-empty { padding: 45px 0; color: var(--muted); text-align: center; font-size: .75rem; }
.share-modal { width: min(690px,calc(100% - 32px)); }.share-content { padding: 28px; }.share-status { display: flex; align-items: center; gap: 13px; margin-bottom: 24px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #10231d; }.share-status > span { width: 12px; height: 12px; flex: 0 0 12px; border-radius: 50%; background: #6f8279; box-shadow: 0 0 0 5px rgba(111,130,121,.12); }.share-status > span.online { background: var(--lime); box-shadow: 0 0 0 5px rgba(201,243,29,.12); }.share-status strong { font-size: .82rem; }.share-status p { margin: 4px 0 0; color: var(--muted); font-size: .68rem; }.share-content > label { display: block; color: var(--muted); font-size: .66rem; font-weight: 700; letter-spacing: .08em; }.share-link-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 8px; }.share-link-row input { min-width: 0; height: 48px; padding: 0 13px; border: 1px solid var(--line); border-radius: 9px; color: white; background: #07110e; font-size: .7rem; cursor: copy; transition: border-color .16s,background .16s,color .16s; }.share-link-row input:hover,.share-link-row input:focus { outline: none; border-color: rgba(201,243,29,.55); background: #0c1b16; }.share-link-row input.copied { border-color: var(--lime); color: #07110e; background: var(--lime); font-weight: 800; text-align: center; }.share-room { display: flex; align-items: center; justify-content: space-between; margin-top: 18px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); font-size: .6rem; letter-spacing: .12em; }.share-room strong { color: var(--lime); font: 900 1.35rem Barlow Condensed; letter-spacing: .16em; }.share-note { margin: 16px 2px 0; color: #71847b; font-size: .66rem; line-height: 1.55; }
.toast { position: fixed; z-index: 50; top: max(82px,calc(env(safe-area-inset-top) + 82px)); left: 50%; transform: translate(-50%,-20px); max-width: min(520px,calc(100% - 30px)); padding: 12px 17px; border: 1px solid var(--line); border-radius: 10px; opacity: 0; pointer-events: none; color: white; background: #19352b; box-shadow: 0 16px 40px #0008; font-size: .78rem; transition: top .2s,transform .2s,opacity .2s; }.toast.show { opacity: 1; transform: translate(-50%,0); }.toast.error { border-color: #ffb4ab; color: #93000a; background: #ffdad6; box-shadow: 0 12px 30px rgba(73,26,24,.24); font-weight: 600; }.toast.from-top { top: max(76px,calc(env(safe-area-inset-top) + 76px)); width: min(300px,calc(100% - 72px)); max-width: none; text-align: center; transform: translate(-50%,-24px); }.toast.from-top.show { transform: translate(-50%,0); }

/* Fra i 900 e i 1250 la pillola dividerebbe lo spazio con la toolbar e verrebbe tagliata:
   qui stringe corpo e spaziature quel tanto che basta a restare su una riga sola. */
@media (min-width: 901px) and (max-width: 1250px) {
  .pill-layer { gap: 9px; padding: 8px 13px; font-size: .51rem; letter-spacing: .05em; }
  .pill-layer b { font-size: .6rem; }
  .pill-layer .pill-phase { font-size: .6rem; letter-spacing: .07em; }
  .toolbar { gap: 7px; }
  .toolbar-group + .toolbar-group { padding-left: 7px; }
}
@media (max-width: 900px) {
  .toast { top: max(182px,calc(env(safe-area-inset-top) + 182px)); }
  .toast.from-top { top: max(72px,calc(env(safe-area-inset-top) + 72px)); width: min(300px,calc(100% - 72px)); max-width: none; padding: 10px 14px; font-size: .7rem; }
  .auction-view { height: auto; min-height: 100vh; overflow: visible; }.topbar { height: auto; flex-basis: auto; grid-template-columns: 1fr auto; padding: 14px 18px; row-gap: 10px; }.topbar .page-back { grid-column: 2; grid-row: 1; }.toolbar { grid-column: 1/-1; grid-row: 2; justify-content: space-between; flex-wrap: wrap; }.phase-wrap { grid-column: 1/-1; grid-row: 3; }.toolbar .icon-btn { padding: 0 7px; }.icon-btn span { display: none; }.pill-layer { display: grid; grid-template-columns: auto auto auto; justify-content: space-between; align-items: center; padding: 7px 14px; gap: 4px 12px; font-size: .5rem; letter-spacing: .06em; }
  .pill-layer .pill-phase { grid-area: 1/1/2/3; }
  .pill-layer .pill-tempo { grid-area: 1/3/2/4; justify-self: end; }
  .pill-layer .pill-mancano { grid-area: 2/1/3/2; }
  .pill-layer .pill-listone { grid-area: 2/2/3/3; }
  .pill-layer .pill-chiamati { grid-area: 2/3/3/4; justify-self: end; }.pill-layer b { font-size: .6rem; }.pill-layer .pill-phase { font-size: .62rem; letter-spacing: .09em; }
  .auction-stage { grid-template-columns: 1fr; gap: 32px; padding: 34px 20px; }.player-card,.bid-panel,.previous-call { margin: auto; }.player-card { width: min(100%,350px); height: auto; }.bid-panel,.previous-call { width: min(100%,500px); }
  .teams-section { flex-basis: auto; padding-inline: 18px; padding-bottom: 30px; }.shortage-banner { position: static; height: auto; min-height: 38px; justify-content: flex-start; margin-bottom: 4px; padding: 8px 0; background: transparent; white-space: normal; }.teams-grid { max-height: none; overflow: visible; grid-template-columns: repeat(auto-fill,minmax(132px,1fr)); grid-auto-rows: minmax(65px,auto); }.settings-grid { grid-template-columns: 1fr; }.settings-block + .settings-block { border-left: 0; border-top: 1px solid var(--line); }
}
@media (max-width: 520px) {
  .toolbar { gap: 0; }.topbar { padding-inline: 12px; }.auction-stage { padding-inline: 12px; }.player-card { border-radius: 18px 6px 18px 6px; }.player-copy h2 { font-size: 3.25rem; }.teams-grid { grid-template-columns: 1fr 1fr; }.team-card { padding: 11px 9px; }.team-card-name { font-size: .62rem; }.team-card-main { display: block; }.role-counts { margin-top: 7px; }.settings-block { padding: 22px 18px; }.limits-grid,.team-names-list { grid-template-columns: 1fr 1fr; }.team-names-list { max-height: none; overflow: visible; padding-right: 0; }.field-row { grid-template-columns: 1fr; }.field-row.three { grid-template-columns: repeat(3,1fr); }.league-import-row { grid-template-columns: 1fr; }.modal-actions { padding-inline: 18px; }
  .auction-actions { grid-template-columns: 54px minmax(0,1fr) minmax(0,.78fr) minmax(0,1.42fr); gap: 6px; }
  .auction-actions .btn { min-width: 0; gap: 0; padding-inline: 6px; font-size: .68rem; line-height: 1; }
  #gateListoneDialog .campo-riga, #gateListoneDialog .download-list, #gateListoneDialog .download-row { width: 100%; min-width: 0; }
  #gateListoneDialog .download-row strong, #gateListoneDialog .download-row small { overflow-wrap: anywhere; }
  #gateListoneDialog .modal-actions-split, #gateOrigineDialog .modal-actions-split { align-items: stretch; }
  #gateListoneDialog .modal-actions-split > *, #gateOrigineDialog .modal-actions-split > * { min-width: 0; flex: 1 1 0; justify-content: center; text-align: center; }
  .audit-table-head { display: none; }.audit-row { grid-template-columns: 65px 90px 1fr; padding: 10px 0; }.audit-row > span:nth-child(4),.audit-row > strong { grid-column: 3; }
  .share-link-row { grid-template-columns: 1fr; }
}

/* Select delle impostazioni su mobile: il popup nativo può essere piccolo e
   disallineato. Il trigger e il menu qui sotto restano ancorati allo stesso campo. */
.mobile-select { display: contents; }
.mobile-select-trigger { display: none; }
@media (max-width: 760px) {
  .modal.as-page .mobile-select { position: relative; display: block; width: 100%; margin-top: 7px; }
  .modal.as-page .mobile-select > select { position: absolute; width: 1px !important; height: 1px !important; margin: 0 !important; padding: 0 !important; opacity: 0; pointer-events: none; }
  .modal.as-page .mobile-select-trigger { width: 100%; height: 50px; display: flex; align-items: center; padding: 0 44px 0 14px; border: 1px solid var(--line); border-radius: 10px; color: white; background: #10231d; font-size: 1rem; font-weight: 600; text-align: left; cursor: pointer; }
  .modal.as-page .mobile-select-trigger::after { content: ""; width: 8px; height: 8px; position: absolute; right: 17px; top: 50%; border-right: 2px solid #c3d1cb; border-bottom: 2px solid #c3d1cb; transform: translateY(-68%) rotate(45deg); }
  .modal.as-page .mobile-select-trigger:focus-visible,
  .modal.as-page .mobile-select-trigger[aria-expanded="true"] { outline: none; border-color: var(--lime); box-shadow: 0 0 0 3px rgba(201,243,29,.08); }
  .modal.as-page .mobile-select-trigger:disabled { opacity: .58; cursor: not-allowed; }
  .mobile-select-menu { position: fixed; z-index: 40; overflow-y: auto; overscroll-behavior: contain; padding: 6px; border: 1px solid rgba(255,255,255,.18); border-radius: 12px; background: #14231e; box-shadow: 0 18px 45px rgba(0,0,0,.58); }
  .mobile-select-option { width: 100%; min-height: 48px; display: flex; align-items: center; padding: 10px 12px; border: 0; border-radius: 8px; color: #e8efeb; background: transparent; font-size: 1rem; font-weight: 600; text-align: left; }
  .mobile-select-option:hover,
  .mobile-select-option:focus-visible { outline: none; background: rgba(255,255,255,.07); }
  .mobile-select-option.selected { color: #07110e; background: var(--lime); }
  .mobile-select-option:disabled { opacity: .45; }
}

.team-max-bid { color: var(--lime); font: 900 .9rem/1 Barlow Condensed; letter-spacing: .04em; white-space: nowrap; }
.settings-tools { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.settings-tools h3 { margin-bottom: 12px; }
.settings-tools-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.settings-tools-grid .btn { min-height: 44px; padding-inline: 12px; font-size: .72rem; }
.settings-tools-grid b { margin-left: 5px; color: var(--lime); }
.danger-btn { color: #ff8e8e !important; }
.official-list-link { display: inline-flex; width: 100%; justify-content: center; text-decoration: none; }
.repair-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding: 26px; }
.repair-options { padding: 0 26px 20px; }.repair-options label { display: block; margin-bottom: 12px; color: #afbeb7; font-size: .72rem; font-weight: 600; }.repair-options input,.repair-options select { width: 100%; height: 44px; margin-top: 7px; padding: 0 12px; border: 1px solid var(--line); border-radius: 9px; color: white; background: #10231d; }
.roster-editor-modal { width: min(1120px, 96vw); }
.editor-toolbar { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding: 18px 26px; border-bottom: 1px solid var(--line); }
.editor-toolbar label { color: #afbeb7; font-size: .72rem; font-weight: 700; }
.editor-toolbar input,.editor-toolbar select,.roster-editor-row input,.roster-editor-row select { width: 100%; height: 42px; margin-top: 6px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; color: white; background: #10231d; }
.roster-editor-list { max-height: 62vh; overflow: auto; padding: 12px 26px 26px; }
.roster-editor-row { display: grid; grid-template-columns: 34px minmax(170px,1fr) minmax(150px,.8fr) 90px auto auto; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.editor-player { display: flex; flex-direction: column; }.editor-player small { color: #8ca098; }.editor-owner-name { display: none; }
.pause-overlay { position: fixed; z-index: 90; inset: 0; display: grid; place-items: center; background: rgba(3,10,8,.84); backdrop-filter: blur(10px); }
.pause-overlay > div { display: grid; justify-items: center; gap: 18px; padding: 42px 56px; border: 1px solid var(--lime); border-radius: 24px; background: #07130f; box-shadow: 0 30px 80px #000; }
.pause-overlay p { margin: 0; color: var(--lime); font: 900 2.2rem Barlow Condensed; letter-spacing: .08em; }.pause-overlay strong { font: 800 3.6rem Barlow Condensed; }

@media (max-width: 700px) {
  .archive-main { padding: 22px 16px 48px; }
  .archive-main h2 { font-size: 2rem; }
  .archive-finder { grid-template-columns: 118px minmax(0,1fr); gap: 8px; margin-bottom: 22px; padding: 12px; }
  .archive-finder select,.archive-finder input { height: 46px; padding-inline: 10px; }
  .archive-card { display: block; padding: 14px; }
  .archive-card-actions { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .archive-card-actions .btn { width: 100%; min-height: 42px; }
  .archive-detail-head { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:12px; }
  .archive-recap { padding:15px; }
  .archive-recap .archive-detail-head .danger-btn { min-height:40px; padding-inline:11px; font-size:.62rem; }
  .archive-recap-stats { grid-template-columns:repeat(3,1fr); gap:6px; }
  .archive-recap-stats span { padding:9px 8px; }
  .archive-recap-stats b { font-size:1.35rem; }
  .archive-download { grid-template-columns:minmax(0,1fr) auto; }
  .archive-download .btn { padding-inline:15px; }
  .archive-subtabs { display:grid; grid-template-columns:1fr 1fr; }
  .archive-subtabs .btn { width:100%; }
  .archive-roster>div { align-items:flex-start; gap:10px; }
  .archive-roster>div>span { text-align:right; }
  .archive-roster ul { grid-template-columns:1fr; gap:0; }
  .archive-roster li { padding:6px 0; border-bottom:1px solid rgba(255,255,255,.045); font-size:.72rem; }
  .archive-roster li:last-child { border-bottom:0; }
  .finish-content { padding: 32px 18px; }
  .finish-actions { grid-template-columns: 1fr; }
  .finish-actions .btn { width: 100%; }
  .league-manager { padding: 18px; }
  
  
  
  .repair-fields,.editor-toolbar { grid-template-columns: 1fr; }
  .roster-editor-list { max-height: none; padding: 8px 18px 28px; }
  .roster-editor-row { grid-template-columns: 88px minmax(0,1fr) minmax(0,1fr); gap: 10px 8px; padding: 16px 0; }
  .roster-editor-row > .r { grid-column: 3; grid-row: 1; align-self: start; justify-self: end; padding-top: 3px; color: var(--lime); font: 800 1rem Barlow Condensed; }
  .roster-editor-row > .editor-player { grid-column: 1 / 3; grid-row: 1; align-items: flex-start; text-align: left; }
  .roster-editor-row > .editor-player strong { font-size: 1rem; }
  .roster-editor-row > .editor-player small { margin-top: 3px; font-size: .72rem; }
  .roster-editor-row > .editor-owner-field { grid-column: 1 / -1; grid-row: 2; margin-top: 0; }
  .roster-editor-row > .editor-owner-field .mobile-select-trigger { height: 48px; }
  .roster-editor-row > .stepper { grid-column: 1; grid-row: 3; width: 100%; padding-top: 18px; }
  .roster-editor-row > .stepper::before { content: "Costo"; position: absolute; top: 0; left: 1px; color: var(--muted); font-size: .62rem; font-weight: 700; }
  .roster-editor-row > .stepper .editor-price { height: 46px; margin: 0; }
  .roster-editor-row > .stepper .stepper-controls { top: calc(50% + 9px); }
  .roster-editor-row > .editor-save { grid-column: 2; grid-row: 3; align-self: end; min-height: 46px; padding-inline: 10px; }
  .roster-editor-row > .editor-release { grid-column: 3; grid-row: 3; align-self: end; min-height: 46px; padding-inline: 10px; }
}

@media (max-height: 680px) and (min-width: 901px) {
  .auction-view { min-height: 560px; }.teams-section { flex-basis: 259px; padding-bottom: 26px; }.teams-grid { max-height: 195px; }.player-card { max-height: 310px; }.auction-stage { padding-block: 5px; }.bid-row { margin-top: 10px; }.auction-actions { margin-top: 8px; }.autosave { margin-top: 5px; }.previous-call { min-height: 210px; padding-block: 13px; }
}

.search-modal { width: min(820px,calc(100% - 32px)); }
.search-content { padding: 22px 26px 26px; }
.search-field span { display: block; margin-bottom: 8px; color: var(--muted); font-size: .64rem; font-weight: 700; letter-spacing: .12em; }
.search-field input { width: 100%; height: 54px; padding: 0 16px; border: 1px solid var(--line); border-radius: 11px; outline: none; color: white; background: #10231d; font-size: 1rem; }
.search-field input:focus { border-color: var(--lime); box-shadow: 0 0 0 3px rgba(201,243,29,.08); }
.search-summary { display: flex; justify-content: space-between; gap: 20px; margin: 14px 2px 10px; color: var(--muted); font-size: .62rem; }
.search-summary span { color: var(--lime); font-weight: 800; }.search-summary small { text-align: right; }
.search-results { max-height: min(470px,55vh); overflow: auto; display: grid; gap: 6px; padding-right: 4px; }
.search-result { width: 100%; min-height: 58px; display: grid; grid-template-columns: 54px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 9px; color: white; background: #0f201a; text-align: left; }
.search-result:hover,.search-result.current { border-color: rgba(201,243,29,.55); background: rgba(201,243,29,.08); }
.search-result-role { display: grid; place-items: center; min-height: 38px; border-radius: 7px; color: #06110c; background: var(--lime); font: 900 1rem Barlow Condensed; }
.search-result-copy { min-width: 0; }.search-result-copy strong,.search-result-copy span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.search-result-copy strong { font: italic 800 1.15rem Barlow Condensed; text-transform: uppercase; }.search-result-copy span { margin-top: 3px; color: var(--muted); font-size: .62rem; }
.search-result-meta { color: #cbd6d1; font-size: .62rem; text-align: right; }.search-result-meta b { display: block; color: var(--lime); font: 900 1.05rem Barlow Condensed; }
.search-empty { padding: 35px 10px; color: var(--muted); text-align: center; font-size: .8rem; }

@media (max-width: 520px) {
  .search-content { padding: 18px 14px; }.search-summary { display: block; }.search-summary small { display: block; margin-top: 5px; text-align: left; }.search-result { grid-template-columns: 46px minmax(0,1fr); }.search-result-meta { grid-column: 2; text-align: left; }.search-result-meta b { display: inline; margin-right: 8px; }
}

/* Card dell'archivio: numeri stretti a sinistra, comandi a destra, sulla stessa riga.
   I comandi riusano le classi del riepilogo, così le due schermate non si scollano. */
.archive-card-riga { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-top: 16px; }
.archive-card-riga .archive-card-stats { margin: 0; grid-template-columns: repeat(2, minmax(0, 150px)); }
.archive-card-riga .archive-recap-actions { margin-top: 0; }
@media (max-width: 760px) {
  .archive-card-riga { flex-direction: column; align-items: stretch; }
  .archive-card-riga .archive-card-stats { grid-template-columns: 1fr 1fr; }
  .archive-card-riga .archive-recap-actions .btn { flex: 1 1 auto; }
}

/* Striscia in fondo ai cancelli: il caricamento a sinistra, l'uscita a destra. */
.modal .modal-actions-split { justify-content: space-between; }

/* Le cifre a larghezza variabile facevano stringere la cella passando da 0/3 a 1/3:
   la riga andava a capo diversamente e il numero dei crediti si alzava. */
.team-card { font-variant-numeric: tabular-nums; }
.role-counts > span { white-space: nowrap; }

/* Guida all'uso dell'asta */
#guidaDialog { width: min(820px, calc(100% - 32px)); }
.guida-corpo { max-height: min(64vh, 620px); overflow: auto; padding-right: 6px; color: #c3d1cb; font-size: .84rem; line-height: 1.6; }
.guida-corpo h3 { margin: 22px 0 8px; color: var(--lime); font: italic 800 1.25rem "Barlow Condensed", "Arial Narrow", sans-serif; text-transform: uppercase; letter-spacing: .02em; }
.guida-corpo p { margin: 0 0 10px; max-width: 68ch; }
.guida-corpo b { color: var(--text); font-weight: 700; }
.guida-passi, .guida-tasti, .guida-glossario { margin: 0; padding-left: 20px; display: grid; gap: 7px; max-width: 72ch; }
.guida-tasti, .guida-glossario { list-style: none; padding-left: 0; }
.guida-tasti li, .guida-glossario li { padding-left: 14px; border-left: 2px solid rgba(201,243,29,.35); }
.guida-nota { margin-top: 12px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.025); }

/* Cancelli: si sceglie con un clic, si prosegue con Avanti. La X chiude. */
.modal.compact { position: relative; }
.modal-x { position: absolute; top: 14px; right: 16px; width: 34px; height: 34px; display: grid; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--muted); font-size: 1.2rem; line-height: 1; cursor: pointer; }
.modal-x:hover { color: var(--text); background: rgba(255,255,255,.07); }
.download-row.scelta { border-color: var(--lime); background: rgba(201,243,29,.10); }
.download-row.scelta strong { color: var(--lime); }

.etichetta-facoltativa { color: var(--muted); font-size: .58rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }

/* La ricerca delle leghe usa la barra dell'archivio, senza la colonna «Cerca in». */
.archive-finder.finder-solo { grid-template-columns: minmax(0, 1fr); }

/* Ritmo verticale dei cancelli: un solo passo, 16px, fra tutti i blocchi.
   Il titolo ha line-height 1 perché il carattere grande si porta dietro
   spazio invisibile sotto le lettere e falsava lo stacco sotto. */
#gateListoneDialog .compact-title, #gateOrigineDialog .compact-title { margin: 6px 0 16px; line-height: 1; }
.gate-intro { margin: 0 0 16px; padding-inline: 0; }
#gateList, #gateOrigineList { margin-top: 16px; margin-bottom: 0; }
#gateListoneDialog .modal-actions, #gateOrigineDialog .modal-actions { margin-top: 16px; }
#gateStatus:empty, #gateOrigineStatus:empty { display: none; }

/* Istruzioni di passaggio: compaiono solo quando l'utente viene portato qui
   dall'app e non sa cosa deve fare. */
.istruzioni { max-width: 1120px; margin: 22px auto 0; padding: 18px 20px; border: 1px solid rgba(201,243,29,.30); border-left: 3px solid var(--lime); border-radius: 12px; background: rgba(201,243,29,.05); }
.istruzioni h3 { margin: 0 0 10px; color: var(--lime); font: italic 800 1.25rem "Barlow Condensed", "Arial Narrow", sans-serif; text-transform: uppercase; }
.istruzioni ol { margin: 0; padding-left: 20px; display: grid; gap: 7px; color: #c3d1cb; font-size: .84rem; line-height: 1.55; }
.istruzioni b { color: var(--text); font-weight: 700; }
.istruzioni p { margin: 12px 0 0; color: var(--muted); font-size: .78rem; }

.istruzioni .istruzioni-via { margin: 0 0 12px; color: var(--text); font-size: .88rem; }

/* Colonna di destra: sopra la scheda dell'ultima chiamata resta uno spazio,
   perché la card del giocatore è più alta. Lì dice che asta stai giocando. */
/* Due riquadri impilati con lo stesso bordino viola: sopra quello corto che
   dice che asta stai giocando, sotto quello lungo dell'ultima chiamata. */
.stage-side { min-width: 0; display: grid; align-content: center; gap: 10px; }
.stage-side .previous-call { margin: 0; align-self: stretch; }
.repair-badge {
  --previous-role: var(--p);
  display: block;
  padding: 14px 18px;
  border: 1px solid var(--line);
  border-radius: 15px 5px 15px 5px;
  background: linear-gradient(145deg, color-mix(in srgb, var(--previous-role) 13%, var(--panel)), var(--panel));
  box-shadow: inset 3px 0 var(--previous-role);
  color: #b6a8ef;
  font-size: .57rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

/* Le aste in corso sono un elenco a sé: da qui si riprende, dai tasti sotto si comincia. */
.aste-in-corso { max-width: 620px; margin: 0 auto 26px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 15px; background: rgba(13,27,23,.72); text-align: left; }
.aste-in-corso .eyebrow { margin: 0 0 12px; }
.aste-in-corso .welcome-auction-list { width: 100%; margin: 0; }

/* Questi due paragrafi ora restano vuoti quasi sempre: da vuoti non devono
   occupare spazio, altrimenti lasciano righe bianche in mezzo alla home. */
#authStatus:empty, #savedAuctionInfo:empty { display: none; }

/* Telefono: le squadre salgono fra la card del giocatore e l'offerta, perché
   sceglierle in fondo alla pagina costringeva a due viaggi per ogni giocatore.
   `display: contents` scioglie il palco a tre colonne, così i suoi pezzi e la
   sezione squadre diventano fratelli e si possono riordinare. */
@media (max-width: 900px) {
  .auction-stage { display: contents; }
  .player-card, .bid-panel, .stage-side { width: min(500px, calc(100% - 40px)); margin: 0 auto; }
  .player-card { order: 1; margin-top: 26px; height: auto; max-height: 380px; }
  .teams-section { order: 2; margin-top: 26px; padding-bottom: 0; }
  .bid-panel { order: 3; margin-top: 26px; }
  .stage-side { order: 4; margin-top: 26px; margin-bottom: 30px; }
  /* La squadra scelta si vede già accesa nella griglia: il titolo era un doppione. */
  .bid-panel > .eyebrow, #selectedTeamDisplay { display: none; }
  .bid-panel > .bid-row { margin-top: 0; }
}
@media (max-width: 520px) {
  .player-card, .bid-panel, .stage-side { width: calc(100% - 24px); }
}

/* Da «Indietro» sta a sinistra, da «Continua» è l'azione finale e va a destra. */
.page-bar-actions .btn.continua { order: 1; }
