/* One visual height for all card emblems. Profile/header and dialog sizes are separate. */
:root{--swl-card-award-height:22px}
/* Compact earned emblems sit beside names; profiles show the full collection. */
.swl-achievement-badge{position:relative;z-index:2;display:inline-grid;place-items:center;vertical-align:middle;flex:0 0 28px;width:28px;height:28px;min-width:28px;min-height:28px;margin:-4px 0 -3px 1px;padding:0;border:0;border-radius:7px;background:transparent;color:#f5d999;line-height:1;cursor:pointer;isolation:isolate;box-shadow:none;pointer-events:auto}
.swl-achievement-badge .swl-achievement-emblem{display:block;width:22px;height:13px;filter:drop-shadow(0 1px 2px #0006);transition:transform .18s ease,filter .18s ease}
.swl-achievement-badge:focus-visible{outline:2px solid #e9c97d;outline-offset:0;background:#e9c97d12}
/* A block SVG avoids the title font's inline baseline shifting the 250 seal. */
.swl-achievement-badge svg,.swl-achievement-icon svg,.swl-achievement-large svg{display:block;width:100%;height:100%;overflow:visible}
.swl-achievement-icon{display:inline-grid;place-items:center;vertical-align:middle;flex:0 0 28px;width:28px;height:28px;margin:-4px 0 -3px 1px;line-height:1;pointer-events:none}
.swl-achievement-icon .swl-achievement-emblem{display:block;width:22px;height:13px}
.award-seal{fill:#362c26;stroke:#e8c678;stroke-width:1.4;stroke-linejoin:round}
.award-inset{fill:none;stroke:#e8c67855;stroke-width:.6}
.award-number{fill:#ffe5a7;font-family:Arial,sans-serif;font-size:17px;font-weight:800;letter-spacing:.5px}
.athlete-info h2>.swl-achievement-badge{vertical-align:middle}
#athleteAchievements{display:inline-flex;flex-wrap:wrap;align-items:center;column-gap:0;row-gap:1px;max-width:100%;vertical-align:middle;line-height:1}
#athleteAchievements>.swl-achievement-badge{flex:0 0 28px;width:28px;min-width:28px;height:28px;min-height:28px;margin:0;padding:0;align-self:center;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
#athleteAchievements>.swl-achievement-badge:not(.swl-completion-badge) .swl-achievement-emblem{width:26px;height:15.4px;transform:none}
#athleteAchievements:empty{display:none}
/* The full card stays clickable; the emblem is a separate, valid button. */
.directory-profile-content{position:relative;display:flex;align-items:center;gap:13px;width:100%;min-width:0;padding:20px 17px;color:inherit;text-align:left;border-radius:18px}
#directoryRoot .directory-card:has(>.directory-attendance-control)>.directory-profile-content{padding-right:57px}
.directory-profile-content>.directory-profile,.rank-row>.swl-profile-open{position:absolute;z-index:1;inset:0;display:block;width:100%;height:100%;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:inherit;background:transparent;color:inherit;box-shadow:none;cursor:pointer}
.directory-profile-content>:not(.directory-profile),.rank-row:has(>.swl-profile-open)>:not(.swl-profile-open){pointer-events:none}
.directory-profile-content .swl-achievement-badge,.rank-row .swl-achievement-badge{pointer-events:auto}
.directory-profile-content:hover{background:#bd9bff08}
.directory-profile-content>.directory-profile:hover,.rank-row>.swl-profile-open:hover{background:transparent;transform:none}
.directory-profile-content>.directory-profile:focus-visible,.rank-row>.swl-profile-open:focus-visible{outline:2px solid #bd9bff;outline-offset:-3px}
.a31-standing-identity{display:block;min-width:0}
.a31-standing-name{display:block;line-height:1.45}
.a31-standing-name>.a31-standing-person{display:inline;min-height:28px;padding:2px 0;vertical-align:middle}
.a31-standing-name>.a31-standing-person strong{display:inline}
.a31-standing-identity>small{display:block;font-size:9px;color:#95869f;line-height:1.5;overflow-wrap:anywhere;margin-top:2px}
.v4-mark-person>button:not(.swl-achievement-badge){display:inline;min-height:28px;vertical-align:middle}
.v4-mark-person>.swl-achievement-badge{display:inline-grid;width:28px;min-width:28px;height:28px;min-height:28px;margin:-4px 0 -3px 1px;padding:0;text-align:center;line-height:1;background:transparent}
@media(max-width:420px){.directory-profile-content{padding:17px 14px}}
.swl-achievement-dialog{color:#f8f4fc;border:1px solid #e5c17d55;border-radius:26px;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:36px 28px 27px;text-align:center;background:radial-gradient(ellipse at 50% 0,#ab7b2530,transparent 65%),#1d1925;box-shadow:0 24px 90px #0009;overflow:auto}
.swl-achievement-dialog::backdrop{background:#09070fc9;backdrop-filter:blur(6px)}
.swl-achievement-close{position:absolute;right:8px;top:8px;display:grid;place-items:center;width:44px;height:44px;min-height:44px;border:0;border-radius:12px;background:none;color:#b9acbf;font-size:25px;cursor:pointer}
.swl-achievement-close:hover{background:#ffffff08;color:#f6e4c3}
.swl-achievement-large{display:block;width:100px;height:60px;margin:0 auto 21px;filter:drop-shadow(0 7px 20px #c79a3625)}
.swl-achievement-eyebrow{color:#d6bc87;font-size:9px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px}
.swl-achievement-dialog h2{color:#fff0c9;font-size:35px;letter-spacing:-.05em;line-height:1.15;margin:0 0 11px}
.swl-achievement-recipient{font-size:17px;font-weight:800;color:#f7f2fb;margin:0 0 18px}
#swlAchievementDescription{font-size:13px;line-height:1.7;color:#cdbfd9;margin:0}
.swl-achievement-note{font-size:10px;color:#9f91ac;line-height:1.6;margin:13px 0 23px}
.swl-achievement-done{width:100%;min-height:48px;padding:12px 17px;border:1px solid #d9b96355;border-radius:13px;background:linear-gradient(135deg,#a9813830,#c4a05f13);color:#f5dba0;font-size:12px;font-weight:800;cursor:pointer}
.swl-achievement-done:hover{background:#c4a05f28}
.swl-achievement-dialog button:focus-visible{outline:2px solid #e9c97d;outline-offset:3px}
@media(max-width:420px){.swl-achievement-dialog{padding:32px 22px 22px}}
@media(prefers-reduced-motion:reduce){.swl-achievement-badge .swl-achievement-emblem{transition:none}.swl-achievement-badge:hover .swl-achievement-emblem{transform:none}}
.swlp-identity h2>.swl-achievement-badge{vertical-align:middle}
@media(max-width:700px){.a31-standing-identity{grid-column:2;grid-row:1}}

/* The image itself is cropped by an SVG viewport; no unequal transparent padding. */
.swl-award-art{display:block;width:100%;height:100%;overflow:hidden!important;filter:drop-shadow(0 1px 1px #0004);transform:none}
.swl-completion-badge:is(.swl-achievement-badge,.swl-achievement-icon){--award-height:var(--swl-card-award-height);--award-ratio:.84;display:inline-grid;place-items:center;width:max(24px,calc(var(--award-height) * var(--award-ratio)));min-width:24px;height:28px;min-height:28px;flex:0 0 auto;margin:0;padding:0;vertical-align:middle;line-height:0}
.swl-completion-badge.swl-achievement-badge .swl-achievement-emblem,.swl-completion-badge.swl-achievement-icon .swl-achievement-emblem{display:block;width:calc(var(--award-height) * var(--award-ratio));height:var(--award-height);filter:none}
#athleteAchievements{display:inline-flex;align-items:center;gap:0;line-height:0}
#athleteAchievements>.swl-achievement-badge{flex:0 0 auto;margin:0;padding:0;align-self:center;min-width:24px;width:24px;height:30px;min-height:30px}
#athleteAchievements>.swl-completion-badge{--award-height:26px;width:max(24px,calc(var(--award-height) * var(--award-ratio)))}
#athleteAchievements>.swl-completion-badge .swl-achievement-emblem{width:calc(var(--award-height) * var(--award-ratio));height:var(--award-height)}
#athleteAchievements>.swl-achievement-badge:not(.swl-completion-badge) .swl-achievement-emblem{width:24px;height:14.2px}
.swl-completion-icon{display:inline-block;width:48px;height:48px;flex-shrink:0;line-height:0}
.swl-achievement-large.swl-completion-badge{width:120px;height:120px;margin-bottom:13px;filter:none}
/* Distinct palettes echo the artwork; the historical 250 emblem keeps its gold. */
.swl-achievement-dialog:has(.swl-completion-badge){--award-rgb:180,144,255;--award-ink:#dfceff;border-color:rgba(var(--award-rgb),.32);background:radial-gradient(ellipse at 50% 0,rgba(var(--award-rgb),.14),transparent 60%),#17141e}
.swl-achievement-dialog[data-award="floor-basics-achieved"]{--award-rgb:180,144,255;--award-ink:#dfceff}
.swl-achievement-dialog[data-award="floor-basics-perfect"]{--award-rgb:82,224,212;--award-ink:#b4f5ee}
.swl-achievement-dialog[data-award="floor-upgrades-achieved"]{--award-rgb:96,163,255;--award-ink:#c3dcff}
.swl-achievement-dialog[data-award="floor-upgrades-perfect"]{--award-rgb:249,137,185;--award-ink:#ffd2e5}
.swl-achievement-dialog:is([data-award="floor-pro-achieved"],[data-award="floor-achieved"]){--award-rgb:255,155,86;--award-ink:#ffdabf}
.swl-achievement-dialog:is([data-award="floor-pro-perfect"],[data-award="floor-perfect"]){--award-rgb:255,207,102;--award-ink:#ffebbb}
.swl-achievement-dialog[data-award="vault-achieved"]{--award-rgb:223,114,244;--award-ink:#f5ccff}
.swl-achievement-dialog[data-award="vault-perfect"]{--award-rgb:147,239,170;--award-ink:#d1f9da}
.swl-achievement-dialog:has(.swl-completion-badge) h2{font-size:31px;color:#f6f0fc}
.swl-achievement-dialog:has(.swl-completion-badge) .swl-achievement-eyebrow{color:var(--award-ink)}
.swl-achievement-dialog:has(.swl-completion-badge) .swl-achievement-done{border-color:rgba(var(--award-rgb),.3);background:linear-gradient(135deg,rgba(var(--award-rgb),.13),rgba(var(--award-rgb),.04));color:var(--award-ink)}
.swl-achievement-dialog:has(.swl-completion-badge) .swl-achievement-done:hover{background:rgba(var(--award-rgb),.17)}
@media(max-width:600px){
  #athleteAchievements>.swl-completion-badge{--award-height:24px}
  .swl-achievement-large.swl-completion-badge{width:104px;height:104px}
}

.swl-achievement-earned{color:#d4c3e2;font-size:11px;line-height:1.6;margin:15px 0 0}
.swl-achievement-earned time{color:#eee5f5;font-weight:750}
/* Pointer close must not inherit the app's purple keyboard-focus treatment. */
html[data-theme] button.swl-achievement-badge:is(:hover,:focus,:active){background:transparent;box-shadow:none;transform:none}
html[data-theme] button.swl-achievement-badge:focus:not(:focus-visible):not([data-award-keyboard-return]){outline:none!important}
html[data-theme] button.swl-achievement-badge:focus-visible,html[data-theme] button.swl-achievement-badge[data-award-keyboard-return]:focus{outline:2px solid #e9c97d!important;outline-offset:1px!important;background:#e9c97d12}
html[data-theme] .swl-achievement-dialog button:focus-visible{outline:2px solid #e9c97d!important;outline-offset:3px!important}
@media(hover:hover){html[data-theme] button.swl-achievement-badge:hover .swl-achievement-emblem{filter:brightness(1.12)}}

/* Keep earned icons visible in the compact profile switcher on phones. */
.chooser strong:has(.swl-achievement-icon){white-space:normal;overflow:visible;text-overflow:clip;line-height:1.55}
#chooserAchievements{display:inline;white-space:normal}

/* 5.2 — spread the earned stack enough to recognise each earlier enamel edge. */
.swl-card-awards{display:inline-flex;align-items:center;gap:1px;max-width:100%;vertical-align:middle;white-space:nowrap;line-height:0}
.swl-completion-badge.has-award-stack{--award-step:7px;width:max(24px,calc(var(--award-height) * var(--award-stack-ratio) + var(--award-stack-count) * var(--award-step)))}
.swl-completion-badge.has-award-stack .swl-achievement-emblem{position:relative;width:calc(var(--award-height) * var(--award-stack-ratio) + var(--award-stack-count) * var(--award-step));height:var(--award-height);filter:none}
.swl-award-layer{--award-ratio:.84;position:absolute;right:0;top:50%;display:block;width:calc(var(--award-height) * var(--award-ratio));height:var(--award-height);transform:translate(calc(var(--award-offset) * -1 * var(--award-step)),-50%);pointer-events:none;filter:brightness(.95) drop-shadow(-1px 1px 1px #090611c9)}
/* A layer keeps its own shape and the same height as its standalone emblem. */
.swl-award-layer.swl-award-front{filter:drop-shadow(-1px 1px 1px #090611e6)}
/* The new double neon frames and broader glass silhouette provide the distinction. */
.swl-completion-badge.is-perfect:not(.has-award-stack) .swl-award-art,.swl-award-front.is-perfect .swl-award-art,.swl-completion-icon.is-perfect>.swl-award-art,.swl-achievement-large.is-perfect>.swl-award-art{filter:drop-shadow(0 1px 1px #08071477)}
.swl-completion-icon,.swl-achievement-large.swl-completion-badge{position:relative}
@media(max-width:600px){
  .swl-completion-badge.has-award-stack{--award-step:6px}
}

/* The historical 250 seal follows the same compact visual height as Floor and Vault.
   Its wider shape is retained; the profile's explicit larger-view rules stay in charge. */
:is(.swl-achievement-badge,.swl-achievement-icon):not(.swl-completion-badge){
  --award-height:var(--swl-card-award-height);--award-ratio:1.7333333333333334;
  flex:0 0 auto;width:calc(var(--award-height) * var(--award-ratio));min-width:28px;
  height:28px;min-height:28px;margin:0;padding:0;
}
:is(.swl-achievement-badge,.swl-achievement-icon):not(.swl-completion-badge) .swl-achievement-emblem{
  width:calc(var(--award-height) * var(--award-ratio));height:var(--award-height);
}

/* Search/result button feedback must not scale the badges inside it. */
html[data-theme] button:has(.swl-achievement-icon):active:not(:disabled){transform:none}
