.profile-v2-ribbon{display:grid;grid-template-columns:1.15fr .85fr 1.2fr;gap:18px;align-items:center;margin-bottom:14px;overflow:hidden;position:relative}
.profile-v2-ribbon:before{content:"";position:absolute;inset:-30% 45% auto -8%;height:180px;background:radial-gradient(circle,rgba(114,227,255,.14),transparent 66%);pointer-events:none}
.profile-rank span,.profile-rank-meter span,.trade-match-v2>span{display:block;font-size:.64rem;font-weight:900;letter-spacing:.13em;color:var(--muted);text-transform:uppercase}
.profile-rank h3{margin:5px 0;font-size:1.45rem}
.profile-rank p{margin:0;color:var(--muted);font-size:.82rem}
.profile-rank-sprite{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:16px;background:color-mix(in srgb,var(--panel) 86%,transparent)}
.profile-rank-sprite img{width:58px;height:58px;object-fit:contain;filter:drop-shadow(0 10px 12px rgba(0,0,0,.25))}
.profile-rank-sprite strong{font-size:.8rem}
.profile-rank-meter>div{height:8px;margin:8px 0;border-radius:99px;background:color-mix(in srgb,var(--text) 10%,transparent);overflow:hidden}
.profile-rank-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--gold,#f4c96b))}
.profile-rank-meter small{color:var(--muted)}
.profile-v2-extras{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.profile-favourites{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.profile-favourites>p{grid-column:1/-1;width:100%;max-width:none;margin:0;padding:14px 2px;line-height:1.5}
.profile-favourites>div{position:relative;display:grid;place-items:center;gap:5px;padding:9px 5px;border:1px solid color-mix(in srgb,var(--text) 9%,transparent);border-radius:14px;background:color-mix(in srgb,var(--panel) 85%,transparent);text-align:center}
.profile-favourites img{height:52px;width:58px;object-fit:contain}
.profile-favourites span{font-size:.64rem;line-height:1.15}
.profile-favourites b{position:absolute;right:6px;top:5px;color:#ffd76a}
.profile-history{display:grid;gap:8px}
.profile-history>div{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:color-mix(in srgb,var(--panel) 82%,transparent);border:1px solid color-mix(in srgb,#ff5d72 20%,transparent)}
.profile-history>div>span{color:#ff7b8d;font-size:1.15rem}
.profile-history p{margin:0}
.profile-history strong,.profile-history small{display:block}
.profile-history small{margin-top:2px;color:var(--muted);font-size:.68rem}
.achievement-v2{display:grid;gap:12px}
.achievement-v2-head{display:grid;grid-template-columns:1fr auto;align-items:center}
.achievement-v2-head span{font-size:.65rem;font-weight:900;letter-spacing:.13em;color:var(--accent)}
.achievement-v2-head h3{margin:4px 0;font-size:1.5rem}
.achievement-v2-head p{margin:0;color:var(--muted);max-width:680px}
.achievement-v2-ring{--p:var(--achievement-pct);width:76px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--achievement-pct)*1%),color-mix(in srgb,var(--text) 8%,transparent) 0);position:relative}
.achievement-v2-ring:before{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--panel)}
.achievement-v2-ring strong{position:relative;font-size:.9rem}
.achievement-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:2px}
.achievement-v2-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.achievement-v2-card{display:grid;grid-template-columns:48px 1fr;gap:10px;padding:14px;border:1px solid color-mix(in srgb,var(--text) 8%,transparent);border-radius:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 96%,transparent),color-mix(in srgb,var(--panel) 82%,transparent))}
.achievement-v2-card.locked{opacity:.72}
.achievement-v2-card.unlocked{border-color:color-mix(in srgb,var(--gold,#f4c96b) 38%,transparent);box-shadow:inset 0 0 24px color-mix(in srgb,var(--gold,#f4c96b) 6%,transparent)}
.achievement-v2-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);font-size:1.15rem}
.achievement-v2-card span{font-size:.58rem;font-weight:900;letter-spacing:.09em;color:var(--muted)}
.achievement-v2-card h3{margin:4px 0;font-size:.98rem}
.achievement-v2-card p{margin:0;color:var(--muted);font-size:.73rem;line-height:1.4}
.achievement-v2-progress{height:5px;border-radius:99px;overflow:hidden;background:color-mix(in srgb,var(--text) 8%,transparent);margin:9px 0 4px}
.achievement-v2-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--gold,#f4c96b));border-radius:inherit}
.achievement-v2-card small{color:var(--muted)}
.party-goals-v2{margin-top:12px}
.party-goal-form{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:8px;margin:12px 0}
.party-goal-list{display:grid;gap:7px}
.party-goal-list article{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px;border:1px solid color-mix(in srgb,var(--text) 8%,transparent);border-radius:13px;background:color-mix(in srgb,var(--panel) 87%,transparent)}
.party-goal-list article>span{color:var(--accent)}
.party-goal-list strong,.party-goal-list small{display:block}
.party-goal-list small{color:var(--muted);margin-top:2px}
.trade-v2-panel{margin-top:12px}
.trade-v2-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.trade-v2-grid label{display:grid;gap:5px}
.trade-v2-grid label>span{font-size:.67rem;font-weight:800;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.trade-publish-gated{margin-left:8px;opacity:.68}
.trade-match-v2{margin-top:14px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--text) 8%,transparent)}
.trade-match-v2 p{margin:7px 0;padding:8px 10px;border-radius:11px;background:color-mix(in srgb,var(--accent) 5%,var(--panel));font-size:.76rem}
.trade-match-v2 p strong{color:var(--accent)}
@media(max-width:900px){.profile-v2-ribbon{grid-template-columns:1fr 1fr}
.profile-rank-meter{grid-column:1/-1}
.achievement-v2-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){.profile-v2-ribbon,.profile-v2-extras,.achievement-v2-grid,.trade-v2-grid{grid-template-columns:1fr}
.profile-rank-meter{grid-column:auto}
.profile-favourites{grid-template-columns:repeat(3,1fr)}
.party-goal-form{grid-template-columns:1fr}
.achievement-v2-head{grid-template-columns:1fr auto;gap:10px}
.trade-publish-gated{margin:8px 0 0;width:100%}
}
@media(prefers-reduced-motion:reduce){.profile-v2-ribbon:before{display:none}
}
.profile-v2-ribbon{grid-template-columns:1fr .9fr 1fr}
.profile-rank-sprite img{width:82px;height:82px;filter:drop-shadow(0 12px 15px rgba(0,0,0,.3)) brightness(1.08)}
.profile-rank-sprite>div{display:grid;gap:4px}.profile-rank-sprite>div strong{font-family:Georgia,'Palatino Linotype',serif;font-size:.92rem}.profile-rank-sprite>div small{color:var(--st-text-soft);font-size:.72rem;font-weight:800}
.profile-ribbon-controls{grid-column:1/-1;display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:8px;padding-top:12px;border-top:1px solid var(--st-border)}
.profile-ribbon-controls label{display:grid;gap:5px}.profile-ribbon-controls label>span{font-size:.58rem;font-weight:900;letter-spacing:.11em;color:var(--st-muted)}
.profile-v2-extras{grid-template-columns:1fr}
.achievement-title-reward{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;padding:7px 8px;border:1px solid color-mix(in srgb,var(--st-gold) 24%,var(--st-border));border-radius:10px;background:color-mix(in srgb,var(--st-gold) 7%,var(--st-surface-2))}.achievement-title-reward .btn{min-height:30px;padding:5px 8px;font-size:.62rem}
@media(max-width:620px){.profile-ribbon-controls{grid-template-columns:1fr}.profile-rank-sprite img{width:72px;height:72px}}

/* Keep the profile ribbon selector legible in every finish theme. */
.profile-ribbon-controls .select{min-height:48px;background:var(--st-surface-2,var(--ct-surface))!important;color:var(--ct-text)!important;border:1px solid color-mix(in srgb,var(--ct-secondary) 38%,transparent)!important;font-weight:750}.profile-ribbon-controls .select option{background:#101a2d;color:#f5f7fb}html[data-theme="light"] .profile-ribbon-controls .select{background:#fffdf7!important;color:#1f2c24!important;border-color:#76867b!important}html[data-theme="light"] .profile-ribbon-controls .select option{background:#fffdf7;color:#1f2c24}.profile-ribbon-controls .btn:disabled{cursor:wait;opacity:.7}

/* Readable, theme-safe visual profile Sprite picker. */
.profile-sprite-picker-head{display:flex;align-items:end;justify-content:space-between;gap:12px}.profile-sprite-picker-head label{display:grid;flex:1;gap:6px}.profile-sprite-picker-head label>span{font-size:.62rem;font-weight:900;letter-spacing:.1em;color:var(--st-muted);text-transform:uppercase}.profile-sprite-picker-head>small{padding-bottom:13px;color:var(--st-muted)}
.profile-sprite-picker{display:grid;grid-template-columns:repeat(5,minmax(112px,1fr));gap:9px;max-height:340px;overflow:auto;overscroll-behavior:contain;padding:4px 4px 8px;scrollbar-gutter:stable}
.profile-sprite-choice{position:relative;display:grid;grid-template-rows:82px auto;place-items:center;gap:6px;min-width:0;padding:9px;border:1px solid color-mix(in srgb,var(--st-text) 15%,var(--st-border));border-radius:14px;background:color-mix(in srgb,var(--st-surface-2) 92%,transparent);color:var(--st-text);text-align:center;cursor:pointer}
.profile-sprite-choice:hover,.profile-sprite-choice:focus-visible{border-color:color-mix(in srgb,var(--st-cyan) 64%,var(--st-border));background:color-mix(in srgb,var(--st-cyan) 9%,var(--st-surface-2))}
.profile-sprite-choice.active{border-color:var(--st-gold);box-shadow:0 0 0 2px color-mix(in srgb,var(--st-gold) 28%,transparent),0 10px 24px rgba(0,0,0,.18)}
.profile-sprite-choice img{width:82px;height:82px;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(0,0,0,.28))}
.profile-sprite-choice>span{overflow:hidden;width:100%;font-size:.68rem;font-weight:850;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.profile-sprite-choice>small{color:var(--st-gold);font-size:.56rem}
.profile-sprite-none{grid-template-rows:82px auto}.profile-sprite-none>span{display:grid;place-items:center;width:58px;height:58px;border:1px dashed var(--st-border);border-radius:50%;font-size:1.6rem}
.profile-sprite-actions{display:flex;align-items:center;gap:12px}.profile-sprite-actions .sub{flex:1}.profile-sprite-actions [data-state="success"],#profileIdentityMsg[data-state="success"]{color:var(--ct-success,#66efbd)}.profile-sprite-actions [data-state="error"],#profileIdentityMsg[data-state="error"]{color:var(--ct-danger,#ff7084)}
/* .profile-ribbon-controls above declares a two-column template. Inside the Crown
   Archivist ribbon the picker head, the picker and the save row are siblings, so
   that template put the head in column 1, the tall picker in column 2 and left a
   large empty block above the head. One explicit column is the only correct
   layout here; do not rely on the parent template. */
.profile-v2-ribbon .profile-ribbon-controls{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:12px}
@media(max-width:1100px){.profile-sprite-picker{grid-template-columns:repeat(4,minmax(105px,1fr))}}
@media(max-width:720px){.profile-sprite-picker{grid-template-columns:repeat(3,minmax(96px,1fr));max-height:390px}.profile-sprite-actions{align-items:stretch;flex-direction:column}.profile-sprite-actions .btn{width:100%}}
@media(max-width:460px){.profile-sprite-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-sprite-picker-head{align-items:stretch;flex-direction:column}.profile-sprite-picker-head>small{padding:0}}
