/* Player profiles (/player, /player/<Name>). Shared tokens and base styles live in site.css. */
.player-search{display:grid;gap:6px;max-width:560px;margin:0 0 var(--space-5)}
.player-search label{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-soft)}
.search-row{display:flex;gap:8px}
.search-row input{flex:1 1 auto;min-width:0;min-height:44px;padding:10px 14px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--input-bg);color:var(--text);font:16px var(--font-body)}
.search-row input:focus{outline:2px solid var(--focus);outline-offset:1px}
.search-row .button{flex:none}
.section-title{margin:var(--space-6) 0 var(--space-3);font-size:var(--fs-lg)}
/* Landing: highest level characters */
.landing-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin:0;padding:0;list-style:none}
.landing-list a{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);text-decoration:none;transition:background .15s,border-color .15s}
.landing-list a:hover{background:var(--surface-hover);border-color:var(--border-highlight)}
.landing-list .rank{min-width:26px;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}
.landing-list .who{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.landing-list .who strong{overflow-wrap:anywhere}
.landing-list .who small{color:var(--text-soft);font-size:12px}
.class-head{display:block;flex:none;width:30px;height:30px;object-fit:contain;border-radius:50%;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border)}
.omega{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;font-size:12px;font-weight:700;color:#e6dcff;background:#8e6bff33;border:1px solid #8e6bff88;vertical-align:1px}
/* Hero */
.profile-hero{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);overflow:hidden;background:radial-gradient(120% 140% at 100% 0%,#f1b53d1c,#0000 55%),var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}
.profile-hero h1{margin:0;font-size:var(--fs-3xl);line-height:1.05;overflow-wrap:anywhere}
.p-title{margin:6px 0 0;font-weight:600;font-style:italic;color:var(--text-soft);text-shadow:0 1px 2px #0009}
.p-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:var(--space-3) 0 0;color:var(--text-soft);font-size:var(--fs-md)}
.p-meta strong{color:var(--text)}
.p-crest{width:40px;height:40px;object-fit:contain}
.dot{color:var(--faint)}
.p-tags{display:flex;flex-wrap:wrap;gap:6px;margin:var(--space-3) 0 0;padding:0;list-style:none}
.p-tags li{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-2);color:var(--text-soft);font-size:13px;font-weight:600}
.p-tags li b{color:var(--muted);font-weight:600}
.p-tags .swatch{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px currentColor}
.hero-art{align-self:end;margin:calc(var(--space-5) * -1) 0 calc(var(--space-5) * -1)}
.hero-art img{display:block;width:260px;height:260px;object-fit:contain;object-position:bottom;filter:drop-shadow(0 10px 24px #0009)}
/* Highlights */
.stat-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:var(--space-4) 0}
.tile{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);text-decoration:none}
a.tile:hover{background:var(--surface-hover);border-color:var(--border-highlight)}
.tile-label{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.tile-value{font-family:var(--font-heading);font-size:var(--fs-xl);line-height:1.15;color:var(--accent);font-variant-numeric:tabular-nums}
.tile-sub{font-size:13px;color:var(--text-soft)}
.kamas-icon{display:inline-block;width:18px;height:18px;margin-left:4px;vertical-align:-2px}
/* Cards */
.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
.p-card{padding:var(--space-4) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);min-width:0}
.p-card.wide{grid-column:1/-1}
.p-card h2{margin:0 0 var(--space-3);font-size:var(--fs-lg)}
.p-card .note{margin:var(--space-3) 0 0}
.p-facts{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0}
.p-facts dt{color:var(--muted);font-size:14px}
.p-facts dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.p-facts small{margin-left:6px;font-weight:400}
.time-rows{display:grid;gap:10px}
.time-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:var(--radius);background:var(--surface-2)}
.time-row span{color:var(--text-soft)}
.time-row strong{font-size:var(--fs-md);color:var(--accent-soft);font-variant-numeric:tabular-nums;text-align:right}
.time-row small{display:block;font-weight:400}
/* Professions */
.job-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;margin:0;padding:0;list-style:none}
.job{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:4px 10px;padding:8px 12px 8px 8px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border-soft)}
.job-icon{grid-row:span 2;width:36px;height:36px;object-fit:contain}
.job-name{font-weight:600;overflow-wrap:anywhere}
.job-level{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}
.job-rank{grid-column:2/-1;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.job-rank a{color:var(--accent-soft)}
.bar{display:block;flex:1 1 auto;height:6px;border-radius:999px;background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--border);overflow:hidden}
.bar i{display:block;height:100%;border-radius:inherit;background:var(--accent-gradient)}
.bar.max i{background:linear-gradient(90deg,#8e6bff,#c6b2ff)}
/* Achievements */
.ach-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-bottom:var(--space-3)}
.ach-summary strong{font-family:var(--font-heading);font-size:var(--fs-xl);color:var(--accent)}
.ach-summary .bar{flex:1 1 200px;height:10px}
.ach-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 18px;margin:0 0 var(--space-4);padding:0;list-style:none}
.ach-cats li{display:grid;gap:4px;font-size:14px}
.ach-cats .cat-line{display:flex;justify-content:space-between;gap:8px}
.ach-cats .cat-line span:last-child{color:var(--muted);font-variant-numeric:tabular-nums}
.ach-cats .bar i{background:var(--cat,var(--accent))}
.recent-title{margin:0 0 8px;font-size:var(--fs-md)}
.recent{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.recent li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:9px 12px;border-radius:var(--radius);background:var(--surface-2);border-left:3px solid var(--cat,var(--accent))}
.recent .r-name{font-weight:600}
.recent .r-points{color:var(--accent-soft);font-weight:700;white-space:nowrap}
.recent .r-desc{grid-column:1/-1;font-size:13px;color:var(--text-soft)}
.recent .r-meta{grid-column:1/-1;font-size:12px;color:var(--muted)}
.empty{color:var(--text-soft)}
.p-facts .swatch{display:inline-block;width:10px;height:10px;margin-right:7px;border-radius:50%;vertical-align:0;box-shadow:0 0 0 1px #fff3}
#p-freshness{margin-top:var(--space-4)}
#player-missing h1{margin-top:0}
@media(max-width:900px){.stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-grid{grid-template-columns:1fr}.hero-art img{width:200px;height:200px}}
@media(max-width:560px){
 .profile-hero{grid-template-columns:1fr;padding:var(--space-4)}
 .hero-art{order:-1;justify-self:center;margin:0 0 -8px}
 .hero-art img{width:150px;height:150px}
 .profile-hero h1{font-size:var(--fs-2xl)}
 .p-meta{font-size:var(--fs-base)}
 .tile{padding:10px 12px}.tile-value{font-size:var(--fs-lg)}
 .p-card{padding:var(--space-3) var(--space-4)}
 .search-row{flex-wrap:wrap}.search-row .button{flex:1 1 100%}
 .job-list,.ach-cats,.landing-list{grid-template-columns:1fr}
}
