.pf-live { display: flex; align-items: center; gap: 8px; margin: 4px 0; font-weight: 600; }
.pf-status { font-style: italic; color: var(--ink-soft); margin: 4px 0; }
.ring-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: -8px 0 14px; }
.rl-connected { border-color: var(--live); }
.rl-following { border-color: #3b82f6; }
.rl-neutral { border-color: #eab308; }
.rl-blocked { border-color: var(--down); }
.vs-score { font-size: 1.4rem; font-weight: 900; color: var(--gold); }
.vs-tbl tr.lead-me td:nth-child(2) { color: var(--ok); font-weight: 800; }
.vs-tbl tr.lead-them td:nth-child(3) { color: var(--bad); font-weight: 800; }
.heat-grid { display: flex; gap: 3px; }
.heat-col { display: flex; flex-direction: column; gap: 3px; }
.heat-col i.h1 { background: rgba(34,197,94,.35); }
.heat-col i.h2 { background: rgba(34,197,94,.55); }
.heat-col i.h3 { background: rgba(34,197,94,.8); }
.heat-col i.today { outline: 2px solid var(--gold); outline-offset: -1px; }
.troph-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.av-strip { display: flex; flex-wrap: wrap; gap: 10px; }
.av-item { display: flex; flex-direction: column; align-items: center; gap: 4px; width: 72px; text-decoration: none !important; color: var(--ink); font-size: .72rem; text-align: center; }
.av-item.common .avatar { box-shadow: 0 0 0 3px var(--bg), 0 0 0 5px var(--live); }
.pf-av { position: relative; border-radius: 50%; }
.pf-av[class*="rel-"] .avatar.xl { box-shadow: 0 0 0 4px var(--card); }
.online-dot { position: absolute; right: 6px; bottom: 6px; width: 20px; height: 20px; border-radius: 50%; background: var(--ok); border: 3px solid var(--card); }
.pf-bio { color: var(--ink-soft); }
.pf-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; width: 100%; }
.pf-stats .medals { display: flex; justify-content: center; gap: 10px; align-items: center; grid-column: 1 / -1; }
.award-list { list-style: none; margin: 0; padding: 6px 0; }
.badges { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 12px; }
.badge.locked { opacity: .5; }
.badge-ic { font-size: 1.9rem; line-height: 1; }
.gift-ic { display: grid; place-items: center; height: 48px; }
.gb-form { display: flex; gap: 10px; align-items: flex-end; margin-bottom: 16px; }
.gb-form .btn { flex: none; }
.gb-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.gb-body { flex: 1; min-width: 0; }
.gb-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 2px; }
@media (max-width: 560px) {
  .gb-form { flex-direction: column; align-items: stretch; }
}
.gift-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 10px; margin: 6px 0 4px; }
.gp-item { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 8px 10px; border: 2px solid var(--line); border-radius: 14px; background: var(--bg2); cursor: pointer; transition: border-color .12s, transform .12s, box-shadow .12s; text-align: center; }
.gp-item input { position: absolute; opacity: 0; pointer-events: none; }
.gp-name { font-size: .78rem; color: var(--ink); line-height: 1.15; }
.gp-price { font-weight: 800; color: var(--gold); font-variant-numeric: tabular-nums; }
.gp-price::after { content: ' T'; font-weight: 600; color: var(--muted); }
.gp-days { font-size: .68rem; color: var(--muted); }
.gp-item.locked { opacity: .45; cursor: not-allowed; }
.gp-item.locked::after { content: ''; position: absolute; top: 6px; right: 8px; width: .95rem; height: .95rem; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20class%3D%22sgzi%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Crect%20x%3D%225%22%20y%3D%2210.5%22%20width%3D%2214%22%20height%3D%2210%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M8%2010.5V7.5a4%204%200%200%201%208%200v3M12%2014.5v2%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20class%3D%22sgzi%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Crect%20x%3D%225%22%20y%3D%2210.5%22%20width%3D%2214%22%20height%3D%2210%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M8%2010.5V7.5a4%204%200%200%201%208%200v3M12%2014.5v2%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat; }
.rank-spark { margin-top: 4px; }
.sortable th[data-sort]::after { content: ' ↕'; opacity: .35; font-size: .75em; }
.sortable th[aria-sort="descending"]::after { content: ' ↓'; opacity: 1; }
.sortable th[aria-sort="ascending"]::after { content: ' ↑'; opacity: 1; }
@media (max-width: 599px) {
  .pf-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
  .pf-body h1 { justify-content: flex-start; }
  .pf-stats { width: auto; justify-self: stretch; }
}
.lvl-badge { display: inline-flex; align-items: center; gap: 4px; font-weight: 800; color: var(--gold); }
.pf-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; }
.pf-jump { position: sticky; top: calc(64px + env(safe-area-inset-top)); z-index: 5; margin: 0 0 14px; padding: 8px 0; background: var(--bg); flex-wrap: nowrap; }
@media (max-width: 899px) {
  .pf-jump { top: calc(56px + env(safe-area-inset-top)); }
}
.pf-vitrine { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.pv-badge, .pv-rec { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px 6px 8px; border-radius: 999px; background: var(--card2); border: 1px solid rgba(255, 176, 32, .45); font-size: .85rem; color: var(--ink); text-decoration: none !important; }
.pf-fold > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; }
.pf-fold > summary::-webkit-details-marker { display: none; }
.pf-fold > summary h2 { margin: 0; }
.pf-fold > summary::after { content: '▾'; color: var(--muted); font-size: 1.1rem; transition: transform .15s; }
.pf-fold[open] > summary::after { transform: rotate(180deg); }
.badge-more { margin-top: 12px; }
.badge-more > summary { cursor: pointer; color: var(--accent); font-size: .9rem; }
.badge-more .badges { margin-top: 12px; }
.miles { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.mi-ic { font-size: 1.2rem; width: 1.6em; text-align: center; flex: none; }
@media (max-width: 599px) {
  #recTbl thead { display: none; }
  #recTbl, #recTbl tbody, #recTbl tr, #recTbl td { display: block; width: 100%; }
  #recTbl tr { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 12px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
  #recTbl td { padding: 0 !important; border: 0 !important; text-align: left !important; font-size: .85rem; }
  #recTbl td.hide-sm { display: block; }
  #recTbl td:first-child { grid-column: 1 / -1; font-weight: 700; font-size: .95rem; }
  #recTbl td:nth-child(n+2)::before { display: block; color: var(--muted); font-size: .72rem; }
  #recTbl td:nth-child(2)::before { content: 'Rekord'; }
  #recTbl td:nth-child(3)::before { content: 'Platz ewig'; }
  #recTbl td:nth-child(4)::before { content: 'Diesen Monat'; }
  #recTbl td:nth-child(5)::before { content: 'Platz Monat'; }
  #recTbl td:nth-child(6)::before { content: 'Form'; }
  #recTbl td:nth-child(7)::before { content: 'Duelle (S/G)'; }
  #recTbl td:nth-child(8)::before { content: 'Gespielt'; }
}
.pf-stats .medals { gap: 18px; flex-wrap: wrap; }
.pf-stats .medals .med-n { font-size: 1rem; }
.pf-stats > div { display: flex; flex-direction: column; justify-content: center; gap: 2px; min-width: 0; }
.pf-stats span { line-height: 1.3; }
.pf-body .pf-actions { margin-top: 10px; }
.pf-stats > .medals { flex-direction: row; justify-content: center; align-items: center; }
.pf-kopf { display: flex; flex-direction: column; align-items: center; gap: 14px 24px; width: 100%; min-width: 0; }
.pf-kopf .pf-av { flex: none; margin: 8px; }
.pf-body { display: flex; flex-direction: column; gap: 6px; min-width: 0; flex: 1; width: 100%; }
.pf-body h1 { margin: 0; }
.pf-meta { margin: 0; color: var(--muted); }
.pf-body .pf-live { flex-wrap: wrap; justify-content: center; margin: 2px 0; }
.pf-body .pf-live .btn { min-height: 32px; padding: 4px 12px; }
.pf-body .pf-status, .pf-body .pf-bio { margin: 0; }
.pf-body .pf-vitrine { margin: 2px 0; }
.pf-fakten { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 7px 16px; margin: 6px 0 0; padding-top: 12px; border-top: 1px solid var(--line); text-align: left; font-size: .92rem; }
.pf-fakten > div { display: contents; }
.pf-fakten dt { color: var(--muted); font-size: .8rem; align-self: center; }
.pf-fakten dd { margin: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; min-width: 0; }
.pf-wertung .stars { color: var(--gold); letter-spacing: 2px; font-size: 1.05rem; }
.pf-fakten .star-rate button { font-size: 1.25rem; }
.pf-stats { align-self: start; }
.pf-leiste { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 16px; width: 100%; padding-top: 16px; border-top: 1px solid var(--line); }
.pf-l-haupt, .pf-l-mehr { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; }
.pf-leiste form.inline { margin: 0; }
.btn.pf-ic { padding-inline: 10px; }
.pf-spielen > summary.btn { list-style: none; padding: 6px 12px; border-radius: 10px; gap: 8px; }
.pf-spielen > summary::-webkit-details-marker { display: none; }
.pf-spielen .pf-pfeil { color: var(--muted); font-size: .8em; transition: transform .15s; }
.pf-spielen[open] .pf-pfeil { transform: rotate(180deg); }
.pf-spielen .menu-pop { left: 0; right: auto; min-width: 220px; }
.pf-spielen .menu-pop p { margin: 4px 12px 6px; }
@media (min-width: 600px) {
  .pf-kopf { flex-direction: row; align-items: flex-start; text-align: left; }
  .pf-body h1 { justify-content: flex-start; }
  .pf-body .pf-live { justify-content: flex-start; }
}
@media (min-width: 900px) {
  .profile > .pf-kopf { grid-area: kopf; }
  .profile > .pf-stats { grid-area: stats; }
  .profile > .pf-leiste { grid-area: leiste; justify-content: space-between; }
  .pf-l-haupt, .pf-l-mehr { justify-content: flex-start; }
}
.profile.card { overflow: visible; }
.pf-fakten dd > span { white-space: nowrap; }
