/* Shared directory rows and controls; page chrome is scoped to .players-page. */
.players-surface,.players-page{--players-target:44px;--players-border:2px;--players-motion:160ms;--players-ease:cubic-bezier(.2,.8,.2,1)}
.players-surface *,.players-page *{box-sizing:border-box}
.players-surface [hidden],.players-page [hidden]{display:none!important}
.players-surface{min-width:0}
.players-heading-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s2)}
.players-eyebrow{font:500 var(--t-xs)/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lagoon);margin:0 0 var(--s1)}
.players-heading-row h1,.players-heading-row h2{font:700 var(--t-xl)/1.05 var(--display);color:var(--sand);margin:0;font-variant-ligatures:none}
.players-page .players-heading-row h1{font-size:clamp(48px,7vw,80px)}
.players-intro{color:var(--muted);max-width:60ch;margin:0;font-size:var(--t-m);line-height:1.55}
.players-total{font:500 var(--t-s)/1.5 var(--mono);color:var(--ink);margin:var(--s4) 0 var(--s1)}
.players-feedback{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1) var(--s2);margin-bottom:var(--s3);min-height:var(--s3)}
.players-feedback p{margin:0;color:var(--muted);font-size:var(--t-m);line-height:1.5}
.players-feedback [role=alert]{color:var(--ink)}
.players-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);min-height:var(--players-target);padding:var(--s1) var(--s2);border:var(--players-border) solid var(--accent);border-radius:var(--r);background:var(--accent);color:var(--accent-ink);font:700 20px/1.3 var(--display);text-decoration:none;cursor:pointer;font-variant-ligatures:none}
.players-button:hover:not(:disabled){transform:translateY(-1px)}
.players-button:active:not(:disabled){transform:translateY(1px)}
.players-button:focus-visible,.players-surface input:focus-visible,.players-page a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.players-button:disabled{opacity:.6;cursor:wait}
.players-secondary{background:transparent;color:var(--lagoon);border-color:var(--line-2)}
.players-secondary:hover:not(:disabled){border-color:var(--lagoon)}
.players-table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:left}
.players-name-column{width:44%}.players-date-column{width:30%}.players-days-column{width:26%}
.players-table th,.players-table td{padding:var(--s2);vertical-align:middle;overflow-wrap:anywhere}
.players-table thead th{border-bottom:1px solid var(--line-2);font:500 var(--t-xs)/1.5 var(--mono);color:var(--muted)}
.players-table th:first-child,.players-table td:first-child{padding-left:0}
.players-table th:last-child,.players-table td:last-child{padding-right:0;text-align:right}
.player-row>*{border-bottom:1px solid var(--line)}
.players-table .player-name{font:700 var(--t-m)/1.4 var(--body);color:var(--ink);text-align:left}
.player-joined,.player-days{font:var(--t-s)/1.5 var(--body);color:var(--muted);font-variant-numeric:tabular-nums}
.player-days{color:var(--ink)}
.players-days-help{margin:var(--s2) 0 0;font:var(--t-s)/1.5 var(--body);color:var(--muted)}
.players-skeleton-line{display:inline-block;vertical-align:middle;height:var(--s2);background:var(--line);width:70%;max-width:160px;border-radius:var(--r)}
.players-search{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:end;margin:var(--s4) 0;padding:var(--s3);border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg-2)}
.players-search-field{flex:1;min-width:min(100%,240px)}
.players-search label{display:block;font-weight:700;margin-bottom:var(--s1)}
.players-search input{width:100%;min-height:var(--players-target);border:1px solid var(--muted);border-radius:var(--r);background:var(--bg);color:var(--ink);padding:var(--s1) var(--s2);font:var(--t-m)/1.4 var(--body)}
.players-search input::placeholder{color:var(--muted);opacity:1}
.players-search>p{flex-basis:100%;color:var(--muted);font-size:var(--t-s);margin:0}
#players-search-submit{min-width:104px}
.players-pagination{display:flex;justify-content:center;margin-top:var(--s4)}
#players-more{min-width:176px}
.players-page{margin:0;background:var(--bg);color:var(--ink);font:var(--t-m)/1.55 var(--body);-webkit-font-smoothing:antialiased}
.players-page a{color:var(--lagoon)}
.players-page a.players-button{color:var(--accent-ink)}
.players-page a.players-secondary{color:var(--lagoon)}
.players-wrap{width:calc(100% - var(--s4));max-width:1120px;margin-inline:auto}
.players-nav{border-bottom:1px solid var(--line)}
.players-nav nav{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3);align-items:center;padding-block:var(--s2)}
.players-nav .players-brand{display:flex;gap:var(--s1);align-items:center;text-decoration:none}
.players-brand img{display:block;width:165px;height:44px;image-rendering:pixelated}
.players-brand span{font:600 10.5px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid currentColor;border-radius:var(--r);padding:2px 6px}
.players-nav ul{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;list-style:none;margin:0 0 0 auto;padding:0}
.players-nav li a{display:inline-flex;align-items:center;gap:var(--s1);min-width:var(--players-target);min-height:var(--players-target);justify-content:center;font:500 var(--t-xs)/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--muted)}
.players-nav li a:hover,.players-nav li a[aria-current]{color:var(--ink)}
.players-nav li a[aria-current]{text-decoration:underline;text-underline-offset:6px}
.players-nav li a.players-nav-play{padding:var(--s1) var(--s2);border-radius:var(--r);background:var(--accent);color:var(--accent-ink)}
.players-page main{padding-block:var(--s6);min-height:70vh}
.players-footer{display:flex;justify-content:space-between;gap:var(--s2);flex-wrap:wrap;padding-block:var(--s3) var(--s5);border-top:1px solid var(--line);font:var(--t-xs)/1.5 var(--mono);color:var(--muted)}
.players-footer p{margin:0;align-self:center}
.players-footer a{display:inline-flex;align-items:center;gap:var(--s1);min-height:var(--players-target)}
.players-skip{position:absolute;top:var(--s1);left:var(--s2);transform:translateY(-150%);z-index:30;background:var(--bg-2);padding:var(--s2)}
.players-skip:focus{transform:none}
@media(max-width:700px){.players-nav ul{width:100%;margin-left:0;justify-content:space-between;gap:var(--s1)}.players-page main{padding-block:var(--s4)}.players-heading-row{align-items:flex-start}.players-search{padding:var(--s2)}}
@media(max-width:540px){.players-name-column{width:40%}.players-date-column{width:31%}.players-days-column{width:29%}.players-table th,.players-table td{padding:var(--s2) var(--s1)}.players-table .player-name{font-size:var(--t-s)}.player-joined,.player-days{font-size:var(--t-s)}.players-search-field{flex-basis:100%}.players-search .players-button{flex:1}.players-heading-row .players-button{font-size:18px}}
@media(prefers-reduced-motion:no-preference){.players-button{transition:transform var(--players-motion) var(--players-ease)}}
@media(prefers-reduced-motion:reduce){.players-button{transition:none}.players-button:hover:not(:disabled),.players-button:active:not(:disabled){transform:none}}

.players-page .players-table{table-layout:auto}.players-page .player-name{min-width:180px}.player-portrait{width:56px;height:56px;float:left;margin-right:12px}.player-name time,.players-table td small{display:block;font-size:var(--t-s);font-weight:400;margin-top:4px}.passport-card{overflow-wrap:anywhere;min-width:0;padding:24px;border:1px solid var(--line);border-radius:8px;margin:24px 0;background:var(--bg-2)}.passport-portrait{width:160px;height:176px;float:left;margin:0 24px 16px 0}.passport-facts,.passport-skills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.passport-facts dt{font-weight:700}.passport-facts dd{margin:0}.passport-stamps{display:flex;flex-wrap:wrap;gap:12px}.passport-stamps span{padding:12px;border:1px solid var(--line);border-radius:4px}.passport-card:after{content:'';display:block;clear:both}@media(max-width:600px){.players-page .players-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.players-page .players-table tr{display:grid;grid-template-columns:1fr;border-bottom:1px solid var(--line);padding:16px 0}.players-page .players-table th,.players-page .players-table td{display:block;width:auto;border:0;padding:8px}.players-page td[data-label]:before{content:attr(data-label) ': ';font-weight:700}.passport-card{padding:16px}.passport-portrait{float:none;display:block;margin:auto}.passport-facts,.passport-skills{grid-template-columns:1fr}}
