/* Estilos da área: player — telas Atleta, Treino e Carreira (prefixo pl-). */

/* ---------- base comum ---------- */
.pl-page { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.pl-stack { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.pl-k { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); font-weight: 600; }
.pl-note { font-size: 12px; color: var(--faint); margin: 8px 0 0; line-height: 1.45; }
.pl-card { display: inline-block; width: 9px; height: 12px; border-radius: 2px; vertical-align: -1px; }
.pl-card.y { background: var(--gold); }
.pl-card.r { background: var(--danger); }

/* ---------- Atleta: cabeçalho ---------- */
.pl-hero {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto minmax(250px, 320px); gap: 22px; align-items: center; padding: 20px 22px;
  background:
    radial-gradient(380px 220px at 4% 40%, color-mix(in srgb, var(--pl-tint, #2ea8ff) 26%, transparent), transparent 70%),
    linear-gradient(180deg, var(--panel), var(--bg2));
  border-color: var(--line2); overflow: hidden;
}
.pl-hero-kit { display: grid; place-items: center; width: 96px; height: 96px; border-radius: 50%;
  background: radial-gradient(circle at 50% 40%, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.015) 70%); border: 1px solid rgba(255, 255, 255, 0.07); }
.pl-hero-id { min-width: 0; }
.pl-tags { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.pl-posname { font-weight: 600; color: var(--muted); margin-right: 4px; }
.pl-name { font-size: 30px; font-weight: 400; letter-spacing: 0.3px; margin: 6px 0 4px; line-height: 1.1; overflow-wrap: anywhere; }
.pl-name b { font-weight: 800; }
.pl-facts { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; color: var(--muted); font-size: 13px; }
.pl-facts > span { display: inline-flex; align-items: center; }
.pl-facts > span:not(:last-child)::after { content: ''; width: 3px; height: 3px; border-radius: 50%; background: var(--faint); margin: 0 9px; }
.pl-club { margin-top: 10px; font-weight: 600; }
.pl-hero-ovr { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.pl-hero-ovr .ovr.lg { min-width: 76px; height: 66px; font-size: 36px; border-radius: 12px; box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35); }

.pl-scout { background: linear-gradient(135deg, color-mix(in srgb, var(--accent2) 12%, transparent), color-mix(in srgb, var(--accent) 6%, transparent)); border: 1px solid color-mix(in srgb, var(--accent2) 30%, transparent);
  border-radius: 12px; padding: 12px 14px; min-width: 0; }
.pl-scout-range { font-size: 30px; font-weight: 800; letter-spacing: 0.5px; line-height: 1.15; margin-top: 2px; font-variant-numeric: tabular-nums; }
.pl-scout-range span { color: var(--faint); margin: 0 3px; font-weight: 400; }
.pl-scout-verdict { color: var(--text); font-size: 13px; font-style: italic; opacity: 0.9; }
.pl-scale { position: relative; height: 8px; margin-top: 12px; border-radius: 5px; background: var(--bg); border: 1px solid var(--line); }
.pl-scale-band { position: absolute; top: 0; bottom: 0; border-radius: 5px; background: linear-gradient(90deg, var(--accent2), #8fd3ff); opacity: 0.9; }
.pl-scale-now { position: absolute; top: -5px; width: 3px; height: 16px; margin-left: -1.5px; border-radius: 2px; background: #fff; box-shadow: 0 0 0 2px color-mix(in srgb, var(--bg) 60%, transparent); }
.pl-scale-legend { display: flex; justify-content: space-between; font-size: 11px; color: var(--faint); margin-top: 5px; font-variant-numeric: tabular-nums; }
.pl-dot-now { display: inline-block; width: 3px; height: 10px; border-radius: 2px; background: #fff; vertical-align: -1px; margin-right: 2px; }
.pl-scout .pl-note { margin-top: 8px; font-size: 11.5px; }

/* alertas */
.pl-alerts { display: flex; flex-direction: column; gap: 10px; }
.pl-alert { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border-radius: var(--radius); border: 1px solid var(--line2); background: var(--panel); }
.pl-alert.bad { border-color: color-mix(in srgb, var(--danger) 45%, transparent); background: linear-gradient(90deg, color-mix(in srgb, var(--danger) 12%, transparent), color-mix(in srgb, var(--danger) 3%, transparent)); }
.pl-alert.warn { border-color: color-mix(in srgb, var(--warn) 45%, transparent); background: linear-gradient(90deg, color-mix(in srgb, var(--warn) 12%, transparent), color-mix(in srgb, var(--warn) 3%, transparent)); }
.pl-alert.info { border-color: color-mix(in srgb, var(--accent2) 40%, transparent); background: linear-gradient(90deg, color-mix(in srgb, var(--accent2) 10%, transparent), color-mix(in srgb, var(--accent2) 2%, transparent)); }
.pl-alert-ico { flex-shrink: 0; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; font-weight: 800; background: rgba(255, 255, 255, 0.06); }
.pl-alert.bad .pl-alert-ico { color: var(--danger); }
.pl-alert.warn .pl-alert-ico { color: var(--warn); }
.pl-alert.info .pl-alert-ico { color: var(--accent2); }
.pl-alert-body { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.pl-alert-body span { color: var(--muted); font-size: 13px; }
.pl-alert-body .bar { margin-top: 5px; max-width: 360px; }

/* ---------- Atleta: atributos ---------- */
.pl-attr-groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(215px, 1fr)); gap: 16px 22px; }
.pl-group-h { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--line2); padding-bottom: 5px; margin-bottom: 3px; }
.pl-group-h h4 { margin: 0; }
.pl-group-h b { font-size: 13px; }
.pl-group.pl-dim { opacity: 0.55; }
.pl-attr { display: grid; grid-template-columns: minmax(0, 1fr) 64px 26px; gap: 10px; align-items: center; padding: 4px 0; font-size: 13px; border-bottom: 1px solid color-mix(in srgb, var(--line) 45%, transparent); }
.pl-attr .l { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl-attr b { text-align: right; font-weight: 800; font-variant-numeric: tabular-nums; }
.pl-attr-bar { height: 5px; border-radius: 3px; background: var(--bg); overflow: hidden; }
.pl-attr-bar i { display: block; height: 100%; border-radius: 3px; background: currentColor; opacity: 0.85; }

/* ---------- Atleta: campinho de posições ---------- */
.pl-pitch {
  position: relative; aspect-ratio: 4 / 5; max-width: 440px; margin: 0 auto; border-radius: 10px; overflow: hidden; border: 1px solid #1f6b3e;
  background: repeating-linear-gradient(180deg, #13502d 0 10%, #11482a 10% 20%);
}
.pl-pitch::before { content: ''; position: absolute; inset: 3% 4%; border: 1.5px solid rgba(255, 255, 255, 0.2); border-radius: 3px; }
.pl-pitch::after { content: ''; position: absolute; left: 4%; right: 4%; top: 50%; border-top: 1.5px solid rgba(255, 255, 255, 0.2); }
.pl-pitch-lines i { position: absolute; border: 1.5px solid rgba(255, 255, 255, 0.2); }
.pl-pitch-lines .box { left: 26%; right: 26%; height: 13%; }
.pl-pitch-lines .box.top { top: 3%; border-top: 0; }
.pl-pitch-lines .box.bottom { bottom: 3%; border-bottom: 0; }
.pl-pitch-lines .circle { left: 50%; top: 50%; width: 26%; aspect-ratio: 1; border-radius: 50%; transform: translate(-50%, -50%); }
.pl-node {
  position: absolute; transform: translate(-50%, -50%); display: flex; flex-direction: column; gap: 5px; min-width: 64px; min-height: 42px;
  padding: 6px 7px 7px; border-radius: 9px; border: 1px solid rgba(255, 255, 255, 0.12); background: color-mix(in srgb, var(--bg) 82%, transparent);
  color: var(--text); font: inherit; cursor: pointer; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
@media (hover: hover) { .pl-node:hover { border-color: rgba(255, 255, 255, 0.35); } }
.pl-node:focus-visible { outline: 2px solid var(--accent2); outline-offset: 2px; }
.pl-node.pl-is-main { border-color: var(--accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent), 0 4px 14px rgba(0, 0, 0, 0.35); background: color-mix(in srgb, var(--accent-ink) 90%, transparent); }
.pl-node.pl-is-best { border-color: color-mix(in srgb, var(--gold) 55%, transparent); }
.pl-node.pl-is-picked { border-color: var(--accent2); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent2) 35%, transparent); }
.pl-node-top { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.pl-node-top .pos { min-width: 30px; font-size: 10px; padding: 1px 4px; }
.pl-node-ovr { display: inline-block; min-width: 24px; padding: 0 4px; border-radius: 4px; font-size: 13px; font-weight: 800; color: #0a0e13; text-align: center; font-variant-numeric: tabular-nums; }
.pl-node-fam { display: block; height: 3px; border-radius: 2px; background: rgba(255, 255, 255, 0.12); overflow: hidden; }
.pl-node-fam i { display: block; height: 100%; background: linear-gradient(90deg, var(--accent2), #8fd3ff); }
.pl-node.pl-is-main .pl-node-fam i { background: linear-gradient(90deg, var(--accent), #6af0b5); }
.pl-pitch-legend { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; margin-top: 8px; }
.pl-sw { display: inline-block; width: 10px; height: 10px; border-radius: 3px; vertical-align: -1px; margin-right: 3px; }
.pl-sw-main { border: 2px solid var(--accent); }
.pl-changepos { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; justify-items: start; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.pl-changepos select { width: 100%; min-height: 40px; }
.pl-changepos .btn { min-height: 40px; }
.pl-changepos .field { width: 100%; }
.pl-changepos .pl-note { margin-top: 0; }
.pl-kpis-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* ---------- Atleta: estado, relações, traços ---------- */
.pl-form { display: flex; align-items: center; gap: 14px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.pl-form-avg { margin-top: 3px; }
.pl-form-avg .rating { font-size: 15px; min-width: 44px; padding: 3px 6px; }
.pl-form-list { display: flex; flex-wrap: wrap; gap: 5px; margin-left: auto; }
.pl-rel { display: grid; grid-template-columns: minmax(0, 1fr) 68px; gap: 8px; align-items: center; }
.pl-rel-w { font-size: 11px; color: var(--faint); text-align: right; text-transform: uppercase; letter-spacing: 0.6px; }
.pl-traits { display: flex; flex-direction: column; gap: 8px; }
.pl-trait { display: flex; flex-direction: column; gap: 1px; padding: 9px 12px; border-radius: var(--radius-sm); background: var(--panel2); border: 1px solid var(--line); border-left: 3px solid var(--gold); }
.pl-trait span { color: var(--muted); font-size: 12px; }

/* ---------- Atleta: estatísticas e lesões ---------- */
.pl-stats .pl-comp { font-weight: 600; min-width: 140px; }
.pl-stats tr.pl-nt .pl-comp { color: var(--accent2); }
.pl-stats tr.pl-total td { font-weight: 700; border-top: 1px solid var(--line2); background: rgba(255, 255, 255, 0.02); }
.pl-inj { list-style: none; margin: 0; padding: 0; }
.pl-inj li { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid color-mix(in srgb, var(--line) 60%, transparent); font-size: 13px; }
.pl-inj li:last-child { border-bottom: 0; }
.pl-inj-ico { color: var(--danger); font-weight: 800; text-align: center; }
.pl-inj-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- Treino ---------- */
.pl-train { display: grid; grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); grid-template-areas: 'focus plan' 'int plan' 'pos plan'; gap: 16px; align-items: start; }
.pl-a-focus { grid-area: focus; min-width: 0; }
.pl-a-int { grid-area: int; min-width: 0; }
.pl-a-pos { grid-area: pos; min-width: 0; }
.pl-plan { grid-area: plan; position: sticky; top: 8px; min-width: 0; }
.pl-intro { margin: -4px 0 12px; }
.pl-focus-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.pl-focus, .pl-int, .pl-life-opt, .pl-poscard { position: relative; display: flex; flex-direction: column; align-items: stretch; gap: 6px; min-height: 44px; }
.pl-focus-h { display: flex; align-items: center; gap: 8px; }
.pl-cur { position: absolute; top: -1px; right: -1px; padding: 2px 8px; border-radius: 0 var(--radius) 0 8px; font-size: 10px; font-weight: 800; letter-spacing: 0.4px; text-transform: uppercase; color: var(--good); background: color-mix(in srgb, var(--good) 16%, transparent); border: 1px solid color-mix(in srgb, var(--good) 40%, transparent); }
.pl-focus-ico { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: var(--bg2); border: 1px solid var(--line); font-size: 15px; flex-shrink: 0; }
.choice.selected .pl-focus-ico { border-color: color-mix(in srgb, var(--accent) 50%, transparent); background: color-mix(in srgb, var(--accent) 10%, transparent); }
.pl-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-top: auto; padding-top: 2px; }
.pl-chip { font-size: 10.5px; padding: 1px 7px; border-radius: 10px; background: var(--bg2); border: 1px solid var(--line); color: var(--muted); white-space: nowrap; }
.choice.selected .pl-chip { color: var(--text); border-color: color-mix(in srgb, var(--accent) 35%, transparent); }

.pl-pos-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(138px, 1fr)); gap: 8px; }
.pl-poscard { padding: 10px; gap: 7px; }
.pl-poscard:disabled { opacity: 0.5; cursor: default; }
.pl-poscard-h { display: flex; align-items: center; gap: 7px; min-width: 0; }
.pl-poscard-n { font-weight: 600; font-size: 12.5px; line-height: 1.2; min-width: 0; overflow-wrap: anywhere; }
.pl-poscard-f { display: flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; }
.pl-poscard-f .badge { margin-left: auto; }

.pl-int-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.pl-int-fx { display: flex; flex-direction: column; gap: 4px; margin-top: 4px; padding-top: 8px; border-top: 1px solid var(--line); font-size: 12px; }
.pl-int-fx > span { display: grid; grid-template-columns: minmax(0, 1fr) auto 46px; gap: 8px; align-items: center; }
.pl-int-fx b { text-align: right; font-variant-numeric: tabular-nums; }
.pl-dots { display: inline-flex; gap: 3px; }
.pl-dots i { width: 7px; height: 7px; border-radius: 50%; background: var(--line2); }
.pl-dots.good i.on { background: var(--good); }
.pl-dots.warn i.on { background: var(--warn); }
.pl-dots.bad i.on { background: var(--danger); }
.pl-dots.neutral i.on { background: var(--muted); }
.pl-int-intensa.selected { border-color: var(--warn); box-shadow: inset 0 0 0 1px var(--warn); background: color-mix(in srgb, var(--warn) 7%, transparent); }

.pl-plan-name { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--radius-sm); background: var(--bg2); border: 1px solid var(--line); }
.pl-plan-name .pl-focus-ico { width: 34px; height: 34px; font-size: 17px; }
.pl-sub { margin: 16px 0 8px; font-size: 11px; }
.pl-learn { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.pl-boosts .pl-attr:last-child { border-bottom: 0; }
.pl-tradeoff { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.pl-tradeoff > div { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border-radius: var(--radius-sm); background: var(--bg2); border: 1px solid var(--line); font-size: 11px; }
.pl-tradeoff b { font-size: 16px; }
.pl-note.warn { color: var(--warn); }
.pl-note.bad { color: var(--danger); }
.pl-plan-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.pl-plan-actions .btn { min-height: 40px; }
.pl-plan-actions .btn-primary { flex: 1; max-width: 220px; }

.pl-life { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.pl-life-fx { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: auto; padding-top: 8px; border-top: 1px solid var(--line); font-size: 11px; }
.pl-life-fx > span { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pl-life-fx b { font-size: 13px; overflow-wrap: anywhere; }

/* ---------- listas recolhíveis ---------- */
.pl-inj-sum { margin: -4px 0 4px; }
.pl-more > summary { display: flex; align-items: center; gap: 6px; min-height: 40px; cursor: pointer; list-style: none; color: var(--accent2); font-size: 13px; font-weight: 600; }
.pl-more > summary::-webkit-details-marker { display: none; }
.pl-more > summary::after { content: '▾'; font-size: 11px; }
.pl-more[open] > summary::after { transform: rotate(180deg); }
.pl-more[open] > summary { color: var(--muted); }

/* ---------- Carreira ---------- */
.pl-career-kpis { grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); }
.pl-kpi-gold { border-color: color-mix(in srgb, var(--gold) 35%, transparent); background: linear-gradient(180deg, color-mix(in srgb, var(--gold) 10%, transparent), var(--panel2)); }
.pl-kpi-gold .v { color: var(--gold); }
.pl-seasons td { vertical-align: top; }
.pl-season-l { white-space: nowrap; }
.pl-season-l .badge { margin-left: 6px; }
.pl-season-team { display: flex; align-items: center; gap: 6px; min-width: 0; }
.pl-season-team .team .nm { max-width: 220px; }
.pl-season-tr { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.pl-season-tr .badge { font-size: 10px; padding: 1px 7px; }
.pl-seasons td.num { padding-top: 9px; }
.pl-season-trn { font-size: 11px; font-weight: 700; color: var(--gold); margin-top: 3px; }

.pl-trophies { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.pl-trophy { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: var(--radius); border: 1px solid color-mix(in srgb, var(--gold) 28%, transparent);
  background: linear-gradient(135deg, color-mix(in srgb, var(--gold) 12%, transparent), color-mix(in srgb, var(--gold) 2%, transparent) 60%), var(--bg2); }
.pl-trophy.major { border-color: color-mix(in srgb, var(--gold) 60%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gold) 12%, transparent), 0 6px 18px color-mix(in srgb, var(--gold) 8%, transparent); }
.pl-trophy-ico { position: relative; flex-shrink: 0; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; font-size: 22px;
  background: radial-gradient(circle at 35% 30%, rgba(255, 233, 160, 0.35), color-mix(in srgb, var(--gold) 12%, transparent) 60%); border: 1px solid color-mix(in srgb, var(--gold) 45%, transparent); }
.pl-trophy.major .pl-trophy-ico { width: 52px; height: 52px; font-size: 26px; }
.pl-trophy-x { position: absolute; right: -6px; bottom: -4px; min-width: 24px; padding: 0 5px; border-radius: 10px; background: var(--gold); color: #1a1405; font-size: 11px; font-weight: 800; text-align: center; line-height: 18px; }
.pl-trophy-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pl-trophy-body b { color: var(--gold); line-height: 1.25; }
.pl-trophy-body span { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.pl-empty-gold { border-color: color-mix(in srgb, var(--gold) 30%, transparent); }

.pl-awards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pl-awards li { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: var(--radius-sm); background: var(--bg2); border: 1px solid var(--line); }
.pl-awards li.gold { border-color: color-mix(in srgb, var(--gold) 55%, transparent); background: linear-gradient(90deg, color-mix(in srgb, var(--gold) 14%, transparent), var(--bg2)); }
.pl-award-ico { font-size: 18px; width: 26px; text-align: center; flex-shrink: 0; }
.pl-award-n { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.pl-award-n span { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.pl-award-x { font-weight: 800; color: var(--accent2); }
.pl-ballon { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.pl-ballon-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.pl-ballon-chip { font-size: 12px; padding: 3px 9px; border-radius: 12px; background: var(--bg2); border: 1px solid var(--line); color: var(--muted); }
.pl-ballon-chip b { color: var(--text); }
.pl-ballon-chip.top { border-color: color-mix(in srgb, var(--accent2) 40%, transparent); }
.pl-ballon-chip.best { border-color: color-mix(in srgb, var(--gold) 60%, transparent); color: var(--gold); }
.pl-ballon-chip.best b { color: var(--gold); }

.pl-nt-card { background: radial-gradient(260px 140px at 100% 0, color-mix(in srgb, var(--pl-nt, #2ea8ff) 18%, transparent), transparent 70%), linear-gradient(180deg, var(--panel), var(--bg2)); }
.pl-nt-head { display: flex; align-items: center; gap: 12px; }
.pl-nt-head b { font-size: 16px; }
.pl-nt-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.pl-nt-stats > div { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: var(--radius-sm); background: var(--bg2); border: 1px solid var(--line); }
.pl-nt-stats b { font-size: 20px; font-variant-numeric: tabular-nums; }

.pl-retire { border-color: color-mix(in srgb, var(--warn) 35%, transparent); }
.pl-switch { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 48px; margin: 10px 0; padding: 10px 12px; border-radius: var(--radius); border: 1px solid var(--line2);
  background: var(--bg2); color: var(--text); font: inherit; text-align: left; cursor: pointer; }
@media (hover: hover) { .pl-switch:hover { border-color: var(--faint); } }
.pl-switch:focus-visible { outline: 2px solid var(--accent2); outline-offset: 2px; }
.pl-switch-ui { position: relative; flex-shrink: 0; width: 40px; height: 22px; border-radius: 12px; background: var(--line2); }
.pl-switch-ui i { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; }
.pl-switch[aria-checked='true'] { border-color: color-mix(in srgb, var(--warn) 55%, transparent); }
.pl-switch[aria-checked='true'] .pl-switch-ui { background: var(--warn); }
.pl-switch[aria-checked='true'] .pl-switch-ui i { transform: translateX(18px); }
.pl-switch-t { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pl-switch-t span { color: var(--muted); font-size: 12px; }
.pl-retire-now { min-height: 40px; }
.pl-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
.pl-modal-actions .btn { min-height: 40px; }

.pl-tl { list-style: none; margin: 0; padding: 0 0 0 4px; }
.pl-tl li { position: relative; display: flex; flex-direction: column; gap: 1px; padding: 0 0 12px 20px; border-left: 2px solid var(--line); }
.pl-tl li::before { content: ''; position: absolute; left: -6px; top: 3px; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 3px var(--panel); }
.pl-tl li.gold::before { background: var(--gold); }
.pl-tl li.blue::before { background: var(--accent2); }
.pl-tl li.red::before { background: var(--danger); }
.pl-tl li.nt::before { background: #b58cff; }
.pl-tl li:last-child { padding-bottom: 2px; }
.pl-more .pl-tl { margin-top: 0; }
.pl-tl-d { font-size: 11px; color: var(--faint); font-variant-numeric: tabular-nums; }
.pl-tl-t { font-size: 13px; }
.pl-tl li.gold .pl-tl-t { color: var(--gold); }

/* legado */
.pl-legacy { border-color: color-mix(in srgb, var(--gold) 45%, transparent);
  background: radial-gradient(600px 260px at 0 0, color-mix(in srgb, var(--gold) 14%, transparent), transparent 65%), radial-gradient(500px 240px at 100% 100%, color-mix(in srgb, var(--accent2) 10%, transparent), transparent 65%), linear-gradient(180deg, var(--panel), var(--bg2)); }
.pl-legacy-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 20px; }
.pl-tier { font-size: 32px; margin: 2px 0 4px; color: var(--gold); letter-spacing: 0.3px; }
.pl-tier-bar { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-top: 14px; }
.pl-tier-bar span { height: 8px; border-radius: 4px; background: var(--line); }
.pl-tier-bar span.done { background: color-mix(in srgb, var(--gold) 55%, transparent); }
.pl-tier-bar span.now { background: var(--gold); box-shadow: 0 0 10px color-mix(in srgb, var(--gold) 50%, transparent); }
.pl-tier-legend { display: flex; justify-content: space-between; font-size: 11px; color: var(--faint); margin-top: 4px; }
.pl-reveal { padding: 14px; border-radius: 12px; border: 1px solid color-mix(in srgb, var(--accent2) 35%, transparent); background: linear-gradient(135deg, color-mix(in srgb, var(--accent2) 12%, transparent), color-mix(in srgb, var(--accent) 5%, transparent)); }
.pl-reveal-nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 8px 0; }
.pl-reveal-nums > div { display: flex; flex-direction: column; }
.pl-reveal-nums span { font-size: 12px; color: var(--muted); }
.pl-reveal-nums b { font-size: 32px; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.pl-curve { display: flex; flex-direction: column; gap: 2px; margin-top: 10px; padding-top: 10px; border-top: 1px solid color-mix(in srgb, var(--accent2) 20%, transparent); }
.pl-curve b { font-size: 17px; text-transform: capitalize; }
.pl-hidden { margin-top: 18px; }
.pl-hidden-grid { display: flex; flex-direction: column; margin-top: 6px; }
.pl-hid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(80px, 160px) 44px; gap: 12px; align-items: center; font-size: 13px; padding: 6px 0; border-bottom: 1px solid color-mix(in srgb, var(--line) 50%, transparent); }
.pl-hid:last-child { border-bottom: 0; }
.pl-hid-l { display: flex; flex-direction: column; min-width: 0; }
.pl-hid-l small { font-size: 11px; color: var(--faint); }
.pl-hid b { text-align: right; font-variant-numeric: tabular-nums; }
.pl-hid-bar { height: 6px; border-radius: 3px; background: var(--bg); overflow: hidden; }
.pl-hid-bar i { display: block; height: 100%; border-radius: 3px; background: var(--accent2); }
.pl-hid-bar.good i { background: var(--good); }
.pl-hid-bar.bad i { background: var(--danger); }
.pl-reveal-extra { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid color-mix(in srgb, var(--accent2) 20%, transparent); }
.pl-reveal-extra > div { display: flex; flex-direction: column; gap: 2px; }
.pl-reveal-extra b { font-size: 17px; }

/* ---------- responsivo ---------- */
@media (max-width: 1100px) {
  .pl-legacy-top { grid-template-columns: 1fr; }
  .pl-train { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'focus' 'int' 'plan' 'pos'; }
  .pl-plan { position: static; }
  .pl-life { grid-template-columns: 1fr; }
  .pl-life-fx { grid-template-columns: repeat(3, minmax(0, 160px)); }
  .pl-hero { grid-template-columns: auto minmax(0, 1fr) auto; }
  .pl-scout { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .pl-page, .pl-stack { gap: 12px; }
  .pl-hero { grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px 14px; padding: 14px; align-items: start; }
  .pl-hero-kit { width: 72px; height: 72px; }
  .pl-hero-kit .shirt svg { width: 56px; height: 56px; }
  .pl-name { font-size: 22px; }
  .pl-facts { font-size: 12px; }
  .pl-facts > span:not(:last-child)::after { margin: 0 6px; }
  .pl-main > .pl-stack { display: contents; }
  .pl-o-status { order: 1; } .pl-o-attrs { order: 2; } .pl-o-pos { order: 3; } .pl-o-season { order: 4; } .pl-o-totals { order: 5; }
  .pl-o-rel { order: 6; } .pl-o-traits { order: 7; } .pl-o-inj { order: 8; }
  .pl-main { gap: 12px; }
  .pl-page .card-h a { display: inline-flex; align-items: center; min-height: 40px; }
  .pl-hero-ovr .ovr.lg { min-width: 58px; height: 52px; font-size: 28px; }
  .pl-attr-groups { grid-template-columns: 1fr; gap: 14px; }
  .pl-changepos { grid-template-columns: 1fr; }
  .pl-changepos .btn { width: 100%; }
  .pl-kpis-6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pl-node { min-width: 56px; padding: 5px 6px 6px; }
  .pl-inj li { grid-template-columns: 22px minmax(0, 1fr) auto; }
  .pl-inj li > :last-child { display: none; }
  .pl-focus-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .pl-focus { padding: 10px; }
  .pl-focus .d { font-size: 11.5px; }
  .pl-pos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pl-int-grid, .pl-life { grid-template-columns: 1fr; }
  .pl-plan-actions .btn-primary { max-width: none; }
  .pl-career-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pl-season-team .team .nm { max-width: 118px; }
  .pl-season-trn.show-sm { display: block !important; }
  .pl-seasons .badge.blue { font-size: 10px; padding: 1px 6px; }
  .pl-trophies { grid-template-columns: 1fr; }
  .pl-tier { font-size: 26px; }
  .pl-reveal-nums b { font-size: 26px; }
  .pl-hid { grid-template-columns: minmax(0, 1fr) 70px 40px; }
  .pl-modal-actions .btn { flex: 1; }
}

/* ---------- animações discretas ---------- */
@media (prefers-reduced-motion: no-preference) {
  .pl-node { transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease; }
  .pl-attr-bar i, .pl-node-fam i { transform-origin: left center; animation: pl-grow 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
  .pl-scale-band { transform-origin: left center; animation: pl-grow 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
  .pl-hid-bar i { transform-origin: left center; animation: pl-grow 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
  /* As barras crescem só na primeira visita à tela; ao voltar à aba ou depois de uma ação já estão no lugar. */
  .main:not([data-enter="first"]) :is(.pl-attr-bar i, .pl-node-fam i, .pl-scale-band, .pl-hid-bar i) { animation: none; }
  .pl-switch, .pl-trophy, .pl-awards li { transition: border-color 0.15s ease, background 0.15s ease; }
  .pl-switch-ui, .pl-switch-ui i, .pl-more > summary::after { transition: transform 0.18s ease, background 0.18s ease; }
  @keyframes pl-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
}
