/* Profile: a manager plate with the rank instrument, readout wells, charts in recessed scopes and the
   gameweeks as keys. The markup carries the real profile script's ids (lib/profile-section.js).
   .pf-ro and .pf-bar are shared with the Prices pane. */
.pf-cta{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px 28px;padding:8px 0 28px;border-bottom:1px solid var(--hair)}
.pf-cta[hidden],.pf-body[hidden]{display:none}
.pf-cta h1{font:600 clamp(30px,3.4vw,46px)/1.05 Sora;letter-spacing:-.04em;margin:4px 0 0}.pf-cta p{margin:10px 0 0;max-width:620px}

/* plate: identity on the left, the rank instrument on the right */
.pf-plate{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px 32px;padding:22px 24px;margin:0 0 14px;border-radius:18px;
  background:radial-gradient(ellipse at 0 0,color-mix(in oklab,var(--accent) 10%,transparent),transparent 55%),linear-gradient(var(--raised),var(--ground-2));border:1px solid var(--hair-2);box-shadow:var(--shadow),inset 0 1px #ffffff0d}
.pf-id{min-width:0}
.pf-id h1{margin:4px 0 0;font:600 clamp(28px,3.2vw,42px)/1.05 Sora;letter-spacing:-.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-id>p{margin:6px 0 0;font:600 14px Manrope;color:var(--muted)}
.pf-pills{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:14px}
.pf-live{display:inline-flex;align-items:center;gap:8px;font:700 12px Manrope;color:var(--ink-2)}
.pf-live::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--led);box-shadow:inset 0 1px 1px #0008;flex:none}
.pf-live.live::before,.pf-live.is-live::before,.pf-live[data-live=true]::before{background:var(--good);box-shadow:0 0 8px var(--good);animation:led 1.6s infinite}
.pf-pill{font:600 12.5px Manrope;color:var(--muted)}.pf-pill:empty{display:none}
.pf-rank{display:grid;justify-items:end;gap:2px;min-width:240px;padding:16px 20px;border-radius:14px;background:var(--well);border:1px solid var(--well-edge);box-shadow:inset 0 3px 10px #0007,inset 0 -1px #ffffff0a}
[data-theme=light] .pf-rank{box-shadow:inset 0 3px 8px #0002,inset 0 -1px #fff}
.pf-rank small{font:700 11px Manrope;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.pf-rank b{font:600 clamp(32px,3.6vw,46px)/1.05 Sora;letter-spacing:-.03em;color:var(--ink);
  background:repeating-linear-gradient(0deg,transparent 0 3px,#ffffff05 3px 4px);-webkit-background-clip:padding-box}
.pf-rank em{font:700 13px Manrope;font-style:normal;color:var(--muted)}
.pf-rank em .up,.pf-rank em.up{color:var(--good)}.pf-rank em .down,.pf-rank em.down{color:var(--bad)}

/* readout wells */
.pf-readouts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 22px}
.pf-readouts.pf-six{grid-template-columns:repeat(6,minmax(0,1fr))}
.pf-ro{display:grid;align-content:start;gap:4px;padding:14px 16px;border-radius:12px;background:var(--well);border:1px solid var(--well-edge);box-shadow:inset 0 2px 8px #0006,inset 0 -1px #ffffff0a;min-width:0}
[data-theme=light] .pf-ro{box-shadow:inset 0 2px 6px #0002,inset 0 -1px #fff}
.pf-ro small{font:700 11px Manrope;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-ro b{font:600 clamp(20px,2vw,28px)/1.1 Sora;letter-spacing:-.02em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-ro em{font:600 12px/1.35 Manrope;font-style:normal;color:var(--muted);min-height:1em}
.pf-ro .up,.pf-ro .pos{color:var(--good)}.pf-ro .down,.pf-ro .neg{color:var(--bad)}

/* tool tray, shared with Prices */
.pf-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 12px;margin:0 0 14px;border-radius:12px;background:var(--tray);border:1px solid var(--tray-edge);box-shadow:inset 0 2px 5px #0005,inset 0 -1px #ffffff0c}
[data-theme=light] .pf-bar{box-shadow:inset 0 2px 4px #0002,inset 0 -1px #fff}
.pf-bar .field.sm{min-height:34px}.pf-bar select{background:none;border:0;outline:none;color:var(--ink);font:600 13px Manrope;max-width:280px}
.pf-league{flex:0 1 360px;gap:8px}.pf-league select{flex:1;min-width:0}

.pf-tabs{display:flex;justify-content:flex-start;margin:0 0 18px}

/* scopes: charts sit in a recessed screen with a faint grid */
.pf-scope{margin:0 0 22px;padding:14px 16px 10px;border-radius:16px;background:var(--well);border:1px solid var(--well-edge);box-shadow:inset 0 3px 12px #0007,inset 0 -1px #ffffff0a}
[data-theme=light] .pf-scope{box-shadow:inset 0 3px 10px #0002,inset 0 -1px #fff}
.pf-scope-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:0 0 8px}
.pf-scope-head>div:first-child{margin-right:auto}
.pf-scope-head h2{font:600 18px Sora}.pf-scope-head p{margin:2px 0 0;font-size:12.5px;color:var(--muted)}
.pf-season-head{margin-top:8px}
.pf-scope svg{display:block;width:100%;height:auto;border-radius:10px;background:linear-gradient(var(--hair) 1px,transparent 1px) 0 0/100% 43px,linear-gradient(90deg,var(--hair) 1px,transparent 1px) 0 0/55px 100%}
.pf-scope svg text{font-family:Manrope,sans-serif}
.toggle input{position:absolute;opacity:0;width:1px;height:1px}
.toggle input:checked+.slot i{left:22px}
.toggle input:checked+.slot{background:linear-gradient(90deg,var(--accent-soft),var(--tray))}
.toggle input:focus-visible+.slot{outline:2px solid var(--info);outline-offset:2px}

/* insight cards */
.pf-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pf-card{padding:16px 18px;border-radius:14px;background:linear-gradient(var(--raised),var(--ground-2));border:1px solid var(--hair-2);box-shadow:inset 0 1px #ffffff0a}
.pf-card small{display:block;font:700 11px Manrope;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pf-card b{display:block;margin:6px 0 4px;font:600 24px Sora;letter-spacing:-.02em}.pf-card p{margin:0;font-size:13px;color:var(--muted)}
.chips-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:7px;font:700 12px Manrope;color:var(--key-ink);background:linear-gradient(var(--key-top),var(--key-bot));border:1px solid var(--key-edge);border-top-color:var(--key-lip);box-shadow:0 2px 0 var(--key-skirt)}
.chip-list-inline{display:inline-flex;flex-wrap:wrap;gap:6px}.chip-mini{padding:1px 7px;border-radius:999px;background:var(--hair);font:700 11px Manrope}
.color-swatch{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:middle;box-shadow:0 0 0 2px var(--ground-2)}

/* gameweeks: one key per week, an LED for the rank move */
.pf-sub-note{margin:0 0 12px}
.gw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.gw-tile{position:relative;display:grid;gap:4px;padding:12px 14px 12px;border-radius:12px;cursor:pointer;text-align:left;color:var(--key-ink);
  background:linear-gradient(var(--key-top),var(--key-mid) 50%,var(--key-bot));border:1px solid var(--key-edge);border-top-color:var(--key-lip);box-shadow:inset 0 1px #ffffff10,0 4px 0 var(--key-skirt),0 6px 10px #0004;transition:transform .09s,box-shadow .09s}
.gw-tile:hover{filter:brightness(1.05)}
.gw-tile:active{transform:translateY(3px);box-shadow:inset 0 1px 2px #0005,0 1px 0 var(--key-skirt)}
.gw-tile::after{content:"";position:absolute;top:12px;right:12px;width:7px;height:7px;border-radius:50%;background:var(--led);box-shadow:inset 0 1px 1px #0008}
.gw-tile.up::after{background:var(--good);box-shadow:0 0 7px var(--good)}.gw-tile.down::after{background:var(--bad);box-shadow:0 0 7px var(--bad)}
.gw-top{display:grid;gap:2px}
.gw-name{font:700 11px Manrope;letter-spacing:.08em;color:var(--muted)}
.gw-points{font:600 30px/1.05 Sora;letter-spacing:-.03em;color:var(--ink)}
.gw-rank{font:600 12.5px Manrope;color:var(--ink-2)}
.gw-move{margin-left:4px}.gw-move.up,.up{color:var(--good)}.gw-move.down,.down{color:var(--bad)}
.gw-linknote{font:600 11px Manrope;color:var(--faint)}

/* tables in a panel */
.pf-panel{border-radius:14px;border:1px solid var(--hair);background:var(--ground-2);margin:0 0 14px}
.league-table td,.league-table th{white-space:nowrap}
.league-table td:nth-child(3),.league-table td:nth-child(4),.league-table th:nth-child(3),.league-table th:nth-child(4){text-align:left}
.league-table tbody tr:hover{background:var(--accent-soft)}
.league-table .compare-btn{min-height:28px;padding:0 10px;border-radius:7px;cursor:pointer;font:700 11.5px Manrope;color:var(--key-ink);background:linear-gradient(var(--key-top),var(--key-bot));border:1px solid var(--key-edge);box-shadow:0 2px 0 var(--key-skirt)}
.league-table .compare-btn:active{transform:translateY(2px);box-shadow:0 0 0 var(--key-skirt)}
.league-table .compare-btn.active,.league-table .compare-btn[aria-pressed=true]{color:var(--accent-ink);background:linear-gradient(var(--acc-top),var(--acc-bot));border-color:var(--acc-edge);box-shadow:0 2px 0 var(--acc-skirt)}
.empty-state{padding:24px!important;text-align:center!important;color:var(--muted)}
.kft-table-skeleton{display:block;height:14px;border-radius:6px;background:var(--skel)}

@media (max-width:1100px){.pf-readouts.pf-six{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.pf-readouts{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-readouts.pf-six{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-insights{grid-template-columns:1fr}}
@media (max-width:640px){.pf-plate{grid-template-columns:1fr;padding:18px}.pf-rank{justify-items:start;min-width:0}.pf-scope{padding:12px 10px 8px}.gw-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pf-pill[hidden]{display:none!important}
