:root {
  --bg: #09110d;
  --surface: #101b15;
  --surface-2: #16241c;
  --surface-3: #1c2d23;
  --line: rgba(255, 255, 255, 0.09);
  --text: #f4f8f5;
  --muted: #93a69a;
  --accent: #b8f23d;
  --accent-strong: #98d51d;
  --danger: #ff6b6b;
  --radius: 18px;
  --shadow: 0 18px 50px rgba(0, 0, 0, 0.26);
  color-scheme: dark;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; overflow-x: hidden; background: radial-gradient(circle at 90% 0%, rgba(112, 177, 41, .14), transparent 30rem), var(--bg); color: var(--text); line-height: 1.5; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, select { cursor: pointer; }
.shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.site-header { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--line); background: rgba(9, 17, 13, .88); backdrop-filter: blur(18px); }
.header-inner { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 11px; flex: 0 0 auto; }
.brand-logo { display: block; width: 48px; height: 48px; flex: 0 0 auto; border-radius: 12px; object-fit: cover; }
.brand strong, .brand small { display: block; line-height: 1.1; }
.brand strong { font-size: .98rem; letter-spacing: -.02em; }
.brand small { color: var(--muted); margin-top: 4px; font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.main-nav { display: flex; align-items: center; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.main-nav a { padding: 10px 13px; border-radius: 10px; color: var(--muted); font-size: .9rem; font-weight: 700; white-space: nowrap; transition: .2s ease; }
.main-nav a:hover, .main-nav a.active { color: var(--text); background: var(--surface-3); }
.main-nav a.active { box-shadow: inset 0 -2px var(--accent); }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-2); color: var(--text); }
.menu-toggle span { display: block; width: 100%; height: 2px; margin: 4px 0; border-radius: 2px; background: currentColor; transition: transform .18s ease, opacity .18s ease; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.nav-logout { margin: 0; display: flex; }.nav-logout button { padding: 10px 13px; border: 0; border-radius: 10px; background: transparent; color: var(--muted); font-size: .9rem; font-weight: 700; cursor: pointer; }.nav-logout button:hover { color: var(--text); background: var(--surface-3); }

.page-content { min-height: calc(100vh - 150px); padding-block: 54px 80px; }
.hero { min-height: 430px; padding: 64px; border: 1px solid var(--line); border-radius: 30px; background: linear-gradient(120deg, rgba(26, 47, 34, .98), rgba(12, 24, 17, .98)); box-shadow: var(--shadow); display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); align-items: center; gap: 40px; overflow: hidden; position: relative; }
.hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 49.8%, rgba(255,255,255,.035) 50%, transparent 50.2%), linear-gradient(0deg, transparent 49.8%, rgba(255,255,255,.035) 50%, transparent 50.2%); background-size: 90px 90px; mask-image: linear-gradient(to left, #000, transparent 75%); pointer-events: none; }
.eyebrow { display: block; color: var(--accent); font-size: .72rem; font-weight: 900; letter-spacing: .16em; margin-bottom: 10px; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: clamp(2.2rem, 5vw, 4.7rem); line-height: .98; letter-spacing: -.055em; max-width: 850px; margin-bottom: 20px; }
h2 { font-size: clamp(1.5rem, 3vw, 2.2rem); line-height: 1.1; letter-spacing: -.035em; }
h3 { letter-spacing: -.025em; }
.hero p, .page-heading p { color: var(--muted); font-size: 1.05rem; max-width: 690px; }
.hero-search { margin-top: 30px; padding: 7px; background: rgba(6, 13, 9, .72); border: 1px solid var(--line); border-radius: 15px; display: flex; max-width: 690px; }
.hero-search input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--text); padding: 12px 16px; outline: none; }
.hero-orbit { position: relative; display: grid; place-items: center; min-height: 260px; }
.pitch-ring { width: 210px; aspect-ratio: 1; border: 1px solid rgba(184, 242, 61, .38); border-radius: 50%; display: grid; place-items: center; box-shadow: 0 0 80px rgba(184, 242, 61, .12), inset 0 0 35px rgba(184, 242, 61, .08); }
.pitch-ring::before, .pitch-ring::after { content: ""; position: absolute; background: rgba(184, 242, 61, .3); }
.pitch-ring::before { width: 1px; height: 210px; }.pitch-ring::after { height: 1px; width: 210px; }
.pitch-ring span { z-index: 1; display: grid; place-items: center; width: 84px; height: 84px; font-size: 2.6rem; border-radius: 50%; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow); }
.orbit-score { position: absolute; z-index: 2; display: grid; place-items: center; width: 54px; height: 54px; border-radius: 17px; font-weight: 900; box-shadow: var(--shadow); }
.orbit-score:first-child { top: 5px; right: 18px; transform: rotate(8deg); }.orbit-score:last-child { bottom: 6px; left: 18px; transform: rotate(-7deg); }

.button { min-height: 46px; border: 1px solid transparent; border-radius: 11px; padding: 11px 18px; display: inline-flex; align-items: center; justify-content: center; font-weight: 850; transition: transform .15s ease, background .15s ease; }
.button:hover { transform: translateY(-1px); }.button.primary { background: var(--accent); color: #111b08; }.button.primary:hover { background: #c8fb5c; }.button.ghost { border-color: var(--line); color: var(--text); background: var(--surface-2); }
.button.danger { border-color: rgba(255,107,107,.32); color: #ffc1c1; background: rgba(255,107,107,.1); }
.message-stack { display: grid; gap: 8px; margin-bottom: 20px; }.message { padding: 12px 15px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-2); }.message.success { border-color: rgba(101,223,141,.35); }.message.error { border-color: rgba(255,107,107,.35); }.message.info { border-color: rgba(108,182,255,.35); }

.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 18px; }
.metric-card { padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.metric-card span, .metric-card small { display: block; color: var(--muted); }.metric-card span { font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }.metric-card strong { display: block; margin: 7px 0 3px; font-size: 2rem; line-height: 1; letter-spacing: -.05em; }.metric-card small { font-size: .78rem; }
.section-block { margin-top: 56px; }.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }.section-heading h2 { margin-bottom: 0; }.count-pill, .position-pill { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); background: var(--surface-2); border-radius: 999px; color: var(--muted); font-size: .76rem; font-weight: 800; padding: 5px 10px; }
.feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }.feature-card { min-height: 235px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); display: flex; flex-direction: column; transition: .2s ease; }.feature-card:hover { transform: translateY(-3px); border-color: rgba(184,242,61,.35); background: var(--surface-2); }.feature-card.accent { background: linear-gradient(145deg, #263c1b, #132318); }.feature-icon { width: 42px; height: 42px; display: grid; place-items: center; background: var(--surface-3); border-radius: 12px; color: var(--accent); font-size: 1.3rem; }.feature-card h3 { margin: 34px 0 8px; }.feature-card p { color: var(--muted); font-size: .9rem; flex: 1; }.card-link { color: var(--accent); font-size: .84rem; font-weight: 850; }

.page-heading { margin-bottom: 30px; }.page-heading h1 { font-size: clamp(2.2rem, 6vw, 4rem); margin-bottom: 14px; }.search-panel, .filter-panel, .toolbar { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); padding: 20px; }.search-panel > label, .field label { display: block; color: var(--muted); font-weight: 750; font-size: .8rem; margin-bottom: 7px; }.input-action { display: flex; gap: 10px; }.input-action input { flex: 1; }
input, select { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; background: #0b1510; color: var(--text); outline: none; }.field input:focus, .field select:focus, .input-action input:focus { border-color: rgba(184,242,61,.65); box-shadow: 0 0 0 3px rgba(184,242,61,.08); }.form-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }.field.span-2 { grid-column: span 2; }.form-actions { display: flex; gap: 10px; margin-top: 18px; }.form-error { color: #ffc1c1; background: rgba(255,107,107,.1); border: 1px solid rgba(255,107,107,.25); border-radius: 10px; padding: 11px 13px; margin: 15px 0 0; }
.field small { display: block; margin-top: 5px; color: var(--muted); font-size: .72rem; }.field-error { display: block; margin-top: 5px; color: #ff9f9f; font-size: .76rem; }
.player-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }.player-card { min-width: 0; display: flex; align-items: center; gap: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); transition: .18s ease; }.player-card:hover { border-color: rgba(184,242,61,.4); background: var(--surface-2); }.avatar { flex: 0 0 auto; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: linear-gradient(145deg, #32452b, #1b2a20); color: var(--accent); font-weight: 900; }.avatar.large { width: 72px; height: 72px; border-radius: 22px; font-size: 1.8rem; }.player-card-main { flex: 1; min-width: 0; }.player-card-main strong, .player-card-main small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.player-card-main small { color: var(--muted); margin-top: 2px; }.arrow { color: var(--accent); font-size: 1.7rem; }
.player-photo { position: relative; flex: 0 0 auto; display: grid; place-items: center; width: 62px; height: 62px; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(145deg, #32452b, #1b2a20); color: var(--accent); font-size: 1.35rem; font-weight: 900; }.player-photo.large { width: 88px; height: 88px; border-radius: 24px; font-size: 2rem; }.player-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; background: var(--surface-2); }.photo-fallback { display: grid; place-items: center; width: 100%; height: 100%; }
.empty-state { border: 1px dashed rgba(255,255,255,.15); border-radius: var(--radius); padding: 60px 20px; text-align: center; color: var(--muted); }.empty-state > span { display: block; color: var(--accent); font-size: 2.5rem; font-weight: 900; }.empty-state h1, .empty-state h3 { color: var(--text); }.error-state { margin-block: 60px; }

.table-shell { width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); -webkit-overflow-scrolling: touch; }table { width: 100%; border-collapse: collapse; font-size: .88rem; white-space: nowrap; }th, td { padding: 13px 15px; text-align: left; border-bottom: 1px solid var(--line); }th { color: var(--muted); background: #0d1812; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; position: sticky; top: 0; }tbody tr:last-child td { border-bottom: 0; }tbody tr:hover { background: rgba(255,255,255,.025); }.table-player { font-weight: 850; }.table-player:hover { color: var(--accent); }.rank-number { color: var(--muted); font-weight: 900; }.wide-table { min-width: 1420px; }
.score-chip { display: inline-flex; min-width: 49px; justify-content: center; border-radius: 999px; padding: 4px 8px; color: #09110d; font-weight: 900; }.score-blue { background: #6cb6ff !important; color: #07131e !important; }.score-green { background: #65df8d !important; color: #06180d !important; }.score-yellow { background: #ffe169 !important; color: #201a00 !important; }.score-orange { background: #ffac5f !important; color: #251000 !important; }.score-red { background: #ff7b7b !important; color: #250606 !important; }

.player-hero { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 28px; border: 1px solid var(--line); border-radius: 24px; background: linear-gradient(130deg, var(--surface-2), var(--surface)); }.player-identity { display: flex; align-items: center; gap: 18px; }.player-identity h1 { font-size: clamp(2rem, 5vw, 3.6rem); margin-bottom: 6px; }.player-identity p { color: var(--muted); margin: 0; }.headline-score { text-align: right; }.headline-score span, .headline-score small { color: var(--muted); display: block; }.headline-score strong { display: block; font-size: 3rem; line-height: 1; margin: 6px 0; color: #101a08; padding: 8px 13px; border-radius: 14px; }.toolbar { margin-top: 14px; display: flex; align-items: end; justify-content: space-between; gap: 16px; padding: 14px; }.field.compact { width: min(360px, 100%); }.segmented { display: inline-flex; padding: 4px; border: 1px solid var(--line); border-radius: 11px; background: #0b1510; }.segmented button, .segmented a { min-height: 40px; padding: 8px 14px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); font-weight: 850; display: inline-flex; align-items: center; justify-content: center; }.segmented button.active, .segmented a.active { background: var(--surface-3); color: var(--text); box-shadow: inset 0 -2px var(--accent); }.player-stats { margin-top: 14px; }.detail-groups { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 14px; }.detail-card, .comparison-card { padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }.detail-card h3 { color: var(--accent); font-size: .9rem; }.detail-card dl, .comparison-card dl { margin: 0; }.detail-card dl div, .comparison-card dl div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); }.detail-card dl div:last-child, .comparison-card dl div:last-child { border: 0; }.detail-card dt, .comparison-card dt { color: var(--muted); }.detail-card dd, .comparison-card dd { margin: 0; font-weight: 850; text-align: right; }

.rankings-toolbar { display: flex; justify-content: space-between; align-items: end; }.compare-selects { grid-template-columns: repeat(2, 1fr); }.comparison-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }.comparison-title { display: flex; align-items: center; gap: 12px; margin-bottom: 15px; }.comparison-title h3 { margin: 0 0 3px; }.comparison-title p { color: var(--muted); margin: 0; font-size: .82rem; }.legend-trophy { color: var(--muted); font-size: .82rem; }.recommender-mode { margin-bottom: 18px; }.recommendation-result { margin-top: 20px; padding: 24px; border-radius: 22px; border: 1px solid var(--line); background: var(--surface); }.recommendation-result.positive { border-color: rgba(101,223,141,.35); background: linear-gradient(145deg, rgba(32,72,45,.75), var(--surface)); }.recommendation-result.negative { border-color: rgba(255,107,107,.3); background: linear-gradient(145deg, rgba(76,34,34,.65), var(--surface)); }.recommendation-verdict { display: flex; align-items: center; gap: 15px; }.recommendation-verdict > span { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 16px; background: var(--surface-3); color: var(--accent); font-size: 2rem; font-weight: 900; }.negative .recommendation-verdict > span { color: #ff8d8d; }.recommendation-verdict div { flex: 1; }.recommendation-verdict h2, .recommendation-verdict p { margin-bottom: 4px; }.recommendation-verdict p, .recommendation-verdict small { color: var(--muted); }.recommendation-verdict > strong { font-size: 2.6rem; }.recommendation-verdict > strong small { font-size: .8rem; }.result-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 20px; }.result-grid > div { padding: 15px; border-radius: 12px; background: rgba(0,0,0,.15); }.result-grid span, .result-grid strong { display: block; }.result-grid span { color: var(--muted); font-size: .75rem; }.result-grid strong { margin-top: 5px; }

.directory-search { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 12px; }.advanced-filters { margin-top: 16px; border-top: 1px solid var(--line); padding-top: 14px; }.advanced-filters summary { width: fit-content; color: var(--accent); font-size: .84rem; font-weight: 850; cursor: pointer; }.advanced-filters[open] summary { margin-bottom: 14px; }.secondary-actions { margin-top: 12px; }.directory-section { margin-top: 34px; }.directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }.directory-card { display: flex; min-width: 0; min-height: 245px; flex-direction: column; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); transition: .18s ease; }.directory-card:hover { transform: translateY(-2px); border-color: rgba(184,242,61,.3); background: var(--surface-2); }.directory-player { display: flex; gap: 11px; align-items: center; min-width: 0; }.directory-player > div { min-width: 0; }.directory-player h3, .directory-player p { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }.directory-player h3 { margin: 0 0 3px; font-size: 1rem; }.directory-player p { margin: 0; color: var(--muted); font-size: .76rem; }.directory-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 20px 0; }.directory-metrics > div { min-width: 0; padding: 9px; border-radius: 10px; background: rgba(0,0,0,.16); }.directory-metrics span, .directory-metrics strong { display: block; }.directory-metrics span { color: var(--muted); font-size: .65rem; text-transform: uppercase; font-weight: 800; }.directory-metrics strong { margin-top: 4px; }.directory-metrics .score-chip { width: fit-content; }.directory-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: auto; }.directory-actions .button { padding-inline: 9px; font-size: .8rem; }.button.detail-link { border-color: rgba(184,242,61,.28); background: rgba(184,242,61,.08); color: var(--accent); }.pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; margin-top: 22px; color: var(--muted); text-align: center; }.pagination a:last-child { justify-self: end; }.pagination a:first-child { justify-self: start; }

.auth-card { width: min(470px, 100%); margin: 40px auto; padding: 30px; border: 1px solid var(--line); border-radius: 24px; background: var(--surface); box-shadow: var(--shadow); }.auth-card h1 { font-size: 2.8rem; }.auth-card p { color: var(--muted); }.auth-card .field { margin-top: 14px; }.auth-card .button { width: 100%; margin-top: 20px; }
.admin-heading, .job-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; }.admin-counters { display: flex; gap: 9px; }.admin-counters span { min-width: 105px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); background: var(--surface); text-align: center; font-size: .72rem; }.admin-counters strong { display: block; color: var(--text); font-size: 1.5rem; }.admin-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, .7fr); gap: 14px; align-items: start; }.admin-side-card { padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, #263c1b, #132318); }.admin-side-card h2 { margin-top: 25px; }.admin-side-card ol { padding-left: 20px; color: var(--muted); }.admin-side-card li + li { margin-top: 9px; }.admin-side-card p { color: var(--muted); margin: 18px 0 0; }.admin-side-card code { color: var(--accent); }.admin-warning { margin-top: 16px; padding: 11px 13px; border-radius: 10px; background: rgba(255,225,105,.08); color: #f3dfa0; font-size: .8rem; }.dataset-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }.dataset-card { min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }.dataset-card strong, .dataset-card span { display: block; overflow-wrap: anywhere; }.dataset-card strong { font-size: .83rem; }.dataset-card span { margin-top: 5px; color: var(--muted); font-size: .72rem; }
.fantasy-import input[type="file"], .dataset-transfer input[type="file"] { width: 100%; padding: 12px; border: 1px dashed var(--line); border-radius: 12px; background: var(--surface-2); color: var(--muted); }.transfer-export-card .button { width: 100%; margin-top: 20px; }.fantasy-status p + p { margin-top: 8px; }.fantasy-squad-panel { margin-top: 24px; }.squad-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 12px; }.squad-summary > div { padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }.squad-summary span, .squad-summary strong { display: block; }.squad-summary span { color: var(--muted); font-size: .75rem; }.squad-summary strong { margin-top: 4px; }.fantasy-player-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }.fantasy-player-list article { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }.fantasy-player-list article > div:last-child { text-align: right; }.fantasy-player-list strong, .fantasy-player-list span { display: block; }.fantasy-player-list span { margin-top: 3px; color: var(--muted); font-size: .72rem; }.fantasy-player-list .card-link { display: inline-block; margin-top: 7px; font-size: .72rem; }
.squad-dashboard { display: grid; grid-template-columns: minmax(220px, .75fr) minmax(0, 2fr); gap: 12px; margin-bottom: 14px; }.squad-balance { position: relative; overflow: hidden; min-height: 135px; padding: 22px; border: 1px solid rgba(184,242,61,.25); border-radius: 18px; background: linear-gradient(135deg, #29451d, #132319); }.squad-balance::after { content: "€"; position: absolute; right: 16px; bottom: -28px; color: rgba(184,242,61,.08); font-size: 7rem; font-weight: 950; }.squad-balance span, .squad-balance small, .squad-balance strong { display: block; position: relative; z-index: 1; }.squad-balance span, .squad-balance small { color: var(--muted); }.squad-balance strong { margin: 8px 0; color: var(--accent); font-size: 2rem; }.squad-position-counts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }.position-count { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg, var(--surface-2), var(--surface)); }.position-count span { color: var(--accent); font-size: .68rem; font-weight: 950; letter-spacing: .08em; }.position-count strong, .position-count small { display: block; }.position-count strong { margin: 7px 0 2px; font-size: 1.65rem; }.position-count small { overflow: hidden; color: var(--muted); font-size: .7rem; text-overflow: ellipsis; }.fantasy-player-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }.fantasy-player-card { display: flex; min-width: 0; min-height: 210px; flex-direction: column; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg, var(--surface-2), var(--surface)); transition: transform .18s ease, border-color .18s ease; }.fantasy-player-card:hover { transform: translateY(-2px); border-color: rgba(184,242,61,.28); }.fantasy-player-card.is-lined-up { box-shadow: inset 3px 0 var(--accent); }.fantasy-player-card header { display: flex; align-items: center; gap: 10px; min-width: 0; }.fantasy-player-card header > div { min-width: 0; }.fantasy-player-card h3, .fantasy-player-card p { overflow: hidden; margin: 0; white-space: nowrap; text-overflow: ellipsis; }.fantasy-player-card h3 { font-size: .95rem; }.fantasy-player-card p { margin-top: 3px; color: var(--muted); font-size: .7rem; }.squad-position { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 10px; background: rgba(184,242,61,.12); color: var(--accent); font-weight: 950; }.squad-player-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 15px 0; }.squad-player-metrics div { min-width: 0; padding: 8px; border-radius: 9px; background: rgba(0,0,0,.18); }.squad-player-metrics span, .squad-player-metrics strong { display: block; }.squad-player-metrics span { color: var(--muted); font-size: .61rem; text-transform: uppercase; }.squad-player-metrics strong { margin-top: 3px; overflow: hidden; font-size: .78rem; text-overflow: ellipsis; }.fantasy-player-card .button { width: 100%; margin-top: auto; padding: 9px; font-size: .75rem; }.unmatched-player { margin-top: auto; padding: 9px; color: var(--muted); font-size: .7rem; text-align: center; }.formation-badge { padding: 9px 14px; border: 1px solid rgba(184,242,61,.3); border-radius: 12px; background: rgba(184,242,61,.1); color: var(--accent); font-size: 1.1rem; font-weight: 950; }.formation-impact { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }.formation-impact > span { padding: 8px 11px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--muted); font-size: .74rem; }.formation-impact strong { color: var(--text); }.formation-impact .need-covered { border-color: rgba(101,223,141,.3); color: #86e9a6; background: rgba(101,223,141,.08); }.fantasy-pitch { position: relative; display: flex; min-height: 650px; flex-direction: column; justify-content: space-around; gap: 18px; overflow: hidden; padding: 34px 20px; border: 2px solid rgba(255,255,255,.13); border-radius: 24px; background: linear-gradient(90deg, rgba(255,255,255,.025) 50%, transparent 50%), repeating-linear-gradient(0deg, #1a512d 0, #1a512d 82px, #174827 82px, #174827 164px); background-size: 100% 100%, 100% auto; box-shadow: inset 0 0 0 4px rgba(255,255,255,.035); }.fantasy-pitch::before { content: ""; position: absolute; inset: 50% auto auto 50%; width: 120px; height: 120px; border: 2px solid rgba(255,255,255,.16); border-radius: 50%; transform: translate(-50%,-50%); }.fantasy-pitch::after { content: ""; position: absolute; top: 50%; left: 0; width: 100%; border-top: 2px solid rgba(255,255,255,.16); }.pitch-line { position: relative; z-index: 1; display: flex; justify-content: space-evenly; gap: 10px; }.pitch-player { width: min(145px, 18vw); min-width: 90px; padding: 9px 8px; border: 1px solid rgba(255,255,255,.16); border-radius: 13px; background: rgba(7,21,12,.88); box-shadow: 0 8px 18px rgba(0,0,0,.2); text-align: center; }.pitch-player strong, .pitch-player small { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }.pitch-player strong { margin: 5px 0 2px; font-size: .76rem; }.pitch-player small { color: var(--muted); font-size: .61rem; }.pitch-shirt { width: 29px; height: 29px; display: grid; place-items: center; margin: -22px auto 0; border-radius: 9px 9px 12px 12px; background: var(--surface-3); color: var(--accent); font-size: .72rem; font-weight: 950; }.pitch-player.is-candidate { border-color: var(--accent); background: rgba(38,67,27,.94); box-shadow: 0 0 0 3px rgba(184,242,61,.12), 0 8px 18px rgba(0,0,0,.2); }.pitch-player.is-candidate .pitch-shirt { background: var(--accent); color: #101a08; }.pitch-player.is-missing { border-style: dashed; opacity: .72; }.pitch-player.is-missing .pitch-shirt { background: rgba(255,123,123,.18); color: #ff9c9c; }
.job-status { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; padding: 5px 9px; font-size: .72rem; font-weight: 850; }.job-status.large { padding: 9px 14px; font-size: .86rem; }.status-queued { color: #ffe169; background: rgba(255,225,105,.08); }.status-running { color: #6cb6ff; background: rgba(108,182,255,.1); }.status-succeeded { color: #65df8d; background: rgba(101,223,141,.1); }.status-failed, .status-cancelled { color: #ff8d8d; background: rgba(255,107,107,.1); }.back-link { display: block; margin-bottom: 18px; color: var(--muted); font-size: .82rem; }.back-link:hover { color: var(--accent); }.job-metadata { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }.job-metadata > div { padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }.job-metadata span, .job-metadata strong { display: block; }.job-metadata span { color: var(--muted); font-size: .7rem; text-transform: uppercase; }.job-metadata strong { margin-top: 5px; font-size: .85rem; }.command-preview { margin-top: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: #07100b; }.command-preview span, .command-preview code { display: block; }.command-preview span { color: var(--muted); font-size: .7rem; text-transform: uppercase; }.command-preview code { margin-top: 7px; color: var(--accent); overflow-wrap: anywhere; }.job-log { min-height: 320px; max-height: 620px; margin: 0; padding: 18px; overflow: auto; border: 1px solid var(--line); border-radius: 14px; background: #050a07; color: #dce8df; font: .78rem/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }.refresh-note { color: var(--muted); font-size: .74rem; }

.site-footer { padding-block: 24px 36px; border-top: 1px solid var(--line); color: var(--muted); font-size: .75rem; display: flex; justify-content: space-between; gap: 20px; }

/* Estado actual, mercado y carga global. */
.player-current-grid { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); gap: 14px; margin-top: 14px; }
.player-status-card, .player-news-preview { padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.player-status-card { border-left: 4px solid #65df8d; }.player-status-card h2, .player-news-preview h2 { margin: 0; font-size: 1.3rem; }.player-status-card p { margin: 8px 0 0; color: var(--muted); }.player-status-card small { display: block; margin-top: 10px; color: #ffe169; }
.status-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.status-card-heading > a { color: var(--accent); font-size: .76rem; font-weight: 850; white-space: nowrap; }.status-card-heading i, .quick-player-status > i { width: 10px; height: 10px; flex: 0 0 auto; border-radius: 50%; background: #65df8d; box-shadow: 0 0 0 5px rgba(101,223,141,.1); }
.status-card-doubtful { border-left-color: #ffe169; }.status-card-doubtful .status-card-heading i, .status-card-doubtful > i { background: #ffe169; box-shadow: 0 0 0 5px rgba(255,225,105,.1); }.status-card-injured, .status-card-suspended, .status-card-out_of_league { border-left-color: #ff7b7b; }.status-card-injured .status-card-heading i, .status-card-suspended .status-card-heading i, .status-card-out_of_league .status-card-heading i, .status-card-injured > i, .status-card-suspended > i, .status-card-out_of_league > i { background: #ff7b7b; box-shadow: 0 0 0 5px rgba(255,123,123,.1); }
.status-card-unknown { border-left-color: #8a9890; }.status-card-unknown .status-card-heading i, .status-card-unknown > i { background: #8a9890; box-shadow: 0 0 0 5px rgba(138,152,144,.1); }
.roster-player-photo { width: 46px; height: 46px; border-radius: 13px; }
.injury-cross { display: block; width: 32px; height: 32px; flex: 0 0 32px; filter: drop-shadow(0 0 5px rgba(255,49,49,.22)); }
.compact-news-list { display: grid; gap: 7px; margin-top: 12px; }.compact-news-list a { padding: 10px 12px; border-radius: 10px; background: var(--surface-2); }.compact-news-list span, .compact-news-list strong { display: block; }.compact-news-list span { color: var(--accent); font-size: .62rem; font-weight: 850; text-transform: uppercase; }.compact-news-list strong { margin-top: 3px; font-size: .82rem; }.empty-inline { margin: 12px 0 0; color: var(--muted); font-size: .8rem; }
.quick-player-status { display: flex; align-items: center; gap: 11px; margin-top: 14px; padding: 10px 12px; border-left: 3px solid #65df8d; border-radius: 9px; background: var(--surface); }.quick-player-status span, .quick-player-status small { display: block; }.quick-player-status span { font-size: .74rem; font-weight: 850; }.quick-player-status small { margin-top: 2px; color: var(--muted); font-size: .66rem; }
.market-filters { display: flex; gap: 7px; margin-bottom: 20px; overflow-x: auto; }.market-filters a { padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .75rem; font-weight: 800; white-space: nowrap; }.market-filters a.active { border-color: rgba(184,242,61,.4); background: rgba(184,242,61,.1); color: var(--accent); }
.news-list { display: grid; gap: 12px; }.news-card { padding: 22px; border: 1px solid var(--line); border-left: 4px solid #6cb6ff; border-radius: var(--radius); background: var(--surface); }.news-card.news-rumour { border-left-color: #ffe169; }.news-card.news-departure { border-left-color: #ff7b7b; }.news-card.news-transfer, .news-card.news-team_change { border-left-color: var(--accent); }.news-card h2 { margin: 10px 0 8px; font-size: 1.3rem; }.news-card > p:not(.transfer-route) { margin-bottom: 8px; color: var(--muted); }.news-meta { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .67rem; text-transform: uppercase; }.news-meta span { color: var(--accent); font-weight: 900; }.news-meta b, .news-meta i { padding: 3px 6px; border-radius: 5px; font-style: normal; }.news-meta b { background: rgba(101,223,141,.12); color: #65df8d; }.news-meta i { background: var(--surface-2); }.news-meta time { margin-left: auto; }.transfer-route { display: flex; align-items: center; gap: 10px; color: var(--text); font-size: .8rem; }.transfer-route b { color: var(--accent); }.news-source { color: var(--accent); font-size: .74rem; font-weight: 800; }
.global-loader { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; align-content: center; gap: 12px; background: rgba(5,10,7,.72); backdrop-filter: blur(3px); }.global-loader[hidden] { display: none; }.global-loader span { width: 44px; height: 44px; border: 4px solid rgba(255,255,255,.14); border-top-color: var(--accent); border-radius: 50%; animation: quick-spin .75s linear infinite; }.global-loader strong { font-size: .82rem; }
@media (max-width: 700px) { .player-current-grid { grid-template-columns: 1fr; }.news-card { padding: 17px; }.news-meta { flex-wrap: wrap; }.news-meta time { width: 100%; margin-left: 0; } }

/* Ficha rápida global: persiste entre páginas y se puede arrastrar por la cabecera. */
.quick-player-panel { position: fixed; z-index: 100; right: 18px; bottom: 18px; width: min(430px, calc(100vw - 24px)); max-height: min(720px, calc(100vh - 36px)); overflow: hidden; border: 1px solid rgba(184,242,61,.28); border-radius: 19px; background: rgba(11,21,16,.98); box-shadow: 0 24px 80px rgba(0,0,0,.58); backdrop-filter: blur(18px); }.quick-player-panel[hidden] { display: none; }.quick-player-panel.is-dragging { user-select: none; box-shadow: 0 30px 90px rgba(0,0,0,.72); }.quick-panel-header { min-height: 62px; padding: 11px 12px 11px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); background: var(--surface-2); cursor: grab; touch-action: none; }.quick-player-panel.is-dragging .quick-panel-header { cursor: grabbing; }.quick-panel-header > div { min-width: 0; }.quick-panel-kicker, .quick-panel-header strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.quick-panel-kicker { color: var(--accent); font-size: .58rem; font-weight: 900; letter-spacing: .14em; }.quick-panel-header strong { margin-top: 2px; font-size: .88rem; }.quick-panel-close { flex: 0 0 auto; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-3); color: var(--text); font-size: 1.45rem; line-height: 1; }.quick-panel-close:hover { border-color: rgba(255,107,107,.4); color: #ff9d9d; }.quick-panel-content { max-height: calc(min(720px, 100vh - 36px) - 62px); overflow-y: auto; overscroll-behavior: contain; scrollbar-color: var(--surface-3) transparent; }.quick-player-body { padding: 16px; }.quick-player-identity { display: flex; align-items: center; gap: 13px; }.quick-player-identity h2 { margin: 0 0 3px; font-size: 1.35rem; }.quick-player-identity p { margin: 0; color: var(--muted); font-size: .8rem; }.quick-summary-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 15px; }.quick-summary-grid > div { min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); }.quick-summary-grid span, .quick-summary-grid strong { display: block; }.quick-summary-grid span { color: var(--muted); font-size: .64rem; text-transform: uppercase; }.quick-summary-grid strong { margin-top: 3px; font-size: 1.05rem; }.quick-panel-actions { margin-top: 12px; }.quick-panel-actions .button { width: 100%; }.quick-history { margin-top: 20px; }.quick-history-heading { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 9px; }.quick-history-heading h3 { margin: 0; font-size: .94rem; }.quick-history-heading span { color: var(--muted); font-size: .7rem; }.quick-table-shell { overflow-x: auto; border: 1px solid var(--line); border-radius: 11px; }.quick-table-shell table { font-size: .72rem; }.quick-table-shell th, .quick-table-shell td { padding: 9px 10px; }.quick-panel-state { min-height: 220px; padding: 30px; display: grid; place-items: center; align-content: center; color: var(--muted); text-align: center; }.quick-loader { width: 28px; height: 28px; border: 3px solid var(--surface-3); border-top-color: var(--accent); border-radius: 50%; animation: quick-spin .8s linear infinite; }.quick-panel-state p { margin: 10px 0 0; }.quick-panel-state.error .button { margin-top: 12px; }@keyframes quick-spin { to { transform: rotate(360deg); } }
.match-quick-button { display: inline-flex; align-items: center; min-height: 32px; padding: 6px 9px; border: 1px solid rgba(184,242,61,.3); border-radius: 8px; color: var(--accent); font-size: .68rem; font-weight: 850; white-space: nowrap; }.match-quick-button:hover { background: rgba(184,242,61,.08); }.match-player-identity > div:nth-child(2) { min-width: 0; flex: 1; }.match-rating { flex: 0 0 auto; text-align: center; }.match-rating strong { display: block; padding: 7px 9px; border-radius: 9px; background: #e0b900; color: #111; font-size: 1.15rem; }.match-rating span { display: block; margin-top: 3px; color: var(--muted); font-size: .58rem; text-transform: uppercase; }.match-score-card { margin-top: 14px; padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); text-align: center; }.match-score-card > span, .match-score-card > strong, .match-score-card > small { display: block; }.match-score-card > span { color: var(--muted); font-size: .67rem; }.match-score-card > strong { margin: 7px 0; font-size: .82rem; }.match-score-card > strong b { margin-inline: 6px; color: var(--accent); font-size: 1.1rem; }.match-score-card > small { color: var(--muted); font-size: .68rem; }.match-map-block, .match-stat-section { margin-top: 22px; }.pass-map-pitch { display: block; width: 100%; aspect-ratio: 1.45; border: 1px solid rgba(255,255,255,.22); border-radius: 8px; background: #1b4b30; }.pass-pitch-bg { fill: #205a39; stroke: rgba(255,255,255,.52); stroke-width: .65; }.pass-pitch-line { fill: none; stroke: rgba(255,255,255,.48); stroke-width: .55; }.pass-pitch-dot { fill: rgba(255,255,255,.55); }.pass-line { stroke: #38e596; stroke-width: .7; stroke-linecap: round; opacity: .9; }.pass-line.key-pass { stroke: #ffd166; stroke-width: 1; }.pass-map-pitch marker path { fill: #38e596; }.pass-map-pitch marker#key-pass-arrow path { fill: #ffd166; }.incomplete-pass { fill: #ff6b6b; stroke: rgba(255,255,255,.75); stroke-width: .35; }.pass-map-legend { display: flex; flex-wrap: wrap; gap: 9px 13px; margin-top: 9px; color: var(--muted); font-size: .62rem; }.pass-map-legend span { display: inline-flex; align-items: center; gap: 5px; }.pass-map-legend i { width: 14px; height: 2px; background: #38e596; }.pass-map-legend i.key { background: #ffd166; }.pass-map-legend i.failed { width: 7px; height: 7px; border-radius: 50%; background: #ff6b6b; }.map-empty-inline { padding: 28px 18px; border: 1px dashed var(--line); border-radius: 11px; text-align: center; }.map-empty-inline strong, .map-empty-inline span { display: block; }.map-empty-inline span { margin-top: 5px; color: var(--muted); font-size: .7rem; }.compact-shot-map { aspect-ratio: 1.5; }.match-stat-group { margin-top: 7px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); overflow: hidden; }.match-stat-group summary { padding: 11px 12px; color: var(--accent); font-size: .76rem; font-weight: 850; cursor: pointer; }.match-stat-group dl, .fantasy-breakdown-list { margin: 0; padding: 0 12px 8px; }.match-stat-group dl div, .fantasy-breakdown-list div { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 0; border-top: 1px solid var(--line); }.match-stat-group dt, .fantasy-breakdown-list dt { color: var(--muted); font-size: .72rem; }.match-stat-group dd, .fantasy-breakdown-list dd { margin: 0; font-size: .75rem; font-weight: 850; }.fantasy-breakdown-list { padding: 0; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }.fantasy-breakdown-list div { padding-inline: 12px; }.quick-back-link { display: block; margin-top: 18px; padding: 11px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); font-size: .72rem; font-weight: 800; text-align: center; }.quick-back-link:hover { color: var(--accent); background: var(--surface-2); }

/* Mapa de tiros en la ficha detallada. */
.shot-map-layout { display: grid; grid-template-columns: minmax(300px, 1.45fr) minmax(220px, .55fr); gap: 16px; }.shot-map-pitch { position: relative; width: 100%; aspect-ratio: 1.45; overflow: hidden; border: 2px solid rgba(255,255,255,.42); border-bottom: 0; border-radius: 8px 8px 0 0; background: repeating-linear-gradient(90deg, #173f29 0 12.5%, #1a482e 12.5% 25%); box-shadow: inset 0 0 45px rgba(0,0,0,.15); }.pitch-goal, .pitch-area, .pitch-arc { position: absolute; left: 50%; transform: translateX(-50%); border: 2px solid rgba(255,255,255,.48); pointer-events: none; }.pitch-goal { top: -2px; width: 25%; height: 5%; }.pitch-area { top: -2px; }.large-area { width: 58%; height: 36%; }.small-area { width: 28%; height: 15%; }.pitch-arc { top: 30%; width: 19%; aspect-ratio: 1; border-radius: 50%; clip-path: inset(48% 0 0); }.shot-dot { position: absolute; z-index: 2; transform: translate(-50%, -50%); min-width: 10px; min-height: 10px; border: 2px solid rgba(255,255,255,.9); border-radius: 50%; background: #ff906b; box-shadow: 0 2px 8px rgba(0,0,0,.45); cursor: help; }.shot-dot:focus { outline: 3px solid var(--accent); outline-offset: 2px; }.shot-goal { background: var(--accent); border-color: #111b08; }.shot-save { background: #6cb6ff; }.shot-block { background: #ffd166; }.shot-post { background: #bd8cff; }.shot-map-summary { padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }.shot-map-summary dl { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 0; }.shot-map-summary dl div { padding: 11px; border-radius: 10px; background: var(--surface-2); }.shot-map-summary dt, .shot-map-summary dd { margin: 0; }.shot-map-summary dt { color: var(--muted); font-size: .7rem; }.shot-map-summary dd { margin-top: 2px; font-size: 1.15rem; font-weight: 900; }.shot-legend { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; color: var(--muted); font-size: .72rem; }.shot-legend span { display: flex; align-items: center; gap: 6px; }.shot-legend i { width: 10px; height: 10px; border-radius: 50%; background: #ff906b; }.shot-legend .shot-goal { background: var(--accent); }.shot-legend .shot-save { background: #6cb6ff; }.shot-legend .shot-block { background: #ffd166; }.data-note { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; }.compact-empty { padding: 35px 20px; }
.shot-dot { padding: 0; appearance: none; cursor: pointer; }.shot-dot.is-selected { z-index: 7; outline: 3px solid var(--accent); outline-offset: 3px; }.shot-dot.is-selected::after { content: "↓"; position: absolute; left: 50%; bottom: calc(100% + 5px); transform: translateX(-50%); color: var(--accent); font-size: 27px; font-weight: 950; line-height: 1; text-shadow: 0 2px 5px #07100b, 0 0 6px #07100b; pointer-events: none; animation: shot-arrow-bounce .75s ease-in-out infinite alternate; }.shot-dot.is-selected.arrow-below::after { content: "↑"; top: calc(100% + 5px); bottom: auto; }.shot-selection-detail { margin-top: 17px; padding: 13px; border: 1px solid rgba(184,242,61,.26); border-radius: 11px; background: rgba(184,242,61,.07); }.shot-selection-detail strong, .shot-selection-detail span { display: block; }.shot-selection-detail strong { color: var(--accent); }.shot-selection-detail span { margin-top: 4px; color: var(--muted); font-size: .72rem; }.compact-shot-detail { margin-top: 10px; }.shot-trajectory-layer { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; pointer-events: none; }.shot-trajectory-layer line { stroke: rgba(255,255,255,.9); stroke-width: .55; stroke-dasharray: 1.8 1.2; vector-effect: non-scaling-stroke; filter: drop-shadow(0 1px 2px #07100b); }.heat-map-pitch { display: block; width: 100%; aspect-ratio: 1.45; border: 1px solid rgba(255,255,255,.22); border-radius: 8px; background: #153c27; }.heat-pitch-bg { fill: #205a39; stroke: rgba(255,255,255,.52); stroke-width: .65; }.heat-cell { mix-blend-mode: screen; }.heat-level-1 { fill: #3fd6ff; }.heat-level-2 { fill: #45ef9a; }.heat-level-3 { fill: #dcf23d; }.heat-level-4 { fill: #ffad32; }.heat-level-5 { fill: #ff4d45; }.heat-map-footer { display: flex; align-items: center; justify-content: center; gap: 4px; margin-top: 9px; color: var(--muted); font-size: .65rem; }.heat-map-footer i { width: 18px; height: 6px; background: #3fd6ff; }.heat-map-footer i:nth-of-type(2) { background: #45ef9a; }.heat-map-footer i:nth-of-type(3) { background: #dcf23d; }.heat-map-footer i:nth-of-type(4) { background: #ffad32; }.heat-map-footer i:nth-of-type(5) { background: #ff4d45; }.map-source-note { margin: 8px 0 0; color: var(--muted); font-size: .67rem; line-height: 1.45; }.section-help { margin: -8px 0 14px; color: var(--muted); font-size: .8rem; }.section-help strong { color: var(--accent); }.player-match-table th:last-child, .player-match-table td:last-child { position: sticky; right: 0; z-index: 3; background: var(--surface); box-shadow: -10px 0 18px rgba(9,17,13,.75); }.player-match-table th:last-child { background: var(--surface-2); }@keyframes shot-arrow-bounce { to { transform: translate(-50%, 3px); } }

.entity-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }.entity-card { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 14px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }.entity-card:hover { border-color: rgba(184,242,61,.35); background: var(--surface-2); }.entity-card h3, .entity-card p { margin: 0; }.entity-card p { margin-top: 4px; color: var(--muted); font-size: .74rem; }.entity-card dl { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); margin: 4px 0 0; }.entity-card dl div { padding: 8px; background: var(--surface-2); text-align: center; }.entity-card dt { color: var(--muted); font-size: .62rem; }.entity-card dd { margin: 2px 0 0; font-weight: 900; }.team-logo { width: 52px; height: 52px; object-fit: contain; }.team-logo.large { width: 82px; height: 82px; }.team-hero { display: block; }.fixture-list { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }.fixture-row { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 16px; border-bottom: 1px solid var(--line); }.fixture-row:last-child { border-bottom: 0; }.fixture-row:hover { background: var(--surface-2); }.fixture-row small, .fixture-row strong { display: block; }.fixture-row small { margin-bottom: 4px; color: var(--muted); font-size: .67rem; }.fixture-row strong b { margin-inline: 8px; color: var(--accent); }.fixture-row > i { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 8px; font-style: normal; font-weight: 900; }.result-win { background: rgba(101,223,141,.18); color: #65df8d; }.result-draw { background: rgba(255,225,105,.14); color: #ffe169; }.result-loss { background: rgba(255,107,107,.14); color: #ff8d8d; }.match-filters { justify-content: flex-start; }.match-hero { padding: 30px; border: 1px solid var(--line); border-radius: 24px; background: linear-gradient(130deg, var(--surface-2), var(--surface)); text-align: center; }.match-hero > p { margin: 5px 0 22px; color: var(--muted); }.match-scoreboard { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; }.match-scoreboard > a { display: flex; align-items: center; justify-content: center; gap: 12px; }.match-scoreboard > b { font-size: clamp(2rem, 6vw, 4rem); }.match-scoreboard > b i { color: var(--muted); font-style: normal; }.collective-groups { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }.collective-groups .detail-card dl div { display: grid; grid-template-columns: 1fr 2fr 1fr; }.collective-groups dt { text-align: center; }.collective-groups dd:first-child { text-align: left; }.lineup-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.lineup-columns > article { min-width: 0; }.lineup-columns h3 { color: var(--accent); }.match-player-list { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); }.match-player-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 11px 12px; border-bottom: 1px solid var(--line); background: var(--surface); }.match-player-row:last-child { border-bottom: 0; }.match-player-row[href]:hover { background: var(--surface-2); }.match-player-row strong, .match-player-row small { display: block; }.match-player-row small { margin-top: 3px; color: var(--muted); font-size: .65rem; }.match-player-row > span:last-child { display: flex; align-items: center; gap: 7px; }.match-player-row i { font-style: normal; }.incident-list { max-width: 760px; margin-inline: auto; }.incident-row { display: grid; grid-template-columns: 50px 1fr auto; gap: 12px; padding: 11px 14px; border-bottom: 1px solid var(--line); background: var(--surface); }.incident-row small { color: var(--muted); }

.fantasy-capture-panel h3 { margin: 6px 0 0; }.capture-steps { margin: 18px 0; padding-left: 20px; color: var(--muted); font-size: .82rem; line-height: 1.65; }.fantasy-capture-actions { flex-wrap: wrap; }.fantasy-capture-actions form { margin: 0; }.capture-safety { margin: 15px 0 0; padding: 11px 12px; border: 1px solid rgba(184,242,61,.2); border-radius: 10px; background: rgba(184,242,61,.05); color: var(--muted); font-size: .72rem; }.manual-import-fallback { margin-top: 16px; border-top: 1px solid var(--line); padding-top: 14px; }.manual-import-fallback summary { color: var(--accent); font-size: .78rem; font-weight: 800; cursor: pointer; }.manual-import-fallback form { margin-top: 14px; }.capture-command { display: block; margin-top: 10px; padding: 11px; overflow-x: auto; border-radius: 9px; background: #07100b; color: var(--accent); font-size: .7rem; white-space: nowrap; }

.screenshot-import-panel { margin-top: 14px; }
.screenshot-import-panel h3 { margin: 6px 0 4px; }
.screenshot-import-panel p { color: var(--muted); }
.screenshot-import-panel .field { margin-top: 16px; }
.screenshot-import-panel button:disabled { opacity: .45; cursor: not-allowed; }
.screenshot-balance-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.screenshot-review-table input, .screenshot-review-table select { min-width: 110px; min-height: 40px; }
.screenshot-review-table td:first-child input { min-width: 190px; }
.screenshot-review-table input[type="checkbox"] { width: 22px; min-width: 22px; }
.screenshot-confirm-actions { justify-content: flex-end; }
.my-team-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.my-team-actions .feature-card { min-height: 210px; }
.favorites-panel .directory-card { min-height: 165px; }
.favorites-panel .directory-actions { grid-template-columns: 1fr auto; }
.directory-actions.has-favorite { grid-template-columns: 1fr 1fr auto; }
.directory-actions form { margin: 0; }
.favorite-button, .favorite-icon-button { border: 1px solid rgba(184,242,61,.3); background: rgba(184,242,61,.06); color: var(--muted); cursor: pointer; }
.favorite-button.is-favorite, .favorite-icon-button.is-favorite { color: var(--accent); background: rgba(184,242,61,.12); }
.favorite-icon-button { width: 42px; height: 42px; border-radius: 10px; font-size: 1.25rem; }
.player-favorite-form { margin-top: 12px; }
.player-favorite-form .favorite-button { padding: 8px 12px; border-radius: 9px; }
.favorite-login-link, .auth-switch a { color: var(--accent); font-weight: 750; }
.favorite-login-link { display: inline-block; margin-top: 10px; font-size: .76rem; }
.auth-switch { margin-top: 18px; text-align: center; font-size: .82rem; }
.previous-season-teams { padding-top: 28px; border-top: 1px solid var(--line); }
.player-profile-actions { display: flex; align-items: center; gap: 9px; margin-top: 12px; flex-wrap: wrap; }.player-profile-actions form { margin: 0; }.player-profile-actions .favorite-login-link { margin-top: 0; }
.team-analysis-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px; }.team-analysis-summary article { padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }.team-analysis-summary .captain-card { border-color: rgba(184,242,61,.28); background: linear-gradient(145deg, #263c1b, var(--surface)); }.team-analysis-summary span, .team-analysis-summary strong, .team-analysis-summary small { display: block; }.team-analysis-summary span, .team-analysis-summary small { color: var(--muted); }.team-analysis-summary span { font-size: .7rem; font-weight: 800; text-transform: uppercase; }.team-analysis-summary strong { margin: 8px 0 4px; font-size: 1.15rem; }.team-analysis-summary small { font-size: .72rem; }.analysis-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(210px, 1fr); gap: 12px; }.analysis-bench { padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }.analysis-bench > div { display: flex; justify-content: space-between; gap: 8px; padding: 10px 0; border-bottom: 1px solid var(--line); }.analysis-bench > div small { color: var(--muted); text-align: right; }.pitch-player.is-captain .pitch-shirt { background: var(--accent); color: #111b08; box-shadow: 0 0 0 4px rgba(184,242,61,.18); }
.similar-heading h1 { max-width: 1000px; }.similar-player-list { display: grid; gap: 10px; }.similar-player-card { display: grid; grid-template-columns: 52px 62px minmax(180px, 1fr) minmax(280px, .8fr) auto; align-items: center; gap: 16px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }.similar-player-card:hover { border-color: rgba(184,242,61,.3); background: var(--surface-2); }.similar-rank { color: var(--accent); font-size: 1.35rem; font-weight: 950; }.similar-player-main .eyebrow { margin-bottom: 3px; }.similar-player-main h2, .similar-player-main p { margin: 0; }.similar-player-main h2 { font-size: 1.35rem; }.similar-player-main p { color: var(--muted); font-size: .76rem; }.similar-player-card dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; }.similar-player-card dl div { padding: 5px 12px; border-left: 1px solid var(--line); }.similar-player-card dt { color: var(--muted); font-size: .65rem; }.similar-player-card dd { margin: 4px 0 0; font-weight: 900; }

@media (max-width: 900px) {
  .screenshot-balance-grid { grid-template-columns: 1fr; }
  .my-team-actions { grid-template-columns: 1fr; }
  .shell { width: min(100% - 28px, 760px); }
  .site-header { overflow: visible; }.header-inner { position: relative; min-height: 66px; padding-block: 9px; }.menu-toggle { display: block; flex: 0 0 auto; }.main-nav { position: absolute; top: calc(100% - 2px); right: 0; left: 0; display: none; max-height: calc(100vh - 82px); margin: 0; padding: 10px; overflow-y: auto; border: 1px solid var(--line); border-radius: 14px; background: rgba(11,21,16,.99); box-shadow: var(--shadow); }.main-nav.is-open { display: grid; animation: mobile-menu-in .16s ease-out; }.main-nav a { width: 100%; padding: 12px 13px; }.main-nav a.active { box-shadow: inset 3px 0 var(--accent); }.nav-logout, .nav-logout button { width: 100%; }.nav-logout button { justify-content: flex-start; padding: 12px 13px; text-align: left; }
  .page-content { padding-top: 30px; }.hero { padding: 38px; grid-template-columns: 1fr; }.hero-orbit { display: none; }.stats-grid { grid-template-columns: repeat(2, 1fr); }.feature-grid { grid-template-columns: repeat(2, 1fr); }.form-grid { grid-template-columns: repeat(2, 1fr); }.detail-groups { grid-template-columns: repeat(2, 1fr); }.player-grid { grid-template-columns: 1fr; }.result-grid { grid-template-columns: repeat(2, 1fr); }
  .directory-grid, .entity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-layout { grid-template-columns: 1fr; }.job-metadata { grid-template-columns: repeat(2, 1fr); }
  .fantasy-player-list { grid-template-columns: 1fr; }
  .squad-dashboard { grid-template-columns: 1fr; }.fantasy-player-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shot-map-layout { grid-template-columns: 1fr; }.shot-map-summary dl { grid-template-columns: repeat(4, 1fr); }
  .team-analysis-summary { grid-template-columns: 1fr; }.analysis-layout { grid-template-columns: 1fr; }.similar-player-card { grid-template-columns: 42px 62px 1fr auto; }.similar-player-card dl { grid-column: 2 / -1; grid-row: 2; }.similar-player-card .button { grid-column: 4; grid-row: 1; }
}
@keyframes mobile-menu-in { from { opacity: 0; transform: translateY(-6px); } }

/* Se mantiene al final de la cascada para que ninguna regla de componentes anule el menú responsive. */
@media screen and (max-width: 900px) {
  .header-inner { display: flex; }
  .menu-toggle { display: block !important; }
  .main-nav { display: none !important; overflow-x: visible; }
  .main-nav.is-open { display: grid !important; }
}
@media screen and (min-width: 901px) {
  .menu-toggle { display: none !important; }
  .main-nav { display: flex !important; position: static; }
}

.profile-charts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.profile-chart-card { min-width: 0; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.profile-chart-card h3 { margin-bottom: 5px; color: var(--accent); }
.profile-chart-card p { margin: 0; color: var(--muted); font-size: .76rem; }
.percentile-radar { display: block; width: min(100%, 470px); margin: 15px auto 5px; overflow: visible; }
.radar-grid { fill: rgba(255,255,255,.018); stroke: rgba(255,255,255,.2); stroke-width: .45; }
.radar-grid-inner { fill: none; }
.radar-axis { stroke: rgba(255,255,255,.12); stroke-width: .35; }
.radar-profile { fill: rgba(184,242,61,.25); stroke: var(--accent); stroke-width: 1.1; stroke-linejoin: round; }
.radar-point { fill: var(--accent); stroke: #0b1510; stroke-width: .55; }
.radar-label { fill: var(--muted); font-size: 3.1px; font-weight: 750; text-anchor: middle; dominant-baseline: middle; }
.radar-metric-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.radar-metric-list span { padding: 7px; border-radius: 8px; background: var(--surface-2); color: var(--muted); font-size: .64rem; }
.radar-metric-list strong { float: right; color: var(--accent); }
.fantasy-beeswarm { display: block; width: 100%; margin-top: 30px; }
.beeswarm-axis { stroke: rgba(255,255,255,.3); stroke-width: .5; }
.beeswarm-dot { fill: #758179; opacity: .72; }
.beeswarm-dot.selected { fill: var(--accent); opacity: 1; stroke: #fff; stroke-width: .65; }
.beeswarm-label { fill: var(--muted); font-size: 3px; }
.distribution-result { display: grid; grid-template-columns: 1fr auto; align-items: end; margin-top: 8px; padding: 16px; border-radius: 12px; background: rgba(184,242,61,.07); }
.distribution-result span, .distribution-result small { color: var(--muted); }
.distribution-result strong { grid-row: 1 / 3; grid-column: 2; color: var(--accent); font-size: 2.2rem; }
.distribution-result small { font-size: .7rem; }
.points-chart-shell { width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(180deg, var(--surface), #0b1510); scrollbar-color: var(--accent) var(--surface-2); }
.points-history-chart { display: block; width: 100%; height: 360px; }
.points-zero-line { stroke: rgba(255,255,255,.2); stroke-width: .65; }
.points-trend-line { fill: none; stroke: rgba(225,232,227,.78); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.points-match .points-bar { opacity: .3; }
.points-match.score-blue .points-bar, .points-match.score-blue .points-marker { fill: #6cb6ff; }
.points-match.score-green .points-bar, .points-match.score-green .points-marker { fill: #65df8d; }
.points-match.score-yellow .points-bar, .points-match.score-yellow .points-marker { fill: #ffe169; }
.points-match.score-orange .points-bar, .points-match.score-orange .points-marker { fill: #ffac5f; }
.points-match.score-red .points-bar, .points-match.score-red .points-marker { fill: #ff7b7b; }
.points-marker { stroke: #0b1510; stroke-width: .7; }
.points-value { fill: #07110b; font-size: 6px; font-weight: 950; text-anchor: middle; dominant-baseline: middle; }
.points-date { fill: var(--muted); font-size: 4px; font-weight: 700; text-anchor: middle; }

@media (max-width: 900px) {
  .profile-charts-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .shell { width: calc(100% - 22px); }.page-content { padding-block: 22px 60px; }.brand-logo { width: 42px; height: 42px; border-radius: 10px; }.main-nav a { font-size: .86rem; }
  h1 { font-size: 2.45rem; }.hero { min-height: auto; padding: 28px 20px; border-radius: 21px; }.hero p { font-size: .95rem; }.hero-search { display: block; padding: 6px; }.hero-search input { min-height: 48px; }.hero-search .button { width: 100%; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }.metric-card { padding: 16px; }.metric-card strong { font-size: 1.65rem; }.feature-grid { grid-template-columns: 1fr; }.feature-card { min-height: 190px; }.feature-card h3 { margin-top: 24px; }
  .page-heading { margin-bottom: 22px; }.page-heading h1 { font-size: 2.4rem; }.page-heading p { font-size: .95rem; }.input-action { display: block; }.input-action .button { width: 100%; margin-top: 9px; }
  .form-grid, .compare-selects { grid-template-columns: 1fr; }.field.span-2 { grid-column: auto; }.form-actions { display: grid; grid-template-columns: 1fr 1fr; }.filter-panel, .search-panel { padding: 15px; }
  .directory-search { grid-template-columns: 1fr; }.directory-search .button { width: 100%; }.directory-grid, .entity-grid { grid-template-columns: 1fr; }.directory-card { min-height: 225px; }.pagination { grid-template-columns: 1fr 1fr; }.pagination > span { grid-column: 1 / -1; grid-row: 1; }.pagination a { grid-row: 2; width: 100%; }
  .match-scoreboard { grid-template-columns: 1fr auto 1fr; gap: 8px; }.match-scoreboard > a { display: grid; gap: 5px; font-size: .72rem; }.match-scoreboard .team-logo { margin: auto; width: 42px; height: 42px; }.collective-groups, .lineup-columns { grid-template-columns: 1fr; }.fixture-row { padding-inline: 12px; }.fixture-row strong { font-size: .78rem; }
  .position-pill { display: none; }.section-block { margin-top: 38px; }.section-heading { align-items: center; }.table-shell { margin-inline: -11px; width: calc(100% + 22px); border-radius: 0; border-inline: 0; }th, td { padding: 12px 11px; }
  .player-hero { display: block; padding: 20px; }.avatar.large, .player-photo.large { width: 58px; height: 58px; border-radius: 18px; }.player-identity { align-items: flex-start; }.headline-score { margin-top: 20px; display: flex; align-items: center; gap: 10px; text-align: left; }.headline-score strong { font-size: 1.8rem; margin-left: auto; }.headline-score small { display: none; }.toolbar, .rankings-toolbar { display: block; }.toolbar .segmented { width: 100%; margin-top: 12px; }.toolbar .segmented button, .toolbar .segmented a { flex: 1; }.detail-groups, .comparison-grid { grid-template-columns: 1fr; }.comparison-card { padding: 17px; }
  .recommendation-verdict { align-items: flex-start; flex-wrap: wrap; }.recommendation-verdict > strong { margin-left: 67px; }.result-grid { grid-template-columns: 1fr 1fr; }.site-footer { display: block; }.site-footer span { display: block; margin-top: 4px; }
  .admin-heading, .job-heading { display: block; }.admin-counters { margin-top: 15px; }.admin-counters span { flex: 1; }.dataset-grid, .job-metadata { grid-template-columns: 1fr; }.job-heading .job-status { margin-top: 12px; }
  .squad-summary { grid-template-columns: 1fr; }
  .squad-position-counts { grid-template-columns: repeat(2, 1fr); }.fantasy-player-grid { grid-template-columns: 1fr; }.fantasy-pitch { min-height: 570px; padding-inline: 8px; }.pitch-line { gap: 5px; }.pitch-player { width: auto; min-width: 0; flex: 0 1 100px; padding-inline: 4px; }.pitch-player strong { font-size: .66rem; }.pitch-player small { font-size: .56rem; }
  .similar-player-card { grid-template-columns: 36px 52px 1fr; gap: 10px; padding: 14px; }.similar-player-card .player-photo { width: 52px; height: 52px; }.similar-player-card dl { grid-column: 1 / -1; grid-row: auto; }.similar-player-card .button { grid-column: 1 / -1; grid-row: auto; }.similar-player-card dl div:first-child { border-left: 0; }
  /* En móvil la ficha rápida funciona como una hoja inferior, no como una ventana arrastrable. */
  .quick-player-panel {
    inset: auto 0 0 !important;
    width: 100%;
    max-height: 88vh;
    max-height: 88dvh;
    border: 1px solid rgba(184,242,61,.24);
    border-bottom: 0;
    border-radius: 24px 24px 0 0;
    background: rgba(9,18,13,.99);
    box-shadow: 0 -18px 60px rgba(0,0,0,.68);
  }
  .quick-panel-header {
    min-height: 58px;
    padding: 9px max(14px, env(safe-area-inset-right)) 9px max(16px, env(safe-area-inset-left));
    background: rgba(22,36,28,.98);
    cursor: default;
    touch-action: auto;
  }
  .quick-panel-header::before {
    content: "";
    position: absolute;
    top: 6px;
    left: 50%;
    width: 38px;
    height: 4px;
    border-radius: 999px;
    background: rgba(255,255,255,.2);
    transform: translateX(-50%);
  }
  .quick-panel-kicker { font-size: .55rem; }
  .quick-panel-header strong { max-width: calc(100vw - 90px); font-size: .82rem; }
  .quick-panel-close { width: 40px; height: 40px; border-radius: 50%; }
  .quick-panel-content {
    max-height: calc(88vh - 58px);
    max-height: calc(88dvh - 58px);
    overflow-x: hidden;
    padding-bottom: env(safe-area-inset-bottom);
  }
  .quick-player-body { padding: 15px 14px 22px; }
  .quick-player-identity { gap: 11px; }
  .quick-player-identity .player-photo { width: 54px; height: 54px; border-radius: 16px; }
  .quick-player-identity h2 { font-size: 1.18rem; }
  .quick-player-identity p { overflow-wrap: anywhere; font-size: .74rem; }
  .quick-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .quick-summary-grid > div { padding: 9px 8px; }
  .quick-summary-grid span { font-size: .56rem; }
  .quick-summary-grid strong { font-size: .96rem; }
  .quick-table-shell { margin-inline: -14px; border-inline: 0; border-radius: 0; }
  .quick-history-heading { align-items: flex-end; }
  .quick-history-heading h3 { min-width: 0; font-size: .9rem; }
  .quick-history-heading > span { flex: 0 0 auto; text-align: right; }
  .match-score-card { padding: 12px 10px; }
  .match-score-card > strong { line-height: 1.45; }
  .match-score-card > small { line-height: 2.2; }
  .match-rating strong { padding: 6px 8px; font-size: 1rem; }
  .match-map-block, .match-stat-section { margin-top: 20px; }
  .pass-map-pitch {
    width: 100%;
    height: auto;
    aspect-ratio: 1.25;
    border-radius: 12px;
    background: #205a39;
  }
  .pass-line { stroke-width: 1; }
  .pass-line.key-pass { stroke-width: 1.35; }
  .pass-map-legend { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; font-size: .6rem; }
  .pass-map-legend span:last-child { grid-column: 1 / -1; }
  .compact-shot-map, .shot-map-pitch { min-height: 220px; aspect-ratio: 1.2; }
  .shot-map-summary dl { grid-template-columns: 1fr 1fr; }
  .match-stat-group dl div, .fantasy-breakdown-list div { gap: 12px; }
  .match-stat-group dt, .fantasy-breakdown-list dt { min-width: 0; }
  .match-stat-group dd, .fantasy-breakdown-list dd { flex: 0 0 auto; }
}

/* Editor manual de plantilla. */
.squad-player-add { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px; margin-bottom: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface-2); }
.squad-player-add .field { margin: 0; }.squad-player-add select { width: 100%; }
.squad-card-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: auto; }
.squad-card-actions > a { grid-column: 1 / -1; }.squad-card-actions form, .squad-card-actions .button { width: 100%; margin: 0; }
.position-management .squad-player-add { grid-template-columns: minmax(0, 1fr) minmax(180px, .35fr) auto; }
.position-review-list { display: grid; gap: 9px; }
.position-review-card { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 18px; border: 1px solid rgba(255,190,73,.25); border-radius: 14px; background: rgba(255,190,73,.05); }
.position-review-card h3, .position-review-card p { margin: 2px 0; }.position-review-card p { color: var(--muted); font-size: .76rem; }
.position-review-actions { display: flex; gap: 8px; margin: 0; }.position-review-card select { min-width: 190px; }.position-review-bulk { display: flex; justify-content: flex-end; margin-top: 12px; }

/* Resultados similares: una fila comparable y fácil de escanear. */
.similar-list-section { padding: 24px; }
.similar-player-list { display: grid; grid-template-columns: 1fr; gap: 10px; }
.similar-player-card { position: relative; display: grid; grid-template-columns: 34px 58px minmax(180px, 1fr) minmax(300px, .9fr) 112px; align-items: center; gap: 16px; min-width: 0; padding: 16px 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); box-shadow: none; }
.similar-player-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--accent); opacity: 0; transition: opacity .18s ease; }
.similar-player-card:hover { border-color: rgba(184,242,61,.32); background: var(--surface-2); transform: none; }
.similar-player-card:hover::before { opacity: 1; }
.similar-rank { position: static; color: var(--accent); font-size: .82rem; font-weight: 950; font-variant-numeric: tabular-nums; }
.similar-player-card .player-photo { width: 58px; height: 58px; }
.similar-player-main { min-width: 0; padding: 0; }
.similar-player-main h2 { overflow: hidden; margin: 1px 0 3px; font-size: 1.05rem; white-space: nowrap; text-overflow: ellipsis; }
.similar-player-main p { overflow: hidden; margin: 0; color: var(--muted); font-size: .73rem; white-space: nowrap; text-overflow: ellipsis; }
.similar-player-card dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; margin: 0; border: 0; border-radius: 0; background: transparent; }
.similar-player-card dl div { min-width: 0; padding: 5px 14px; border-left: 1px solid var(--line); }
.similar-player-card dt { color: var(--muted); font-size: .62rem; text-transform: uppercase; letter-spacing: .04em; }
.similar-player-card dd { overflow: hidden; margin: 4px 0 0; font-size: .86rem; font-weight: 900; text-overflow: ellipsis; }
.similar-player-card .button { width: 100%; padding: 9px 12px; font-size: .72rem; white-space: nowrap; }
@media (max-width: 900px) {
  .similar-player-card { grid-template-columns: 28px 54px minmax(0, 1fr) 104px; }
  .similar-player-card dl { grid-column: 2 / -1; grid-row: 2; }
  .similar-player-card .button { grid-column: 4; grid-row: 1; }
}
@media (max-width: 600px) {
  .squad-player-add { grid-template-columns: 1fr; padding: 13px; }.squad-player-add .button { width: 100%; }
  .position-management .squad-player-add { grid-template-columns: 1fr; }.position-review-card, .position-review-actions { display: grid; grid-template-columns: 1fr; }.position-review-card select, .position-review-card .button, .position-review-bulk .button { width: 100%; }
  .similar-list-section { margin-inline: -11px; padding: 16px 11px; border-radius: 0; }
  .similar-list-section .section-heading { padding-inline: 3px; }
  .similar-player-card { grid-template-columns: 22px 46px minmax(0, 1fr); gap: 10px; padding: 14px 12px; }
  .similar-player-card .player-photo { width: 46px; height: 46px; }
  .similar-player-main h2 { font-size: .95rem; }
  .similar-player-card dl { grid-column: 1 / -1; grid-row: auto; }
  .similar-player-card dl div { padding: 8px 6px; text-align: center; }
  .similar-player-card dl div:first-child { border-left: 0; }
  .similar-player-card dt { font-size: .55rem; }
  .similar-player-card dd { font-size: .76rem; }
  .similar-player-card .button { grid-column: 1 / -1; grid-row: auto; }
}
