/* source: implementation/playable-v0.1/ui-tokens.css */
/* Shared host + field design system. Theme colors here; club accent comes from appearance.mjs.
   Change a role token instead of adding a new screen-specific size. See CSS_GUIDE.md. */
:root{--ui-page:#15181b;--ui-surface:#202428;--ui-raised:#292e33;--ui-hover:#32383f;--ui-text:#f0f1ed;--ui-muted:#b0b8bf;--ui-line:#3b4249;--ui-line-strong:#77818a;--ui-danger:#ff9daa;--ui-danger-bg:#42232b;--ui-success:#a6d8c2;--ui-success-bg:#203d33;--ui-warning:#f1ce8a;--ui-warning-bg:#443820;--ui-accent:#ef671e;--ui-on-accent:#000;--ui-accent-text:#ffad7e;--ui-accent-page:#ffad7e;--ui-accent-soft:color-mix(in srgb,var(--ui-accent) 13%,var(--ui-surface));--ui-display:KboNtreev,system-ui,-apple-system,'Segoe UI',sans-serif;--ink:var(--ui-surface);--muted:var(--ui-muted);--line:var(--ui-line);--lime:var(--ui-accent-text);--mint:var(--ui-accent-text);color-scheme:dark;background:var(--ui-page);color:var(--ui-text)}
:root[data-studio-mode=light]{--ui-page:#eeeee9;--ui-surface:#fff;--ui-raised:#f4f4ef;--ui-hover:#e7e9e5;--ui-text:#20252a;--ui-muted:#59636c;--ui-line:#d0d5d7;--ui-line-strong:#879299;--ui-danger:#a51d37;--ui-danger-bg:#fce9ee;--ui-success:#216047;--ui-success-bg:#e7f3ed;--ui-warning:#77530c;--ui-warning-bg:#faf0d7;color-scheme:light}

:root{
 --ui-font-system:system-ui,-apple-system,'Segoe UI',sans-serif;
 --ui-font-micro:8px;--ui-font-dense:9px;--ui-font-xs:10px;--ui-font-caption:11px;
 --ui-font-small:12px;--ui-font-body:13px;--ui-font-label:14px;--ui-font-subtitle:16px;--ui-font-heading:18px;
 --ui-space-1:4px;--ui-space-2:6px;--ui-space-3:8px;--ui-space-4:12px;--ui-space-5:16px;--ui-space-6:20px;--ui-space-7:24px;
 --ui-radius-small:4px;--ui-radius-control:6px;--ui-radius-card:8px;--ui-radius-modal:10px;
 --ui-leading-tight:1.3;--ui-leading-body:1.55;--ui-leading-copy:1.65;
 --ui-control-height:36px;--ui-action-height:42px;--ui-icon-height:44px;
 --ui-modal-top:max(12px,env(safe-area-inset-top,0px));--ui-modal-bottom:max(12px,env(safe-area-inset-bottom,0px));
 --ui-dialog-pad:18px;--ui-dialog-gap:12px;--ui-dialog-heading:var(--ui-font-heading);
 --ui-backdrop:#0009;--ui-focus-width:3px;
 /* Compatibility aliases share one source of truth. */
 --control-font:var(--ui-font-body);--control-height:var(--ui-control-height);
 --control-radius:var(--ui-radius-control);--control-gap:var(--ui-space-2);--action-height:var(--ui-action-height);
 --modal-radius:var(--ui-radius-modal);--modal-pad:var(--ui-dialog-pad);--modal-gap:var(--ui-dialog-gap);
 --notice-pad:var(--ui-dialog-pad);--notice-body-font:var(--ui-font-system);--notice-heading-size:var(--ui-dialog-heading);
}
@media(max-width:800px){:root{--control-font:var(--ui-font-small)}}
@media(max-width:600px){:root{--ui-modal-top:max(8px,env(safe-area-inset-top,0px));--ui-modal-bottom:max(8px,env(safe-area-inset-bottom,0px));--ui-dialog-pad:14px;--ui-dialog-heading:var(--ui-font-subtitle);--ui-action-height:42px}}

/* Warm translucent lobby surfaces share the same palette owner. */
[data-potential-tier="standard"]{--potential-ink:#cad6db;--potential-surface:#2b383e;--potential-edge:#81949d;--potential-glow:#81949d66}
[data-potential-tier="supply"]{--potential-ink:#bdeaff;--potential-surface:#183843;--potential-edge:#69b8d0;--potential-glow:#69b8d077}
[data-potential-tier="general"]{--potential-ink:#ffe2a0;--potential-surface:#473419;--potential-edge:#eebd50;--potential-glow:#eebd5077}
[data-potential-tier="unique"]{--potential-ink:#ffd9fe;--potential-surface:#4c2358;--potential-edge:#f19bff;--potential-glow:#e16cffbb}
:root[data-studio-mode="light"] [data-potential-tier="standard"]{--potential-ink:#3d535f;--potential-surface:#e9eff1;--potential-edge:#71868f;--potential-glow:#71868f66}
:root[data-studio-mode="light"] [data-potential-tier="supply"]{--potential-ink:#144c61;--potential-surface:#d8f1f9;--potential-edge:#347e94;--potential-glow:#347e9477}
:root[data-studio-mode="light"] [data-potential-tier="general"]{--potential-ink:#684000;--potential-surface:#ffe9b3;--potential-edge:#946000;--potential-glow:#bb7a0077}
:root[data-studio-mode="light"] [data-potential-tier="unique"]{--potential-ink:#75117d;--potential-surface:#fbdcff;--potential-edge:#ad2ab8;--potential-glow:#cb41df99}
:root[data-studio-mode=light] .game-lobby{--ui-text:#303b3f;--ui-muted:#56615e;--ui-surface:#f6f3ea;--ui-raised:#eee9df}
:root{--ui-border:var(--ui-line)}

/* source: implementation/playable-v0.1/career.css */
.career-workspace{display:grid;gap:var(--ui-space-4);min-inline-size:0;color:var(--ui-text);font-size:var(--ui-font-body)}
.career-workspace p{margin:0;line-height:var(--ui-leading-body)}
.career-workspace button{min-block-size:var(--ui-control-height);white-space:normal}
.career-workspace small{color:var(--ui-muted);font-size:var(--ui-font-caption)}
.career-workspace details{min-inline-size:0}
.career-workspace summary{cursor:pointer;padding-block:var(--ui-space-2);line-height:var(--ui-leading-body)}
.career-workspace details[open]>summary{margin-block-end:var(--ui-space-1)}
.career-entry,.career-lead{display:grid;gap:var(--ui-space-3);padding:var(--ui-space-4);background:var(--ui-raised);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card)}
.career-fields,.career-pay,.career-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,122px),1fr));gap:var(--ui-space-3);margin:0}
.career-fields{align-items:end}
.career-protection-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,138px),1fr));gap:var(--ui-space-2);min-inline-size:0;max-block-size:48dvh;overflow:auto;overscroll-behavior:contain}
.career-protection-list label{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:var(--ui-space-2);min-inline-size:0;min-block-size:var(--ui-action-height);padding-inline:var(--ui-space-2);border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);cursor:pointer}
.career-protection-list input[type=checkbox]{inline-size:18px;block-size:18px;min-inline-size:0;min-block-size:0;max-inline-size:100%;margin:0;padding:0;accent-color:var(--ui-accent)}
.career-protection-list label>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.career-protection-list label>small{white-space:nowrap}
.career-fields label{display:grid;gap:var(--ui-space-1);min-inline-size:0}
.career-workspace :is(input,select,option){font-family:var(--ui-display)}
.career-renewal-row output{color:var(--ui-accent-text);font-weight:700;margin-inline-start:var(--ui-space-1)}
.career-fields input,.career-fields select{inline-size:100%;min-inline-size:0;min-block-size:var(--ui-control-height);background:var(--ui-surface);color:var(--ui-text);border:1px solid var(--ui-line-strong);border-radius:var(--ui-radius-control);padding-inline:var(--ui-space-3)}
.career-pay>div,.career-steps li{background:var(--ui-raised);border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);padding:var(--ui-space-3)}
.career-pay dd{margin:var(--ui-space-1) 0 0;font-weight:700;font-variant-numeric:tabular-nums}
.career-steps{padding:0;list-style:none}
.career-steps [aria-current=step]{border-color:var(--ui-accent);color:var(--ui-accent-text)}
.career-table{overflow:auto;max-inline-size:100%;max-block-size:min(52dvh,560px);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);overscroll-behavior:contain}
.career-table table{border-collapse:collapse;inline-size:100%;margin:0;font-size:inherit}
.career-table :is(th,td){padding:var(--ui-space-3);text-align:start;vertical-align:top;overflow-wrap:anywhere}
.career-table th{position:sticky;top:0;background:var(--ui-raised);z-index:1}
.career-table td{border-block-start:1px solid var(--ui-line)}
.career-rise{color:var(--ui-danger)}
.career-fall{color:#90bcff}
:root[data-studio-mode=light] .career-fall{color:#255ea8}
@media(max-width:600px){
 .career-workspace button,.career-fields input,.career-fields select{min-block-size:var(--ui-action-height)}
 .career-fields select,.career-fields input{font-size:16px}
 .career-workspace .career-table :is(th,td){padding:var(--ui-space-2)}
 .career-table td small{display:block}
 .career-projection thead{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%)}
 .career-projection tbody,.career-projection tr{display:block}
 .career-projection tr+tr{border-block-start:1px solid var(--ui-line)}
 .career-projection td{display:flex;justify-content:space-between;gap:var(--ui-space-2);border:0}
 .career-projection td:not(:first-child)::before{content:attr(data-column);color:var(--ui-muted)}
 .career-projection td:first-child{font-weight:700;background:var(--ui-raised)}
 .career-workspace .career-entry{padding:var(--ui-space-3)}
}

/* Career screens share the host tokens and keep lists visible by default. */
.manager-mode .match-sheet[data-modal-placement=center]{
 left:50%;right:auto;top:calc(var(--app-viewport-height,100dvh) / 2);bottom:auto;
 width:min(680px,calc(100vw - 24px));max-height:calc(var(--app-viewport-height,100dvh) - 32px);
 transform:translate(-50%,-50%);
}
.manager-mode .match-sheet:is([data-panel=career-contracts],[data-panel=career-foreign]){width:min(1050px,calc(100vw - 24px))}
.manager-mode .match-sheet[data-panel=career-vote]{width:min(720px,calc(100vw - 24px))}
.career-subview,.career-contract-list{display:grid;gap:var(--ui-space-3);min-width:0}
.career-subview h3{font-size:var(--ui-font-subtitle);margin:0}
.career-subview>button{justify-self:start}
.career-section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-2);min-width:0}
.career-section-heading small{display:block;margin-block-start:var(--ui-space-1)}
.career-renewal-group{display:grid;gap:var(--ui-space-2)}
.career-renewal-group+.career-renewal-group{border-block-start:1px solid var(--ui-line);padding-block-start:var(--ui-space-3)}
.career-contract-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--ui-space-3)}
.career-finance{min-width:0;display:grid;align-content:start;gap:var(--ui-space-3);padding:var(--ui-space-4);background:var(--ui-raised);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card)}
.career-budget-balance,.career-budget-meter>div,.career-budget-lines>div{display:flex;justify-content:space-between;align-items:baseline;gap:var(--ui-space-2)}
.career-budget-balance strong{font-variant-numeric:tabular-nums;font-size:var(--ui-font-subtitle)}
.career-budget-meter{display:grid;gap:var(--ui-space-1)}
.career-budget-meter b,.career-budget-lines dd{font-variant-numeric:tabular-nums;text-align:end}
.career-budget-lines{display:grid;gap:var(--ui-space-1);margin:0}
.career-budget-lines dd{margin:0}
.career-budget-track,.career-payroll-track{position:relative;display:block;background:var(--ui-line);border-radius:var(--ui-radius-control);overflow:hidden}
.career-budget-track{block-size:5px}
.career-budget-track i,.career-payroll-track i{position:absolute;inset-block-end:0;inset-inline-start:0;display:block;background:var(--ui-accent);border-radius:inherit}
.career-budget-track i{inline-size:var(--share);block-size:100%}
.career-budget-meter.is-pay i{background:var(--ui-accent-text)}
.career-budget-meter.is-cap i{background:var(--ui-muted)}
.career-payroll-chart{margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;gap:var(--ui-space-2)}
.career-payroll-chart li{display:grid;grid-template-rows:minmax(3em,auto) 75px auto;justify-items:center;text-align:center;align-items:end;gap:var(--ui-space-2)}
.career-payroll-chart strong{font-size:var(--ui-font-caption);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.career-payroll-track{inline-size:clamp(8px,1.2vw,14px);block-size:100%}
.career-payroll-track i{block-size:var(--share);inline-size:100%}
.career-cap-exempt{grid-template-columns:minmax(0,270px) auto;justify-content:start}
.career-contract-year-tabs{display:none}
.career-contract-mobile-meta{display:none!important}
.career-table:is(.career-contract-table,.career-foreign-table,.career-vote-table) :is(th,td){vertical-align:middle}
.career-table:is(.career-foreign-table,.career-vote-table) :is(td:last-child,th:last-child){text-align:end;white-space:nowrap}
.career-table:is(.career-foreign-table,.career-vote-table) small{display:block}
.career-contract-table table,.career-vote-table table{font-variant-numeric:tabular-nums}
.career-contract-table table{min-width:670px}
.career-contract-table :is(th,td){white-space:nowrap}
.career-contract-table .career-contract-name{position:sticky;inset-inline-start:0;background:var(--ui-surface);z-index:1;text-align:start}
.career-contract-table thead .career-contract-name{z-index:2;background:var(--ui-raised)}
.career-contract-table tbody .career-contract-name,.career-vote-table tbody th{border-block-start:1px solid var(--ui-line)}
.career-contract-table button,.career-vote-table thead button{padding:0;border:0;min-height:22px;background:none;text-align:start}
.career-contract-table button:hover,.career-vote-table thead button:hover{text-decoration:underline}
.career-contract-table [data-current-year]{background:color-mix(in srgb,var(--ui-accent) 13%,var(--ui-surface))}
.career-contract-table thead [data-current-year]{background:color-mix(in srgb,var(--ui-accent) 20%,var(--ui-raised))}
.career-table-muted{font-size:var(--ui-font-caption);color:var(--ui-muted)}
.career-fa-marker{color:var(--ui-accent-text);font-weight:700}
.career-switch{display:flex;flex-wrap:wrap;gap:var(--ui-space-2);min-width:0}
.match-sheet[data-panel="career-allstar"] .sheet-body{overflow-y:auto;touch-action:pan-y}
.career-allstar-content .detailed-lineup{height:auto;min-height:0;grid-template-rows:auto auto auto 20px var(--bench-tray-height) 44px}
.career-allstar-content .detailed-lineup:is(.view-order,.view-pitching) .lineup-board{overflow:visible;overscroll-behavior:auto;touch-action:pan-y}
.career-allstar-content :is(.order-card,.staff-card)>button{touch-action:pan-y}
.career-allstar-content .view-field .lineup-board{min-block-size:clamp(290px,56vh,520px)}
.career-allstar-content .order-layout{grid-template-columns:1fr}
.career-allstar-content .order-layout>.lineup-context{display:none}
.career-switch button{flex:1}
.career-switch button[aria-pressed=true],.career-contract-year-tabs button[aria-pressed=true]{background:var(--ui-accent);color:var(--ui-on-accent);border-color:var(--ui-accent)}
.career-switch.career-filter button{min-inline-size:0;padding-inline:var(--ui-space-3)}
.career-foreign-table td:nth-child(3),.career-foreign-table td:nth-child(4){font-variant-numeric:tabular-nums;white-space:nowrap}
.career-foreign-table td:last-child button{padding-inline:var(--ui-space-3);white-space:nowrap}
.career-compare-table :is(th,td){width:33.33%}
.career-compare-table td:first-child{color:var(--ui-muted)}
.career-sign-form fieldset{min-width:0;margin:0;padding:var(--ui-space-3);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card)}
.career-rehab-row{display:flex;align-items:center;gap:var(--ui-space-3);flex-wrap:wrap;padding:var(--ui-space-2);min-height:var(--ui-control-height)}
.career-sign-form label,.career-compensation-row label,.career-compensation-cash{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:var(--ui-space-3);min-inline-size:0;min-block-size:var(--ui-action-height);padding:var(--ui-space-2);cursor:pointer}
.career-sign-form label>span,.career-compensation-row label>span{display:grid;gap:var(--ui-space-1);min-inline-size:0;overflow-wrap:anywhere}
.career-compensation-options{margin:0;min-inline-size:0;padding:var(--ui-space-2);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card)}
.career-compensation-list{max-block-size:42dvh;overflow:auto;overscroll-behavior:contain}
.career-compensation-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--ui-space-2);border-block-start:1px solid var(--ui-line)}
.career-compensation-row>button{padding-inline:var(--ui-space-3);white-space:nowrap}
.career-sign-form label+label,.career-rehab-row+.career-rehab-row{border-block-start:1px solid var(--ui-line)}
.career-sign-form input[type=radio],.career-compensation-options input[type=radio]{inline-size:18px;block-size:18px;min-inline-size:0;min-block-size:0;max-inline-size:100%;padding:0;margin:0;accent-color:var(--ui-accent)}
.career-rehab-row>.sheet-actions{margin:0}
.career-vote-table tbody th{position:static;background:var(--ui-surface);text-align:start}
.career-vote-table .career-vote-leader :is(th,td){background:color-mix(in srgb,var(--ui-accent-text) 11%,var(--ui-surface))}
.career-vote-table .career-vote-leader th{box-shadow:inset 2px 0 var(--ui-accent-text)}
.career-vote-rank{color:var(--ui-accent-text);font-size:var(--ui-font-xs);font-weight:700;white-space:nowrap}
.career-vote-table thead button{white-space:nowrap}
.career-vote-filter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));inline-size:min(100%,15rem)}
.career-switch.career-vote-filter button{padding-inline:var(--ui-space-1);white-space:nowrap}
.career-vote-filter+small,.career-vote-table :is(th,td):nth-child(2){white-space:nowrap}
.career-vote-metrics{display:flex;gap:var(--ui-space-1);font-size:var(--ui-font-caption);font-variant-numeric:tabular-nums;white-space:nowrap}
.game-lobby .lobby-allstar-vote{
 display:grid;width:100%;box-sizing:border-box;gap:var(--ui-space-1);margin-block-start:var(--ui-space-2);padding:var(--ui-space-3);
 border:1px solid var(--ui-line-strong);border-radius:var(--ui-radius-modal);background:var(--ui-raised);color:var(--ui-text);
 text-align:left;line-height:var(--ui-leading-body);text-shadow:none;
}
.game-lobby .lobby-allstar-vote strong{font-size:var(--ui-font-body)}
.game-lobby .lobby-allstar-vote small{font-size:var(--ui-font-caption);color:var(--ui-muted);white-space:normal}
.game-lobby .lobby-allstar-vote.is-allstar-vote{
 position:relative;isolation:isolate;overflow:hidden;padding-inline-end:36%;
}
.lobby-allstar-vote-copy{position:relative;z-index:1;display:grid;gap:var(--ui-space-1);min-inline-size:0}
.lobby-allstar-vote-art{
 position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center;
 pointer-events:none;mask-image:linear-gradient(90deg,transparent 24%,#000 65%);
}
@media(max-width:680px){
 .manager-mode .match-sheet[data-modal-placement=center][data-panel]{
  width:calc(100vw - 16px);max-height:calc(var(--app-viewport-height,100dvh) - 24px);
 }
 .career-contract-top{grid-template-columns:minmax(0,1fr)}
 .career-finance{padding:var(--ui-space-3)}
 .career-payroll-chart li{grid-template-rows:minmax(2.8em,auto) 54px auto}
 .career-contract-year-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--ui-space-1)}
 .career-contract-year-tabs button{padding-inline:0}
 .career-contract-table table{min-width:0}
 .career-contract-table :is(.career-contract-meta,.career-contract-year:not(.is-current-view)){display:none}
 .career-contract-table .career-contract-mobile-meta{display:block!important}
 .career-contract-table :is(.career-contract-kind,.career-contract-name){white-space:normal}
 .career-table:is(.career-foreign-table,.career-vote-table) :is(th,td){padding-inline:var(--ui-space-1)}
 .career-workspace .career-vote-table :is(th,td){padding-inline:var(--ui-space-1)}
 .career-vote-metrics{gap:2px;font-size:var(--ui-font-xs)}
 .career-workspace :is(.career-contract-table,.career-vote-table) thead button{min-height:var(--ui-control-height)}
}
@media(max-width:380px){
 .career-workspace .career-vote-table :is(th,td){padding-inline:2px}
 .career-vote-table :is(th,td):not(:nth-child(3)),.career-vote-table thead button{font-size:var(--ui-font-caption)}
}

.manager-mode .match-sheet[data-panel=career-calendar-draft]{left:50%;right:auto;top:calc(var(--app-viewport-height,100dvh) / 2);bottom:auto;transform:translate(-50%,-50%);width:min(690px,calc(100vw - 16px));max-height:calc(var(--app-viewport-height,100dvh) - 24px)}
.career-draft-welcome .sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--ui-space-3)}

.career-draft-list{display:grid;gap:var(--ui-space-1);min-width:0}
.career-draft-list h4{font-size:var(--ui-font-body);margin:0}
.career-draft-table :is(th,td){block-size:26px;padding:2px var(--ui-space-2);box-sizing:border-box;vertical-align:middle}
.career-draft-picks{max-block-size:min(288px,32dvh)}
.career-draft-candidates{max-block-size:min(360px,38dvh)}
.career-draft-table td button{min-block-size:30px;padding-block:1px}
.career-draft-table td:last-child{white-space:nowrap}

.career-draft-picks .career-my-pick td{background:color-mix(in srgb,var(--ui-accent) 16%,var(--ui-hover));font-weight:700}
.career-draft-picks .career-my-pick td:first-child{box-shadow:inset 3px 0 var(--ui-accent-text)}
.career-my-pick strong{color:var(--ui-accent-text)}

.career-stove-steps{list-style:none;padding:0;margin:0;display:grid;gap:var(--ui-space-1)}
.career-stove-steps li{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:var(--ui-space-2);padding:var(--ui-space-2);border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);background:var(--ui-raised)}
.career-stove-steps [aria-current=step]{border-color:var(--ui-accent-text)}
.career-step-num{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--ui-line-strong);border-radius:50%;font-variant-numeric:tabular-nums}
.today-actions:has(>.postseason-finish-action){display:grid;grid-template-columns:minmax(0,1fr)}
.today-actions:has(>.postseason-finish-action)>button{width:100%}
.game-lobby .lobby-allstar-vote.postseason-finish-action{display:block;text-align:center}

.manager-mode .match-sheet[data-panel=career-aging]{height:min(860px,calc(var(--app-viewport-height,100dvh) - 24px))}
.match-sheet[data-panel=career-aging]>.sheet-body{display:grid;flex:1;min-height:0}
.match-sheet[data-panel=career-aging] .career-workspace{min-height:0}
.career-aging{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:var(--ui-space-3);min-width:0;min-height:0}
.career-aging-table{max-height:none}
.career-aging-table :is(th,td):nth-child(-n+3){white-space:nowrap}
.career-aging-table td:nth-child(1) small{display:block}
.career-aging-deltas{display:flex;flex-wrap:wrap;gap:2px var(--ui-space-2);min-width:0}
.career-aging-deltas>span{white-space:nowrap}

.career-renewal-row .career-fields{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.career-renewal-row .career-fields button{min-width:0;padding-inline:var(--ui-space-2)}
.career-renewal-status{font-size:var(--ui-font-caption);padding:2px 7px;border:1px solid var(--ui-line-strong);border-radius:var(--ui-radius-control);color:var(--ui-success)}
.career-renewal-status[data-status=released]{color:var(--ui-danger)}
.career-renewal-season{font-variant-numeric:tabular-nums;color:var(--ui-text)!important}
.career-renewal-option{color:var(--ui-muted);font-size:var(--ui-font-caption)}
.career-renewal-buttons{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:var(--ui-space-1)}
.career-renewal-buttons button{word-break:keep-all}
.career-workspace .career-camp select{font:var(--ui-font-small)/1.35 var(--ui-display)}
.career-fa-totals{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--ui-space-2);background:var(--ui-surface);border-radius:var(--ui-radius-control);padding:var(--ui-space-3)}
.career-fa-totals output{font-weight:700;color:var(--ui-accent-text);font-variant-numeric:tabular-nums}
.career-fa-row-actions{display:flex;justify-content:flex-end;gap:var(--ui-space-1)}
.career-fa-row-actions button,.career-foreign-table td:last-child button{padding-inline:var(--ui-space-2);white-space:nowrap}
.career-fa-table :is(td,th),.career-fa-results-table :is(td,th){vertical-align:middle}
.career-fa-table small,.career-fa-results-table small{display:block;margin-block-start:var(--ui-space-1)}
.career-fa-player-meta>span{white-space:nowrap}
.career-fa-table .career-fa-saved{color:var(--ui-success)}
.career-fa-table th:last-child{text-align:end}
.career-fa-table table,.career-foreign-table table{table-layout:fixed}
.career-fa-results-table table{table-layout:fixed}
.career-workspace :is(.career-fa-table,.career-fa-results-table) td,
.career-workspace .career-fa-table td:nth-child(2)>span{white-space:normal;overflow-wrap:anywhere}
.career-fa-table td:nth-child(2)>span{display:block}
.career-workspace [data-career-view^="fa-list-"] .career-switch button{word-break:keep-all}
.career-fa-table th:first-child{width:35%}
.career-fa-table th:last-child{width:114px}
.career-foreign-table th:last-child{width:76px}
.career-foreign-table th:nth-child(2){width:30%}
.career-foreign-table .career-foreign-ask{color:var(--ui-text);font-variant-numeric:tabular-nums}
@media(max-width:600px){
 .career-renewal-row .career-fields{grid-template-columns:minmax(0,1fr)}
 .career-fa-table th:last-child{width:101px}
 .career-foreign-table th:last-child{width:62px}
 .career-workspace .career-fa-table td:nth-child(2){font-size:var(--ui-font-caption);line-height:1.35}
 .career-workspace .career-camp select:focus{font-size:16px}
}

/* source: implementation/playable-v0.1/styles.css */
:root{color-scheme:dark;font:var(--ui-font-body)/var(--ui-leading-body) var(--ui-font-system);background:var(--ui-page);color:var(--ui-text);}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit;min-height:44px;border:1px solid var(--line);border-radius:var(--ui-radius-card);background:var(--ui-surface);color:inherit;padding:9px 12px;max-width:100%}button{cursor:pointer;font-weight:650}button:hover{border-color:var(--mint)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--lime);color:var(--ui-text);border-color:transparent}button.quiet{background:transparent}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--ui-line-strong);outline-offset:2px}h1,h2,h3,p{margin:0}h1{font-size:clamp(32px,7vw,64px);line-height:1.05;letter-spacing:-2px}h2{font-size:22px}h3{font-size:var(--ui-font-subtitle)}small,.muted{color:var(--muted)}small{font-size:var(--ui-font-small)}a{color:var(--mint)}.shell{max-width:1160px;margin:auto;padding:24px 24px 100px}.brand{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-4);margin-bottom:28px}.brand strong{letter-spacing:2px;font-size:var(--ui-font-label)}.badge,.tag{font-size:var(--ui-font-caption);letter-spacing:1px;padding:5px 8px;border:1px solid var(--line);border-radius:var(--ui-radius-control);color:var(--mint)}.eyebrow{color:var(--mint);font-size:var(--ui-font-caption);letter-spacing:2px;font-weight:750;margin-bottom:10px}.hero{padding:24px 0 32px}.hero p{margin-top:16px;color:var(--muted);max-width:580px}.grid{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--ui-space-6)}.card{background:var(--ink);border:1px solid var(--line);border-radius:var(--ui-radius-modal);padding:22px;min-width:0}.card+.card{margin-top:18px}.grid>.card+.card{margin:0}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.clubs{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--ui-space-3)}.clubs button{padding:12px 4px}.selected{border-color:var(--lime);color:var(--lime);background:var(--ui-surface)}.form{display:grid;gap:var(--ui-space-5);margin:22px 0}label{display:grid;gap:var(--ui-space-2);color:var(--muted);font-size:var(--ui-font-body)}select,input{width:100%;color:var(--ui-text)}.actions{display:flex;gap:var(--ui-space-3);flex-wrap:wrap;align-items:center}.actions>*{flex:1;min-width:100px}.note{margin-top:14px;font-size:var(--ui-font-small);color:var(--muted)}.toast{position:sticky;top:10px;z-index:8;background:var(--ui-raised);border:1px solid var(--mint);padding:12px;border-radius:var(--ui-radius-modal);margin-bottom:12px;display:flex;align-items:center;gap:10px}.toast.error{background:var(--ui-raised);border-color:var(--ui-danger)}.toast span{flex:1}.toast button{min-width:44px}.tabs{display:flex;gap:5px;margin:0 0 20px;border-bottom:1px solid var(--line);overflow:auto}.tabs button{border:0;border-radius:0;background:transparent;white-space:nowrap;color:var(--muted);min-width:70px}.tabs .selected{color:var(--lime);border-bottom:3px solid var(--lime)}.scoreboard{background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal);padding:20px;margin-bottom:20px}.scoreline{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;text-align:center;gap:14px}.scoreline .club{font-size:26px;font-weight:800}.scoreline .points{font-size:48px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:5px;white-space:nowrap}.scoreline small{display:block;font-size:var(--ui-font-xs);letter-spacing:2px}.game-status{text-align:center;margin-top:12px;font-size:var(--ui-font-body);color:var(--mint)}.innings{overflow-x:auto;margin-top:18px}.innings table{width:100%;font-size:var(--ui-font-small);min-width:420px}.tablewrap{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;font-size:var(--ui-font-body)}td,th{padding:10px 9px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:var(--ui-font-caption);font-weight:500}td:first-child,th:first-child{text-align:left}.namecell{min-width:90px}.field{height:310px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 100%,var(--ui-accent-soft) 0 18%,var(--ui-accent-soft) 18% 57%,var(--ui-accent-soft) 57%);border-radius:var(--ui-radius-modal)}.diamond{width:130px;height:130px;border:1px solid var(--ui-line-strong);transform:rotate(45deg);position:absolute;left:calc(50% - 65px);top:133px;background:color-mix(in srgb,var(--ui-hover) 33.33%,transparent)}.base{position:absolute;width:16px;height:16px;transform:rotate(45deg);background:var(--ui-hover);border:1px solid var(--ui-line-strong)}.base.occupied{background:var(--lime);box-shadow:0 0 15px #dcf97566}.b1{left:calc(50% + 84px);top:190px}.b2{left:calc(50% - 8px);top:99px}.b3{left:calc(50% - 100px);top:190px}.homeplate{left:calc(50% - 8px);top:282px;background:var(--ui-hover)}.fielder{position:absolute;transform:translateX(-50%);font-size:var(--ui-font-xs);text-align:center;color:var(--ui-success);text-shadow:0 1px 3px #000}.fielder b{display:block;color:var(--ui-success);font-size:var(--ui-font-dense)}.runnerlist{display:flex;justify-content:space-around;gap:var(--ui-space-2);padding:10px 0;font-size:var(--ui-font-caption)}.runnerlist span{min-width:0}.duel{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}.duel>div{border-left:2px solid var(--mint);padding-left:10px;min-width:0}.duel strong{display:block;font-size:20px}.metric{display:flex;gap:9px;flex-wrap:wrap;margin:10px 0}.metric span{font-size:var(--ui-font-caption);color:var(--muted)}.log{max-height:300px;overflow:auto;list-style:none;padding:0;margin:0}.log li{padding:11px 0;border-bottom:1px solid var(--line);font-size:var(--ui-font-body)}.log small{margin-right:8px}.lineuprow{display:grid;grid-template-columns:20px 35px 1fr 44px 44px;gap:var(--ui-space-2);align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.lineuprow .pos{color:var(--mint);font-size:var(--ui-font-small)}.lineuprow select{min-width:0;font-size:var(--ui-font-body);padding:8px 5px}.lineuprow button{padding:0}.stats{font-size:var(--ui-font-caption);color:var(--muted);margin-top:2px}.settingsrow{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.tools{display:grid;gap:10px}.divider{border:0;border-top:1px solid var(--line);margin:22px 0}.footer{color:var(--muted);font-size:var(--ui-font-caption);margin-top:24px}.empty{padding:20px;text-align:center;color:var(--muted)}.working{opacity:.7;pointer-events:none}details summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--mint)}.checkrow{display:flex;align-items:center;gap:10px;min-height:44px}.checkrow input{width:20px;min-height:20px}.wide{width:100%}.boxclub{margin:22px 0 10px}.inline-form{display:flex;gap:var(--ui-space-3);align-items:end}.inline-form label{flex:1;min-width:0}.inline-form button{flex-shrink:0}.grade{color:var(--lime)}
.scheduleitem{display:grid;grid-template-columns:45px 1fr auto;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:var(--ui-font-body)}.loading{padding:60px;text-align:center}
@media(max-width:700px){.shell{padding:16px 14px 70px}.brand{margin-bottom:14px}.badge{font-size:var(--ui-font-dense);letter-spacing:0}.hero{padding:18px 0 24px}.grid{grid-template-columns:1fr;gap:14px}.card{padding:16px}.clubs{gap:var(--ui-space-2)}.scoreboard{padding:16px 10px}.scoreline{gap:var(--ui-space-3)}.scoreline .points{font-size:40px;letter-spacing:2px}.scoreline .club{font-size:20px}.field{height:310px}.tabs{position:sticky;top:0;z-index:5;background:var(--ui-page);padding-top:4px}.settingsrow{grid-template-columns:1fr}.actions>*{min-width:84px}.lineuprow{grid-template-columns:17px 28px 1fr 44px 44px;gap:3px}.lineuprow select{font-size:var(--ui-font-small)}.hero h1{font-size:40px}.scoreline small{letter-spacing:1px}}
.tactic-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--ui-space-3)}
.field-player{position:absolute;transform:translateX(-50%);width:64px;min-height:44px;padding:3px 1px;background:color-mix(in srgb,var(--ui-accent-soft) 90.98%,transparent);border:1px solid color-mix(in srgb,var(--ui-line-strong) 46.67%,transparent);font-size:var(--ui-font-xs);line-height:1.2;text-align:center;z-index:2}.field-player b{display:block;color:var(--ui-success);font-size:var(--ui-font-xs);margin-bottom:3px}.field-player span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-player.chosen{border:2px solid var(--lime);background:var(--ui-accent-soft);color:var(--lime)}.field-player.compatible{border-color:var(--mint);box-shadow:0 0 0 1px var(--mint)}.dh-row{margin-top:10px}.field-editor{margin-top:12px;padding:12px;background:var(--ui-surface);border:1px solid var(--line);border-radius:var(--ui-radius-modal)}.field-editor>button{margin-top:10px}.bench-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:var(--ui-space-3);margin-top:12px}.bench-grid button small,.bench-card small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.bench-card{padding:10px;background:var(--ui-surface);border:1px solid var(--line);border-radius:var(--ui-radius-card);font-size:var(--ui-font-body);cursor:grab;min-height:58px}.lineuprow[draggable=true]{cursor:grab}.lineuprow[draggable=true]:hover{background:var(--ui-surface)}.on-base{position:absolute;transform:translateX(-50%);font-size:var(--ui-font-caption);color:var(--lime);font-weight:700;padding:2px 5px;background:color-mix(in srgb,var(--ui-accent-soft) 90.98%,transparent);border-radius:var(--ui-radius-small);max-width:86px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:2}.on-base.r1{left:79%;top:214px}.on-base.r2{left:50%;top:77px}.on-base.r3{left:21%;top:214px}.play-call{position:absolute;left:50%;top:110px;transform:translateX(-50%);z-index:4;min-width:170px;max-width:90%;padding:18px 25px;border:1px solid var(--ui-line-strong);background:color-mix(in srgb,var(--ui-page) 94.90%,transparent);box-shadow:0 8px 32px #0009;border-radius:var(--ui-radius-modal);text-align:center;pointer-events:none;animation:play-appear 220ms ease-out}.play-call small{display:block;color:var(--ui-success)}.play-call strong{display:block;line-height:1.2;font-size:38px;letter-spacing:1px;margin:5px 0}.play-call span{color:var(--lime);font-weight:700}.play-call.hit{border-color:var(--mint);color:var(--mint)}.play-call.homer{border-color:var(--ui-accent-text);color:var(--ui-accent-text);background:color-mix(in srgb,var(--ui-warning-bg) 96.08%,transparent)}.play-call.score{border-color:var(--lime);color:var(--lime)}.scoring-strip{margin:15px 0 0;padding:13px 15px;background:var(--ui-accent-soft);border:1px solid var(--lime);border-radius:var(--ui-radius-card);animation:play-appear 220ms ease-out;overflow-wrap:anywhere}.scoring-strip strong{color:var(--lime);display:block}.scoring-strip div{font-size:var(--ui-font-label);margin:3px 0}.scoring-strip small{color:var(--ui-success)}.last-play{display:grid;gap:2px;margin:5px 0 16px;padding:10px 12px;border-left:3px solid var(--mint);background:var(--ui-surface);border-radius:0 7px 7px 0}.last-play strong{font-size:var(--ui-font-label)}.last-play span{color:var(--lime);font-size:var(--ui-font-small)}.log.broadcast{max-height:520px}.broadcast-note{margin:0 0 10px}.broadcast li{display:grid;gap:var(--ui-space-1);padding:14px 0;white-space:normal;overflow-wrap:anywhere}.broadcast li>small{color:var(--mint);font-size:var(--ui-font-caption)}.broadcast li>strong{font-weight:650;line-height:1.5}.broadcast p{font-size:var(--ui-font-small);line-height:1.7;color:var(--muted)}.broadcast .commentary-score{border-left:3px solid var(--lime);padding-left:11px;background:color-mix(in srgb,var(--ui-accent-soft) 3.53%,transparent)}.broadcast .commentary-score>strong{color:var(--lime)}.broadcast .commentary-inning{background:var(--ui-surface);padding:12px;border-radius:var(--ui-radius-control)}.broadcast .commentary-final>strong{color:var(--lime);font-size:var(--ui-font-subtitle)}
@keyframes play-appear{from{opacity:0;scale:.94}to{opacity:1;scale:1}}@media(max-width:700px){.log.broadcast{max-height:420px}.field-player{width:60px}.bench-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.final-call .play-call{position:relative;left:auto;top:auto;transform:none;margin:12px auto}.final-call:empty{display:none}
@keyframes play-fade{to{opacity:0}}.play-call,.scoring-strip{animation:play-appear 180ms ease-out,play-fade 250ms ease-in var(--fade-wait,1950ms) forwards}@media(prefers-reduced-motion:reduce){.play-call,.scoring-strip{animation:none}}

/* 2026-10-23 settings hotfix: scoped player selector and guarded reset */
.settings-danger{margin-top:18px;padding:16px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal);background:rgba(120,54,60,.12)}
.settings-danger p{font-size:var(--ui-font-body);color:var(--muted);margin:6px 0 12px}
.settings-danger button,.match-sheet button.danger{border-color:var(--ui-danger);color:var(--ui-danger);background:var(--ui-danger-bg)}
.player-editor-header{display:grid;gap:var(--ui-space-3);margin-bottom:12px}
.player-editor-header label{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-weight:650}
.player-editor-header select{width:min(100%,240px)}
.player-edit-list{max-height:60vh;overflow:auto;overscroll-behavior:contain}
.reset-confirm-label{display:grid;gap:var(--ui-space-3);margin:18px 0}
@media(max-width:480px){.player-editor-header label{align-items:stretch;flex-direction:column}.player-editor-header select{width:100%}}

/* source: implementation/playable-v0.1/ui-primitives.css */
@font-face{font-family:KboNtreev;src:url("../assets/fonts/NTREEVSOFT.72dcb63133b7c2d0.ttf") format('truetype');font-weight:400;font-style:normal;font-display:swap}
/* Shared presentation primitives, after legacy base and before feature layouts. */
body,body.manager-mode,body.setup-mode{background:var(--ui-page);color:var(--ui-text);font-size:var(--ui-font-body);line-height:var(--ui-leading-body)}
button,select,input,textarea{font-size:var(--ui-font-body);border-radius:var(--ui-radius-control);background:var(--ui-surface);color:var(--ui-text);border-color:var(--ui-line)}
button{font-family:var(--ui-display);font-weight:400;font-synthesis:none;line-height:1.4}
small{font-family:var(--ui-font-system)}
select,input,textarea{font-family:var(--ui-font-system);font-variant-numeric:tabular-nums;min-width:0}
button:not(:disabled):hover{border-color:var(--ui-accent-text)}
button.primary,button.selected,.view-switch .selected,.lineup-handed-tabs .selected,.tabs .selected,.clubs .selected{background:var(--ui-accent);color:var(--ui-on-accent);border-color:var(--ui-accent)}
button.primary *,button.selected *{color:inherit}
h1,h2,h3,.manager-header>strong,.brand>strong,.today-duel>strong,.today-starter b,.club-heading h1,.club-standing>b,.order-identity strong,.staff-card strong,.bench-mini strong,.stadium-identity strong,.player-list strong,.franchise-roster strong,.opening-player strong,.player-detail-name,.pd-name,.toast,.sheet-title{font-family:var(--ui-display);font-weight:400;font-synthesis:none}
h1,h2,h3{word-break:keep-all;overflow-wrap:break-word}
.record-table-scroll td,.record-table-scroll th,.batting-metrics,.ability-metrics,.staff-card small,.player-stats,.month-date,.month-league-game,.player-detail-stat{font-family:var(--ui-font-system);font-variant-numeric:tabular-nums}
.card,.today-card,.club-calendar,.home-recent,.home-ranks,.order-card,.staff-card,.bench-mini,.setup-preview,.day-fixture,.match-sheet{border-radius:var(--ui-radius-control);box-shadow:none}

:where(button,select,input,textarea){min-height:var(--ui-action-height)}
:where(button,select,input,textarea):disabled{cursor:default}
button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:var(--ui-focus-width) solid var(--ui-accent-text);outline-offset:2px}
:where(.card,.setup-preview,.player-detail-card){border-radius:var(--ui-radius-card)}
:where(dialog)::backdrop{background:var(--ui-backdrop)}
/* Form text stays 16px on phones to avoid focus zoom, without enlarging buttons or cards. */
@media(max-width:600px){:where(input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea){font-size:var(--ui-font-subtitle)}}

/* Club-colored type on dark neutral surfaces. The stroke is painted behind the original ink. */
@supports (paint-order:stroke fill) and (-webkit-text-stroke:1px white){
 :root[data-club-ink-outline] :is(.order-no,.staff-slot-label>b,.squad-rating,.club-standing>b,.today-card-head>span,.today-duel>b,.season-numbers b,.season-hero h1,.champion-banner strong,.postseason-bracket-clubs .is-advanced strong,.month-date>i,.swatch-team-text,.player-detail-identity h3,.player-detail-duty b,.player-energy-heading>b,.player-stat-grid b,.slot-heading>b,.development-bands b,.career-fa-marker,.career-my-pick strong){
  color:var(--club-color);-webkit-text-stroke:1px #fff;paint-order:stroke fill;
 }
}

/* source: implementation/playable-v0.1/play-layout.css */
/* v0.1.3: stable play surface; every manager command stays within reach. */
body.match-mode{overflow:hidden;background:var(--ui-page)}.match-mode .shell{max-width:1540px;height:100svh;padding:0 18px;margin:auto}.match-mode .brand,.match-mode .footer{display:none}.play-app{height:100svh;display:grid;grid-template-rows:56px minmax(0,1fr);gap:0}.play-header{display:flex;align-items:center;gap:var(--ui-space-4);min-width:0}.play-header>strong{font-size:var(--ui-font-label);letter-spacing:1px;flex:1}.play-header strong span{color:var(--ui-muted)}.play-header strong small{font-size:var(--ui-font-xs);letter-spacing:0;margin-left:10px;font-weight:400}.play-header button{min-height:40px;font-size:var(--ui-font-small);padding:7px 11px;background:transparent}.play-header nav{display:flex;gap:5px}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;min-height:0;padding-bottom:14px}.play-stage{display:grid;grid-template-rows:78px minmax(160px,1fr) 70px 62px 64px;min-height:0;background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal);overflow:hidden}.live-score{display:grid;grid-template-columns:minmax(60px,1fr) 56px 100px 56px minmax(60px,1fr);align-items:center;gap:var(--ui-space-4);padding:10px 26px;background:var(--ui-surface);border-bottom:1px solid var(--ui-line);text-align:center}.score-club{display:flex;flex-direction:column;gap:0}.score-club small{font-size:var(--ui-font-dense);letter-spacing:2px;color:var(--ui-muted)}.score-club strong{font-size:24px;line-height:1.2}.live-runs{font-size:38px;line-height:1;font-variant-numeric:tabular-nums;color:var(--ui-text)}.live-count{display:flex;flex-direction:column;gap:9px;align-items:center}.live-count strong{font-size:var(--ui-font-body);color:var(--ui-accent-text)}.live-count>span{display:flex;gap:var(--ui-space-2);min-height:9px;font-size:var(--ui-font-caption);color:var(--ui-accent-text)}.out-light{display:block;width:9px;height:9px;border-radius:50%;background:var(--ui-raised);border:1px solid var(--ui-line-strong)}.out-light.on{background:var(--ui-danger-bg);border-color:var(--ui-danger)}.stadium{position:relative;min-height:0;overflow:hidden;background:var(--ui-accent-soft)}.stadium-art{position:absolute;width:100%;height:100%;inset:0}.stadium-player{position:absolute;transform:translate(-50%,-50%);font-size:var(--ui-font-caption);text-align:center;line-height:1.2;pointer-events:none;white-space:nowrap}.stadium-player small{display:block;font-size:var(--ui-font-micro);color:var(--ui-success);letter-spacing:1px;margin-bottom:3px}.stadium-player strong{display:inline-block;font-size:var(--ui-font-small);background:color-mix(in srgb,var(--ui-accent-soft) 85.10%,transparent);color:var(--ui-success);padding:3px 6px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-small)}.stadium-player em{display:block;font-size:var(--ui-font-dense);font-style:normal;color:var(--ui-success);margin-top:3px}.stadium-runner{position:absolute;transform:translate(-50%,-50%);z-index:5;pointer-events:none;text-align:center;white-space:nowrap}.stadium-runner i{display:block;width:14px;height:14px;margin:auto;background:var(--ui-warning-bg);border:2px solid var(--ui-accent-text);border-radius:50%;box-shadow:0 0 0 3px #f4d48833,0 2px 4px #0006}.stadium-runner b{font-size:var(--ui-font-xs);display:block;margin-top:3px;padding:2px 4px;background:color-mix(in srgb,var(--ui-warning-bg) 93.33%,transparent);color:var(--ui-accent-text);border-radius:3px}.runner-out i{background:var(--ui-danger-bg);border-color:var(--ui-danger)}.pitch-ball{position:absolute;left:50%;top:65%;height:8px;width:8px;z-index:6;background:var(--ui-hover);border-radius:50%;box-shadow:0 -8px 10px #fff5;animation:pitch-travel 360ms ease-in forwards}.batter-marker{position:absolute;left:72%;top:86%;font-size:var(--ui-font-caption);display:grid;gap:3px;padding-left:8px;border-left:2px solid var(--ui-accent-text);max-width:25%}.batter-marker small{font-size:var(--ui-font-dense);color:var(--ui-accent-text)}.batter-marker b{color:var(--ui-accent-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.matchup-bar{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);align-items:center;border-top:1px solid var(--ui-line);border-bottom:1px solid var(--ui-line);padding:6px 18px;gap:var(--ui-space-1);background:var(--ui-surface)}.matchup-bar button{display:grid;grid-template-columns:1fr auto;gap:1px 6px;min-height:56px;border:0;border-radius:0;padding:0;background:none;text-align:left;font-size:var(--ui-font-caption);font-weight:400}.matchup-bar button small{grid-column:1/-1;font-size:var(--ui-font-dense);color:var(--ui-muted);letter-spacing:1px}.matchup-bar button strong{font-size:var(--ui-font-heading);font-weight:750;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.matchup-bar button span{font-size:var(--ui-font-xs);color:var(--ui-muted);align-self:center;white-space:nowrap}.matchup-bar .versus{font-size:var(--ui-font-dense);color:var(--ui-muted);text-align:center}.result-rail{height:62px;min-height:62px;overflow:hidden;padding:8px 20px;background:var(--ui-surface);border-bottom:1px solid var(--ui-line)}.result-main{display:flex;gap:var(--ui-space-4);align-items:baseline;font-size:var(--ui-font-label);min-height:22px;line-height:22px}.result-main strong{font-weight:500;color:var(--ui-text);max-width:50%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.result-main b{font-size:var(--ui-font-subtitle);color:var(--ui-accent-text)}.result-rail.homer .result-main b{color:var(--ui-accent-text)}.result-rail.hit .result-main b{color:var(--ui-success)}.result-rail p{font-size:var(--ui-font-caption);color:var(--ui-muted);line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manager-dock{display:flex;align-items:center;gap:9px;padding:9px 18px;background:var(--ui-surface)}.manager-dock button{flex:1;min-width:0;min-height:44px;font-size:var(--ui-font-body);background:var(--ui-raised);border:1px solid var(--ui-line);padding:8px}.manager-dock .primary{flex:2.4;color:var(--ui-text);background:var(--ui-accent-soft);border-color:var(--ui-line-strong);font-size:var(--ui-font-label)}.manager-dock button[data-action=auto-toggle]{color:var(--ui-accent-text);border-color:var(--ui-accent-text)}.mobile-commentary{display:none}.play-sidebar{display:flex;flex-direction:column;min-height:0;border:1px solid var(--ui-line);background:var(--ui-surface);border-radius:var(--ui-radius-modal);overflow:hidden}.side-tabs{display:flex;flex-shrink:0;border-bottom:1px solid var(--ui-line);background:var(--ui-surface)}.side-tabs button{flex:1;background:none;border:0;border-radius:0;min-height:46px;font-size:var(--ui-font-small);padding:8px 4px;color:var(--ui-muted)}.side-tabs button.selected{color:var(--ui-accent-text);border-bottom:2px solid var(--ui-accent-text)}.side-content{min-height:0;flex:1;overflow:auto;padding:0 16px 16px}.side-content .broadcast-note{font-size:var(--ui-font-xs);padding:12px 0 0;margin:0}.side-content .broadcast{max-height:none;overflow:visible}.side-content .broadcast li{padding:13px 0;gap:5px}.side-content .broadcast li>strong{font-size:var(--ui-font-body)}.side-content .broadcast p{font-size:var(--ui-font-small);line-height:1.7}.side-content .innings table{min-width:420px}.side-content .scoreboard{margin-top:12px;padding:10px}.side-content .scoreline .club{font-size:var(--ui-font-subtitle)}.side-content .scoreline .points{font-size:28px}.order-list{padding:16px 0}.order-list h3{margin-bottom:14px}.order-player{display:grid;grid-template-columns:24px 1fr 35px 44px;gap:var(--ui-space-3);align-items:center;min-height:44px;border-bottom:1px solid var(--ui-line);font-size:var(--ui-font-body);padding:7px}.order-player.at-bat{background:var(--ui-raised);border-left:2px solid var(--ui-line-strong);color:var(--ui-accent-text)}.order-player b{font-size:var(--ui-font-caption);text-align:right;color:var(--ui-muted)}.match-mode .toast{position:fixed;left:50%;top:62px;transform:translateX(-50%);width:min(90%,640px);z-index:55;margin:0;box-shadow:0 8px 24px #0005;font-size:var(--ui-font-body)}.sheet-backdrop{position:fixed;inset:0;background:color-mix(in srgb,var(--ui-page) 60.00%,transparent);backdrop-filter:blur(2px);z-index:60}.match-sheet{position:fixed;z-index:61;right:max(16px,calc((100vw - 1510px)/2));top:var(--ui-modal-top);bottom:auto;width:min(420px,calc(100vw - 24px));max-height:calc(var(--app-viewport-height,100dvh) - var(--ui-modal-top) - var(--ui-modal-bottom));border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal);background:var(--ui-surface);box-shadow:0 24px 90px #000b;display:flex;flex-direction:column}.match-sheet>header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--ui-line);flex-shrink:0}.match-sheet h2{font-size:var(--ui-font-heading)}.match-sheet header button{background:none;border:0;font-size:24px;min-width:44px;padding:0}.sheet-body{padding:18px;overflow:auto;min-height:0;overscroll-behavior:contain}.sheet-body .form{margin:14px 0;gap:var(--ui-space-4)}.sheet-body h3{display:none}.sheet-body .note{font-size:var(--ui-font-small);margin:0 0 14px}.sheet-body .broadcast{max-height:none}.sheet-actions{display:grid;gap:10px;margin-top:18px}.reserved-tactic{display:flex;align-items:center;justify-content:space-between;font-size:var(--ui-font-body);padding-bottom:12px}.sheet-body .tactic-grid{gap:10px}.sheet-body .tactic-grid button{min-height:52px}.sheet-body .tactic-grid button:disabled{opacity:.3}.match-sheet .checkrow{margin:10px 0 18px}.match-sheet select{min-height:46px}
@keyframes pitch-travel{from{top:65%;scale:.8}to{top:89%;scale:1.2}}@media(prefers-reduced-motion:reduce){.pitch-ball{animation:none}}
@media(min-width:1550px){.play-layout{grid-template-columns:minmax(0,1fr) 380px}.play-stage{grid-template-rows:86px minmax(160px,1fr) 76px 62px 68px}}
@media(max-width:800px){.match-mode .shell{padding:0 9px}.play-app{grid-template-rows:46px minmax(0,1fr)}.play-header{gap:7px}.play-header>strong{font-size:var(--ui-font-small);letter-spacing:.5px}.play-header strong small{display:none}.play-header nav{display:none}.play-header button{font-size:var(--ui-font-small);min-height:40px;padding:5px 9px}.play-layout{display:block;padding-bottom:8px;min-height:0}.play-stage{height:100%;grid-template-rows:66px minmax(150px,1fr) 60px 58px 60px 32px;border-radius:var(--ui-radius-modal)}.live-score{gap:var(--ui-space-2);padding:8px 12px;grid-template-columns:minmax(42px,1fr) 40px 76px 40px minmax(42px,1fr)}.score-club strong{font-size:21px}.live-runs{font-size:32px}.live-count strong{font-size:var(--ui-font-small)}.live-count{gap:var(--ui-space-2)}.score-club small{font-size:var(--ui-font-micro);letter-spacing:1px}.stadium-player strong{font-size:var(--ui-font-xs);padding:2px 4px}.stadium-player small{font-size:7px;margin-bottom:2px}.stadium-player em{font-size:var(--ui-font-micro);margin-top:2px}.stadium-runner i{width:12px;height:12px}.stadium-runner b{font-size:var(--ui-font-dense);padding:1px 3px}.batter-marker{font-size:var(--ui-font-xs);padding-left:5px}.batter-marker small{font-size:var(--ui-font-micro)}.matchup-bar{padding:4px 12px;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);gap:var(--ui-space-1)}.matchup-bar button{grid-template-columns:1fr;min-height:50px;gap:1px}.matchup-bar button strong{font-size:var(--ui-font-subtitle);line-height:19px}.matchup-bar button span{font-size:var(--ui-font-dense);line-height:13px}.matchup-bar button small{font-size:var(--ui-font-micro);letter-spacing:.5px;line-height:12px}.result-rail{height:58px;min-height:58px;padding:6px 13px}.result-main{font-size:var(--ui-font-body);gap:9px}.result-main b{font-size:var(--ui-font-subtitle)}.result-rail p{font-size:var(--ui-font-xs)}.manager-dock{padding:8px 10px;gap:var(--ui-space-2)}.manager-dock button{font-size:var(--ui-font-small);padding:6px 3px}.manager-dock .primary{font-size:var(--ui-font-body);flex:2.15}.mobile-commentary{display:flex;align-items:center;justify-content:space-between;background:var(--ui-surface);border:0;border-top:1px solid var(--ui-line);border-radius:0;min-height:32px;height:32px;padding:0 14px;font-size:var(--ui-font-caption);color:var(--ui-muted);font-weight:500}.play-sidebar{display:none}.match-sheet{left:6px;right:6px;top:var(--ui-modal-top);bottom:auto;width:auto;max-height:calc(var(--app-viewport-height,100dvh) - var(--ui-modal-top) - var(--ui-modal-bottom));border-radius:15px 15px 10px 10px}.match-sheet>header{padding:10px 14px}.sheet-body{padding:16px}.match-mode .toast{top:49px;padding:8px 12px;font-size:var(--ui-font-small)}.match-mode .toast button{min-height:36px}.side-content{padding:0 12px 12px}}
@media(max-height:650px) and (max-width:800px){.play-app{grid-template-rows:42px minmax(0,1fr)}.play-stage{grid-template-rows:58px minmax(130px,1fr) 55px 52px 56px 30px}.live-score{padding:5px 10px}.result-rail{height:52px;min-height:52px;padding-top:4px}.result-main{line-height:20px;min-height:20px}.mobile-commentary{height:30px;min-height:30px}.matchup-bar button strong{font-size:var(--ui-font-label)}.matchup-bar button span{font-size:var(--ui-font-micro)}}
.sheet-tabs{display:flex;gap:var(--ui-space-2);margin-bottom:14px}.sheet-tabs button{flex:1;font-size:var(--ui-font-small);min-height:44px}.sheet-body .scoreboard{padding:12px}.sheet-body .scoreline .points{font-size:32px}.sheet-body .scoreline .club{font-size:var(--ui-font-heading)}
@media(max-height:500px) and (max-width:1000px){.match-mode .shell{padding:0 7px}.play-app{grid-template-rows:44px minmax(0,1fr)}.play-header nav,.play-header strong small{display:none}.play-header button{min-height:40px;padding:4px 8px}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:var(--ui-space-3);padding-bottom:6px}.play-sidebar{display:flex;border-radius:var(--ui-radius-card)}.play-stage{height:100%;grid-template-rows:52px minmax(75px,1fr) 46px 44px 50px}.live-score{padding:4px 12px;grid-template-columns:1fr 32px 70px 32px 1fr;gap:5px}.score-club strong{font-size:var(--ui-font-heading)}.live-runs{font-size:27px}.live-count{gap:var(--ui-space-1)}.live-count strong{font-size:var(--ui-font-caption)}.score-club small{font-size:7px}.matchup-bar{padding:2px 10px}.matchup-bar button{min-height:42px;display:grid;grid-template-columns:1fr auto;gap:0 4px}.matchup-bar button strong{font-size:var(--ui-font-label);line-height:17px}.matchup-bar button small{font-size:var(--ui-font-micro);line-height:12px}.matchup-bar button span{font-size:var(--ui-font-micro);line-height:12px}.result-rail{height:44px;min-height:44px;padding:2px 12px}.result-main{min-height:20px;line-height:20px}.result-main b{font-size:var(--ui-font-label)}.result-rail p{font-size:var(--ui-font-dense);line-height:16px}.manager-dock{padding:3px 8px;gap:5px}.manager-dock button{min-height:44px;font-size:var(--ui-font-caption)}.manager-dock .primary{font-size:var(--ui-font-small)}.mobile-commentary{display:none}.stadium-player strong{font-size:var(--ui-font-dense);padding:1px 3px}.stadium-player small{font-size:6px;margin-bottom:1px}.stadium-player em{font-size:7px;margin-top:1px}.batter-marker{font-size:var(--ui-font-dense)}.batter-marker small{font-size:7px}.stadium-runner i{width:9px;height:9px;border-width:1px}.stadium-runner b{font-size:var(--ui-font-micro);padding:0 2px}.side-tabs button{font-size:var(--ui-font-xs);min-height:40px}.side-content{padding:0 10px 10px}.side-content .broadcast li>strong{font-size:var(--ui-font-caption)}.side-content .broadcast p{font-size:var(--ui-font-xs);line-height:1.5}.match-sheet{max-height:94svh}}
@media(max-width:800px){.match-mode .shell{padding-left:max(9px,env(safe-area-inset-left));padding-right:max(9px,env(safe-area-inset-right))}.play-app{grid-template-rows:calc(46px + env(safe-area-inset-top)) minmax(0,1fr)}.play-header{padding-top:env(safe-area-inset-top)}.play-layout{padding-bottom:max(8px,env(safe-area-inset-bottom))}}

/* Broadcast presentation: permanent score space, transient lettering, no result panel over players. */
.play-stage{grid-template-rows:110px minmax(140px,1fr) 70px 62px 64px}
.live-score{grid-template-rows:54px 36px;row-gap:2px;padding:6px 24px 10px}
.live-runs{display:flex;justify-content:center;align-items:center}
.rolling-score{position:relative;display:block;width:100%;height:1.2em;line-height:1.2;overflow:hidden}
.score-old,.score-new{position:absolute;inset:0;text-align:center;display:block;line-height:1.2;animation-timing-function:ease;animation-fill-mode:both}
.score-old{animation-name:score-roll-out}.score-new{animation-name:score-roll-in;color:var(--ui-accent-text)}
.score-cause{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:36px;line-height:16px;color:var(--ui-muted);font-size:var(--ui-font-caption);font-weight:400}
.score-cause strong,.score-cause span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.score-cause strong{font-size:var(--ui-font-small);color:var(--ui-text);font-weight:600}.score-cause.scored strong{color:var(--ui-accent-text)}.score-cause.scored span{color:var(--ui-success)}
.result-callout{position:absolute;left:50%;top:32%;transform:translate(-50%,-50%);width:94%;z-index:7;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;pointer-events:none;color:var(--ui-success);text-shadow:0 2px 2px #081e22,0 3px 14px #04161bd9;animation:broadcast-call 2450ms ease-out both;line-height:1.08}
.result-callout>strong{display:block;font-size:clamp(24px,7vw,60px);font-style:italic;font-weight:950;letter-spacing:.025em;white-space:nowrap;max-width:100%}
.result-callout>b{font-size:clamp(14px,2.2vw,21px);font-weight:800}.result-callout>span{font-size:var(--ui-font-small);font-weight:600;color:var(--ui-accent-text);margin-top:2px}
.call-out{color:var(--ui-danger)}.call-homer{color:var(--ui-accent-text)}.call-walk{color:var(--ui-text)}.call-neutral{color:var(--ui-accent-text)}
@keyframes score-roll-out{0%,25%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-105%)}}
@keyframes score-roll-in{0%,25%{opacity:0;transform:translateY(105%)}100%{opacity:1;transform:translateY(0)}}
@keyframes broadcast-call{0%{opacity:0;transform:translate(-50%,-40%) scale(.94)}9%,78%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-65%) scale(1)}}
@media(min-width:1550px){.play-stage{grid-template-rows:118px minmax(140px,1fr) 76px 62px 68px}.live-score{grid-template-rows:62px 36px}}
@media(max-width:800px){.play-stage{grid-template-rows:100px minmax(130px,1fr) 60px 58px 60px 32px}.live-score{grid-template-rows:48px 34px;padding:6px 10px 10px;column-gap:5px;grid-template-columns:minmax(38px,1fr) 38px 72px 38px minmax(38px,1fr)}.score-cause{font-size:var(--ui-font-xs);line-height:15px;min-height:34px}.score-cause strong{font-size:var(--ui-font-caption)}.result-callout>strong{font-size:clamp(24px,7vw,44px)}.result-callout>span{font-size:var(--ui-font-xs)}}
@media(max-height:650px) and (max-width:800px){.play-stage{grid-template-rows:88px minmax(110px,1fr) 55px 52px 56px 30px}.live-score{grid-template-rows:40px 32px;padding:5px 9px 9px}.score-cause{min-height:32px;line-height:14px}}
@media(max-height:500px) and (max-width:1000px){.play-stage{grid-template-rows:78px minmax(75px,1fr) 46px 44px 50px}.live-score{grid-template-rows:32px 30px;padding:4px 10px 10px}.live-count{gap:3px}.score-cause{min-height:30px;line-height:13px;font-size:var(--ui-font-dense)}.score-cause strong{font-size:var(--ui-font-xs)}.result-callout{gap:1px;top:31%}.result-callout>strong{font-size:21px}.result-callout>b{font-size:var(--ui-font-caption)}.result-callout>span{display:none}}
@media(prefers-reduced-motion:reduce){.score-old{display:none}.score-new{animation:none;position:relative}.result-callout{animation:none}}
@media(max-height:500px) and (max-width:1000px){.play-stage{grid-template-rows:78px minmax(75px,1fr) 46px 34px 44px}.result-rail{height:34px;min-height:34px;padding:0 10px}.result-rail p{line-height:14px}.manager-dock{padding:2px 6px}.manager-dock button{min-height:40px}}
.stadium{container-type:size}.result-callout{top:37%}
@container (max-height:420px){.result-callout{top:37%;gap:1px}.result-callout>strong{font-size:clamp(18px,7cqh,28px)}.result-callout>b{font-size:clamp(11px,3.5cqh,14px)}.result-callout>span{display:none}}
@media(max-height:500px) and (max-width:1000px){.result-callout{top:31%}.result-callout>b{display:none}}
.result-callout.call-long>strong{font-size:clamp(18px,6vw,40px)}
@container (max-height:420px){.result-callout.call-long>strong{font-size:clamp(16px,6.5cqh,24px)}}
.score-cause.scored{animation:score-cause-fade 2450ms linear both}
@keyframes score-cause-fade{0%,80%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.score-cause.scored{animation:none}}

/* source: implementation/playable-v0.1/management-layout.css */
body.manager-mode,body.setup-mode{overflow:hidden;background:var(--ui-page)}
.operations-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.operations-grid button{min-height:76px;text-align:left;padding:14px;font-size:var(--ui-font-label);background:var(--ui-surface)}.operation-setting{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-4);padding:16px 0;border-bottom:1px solid var(--ui-line)}.operation-setting span{font-size:var(--ui-font-label)}.operation-setting small{display:block;color:var(--ui-muted);font-size:var(--ui-font-caption);margin-top:8px}.operation-setting button{min-width:66px}.franchise-filter{display:grid;grid-template-columns:1fr 1.6fr;gap:10px}.franchise-filter label{min-width:0}.franchise-filter input,.franchise-filter select{width:100%}.franchise-roster,.training-list{display:flex;flex-direction:column;gap:var(--ui-space-3);margin:14px 0}.franchise-roster article,.training-list article{display:flex;align-items:center;gap:var(--ui-space-3);padding:7px;border:1px solid var(--ui-line);background:var(--ui-surface);border-radius:var(--ui-radius-card)}.franchise-roster article>button:first-child,.training-list article>button{flex:1;min-width:0;border:0;background:none;text-align:left;padding:4px}.franchise-roster strong,.training-list strong{display:block;font-size:var(--ui-font-label)}.franchise-roster small,.training-list span{display:block;font-size:var(--ui-font-xs);color:var(--ui-muted);margin-top:7px;line-height:1.5}.franchise-roster article>button:last-child{font-size:var(--ui-font-caption);white-space:nowrap;padding:6px 9px;min-height:38px;flex:0 0 auto}.training-list select{width:125px;max-width:42%;font-size:var(--ui-font-small);padding:8px 5px}.training-list strong small{font-size:var(--ui-font-xs);color:var(--ui-muted)}.trade-form{display:flex;flex-direction:column;gap:var(--ui-space-5);margin:16px 0}.trade-form select,.trade-form input{width:100%}.operations-log{display:flex;flex-direction:column;gap:9px}.operations-log article{border-left:2px solid var(--ui-line-strong);background:var(--ui-surface);padding:10px 13px}.operations-log small{font-size:var(--ui-font-xs);color:var(--ui-muted)}.operations-log strong{display:block;font-size:var(--ui-font-body);line-height:1.7;margin-top:5px}.diagnostic-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.diagnostic-grid span{display:flex;flex-direction:column;gap:var(--ui-space-3);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);padding:13px;font-size:var(--ui-font-caption);color:var(--ui-muted)}.diagnostic-grid b{font-size:23px;color:var(--ui-accent-text)}.development-card{padding:12px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal);margin:14px 0;background:var(--ui-accent-soft)}.development-card h4{margin:0 0 12px}.development-card p{font-size:var(--ui-font-caption);line-height:1.7}.development-card>small{font-size:var(--ui-font-xs);color:var(--ui-muted)}.development-bands{display:flex;gap:var(--ui-space-5);margin:14px 0;flex-wrap:wrap}.development-bands span{display:flex;flex-direction:column;gap:7px;font-size:var(--ui-font-xs);color:var(--ui-muted)}.development-bands b{font-size:var(--ui-font-body);color:var(--ui-accent-text)}.record-clubs{display:block;font-size:var(--ui-font-dense);color:var(--ui-muted);margin-top:4px}.record-table-scroll td:first-child button{white-space:normal;line-height:1.3}.settings-tiles{flex-shrink:1}.settings-tiles>button{min-height:62px}
@media(max-width:380px){.operations-grid button{font-size:var(--ui-font-small);padding:10px}.franchise-roster article{gap:3px;padding:5px}.training-list select{width:110px}.diagnostic-grid b{font-size:20px}}
.working [data-action="season-cancel"]{pointer-events:auto}
.season-hub{height:100%;max-width:1160px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,.85fr);gap:40px;align-items:center}
.season-hero{min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--ui-space-6)}
.season-hero h1{font-size:70px;line-height:1.1;margin:0;color:var(--ui-accent-text)}.season-hero h1 small{display:block;font-size:var(--ui-font-small);letter-spacing:4px;color:var(--ui-muted);margin-top:12px}
.season-today{display:flex;flex-direction:column;gap:9px}.season-today strong{font-size:25px}.season-today small{font-size:var(--ui-font-small);color:var(--ui-muted)}
.season-numbers{display:flex;justify-content:center;gap:30px;border-block:1px solid #34515a;padding:15px 5px;width:100%}.season-numbers span{display:flex;flex-direction:column;gap:var(--ui-space-3);font-size:var(--ui-font-caption);color:var(--ui-muted)}.season-numbers b{color:var(--ui-accent-text);font-size:20px}
.season-main-actions{display:flex;gap:var(--ui-space-3);width:100%;justify-content:center}.season-main-actions button{min-height:46px;font-size:var(--ui-font-label);max-width:250px;flex:1}.season-links{display:flex;gap:var(--ui-space-2);justify-content:center;flex-wrap:wrap}.season-links button{font-size:var(--ui-font-small);min-height:38px;padding:5px 10px}.season-hint,.season-sidebar>small{font-size:var(--ui-font-xs);color:var(--ui-muted)}
.season-table{overflow:auto;max-width:100%;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);overscroll-behavior:contain}.season-table table{white-space:nowrap;width:100%;font-size:var(--ui-font-small)}.season-table td,.season-table th{padding:10px 8px;text-align:center}.season-table td:first-child{white-space:nowrap}.season-table tr.my-club{color:var(--ui-accent-text);background:var(--ui-accent-soft)}.season-sidebar h3{margin-bottom:14px}.season-sidebar>small{display:block;margin-top:12px}
.calendar-filters{display:flex;gap:var(--ui-space-4)}.calendar-filters label{flex:1;min-width:0}.calendar-filters select{width:100%}.season-calendar{display:flex;flex-direction:column;gap:var(--ui-space-2)}.season-calendar button{display:flex;align-items:center;text-align:left;gap:14px;width:100%;padding:10px;font-size:var(--ui-font-body)}.season-calendar button:disabled{opacity:1;color:var(--ui-muted);background:var(--ui-surface)}.season-calendar time{font-size:var(--ui-font-small);color:var(--ui-accent-text)}.season-calendar span{flex:1;display:block}.season-calendar small{display:block;font-size:var(--ui-font-xs);color:var(--ui-muted);margin-top:4px}.season-calendar em{font-style:normal;font-size:var(--ui-font-xs);color:var(--ui-success)}.season-calendar .calendar-today{border-color:var(--ui-line-strong)}
.series-card{border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal);padding:16px;margin:12px 0;display:flex;flex-direction:column;gap:10px}.series-card header{display:flex;justify-content:space-between;align-items:center}.series-card h3{font-size:var(--ui-font-subtitle);margin:0}.series-card>strong{font-size:23px}.series-card small{font-size:var(--ui-font-xs);color:var(--ui-muted)}.series-card p{font-size:var(--ui-font-small);color:var(--ui-success)}.series-done{border-color:var(--ui-line-strong)}.series-games{display:flex;gap:5px;flex-wrap:wrap}.series-games button{font-size:var(--ui-font-xs);padding:5px 8px;min-height:32px}.series-games button:disabled{opacity:.65}.champion-banner{display:flex;flex-direction:column;gap:var(--ui-space-4);text-align:center;padding:24px 8px;background:var(--ui-accent-soft);border:1px solid var(--ui-accent-text);border-radius:var(--ui-radius-modal);font-size:36px}.champion-banner strong{font-size:20px;color:var(--ui-accent-text)}.champion-banner small{font-size:var(--ui-font-small)}.result-heading{font-size:23px}.season-progress{display:flex;flex-direction:column;gap:22px;padding:20px 0;text-align:center}.season-progress strong{font-size:24px}.season-progress progress{width:100%;accent-color:#c4daa0}.season-progress small{color:var(--ui-muted)}.record-score select{min-width:0;flex:1;padding:7px;font-size:var(--ui-font-body)}
.record-table-block{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:var(--ui-space-2)}.record-table-tools{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-space-3);min-height:28px}.record-table-tools>span{font-size:var(--ui-font-xs);color:var(--ui-muted)}.record-label-toggle{display:flex;align-items:center;gap:3px;padding:2px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);background:var(--ui-surface)}.record-label-toggle button{min-height:24px;padding:2px 8px;border:0;border-radius:var(--ui-radius-small);background:transparent;font-size:var(--ui-font-xs);color:var(--ui-muted)}.record-label-toggle button.selected{background:var(--ui-raised);color:var(--ui-accent-text)}
@media(max-width:800px){.season-hub{grid-template-columns:1fr;gap:0}.season-sidebar{display:none}.season-hero{gap:var(--ui-space-5)}.season-hero h1{font-size:60px}.season-today strong{font-size:23px}.season-numbers{gap:var(--ui-space-7)}.season-hint{font-size:var(--ui-font-dense)}.season-table td,.season-table th{padding:9px 6px}}
@media(max-height:700px){.season-hero{gap:var(--ui-space-4)}.season-hero h1{font-size:44px}.season-hero h1 small{font-size:var(--ui-font-xs);margin-top:5px}.season-numbers{padding:10px 3px;gap:var(--ui-space-6)}.season-numbers b{font-size:var(--ui-font-subtitle)}.season-main-actions button{min-height:40px;font-size:var(--ui-font-small)}.season-today strong{font-size:20px}.season-today small{font-size:var(--ui-font-xs)}.season-links button{min-height:34px;font-size:var(--ui-font-caption)}.season-hint{margin:0}}
@media(max-height:500px){.season-hero{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.season-hero h1{font-size:34px}.season-hero .hub-mark,.season-hint{display:none}.season-today strong{font-size:19px}.season-numbers{grid-column:1/-1;padding:5px}.season-main-actions button{min-height:36px}.season-links{gap:var(--ui-space-1)}.season-links button{font-size:var(--ui-font-xs);min-height:32px}.season-sidebar{display:none}.season-hub{grid-template-columns:1fr}}
.manager-mode .shell,.setup-mode .shell{height:100svh;max-width:none;padding:0}
.manager-mode .brand,.manager-mode .footer,.setup-mode .footer{display:none}
.manager-app{height:100svh;display:grid;grid-template-rows:56px minmax(0,1fr) 66px;max-width:1440px;margin:auto}
.manager-header{display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid var(--ui-line);background:var(--ui-surface)}
.manager-header strong{font-size:var(--ui-font-subtitle);letter-spacing:1px}.manager-header strong span{color:var(--ui-success)}.manager-header>small{color:var(--ui-muted);font-size:var(--ui-font-small)}
.manager-content{min-height:0;padding:14px 24px;overflow:hidden}
.manager-nav{display:flex;align-items:stretch;justify-content:center;border-top:1px solid var(--ui-line);background:var(--ui-surface);padding:3px 20px max(3px,env(safe-area-inset-bottom));gap:10px}
.manager-nav button{flex:1;max-width:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px;min-height:48px;background:none;border:0;border-radius:var(--ui-radius-control);color:var(--ui-muted);font-size:var(--ui-font-small);font-weight:600}
.manager-nav button>span{font-size:20px;line-height:24px}.manager-nav button.selected{color:var(--ui-success);background:var(--ui-surface)}
.lineup-workspace{display:grid;height:100%;min-height:0;grid-template-rows:44px minmax(0,1fr) 24px 72px 52px;gap:var(--ui-space-2);max-width:1100px;margin:auto}
.workspace-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--ui-space-2);min-width:0}.workspace-toolbar>button{min-height:40px;padding:6px 12px;font-size:var(--ui-font-small)}
.view-switch{display:flex;gap:var(--ui-space-1);padding:3px;background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);min-width:0}.view-switch button{padding:5px 15px;min-height:34px;font-size:var(--ui-font-body);background:none;border:0;color:var(--ui-muted)}.view-switch button.selected{background:var(--ui-raised);color:var(--ui-success)}
.lineup-board{min-height:0;border:1px solid var(--ui-line);background:var(--ui-surface);border-radius:var(--ui-radius-modal);overflow:hidden}
.order-board{height:100%;display:grid;grid-template-rows:repeat(9,minmax(0,1fr));gap:var(--ui-space-1);padding:8px}
.order-card{display:flex;align-items:stretch;gap:10px;min-height:0;background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);overflow:hidden}
.order-no{width:40px;display:flex;align-items:center;justify-content:center;background:var(--ui-raised);color:var(--ui-accent-text);font-size:22px;font-variant-numeric:tabular-nums}
.order-card>button{min-width:0;flex:1;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:var(--ui-space-3);background:none;border:0;text-align:left;padding:3px 0;min-height:0}
.order-card strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--ui-font-subtitle)}.order-card small{font-size:var(--ui-font-caption);color:var(--ui-muted);white-space:nowrap}
.drag-handle{width:40px;display:flex;align-items:center;justify-content:center;font-size:25px;color:var(--ui-muted);cursor:grab;touch-action:none;user-select:none;flex-shrink:0}
.drag-source{opacity:.4}.drop-ready{outline:2px solid var(--ui-accent-text)!important;outline-offset:-2px;background:var(--ui-accent-soft)!important}
.drag-ghost{position:fixed;z-index:200;pointer-events:none;padding:10px 14px;background:var(--ui-accent-soft);color:var(--ui-text);border:1px solid var(--ui-accent-text);border-radius:var(--ui-radius-card);box-shadow:0 9px 30px #0008;font-size:var(--ui-font-label);font-weight:750;max-width:200px}
.bench-caption{display:flex;align-items:center;justify-content:space-between;color:var(--ui-muted);font-size:var(--ui-font-caption)}.bench-caption button{min-height:24px;padding:0 8px;background:none;border:0;color:var(--ui-success);font-size:var(--ui-font-caption)}
.bench-tray{display:flex;gap:var(--ui-space-3);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;min-height:0;padding-bottom:3px;overscroll-behavior:contain}
.bench-mini{display:flex;align-items:stretch;border:1px solid var(--ui-line);background:var(--ui-surface);border-radius:var(--ui-radius-card);flex:0 0 154px;overflow:hidden}
.bench-mini>button{min-width:0;flex:1;padding:6px 8px;text-align:left;display:flex;flex-direction:column;justify-content:center;gap:3px;background:none;border:0;min-height:0}.bench-mini strong{font-size:var(--ui-font-label);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bench-mini small{font-size:var(--ui-font-xs);color:var(--ui-muted)}.bench-mini .drag-handle{width:30px;font-size:21px}
.workspace-actions{display:flex;gap:var(--ui-space-3);align-items:stretch}.workspace-actions button{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:4px 8px;font-size:var(--ui-font-small);min-height:40px}.workspace-actions .primary{background:var(--ui-accent-soft);color:var(--ui-text);border-color:var(--ui-line-strong)}
.tactical-field{height:100%;position:relative;background:radial-gradient(ellipse at 50% 10%,var(--ui-accent-soft) 0,var(--ui-accent-soft) 65%,var(--ui-accent-soft) 100%);overflow:hidden}
.tactical-diamond{position:absolute;left:50%;top:53%;width:45%;aspect-ratio:1;max-height:58%;transform:translate(-50%,-50%) rotate(45deg);background:var(--ui-accent-soft);border:12px solid var(--ui-accent-text);box-shadow:0 0 0 1px #d5c491}
.tactical-player{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:stretch;z-index:1;border:1px solid var(--ui-line-strong);border-radius:var(--ui-radius-control);background:color-mix(in srgb,var(--ui-accent-soft) 90.98%,transparent);max-width:140px;min-width:90px}
.tactical-player>button{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;flex:1;background:none;border:0;min-height:42px;padding:4px}.tactical-player small{font-size:var(--ui-font-dense);color:var(--ui-success)}.tactical-player strong{font-size:var(--ui-font-body);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tactical-player .drag-handle{width:25px;font-size:19px}
.staff-board{display:grid;grid-template-rows:repeat(7,minmax(0,1fr));height:100%;gap:5px;padding:8px}.staff-card{display:flex;align-items:stretch;border:1px solid var(--ui-line);background:var(--ui-surface);border-radius:var(--ui-radius-control);min-height:0}.staff-card>span:first-child{width:50px;display:flex;align-items:center;justify-content:center;color:var(--ui-accent-text);background:var(--ui-raised);font-size:var(--ui-font-label)}.staff-card>button{flex:1;min-height:0;display:flex;justify-content:space-between;align-items:center;gap:7px;padding:3px 12px;background:none;border:0}.staff-card strong{font-size:var(--ui-font-label)}.staff-card small{font-size:var(--ui-font-caption);color:var(--ui-muted)}
.club-hub{height:100%;max-width:900px;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:17px;background:radial-gradient(ellipse at 50% 60%,color-mix(in srgb,var(--ui-raised) 53.33%,transparent),transparent 65%)}
.hub-mark{color:var(--ui-success);letter-spacing:3px;font-size:var(--ui-font-caption)}.club-hub h1{font-size:82px;line-height:1;font-weight:900;letter-spacing:-4px}.club-hub h1 small{display:block;font-size:var(--ui-font-body);letter-spacing:5px;color:var(--ui-muted);margin-top:10px}.hub-fixture{display:flex;gap:22px;align-items:center;font-size:20px}.hub-fixture b{font-size:36px;color:var(--ui-accent-text)}.club-hub>p{color:var(--ui-muted);font-size:var(--ui-font-small)}.hub-status{display:flex;gap:var(--ui-space-7);padding:14px;border-top:1px solid var(--ui-line);border-bottom:1px solid var(--ui-line)}.hub-status>span{font-size:var(--ui-font-xs);color:var(--ui-muted);display:flex;flex-direction:column;gap:5px}.hub-status b{font-size:var(--ui-font-label);color:var(--ui-text)}.club-hub>.primary{width:min(330px,90%);min-height:50px;font-size:var(--ui-font-subtitle)}.hub-links{display:flex;gap:var(--ui-space-3)}.hub-links button{min-height:40px;font-size:var(--ui-font-small)}.club-hub .hub-scope{font-size:var(--ui-font-xs);color:var(--ui-muted)}
.records-workspace{height:100%;display:grid;grid-template-rows:46px 44px minmax(0,1fr) 42px;gap:var(--ui-space-3)}.record-score{display:flex;justify-content:space-between;align-items:center;gap:var(--ui-space-3)}.record-score>strong{font-size:20px;color:var(--ui-accent-text)}.record-score>button{font-size:var(--ui-font-caption);min-height:36px;padding:4px 9px}.record-table-scroll{overflow:auto;min-height:0;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);overscroll-behavior:contain}.record-table-scroll table{white-space:nowrap}.record-table-scroll th:first-child,.record-table-scroll td:first-child{position:sticky;left:0;z-index:2;background:var(--ui-surface);min-width:110px;max-width:160px}.record-table-scroll th{z-index:3}.record-table-scroll td{height:46px;text-align:center;padding:4px 10px}.record-table-scroll td:first-child{padding:2px 6px}.record-table-scroll td button{min-height:38px;padding:3px 7px;border:0;background:none;font-size:var(--ui-font-body);white-space:nowrap}.record-footer{display:flex;justify-content:space-between;align-items:center;gap:10px}.record-footer button{font-size:var(--ui-font-small);min-height:38px}.record-footer>small{font-size:var(--ui-font-xs);color:var(--ui-muted)}
.settings-hub{max-width:700px;margin:auto;height:100%;display:flex;flex-direction:column;justify-content:center;gap:var(--ui-space-6)}.settings-hub>h2{font-size:28px}.settings-name{display:flex;align-items:center;justify-content:space-between;gap:10px}.settings-name>span{font-size:var(--ui-font-label)}.settings-hub>p,.settings-hub>small{font-size:var(--ui-font-small);color:var(--ui-muted)}.settings-tiles{display:grid;grid-template-columns:1fr 1fr;gap:var(--ui-space-4)}.settings-tiles>button{min-height:88px;background:var(--ui-surface);font-size:var(--ui-font-label);text-align:left;border-color:var(--ui-line);padding:18px}
.manager-mode .toast,.setup-mode .toast{position:fixed;top:60px;left:50%;transform:translateX(-50%);z-index:100;width:min(92vw,620px);font-size:var(--ui-font-small);margin:0;box-shadow:0 8px 22px #0006}
.manager-mode .match-sheet{left:50%;right:auto;top:var(--ui-modal-top);bottom:auto;transform:translateX(-50%);width:min(680px,94vw);max-height:calc(var(--app-viewport-height,100dvh) - var(--ui-modal-top) - var(--ui-modal-bottom))}
.player-list{display:grid;gap:7px}.player-list>button{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;min-height:44px;font-size:var(--ui-font-body)}.player-list small{font-size:var(--ui-font-xs);color:var(--ui-muted)}.two-actions{display:flex;gap:10px}.two-actions>*{flex:1}.slot-heading{display:flex;gap:var(--ui-space-4);align-items:center}.slot-heading>b{font-size:24px;color:var(--ui-accent-text)}.slot-heading>span{color:var(--ui-muted);font-size:var(--ui-font-small)}.sheet-body h4{margin:10px 0 2px;color:var(--ui-text);font-size:var(--ui-font-body)}.edit-ratings{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.edit-ratings label{font-size:var(--ui-font-small);display:grid;grid-template-columns:1fr 68px;align-items:center;gap:var(--ui-space-2)}.edit-ratings input{min-width:0;width:100%;padding:7px}.position-checks{display:flex;flex-wrap:wrap;gap:10px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);margin-top:12px}.position-checks label{display:flex;gap:3px;align-items:center;font-size:var(--ui-font-small)}.position-checks input{width:18px;height:18px}.board-empty{padding:28px 18px;color:var(--ui-muted);font-size:var(--ui-font-body);text-align:center}
.setup-mode .shell{max-width:600px;margin:auto;padding:12px 20px}.setup-mode .brand{height:30px;margin-bottom:5px;font-size:var(--ui-font-body)}.setup-mode .brand .badge{font-size:var(--ui-font-micro)}.setup-screen{height:calc(100svh - 65px);display:flex;flex-direction:column;justify-content:center;gap:var(--ui-space-5)}.setup-screen header>small{color:var(--ui-muted);letter-spacing:2px;font-size:var(--ui-font-xs)}.setup-screen h1{font-size:28px;margin-top:5px}.setup-screen .clubs{grid-template-columns:repeat(5,1fr);gap:7px}.setup-screen .clubs button{min-height:50px;padding:5px;font-size:var(--ui-font-label)}.setup-fields{display:grid;grid-template-columns:minmax(0,1fr)}.setup-fields label{font-size:var(--ui-font-small);color:var(--ui-muted);display:flex;flex-direction:column;gap:5px}.setup-fields select{width:100%;min-width:0;min-height:40px;padding:7px;font-family:var(--ui-display);font-size:var(--ui-font-small)}.setup-caption{font-size:var(--ui-font-caption);color:var(--ui-muted);line-height:1.6}.setup-screen>.primary{min-height:48px}.setup-save-launch{width:100%;min-height:42px;font-size:var(--ui-font-small)}
@media(min-width:1000px){.order-board{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.order-card>button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:9px}.order-no{width:38px}.order-card strong{font-size:22px}.staff-board{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}}
@media(max-width:800px){.manager-app{grid-template-rows:48px minmax(0,1fr) calc(60px + env(safe-area-inset-bottom))}.manager-header{padding:0 13px}.manager-header strong{font-size:var(--ui-font-body)}.manager-header>small{font-size:var(--ui-font-xs)}.manager-content{padding:8px}.manager-nav{gap:0;padding-left:5px;padding-right:5px}.manager-nav button{font-size:var(--ui-font-xs);min-height:48px}.manager-nav button>span{font-size:var(--ui-font-heading)}.lineup-workspace{grid-template-rows:40px minmax(0,1fr) 20px 60px 46px;gap:5px}.workspace-toolbar>button{padding:4px 8px;font-size:var(--ui-font-caption);min-height:38px}.view-switch button{min-height:32px;padding:4px 11px;font-size:var(--ui-font-small)}.order-board{padding:5px;gap:3px}.order-card{gap:var(--ui-space-2)}.order-no{width:28px;font-size:var(--ui-font-subtitle)}.order-card>button{grid-template-columns:30px minmax(0,1fr);gap:0 6px}.order-card small{grid-column:2;font-size:var(--ui-font-dense)}.order-card strong{font-size:var(--ui-font-label)}.order-card .pos{grid-row:1/3;min-width:28px;font-size:var(--ui-font-xs)}.drag-handle{width:32px;font-size:22px}.bench-mini{flex-basis:132px}.bench-mini strong{font-size:var(--ui-font-small)}.workspace-actions button{font-size:var(--ui-font-xs);padding:3px}.tactical-player{min-width:70px;max-width:100px}.tactical-player strong{font-size:var(--ui-font-xs)}.tactical-player>button{min-height:38px;padding:2px}.tactical-player .drag-handle{width:20px;font-size:var(--ui-font-subtitle)}.staff-board{gap:var(--ui-space-1);padding:5px}.staff-card>span:first-child{width:36px;font-size:var(--ui-font-small)}.staff-card strong{font-size:var(--ui-font-body)}.staff-card small{font-size:var(--ui-font-dense)}.staff-card>button{padding:3px 8px}.club-hub{gap:15px}.club-hub h1{font-size:64px}.hub-status{gap:var(--ui-space-6)}.hub-status b{font-size:var(--ui-font-body)}.records-workspace{grid-template-rows:42px 42px minmax(0,1fr) 40px;gap:var(--ui-space-2)}.record-score>strong{font-size:var(--ui-font-subtitle)}.record-footer>small{font-size:var(--ui-font-dense);max-width:180px}.settings-hub{padding:4px;gap:17px}.settings-hub>h2{font-size:24px}.settings-tiles{gap:10px}.settings-tiles>button{font-size:var(--ui-font-small);min-height:75px;padding:12px}.manager-mode .match-sheet{left:6px;right:6px;top:var(--ui-modal-top);bottom:auto;transform:none;width:auto;max-height:calc(var(--app-viewport-height,100dvh) - var(--ui-modal-top) - var(--ui-modal-bottom))}.edit-ratings{gap:var(--ui-space-3)}.edit-ratings label{grid-template-columns:1fr 52px;font-size:var(--ui-font-xs)}.setup-mode .shell{padding:10px 13px}.setup-screen{gap:var(--ui-space-4)}.setup-screen h1{font-size:23px}.setup-screen .clubs button{min-height:46px;font-size:var(--ui-font-small)}.setup-fields label{font-size:var(--ui-font-caption)}}
@media(max-height:700px){.lineup-workspace{grid-template-rows:36px minmax(0,1fr) 0 0 42px;gap:3px}.bench-caption,.bench-tray{display:none}.club-hub{gap:10px}.club-hub h1{font-size:48px}.club-hub .hub-scope{font-size:var(--ui-font-dense)}.hub-status{padding:9px}.setup-screen{gap:9px}.setup-screen h1{font-size:21px}.setup-screen .clubs button{min-height:40px}.setup-fields select{min-height:36px}.setup-screen>.primary{min-height:42px}.setup-caption{font-size:var(--ui-font-xs)}}
@media(max-height:500px){.manager-app{grid-template-rows:40px minmax(0,1fr) 50px}.manager-content{padding:4px 8px}.order-board{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.order-card strong{font-size:var(--ui-font-small)}.order-card small{display:none}.order-card>button{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.order-no{width:24px}.staff-board{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}.club-hub{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:auto;gap:6px 22px;max-width:650px}.hub-mark,.club-hub h1{grid-column:1;grid-row:auto}.club-hub .hub-fixture,.club-hub .hub-status{grid-column:2}.club-hub>p{display:none}.club-hub>.primary{grid-column:2;grid-row:4}.hub-links{grid-column:1;grid-row:4}.settings-hub{max-width:850px;display:grid;grid-template-columns:1fr 1.5fr;gap:8px 25px}.settings-tiles{grid-column:2;grid-row:1/5}.settings-tiles>button{min-height:54px}.settings-hub>h2{font-size:20px}.setup-mode .shell{max-width:1000px}.setup-screen{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:auto;align-content:center;gap:8px 20px}.setup-screen header,.setup-screen .clubs{grid-column:1}.setup-fields{grid-column:2;grid-row:1/3}.setup-screen>.primary{grid-column:2;grid-row:3}.setup-save-launch{grid-column:2;grid-row:4}.setup-caption{grid-column:1;grid-row:3/5}}
.order-layout{height:100%;min-height:0}.lineup-context{display:none}
.manager-mode .toast:not(.error),.setup-mode .toast:not(.error){padding:5px 8px;display:flex;align-items:center;gap:var(--ui-space-3);min-height:36px}
.manager-mode .toast:not(.error)>span,.setup-mode .toast:not(.error)>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.manager-mode .toast:not(.error) button,.setup-mode .toast:not(.error) button{min-height:28px;min-width:28px;padding:2px}
@media(min-width:1000px) and (min-height:501px){.order-layout{display:grid;grid-template-columns:1fr 1.1fr}.order-board{grid-template-columns:1fr;grid-template-rows:repeat(9,minmax(0,1fr))}.order-card>button{display:grid;grid-template-columns:32px 1fr auto;gap:5px;align-items:center}.order-card strong{font-size:var(--ui-font-label)}.order-card small{font-size:var(--ui-font-dense)}.order-no{width:28px;font-size:var(--ui-font-heading)}.order-card .drag-handle{width:30px}.lineup-context{display:block;min-width:0;padding:8px 8px 8px 0}.lineup-context .tactical-field{border-radius:var(--ui-radius-card)}}
@media(max-height:500px){.manager-nav button{min-height:40px}.manager-nav{padding-top:0;padding-bottom:0}}

/* Franchise controls must retain the fixed viewport at small heights. */
.settings-hub{gap:14px}.settings-tiles>button{min-height:62px;padding:12px}.record-footer>small{font-size:var(--ui-font-dense);line-height:1.4}
@media(max-height:700px){.settings-hub{gap:9px}.settings-tiles{gap:7px}.settings-tiles>button{min-height:50px;padding:9px;font-size:var(--ui-font-small)}.settings-hub>h2{font-size:23px}.settings-hub>p,.settings-hub>small{font-size:var(--ui-font-xs)}}
@media(max-height:500px){.settings-hub{gap:5px}.settings-tiles{grid-template-columns:repeat(3,1fr);gap:5px}.settings-tiles>button{min-height:40px;padding:6px;font-size:var(--ui-font-xs)}.settings-hub>p{display:none}.settings-hub>h2{font-size:var(--ui-font-heading)}}

/* v0.4.1: lineup information and explicit save workflow */
.detailed-lineup{grid-template-rows:auto auto minmax(0,1fr) 18px 78px 44px;gap:5px}
.lineup-data-toolbar{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;color:var(--ui-muted);font-size:var(--ui-font-xs)}.lineup-data-toolbar label{display:flex;align-items:center;gap:var(--ui-space-2);white-space:nowrap}.lineup-data-toolbar select{padding:3px 5px;min-height:26px;font-size:var(--ui-font-caption);max-width:120px}.lineup-data-toolbar>small{font-size:var(--ui-font-xs)}.draft-state{white-space:nowrap;font-size:var(--ui-font-xs);color:var(--ui-accent-text)}
.detailed-lineup .lineup-board{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.detailed-lineup .order-layout{min-height:480px}.detailed-lineup .order-board{grid-template-columns:1fr;grid-template-rows:repeat(9,minmax(48px,1fr));gap:var(--ui-space-1);padding:5px}.detailed-lineup .order-card{gap:var(--ui-space-2)}.detailed-lineup .order-no{width:28px;font-size:19px}.detailed-lineup .order-card>button{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;padding:4px 0;gap:var(--ui-space-2)}.detailed-lineup .order-info{min-width:0;display:flex;flex-direction:column;gap:3px}.detailed-lineup .order-identity{display:flex;align-items:center;gap:7px;min-width:0}.detailed-lineup .order-card strong{font-size:var(--ui-font-label);flex-shrink:1}.detailed-lineup .order-card small{display:block;grid-column:auto;font-size:var(--ui-font-xs);white-space:nowrap;line-height:1.3}.detailed-lineup .order-card .pos{grid-row:auto;font-size:var(--ui-font-caption)}.batting-hand{font-size:var(--ui-font-xs);white-space:nowrap;color:var(--ui-success)}.detailed-lineup .ability-metrics{color:var(--ui-muted)}.detailed-lineup .batting-metrics{color:var(--ui-accent-text);font-variant-numeric:tabular-nums}.detailed-lineup .drag-handle{width:26px;font-size:21px}
.fit-mismatch{background-image:linear-gradient(color-mix(in srgb,var(--ui-danger-bg) 21.96%,transparent),color-mix(in srgb,var(--ui-danger-bg) 21.96%,transparent))!important;border-color:var(--ui-line-strong)!important}.fit-secondary{background-image:linear-gradient(color-mix(in srgb,var(--ui-warning-bg) 15.29%,transparent),color-mix(in srgb,var(--ui-warning-bg) 15.29%,transparent))!important;border-color:var(--ui-accent-text)!important}.fit-note{font-style:normal;font-size:var(--ui-font-dense);font-weight:600;color:var(--ui-danger);line-height:1.2}.fit-secondary .fit-note{color:var(--ui-accent-text)}.order-identity .fit-note{margin-left:auto;white-space:nowrap;font-size:var(--ui-font-micro)}
.detailed-field{min-height:380px}.detailed-field .tactical-player{width:128px;min-width:0;max-width:26%;background-color:color-mix(in srgb,var(--ui-accent-soft) 94.90%,transparent)}.detailed-field .tactical-player>button{padding:4px 3px;gap:3px;min-height:65px;overflow:hidden}.detailed-field .fixed-position{font-size:var(--ui-font-xs);color:var(--ui-success)}.detailed-field .tactical-player strong{font-size:var(--ui-font-small)}.detailed-field .tactical-player small{font-size:var(--ui-font-micro);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.detailed-field .tactical-player .drag-handle{width:18px;font-size:var(--ui-font-subtitle)}.detailed-field .fit-note{font-size:var(--ui-font-micro)}.detailed-lineup .lineup-context{padding:5px}.detailed-lineup .bench-mini{flex-basis:175px}.detailed-lineup .bench-mini small{font-size:var(--ui-font-dense);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detailed-lineup .bench-mini strong{font-size:var(--ui-font-small)}
.detailed-lineup .staff-board{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(6,minmax(64px,1fr));height:100%;min-height:420px;padding:5px;gap:var(--ui-space-1)}.detailed-lineup .staff-card{min-width:0}.detailed-lineup .staff-card>span:first-child{width:40px;flex-shrink:0;font-size:var(--ui-font-caption);white-space:nowrap}.detailed-lineup .staff-card>button{min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px;padding:4px 6px}.detailed-lineup .staff-card strong{font-size:var(--ui-font-body);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detailed-lineup .staff-card small{font-size:var(--ui-font-xs);line-height:1.45;white-space:nowrap;font-variant-numeric:tabular-nums}.staff-card small span,.lineup-pitcher-card p span{display:block}.lineup-pitcher-card{border:1px solid var(--ui-line-strong);background:linear-gradient(140deg,var(--ui-accent-soft),var(--ui-surface));border-radius:var(--ui-radius-modal);padding:18px;margin:0 0 16px}.lineup-pitcher-card>strong{font-size:24px;display:block}.lineup-pitcher-card>small{display:block;font-size:var(--ui-font-caption);margin-top:8px;color:var(--ui-muted)}.lineup-pitcher-card p{font-size:var(--ui-font-body);line-height:1.8;font-variant-numeric:tabular-nums}
@media(min-width:1250px) and (min-height:650px){.detailed-lineup .order-layout{display:grid;grid-template-columns:1.1fr 1fr}.detailed-lineup .lineup-context{display:block}}
@media(max-width:1249px){.detailed-lineup .order-layout{display:block}.detailed-lineup .lineup-context{display:none}}
@media(max-width:600px){.detailed-lineup .staff-card>span:first-child{width:28px;font-size:var(--ui-font-dense)}.detailed-lineup .staff-card .drag-handle{width:18px;font-size:var(--ui-font-subtitle)}.detailed-lineup .staff-card>button{padding:4px}.detailed-lineup .staff-card small{font-size:var(--ui-font-micro)}.detailed-lineup .staff-card strong{font-size:var(--ui-font-small)}.detailed-field .tactical-player{max-width:29%;width:112px}.detailed-field .tactical-player strong{font-size:var(--ui-font-xs)}.detailed-field .tactical-player small{font-size:7px}.detailed-field .tactical-player .drag-handle{width:15px;font-size:var(--ui-font-label)}.detailed-lineup .order-card small{font-size:var(--ui-font-dense)}.detailed-lineup .order-identity{gap:5px}.detailed-lineup .order-card strong{font-size:var(--ui-font-body)}.lineup-data-toolbar>small{font-size:var(--ui-font-micro)}.detailed-lineup .order-layout{min-height:480px}.order-identity .fit-note{font-size:7px}.detailed-lineup .bench-mini{flex-basis:154px}}
@media(max-width:350px){.detailed-lineup .order-card small{font-size:var(--ui-font-micro)}.detailed-lineup .order-card>button{grid-template-columns:23px minmax(0,1fr);gap:3px}.detailed-lineup .order-no{width:24px}.detailed-lineup .drag-handle{width:21px}.detailed-lineup .order-identity{gap:3px}.batting-hand{font-size:var(--ui-font-micro)}.detailed-lineup .order-card strong{font-size:var(--ui-font-small)}.lineup-data-toolbar>small{display:none}}
@media(max-height:700px){.detailed-lineup{grid-template-rows:auto auto minmax(0,1fr) 0 0 42px;gap:3px}.detailed-lineup .bench-caption,.detailed-lineup .bench-tray{display:none}}

.manager-mode .toast{pointer-events:none}.manager-mode .toast button{pointer-events:auto}.reference-level{color:var(--ui-muted);font-size:var(--ui-font-micro);margin-left:5px}.today-starter{font-size:var(--ui-font-micro);font-style:normal;color:var(--ui-accent-text);margin-left:5px}.detailed-lineup .staff-card>button{gap:2px}.detailed-lineup .staff-card small{font-size:var(--ui-font-xs);line-height:1.25}@media(max-width:600px){.detailed-lineup .staff-card small{font-size:var(--ui-font-dense)}.reference-level{font-size:7px;margin-left:3px}}

.detailed-lineup .order-info{gap:1px}.detailed-lineup .order-identity,.detailed-lineup .order-identity strong,.detailed-lineup .batting-hand{line-height:1.1}.detailed-lineup .order-card>button{padding:2px 0}.detailed-lineup .order-card small{line-height:1.15}

/* v0.4.2: errors are high priority; secondary positions are informational. */
.detailed-lineup .fit-mismatch{background:var(--ui-danger-bg)!important;background-image:none!important;border:2px solid var(--ui-danger)!important;box-shadow:inset 4px 0 #ff6c80}.detailed-lineup .fit-mismatch .order-no{background:var(--ui-danger-bg);color:var(--ui-danger)}.detailed-lineup .fit-secondary{background-image:none!important;border-color:var(--ui-line)!important;box-shadow:none}.detailed-field .fit-secondary{background:color-mix(in srgb,var(--ui-accent-soft) 94.90%,transparent)!important;border-color:var(--ui-line-strong)!important}
.fit-note.fit-error{display:flex;align-items:center;justify-content:center;gap:var(--ui-space-1);flex-wrap:wrap;color:var(--ui-text);font-size:var(--ui-font-dense);line-height:1.2;font-weight:800}.fit-error b{display:inline-block;background:var(--ui-danger-bg);color:var(--ui-text);padding:3px 5px;border-radius:3px;font-size:inherit;line-height:1.2}.fit-error>span{font-size:var(--ui-font-dense);white-space:nowrap;color:var(--ui-danger)}.order-identity .fit-error{margin-left:auto;white-space:normal;font-size:var(--ui-font-dense);flex-shrink:0}.order-identity .fit-error>span{font-size:var(--ui-font-micro)}.fit-note.fit-subtle{font-size:var(--ui-font-micro);color:var(--ui-muted)!important;font-weight:400;opacity:.85;border:1px solid color-mix(in srgb,var(--ui-line-strong) 40.00%,transparent);border-radius:3px;padding:1px 4px;white-space:nowrap}.detailed-field .fit-note.fit-subtle{position:absolute;top:4px;right:18px;font-size:7px;padding:1px 3px}
.detailed-field{min-height:450px}.detailed-field .tactical-player>button{padding:4px 3px;gap:2px;min-height:76px}.detailed-field .tactical-player strong{line-height:1.2}.primary-position{display:block;font-size:var(--ui-font-micro);line-height:1.2;color:var(--ui-text)}.secondary-positions{display:flex;justify-content:center;align-items:center;gap:2px;flex-wrap:wrap;max-width:100%;line-height:1.1}.secondary-positions>span{font-size:var(--ui-font-micro);line-height:1.1;padding:1px 3px;border:1px solid color-mix(in srgb,var(--ui-line-strong) 33.33%,transparent);border-radius:3px;color:var(--ui-text);white-space:nowrap}.secondary-positions>small{font-size:7px;color:var(--ui-muted)}.detailed-field .tactical-player small{white-space:normal}.detailed-field .fit-error{gap:2px;font-size:var(--ui-font-micro)}.detailed-field .fit-error b{padding:2px 3px}.detailed-field .fit-error>span{font-size:var(--ui-font-micro)}.detailed-lineup .bench-mini .secondary-positions{justify-content:flex-start}.detailed-lineup .bench-mini>button{gap:2px;padding-block:4px}.detailed-lineup .bench-mini .primary-position{font-size:var(--ui-font-micro)}.detailed-lineup .view-field .bench-tray{min-height:0}
@media(max-width:600px){.detailed-field .tactical-player>button{min-height:76px;gap:2px}.detailed-field .secondary-positions>span{font-size:7px;padding:1px 2px}.detailed-field .fit-error{font-size:7px}.detailed-field .fit-error>span{font-size:7px}.order-identity .fit-error{font-size:var(--ui-font-micro);max-width:120px;gap:2px}.order-identity .fit-error>span{font-size:7px}.detailed-field .primary-position{font-size:var(--ui-font-micro)}}
@media(max-width:350px){.order-identity .fit-error{max-width:91px;font-size:7px}.order-identity .fit-error>span{font-size:7px}.fit-error b{padding:2px 3px}.secondary-positions>span{font-size:7px;padding:1px 2px}}

@media(max-width:600px){.detailed-field{min-height:500px}}

.integrated-play{position:fixed;inset:0;display:flex;flex-direction:column;background:var(--ui-page);z-index:20}.integrated-toolbar{display:flex;align-items:center;gap:var(--ui-space-4);padding:8px 14px;background:var(--ui-surface);border-bottom:1px solid var(--ui-line);flex:none}.integrated-toolbar strong{font-size:var(--ui-font-body)}.integrated-toolbar nav{display:flex;gap:var(--ui-space-2);margin-left:auto}.integrated-toolbar button{padding:6px 10px}.integrated-play iframe{flex:1;min-height:0;width:100%;border:0}@media(max-width:600px){.integrated-toolbar{gap:5px;padding:5px}.integrated-toolbar strong{font-size:var(--ui-font-xs)}.integrated-toolbar button{font-size:var(--ui-font-xs);padding:5px 6px}.integrated-toolbar nav{gap:3px}}
.hands-editor .edit-ratings label{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--ui-space-2)}

/* Keep editor controls in one consistent stack, clear of the player card. */
.sheet-body .player-editor-navigation{margin:0 0 14px;display:grid;gap:10px}
.sheet-body .player-editor-navigation>button{width:100%;margin:0;min-height:44px}
.sheet-body .player-editor-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:18px 0 4px}
.sheet-body .player-editor-actions>button{box-sizing:border-box;width:100%;min-width:0;min-height:44px;margin:0;padding:10px 12px;white-space:normal;line-height:1.45}
.hands-editor select{width:100%;min-width:0;max-width:none}

/* Fullscreen switch beside the version in the match toolbar and on other pages. */
.brand-controls{display:inline-flex;align-items:center;gap:var(--ui-space-3);margin-left:auto}
.setup-brand-logo{display:block;flex:0 1 170px;min-width:0;width:170px;max-width:46%;height:30px;object-fit:contain;object-position:left center}
.integrated-version{display:inline-block;flex:none;border:1px solid var(--ui-line);color:var(--ui-success);border-radius:var(--ui-radius-control);padding:3px 6px;font:600 11px/1.4 ui-monospace,monospace;white-space:nowrap}
.fullscreen-toggle{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:44px;min-height:40px;padding:6px 9px!important;flex:none;white-space:nowrap;border-color:var(--ui-line);color:var(--ui-success);background:var(--ui-surface)}
.fullscreen-toggle[aria-pressed="true"]{color:var(--ui-text);background:var(--ui-accent-soft);border-color:var(--ui-line-strong)}
.fullscreen-symbol{font-size:20px;line-height:1}
.fullscreen-caption{font-size:var(--ui-font-caption)}
.fullscreen-support-notice{position:fixed;z-index:99999;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(92vw,560px);background:var(--ui-surface);color:var(--ui-text);border:1px solid var(--ui-line-strong);border-radius:var(--ui-radius-modal);padding:12px 14px;box-shadow:0 4px 20px #0009;font-size:var(--ui-font-body);text-align:center;pointer-events:none}
html.kbo-fullscreen-locked,body.kbo-fullscreen-locked{height:100%;max-height:100%;overflow:hidden!important;overscroll-behavior:none!important}
.kbo-fullscreen-locked .integrated-play{height:100dvh;max-height:100dvh;overflow:hidden;overscroll-behavior:none}
.kbo-fullscreen-locked #engineFrame{overscroll-behavior:contain}
@media(max-width:620px){
 .integrated-toolbar{gap:5px!important;padding:5px 6px!important}
 .integrated-toolbar .integrated-title{font-size:var(--ui-font-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .integrated-version{font-size:var(--ui-font-dense);padding:3px 4px}
 .integrated-toolbar .fullscreen-caption{display:none}
 .integrated-toolbar .fullscreen-toggle{width:40px;min-width:40px;min-height:38px;padding:4px!important}
 .integrated-toolbar .fullscreen-symbol{font-size:20px}
 .integrated-toolbar nav{gap:3px;margin-left:auto}
 .integrated-toolbar nav button{min-width:36px;padding:5px 4px}
 .brand-controls .fullscreen-caption{display:none}
}
@media(max-width:390px){.integrated-toolbar .integrated-title{max-width:63px}}

/* Global fullscreen control: the same host action in club home, lineup, records and settings. */
.manager-header{min-width:0;gap:10px}
.manager-header>strong{min-width:0;white-space:nowrap}
.manager-header-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0;margin-left:auto}
.manager-header-context{font-size:var(--ui-font-small);color:var(--ui-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.manager-header .fullscreen-toggle{min-height:38px}
.kbo-fullscreen-locked .manager-app{height:100dvh;max-height:100dvh;overscroll-behavior:contain}
@media(max-width:700px){
 .manager-header{padding-inline:12px;gap:var(--ui-space-2)}
 .manager-header>strong{font-size:var(--ui-font-body)}
 .manager-header-controls{gap:var(--ui-space-2)}
 .manager-header-context{font-size:var(--ui-font-xs);max-width:94px}
 .manager-header .fullscreen-caption{display:none}
 .manager-header .fullscreen-toggle{width:40px;min-width:40px;min-height:38px;padding:4px!important}
 .manager-header .fullscreen-symbol{font-size:20px}
 .manager-header .integrated-version{font-size:var(--ui-font-xs);padding:3px 5px}
}
@media(max-width:410px){.manager-header-context{display:none}.manager-header-controls{gap:var(--ui-space-2)}}

.movement-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-4);margin-bottom:var(--ui-space-5)}.movement-filters label{display:flex;align-items:center;gap:var(--ui-space-2);min-width:0;font-size:var(--ui-font-small)}.movement-filters select{flex:1;min-width:0;width:100%;margin:0}.movement-clubs{color:var(--ui-text);font-weight:600}

.manager-content.club-desk-scroll{overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;touch-action:pan-y;scrollbar-gutter:stable}.manager-content>.club-desk{min-height:0;padding-bottom:var(--ui-space-7)}

.setup-roster-value{display:none}
@media(hover:none) and (pointer:coarse),(max-width:750px){
 .setup-roster-choice{display:grid;align-items:stretch}
 .setup-roster-choice>*{grid-area:1/1}
 /* Keep the native picker at 16px to avoid iOS focus zoom. */
 .setup-roster-choice select{opacity:0;z-index:1}
 .setup-roster-value{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);background:var(--ui-surface);color:var(--ui-text);font:var(--ui-font-small)/1.4 var(--ui-display);pointer-events:none}
 .setup-roster-choice:has(select:focus-visible) .setup-roster-value{outline:2px solid var(--ui-accent-text);outline-offset:2px}
}

/* source: implementation/playable-v0.1/club-home.css */
/* Club dashboard and calendar. The manager viewport scrolls without moving its nav. */
.postseason-bracket{padding:var(--ui-space-5);border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal);background:var(--ui-surface);min-width:0}
.postseason-bracket-title{display:flex;align-items:baseline;justify-content:space-between;gap:var(--ui-space-2);margin-bottom:var(--ui-space-3)}
.postseason-bracket-title h2{font-size:clamp(18px,3vw,26px);font-weight:900;letter-spacing:.06em;margin:0}
.postseason-bracket-title h2 span{color:var(--ui-accent-text)}
.postseason-bracket-title small,.postseason-bracket-clubs small,.postseason-bracket-next{color:var(--ui-muted);font-size:var(--ui-font-caption)}
.postseason-bracket-tree{height:clamp(136px,20vw,194px);position:relative}
.postseason-bracket-tree svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.postseason-bracket-tree path{stroke:var(--ui-line-strong);stroke-width:1.5;fill:none;vector-effect:non-scaling-stroke}
.postseason-bracket-tree path.active{stroke:var(--ui-muted);stroke-width:2}
.postseason-bracket-tree path.winner{stroke:var(--ui-accent-text);stroke-width:3}
.postseason-bracket-tree path.eliminated{opacity:.34}
.postseason-bracket-stage{position:absolute;left:var(--stage-x);top:var(--stage-y);transform:translate(-50%,-50%);white-space:nowrap;border:1px solid var(--ui-line);border-radius:999px;padding:2px 7px;background:var(--ui-surface);color:var(--ui-muted);font-size:var(--ui-font-caption)}
.postseason-bracket-stage.is-set{font-weight:700;color:var(--ui-text);border-color:var(--ui-line-strong)}
.postseason-bracket-clubs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;padding:var(--ui-space-2) 0 0;margin:0;text-align:center}
.postseason-bracket-clubs li{min-width:0;display:grid;gap:2px;font-size:var(--ui-font-small)}
.postseason-bracket-clubs .is-eliminated{opacity:.44}
.postseason-bracket-clubs .is-advanced strong{color:var(--ui-accent-text)}
.postseason-rounds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ui-space-2);margin-top:var(--ui-space-4)}
.postseason-round{min-width:0;padding:var(--ui-space-3);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);background:var(--ui-raised)}
.postseason-round h3{margin:0;font-size:var(--ui-font-small)}
.postseason-series-record,.postseason-round-pending{margin:var(--ui-space-2) 0 0;color:var(--ui-muted);font-size:var(--ui-font-caption)}
.postseason-round ul{list-style:none;margin:var(--ui-space-2) 0 0;padding:0}
.postseason-round-game{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:2px 6px;padding:5px 0;border-top:1px solid var(--ui-line);font-size:var(--ui-font-caption);font-variant-numeric:tabular-nums}
.postseason-round-game small{color:var(--ui-muted);font-size:var(--ui-font-xs)}
.postseason-round-score{grid-column:1/3;grid-row:2;display:flex;flex-wrap:wrap;gap:4px}
.postseason-round-game>small:last-child{grid-column:3;grid-row:2}
.postseason-round-game.is-played .postseason-round-score{color:var(--ui-muted)}
.postseason-round-score .is-winner{color:var(--ui-text);font-weight:700}
@media(max-width:1050px){.postseason-rounds{grid-template-columns:repeat(2,minmax(0,1fr))}}
.assistant-dialog.season-assistant-dialog{position:fixed;z-index:20;inset:auto max(12px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));margin-inline:auto;max-width:760px;max-height:calc(100dvh - 72px);overflow:auto;background:var(--ui-surface);border-color:var(--ui-line-strong)}
.postseason-bracket-next{border-top:1px solid var(--ui-line);padding-top:var(--ui-space-3);margin:var(--ui-space-4) 0 0}
body .match-sheet[data-panel="season-summary"]{position:fixed;inset:auto;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 32px)}
.season-completion{display:grid;gap:var(--ui-space-4)}
.season-completion :is(.series-card,.season-stop-summary,.sheet-actions,.note){margin:0}
.season-completion .series-card h3{margin:0 0 var(--ui-space-2)}
.season-completion .series-card p{margin:var(--ui-space-2) 0 0}
.season-completion-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-3);margin:0}
.season-completion-stats>div{padding:var(--ui-space-3);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);background:var(--ui-surface)}
.season-completion-stats dt{color:var(--ui-muted);font-size:var(--ui-font-caption)}
.season-completion-stats dd{margin:var(--ui-space-1) 0 0;font-weight:700}
.season-completion-copy{display:flex;flex-wrap:wrap;gap:var(--ui-space-2)}
.season-completion-copy input{flex:1 1 12ch;min-width:0;font-family:ui-monospace,monospace;color:var(--ui-text);background:var(--ui-surface)}
.game-lobby .lobby-season-summary{width:100%;margin-top:var(--ui-space-2);font-size:var(--ui-font-small)}
.manager-content:has(.club-dashboard){overflow-y:auto;overscroll-behavior:contain}
.club-dashboard{max-width:1240px;margin:0 auto;padding:10px 6px 24px;color:var(--ui-text)}
.club-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}
.club-heading>div>small{font-size:var(--ui-font-caption);letter-spacing:1px;color:var(--ui-muted)}
.club-heading h1{font-size:36px;margin:8px 0 0;line-height:1.15}.club-heading h1>span{font-size:var(--ui-font-small);font-weight:400;margin-left:13px;color:var(--ui-muted)}
.club-standing{display:flex;align-items:center;gap:15px}.club-standing>b{font-size:38px;color:var(--ui-accent-text)}.club-standing>b>small{font-size:var(--ui-font-body);margin-left:4px}.club-standing>span{font-size:var(--ui-font-body);line-height:1.7}.club-standing>span>small{display:block;font-size:var(--ui-font-caption);color:var(--ui-muted)}
.club-dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--ui-space-6);align-items:start}.club-primary,.club-secondary{min-width:0;display:grid;gap:var(--ui-space-5)}
.today-card,.club-calendar,.home-recent,.home-ranks{background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal);overflow:hidden}
.today-card{padding:19px 22px;background:linear-gradient(110deg,var(--ui-surface),var(--ui-surface) 75%)}.today-card-head{display:flex;justify-content:space-between;gap:var(--ui-space-4);font-size:var(--ui-font-xs);color:var(--ui-muted)}.today-card-head>span{letter-spacing:1px;color:var(--ui-accent-text)}.today-card-head>small{font-size:var(--ui-font-caption)}
.today-duel{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;text-align:center;margin:18px 0}.today-duel>strong{font-size:27px}.today-duel>strong>small{display:block;font-size:var(--ui-font-dense);font-weight:400;letter-spacing:2px;color:var(--ui-muted);margin-top:6px}.today-duel>b{font-size:25px;color:var(--ui-accent-text);white-space:nowrap}.today-card>h2{font-size:24px;margin:22px 0}
.today-starter{display:flex;justify-content:space-between;gap:var(--ui-space-4);font-size:var(--ui-font-small);align-items:center}.today-starter b{margin-left:5px;color:var(--ui-success)}.home-energy{width:110px;font-size:var(--ui-font-xs);color:var(--ui-muted)}.home-energy>i{display:block;height:3px;margin-top:5px;background:linear-gradient(to right,var(--ui-hover) calc(100% - var(--energy)),var(--ui-accent-soft) calc(100% - var(--energy)));border-radius:2px}
.home-next{font-size:var(--ui-font-caption);color:var(--ui-muted);margin:12px 0 0}.today-actions{display:flex;gap:var(--ui-space-3);margin-top:17px}.today-actions button{flex:1;min-height:43px;font-size:var(--ui-font-small);padding:8px;min-width:0}
.club-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.club-shortcuts>button{text-align:left;min-width:0;padding:13px 10px;background:var(--ui-surface);border-color:var(--ui-line);border-radius:var(--ui-radius-card)}.club-shortcuts b{font-size:var(--ui-font-body);display:block}.club-shortcuts small{display:block;font-size:var(--ui-font-xs);margin-top:6px;color:var(--ui-muted);font-weight:400}
.club-calendar{padding:18px}.month-header{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-3);margin-bottom:17px}.month-header h2{font-size:24px;margin:4px 0 0;line-height:1.2}.month-header>div>small{font-size:var(--ui-font-dense);color:var(--ui-muted);letter-spacing:1.4px}.month-controls{display:flex;align-items:center;gap:5px}.month-controls button{min-width:33px;min-height:34px;padding:4px 8px;font-size:var(--ui-font-small)}.month-filter{display:flex;justify-content:flex-end;align-items:center;gap:10px;font-size:var(--ui-font-caption);margin:0 0 12px}.month-filter select{font-size:var(--ui-font-small);padding:5px 8px;max-width:150px}
.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-weekdays{margin-bottom:7px}.month-weekdays span{text-align:center;font-size:var(--ui-font-xs);color:var(--ui-muted);padding:5px}.month-weekdays span:first-child{color:var(--ui-danger)}.month-weekdays span:last-child{color:var(--ui-muted)}.month-grid{gap:3px}
.month-day{position:relative;min-width:0;min-height:92px;padding:6px 5px;background:var(--ui-surface);border:1px solid transparent;border-radius:var(--ui-radius-control);display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;color:var(--ui-text);text-align:left;transition:background .12s}
.month-day:hover,.month-day.is-selected{background:var(--ui-raised);border-color:var(--ui-line-strong)}.month-day.is-today{border-color:var(--ui-accent-text);background:var(--ui-raised)}.month-day.is-past{background:var(--ui-surface)}.month-day.is-past.is-today{background:var(--ui-raised)}.month-date{display:flex;gap:3px;align-items:center;font-size:var(--ui-font-small);line-height:17px}.month-date>i{font-size:var(--ui-font-micro);font-style:normal;color:var(--ui-accent-text)}.month-date>em{font-size:var(--ui-font-dense);margin-left:auto;font-style:normal;font-weight:700}
.month-games{display:flex;flex-direction:column;gap:var(--ui-space-1);margin-top:8px;line-height:1.2}.month-opponent{font-size:var(--ui-font-body);font-weight:650}.month-games>small{font-size:var(--ui-font-xs);color:var(--ui-muted)}.month-games>.month-rest{color:var(--ui-muted);font-weight:400;font-size:var(--ui-font-xs)}.month-league-game{display:flex;justify-content:space-between;gap:1px;font-size:var(--ui-font-dense);color:var(--ui-muted);white-space:nowrap}.month-league-game.is-mine{color:var(--ui-accent-text)}.league-calendar .month-day{min-height:123px;padding-inline:3px}.league-calendar .month-games{gap:var(--ui-space-2)}
.month-legend{display:flex;flex-wrap:wrap;gap:7px 15px;color:var(--ui-muted);font-size:var(--ui-font-xs);margin-top:13px}.month-legend span{display:flex;align-items:center;gap:5px}.month-legend>span:last-child{flex-basis:100%}.legend-today{width:7px;height:7px;border:1px solid var(--ui-accent-text);border-radius:50%}
.result-승{color:var(--ui-muted)}.result-패{color:var(--ui-danger)}.result-무{color:var(--ui-muted)}.home-recent,.home-ranks{padding:14px}.home-recent>header,.home-ranks>header{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:12px}.home-recent h2,.home-ranks h2{font-size:var(--ui-font-label);margin:0}.home-recent header>button,.home-ranks header>button{font-size:var(--ui-font-xs);min-height:28px;padding:4px 7px;background:transparent}
.home-recent>button{display:grid;grid-template-columns:38px 1fr 44px 15px;align-items:center;gap:var(--ui-space-3);width:100%;border:0;border-top:1px solid var(--ui-line);border-radius:0;background:none;padding:11px 0;text-align:left;font-size:var(--ui-font-small)}.home-recent time{font-size:var(--ui-font-xs);color:var(--ui-muted)}.home-recent>button span>small{display:block;font-size:var(--ui-font-dense);font-weight:400;color:var(--ui-muted);margin-top:3px}.home-recent em{font-style:normal;font-size:var(--ui-font-caption)}.home-empty{font-size:var(--ui-font-small);color:var(--ui-muted);padding:15px 0;line-height:1.7}
.home-rank-table>div{display:grid;grid-template-columns:1fr 85px 35px;gap:var(--ui-space-2);align-items:center;padding:10px 4px;font-size:var(--ui-font-caption);border-bottom:1px solid var(--ui-line)}.home-rank-table .rank-head{color:var(--ui-muted);font-size:var(--ui-font-dense);padding-top:0}.home-rank-table strong{font-size:var(--ui-font-small)}.home-rank-table i{font-style:normal;font-size:var(--ui-font-xs);color:var(--ui-muted);width:24px;display:inline-block}.home-rank-table .my-club{background:var(--ui-raised);color:var(--ui-accent-text);border-radius:var(--ui-radius-small)}.home-rank-table small{font-size:var(--ui-font-xs);color:var(--ui-muted)}.home-tools{display:grid;grid-template-columns:1fr 1fr;gap:var(--ui-space-2)}.home-tools>button{font-size:var(--ui-font-caption);min-height:38px;padding:6px}
.day-fixture{border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);padding:13px;margin-bottom:9px;background:var(--ui-surface)}.day-fixture.is-mine{border-color:var(--ui-accent-text)}.day-fixture>div{display:grid;grid-template-columns:1fr 80px 1fr;text-align:center;align-items:center;font-size:var(--ui-font-label);gap:var(--ui-space-3)}.day-fixture>small{display:block;color:var(--ui-muted);text-align:center;font-size:var(--ui-font-xs);margin:9px 0}.day-fixture>button{display:block;margin:auto;font-size:var(--ui-font-caption);min-height:30px;padding:5px 10px}.date-sim-action{position:sticky;bottom:-18px;background:var(--ui-surface);padding:12px 0 16px;border-top:1px solid var(--ui-line);z-index:2}.date-sim-action>p{font-size:var(--ui-font-body);line-height:1.7;margin:0 0 12px}.date-sim-action small{color:var(--ui-muted);font-size:var(--ui-font-caption);line-height:1.6}.date-sim-action>button{display:block;width:100%;min-height:46px;margin-bottom:9px}.calendar-day-detail+.date-sim-action{margin-top:18px}
.season-progress-live{display:grid;gap:14px}.season-progress-date{font-size:var(--ui-font-subtitle)}.season-progress-count{font-size:var(--ui-font-body);color:var(--ui-muted);margin:0}.season-progress-results{display:grid;gap:var(--ui-space-2)}.season-progress-results>div{display:grid;grid-template-columns:1fr 70px 1fr 30px;gap:var(--ui-space-2);align-items:center;padding:12px 10px;background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);font-size:var(--ui-font-label);color:var(--ui-muted);text-align:center}.season-progress-results b{white-space:nowrap}.season-progress-results small{font-size:var(--ui-font-xs)}.season-progress-results .is-finished{color:var(--ui-text)}.season-progress-results .just-finished{border-color:var(--ui-accent-text);background:var(--ui-accent-soft);animation:result-settle .55s ease-out}.season-progress-note{display:block;font-size:var(--ui-font-caption);color:var(--ui-muted);line-height:1.7}.season-progress>[data-action="season-cancel"]{width:100%;min-height:45px;margin-top:16px}.season-stop-summary{margin-bottom:20px}.season-stop-summary>h3{font-size:var(--ui-font-heading);line-height:1.6;margin-top:0}.season-stop-summary>small{font-size:var(--ui-font-caption);color:var(--ui-muted);line-height:1.7}.club-attention{background:var(--ui-warning-bg);border:1px solid var(--ui-accent-text);padding:12px;margin-bottom:14px;border-radius:var(--ui-radius-control);font-size:var(--ui-font-body)}
@keyframes result-settle{from{background:var(--ui-hover)}to{background:var(--ui-accent-soft)}}
.manager-mode .match-sheet:has(.club-calendar){width:min(930px,96vw)}
@media(max-width:1000px){.club-dashboard-grid{grid-template-columns:minmax(0,1fr) 250px;gap:13px}.home-rank-table>div{grid-template-columns:1fr 70px 30px}.club-calendar{padding:13px}.today-duel>strong{font-size:24px}.today-card{padding:17px}}
@media(max-width:800px){.club-dashboard{padding:8px 3px 18px}.club-heading{margin-bottom:16px}.club-heading h1{font-size:29px}.club-heading h1>span{display:block;margin:5px 0 0;font-size:var(--ui-font-xs)}.club-heading>div>small{font-size:var(--ui-font-xs)}.club-standing{gap:9px}.club-standing>b{font-size:32px}.club-standing>span{font-size:var(--ui-font-caption)}.club-standing>span>small{font-size:var(--ui-font-xs)}.club-dashboard-grid{grid-template-columns:1fr;gap:17px}.club-primary{gap:var(--ui-space-4)}.club-secondary{grid-template-columns:1fr}.today-card{padding:15px}.today-duel{margin:16px 0;gap:var(--ui-space-3)}.today-duel>strong{font-size:23px}.today-duel>b{font-size:23px}.today-starter{font-size:var(--ui-font-caption)}.today-actions>button{font-size:var(--ui-font-caption)}.club-shortcuts{gap:5px}.club-shortcuts>button{padding:12px 7px}.club-shortcuts b{font-size:var(--ui-font-small)}.club-shortcuts small{font-size:var(--ui-font-dense);line-height:1.5}.club-calendar{padding:12px 8px}.month-header{margin-bottom:10px}.month-header h2{font-size:21px}.month-header>div>small{font-size:var(--ui-font-micro)}.month-controls{gap:3px}.month-controls button{min-width:31px;min-height:32px;padding:5px 6px;font-size:var(--ui-font-caption)}.month-grid{gap:2px}.month-day{min-height:79px;padding:5px 3px}.month-date{font-size:var(--ui-font-xs);gap:1px;line-height:13px;flex-wrap:wrap}.month-date>i{font-size:7px}.month-date>em{font-size:var(--ui-font-micro)}.month-opponent{font-size:var(--ui-font-caption)}.month-games{margin-top:7px;gap:var(--ui-space-1)}.month-games>small{font-size:var(--ui-font-dense)}.month-legend{font-size:var(--ui-font-dense);gap:7px}.month-league-game{font-size:var(--ui-font-micro);flex-wrap:wrap}.league-calendar .month-day{min-height:157px}.league-calendar .month-games{gap:5px}.month-filter{font-size:var(--ui-font-xs);margin-block:12px}.month-filter select{font-size:var(--ui-font-caption)}.home-rank-table>div{grid-template-columns:1fr 100px 40px}.home-tools{grid-template-columns:repeat(2,1fr)}.manager-mode .match-sheet:has(.club-calendar){width:auto}.day-fixture>div{font-size:var(--ui-font-body);grid-template-columns:1fr 65px 1fr}.season-progress-date{font-size:var(--ui-font-label)}.season-progress-results>div{font-size:var(--ui-font-small);padding:11px 6px;grid-template-columns:1fr 65px 1fr 24px}.season-progress-results small{font-size:var(--ui-font-dense)}}
@media(max-width:350px){.club-heading h1{font-size:25px}.club-standing>b{font-size:28px}.today-card{padding:13px 11px}.today-duel>strong{font-size:21px}.today-starter{gap:var(--ui-space-2)}.home-energy{width:90px}.club-calendar{padding:10px 5px}.month-day{padding-inline:2px}.month-date>i{display:none}.month-games>small{font-size:var(--ui-font-micro)}.month-opponent{font-size:var(--ui-font-xs)}.club-shortcuts small{font-size:var(--ui-font-micro)}.today-actions{gap:5px}}
@media(prefers-reduced-motion:reduce){.season-progress-results .just-finished{animation:none}.month-day{transition:none}}

.season-progress .season-progress-date{font-size:var(--ui-font-subtitle)}.working:has(.season-progress){opacity:1}.season-progress{gap:var(--ui-space-3);padding:5px 0}
@media(max-width:800px){.season-progress .season-progress-date{font-size:var(--ui-font-label)}}

.club-secondary .today-card{padding:17px 14px}.club-secondary .today-duel{gap:7px}.club-secondary .today-duel>strong{font-size:22px}.club-secondary .today-duel>b{font-size:22px}.club-secondary .today-starter{font-size:var(--ui-font-caption);gap:7px}.club-secondary .home-energy{width:90px}.club-secondary .today-actions>button{font-size:var(--ui-font-caption)}
@media(max-width:800px){.club-dashboard-grid{display:flex;flex-direction:column;gap:var(--ui-space-4)}.club-primary{width:100%;order:1}.club-secondary{display:contents}.club-secondary>.today-card{width:100%;order:0}.home-recent{width:100%;order:2}.home-ranks{width:100%;order:3}.home-tools{width:100%;order:4}.club-secondary .today-card{padding:15px}.club-secondary .today-duel>strong,.club-secondary .today-duel>b{font-size:23px}.club-secondary .home-energy{width:110px}}

.club-secondary .today-card>h2{font-size:20px;line-height:1.5}

.club-calendar .month-day.is-allstar{
 background:linear-gradient(110deg,rgba(12,24,49,.87),rgba(12,24,49,.38)),var(--allstar-calendar-image,none) 76% center/cover no-repeat #142746;
 color:#fff;
}
.month-day.is-allstar :is(.month-date>i,.month-games>small,.month-league-game){color:#fff}
.month-allstar-label{font-size:var(--ui-font-caption);font-weight:700;white-space:nowrap}
@media(max-width:450px){.month-allstar-label{font-size:var(--ui-font-dense)}}

@media(min-width:801px) and (max-height:850px){
 .club-dashboard{padding-top:2px}.club-heading{margin-bottom:14px}.club-heading h1{font-size:30px}.club-shortcuts>button{padding:10px}.club-primary{gap:var(--ui-space-4)}.club-dashboard .club-calendar{padding:12px}.club-dashboard .month-header{margin-bottom:7px}.club-dashboard .month-header h2{font-size:21px}.club-dashboard .month-header>div>small{font-size:var(--ui-font-micro)}.club-dashboard .month-weekdays{margin-bottom:4px}.club-dashboard .month-weekdays span{padding:3px}.club-dashboard .month-day{min-height:58px;padding:4px 5px}.club-dashboard .month-date{font-size:var(--ui-font-caption);line-height:13px}.club-dashboard .month-games{margin-top:4px;gap:2px}.club-dashboard .month-opponent{font-size:var(--ui-font-small)}.club-dashboard .month-games>small{font-size:var(--ui-font-dense)}.club-dashboard .month-legend{margin-top:8px;gap:5px 12px;font-size:var(--ui-font-dense)}.club-dashboard .month-legend>span:last-child{flex-basis:auto}
}

.calendar-locked-note {
  margin: 0 0 var(--ui-space-3);
  padding: var(--ui-space-3);
  color: var(--ui-text);
  background: var(--ui-accent-soft);
  border-inline-start: 3px solid var(--ui-accent);
  font-size: var(--ui-font-small);
}

/* source: implementation/playable-v0.1/lineup-upgrade.css */
.lineup-handed-tabs{display:flex;gap:3px}.lineup-handed-tabs button{min-height:29px;padding:3px 10px;font-size:var(--ui-font-caption);background:transparent}.lineup-handed-tabs button.selected{background:var(--ui-accent-soft);border-color:var(--ui-line-strong);color:var(--ui-accent-text)}.lineup-data-toolbar{gap:var(--ui-space-3)}.lineup-data-toolbar>small{margin-left:auto;font-size:var(--ui-font-xs)}.lineup-data-toolbar .draft-state{font-size:var(--ui-font-xs)}
.empty-slot{border:1px dashed var(--ui-accent-text)!important;background:var(--ui-raised)!important}.order-card.empty-slot strong{font-size:var(--ui-font-body);color:var(--ui-accent-text)}.order-card.empty-slot small{display:block;color:var(--ui-accent-text);font-size:var(--ui-font-xs);margin-top:5px}.lineup-warning{border:1px solid var(--ui-accent-text);background:var(--ui-raised);color:var(--ui-accent-text);border-radius:var(--ui-radius-card);padding:12px;line-height:1.7;font-size:var(--ui-font-small)}
.lineup-saves{display:grid;gap:10px}.lineup-saves article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);padding:12px}.lineup-saves label{display:flex;align-items:center;gap:9px;min-width:0}.lineup-saves label b{font-size:var(--ui-font-small);white-space:nowrap;color:var(--ui-accent-text)}.lineup-saves input{width:100%;min-width:0;padding:7px;font-size:var(--ui-font-small)}.lineup-saves article>small{grid-column:1;font-size:var(--ui-font-xs);color:var(--ui-muted)}.lineup-saves article>div{grid-column:2;grid-row:1/3;display:flex;gap:5px;align-items:center}.lineup-saves article button{font-size:var(--ui-font-caption);padding:7px 10px;min-height:37px}
.view-field .lineup-board{display:grid;place-items:center;container-type:size;padding:0;background:var(--ui-surface)}.lineup-context{container-type:size;display:grid;place-items:center;overflow:hidden;background:var(--ui-surface)}.lineup-field-art{width:100%;max-width:720px;aspect-ratio:6/5;position:relative;flex-shrink:0;isolation:isolate}.lineup-ground-svg{position:absolute;inset:0;width:100%;height:100%;z-index:0}.lineup-field-art .stadium-position{position:absolute;transform:translate(-50%,-50%);z-index:2;text-align:center;min-width:48px;max-width:95px}.stadium-position>button{min-height:38px;padding:1px 3px;background:color-mix(in srgb,var(--ui-surface) 85.10%,transparent);border:1px solid color-mix(in srgb,var(--ui-line-strong) 43.92%,transparent);display:grid;justify-items:center;gap:1px;border-radius:var(--ui-radius-control);width:100%;color:var(--ui-accent-text)}.stadium-position>button>b{font-size:var(--ui-font-dense);font-weight:500;color:var(--ui-success)}.stadium-position>button>strong{font-size:var(--ui-font-caption);white-space:nowrap}.stadium-position .fit-note{font-size:var(--ui-font-micro);margin:0;padding:1px 3px;line-height:1.2}.stadium-position .fit-note span{display:none}.stadium-position .drag-handle{position:absolute;right:-13px;top:5px;width:14px;font-size:var(--ui-font-subtitle);line-height:20px;height:24px}.stadium-position[data-position="C"]{transform:translate(-50%,0)}.stadium-position[data-position="P"]{transform:translate(-50%,-70%)}.stadium-position[data-position="DH"]>button{border-color:var(--ui-accent-text)}.stadium-position.empty-slot{border-radius:var(--ui-radius-control)}.stadium-position.empty-slot>button{color:var(--ui-accent-text)}
@supports(width:1cqw){.lineup-field-art{width:min(100cqw,120cqh)}}
.staff-board.grouped-staff{display:flex;flex-direction:column;gap:14px;overflow:auto;padding:10px;height:100%;grid-template-rows:none}.staff-group{margin:0;min-width:0;flex:0 0 auto}.staff-group>h3{font-size:var(--ui-font-small);margin:0 0 8px;padding-bottom:7px;border-bottom:1px solid var(--ui-line-strong);color:var(--ui-success);letter-spacing:.3px}.staff-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.staff-cards .staff-card{min-height:73px;min-width:0}.staff-cards .staff-card>span:first-child{width:44px;font-size:var(--ui-font-caption)}.staff-cards .staff-card>button{min-width:0;padding:6px;display:grid;gap:3px}.staff-card .staff-role{font-size:var(--ui-font-xs);color:var(--ui-success);white-space:normal}.staff-card.scheduled-starter{border:2px solid var(--ui-accent-text);background:var(--ui-accent-soft);box-shadow:inset 3px 0 #dfc27b}.staff-card .today-starter{display:inline-block;font-size:var(--ui-font-dense);background:var(--ui-warning-bg);color:var(--ui-text);font-style:normal;border-radius:3px;padding:2px 4px;margin-left:6px}.staff-card.scheduled-starter strong{color:var(--ui-accent-text)}
@media(max-width:800px){.lineup-handed-tabs button{font-size:var(--ui-font-xs);min-height:28px;padding:3px 7px}.lineup-data-toolbar{gap:5px}.lineup-data-toolbar>small{font-size:var(--ui-font-dense)}.lineup-data-toolbar .draft-state{font-size:var(--ui-font-dense)}.staff-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.staff-board.grouped-staff{padding:7px;gap:var(--ui-space-4)}.staff-cards .staff-card{min-height:72px}.staff-cards .staff-card>span:first-child{font-size:var(--ui-font-xs);width:35px}.staff-cards .staff-card>button{padding:4px}.staff-card .staff-role{font-size:var(--ui-font-dense)}.staff-card .today-starter{font-size:var(--ui-font-micro);margin-left:4px}.lineup-saves article{padding:9px;gap:7px}.lineup-saves article>div{gap:var(--ui-space-1)}.lineup-saves article button{padding:6px;font-size:var(--ui-font-xs)}.lineup-saves label b{font-size:var(--ui-font-xs)}.lineup-saves input{font-size:var(--ui-font-caption)}.stadium-position>button>strong{font-size:var(--ui-font-xs)}.lineup-field-art .stadium-position{min-width:42px;max-width:75px}.stadium-position .drag-handle{right:-11px;font-size:var(--ui-font-label);width:12px}.stadium-position>button>b{font-size:var(--ui-font-micro)}.order-card.empty-slot strong{font-size:var(--ui-font-small)}.order-card.empty-slot small{font-size:var(--ui-font-dense)}}
@media(max-width:350px){.lineup-data-toolbar>small{display:none}.staff-cards{grid-template-columns:1fr}.lineup-saves article{grid-template-columns:1fr}.lineup-saves article>div{grid-column:1;grid-row:3;justify-content:flex-end}.lineup-field-art .stadium-position{min-width:36px}.stadium-position>button>strong{font-size:var(--ui-font-dense)}.stadium-position .drag-handle{right:-9px}.lineup-handed-tabs button{font-size:var(--ui-font-dense)}}

.detailed-lineup .staff-board.grouped-staff{height:auto;min-height:0;overflow:visible;display:flex;grid-template:none;gap:var(--ui-space-4)}
.lineup-field-art .stadium-position{min-width:34px}.stadium-position>button{min-height:30px;padding:1px 3px}.stadium-position>button>strong{font-size:var(--ui-font-xs)}.stadium-position .drag-handle{right:-2px;top:-4px;width:11px;font-size:var(--ui-font-caption);height:18px}.stadium-position[data-position="SS"]{transform:translate(-60%,-70%)}.stadium-position[data-position="2B"]{transform:translate(-40%,-70%)}

/* v0.2.24: stable, readable lineup labels; full details stay in the player sheet. */
.view-field .lineup-board{overflow:auto;align-items:safe center}
.lineup-field-art{min-width:min(100cqw,300px)}
.lineup-field-links{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.lineup-field-links line{stroke:var(--ui-accent-text);stroke-width:1;stroke-opacity:.6}.lineup-field-links circle{fill:var(--ui-accent-text);stroke:var(--ui-text);stroke-width:1}
.lineup-field-art .stadium-position{width:82px;min-width:82px;max-width:82px;height:38px;box-sizing:border-box;transform:translate(-50%,-50%);border-radius:var(--ui-radius-control)}
.lineup-field-art .stadium-position>button{box-sizing:border-box;width:100%;height:100%;min-height:0;padding:3px 6px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;overflow:hidden;border-radius:var(--ui-radius-control);line-height:1.1;color:var(--ui-success);background:color-mix(in srgb,var(--ui-surface) 96.08%,transparent)}
.stadium-identity{display:flex;justify-content:center;align-items:center;gap:var(--ui-space-1);max-width:100%;min-width:0}.stadium-identity>b{font-size:var(--ui-font-dense);flex-shrink:0;color:var(--ui-muted);font-weight:500}.stadium-identity>strong{font-size:var(--ui-font-xs);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.stadium-fit{font-size:var(--ui-font-dense);line-height:1.15;font-style:normal;white-space:nowrap;color:var(--ui-success)}
.stadium-fit-secondary{color:var(--ui-accent-text)}.stadium-fit-mismatch{color:var(--ui-danger);font-weight:700}.stadium-fit-empty{color:var(--ui-accent-text)}
.lineup-field-art .stadium-position.fit-mismatch{background:var(--ui-danger-bg)!important;box-shadow:none}.lineup-field-art .stadium-position.fit-mismatch>button{background:var(--ui-danger-bg);border-color:transparent}
.lineup-field-art .stadium-position.fit-secondary>button{border-color:var(--ui-line-strong)}.lineup-field-art .stadium-position[data-position="DH"]>button{border-color:var(--ui-accent-text)}
.lineup-field-art .stadium-position .drag-handle{width:14px;height:18px;right:-6px;top:-8px;font-size:var(--ui-font-body);line-height:18px;z-index:3;border-radius:3px;background:var(--ui-surface);color:var(--ui-success)}

.pitcher-aptitude{color:var(--ui-accent-text);white-space:normal;line-height:1.45;font-size:var(--ui-font-caption)}.staff-card button{min-height:112px}.opening-player .pitcher-aptitude{font-size:var(--ui-font-caption)}

/* Field cards are the touch target; surrounding grass retains native scrolling. */
.lineup-field-art [data-drag-card],.lineup-field-art [data-drag-card] *{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.lineup-field-art [data-drag-card]>button{cursor:grab}
.lineup-field-art [data-drag-card].drag-source>button{cursor:grabbing}

/* Wider list grips, without overlapping the player information button. */
.detailed-lineup .order-card>.drag-handle,.detailed-lineup .staff-card>.drag-handle{width:40px;min-width:40px;align-self:stretch;font-size:24px;border-left:1px solid color-mix(in srgb,var(--ui-line) 33.33%,transparent);background:color-mix(in srgb,var(--ui-accent-soft) 20.00%,transparent);border-radius:0 5px 5px 0}
@media(max-width:800px){.detailed-lineup .order-card>.drag-handle,.detailed-lineup .staff-card>.drag-handle{width:36px;min-width:36px}}

/* Duties belong to the role slot, not the selected player. */
.detailed-lineup .staff-card>span.staff-slot-label{width:48px;min-width:48px;box-sizing:border-box;padding:4px 2px;flex-direction:column;gap:var(--ui-space-1);white-space:normal}
.staff-slot-label>b{font-size:var(--ui-font-caption);font-weight:500;line-height:1.2;white-space:nowrap}
.detailed-lineup .staff-card>.staff-slot-label>small{font-size:var(--ui-font-dense);line-height:1.2;color:var(--ui-success);white-space:nowrap}
@media(max-width:800px){.detailed-lineup .staff-card>span.staff-slot-label{width:44px;min-width:44px}.staff-slot-label>b{font-size:var(--ui-font-xs)}}

.squad-adjust-button{display:block;width:100%;margin:14px 0 18px;padding:12px;min-height:44px;background:var(--ui-accent,#d7b76f)!important;color:var(--ui-on-accent,#142c2c)!important;border-color:var(--ui-accent,#d7b76f)!important;font-size:var(--ui-font-label)}
.squad-tabs{display:flex;gap:var(--ui-space-2);margin-bottom:10px}.squad-tabs button{flex:1}.squad-tabs [aria-pressed=true]{background:var(--ui-accent);color:var(--ui-on-accent)}.squad-search{margin:8px 0}.squad-search input{width:100%;box-sizing:border-box;margin-top:8px}.squad-help{font-size:var(--ui-font-caption);color:var(--ui-muted);margin:8px 0 12px}.squad-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.squad-column{min-width:0;display:flex;flex-direction:column}.squad-column h3{margin:0 0 8px;font-size:var(--ui-font-label)}.squad-column h3 small{font-size:var(--ui-font-caption);color:var(--ui-muted)}.squad-columns-labels,.squad-row button{display:grid;grid-template-columns:minmax(0,1fr) 24px 28px 44px;gap:3px;align-items:center}.squad-columns-labels{font-size:var(--ui-font-xs);color:var(--ui-muted);padding:4px}.squad-scroll{overflow:auto;max-height:55dvh;min-height:80px;scrollbar-width:thin}.squad-row{margin-bottom:4px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);touch-action:none}.squad-row.registered{background:var(--ui-accent-soft);border-color:var(--ui-accent)}.squad-row button{width:100%;min-height:38px;margin:0;padding:6px 4px;background:transparent;color:var(--ui-text);border:0;font-size:var(--ui-font-caption);text-align:left}.squad-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ui-font-body);min-width:0}.squad-add{width:100%;min-height:38px;margin:5px 0 0;padding:4px;font-size:22px;border:1px dashed var(--ui-accent);color:var(--ui-accent-text)}.squad-row.drop-ready,.squad-add.drop-ready{outline:2px solid var(--ui-accent);outline-offset:-2px}.squad-row.drag-source{opacity:.4}
@media(max-width:500px){.squad-columns{gap:var(--ui-space-2)}.squad-columns-labels,.squad-row button{grid-template-columns:minmax(0,1fr) 19px 23px 33px;gap:2px}.squad-row strong{font-size:var(--ui-font-small)}.squad-row button{font-size:var(--ui-font-xs)}.squad-columns-labels{font-size:var(--ui-font-dense)}}

.match-sheet:has(.squad-columns){width:min(840px,calc(100vw - 24px));max-width:calc(100vw - 24px)}.squad-row{user-select:none}.squad-row.registered>button{background:var(--ui-accent-soft)!important;border-inline-start:3px solid var(--ui-accent)}

/* Squad cards scroll everywhere except the dedicated drag handle. */
.squad-row{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:stretch;touch-action:pan-y;min-width:0}
.squad-row .squad-player-open{display:block;min-width:0;padding:7px 5px;touch-action:pan-y}
.squad-identity{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--ui-space-1);min-width:0}
.squad-identity>span{font-size:var(--ui-font-xs);white-space:nowrap}.squad-rating{font-weight:700;color:var(--ui-accent-text)}
.squad-row .squad-detail{display:grid;grid-template-columns:1fr;gap:2px;margin-top:5px;font-size:var(--ui-font-xs);color:var(--ui-muted);min-width:0}
.squad-row .squad-detail.abilities{grid-template-columns:repeat(3,minmax(0,1fr));font-size:var(--ui-font-dense)}
.squad-detail>span{white-space:nowrap;min-width:0}.squad-detail b{color:var(--ui-text);font-variant-numeric:tabular-nums}
.squad-drag-handle{display:flex;align-items:center;justify-content:center;min-width:0;touch-action:none;cursor:grab;color:var(--ui-muted);border-left:1px solid var(--ui-line);font-size:20px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.squad-scroll{touch-action:pan-y;overscroll-behavior:contain}
.squad-metric-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-3);margin:6px 0;color:var(--ui-muted)}
.il-returns{display:grid;gap:var(--ui-space-2);margin-bottom:var(--ui-space-3)}
.il-returns>header,.il-return-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-space-2)}
.il-returns>header{justify-content:space-between}.il-returns h3{margin:0;font-size:var(--ui-font-label)}
.il-returns small{color:var(--ui-muted);font-size:var(--ui-font-caption)}
.il-return-card{display:grid;gap:var(--ui-space-2);padding:var(--ui-space-3);border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);background:var(--ui-raised);font-size:var(--ui-font-small)}
.il-return-card:focus{outline:2px solid var(--ui-accent);outline-offset:-2px}
.il-return-actions>button,.il-return-pick>button{min-height:36px;white-space:normal}
.il-return-pick summary{cursor:pointer;color:var(--ui-accent-text)}
.il-return-pick label{display:grid;gap:var(--ui-space-1);margin:var(--ui-space-2) 0}
.il-return-pick select{width:100%;min-width:0}
.squad-metric-toolbar button{font-size:var(--ui-font-caption);min-height:30px;padding:3px 10px}
.drag-card-ghost{position:fixed!important;z-index:10000;pointer-events:none!important;box-sizing:border-box;margin:0;opacity:.96;background:var(--ui-surface);border:1px solid var(--ui-accent-text);box-shadow:0 8px 22px #0007;border-radius:var(--ui-radius-control);transform:rotate(-1deg)}
.drag-card-ghost *{pointer-events:none!important}


@media(max-width:500px){.squad-row{grid-template-columns:minmax(0,1fr) 24px}.squad-row .squad-player-open{padding:7px 3px}.squad-identity{gap:2px}.squad-identity>span{font-size:var(--ui-font-dense)}.squad-row .squad-detail.abilities{gap:1px;font-size:var(--ui-font-micro)}}

/* v0.3 tables retain both pan axes; card drag remains limited to its handles. */
.season-table,.record-table-scroll{touch-action:pan-x pan-y!important;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;min-width:0}
.season-table table,.season-table td,.record-table-scroll table,.record-table-scroll td{touch-action:pan-x pan-y!important}
.result-team-tabs{display:flex;gap:var(--ui-space-3);margin:14px 0 8px}.result-team-tabs button{flex:1}.result-team-tabs button[aria-pressed=true]{background:var(--ui-accent);color:var(--ui-on-accent)}
.injury-badge.injury-mild{color:#af6807;background:#ffe8a9}.injury-badge.injury-severe{color:#a52630;background:#ffdae0}
.home-rank-table>div{grid-template-columns:minmax(76px,1fr) 62px 32px 96px!important;gap:5px}.home-rank-table{overflow-x:auto}.rank-form{display:flex;gap:3px;justify-content:flex-end}.rank-form i{font-style:normal;font-size:var(--ui-font-xs);width:15px;line-height:17px;border:1px solid;border-radius:3px;text-align:center}.form-승{color:#20a275}.form-패{color:#428ee2}.form-무{color:var(--ui-muted)}
.candidate-hand{font-size:var(--ui-font-caption)!important}.condition-badge{flex-shrink:0}.staff-player-heading strong{display:inline-flex;align-items:center;gap:var(--ui-space-1)}

.season-table,.record-table-scroll,.end-table-scroll{overscroll-behavior-y:auto!important}

/* Keep title/navigation static; dissolve only the management content area. */
.manager-content{position:relative;isolation:isolate}.view-dissolve{position:absolute;inset:0;min-height:100%;background:#000;z-index:20;pointer-events:none;animation:kbo-dissolve 260ms ease-out both}
@keyframes kbo-dissolve{from{opacity:.9}to{opacity:0}}
@keyframes kbo-panel-enter{from{opacity:0}to{opacity:1}}
dialog[open]{animation:kbo-panel-enter 220ms cubic-bezier(.2,.75,.25,1)}
.manager-app button:active:not(:disabled),.match-sheet button:active:not(:disabled),dialog button:active:not(:disabled){filter:brightness(.9);translate:0 1px}
@media(prefers-reduced-motion:reduce){.view-dissolve{display:none}dialog[open]{animation:none}.manager-app button:active,.match-sheet button:active,dialog button:active{translate:none}}

/* Fit all four columns inside the 300px desktop sidebar, including card padding. */
.home-rank-table>div{grid-template-columns:minmax(42px,1fr) 60px 30px 84px!important;gap:3px;padding-inline:2px;min-width:0}
.home-rank-table>div>*{min-width:0;white-space:nowrap}
.home-rank-table strong>i{width:16px}
.home-rank-table .rank-form{display:flex;justify-content:flex-end;gap:2px;min-width:0}
.home-rank-table .rank-form i{box-sizing:border-box;flex:0 0 14px;width:14px;font-size:var(--ui-font-dense);line-height:17px;text-align:center}
.home-rank-table .rank-form .form-승{color:#20a275}.home-rank-table .rank-form .form-패{color:#428ee2}.home-rank-table .rank-form .form-무{color:var(--ui-muted)}

.bench-mini .candidate-position-line{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--ui-font-xs);line-height:1.4;margin-block:2px}
.bench-mini>button{padding-block:7px}




/* Saved lineups and read-only preview share the lineup owner. */
.lineup-saves .lineup-save-slot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 14px;align-items:center}
.lineup-saves .lineup-save-slot>label{grid-column:1;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:var(--ui-space-3)}.lineup-saves .lineup-save-slot>label b{white-space:nowrap}
.lineup-saves .lineup-save-slot>small{grid-column:1;grid-row:2;line-height:1.5}.lineup-saves .lineup-save-slot>.lineup-slot-actions{grid-column:2;grid-row:1/3;display:grid;grid-template-columns:repeat(3,minmax(62px,1fr));gap:var(--ui-space-2);align-items:stretch}.lineup-slot-actions button{width:100%;white-space:nowrap}
.lineup-slot-preview{width:min(900px,calc(100vw - 24px));max-height:88dvh;padding:0;border:1px solid var(--ui-line-strong);border-radius:var(--ui-radius-modal);background:var(--ui-surface);color:var(--ui-text)}.lineup-slot-preview::backdrop{background:#0009}.lineup-slot-preview>header{display:flex;justify-content:space-between;gap:var(--ui-space-4);padding:15px 20px;border-bottom:1px solid var(--ui-line)}.lineup-slot-preview h2{font-size:21px;margin-top:4px}.lineup-slot-preview header button{font-size:22px;padding:2px 12px}.slot-preview-body{max-height:65dvh;overflow:auto;padding:16px 20px}.slot-preview-sheets{display:grid;grid-template-columns:1fr 1fr;gap:18px}.slot-preview-sheets h3,.slot-preview-pitchers h3{font-size:var(--ui-font-label);margin:0 0 10px}.slot-preview-sheets table{width:100%;border-collapse:collapse;font-size:var(--ui-font-small)}.slot-preview-sheets th,.slot-preview-sheets td{text-align:left;padding:8px;border-bottom:1px solid var(--ui-line)}.slot-preview-pitchers{margin-top:20px}.slot-preview-staff{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px}.slot-preview-staff>div{display:flex;justify-content:space-between;padding:7px 9px;background:var(--ui-raised);border-radius:var(--ui-radius-control);font-size:var(--ui-font-small)}.lineup-slot-preview footer{padding:12px 20px;border-top:1px solid var(--ui-line);text-align:right}.recommendation-notice{font-size:var(--ui-font-label);line-height:1.8;padding-block:10px}.lobby-menu-button.is-locked b:after{content:' 🔒';font-size:var(--ui-font-xs)}
@media(max-width:600px){.lineup-saves .lineup-save-slot{grid-template-columns:minmax(0,1fr);gap:var(--ui-space-3)}.lineup-saves .lineup-save-slot>.lineup-slot-actions{grid-column:1;grid-row:auto;grid-template-columns:repeat(3,minmax(0,1fr))}.lineup-saves .lineup-save-slot>label{grid-template-columns:42px minmax(0,1fr)}.slot-preview-sheets{grid-template-columns:1fr;gap:var(--ui-space-6)}.slot-preview-staff{grid-template-columns:1fr}.slot-preview-body{padding:12px}}


/* Day-close notice is out of flow: preserve the original six direct grid rows. */
.detailed-lineup{position:relative}
.detailed-lineup>.lineup-day-lock{position:absolute;grid-column:1;grid-row:3 / 6;}
.squad-workspace{position:relative}
.squad-game-lock{position:absolute}
:is(.lineup-day-lock,.squad-game-lock){inset:0;z-index:5;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px;box-sizing:border-box;text-align:center;background:rgb(0 0 0/.5);color:#fff;font:var(--ui-font-body)/1.6 var(--ui-font-system)}
:is(.lineup-day-lock,.squad-game-lock) [role=status]{display:grid;gap:8px}
:is(.lineup-day-lock,.squad-game-lock) strong{font:var(--ui-font-heading)/1.4 var(--ui-display)}
:root[data-studio-mode=light] :is(.lineup-day-lock,.squad-game-lock){background:rgb(255 255 255/.5);color:#17212b}

/* v394: action inside the existing out-of-flow day lock; preserve six grid rows. */
:is(.lineup-day-lock,.squad-game-lock)>button{flex:0 0 auto;min-height:var(--ui-action-height);margin-top:var(--ui-space-2);padding:9px 20px;font:var(--ui-font-body)/1.4 var(--ui-display)}

/* source: implementation/playable-v0.1/roster-workspace.css */
.roster-editor-workspace,.entry-roster-workspace{min-width:0}
.roster-editor-controls{display:grid;gap:var(--ui-space-4);margin-bottom:14px}
.roster-editor-controls>label{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-4);font-size:var(--ui-font-small)}
.roster-editor-controls select{width:min(220px,60%);min-width:0}
.roster-position-filters{display:flex;flex-wrap:wrap;gap:5px}
.roster-position-filters button{min-width:38px;min-height:34px;padding:5px 9px;font-size:var(--ui-font-caption)}
.roster-position-filters button[aria-pressed=true]{background:var(--ui-accent);border-color:var(--ui-accent);color:var(--ui-on-accent)}
.roster-list-summary{font-size:var(--ui-font-caption);color:var(--ui-muted);margin:0;line-height:1.5}.roster-list-summary>span{color:var(--ui-accent-text)}
.roster-editor-list{display:grid;gap:var(--ui-space-3)}
.roster-editor-row{display:grid;grid-template-columns:minmax(110px,.8fr) minmax(140px,1.1fr) minmax(200px,1.7fr);align-items:center;gap:8px 14px;width:100%;text-align:left;min-height:72px;padding:12px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);background:var(--ui-surface);color:var(--ui-text)}
.roster-editor-row.is-first-team{border:2px solid var(--ui-accent);padding:11px;background:color-mix(in srgb,var(--ui-accent-soft) 55%,var(--ui-surface))}
.roster-editor-identity{display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-width:0}.roster-editor-identity strong{font-size:var(--ui-font-label);overflow-wrap:anywhere}
.roster-level{display:inline-block;font-size:var(--ui-font-xs);padding:2px 5px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-small);white-space:nowrap;color:var(--ui-muted)}.roster-level.first{background:var(--ui-accent);border-color:var(--ui-accent);color:var(--ui-on-accent);font-weight:700}
.roster-editor-position{font-size:var(--ui-font-caption);color:var(--ui-muted);line-height:1.6;overflow-wrap:anywhere}
.roster-editor-metrics{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 8px;min-width:0;line-height:1.5}.roster-editor-metrics .candidate-hand{font-size:var(--ui-font-xs)!important;align-self:center;grid-row:1/3}.roster-editor-metrics .candidate-abilities{font-size:var(--ui-font-caption);color:var(--ui-text);white-space:normal}.roster-editor-metrics .candidate-record{grid-column:2;font-size:var(--ui-font-xs);color:var(--ui-muted);white-space:normal}
.match-sheet:has(.roster-editor-workspace),.match-sheet:has(.entry-roster-workspace){width:min(860px,94vw)}
.entry-roster-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ui-space-3);padding:12px;background:var(--ui-accent-soft);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card)}.entry-roster-summary>span{display:grid;gap:var(--ui-space-1);font-size:var(--ui-font-caption);color:var(--ui-muted)}.entry-roster-summary b{font-size:19px;color:var(--ui-text);font-variant-numeric:tabular-nums}
.entry-roster-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-4)}.entry-roster-column{min-width:0}.entry-roster-column h3{display:flex;justify-content:space-between;align-items:center;font-size:var(--ui-font-label);margin:8px 0}.entry-roster-column h3 small{font-size:var(--ui-font-caption);color:var(--ui-muted)}
.entry-roster-list{max-height:min(48dvh,calc(90dvh - 330px));overflow:auto;overscroll-behavior:contain;display:grid;align-content:start;gap:var(--ui-space-2);padding:2px}
.entry-roster-row{display:flex;justify-content:space-between;align-items:center;gap:var(--ui-space-2);min-height:59px;padding:8px;text-align:left;min-width:0;width:100%}.entry-roster-row>span:first-child{display:grid;gap:5px;min-width:0}.entry-roster-row strong{font-size:var(--ui-font-body);overflow-wrap:anywhere}.entry-roster-row small{color:var(--ui-muted);font-size:var(--ui-font-xs);line-height:1.4;overflow-wrap:anywhere}.entry-day-status{flex-shrink:0;font-size:var(--ui-font-xs);color:var(--ui-muted)}.entry-day-status.eligible{color:var(--ui-accent-text)}
@media(max-width:800px){.manager-mode .match-sheet:has(.roster-editor-workspace),.manager-mode .match-sheet:has(.entry-roster-workspace){width:auto}.roster-editor-row{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:5px 10px;padding:10px}.roster-editor-row.is-first-team{padding:9px}.roster-editor-identity{grid-column:1;grid-row:1}.roster-editor-position{grid-column:1;grid-row:2;font-size:var(--ui-font-xs)}.roster-editor-metrics{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;gap:3px}.roster-editor-metrics .candidate-abilities{font-size:var(--ui-font-xs)}.roster-editor-metrics .candidate-record{font-size:var(--ui-font-dense)}.roster-editor-metrics .candidate-hand{align-self:flex-start}.entry-roster-columns{gap:var(--ui-space-3)}.entry-roster-row{display:block;padding:7px;min-height:74px}.entry-day-status{display:block;margin-top:5px}.roster-position-filters{gap:var(--ui-space-1)}.roster-position-filters button{min-width:34px;min-height:34px;padding:5px 7px}}

/* v0.3.68 save-local player creation */
.match-sheet[data-panel="player-add"]{top:max(8px,env(safe-area-inset-top));bottom:max(8px,env(safe-area-inset-bottom));max-height:none;width:min(700px,calc(100% - 16px));display:flex;flex-direction:column}
.match-sheet[data-panel="player-add"]>header{flex:none}.match-sheet[data-panel="player-add"] .sheet-body{min-height:0;overflow-y:auto;padding:16px}
#player-add-form{min-width:0}#player-add-form fieldset{margin:12px 0;padding:12px;border:1px solid var(--line,#46525a);border-radius:var(--ui-radius-card)}#player-add-form fieldset[hidden]{display:none}#player-add-form label{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:var(--ui-font-small)}#player-add-form input:not([type="checkbox"]),#player-add-form select{width:100%;min-width:0;box-sizing:border-box;font-size:var(--ui-font-body);padding:8px}
.create-info-grid,.create-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-4)}.create-stat-grid{margin-top:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.create-secondary{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.create-secondary>span{width:100%;font-size:var(--ui-font-small)}#player-add-form .create-secondary label{flex-direction:row;align-items:center}.create-pitch-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:var(--ui-space-4);margin-top:8px}.create-player-actions{position:sticky;bottom:-16px;display:grid;grid-template-columns:1fr 1fr;gap:var(--ui-space-3);padding:12px 0;background:var(--ui-surface);z-index:1}.create-player-actions button{min-height:40px}@media(max-width:480px){.create-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.editor-source-controls{display:flex;flex-wrap:wrap;gap:var(--ui-space-2);align-items:center}.editor-source-controls button{font-size:var(--ui-font-small);min-height:34px}.editor-source-controls button[aria-pressed="true"]{background:var(--accent);color:var(--on-accent,#101719)}


/* source: implementation/playable-v0.1/opening-roster.css */
.opening-mode .shell{max-width:none;padding:0;height:100dvh}.opening-mode .brand,.opening-mode .footer{display:none}.opening-mode .toast{position:fixed;z-index:10;top:8px;left:50%;transform:translateX(-50%);max-width:90vw}
.season-opening-intro{height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;text-align:center;padding:24px;background:radial-gradient(ellipse at 50% 80%,var(--ui-accent-soft),var(--ui-page) 70%)}.opening-intro-mark{color:var(--ui-accent-text);letter-spacing:3px;font-size:var(--ui-font-small)}.season-opening-intro h1{font-size:clamp(36px,7vw,72px);color:var(--ui-accent-text)}.season-opening-intro h2{font-size:24px}.season-opening-intro p{font-size:var(--ui-font-label);line-height:1.8;color:var(--ui-muted)}.season-opening-intro>small{font-size:var(--ui-font-caption)}.season-opening-intro button{width:min(360px,100%);min-height:48px}.opening-intro-rule{display:flex;align-items:center;gap:18px;border-block:1px solid #53695e;padding:14px}.opening-intro-rule strong{font-size:28px;color:var(--ui-accent-text)}.opening-intro-rule span{font-size:var(--ui-font-body)}
.opening-roster-screen{height:100dvh;max-width:1280px;margin:auto;padding:18px 22px;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto auto;gap:var(--ui-space-4);background:var(--ui-surface)}.opening-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-4)}.opening-heading h1{font-size:26px;letter-spacing:-.7px;margin-top:5px}.opening-heading small{font-size:var(--ui-font-caption);color:var(--ui-success)}.opening-heading>button{font-size:var(--ui-font-small)}.opening-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ui-space-3)}.opening-counts>div{display:flex;align-items:center;justify-content:space-between;background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);padding:9px 14px;gap:var(--ui-space-3)}.opening-counts span{font-size:var(--ui-font-small);color:var(--ui-muted)}.opening-counts strong{font-size:22px;color:var(--ui-accent-text);white-space:nowrap}.opening-counts small{font-size:var(--ui-font-small)}.opening-counts .is-complete{border-color:var(--ui-line-strong);background:var(--ui-surface)}.opening-counts .is-complete strong{color:var(--ui-success)}
.opening-toolbar{display:flex;justify-content:space-between;gap:10px}.opening-toolbar>div{display:flex;gap:5px}.opening-toolbar button{font-size:var(--ui-font-small);min-height:38px;padding:6px 12px}.opening-toolbar button[aria-pressed=true]{background:var(--ui-accent-soft);border-color:var(--ui-line-strong);color:var(--ui-accent-text)}.opening-toolbar input{width:min(300px,40%);font-size:var(--ui-font-small);min-height:38px}.opening-workspace{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:14px}.opening-pool{overflow:auto;min-height:0;overscroll-behavior:contain;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);padding:12px}.opening-pool-note{font-size:var(--ui-font-caption);color:var(--ui-muted);padding-bottom:10px}.opening-player-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-3)}.opening-player{display:flex;justify-content:space-between;align-items:center;gap:9px;border:1px solid var(--ui-line);background:var(--ui-surface);border-radius:var(--ui-radius-card);padding:10px;min-width:0}.opening-player.is-selected{border-color:var(--ui-line-strong);background:var(--ui-surface)}.opening-player>div:first-child{min-width:0}.opening-player-name{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-space-2)}.opening-player-name strong{font-size:var(--ui-font-label);color:var(--ui-success)}.opening-player-name span{font-size:var(--ui-font-xs);color:var(--ui-text)}.opening-player-name b{font-size:var(--ui-font-dense);padding:2px 5px;color:var(--ui-accent-text);background:var(--ui-raised);border-radius:3px}.opening-player small{display:block;font-size:var(--ui-font-xs);color:var(--ui-muted);line-height:1.6;margin-top:3px;overflow-wrap:anywhere}.opening-player-actions{display:flex;flex-direction:column;gap:5px;flex-shrink:0}.opening-player-actions button{min-width:48px;min-height:34px;font-size:var(--ui-font-caption);padding:4px 7px}.opening-player-actions button[aria-pressed=true]{background:var(--ui-warning-bg);color:var(--ui-text);border-color:var(--ui-accent-text)}.opening-player-warning{color:var(--ui-danger)!important;font-size:var(--ui-font-caption)}.opening-summary{overflow:auto;background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);padding:14px}.opening-summary p,.opening-rotation p{font-size:var(--ui-font-caption);color:var(--ui-muted);line-height:1.7;margin:8px 0}.opening-rotation{padding-bottom:10px}.opening-rotation h3{font-size:var(--ui-font-label);color:var(--ui-accent-text)}.opening-rotation>div{display:flex;align-items:center;gap:7px;padding:6px 0;border-bottom:1px solid var(--ui-line)}.opening-rotation>div>span{font-size:var(--ui-font-caption);color:var(--ui-accent-text)}.opening-rotation>div>strong{font-size:var(--ui-font-small);flex:1}.opening-rotation small{font-size:var(--ui-font-dense);color:var(--ui-accent-text)}.opening-rotation button{min-height:30px;min-width:27px;padding:2px 5px;font-size:var(--ui-font-small)}.opening-pool>.opening-rotation{display:none}.opening-validation{font-size:var(--ui-font-caption);line-height:1.5;color:var(--ui-accent-text);min-height:18px}.opening-roster-actions{display:flex;gap:var(--ui-space-3);border-top:1px solid var(--ui-line);padding-top:10px}.opening-roster-actions button{min-height:45px;font-size:var(--ui-font-body)}.opening-roster-actions .primary{margin-left:auto;min-width:230px}.opening-no-players{font-size:var(--ui-font-small);color:var(--ui-muted);padding:20px}
@media(max-width:900px){.opening-player-list{grid-template-columns:1fr}.opening-workspace{grid-template-columns:minmax(0,1fr) 260px}.opening-roster-screen{padding:12px;gap:9px}}
@media(max-width:600px){.season-opening-intro{gap:17px;padding:20px}.season-opening-intro h2{font-size:20px}.season-opening-intro p{font-size:var(--ui-font-small)}.opening-intro-rule{gap:var(--ui-space-4)}.opening-intro-rule span{font-size:var(--ui-font-caption)}.opening-roster-screen{padding:10px 8px;gap:var(--ui-space-3)}.opening-heading h1{font-size:20px}.opening-heading small{font-size:var(--ui-font-xs)}.opening-heading>button{font-size:var(--ui-font-xs);min-height:35px;padding:5px 7px}.opening-counts{gap:var(--ui-space-1)}.opening-counts>div{display:block;text-align:center;padding:6px 3px}.opening-counts span{display:block;font-size:var(--ui-font-xs)}.opening-counts strong{font-size:19px}.opening-counts small{font-size:var(--ui-font-xs)}.opening-toolbar{display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:var(--ui-space-2)}.opening-toolbar>div{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--ui-space-1)}.opening-toolbar button{font-size:var(--ui-font-caption);padding:5px;min-height:35px}.opening-toolbar input{width:100%;min-height:36px}.opening-workspace{display:block}.opening-summary{display:none}.opening-pool{height:100%;padding:8px}.opening-pool>.opening-rotation{display:block}.opening-player{padding:8px}.opening-player-actions button{min-height:37px}.opening-player-name strong{font-size:var(--ui-font-body)}.opening-player small{font-size:var(--ui-font-xs)}.opening-validation{font-size:var(--ui-font-xs);max-height:43px;overflow:auto}.opening-roster-actions{gap:5px;padding-top:7px}.opening-roster-actions button{font-size:var(--ui-font-xs);padding:6px 8px}.opening-roster-actions .primary{min-width:0;flex:1}}
@media(max-height:620px){.season-opening-intro{gap:9px}.season-opening-intro h1{font-size:34px}.season-opening-intro h2{font-size:var(--ui-font-heading)}.season-opening-intro p{font-size:var(--ui-font-caption)}.opening-intro-rule{padding:5px}.season-opening-intro button{min-height:38px}.opening-roster-screen{gap:5px;padding-block:7px}.opening-counts>div{padding:4px}.opening-heading h1{font-size:var(--ui-font-heading)}.opening-roster-actions button{min-height:38px}}

.opening-choice {
  width:min(440px, calc(100% - 24px));
  max-height:calc(100dvh - 24px);
  margin:auto;
  padding:clamp(14px, 4vw, 22px);
  overflow:auto;
  color:var(--ui-text);
  background:var(--ui-surface);
  border:1px solid var(--ui-line-strong);
  border-radius:var(--ui-radius-modal);
}
.opening-choice::backdrop {background:rgba(0,0,0,.55)}
.opening-choice h2 {margin:0; font-size:var(--ui-font-heading)}
.opening-choice p {margin:8px 0 14px; color:var(--ui-muted)}
.opening-choice fieldset {display:grid; gap:8px; padding:0; margin:0; border:0}
.opening-choice legend {position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%)}
.opening-choice label {
  display:grid; grid-template-columns:auto minmax(0, 1fr); align-items:start; gap:10px;
  padding:10px 12px; border:1px solid var(--ui-line); border-radius:var(--ui-radius-card);
  cursor:pointer;
}
.opening-choice label:has(:checked) {border-color:var(--ui-accent-text); background:var(--ui-accent-soft)}
.opening-choice label:focus-within {outline:2px solid var(--ui-accent-text); outline-offset:2px}
.opening-choice input {width:16px; height:16px; min-height:0; margin:3px 0 0; accent-color:var(--ui-accent)}
.opening-choice strong,.opening-choice small {display:block}
.opening-choice small {margin-top:4px; color:var(--ui-muted)}
.opening-choice footer {display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:14px}
.opening-choice footer button {min-height:44px}

.setup-disclaimer {
  grid-column:1/-1;
  margin:auto 0 0;
  color:var(--ui-muted);
  font-size:var(--ui-font-caption);
  line-height:1.55;
  text-align:center;
  text-wrap:balance;
  word-break:keep-all;
}
.setup-save-options {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--ui-space-3);
}
@media(max-width:350px) {
  .setup-disclaimer {font-size:var(--ui-font-xs)}
}

@media(max-width:600px) and (max-height:650px) {
  .setup-mode .setup-screen {padding-block:12px}
  .setup-mode .setup-preview {order:1; margin-block:4px; padding-block:8px}
  .setup-mode .setup-preview-row {margin-block:2px}
  .setup-mode .setup-screen h1 {margin-block:2px}
  .setup-mode .setup-save-launch {order:2}
  .setup-mode .setup-disclaimer {order:3}
}

/* source: implementation/playable-v0.1/player-detail.css */
.player-detail-dialog{box-sizing:border-box;width:min(800px,calc(100vw - 20px));max-height:92dvh;padding:0;border:1px solid #52716f;border-radius:var(--ui-radius-modal);background:#10252f;color:#e5eeec;box-shadow:0 18px 60px #0009;overscroll-behavior:contain}.player-detail-dialog::backdrop{background:#0009}.player-detail-dialog[open]{display:flex;flex-direction:column}.player-detail-dialog>header,.player-detail-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;flex-shrink:0;background:#163039}.player-detail-dialog>header{border-bottom:1px solid #436461}.player-detail-dialog>header h2{font-size:var(--ui-font-label);margin:0}.player-detail-dialog>header button,.player-detail-dialog>footer button{min-height:36px;padding:6px 13px;border:1px solid #567470;border-radius:var(--ui-radius-card);background:#203e46;color:#eff7f4;font:inherit;font-size:var(--ui-font-small);cursor:pointer}.player-detail-dialog>footer{border-top:1px solid #436461;font-size:var(--ui-font-caption);color:#b4cbc5}.player-detail-dialog .player-detail-body{padding:16px;overflow:auto;min-height:0;overscroll-behavior:contain}.player-detail{font-size:var(--ui-font-small);line-height:1.5;min-width:0}.player-detail *{box-sizing:border-box}.player-detail p{margin:6px 0}.player-detail h4{font-size:var(--ui-font-small);margin:0 0 9px;color:#c0d7ce}.player-detail-identity{display:flex;justify-content:space-between;align-items:start;gap:var(--ui-space-3)}.player-detail-identity small,.player-detail-identity>span{font-size:var(--ui-font-caption);color:#b5cec5}.player-detail-identity h3{font-size:23px;margin:3px 0;color:#ffdf9e;overflow-wrap:anywhere}.player-detail-identity p{font-size:var(--ui-font-small);color:#d0dedb}.player-detail-identity>span{white-space:nowrap}.player-detail-duty{display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0;color:#bbd1c9}.player-detail-duty b{margin-left:5px;color:#ebd49d}.player-energy-panel{padding:13px;background:#193740;border:1px solid #4b6c64;border-radius:var(--ui-radius-modal);margin:12px 0}.player-energy-heading{display:flex;align-items:center;gap:var(--ui-space-4)}.player-energy-heading strong{font-size:25px;color:#96e1b9;line-height:1.2}.player-energy-heading strong small{font-size:var(--ui-font-small)}.player-energy-heading>b{margin-left:auto;font-size:var(--ui-font-caption);color:#f5d69a}.player-energy-track{height:7px;background:#4d6561;border-radius:var(--ui-radius-control);overflow:hidden;margin:8px 0;display:flex;justify-content:flex-end}.player-energy-track span{display:block;height:100%;background:#82d9b1}.player-energy-panel>p{color:#c8dbd3;font-size:var(--ui-font-caption)}.player-recovery-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:12px 0 8px;text-align:center}.player-recovery-row span{padding:5px;background:#122b33;border-radius:var(--ui-radius-control);font-size:var(--ui-font-xs);color:#adccc0}.player-recovery-row b{display:block;font-size:var(--ui-font-body);color:#e4eddf}.player-energy-panel>small{display:block;font-size:var(--ui-font-xs);color:#abc9bb}.player-detail-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ui-space-3);margin:14px 0}.player-stat-section{padding:11px;background:#142e37;border:1px solid #355450;border-radius:var(--ui-radius-card);min-width:0}.player-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-3)}.player-stat-grid span{font-size:var(--ui-font-xs);color:#aec7bf;display:block}.player-stat-grid b{font-size:var(--ui-font-heading);color:#f4e2b6;font-variant-numeric:tabular-nums;display:block}.player-stat-counts{font-size:var(--ui-font-xs);color:#b9cfc7;overflow-wrap:anywhere}.player-detail-empty{color:#9db7af;font-size:var(--ui-font-small)}.player-detail-history{margin:16px 0}.player-detail-table{max-width:100%;overflow-x:auto;border:1px solid #3c5d56;border-radius:var(--ui-radius-card)}.player-detail-table table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:var(--ui-font-caption);font-variant-numeric:tabular-nums}.player-detail-table th,.player-detail-table td{padding:7px 8px;border-bottom:1px solid #324f49;text-align:center}.player-detail-table thead{color:#c4d8ce;background:#1c3b41}.player-detail-table tbody th{font-weight:normal;color:#e4dfc3}.player-detail-table th small{display:block;font-size:var(--ui-font-dense);color:#9ebbb0}.player-detail-abilities{padding:10px 0;border-top:1px solid #40625b}.player-detail-abilities summary{cursor:pointer;font-size:var(--ui-font-small);color:#d9d9b8;min-height:28px}.player-detail-ratings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ui-space-2);margin:8px 0;font-size:var(--ui-font-caption);color:#bad1c5}.player-detail-ratings span{display:flex;justify-content:space-between;padding:6px;background:#1a353c;border-radius:var(--ui-radius-small)}.player-detail-note,.player-detail-rest{font-size:var(--ui-font-xs);color:#a6bfb5}.player-detail-rest{padding:9px;border:1px solid #36574e;border-radius:var(--ui-radius-control)}button.player-detail-link{font-size:var(--ui-font-caption);min-height:30px;padding:5px 9px;color:#f0d79c}
@media(max-width:600px){.player-detail-dialog{width:calc(100vw - 12px);max-height:96dvh;border-radius:var(--ui-radius-modal)}.player-detail-dialog>header,.player-detail-dialog>footer{padding:8px 10px}.player-detail-dialog .player-detail-body{padding:10px}.player-detail-identity h3{font-size:21px}.player-detail-identity>span{font-size:var(--ui-font-xs)}.player-detail-stats{grid-template-columns:1fr;gap:7px}.player-stat-section{padding:9px}.player-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.player-stat-grid b{font-size:var(--ui-font-subtitle)}.player-stat-counts{margin-bottom:0!important}.player-energy-panel{padding:10px}.player-energy-heading{gap:var(--ui-space-3);font-size:var(--ui-font-caption)}.player-energy-heading strong{font-size:22px}.player-energy-heading>b{font-size:var(--ui-font-xs)}.player-detail-ratings{grid-template-columns:repeat(2,minmax(0,1fr))}.player-detail-table th,.player-detail-table td{padding:6px;font-size:var(--ui-font-xs)}.player-detail-dialog>footer{gap:5px;font-size:var(--ui-font-xs)}}

.player-catcher-stats{padding:10px 12px;border:1px solid #5b7563;border-radius:var(--ui-radius-card);background:#1b3538;margin:10px 0}.player-catcher-stats p{font-size:var(--ui-font-small)}.player-catcher-stats small{font-size:var(--ui-font-xs);color:#b9cbbc}
.player-detail-dialog>footer{flex-wrap:wrap}.player-detail-dialog>footer>span{flex:1 1 100%}.player-detail-dialog>footer button[hidden]{display:none}.arsenal-editor input{box-sizing:border-box;width:80px;min-width:60px}.arsenal-editor th,.arsenal-editor td{white-space:nowrap}.arsenal-editor input:invalid{border-color:#ef9b8e}.arsenal-editor [data-pitch-grade]{font-weight:700;color:#f1d096}
@media(max-width:530px){.player-detail-dialog>footer button{flex:1;font-size:var(--ui-font-caption);padding:6px}.arsenal-editor input{width:65px}}
.player-detail-identity .player-generated{display:inline-block;margin-inline-start:.45em;padding:0 .4em;border:1px solid var(--ui-line-strong);border-radius:var(--ui-radius-control);font-size:inherit;line-height:1.35;vertical-align:baseline}

/* source: implementation/playable-v0.1/product-flow.css */
.setup-preview{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:var(--ui-radius-modal);background:var(--ui-surface)}
.setup-preview h2{font-size:var(--ui-font-label);margin:0 0 8px}.setup-preview-row{display:flex;gap:var(--ui-space-3);align-items:center;margin:6px 0}.setup-preview-row>small{width:28px;flex-shrink:0;color:var(--muted)}
.setup-preview-row>span{flex:1;min-width:0;text-align:center;font-size:var(--ui-font-body)}.setup-preview-row b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.setup-preview-row em{font-size:var(--ui-font-xs);color:var(--muted);font-style:normal}
.lineup-copy{font-size:var(--ui-font-caption);padding:6px 8px;min-height:32px}.lineup-data-toolbar{flex-wrap:wrap}
.pregame-lineup-backdrop{position:fixed;inset:0;z-index:55;background:color-mix(in srgb,var(--ui-page) 73.33%,transparent)}.pregame-lineup-sheet{position:fixed;z-index:56;inset:3vh max(12px,calc((100vw - 1080px)/2));display:flex;flex-direction:column;min-height:0;background:var(--ui-surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.pregame-lineup-sheet>header{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.pregame-lineup-sheet h2{font-size:var(--ui-font-heading);margin:0}.pregame-lineup-content{flex:1;min-height:0;overflow:auto;padding:8px 12px}.pregame-lineup-content .lineup-workspace{height:100%;min-height:0}.pregame-lineup-sheet .lineup-context{display:none}.pregame-lineup-sheet .order-layout{grid-template-columns:1fr}
.pregame-lineup-sheet>footer{display:flex;gap:var(--ui-space-3);padding:10px 12px;flex-shrink:0;border-top:1px solid var(--line)}.pregame-lineup-sheet>footer button{flex:1;min-height:44px}
.next-game-card .next-duel{display:flex;align-items:center;justify-content:space-around;font-size:22px;padding:18px 0}.next-game-card dl{display:grid;grid-template-columns:100px 1fr;gap:10px}.next-game-card dt{color:var(--muted)}.next-game-card dd{margin:0;font-weight:600}
.record-table-scroll th button{font:inherit;color:inherit;white-space:nowrap;min-height:34px;padding:4px 6px;background:transparent;border:0}.record-table-scroll th[aria-sort]:not([aria-sort=none]){color:var(--mint)}
.record-controls{display:flex;gap:var(--ui-space-3);flex-wrap:wrap;align-items:center}.record-controls label{font-size:var(--ui-font-caption)}.record-controls select{padding:7px;min-height:36px}.record-controls input{width:150px;max-width:100%}
@media(max-width:640px){.pregame-lineup-sheet{inset:0;border-radius:0}.pregame-lineup-sheet>header{padding:10px 12px}.pregame-lineup-content{padding:4px 6px}.setup-preview-row>span{font-size:var(--ui-font-small)}.setup-preview-row{gap:var(--ui-space-1)}.record-controls input{width:130px}}

.setup-club-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ui-space-3);margin-top:10px;padding-top:8px;border-top:1px solid var(--ui-line)}.setup-club-summary>span{display:flex;justify-content:space-between;gap:5px;font-size:var(--ui-font-caption);color:var(--ui-muted)}.setup-club-summary b{color:var(--ui-text);font-size:var(--ui-font-body);font-variant-numeric:tabular-nums}.setup-club-summary>small{grid-column:1/-1;font-size:var(--ui-font-xs);color:var(--ui-muted)}
@media(max-width:400px){.setup-club-summary{gap:5px}.setup-club-summary>span{font-size:var(--ui-font-xs)}.setup-club-summary b{font-size:var(--ui-font-small)}}

/* source: implementation/playable-v0.1/player-detail-theme.css */
/* Shared player-card detail presentation in host and field dialogs. */
.step-up-panel{display:grid;gap:var(--ui-space-2);min-width:0;padding:var(--ui-space-4);margin-block:var(--ui-space-3);border:1px solid var(--ui-border);border-radius:var(--ui-radius-card);background:var(--ui-surface);color:var(--ui-text)}
.step-up-panel header,.step-up-goal-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-2)}
.step-up-panel :is(h4,h5,p,ul){margin:0}
.step-up-panel :is(p,small,span){color:var(--ui-muted);font-size:var(--ui-font-caption)}
.step-up-panel ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:var(--ui-space-2);padding:0;list-style:none}
.step-up-panel li{display:grid;align-content:start;gap:var(--ui-space-2);padding:var(--ui-space-2);border:1px solid var(--ui-border);border-radius:var(--ui-radius-card)}
.step-up-panel progress{display:block;width:100%;height:7px;accent-color:var(--ui-success)}
.step-up-panel button{width:100%}
.step-up-panel .step-up-feedback{color:var(--ui-text)}
.player-detail-dialog{box-sizing:border-box;width:min(800px,calc(100vw - 20px));max-height:92dvh;padding:0;border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal);background:var(--ui-surface);color:var(--ui-success);box-shadow:0 18px 60px #0009;overscroll-behavior:contain}.player-detail-dialog::backdrop{background:color-mix(in srgb,var(--ui-page) 60.00%,transparent)}.player-detail-dialog[open]{display:flex;flex-direction:column}.player-detail-dialog>header,.player-detail-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;flex-shrink:0;background:var(--ui-surface)}.player-detail-dialog>header{border-bottom:1px solid var(--ui-line)}.player-detail-dialog>header h2{font-size:var(--ui-font-label);margin:0}.player-detail-dialog>header button,.player-detail-dialog>footer button{min-height:36px;padding:6px 13px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);background:var(--ui-raised);color:var(--ui-success);font:inherit;font-size:var(--ui-font-small);cursor:pointer}.player-detail-dialog>footer{border-top:1px solid var(--ui-line);font-size:var(--ui-font-caption);color:var(--ui-muted)}.player-detail-dialog .player-detail-body{padding:16px;overflow:auto;min-height:0;overscroll-behavior:contain}.player-detail{font-size:var(--ui-font-small);line-height:1.5;min-width:0}.player-detail *{box-sizing:border-box}.player-detail p{margin:6px 0}.player-detail h4{font-size:var(--ui-font-small);margin:0 0 9px;color:var(--ui-success)}.player-detail-identity{display:flex;justify-content:space-between;align-items:start;gap:var(--ui-space-3)}.player-detail-identity small,.player-detail-identity>span{font-size:var(--ui-font-caption);color:var(--ui-success)}.player-detail-identity h3{font-size:23px;margin:3px 0;color:var(--ui-accent-text);overflow-wrap:anywhere}.player-detail-identity p{font-size:var(--ui-font-small);color:var(--ui-text)}.player-detail-identity>span{white-space:nowrap}.player-detail-duty{display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0;color:var(--ui-text)}.player-detail-duty b{margin-left:5px;color:var(--ui-accent-text)}.player-energy-panel{padding:13px;background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal);margin:12px 0}.player-energy-heading{display:flex;align-items:center;gap:var(--ui-space-4)}.player-energy-heading strong{font-size:25px;color:var(--ui-success);line-height:1.2}.player-energy-heading strong small{font-size:var(--ui-font-small)}.player-energy-heading>b{margin-left:auto;font-size:var(--ui-font-caption);color:var(--ui-accent-text)}.player-energy-track{height:7px;background:var(--ui-hover);border-radius:var(--ui-radius-control);overflow:hidden;margin:8px 0;display:flex;justify-content:flex-end}.player-energy-track span{display:block;height:100%;background:var(--ui-accent-soft)}.player-energy-panel>p{color:var(--ui-success);font-size:var(--ui-font-caption)}.player-recovery-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:12px 0 8px;text-align:center}.player-recovery-row span{padding:5px;background:var(--ui-surface);border-radius:var(--ui-radius-control);font-size:var(--ui-font-xs);color:var(--ui-success)}.player-recovery-row b{display:block;font-size:var(--ui-font-body);color:var(--ui-success)}.player-energy-panel>small{display:block;font-size:var(--ui-font-xs);color:var(--ui-success)}.player-detail-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ui-space-3);margin:14px 0}.player-stat-section{padding:11px;background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);min-width:0}.player-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-3)}.player-stat-grid span{font-size:var(--ui-font-xs);color:var(--ui-muted);display:block}.player-stat-grid b{font-size:var(--ui-font-heading);color:var(--ui-accent-text);font-variant-numeric:tabular-nums;display:block}.player-stat-counts{font-size:var(--ui-font-xs);color:var(--ui-muted);overflow-wrap:anywhere}.player-detail-empty{color:var(--ui-muted);font-size:var(--ui-font-small)}.player-detail-history{margin:16px 0}.player-detail-table{max-width:100%;overflow-x:auto;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card)}.player-detail-table table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:var(--ui-font-caption);font-variant-numeric:tabular-nums}.player-detail-table th,.player-detail-table td{padding:7px 8px;border-bottom:1px solid var(--ui-line);text-align:center}.player-detail-table thead{color:var(--ui-success);background:var(--ui-surface)}.player-detail-table tbody th{font-weight:normal;color:var(--ui-accent-text)}.player-detail-table th small{display:block;font-size:var(--ui-font-dense);color:var(--ui-muted)}.player-detail-abilities{padding:10px 0;border-top:1px solid var(--ui-line)}.player-detail-abilities summary{cursor:pointer;font-size:var(--ui-font-small);color:var(--ui-accent-text);min-height:28px}.player-detail-ratings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ui-space-2);margin:8px 0;font-size:var(--ui-font-caption);color:var(--ui-text)}.player-detail-ratings span{display:flex;justify-content:space-between;padding:6px;background:var(--ui-surface);border-radius:var(--ui-radius-small)}.player-detail-note,.player-detail-rest{font-size:var(--ui-font-xs);color:var(--ui-muted)}.player-detail-rest{padding:9px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control)}button.player-detail-link{font-size:var(--ui-font-caption);min-height:30px;padding:5px 9px;color:var(--ui-accent-text)}
@media(max-width:600px){.player-detail-dialog{width:calc(100vw - 12px);max-height:96dvh;border-radius:var(--ui-radius-modal)}.player-detail-dialog>header,.player-detail-dialog>footer{padding:8px 10px}.player-detail-dialog .player-detail-body{padding:10px}.player-detail-identity h3{font-size:21px}.player-detail-identity>span{font-size:var(--ui-font-xs)}.player-detail-stats{grid-template-columns:1fr;gap:7px}.player-stat-section{padding:9px}.player-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.player-stat-grid b{font-size:var(--ui-font-subtitle)}.player-stat-counts{margin-bottom:0!important}.player-energy-panel{padding:10px}.player-energy-heading{gap:var(--ui-space-3);font-size:var(--ui-font-caption)}.player-energy-heading strong{font-size:22px}.player-energy-heading>b{font-size:var(--ui-font-xs)}.player-detail-ratings{grid-template-columns:repeat(2,minmax(0,1fr))}.player-detail-table th,.player-detail-table td{padding:6px;font-size:var(--ui-font-xs)}.player-detail-dialog>footer{gap:5px;font-size:var(--ui-font-xs)}}

.player-catcher-stats{padding:10px 12px;border:1px solid var(--ui-line-strong);border-radius:var(--ui-radius-card);background:var(--ui-surface);margin:10px 0}.player-catcher-stats p{font-size:var(--ui-font-small)}.player-catcher-stats small{font-size:var(--ui-font-xs);color:var(--ui-muted)}
.player-detail-dialog>footer{flex-wrap:wrap}.player-detail-dialog>footer>span{flex:1 1 100%}.player-detail-dialog>footer button[hidden]{display:none}.arsenal-editor input{box-sizing:border-box;width:80px;min-width:60px}.arsenal-editor th,.arsenal-editor td{white-space:nowrap}.arsenal-editor input:invalid{border-color:var(--ui-danger)}.arsenal-editor [data-pitch-grade]{font-weight:700;color:var(--ui-accent-text)}
@media(max-width:530px){.player-detail-dialog>footer button{flex:1;font-size:var(--ui-font-caption);padding:6px}.arsenal-editor input{width:65px}}

/* v341 compact, independent manipulation surfaces */
.today-play-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.today-play-actions>[data-action=pregame-open]{grid-column:1/-1}.today-play-actions button{min-height:46px;width:100%;font:14px var(--ui-display)}
.coached-ability{color:var(--ui-accent-text);text-shadow:0 0 5px color-mix(in srgb,var(--ui-accent) 30%,transparent)}.coaching-row-role .today-starter{display:block;font-size:var(--ui-font-xs);margin-top:4px}
.arsenal-edit-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,1fr);align-items:center;gap:10px;margin:8px 0}.arsenal-edit-row input,.arsenal-edit-row select{width:100%;min-width:0;box-sizing:border-box}.arsenal-edit-row label{font-size:var(--ui-font-small)}
.player-card-abilities{padding:16px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal);background:linear-gradient(135deg,var(--ui-accent-soft),var(--ui-surface));margin:12px 0}.player-card-abilities>small{font:10px var(--ui-display);letter-spacing:.15em;color:var(--ui-accent-text)}.player-card-rating-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ui-space-3);margin-top:12px}.player-card-rating{position:relative;padding:8px 6px 12px;text-align:center;background:var(--ui-raised);border-radius:var(--ui-radius-control);overflow:hidden}.player-card-rating>span{display:block;font-size:var(--ui-font-caption);color:var(--ui-muted)}.player-card-rating>strong{font:26px var(--ui-display);display:block;margin-top:4px}.player-card-rating i{position:absolute;height:3px;bottom:0;left:0;width:var(--rating);background:var(--ui-accent)}.player-card-pitches{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;font-size:var(--ui-font-small)}.player-card-pitches>span{padding:5px 8px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-small)}.player-card-season-first{display:grid;grid-template-columns:1fr 1fr;gap:var(--ui-space-4)}
@media(max-width:600px){.player-card-rating-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.player-card-season-first{grid-template-columns:1fr}.player-card-rating>strong{font-size:23px}}
.player-development-delta {
  display: block;
  margin-top: var(--ui-space-1);
  color: var(--ui-success);
  font: var(--ui-font-caption)/1.4 var(--ui-font-system);
  font-weight: 600;
}
.player-rating-sources {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2px;
  word-break: keep-all;
}
.player-rating-sources:empty { display: none; }
.player-detail .player-staff-delta {
  color: var(--ui-success);
  font: var(--ui-font-caption)/1.4 var(--ui-font-system);
}
.player-detail .player-staff-delta.is-negative { color: var(--ui-danger); }
@media (max-width:360px) {
  .player-card-rating { padding-inline: var(--ui-space-1); }
  .player-detail .player-rating-sources > small { font-size: var(--ui-font-xs); }
}

/* source: implementation/playable-v0.1/studio-theme.css */
/* Shared presentation tokens. This stylesheet belongs to the host, not the field iframe. */
.manager-header{background:#181c21;color:#f3f1e9;border-bottom:3px solid var(--ui-accent);padding-inline:26px}
.manager-header>strong{font-size:var(--ui-font-heading);letter-spacing:.07em}
.manager-header strong span{color:#f3f1e9}
.manager-header .manager-header-context{color:#b9c1c6}
.manager-header .integrated-version,.manager-header .fullscreen-toggle{background:#232a31;color:#f3f1e9;border-color:#56606b}
.manager-header .fullscreen-toggle[aria-pressed=true]{background:var(--ui-accent);color:var(--ui-on-accent);border-color:var(--ui-accent)}
.manager-content{background:var(--ui-page);padding:22px 26px}
.manager-nav{background:var(--ui-surface);border-color:var(--ui-line)}
.manager-nav button{color:var(--ui-muted);border-radius:3px}
.manager-nav button.selected{color:var(--ui-on-accent);background:var(--ui-accent)}
.manager-nav button>span{font-family:system-ui,sans-serif;font-size:19px}
.club-dashboard{padding:4px 0 22px;color:var(--ui-text)}
.club-heading{padding-bottom:18px;border-bottom:1px solid var(--ui-line);margin-bottom:22px}
.club-heading h1{font-size:34px;letter-spacing:-.025em;line-height:1.2}
.club-heading h1>span{font-family:system-ui,sans-serif;color:var(--ui-muted)}
.club-standing>b{color:var(--ui-accent-page)}
.club-dashboard-grid{grid-template-columns:minmax(0,1fr) 300px;gap:22px}
.today-card{background:#191e24;color:#f4f2e9;border:0;border-top:4px solid var(--ui-accent);padding:23px 25px;border-radius:3px}
.today-card .today-card-head,.today-card .today-card-head>span,.today-card .today-card-head>small,.today-card .today-duel small,.today-card .home-next,.today-card .home-energy{color:#bec6cc}
.today-card .today-duel>strong,.today-card .today-starter b{color:#f4f2e9}
.today-card .today-duel>b{color:#f1d39b}
.today-duel{margin:26px 0;gap:var(--ui-space-5)}.today-duel>strong{font-size:30px;line-height:1.3}
.today-actions{padding-top:17px;margin-top:20px;border-top:1px solid #3c444d;flex-wrap:wrap}
.today-actions button{font-size:var(--ui-font-label);min-height:46px;background:#252e37;color:#f4f2e9;border-color:#58636f}
.today-actions button.primary{background:var(--ui-accent);color:var(--ui-on-accent);border-color:var(--ui-accent)}
.club-shortcuts>button{background:var(--ui-surface);border-color:var(--ui-line);border-radius:3px;min-height:70px}
.club-shortcuts b{font-weight:400;font-family:var(--ui-display);font-size:var(--ui-font-label)}.club-shortcuts small{color:var(--ui-muted);font-family:system-ui,sans-serif}
.club-calendar,.home-recent,.home-ranks{background:var(--ui-surface);border:1px solid var(--ui-line)}
.month-header h2{font-size:25px}.month-day{background:var(--ui-raised);color:var(--ui-text);border-radius:2px}
.month-day.is-past{background:var(--ui-surface)}
.month-day.is-today,.month-day.is-past.is-today,.month-day:hover,.month-day.is-selected{background:var(--ui-accent-soft);border-color:var(--ui-accent-text);color:var(--ui-text)}
.month-day.is-today .month-date>i,.month-league-game.is-mine{color:var(--ui-accent-text)}
.home-rank-table .my-club{background:var(--ui-accent-soft);color:var(--ui-text)}
.home-recent h2,.home-ranks h2{font-size:var(--ui-font-subtitle)}.home-recent time,.home-empty,.home-rank-table small{color:var(--ui-muted)}
.home-energy>i{background:linear-gradient(to right,var(--ui-line) calc(100% - var(--energy)),#a7c58c calc(100% - var(--energy)))}
.order-card,.staff-card,.bench-mini{background:var(--ui-surface);border-color:var(--ui-line)}
.order-no{color:var(--ui-accent-text);background:var(--ui-accent-soft);font-family:var(--ui-display);font-weight:400}
.order-card strong,.staff-card strong,.bench-mini strong{color:var(--ui-text)}
.detailed-lineup .order-card strong{font-size:var(--ui-font-label)}.detailed-lineup .staff-card strong{font-size:var(--ui-font-label)}
.scheduled-starter{border-color:var(--ui-accent-text)!important;background:var(--ui-accent-soft)!important}
.today-starter{color:var(--ui-accent-text);font-family:system-ui,sans-serif}
/* The game card keeps a dark surface in both themes. Its label needs card ink. */
.today-card .today-starter{color:#bec6cc}
.detailed-lineup .fit-mismatch,.fit-mismatch{background:var(--ui-danger-bg)!important;border-color:var(--ui-danger)!important;box-shadow:inset 3px 0 var(--ui-danger)}
.fit-error b{background:var(--ui-danger);color:var(--ui-danger-bg)}
.fit-error>span,.fit-note.fit-error{color:var(--ui-danger)}
.detailed-lineup .batting-metrics,.detailed-lineup .ability-metrics,.batting-hand,.pitcher-aptitude{color:var(--ui-muted)}
.fit-note.fit-subtle{color:var(--ui-muted)!important;border-color:var(--ui-line-strong)}
/* The real stadium art is always green; keep its labels independent of page mode. */
.lineup-field-art .stadium-position>button{background:#183a35f5;color:#fff7e7;border-color:#a7b9ab}
.lineup-field-art .stadium-identity strong,.lineup-field-art .stadium-identity b,.lineup-field-art .stadium-fit{color:#fff7e7}
.lineup-field-art .stadium-position.fit-mismatch,.lineup-field-art .stadium-position.fit-mismatch>button{background:#572330!important;color:#fff1f2}
.lineup-field-art .stadium-position.fit-mismatch .stadium-fit{color:#ffd3db}
.lineup-field-art .stadium-position .drag-handle{background:#183a35;color:#f3f1e9}
.lineup-field-links line{stroke:#c9d4c9}.lineup-field-links circle{fill:#e5d1a0}
.match-sheet,.pregame-lineup-sheet,.lineup-library,.player-detail-card{background:var(--ui-surface);color:var(--ui-text);border-color:var(--ui-line)}
.sheet-header,.sheet-footer,.pregame-lineup-sheet>header,.pregame-lineup-sheet>footer{background:var(--ui-raised);border-color:var(--ui-line)}
.match-sheet h2,.pregame-lineup-sheet h2{font-size:24px;letter-spacing:-.02em}
.toast{background:var(--ui-surface);color:var(--ui-text);border-left:4px solid var(--ui-accent);border-color:var(--ui-line);border-left-color:var(--ui-accent)}
.toast.error{background:var(--ui-danger-bg);color:var(--ui-danger);border-color:var(--ui-danger)}
.settings-hub{height:auto;min-height:100%;justify-content:flex-start;display:flex;flex-direction:column;gap:var(--ui-space-6);max-width:760px;padding:8px 0 28px}
.manager-content:has(.settings-hub){overflow-y:auto;overscroll-behavior:contain}
.settings-hub>h2{font-size:29px}.settings-hub>p{display:block}
.settings-tiles>button{background:var(--ui-surface);border-color:var(--ui-line);font-size:var(--ui-font-label);min-height:70px;border-radius:var(--ui-radius-small)}
.settings-danger{padding:18px;border-color:var(--ui-danger);background:var(--ui-danger-bg)}
.settings-danger p,.settings-danger h3{color:var(--ui-danger)}
.appearance-settings{padding:20px;background:var(--ui-surface);border:1px solid var(--ui-line);border-top:3px solid var(--ui-accent);border-radius:var(--ui-radius-small)}
.appearance-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--ui-space-4);flex-wrap:wrap;margin-bottom:18px}
.appearance-heading h3{font-size:20px}.appearance-heading>span{font-size:var(--ui-font-small);color:var(--ui-muted)}
.appearance-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--ui-space-5)}
.appearance-fields label{font-size:var(--ui-font-body);min-width:0;color:var(--ui-muted)}
.appearance-fields select{width:100%;min-height:44px}
.appearance-custom{grid-column:1/-1;grid-template-columns:1fr 68px;align-items:center;gap:var(--ui-space-4)}
.appearance-custom[hidden]{display:none!important}.appearance-custom input{padding:3px;height:44px;width:68px}
.appearance-preview{display:flex;align-items:center;gap:var(--ui-space-5);margin-top:20px;flex-wrap:wrap}
.appearance-preview p{flex:1 1 180px;font-size:var(--ui-font-small);color:var(--ui-muted);line-height:1.7}
.appearance-settings>small{font-size:var(--ui-font-caption);line-height:1.7;display:block;margin-top:15px;color:var(--ui-muted)}
.appearance-preview>button{min-height:44px}
/* Mobile records: native fields may shrink, labels wrap, searches occupy their own row. */
.records-workspace,.record-workspace,.record-filters,.record-toolbar,.record-search,.record-search-row,.records-filter-panel{min-width:0}
.records-workspace label,.record-workspace label{min-width:0;max-width:100%;overflow-wrap:anywhere}
.records-workspace input,.records-workspace select,.record-workspace input,.record-workspace select{min-width:0;width:100%;max-width:100%;box-sizing:border-box}
.records-workspace{grid-template-rows:auto auto minmax(100px,1fr) auto;gap:14px;min-height:0}
.records-workspace>.workspace-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:18px}
.record-controls{display:grid;grid-template-columns:minmax(100px,1fr) minmax(120px,1.2fr);gap:var(--ui-space-4);align-items:end;min-width:0}
.record-controls label{font-size:var(--ui-font-small);line-height:1.5;white-space:normal;gap:var(--ui-space-2);min-width:0}
.record-controls select,.record-controls input{min-height:44px;width:100%;margin:0}
.record-table-scroll td:first-child button,.setup-preview-row b{font-family:var(--ui-display);font-weight:400;font-synthesis:none}
.record-score,.record-footer,.workspace-toolbar{min-width:0;flex-wrap:wrap}
.record-score>*,.record-footer>*{min-width:0;max-width:100%}
.record-table-scroll{background:var(--ui-surface);border-color:var(--ui-line)}
.record-table-scroll th{background:var(--ui-raised);color:var(--ui-muted)}
.record-table-scroll td:first-child{background:var(--ui-surface);color:var(--ui-text)}
.setup-screen h1{letter-spacing:-.025em;font-size:38px}.setup-preview{border-top:3px solid var(--ui-accent);background:var(--ui-surface)}
.setup-mode .shell{overflow-y:auto;overscroll-behavior:contain}
.setup-screen{height:auto;min-height:calc(100svh - 65px);justify-content:flex-start;padding:24px 0}
.setup-screen>*{flex-shrink:0}
.setup-screen>.primary{font-size:var(--ui-font-heading)}.brand strong{font-family:var(--ui-display);font-weight:400}
/* The protected stadium lives inside the iframe; host chrome shares navigation. */
.match-mode .integrated-play{display:grid;grid-template-rows:58px minmax(0,1fr) calc(60px + env(safe-area-inset-bottom));background:var(--ui-page);color:var(--ui-text);height:100dvh;max-height:100dvh;overflow:hidden}
.match-mode .integrated-toolbar{grid-row:1;grid-column:1/-1;min-height:0;background:#181c21;color:#f3f1e9;border-bottom:3px solid var(--ui-accent);padding:6px 20px}
.match-mode .integrated-toolbar .integrated-title{font-family:var(--ui-display);font-weight:400;font-size:var(--ui-font-subtitle);max-width:none}
.match-mode .integrated-toolbar .manager-header-controls{margin-left:auto}
.match-mode #engineFrame{grid-row:2;grid-column:1;display:block;width:100%;height:100%;min-height:0;min-width:0}
.match-mode .integrated-play>.manager-nav{grid-row:3;grid-column:1;min-height:0}
@media(min-width:1100px){
 .manager-app{grid-template-columns:148px minmax(0,1fr);grid-template-rows:58px minmax(0,1fr);max-width:1600px}
 .manager-header{grid-column:1/-1;grid-row:1}
 .manager-content{grid-column:2;grid-row:2}
 .manager-nav{grid-column:1;grid-row:2;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:var(--ui-space-3);padding:25px 12px;border-top:0;border-right:1px solid var(--ui-line)}
 .manager-nav button{flex:none;max-width:none;min-height:51px;flex-direction:row;justify-content:flex-start;gap:var(--ui-space-4);padding:12px 14px;font-size:var(--ui-font-label)}
 .manager-nav button>span{font-size:var(--ui-font-heading)}
 .match-mode .integrated-play{grid-template-columns:148px minmax(0,1fr);grid-template-rows:58px minmax(0,1fr)}
 .match-mode #engineFrame{grid-column:2;grid-row:2}
 .match-mode .integrated-play>.manager-nav{grid-column:1;grid-row:2}
}
@media(max-width:850px){.club-dashboard-grid{grid-template-columns:minmax(0,1fr)}.club-secondary{grid-template-columns:1fr 1fr;align-items:start}.home-tools{grid-column:1/-1}}
@media(max-width:700px){
 .manager-content{padding:12px 10px}.manager-header{padding-inline:12px}
 .manager-header>strong{font-size:var(--ui-font-label)}.manager-nav button{font-size:var(--ui-font-small);min-height:48px}
 .club-heading h1{font-size:29px}.club-heading{margin-bottom:16px;padding-bottom:14px;gap:var(--ui-space-3)}
 .club-standing>b{font-size:30px}.today-card{padding:19px 16px}.today-duel>strong{font-size:25px}.today-duel{gap:var(--ui-space-3);margin:23px 0}
 .today-actions button{font-size:var(--ui-font-body);flex:1 1 95px}.today-starter{flex-wrap:wrap;row-gap:12px}
 .club-shortcuts b{font-size:var(--ui-font-body)}.club-shortcuts small{font-size:var(--ui-font-xs);line-height:1.5}
 .club-secondary{grid-template-columns:1fr}.home-tools{grid-column:auto}
 .month-header h2{font-size:24px}.month-filter{flex-wrap:wrap;justify-content:flex-start}
 .settings-hub{gap:18px;padding:8px 4px 25px}.settings-hub>h2{font-size:27px}
 .settings-tiles{gap:9px}.settings-tiles>button{font-size:var(--ui-font-label);padding:13px;min-height:76px}
 .settings-name{flex-wrap:wrap}.appearance-settings{padding:17px 14px}.appearance-fields{grid-template-columns:minmax(0,1fr);gap:13px}
 .detailed-lineup .order-card strong,.detailed-lineup .staff-card strong{font-size:var(--ui-font-body)}
 .record-score{gap:var(--ui-space-3)}.record-score select{flex:1 1 130px}
 .records-workspace>.workspace-toolbar{grid-template-columns:minmax(0,1fr);gap:var(--ui-space-4)}
 .record-controls{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:10px}
 .records-workspace{gap:var(--ui-space-4)}
 .record-footer{gap:var(--ui-space-3)}.record-footer>small{flex:1 1 180px;white-space:normal}
 .workspace-toolbar{gap:7px}.workspace-toolbar .view-switch{min-width:0}
 .records-workspace input[type=search],.records-workspace input[type=text]{font-size:var(--ui-font-subtitle);min-height:44px}
 .match-sheet input[type=text],.match-sheet input[type=search],.match-sheet input[type=number],.match-sheet textarea{font-size:var(--ui-font-subtitle);min-width:0;max-width:100%}
 .match-sheet label{min-width:0}.match-sheet select{max-width:100%;min-width:0}
 .setup-screen h1{font-size:30px}
 .match-mode .integrated-play{grid-template-rows:48px minmax(0,1fr) calc(60px + env(safe-area-inset-bottom))}
 .match-mode .integrated-toolbar{padding:4px 12px!important}
 .match-mode .integrated-toolbar .integrated-title{font-size:var(--ui-font-label);max-width:none;overflow:visible}
}
@media(max-width:359px){.club-heading{flex-wrap:wrap}.club-heading h1{font-size:27px}.today-duel>strong{font-size:22px}.club-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.club-shortcuts>button{min-height:58px}.appearance-preview{gap:10px}.settings-tiles{grid-template-columns:minmax(0,1fr)}}
@media(max-height:540px){.manager-content:has(.records-workspace){overflow:auto}.records-workspace{height:auto;min-height:460px}.records-workspace>.record-table-scroll{max-height:260px}}

/* One continuous ground color, including letterboxing around the SVG. */
:root{--lineup-ground-bg:#102a2d}
.view-field .lineup-board,.lineup-context,.lineup-field-art{background:var(--lineup-ground-bg)}
.view-field .lineup-board{border-color:var(--lineup-ground-bg)}
.lineup-ground-svg rect[fill="url(#lu-stadiumLight)"]{fill:var(--lineup-ground-bg)}
.view-field .lineup-board{align-items:start;justify-items:center}

/* Pitching staff: readable player rows; statistics may wrap naturally. */
.staff-group>h3{font-family:var(--ui-display);font-size:var(--ui-font-subtitle);color:var(--ui-text);font-weight:400;padding:6px 0 10px}
.detailed-lineup .staff-card>span.staff-slot-label{width:62px;min-width:62px;padding:8px 5px;gap:5px;font-size:var(--ui-font-body)}
.detailed-lineup .staff-card>.staff-slot-label>b{font-weight:500;font-size:var(--ui-font-body)}
.detailed-lineup .staff-card>.staff-slot-label>small{font-size:var(--ui-font-small);white-space:normal;line-height:1.4;color:var(--ui-muted)}
.detailed-lineup .staff-card>button{display:flex;align-items:stretch;justify-content:center;padding:10px;gap:7px;min-height:96px}
.detailed-lineup .staff-card .staff-player-heading{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-space-2);min-width:0}
.detailed-lineup .staff-card .staff-player-heading>strong{font-size:var(--ui-font-subtitle);line-height:1.4;color:var(--ui-text);white-space:normal}
.detailed-lineup .staff-card .today-starter{font-size:var(--ui-font-caption);margin-left:0;line-height:1.4;white-space:nowrap}
.detailed-lineup .staff-card .pitcher-aptitude{font-size:var(--ui-font-small);line-height:1.5;white-space:normal;color:var(--ui-muted)}
.detailed-lineup .staff-card .staff-metrics{display:flex;flex-wrap:wrap;align-items:center;gap:3px 9px;white-space:normal;font:12px/1.6 system-ui,sans-serif;color:var(--ui-muted);font-variant-numeric:tabular-nums}
.detailed-lineup .staff-card .staff-metrics>span{display:inline-flex;gap:var(--ui-space-1);white-space:nowrap;font:inherit}
.detailed-lineup .staff-card .staff-metrics b{font-weight:500;color:var(--ui-text)}
.view-pitching .workspace-actions,.view-field .workspace-actions{grid-row:6}
@media(max-width:800px){
 .view-field .lineup-board{align-items:start}
 .view-pitching .staff-cards{grid-template-columns:minmax(0,1fr);gap:var(--ui-space-3)}
 .view-pitching .staff-board.grouped-staff{padding:8px;gap:18px}
 .view-pitching .staff-group>h3{font-size:var(--ui-font-subtitle);margin-bottom:9px}
 .view-pitching .staff-card{min-height:80px;width:100%}
 .view-pitching .staff-card>button{padding:10px 8px;gap:5px;min-height:80px}
 .view-pitching .staff-card .staff-metrics{font-size:var(--ui-font-small);gap:3px 8px}
 .view-pitching .staff-card .staff-player-heading>strong{font-size:var(--ui-font-subtitle)}
}



/* Browser chrome is outside the visual viewport, never count it twice. */
.match-mode .integrated-play,.kbo-fullscreen-locked .integrated-play,.kbo-fullscreen-locked .manager-app{height:var(--app-viewport-height,100dvh);max-height:var(--app-viewport-height,100dvh)}
@media(max-width:750px) and (orientation:portrait){
 .match-mode .integrated-play{grid-template-rows:calc(40px + env(safe-area-inset-top)) minmax(0,1fr) calc(48px + env(safe-area-inset-bottom))}
 .match-mode .integrated-toolbar{padding:calc(3px + env(safe-area-inset-top)) 10px 3px;border-bottom-width:2px}
 .match-mode .integrated-toolbar .integrated-title{font-size:var(--ui-font-body)}
 .match-mode .integrated-toolbar .integrated-version{font-size:var(--ui-font-xs);padding:3px 5px}
 .match-mode .integrated-toolbar .fullscreen-toggle{min-height:32px;min-width:36px;padding:3px 7px}
 .match-mode .integrated-play>.manager-nav{padding:2px 4px calc(2px + env(safe-area-inset-bottom))}
 .match-mode .integrated-play>.manager-nav button{min-height:40px;padding:2px;font-size:var(--ui-font-xs);gap:1px}
}

/* Candidate metrics need real tray height, not clipped text inside the old 78px row. */




/* Shared density for batting-order and pitching rows. */
.detailed-lineup{--lineup-name-size:14px;--lineup-stat-size:10px;--lineup-row-height:48px}
.detailed-lineup .order-card strong,.detailed-lineup.view-pitching .staff-card .staff-player-heading>strong{font-size:var(--lineup-name-size);line-height:1.15}
.detailed-lineup .order-card small{font-size:var(--lineup-stat-size);line-height:1.15}
.detailed-lineup.view-pitching .staff-board.grouped-staff{padding:5px;gap:var(--ui-space-4)}
.detailed-lineup.view-pitching .staff-cards{grid-template-columns:minmax(0,1fr);gap:var(--ui-space-1)}
.detailed-lineup.view-pitching .staff-card{min-height:var(--lineup-row-height);width:100%;box-sizing:border-box;border-radius:var(--ui-radius-card)}
.detailed-lineup.view-pitching .staff-card>button{min-height:0;padding:4px 6px;gap:2px;min-width:0}
.detailed-lineup.view-pitching .staff-card .staff-player-heading{gap:var(--ui-space-1);line-height:1.15}
.detailed-lineup.view-pitching .staff-card .staff-metrics{font-size:var(--lineup-stat-size);line-height:1.3;gap:1px 7px}
.detailed-lineup.view-pitching .staff-card .pitcher-aptitude{font-size:var(--lineup-stat-size);line-height:1.2}
.detailed-lineup.view-pitching .staff-card .today-starter{font-size:var(--ui-font-dense);line-height:1.2;padding:1px 3px}
.detailed-lineup.view-pitching .staff-card>span.staff-slot-label{width:48px;min-width:48px;padding:4px 2px;gap:3px}
.detailed-lineup.view-pitching .staff-card>.staff-slot-label>b{font-size:var(--ui-font-caption);line-height:1.2}
.detailed-lineup.view-pitching .staff-card>.staff-slot-label>small{font-size:var(--ui-font-dense);line-height:1.2}
.detailed-lineup.view-pitching .staff-group>h3{font-size:var(--ui-font-small);line-height:1.3;margin:0 0 5px;padding:3px 0 5px}
@media(max-width:800px){.detailed-lineup{--lineup-name-size:13px;--lineup-stat-size:9px}}
@media(max-width:800px) and (max-height:650px){.detailed-lineup{--lineup-name-size:12px;--lineup-stat-size:8px}}

/* source: implementation/playable-v0.1/live-commentary.css */
.live-commentary{color:var(--ui-text,#e6eff0);font:12px/1.6 system-ui,sans-serif;min-width:0}.live-feed-note{color:var(--ui-muted,#a8bbbb);font-size:var(--ui-font-caption);margin:0 0 10px}.live-pa{border:1px solid var(--ui-line,#40545a);border-radius:var(--ui-radius-card);margin:0 0 12px;overflow:hidden;background:var(--ui-surface,#152730)}.live-pa-heading{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;padding:12px}.live-player-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--ui-accent-soft,#384741);color:var(--ui-accent-text,#e8ca8c);font-size:var(--ui-font-subtitle)}.live-pa-heading strong{font-family:KboNtreev,system-ui,sans-serif;font-size:var(--ui-font-subtitle);font-weight:400}.live-pa-heading small{font-size:var(--ui-font-caption);color:var(--ui-muted,#a8bbbb)}.live-pa-heading p{font-size:var(--ui-font-xs);color:var(--ui-muted,#a8bbbb);margin:3px 0 0;overflow-wrap:anywhere}.live-pa-heading button{font-size:var(--ui-font-xs);min-height:30px;padding:5px 7px;white-space:nowrap}.live-pa details{background:var(--ui-raised,#1b3037)}.live-pa summary{cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-top:1px solid var(--ui-line,#40545a);padding-right:28px;position:relative;list-style:none}.live-pa summary::-webkit-details-marker{display:none}.live-pa summary:after{content:'⌄';position:absolute;right:12px;top:12px}.live-pa details[open] summary:after{content:'⌃'}.live-pa summary>span{font-size:var(--ui-font-xs);color:var(--ui-muted,#a8bbbb)}.live-pa summary strong{font-size:var(--ui-font-small);font-weight:600;color:var(--ui-text,#e6eff0)}.live-commentary .live-hit{color:var(--ui-accent-text,#e8ca8c)}.live-play-notes{padding:0 12px}.live-play-notes p{font-size:var(--ui-font-caption);margin:3px 0;color:var(--ui-text,#e6eff0)}.live-pitches{list-style:none;padding:9px 12px 12px;margin:0;border-top:1px solid var(--ui-line,#40545a)}.live-pitch{display:grid;grid-template-columns:20px max-content minmax(0,1fr) auto;gap:5px;align-items:center;padding:3px 0;font-size:var(--ui-font-caption)}.live-pitch small{font:10px/1.5 system-ui,sans-serif;color:var(--ui-muted,#a8bbbb);overflow-wrap:anywhere}.live-pitch-number{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font:600 10px/1 system-ui,sans-serif;color:white;background:#9b5715}.live-pitch-number.ball{background:#1c8050}.live-pitch-number.contact{background:#186fc0}.live-count{font-variant-numeric:tabular-nums;white-space:nowrap}.live-final{font-weight:700;border-left:3px solid var(--ui-accent,#dcb66c);padding:10px;background:var(--ui-raised,#1b3037)}.live-empty{font-size:var(--ui-font-small);color:var(--ui-muted,#a8bbbb);padding:12px}.textlog:has(.live-commentary){max-height:none!important;overflow:visible}.side-panel:has(.live-commentary) .loghead{margin-top:14px}.live-location-dialog{width:min(390px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;background:var(--ui-surface,#152730);color:var(--ui-text,#e6eff0);border:1px solid var(--ui-line,#40545a);padding:16px;border-radius:var(--ui-radius-card)}.live-location-dialog::backdrop{background:#0009}.live-location-heading{display:flex;justify-content:space-between;gap:10px;align-items:center}.live-location-heading h2{font:16px KboNtreev,system-ui,sans-serif;margin:0}.live-location-dialog p{font-size:var(--ui-font-caption);color:var(--ui-muted,#a8bbbb)}.live-location-dialog svg{width:100%;max-height:350px;display:block;border-radius:var(--ui-radius-control)}.live-location-dialog button{font-size:var(--ui-font-small);flex-shrink:0}
@media(max-width:600px){.live-pa-heading{grid-template-columns:28px minmax(0,1fr);gap:7px;padding:10px}.live-player-mark{width:28px;height:28px}.live-pa-heading button{grid-column:2;justify-self:end}.live-pa-heading strong{font-size:var(--ui-font-subtitle)}.live-pitch{gap:var(--ui-space-1);grid-template-columns:19px max-content minmax(0,1fr) auto}}

.live-result-detail{padding:0 12px;margin:5px 0 8px;font:11px/1.6 system-ui,sans-serif;color:var(--ui-text,#e6eff0)}

.live-inning-tabs{display:flex;gap:var(--ui-space-1);overflow-x:auto;max-width:100%;padding:5px 0 10px;margin-bottom:8px;scrollbar-width:thin}.live-inning-tabs button{flex:0 0 auto;min-width:32px;min-height:32px;padding:4px 7px;font-size:var(--ui-font-caption)}.live-commentary .live-inning-tabs button[aria-selected=true]:not(:disabled){background:var(--ui-accent);color:var(--ui-on-accent);border-color:var(--ui-accent)}

.live-half-divider{font:600 13px/1.5 system-ui,sans-serif;color:var(--ui-text,#e6eff0);border-block:1px solid var(--ui-line,#40545a);background:var(--ui-raised,#1b3037);padding:10px 12px;margin:10px 0 12px}.live-substitution{padding:10px 12px;border-left:3px solid var(--ui-accent,#dcb66c);background:var(--ui-raised,#1b3037);color:var(--ui-text,#e6eff0);font:12px/1.6 system-ui,sans-serif;overflow-wrap:anywhere}.live-substitution b{color:var(--ui-accent-text,#e8ca8c);margin-right:5px}

/* source: implementation/playable-v0.1/wellness.css */
.condition-badge{display:inline-block;width:1em;height:1em;margin-inline:.2em;padding:0;border:0;background:none;line-height:1;vertical-align:-.12em;flex-shrink:0;font-size:inherit}
.condition-badge>.condition-icon{display:block;width:100%;height:100%;max-width:none;object-fit:contain;border:0;border-radius:0;pointer-events:none;user-select:none}
.step-up-badge{display:inline-block;inline-size:1em;block-size:1em;margin-inline-end:.2em;vertical-align:-.12em;flex-shrink:0}
.step-up-badge>svg{display:block;width:100%;height:100%}
.condition-icon-mirror{transform:scaleX(-1)}
.injury-badge{display:inline-block;color:var(--accent,#c65130);font:11px/1.4 system-ui;margin-right:3px}
.stadium-position .condition-badge{margin-inline:.15em}.stadium-position .injury-badge{font-size:var(--ui-font-dense);margin:0}
.wellness-panel{margin:12px 0;padding:12px;background:var(--panel,var(--ui-surface));border:1px solid var(--line,var(--ui-line));border-radius:var(--ui-radius-control);overflow-wrap:anywhere}
.wellness-panel summary{cursor:pointer;font-size:var(--ui-font-subtitle)}.wellness-panel summary b{font-size:var(--ui-font-small);margin-left:8px}.wellness-panel p,.wellness-panel>small{font-size:var(--ui-font-small);line-height:1.5}
.health-player-list{max-height:430px;overflow:auto;overscroll-behavior:contain;margin:10px 0}.health-player{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,2fr);gap:5px;padding:9px 0;border-bottom:1px solid var(--line,var(--ui-line));font-size:var(--ui-font-small)}.health-player strong{font-size:var(--ui-font-label)}.health-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.health-actions small{width:100%}.health-actions button,.health-settings button{font-size:var(--ui-font-caption);padding:5px 7px;min-height:28px}.health-settings{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ui-space-2);font-size:var(--ui-font-small)}.health-settings [aria-pressed=true]{outline:2px solid var(--accent,var(--ui-accent));outline-offset:1px}
.health-detail{border-block:1px solid var(--line,var(--ui-line));margin:10px 0;padding:8px 0;font-size:var(--ui-font-small)}.health-detail p{line-height:1.5}.health-detail h4{margin:0 0 6px}@media(max-width:450px){.health-player{grid-template-columns:minmax(0,1fr)}.health-player-list{max-height:380px}}

.health-player .condition-badge{font-size:var(--ui-font-label)}

/* Shared SVG injury marker, sized to the name and free of the former emoji tile. */
.injury-badge.injury-icon-badge,.manager-health-badges .injury-badge.injury-icon-badge{display:inline-block;width:1em;height:1em;min-width:0;flex-shrink:0;font-size:inherit;line-height:1;margin:0 .16em;padding:0;border:0!important;outline:0;background:transparent!important;box-shadow:none!important;border-radius:0;vertical-align:-.12em}
.injury-icon-badge>.injury-icon{display:block;width:100%;height:100%;max-width:none;object-fit:contain;margin:0;padding:0;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0;pointer-events:none;user-select:none}

.growth-momentum-badge{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;margin-inline:2px;vertical-align:-.12em;flex:none}.growth-momentum-badge svg{display:block;width:100%;height:100%}

/* source: implementation/playable-v0.1/controls-ui.css */
/* Shared control roles. Loaded last in both host and field documents.
   Do not target player cards, drag handles, field controls or primary navigation. */
:is(.workspace-toolbar,.lineup-data-toolbar,.record-footer,.record-score,.month-header,.month-filter,.home-tools,.settings-name,.appearance-preview,.health-settings,.squad-metric-toolbar)>button,
:is(.view-switch,.lineup-handed-tabs,.squad-tabs,.result-team-tabs,.settings-name .view-switch,.appearance-settings .view-switch)>button,
.lineup-saves article>div>button,
body.field-studio :is(.manager-tabs,.manager-candidate-tabs,.end-team-tabs,.review-controls)>button{
 box-sizing:border-box;min-width:0;min-height:var(--control-height);padding:5px 10px;margin:0;
 font-family:var(--ui-display,system-ui);font-size:var(--control-font);font-weight:400;line-height:1.3;
 border-radius:var(--control-radius);white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
:is(.workspace-actions,.sheet-footer,.two-actions,.sheet-actions,.today-actions,.season-main-actions,.dh-confirm-actions)>button,
body.field-studio :is(.manager-draft-actions,.end-footer,.end-actions,.dh-confirm-actions)>button{
 box-sizing:border-box;min-width:0;min-height:var(--action-height);padding:8px 10px;margin:0;
 font-family:var(--ui-display,system-ui);font-size:var(--control-font);font-weight:400;line-height:1.35;
 border-radius:var(--control-radius);white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
:is(.workspace-toolbar,.workspace-actions,.record-footer,.today-actions,.month-filter,.settings-name,.squad-tabs,.result-team-tabs,.sheet-footer,.two-actions,.sheet-actions,.appearance-preview),
body.field-studio :is(.manager-tabs,.manager-candidate-tabs,.end-team-tabs,.manager-draft-actions,.end-footer){gap:var(--control-gap);min-width:0}
:is(.view-switch,.lineup-handed-tabs){gap:var(--ui-space-1);border-radius:var(--control-radius)}
/* Equalize the outer toolbar height, including the tab group's old frame. */
.workspace-toolbar>.view-switch{padding:0;border:0;background:transparent}
.workspace-toolbar{justify-content:flex-start;flex-wrap:wrap}
.workspace-toolbar>.view-switch{margin-right:auto}
.workspace-toolbar .view-switch>button{border:1px solid var(--ui-line)}
.lineup-data-toolbar{flex-wrap:wrap;justify-content:flex-start;gap:4px 6px}
.lineup-side-controls{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--ui-space-2);min-width:0;max-width:100%}
.detailed-lineup .lineup-data-toolbar button{min-height:30px;padding:4px 8px;font-size:var(--ui-font-caption);line-height:1.3;border-radius:var(--control-radius);box-sizing:border-box;margin:0;white-space:normal;word-break:keep-all}
.lineup-handed-tabs{flex-shrink:0}
.detailed-lineup .lineup-handed-tabs button.selected{background:var(--ui-accent-soft);color:var(--ui-accent-text);border-color:var(--ui-accent-text);box-shadow:inset 0 -2px var(--ui-accent-text)}
.lineup-data-toolbar>.draft-state{margin-left:0}
/* Selected controls use an underline as well as color; actions keep their existing primary treatment. */
:is(.view-switch,.squad-tabs,.result-team-tabs)>button:is(.selected,[aria-pressed=true]),
body.field-studio :is(.manager-tabs,.manager-candidate-tabs,.end-team-tabs)>button[aria-pressed=true]{box-shadow:inset 0 -2px currentColor}
.squad-tabs,.result-team-tabs{flex-wrap:wrap}
body.field-studio .manager-tabs{display:flex;flex-wrap:wrap}
body.field-studio .manager-tabs>button{flex:1 1 65px}
body.field-studio .manager-draft-actions{flex-wrap:wrap}
body.field-studio .manager-draft-actions>span{flex:1 1 100%}
body.field-studio .manager-draft-actions>button{flex:1}
:is(.sheet-footer,.two-actions,.sheet-actions,.record-footer){flex-wrap:wrap}
.lineup-saves article>div{flex-wrap:wrap;gap:var(--control-gap)}
/* A badge tracks its surrounding name instead of forcing a 17px line box. */
.condition-badge,.stadium-position .condition-badge,
.manager-health-badges .condition-badge,.pitcher-current h3 .manager-health-badges .condition-badge{
 display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
 width:1em;height:1em;min-width:1em;min-height:0;max-width:1em;max-height:1em;
 padding:0;margin:0 .18em;border-radius:.16em;font-size:inherit;font-weight:600;line-height:1;
 vertical-align:-.08em;flex-shrink:0}
.manager-health-badges{font-size:inherit;line-height:1}
.manager-health-badges .condition-badge{margin:0}


.manager-discard-dialog{box-sizing:border-box;width:min(420px,calc(100% - 32px));padding:20px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);background:var(--ui-surface);color:var(--ui-text)}
.manager-discard-dialog::backdrop{background:#0008}
.manager-discard-dialog h2{margin:0 0 12px;font-size:var(--ui-font-heading);line-height:1.4}
.manager-discard-dialog p{font-size:var(--ui-font-body);line-height:1.6}
.manager-discard-dialog .two-actions{display:flex;gap:var(--ui-space-3);margin-top:18px}
.manager-discard-dialog .two-actions>button{flex:1}
#managerDiscardChanges{color:var(--ui-danger,#e88b8b);border-color:var(--ui-danger,#e88b8b)}
body.field-studio :is(.manager-heading,.review-header)>button{min-height:var(--control-height);font-size:var(--control-font);padding:5px 10px;border-radius:var(--control-radius)}
/* Explicitly preserve visibility gates against flex/grid component rules. */
.lineup-side-controls[hidden],.manager-tabs[hidden],.manager-draft-actions[hidden],.end-team-tabs[hidden],.end-footer[hidden]{display:none!important}

button,a[href],input[type=button],input[type=submit]{touch-action:manipulation}

/* Injury notices share the compact body/control scale of the club dashboard. */
.club-dashboard .club-attention{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--ui-space-3);padding:10px 12px;font-family:system-ui,sans-serif;font-size:var(--ui-font-small);line-height:1.5;overflow-wrap:anywhere}
.club-attention>span{flex:1 1 180px;min-width:0}
.club-attention small{display:block;font-size:var(--ui-font-caption);line-height:1.5;margin-top:3px;color:inherit}
.club-attention-actions{display:flex;flex-wrap:wrap;gap:var(--ui-space-2);min-width:0}
.club-attention-actions>button{font-size:var(--ui-font-caption);min-height:32px;padding:4px 8px;line-height:1.3;margin:0;border-radius:var(--control-radius)}

/* Pitching status stays at the left; the small view toggle aligns to the right. */
.view-pitching .lineup-data-toolbar{display:flex;align-items:center;flex-wrap:nowrap;gap:var(--ui-space-2)}
.view-pitching .lineup-data-toolbar>.lineup-side-controls{display:none}
.view-pitching .lineup-data-toolbar>.draft-state{margin:0;min-width:0;line-height:1.4}
.detailed-lineup.view-pitching .lineup-data-toolbar>.pitcher-metric-toggle{margin-left:auto;min-height:26px;padding:3px 9px;font-size:var(--ui-font-xs);flex:0 0 auto}

/* Current energy is separate from the stamina ability and the drag hit target. */
.pitcher-energy{--energy-color:#65ae85;position:relative;display:inline-flex;flex-direction:column;justify-content:center;gap:3px;width:64px;min-width:0;flex:0 0 64px;align-self:center;box-sizing:border-box;color:var(--ui-muted);font:10px/1.2 system-ui,sans-serif;font-variant-numeric:tabular-nums;user-select:none;pointer-events:none}
.pitcher-energy.energy-medium{--energy-color:#d7b449}
.pitcher-energy.energy-low{--energy-color:#e16368;color:#d94f59}
.pitcher-energy-track{display:block;position:relative;overflow:hidden;height:6px;border-radius:var(--ui-radius-card);background:var(--ui-line)}
.pitcher-energy-fill{display:block;height:100%;background:var(--energy-color);border-radius:inherit}
.pitcher-energy-value{text-align:right;font-size:var(--ui-font-dense);line-height:1.2}
.pitcher-energy-warning{position:absolute;left:45%;top:-3px;display:grid;place-items:center;width:11px;height:11px;box-sizing:border-box;border:1px solid currentColor;border-radius:50%;font:bold 9px/1 system-ui,sans-serif;background:var(--ui-surface);color:#d94f59}
.detailed-lineup.view-pitching .staff-card>.pitcher-energy{margin-inline:3px 7px}
.detailed-lineup.view-pitching .staff-card>button{flex:1 1 0;min-width:0}
.detailed-lineup.view-pitching .staff-card .staff-metrics{flex-wrap:wrap;min-width:0}
.pitcher-energy.energy-compact{flex:0 0 40px;width:40px;gap:2px}
.pitcher-energy.energy-compact .pitcher-energy-value{font-size:var(--ui-font-micro)}
.pitcher-energy.energy-compact .pitcher-energy-warning{left:38%;width:10px;height:10px;font-size:var(--ui-font-micro)}
@media(max-width:800px){.detailed-lineup.view-pitching .staff-card>.pitcher-energy{width:48px;flex-basis:48px;margin-inline:2px 4px}}
@media(max-width:350px){.detailed-lineup.view-pitching .staff-card>.pitcher-energy{width:40px;flex-basis:40px}}

.match-sheet[data-panel="lineup-recommend-notice"]{width:min(460px,calc(100vw - 24px))}
.lineup-recommendation-summary{display:grid;gap:var(--ui-space-3);font:13px/1.65 system-ui,-apple-system,sans-serif;color:var(--ui-text);word-break:keep-all;overflow-wrap:anywhere}
.lineup-recommendation-summary>p{font:inherit;margin:0}
.match-sheet[data-panel="lineup-recommend-notice"] .sheet-actions{margin-top:16px}
.match-sheet[data-panel="lineup-recommend-notice"] .sheet-actions>button{flex:1}

/* INBOX uses the same visible button surfaces as other management controls. */
.lobby-inbox{padding:12px;min-width:0;box-sizing:border-box}
.lobby-inbox>header{position:relative;min-width:0}
.lobby-inbox .inbox-title h1{font-size:20px;line-height:1.4;margin:6px 0 12px}
.lobby-inbox .inbox-title h1>span{display:inline-grid;place-items:center;min-width:22px;padding:2px 5px;border-radius:var(--ui-radius-modal);background:var(--ui-accent-soft);color:var(--ui-accent-text);font:11px/1.3 system-ui,sans-serif;vertical-align:middle}
.lobby-inbox .inbox-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ui-space-2);min-width:0}
.lobby-inbox :is(.inbox-toolbar,.inbox-message-actions,.inbox-filters)>button,.lobby-inbox .inbox-list>button{display:inline-flex;align-items:center;justify-content:center;gap:5px;box-sizing:border-box;min-height:var(--control-height,36px);min-width:0;max-width:100%;margin:0;padding:6px 10px;font-family:var(--ui-display,system-ui);font-size:var(--ui-font-small);font-weight:400;line-height:1.3;border:1px solid var(--ui-line-strong,var(--ui-line));border-radius:var(--control-radius,5px);background:var(--ui-surface);color:var(--ui-text);white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
.lobby-inbox .inbox-toolbar>[data-action="inbox-read-all"]{background:var(--ui-accent-soft);color:var(--ui-accent-text);border-color:var(--ui-accent-text)}
.lobby-inbox .inbox-toolbar>.inbox-filter-handle{margin-left:auto;touch-action:pan-y;cursor:ew-resize;user-select:none}
.inbox-filter-grip{font:20px/1 system-ui,sans-serif;color:var(--ui-muted);flex:0 0 auto}
.lobby-inbox .inbox-filter-handle[aria-expanded="true"]{border-color:var(--ui-accent-text);background:var(--ui-accent-soft)}
.lobby-inbox .inbox-filters{position:absolute;right:0;top:calc(100% + 7px);z-index:5;width:min(220px,100%);box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr);gap:5px;margin:0;padding:10px;border:1px solid var(--ui-line-strong,var(--ui-line));border-radius:var(--ui-radius-control);background:var(--ui-surface);color:var(--ui-text);box-shadow:0 8px 22px #0003;max-height:55dvh;overflow:auto;touch-action:pan-y;animation:inbox-filter-enter 150ms ease-out}
.lobby-inbox .inbox-filters[hidden]{display:none!important}
.lobby-inbox .inbox-filters>strong{font-size:var(--ui-font-small);margin:1px 2px 4px}
.lobby-inbox .inbox-filters>button{justify-content:flex-start;width:100%;font-size:var(--ui-font-small)}
.lobby-inbox .inbox-filters>button[aria-pressed="true"]{background:var(--ui-accent-soft);border-color:var(--ui-accent-text);color:var(--ui-accent-text);box-shadow:inset 3px 0 currentColor}
.lobby-inbox .inbox-list{margin-top:14px;gap:9px;min-width:0}
.lobby-inbox .inbox-message{padding:12px;border-radius:var(--ui-radius-control);gap:10px;min-width:0}
.lobby-inbox .inbox-message>div{min-width:0}
.lobby-inbox .inbox-message h2{font-size:var(--ui-font-label);line-height:1.4;overflow-wrap:anywhere}
.lobby-inbox .inbox-message p{font-size:var(--ui-font-small);line-height:1.65;overflow-wrap:anywhere}
.lobby-inbox .inbox-message.is-read{opacity:1}
.lobby-inbox .inbox-message-actions{display:flex;flex-wrap:wrap;gap:var(--ui-space-2)}
.lobby-inbox .inbox-message-actions>button{min-height:32px;font-size:var(--ui-font-caption);padding:5px 8px}
@keyframes inbox-filter-enter{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:600px){.lobby-inbox{padding:8px}.lobby-inbox .inbox-title h1{font-size:var(--ui-font-heading)}.lobby-inbox .inbox-toolbar>button{padding:5px 8px;font-size:var(--ui-font-caption);min-height:34px}.lobby-inbox .inbox-message{flex-direction:column}.lobby-inbox .inbox-message-actions{justify-content:flex-start}.lobby-inbox .inbox-toolbar>.inbox-filter-handle{max-width:100%}}
@media(prefers-reduced-motion:reduce){.lobby-inbox .inbox-filters{animation:none}}

/* v348 transient notices and compact message locks. */
.manager-mode .toast,.setup-mode .toast,.toast{top:calc(env(safe-area-inset-top,0px) + 112px)!important;cursor:pointer;touch-action:none;animation:kbo-notice-in 180ms ease-out both;user-select:none}
.toast.notice-leaving{pointer-events:none;animation:kbo-notice-out 150ms ease-in both}.toast.notice-leaving[data-exit=up]{--notice-x:0px;--notice-y:-110px}.toast.notice-leaving[data-exit=left]{--notice-x:-120vw;--notice-y:0px}.toast.notice-leaving[data-exit=right]{--notice-x:120vw;--notice-y:0px}
@keyframes kbo-notice-in{from{opacity:0}to{opacity:1}}@keyframes kbo-notice-out{to{opacity:0;translate:var(--notice-x,0px) var(--notice-y,-6px)}}
.inbox-message{position:relative;padding-right:48px!important}.lobby-inbox .inbox-lock-icon{position:absolute;top:9px;right:9px;width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important;padding:5px!important;border:1px solid transparent!important;background:transparent!important;box-shadow:none!important;border-radius:3px!important;display:grid;place-items:center;color:var(--ui-muted);line-height:1}
.lobby-inbox .inbox-lock-icon[aria-pressed=true]{border-color:var(--ui-accent)!important;background:var(--ui-accent-soft)!important;color:var(--ui-accent-text)}.lobby-inbox .inbox-lock-icon:hover{color:var(--ui-text)}.inbox-lock-icon svg{width:17px;height:17px;display:block}.inbox-message p{white-space:normal}.inbox-message-actions:empty{display:none}
[data-redundant-close=true][hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.toast,.toast.notice-leaving{animation-duration:1ms!important}}

.match-sheet[data-panel="lobby-inbox"]{top:calc(env(safe-area-inset-top,0px) + 72px)!important;bottom:auto!important;transform:translateX(-50%)!important;height:min(780px,calc(100dvh - 96px));max-height:calc(100dvh - 96px);display:flex;flex-direction:column}.match-sheet[data-panel="lobby-inbox"]>.sheet-body{display:flex;flex:1;min-height:0;overflow:hidden}.match-sheet[data-panel="lobby-inbox"] .lobby-inbox{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;padding-bottom:0;justify-content:flex-start}.lobby-inbox>header{flex:none}.lobby-inbox .inbox-list{flex:1;min-height:160px;overflow-y:auto;display:flex;flex-direction:column;justify-content:flex-start;align-content:flex-start;gap:10px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);padding:10px;touch-action:pan-y;overscroll-behavior:contain}.inbox-list>.inbox-message{flex:none;margin:0}.inbox-empty{margin:0!important;padding:32px 10px;text-align:center;color:var(--ui-muted);font-size:var(--ui-font-body)!important}.manager-body>.lobby-inbox{min-height:calc(100dvh - 180px);display:flex;flex-direction:column}.manager-body>.lobby-inbox .inbox-list{max-height:calc(100dvh - 290px)}

/* v0.3.56: explicit desktop anchor; mobile must not inherit its half-width shift. */
.match-sheet[data-panel="lobby-inbox"]{left:50%!important;right:auto!important;width:min(850px,calc(100vw - 24px));min-width:0;margin:0}
@media(max-width:800px){
 .match-sheet[data-panel="lobby-inbox"]{left:max(8px,env(safe-area-inset-left,0px))!important;right:max(8px,env(safe-area-inset-right,0px))!important;top:max(8px,env(safe-area-inset-top,0px))!important;bottom:max(8px,env(safe-area-inset-bottom,0px))!important;transform:none!important;translate:none!important;width:auto!important;height:auto!important;max-width:none;max-height:calc(100dvh - max(8px,env(safe-area-inset-top,0px)) - max(8px,env(safe-area-inset-bottom,0px)));min-height:0}
 .match-sheet[data-panel="lobby-inbox"] .sheet-body,.match-sheet[data-panel="lobby-inbox"] .inbox-list{min-height:0}
}

.player-editor-abilities{margin:12px 0;padding:12px;border:1px solid var(--border,#526068);border-radius:var(--ui-radius-card)}.player-editor-abilities .edit-ratings{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}.player-editor-abilities label{min-width:0}.player-editor-abilities input,.player-editor-abilities select{max-width:100%;box-sizing:border-box}.player-editor-actions{display:flex;flex-wrap:wrap;gap:var(--ui-space-3)}
/* Trade desk: stable header/footer and independently scrolling club lists. */
.match-sheet[data-panel="market"]{width:min(1000px,calc(100vw - 24px));height:min(820px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);display:flex;flex-direction:column;left:50%;right:auto;top:var(--ui-modal-top);bottom:auto;transform:translateX(-50%)}
.match-sheet[data-panel="market"]>header{flex:none}
.match-sheet[data-panel="market"]>.sheet-body{padding:14px;min-height:0;flex:1;overflow:hidden;display:flex;flex-direction:column}
.trade-workspace{display:flex;flex-direction:column;gap:10px;min-height:0;flex:1;font-size:var(--ui-font-body);text-align:left}
.trade-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-4);flex:none}
.trade-toolbar label{display:flex;align-items:center;gap:var(--ui-space-3);margin:0;min-width:0}
.trade-toolbar select{width:auto;min-width:100px;margin:0}
.trade-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--ui-space-4);min-height:80px;flex:1}
.trade-column{min-width:0;min-height:0;display:flex;flex-direction:column;gap:7px}
.trade-column h3{display:flex;align-items:baseline;justify-content:space-between;gap:var(--ui-space-1);font-size:var(--ui-font-label);margin:0}
.trade-column h3 small{font-size:var(--ui-font-caption);font-weight:400;white-space:nowrap}
.trade-offer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ui-space-1);flex:none}
.trade-offer .trade-pick{display:flex;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:34px;padding:4px;font-size:var(--ui-font-small);overflow-wrap:anywhere;border:1px solid var(--line);border-radius:var(--ui-radius-control)}
.trade-pick.empty{opacity:.6;font-size:var(--ui-font-caption)}.trade-pick span{font-size:var(--ui-font-subtitle)}
.trade-filters{display:flex;gap:var(--ui-space-1);flex:none}
.trade-filters button{flex:1;min-width:0;min-height:30px;font-size:var(--ui-font-small);padding:4px}
.trade-list{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;display:flex;flex-direction:column;gap:5px;scrollbar-gutter:stable;flex:1;padding-right:3px}
.trade-list .trade-player{display:block;flex:none;width:100%;min-width:0;padding:8px;text-align:left;border:1px solid var(--line);border-radius:var(--ui-radius-control);min-height:62px;line-height:1.4;font-size:var(--ui-font-small)}
.trade-player-top{display:flex;align-items:center;justify-content:space-between;gap:5px}.trade-player-top strong{min-width:0;overflow-wrap:anywhere}.trade-player-top b{flex:none}
.trade-player-meta,.trade-player-stats{display:block;font-size:var(--ui-font-caption);opacity:.8}
.trade-list .trade-player.selected,.trade-filters button[aria-pressed="true"]{border-color:var(--ui-accent,#f56b1b);box-shadow:inset 3px 0 var(--ui-accent,#f56b1b)}
.trade-footer{flex:none;display:flex;flex-direction:column;gap:7px;border-top:1px solid var(--line);padding-top:9px}
.trade-interest strong{display:flex;justify-content:space-between;font-size:var(--ui-font-body)}.trade-interest small{display:block;font-size:var(--ui-font-caption);line-height:1.4;margin-top:4px}
.trade-meter{height:8px;background:var(--line);border-radius:var(--ui-radius-control);overflow:hidden;margin-top:5px}.trade-meter i{display:block;height:100%;background:var(--ui-accent,#f56b1b);transition:width .18s ease}
.trade-outcome{border:1px solid var(--line);border-radius:var(--ui-radius-control);padding:8px;min-height:54px;max-height:110px;overflow:auto;line-height:1.4;font-size:var(--ui-font-small)}
.trade-outcome.accepted{border-color:var(--ui-accent,#f56b1b)}.trade-outcome>strong{display:block;font-size:var(--ui-font-body)}.trade-outcome>small{display:block;font-size:var(--ui-font-caption);margin-top:3px}
.trade-placement{font-size:var(--ui-font-caption);line-height:1.4;margin:0;opacity:.8}.trade-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ui-space-3)}.trade-actions button{min-width:0;width:100%;min-height:38px;font-size:var(--ui-font-body)}
@media(max-width:600px){
 .match-sheet[data-panel="market"]{left:max(6px,env(safe-area-inset-left));right:max(6px,env(safe-area-inset-right));width:auto;height:auto;max-height:calc(100dvh - 16px);top:max(8px,env(safe-area-inset-top));bottom:max(8px,env(safe-area-inset-bottom));transform:none}
 .match-sheet[data-panel="market"]>.sheet-body{padding:9px}.trade-workspace{gap:7px}.trade-columns{gap:var(--ui-space-3)}.trade-column h3{font-size:var(--ui-font-body)}.trade-column h3 small{font-size:var(--ui-font-xs)}
 .trade-offer{grid-template-columns:1fr}.trade-offer .trade-pick{min-height:24px;height:24px;padding:2px 4px;font-size:var(--ui-font-caption)}.trade-offer .trade-pick.empty{font-size:var(--ui-font-xs)}
 .trade-list .trade-player{padding:6px;min-height:58px}.trade-player-meta,.trade-player-stats{font-size:var(--ui-font-xs)}.trade-footer{gap:5px;padding-top:6px}.trade-outcome{max-height:88px;min-height:45px;padding:6px}.trade-placement{font-size:var(--ui-font-xs)}.trade-toolbar{gap:var(--ui-space-3)}
}
@media(prefers-reduced-motion:reduce){.trade-meter i{transition:none}}

/* v371 trade alignment and visible interest fill in both themes. */
.match-sheet[data-panel="market"] .trade-column h3{display:flex;justify-content:flex-start;align-items:baseline;column-gap:10px;flex-wrap:wrap}
.trade-sent-positions{display:none!important}
.match-sheet[data-panel="market"] .trade-column h3 .trade-needs{white-space:normal;overflow-wrap:anywhere;color:var(--ui-muted);line-height:1.3}
.match-sheet[data-panel="market"] .trade-club-name{display:inline-block;flex:none}
.match-sheet[data-panel="market"] .trade-column h3 small{display:inline-block;margin:0;font-size:var(--ui-font-caption)}
.match-sheet[data-panel="market"] .trade-meter{display:block;height:9px;min-height:9px;background:var(--ui-line,#52616a)}
.match-sheet[data-panel="market"] .trade-meter>i{display:block;min-height:9px;height:9px;opacity:1;background:#d16a57}
.match-sheet[data-panel="market"] .trade-meter[data-level="medium"]>i{background:#d4a544}
.match-sheet[data-panel="market"] .trade-meter[data-level="high"]>i{background:#4da97b}
@media(max-width:600px){
 .match-sheet[data-panel="market"] .trade-toolbar label{font-size:var(--ui-font-caption);gap:var(--ui-space-2)}
 .match-sheet[data-panel="market"] .trade-toolbar select{font-size:var(--ui-font-small);min-height:32px;height:32px;min-width:72px;width:82px;padding:4px 8px;line-height:1.2}
 .match-sheet[data-panel="market"] .trade-toolbar button{font-size:var(--ui-font-caption);min-height:32px;padding:4px 8px}
 .match-sheet[data-panel="market"] .trade-column h3{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:7px;row-gap:2px}
 .match-sheet[data-panel="market"] .trade-column h3 .trade-header-summary{display:block!important;grid-column:1/-1;min-height:2.6em;line-height:1.3;white-space:normal;overflow-wrap:anywhere;color:var(--ui-muted)}
 .match-sheet[data-panel="market"] .trade-column h3 small{font-size:var(--ui-font-xs)}
}

/* Four toolbar actions remain aligned across all lineup views. */
.workspace-toolbar{grid-template-columns:minmax(0,1fr) auto auto auto}.workspace-toolbar .view-switch{min-width:0}.workspace-toolbar>button{white-space:nowrap}

@media(max-width:600px){.workspace-toolbar{gap:5px}.workspace-toolbar>button{padding-inline:7px;font-size:var(--ui-font-small)}}

/* source: implementation/playable-v0.1/lobby.css */
body.lobby-mode{overflow:hidden;background:#10202a}body.lobby-mode .shell{max-width:none;width:100%;padding:0;margin:0}body.lobby-mode .shell>.brand{display:none}.game-lobby{position:relative;isolation:isolate;height:100svh;height:100dvh;min-height:520px;overflow:hidden;color:#f5efe2;font-family:system-ui,sans-serif;background:#152b35}.lobby-scenery{position:absolute;z-index:-2;inset:0;background-image:linear-gradient(180deg,rgba(4,14,24,.64),transparent 42%,rgba(4,14,24,.24)),var(--lobby-office);background-size:cover;background-position:center}.lobby-top{display:flex;align-items:center;justify-content:space-between;padding:22px 4%;height:86px;box-sizing:border-box;background:linear-gradient(#071622c9,#07162200)}.lobby-brand small{display:block;font-size:var(--ui-font-xs);letter-spacing:3px;color:#c3ad7e;margin-bottom:4px}.lobby-brand strong{font-size:26px;letter-spacing:2px}.lobby-brand strong span{color:#dac28b}.lobby-top-actions{display:flex;align-items:center;gap:10px}.lobby-tool{position:relative;display:grid;place-items:center;width:46px;height:46px;background:#132735c9;border:1px solid #b8a37573;border-radius:var(--ui-radius-modal);color:#eedeb5;padding:10px}.lobby-tool svg{width:25px;height:25px}.lobby-badge{position:absolute;top:-4px;right:-5px;display:grid;place-items:center;min-width:21px;height:21px;padding:0 4px;border:2px solid #142738;border-radius:20px;background:#d65042;color:#fff;font:700 11px system-ui;box-sizing:border-box}.lobby-menu{position:absolute;top:101px;left:4%;display:grid;grid-template-columns:repeat(4,minmax(130px,190px));gap:var(--ui-space-4)}.lobby-menu-button{position:relative;display:flex;align-items:center;gap:var(--ui-space-4);text-align:left;padding:15px 18px;color:#f0e5c8;background:linear-gradient(135deg,#193a4ef2,#102337e8);border:1px solid #bdab7d9c;border-radius:13px;box-shadow:0 7px 18px #030a1355,inset 0 1px #fff2;transition:transform .15s,filter .15s}.lobby-menu-button:hover{filter:brightness(1.18);transform:translateY(-3px)}.lobby-menu-button:active{transform:translateY(1px)}.lobby-menu-button b{font-size:var(--ui-font-subtitle);display:block}.lobby-menu-button small{display:block;color:#bdc6c8;font-size:var(--ui-font-xs);margin-top:4px;white-space:nowrap}.lobby-menu-icon svg{width:34px;height:34px;filter:drop-shadow(0 2px 3px #0008);color:#f5d99e}.lobby-club-label{position:absolute;left:5%;top:215px;text-shadow:0 2px 8px #000}.lobby-club-label>span{letter-spacing:2px;font-size:var(--ui-font-small);color:#e2d3b2}.lobby-club-label h1{font-size:38px;margin:7px 0}.lobby-club-label h1 small{font-size:var(--ui-font-subtitle);font-weight:400;color:#e0d4ba}.lobby-club-label p{font-size:var(--ui-font-body);margin:8px 0}.lobby-club-label i{display:inline-block;width:6px;height:6px;background:#d1c085;border-radius:50%;margin-right:9px;box-shadow:0 0 10px #ffe8a3}.lobby-assistant{position:absolute;bottom:4%;left:4%;width:clamp(210px,25vw,355px);height:49%;pointer-events:none;filter:drop-shadow(0 8px 20px #0006);animation:assistant-enter .5s ease-out}.lobby-assistant img{width:100%;height:100%;object-fit:contain;object-position:bottom}.assistant-dialog{position:absolute;bottom:7%;left:32%;right:5%;padding:19px 24px;background:linear-gradient(135deg,#0c2233f7,#182c39f5);border:1px solid #c3aa73;border-radius:18px;box-shadow:0 15px 45px #0008,inset 0 1px #fff2;animation:dialog-enter .3s ease-out}.assistant-name{display:flex;align-items:center;gap:14px;border-bottom:1px solid #d7c39833;padding-bottom:11px}.assistant-name b{font-size:var(--ui-font-label);color:#f0d99e}.assistant-name>span{font-size:var(--ui-font-small);color:#c1c7c6}.assistant-name small{margin-left:auto;color:#c4b489;font-size:var(--ui-font-xs)}.assistant-speech{display:block;background:none;border:0;padding:16px 0 12px;width:100%;text-align:left;color:#f5f2e6;font:16px/1.7 system-ui;min-height:85px;cursor:pointer}.assistant-actions{display:flex;gap:10px;justify-content:flex-end}.assistant-actions button{min-height:42px;border:1px solid #8a9d9c60;border-radius:var(--ui-radius-modal);background:#152c3a;color:#ddd5bd;padding:10px 15px;font-size:var(--ui-font-small)}.assistant-actions .assistant-primary{background:linear-gradient(135deg,#d9c28d,#bfa46e);border-color:#f0dbab;color:#142631;font-weight:700}.lobby-footer{position:absolute;bottom:12px;left:4%;right:4%;display:flex;justify-content:space-between;font-size:var(--ui-font-dense);letter-spacing:2px;color:#ddd5c2aa}.lobby-event-layer{position:absolute;right:15%;top:43%;pointer-events:none}.lobby-protest,.lobby-supporters{padding:10px 15px;background:#1b2c3ce8;border:1px solid #dbbc79;border-radius:var(--ui-radius-small);color:#e6dabf;font:12px/1.4 system-ui;box-shadow:0 3px 12px #0006}.lobby-protest{display:flex;gap:var(--ui-space-3)}.lobby-protest svg{width:38px;height:38px}.lobby-supporters{color:#ffe2a4}.lobby-inbox,.club-desk{max-width:1000px;margin:0 auto;padding:20px}.lobby-inbox header>small,.club-desk>small{color:#bca578;letter-spacing:2px}.lobby-inbox h1,.club-desk h1{font-size:29px;margin:8px 0}.lobby-inbox header p,.club-desk>p{color:var(--muted);font-size:var(--ui-font-body)}.lobby-inbox h1 span{font-size:var(--ui-font-subtitle);color:#d3b875}.inbox-list{display:grid;gap:13px;margin-top:24px}.inbox-message{border:1px solid var(--line);border-radius:var(--ui-radius-modal);padding:20px;background:var(--panel);display:flex;justify-content:space-between;gap:15px}.inbox-message.is-unread{border-left:3px solid #d0b676}.inbox-message small{color:#d0b676;font-size:var(--ui-font-xs)}.inbox-message h2{font-size:var(--ui-font-subtitle);margin:8px 0}.inbox-message p{font-size:var(--ui-font-body);line-height:1.7;color:var(--muted)}.inbox-message>div:last-child{display:flex;align-items:center;gap:var(--ui-space-3)}.inbox-message button{white-space:nowrap}.inbox-message.is-read{opacity:.72}.club-desk-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:25px}.club-desk-tiles button{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:23px;text-align:left;min-height:140px;border:1px solid var(--line);border-radius:var(--ui-radius-modal);background:var(--panel);color:var(--text)}.club-desk-tiles svg{width:30px;height:30px;color:#ceb883}.club-desk-tiles b{font-size:var(--ui-font-subtitle)}.club-desk-tiles small{color:var(--muted)}.club-future{margin-top:25px;padding:18px;border:1px dashed var(--line);border-radius:var(--ui-radius-modal)}.club-future h2{font-size:var(--ui-font-label)}.club-future p{font-size:var(--ui-font-small);color:var(--muted);line-height:1.6}.manager-nav svg{width:23px;height:23px;display:block;margin:auto auto 4px}.manager-header .lobby-tool{width:36px;height:36px;padding:7px}.manager-header .lobby-tool svg{width:20px;height:20px}.manager-header .lobby-badge{min-width:17px;height:17px;font-size:var(--ui-font-dense)}
@keyframes assistant-enter{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:translateX(0)}}@keyframes dialog-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.game-lobby{min-height:520px}.lobby-top{height:76px;padding:14px 18px}.lobby-brand small{font-size:7px;letter-spacing:2px}.lobby-brand strong{font-size:19px;letter-spacing:1px}.lobby-top-actions{gap:7px}.lobby-tool{width:37px;height:37px;padding:8px;border-radius:var(--ui-radius-modal)}.lobby-tool svg{width:21px;height:21px}.lobby-top-actions>button:last-child:not(.lobby-tool){display:none}.lobby-menu{left:14px;right:14px;top:88px;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ui-space-3)}.lobby-menu-button{flex-direction:column;padding:12px 4px;gap:7px;text-align:center;border-radius:var(--ui-radius-modal);min-width:0}.lobby-menu-button b{font-size:var(--ui-font-small);white-space:nowrap}.lobby-menu-button small{display:none}.lobby-menu-icon svg{width:31px;height:31px}.lobby-club-label{top:200px;left:21px}.lobby-club-label h1{font-size:29px}.lobby-club-label h1 small{font-size:var(--ui-font-body)}.lobby-club-label>span{font-size:var(--ui-font-xs)}.lobby-scenery{background-position:57% center}.lobby-assistant{width:190px;height:270px;left:-22px;bottom:192px}.assistant-dialog{left:14px;right:14px;bottom:25px;padding:14px 16px;border-radius:13px}.assistant-name{gap:9px;padding-bottom:9px}.assistant-name b{font-size:var(--ui-font-body)}.assistant-name>span{font-size:var(--ui-font-xs)}.assistant-name small{font-size:var(--ui-font-dense)}.assistant-speech{font-size:var(--ui-font-label);min-height:88px;padding:12px 0;line-height:1.65}.assistant-actions{gap:var(--ui-space-3);justify-content:stretch}.assistant-actions button{padding:10px 9px;min-height:43px;font-size:var(--ui-font-caption);flex:1}.assistant-actions .assistant-primary{flex:1.3}.lobby-footer{bottom:7px;font-size:7px}.lobby-event-layer{top:43%;right:16px;max-width:160px}.lobby-protest,.lobby-supporters{font-size:var(--ui-font-xs);padding:8px}.lobby-inbox,.club-desk{padding:14px}.inbox-message{display:block;padding:15px}.inbox-message>div:last-child{margin-top:13px;flex-wrap:wrap}.club-desk-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.club-desk-tiles button{padding:15px;min-height:130px}.club-desk-tiles b{font-size:var(--ui-font-label)}}
@media(max-height:650px) and (max-width:600px){.lobby-club-label{top:183px}.lobby-assistant{height:200px;width:150px;bottom:184px}.assistant-speech{min-height:70px;font-size:var(--ui-font-body)}.lobby-event-layer{top:40%}}
@media(prefers-reduced-motion:reduce){.lobby-assistant,.assistant-dialog{animation:none}.lobby-menu-button{transition:none}}

.lobby-scenery{background:none}.lobby-scenery img{width:100%;height:100%;object-fit:cover;object-position:center}.lobby-scenery:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,14,24,.64),transparent 42%,rgba(4,14,24,.24))}@media(max-width:600px){.lobby-scenery img{object-position:57% center}}

@media(max-height:650px) and (max-width:600px){.lobby-club-label{left:auto;right:18px;top:193px;text-align:right}}

.assistant-name{padding-right:30px}.assistant-name small{white-space:nowrap}.assistant-close{position:absolute;top:4px;right:4px;width:40px;height:40px;padding:0;border:0;background:transparent;color:#d9e1df;font-size:25px;line-height:1;border-radius:var(--ui-radius-modal);cursor:pointer}.assistant-close:hover{background:#ffffff15;color:white}.assistant-close:focus-visible{outline:2px solid #e8cd8b;outline-offset:-4px}



/* v0.3.23: lobby owns root navigation and season overview. */
body.lobby-mode{overflow:auto}.game-lobby{height:auto;min-height:100svh;overflow:visible;background:#0e202b}.lobby-stage{position:relative;isolation:isolate;height:clamp(540px,72svh,680px);overflow:hidden}.lobby-overview{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(420px,1.5fr);gap:var(--ui-space-6);padding:24px 4% 32px;color:#e8edea;background:linear-gradient(#142c39,#0c1c27)}.lobby-overview>section{margin:0;min-width:0;border-color:#8b9da344;background:#122835ed;box-shadow:0 8px 24px #0002;align-self:start}.lobby-overview h2{color:#f3e1b7}.lobby-overview .home-rank-table>div{border-color:#8b9da330}.lobby-overview .rank-head,.lobby-overview .home-empty{color:#a9bcc5}.lobby-overview .my-club{background:#c5a46e20;border-left:3px solid #d4b57b}.lobby-overview button{color:#e8edea;border-color:#8b9da34a;background:transparent}.lobby-overview button:hover{background:#ffffff0c}.lobby-overview .result-승{color:#a4e2c5}.lobby-overview .result-패{color:#f4ad9e}.manager-nav.lobby-return-nav{grid-template-columns:1fr;display:grid}.lobby-return-nav>button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px}.manager-nav.lobby-return-nav svg{margin:0;width:22px;height:22px}.match-sheet:has(.lobby-inbox){max-width:850px}.match-sheet .lobby-inbox{padding:4px}.match-sheet .lobby-inbox h1{font-size:22px}.lobby-top-actions .lobby-tool{flex:none}
@media(max-width:600px){.lobby-stage{height:560px}.lobby-overview{grid-template-columns:minmax(0,1fr);gap:14px;padding:16px 14px 24px}.lobby-overview>section{padding:14px}.lobby-overview .home-rank-table>div{grid-template-columns:minmax(60px,1fr) 73px 30px minmax(82px,1fr);gap:5px}.lobby-overview .rank-head{font-size:var(--ui-font-xs)}.lobby-overview .home-rank-table strong{font-size:var(--ui-font-small)}.lobby-overview .rank-form{gap:2px}.lobby-overview .rank-form i{font-size:var(--ui-font-dense);min-width:13px;width:13px;height:17px}.lobby-brand strong{font-size:var(--ui-font-subtitle)}.lobby-brand small{font-size:6px}.lobby-top{padding:14px}.lobby-tool{width:36px;height:36px}.assistant-dialog{bottom:25px}.lobby-club-label{top:193px;left:auto;right:18px;text-align:right}.lobby-assistant{bottom:187px}.lobby-event-layer{top:39%}}
@media(max-width:800px){.lobby-overview{grid-template-columns:minmax(0,1fr)}}
.kbo-fullscreen-locked .game-lobby{height:var(--app-viewport-height,100dvh);max-height:var(--app-viewport-height,100dvh);overflow-y:auto;overscroll-behavior:contain} html:has(body.lobby-mode .match-sheet){overflow:hidden} body.lobby-mode:has(.match-sheet){overflow:hidden}

/* v0.3.24: fixed-size supplied SVG tools and top-left back navigation. */
.manager-app{grid-template-rows:56px minmax(0,1fr)}.manager-header .lobby-back,.integrated-toolbar .lobby-back{display:inline-flex;align-items:center;gap:7px;min-width:0;white-space:nowrap;border:0;background:transparent;padding:8px 0;color:var(--ui-text);font-size:var(--ui-font-label);font-weight:700}.lobby-back>span{font:inherit}.manager-header-controls{flex:none}.header-fullscreen{width:44px!important;height:44px;min-width:44px!important;min-height:44px!important;max-width:44px;padding:10px!important;display:grid;place-items:center}.header-fullscreen svg{display:block;width:23px;height:23px;flex:none}.match-mode .integrated-play{grid-template-rows:58px minmax(0,1fr)}.manager-header .integrated-version{white-space:nowrap}
.lobby-top-actions>.lobby-tool{box-sizing:border-box;display:grid;place-items:center;flex:0 0 44px;width:44px!important;min-width:44px!important;max-width:44px;height:44px!important;min-height:44px!important;max-height:44px;padding:10px!important;border:1px solid #b8a37573;border-radius:11px;background:#132735e8;color:#eedeb5;overflow:visible}.lobby-top-actions>.lobby-tool>svg{display:block;width:24px!important;height:24px!important;max-width:24px;max-height:24px;flex:none;overflow:visible}.lobby-top-actions{gap:var(--ui-space-3)}.lobby-menu-panel{position:absolute;top:95px;left:4%;width:min(830px,92%);padding:11px;background:linear-gradient(135deg,#071c2ed9,#102737b8);border:1px solid #bca67d55;border-radius:15px;box-shadow:0 7px 25px #0003;backdrop-filter:blur(9px)}.lobby-menu-panel-head{display:flex;align-items:center;justify-content:space-between;color:#c9b78f;font:9px system-ui;letter-spacing:2px;padding:0 2px 8px}.lobby-menu-toggle{min-height:28px;border:0;border-radius:var(--ui-radius-card);background:#ffffff0a;color:#e2d3b2;padding:4px 9px;font:11px system-ui;letter-spacing:0}.lobby-menu-panel .lobby-menu{position:static;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.lobby-menu[hidden]{display:none!important}.lobby-menu-panel.is-collapsed{width:190px;padding-bottom:4px}.lobby-club-label{top:266px;background:linear-gradient(135deg,#0a2033eb,#142b39d6);border:1px solid #bca67d66;border-radius:var(--ui-radius-modal);padding:16px 18px;min-width:315px;max-width:440px;box-shadow:0 10px 35px #0005;backdrop-filter:blur(8px);text-align:left}.lobby-club-label h1{font-size:30px}.lobby-club-label p{margin:7px 0 12px}.lobby-club-label>span{font-size:var(--ui-font-caption)}.lobby-schedule{display:block;width:100%;text-align:left;white-space:normal;padding:12px 13px;border:1px solid #c6ad79;background:linear-gradient(135deg,#d9c28d,#b79b63);border-radius:var(--ui-radius-modal);color:#102535;line-height:1.45;text-shadow:none}.lobby-schedule>span{display:block}.lobby-schedule .lobby-schedule-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-4);margin-bottom:7px}.lobby-schedule-heading strong{font:750 15px system-ui}.lobby-schedule-heading small{color:#2c3f47;font:10px system-ui}.lobby-schedule-heading i{font-style:normal;margin-left:6px}.lobby-schedule-match{font:700 11px/1.5 system-ui}.lobby-schedule-pitchers,.lobby-schedule-h2h{font:10px/1.6 system-ui;margin-top:4px}.lobby-schedule-pitchers b{font-weight:750}.lobby-stage{height:clamp(740px,88svh,850px)}.lobby-assistant{height:38%;bottom:2%;left:3%;width:25%}.assistant-dialog{bottom:5%;left:31%;right:4%;animation:assistant-panel-in .4s cubic-bezier(.2,.75,.25,1) both;transform-origin:bottom left}.assistant-dialog:after{content:"클릭하여 계속 ▸";display:block;text-align:right;color:#b3bdb8;font:9px system-ui;margin-top:9px;pointer-events:none}.lobby-event-layer{top:47%;right:10%}
@keyframes assistant-panel-in{from{opacity:0;transform:translateY(20px) scale(.97);filter:brightness(.75)}to{opacity:1;transform:translateY(0) scale(1);filter:brightness(1)}}
@media(max-width:800px){.manager-app{grid-template-rows:52px minmax(0,1fr)}.manager-header .lobby-back,.integrated-toolbar .lobby-back{font-size:var(--ui-font-small);gap:var(--ui-space-1)}.manager-header{padding-inline:10px}.manager-header-controls{gap:5px}.manager-header .integrated-version{font-size:var(--ui-font-dense);padding:2px 4px}.match-mode .integrated-play{grid-template-rows:52px minmax(0,1fr)}}
@media(max-width:600px){.lobby-stage{height:810px}.lobby-top{height:82px;padding:12px}.lobby-brand strong{font-size:var(--ui-font-label);letter-spacing:0}.lobby-brand small{font-size:5px;letter-spacing:1px}.lobby-top-actions{gap:var(--ui-space-2)}.lobby-menu-panel{left:12px;right:12px;top:91px;width:auto;padding:9px}.lobby-menu-panel .lobby-menu{gap:7px}.lobby-menu-button{padding:11px 3px;min-height:76px}.lobby-menu-button b{font-size:var(--ui-font-caption)}.lobby-menu-panel.is-collapsed{right:auto;width:190px}.lobby-club-label{top:244px;left:12px;right:12px;min-width:0;max-width:none;padding:14px 16px}.lobby-club-label h1{font-size:26px;margin:7px 0}.lobby-club-label h1 small{font-size:var(--ui-font-small)}.lobby-club-label p{font-size:var(--ui-font-caption)}.lobby-schedule{padding:10px 12px}.lobby-schedule-pitchers{font-size:var(--ui-font-xs)}.lobby-assistant{bottom:180px;left:-10px;height:195px;width:145px}.assistant-dialog{left:12px;right:12px;bottom:26px;padding:13px 14px}.assistant-speech{min-height:68px;font-size:var(--ui-font-body)}.assistant-name>span{font-size:var(--ui-font-dense)}.assistant-name small{font-size:var(--ui-font-micro)}.assistant-actions button{min-height:38px;font-size:var(--ui-font-xs);padding:8px 6px}.lobby-event-layer{top:56%;right:14px}.lobby-footer{font-size:7px}.lobby-schedule-heading strong{font-size:var(--ui-font-label)}}
@media(prefers-reduced-motion:reduce){.assistant-dialog,.lobby-assistant{animation:none}}

.lobby-club-label{z-index:2}.lobby-assistant{z-index:1;left:auto;right:7%;bottom:190px;width:220px;height:300px}.assistant-dialog{z-index:3}.game-lobby .lobby-stage{height:550px}
@media(max-width:600px){.game-lobby.has-assistant .lobby-stage{height:520px}.game-lobby .lobby-stage{height:520px}.lobby-assistant{left:18px;right:auto;bottom:150px;width:110px;height:160px}}

/* v0.3.25: semantic lobby colors follow the existing resolved studio theme. */
.game-lobby{--lobby-panel:color-mix(in srgb,var(--ui-surface) 96%,transparent);--lobby-raised:color-mix(in srgb,var(--ui-raised) 95%,transparent);color:var(--ui-text);background:var(--ui-page)}
body.lobby-mode{background:var(--ui-page)}
.lobby-top-actions>.lobby-tool{background:var(--lobby-panel);color:var(--ui-text);border-color:var(--ui-line-strong)}
.lobby-top-actions>.lobby-tool[aria-pressed=true]{background:var(--ui-accent);color:var(--ui-on-accent);border-color:var(--ui-accent)}
.lobby-menu-panel,.lobby-club-label,.assistant-dialog{background:var(--lobby-panel);border-color:var(--ui-line-strong);color:var(--ui-text);text-shadow:none}
.lobby-menu-button{background:var(--lobby-raised);border-color:var(--ui-line-strong);color:var(--ui-text)}
.lobby-menu-button small,.lobby-menu-panel-head,.lobby-club-label>span,.lobby-club-label h1 small,.assistant-name>span,.assistant-name small,.assistant-dialog:after{color:var(--ui-muted)}
.lobby-menu-icon svg{color:var(--ui-accent-text);filter:none}.lobby-menu-toggle{background:var(--ui-raised);color:var(--ui-text);border:1px solid var(--ui-line)}
.lobby-club-label h1,.lobby-club-label p,.assistant-speech,.assistant-name b{color:var(--ui-text)}.lobby-club-label i{background:var(--ui-accent-text);box-shadow:none}
.assistant-name{border-color:var(--ui-line)}.assistant-close{color:var(--ui-muted)}.assistant-close:hover{background:var(--ui-hover);color:var(--ui-text)}
.assistant-actions button{background:var(--ui-raised);color:var(--ui-text);border-color:var(--ui-line-strong)}
.assistant-actions .assistant-primary,.lobby-schedule{background:var(--ui-accent);color:var(--ui-on-accent);border-color:var(--ui-accent)}
.lobby-schedule-heading small{color:inherit}.lobby-schedule:hover{filter:brightness(1.04)}
.lobby-overview{color:var(--ui-text);background:var(--ui-page)}.lobby-overview>section{background:var(--ui-surface);border-color:var(--ui-line)}
.lobby-overview h2,.lobby-overview strong{color:var(--ui-text)}.lobby-overview .home-rank-table>div{border-color:var(--ui-line)}
.lobby-overview .rank-head,.lobby-overview .home-empty,.lobby-overview .home-rank-table small,.lobby-overview time,.lobby-overview .home-recent>button span>small{color:var(--ui-muted)}
.lobby-overview .my-club{background:var(--ui-accent-soft);color:var(--ui-text);border-left:3px solid var(--ui-accent)}
.lobby-overview button{color:var(--ui-text);border-color:var(--ui-line);background:transparent}.lobby-overview button:hover{background:var(--ui-hover)}
.lobby-overview .result-승,.lobby-overview .rank-form .form-승{color:var(--ui-success)}.lobby-overview .result-패,.lobby-overview .rank-form .form-패{color:var(--ui-danger)}
.lobby-protest,.lobby-supporters{background:var(--lobby-panel);color:var(--ui-text);border-color:var(--ui-line-strong)}
.lobby-footer{color:#fff8e7;text-shadow:0 1px 4px #000,0 2px 9px #000}
.manager-header .lobby-back{color:inherit}.manager-header .lobby-back:hover{background:var(--ui-hover);color:var(--ui-text)}
:root[data-studio-mode=light] .manager-header{background:var(--ui-surface);color:var(--ui-text)}
:root[data-studio-mode=light] .manager-header .integrated-version,:root[data-studio-mode=light] .manager-header .fullscreen-toggle{background:var(--ui-raised);color:var(--ui-text);border-color:var(--ui-line-strong)}
:root[data-studio-mode=light] .manager-header .fullscreen-toggle[aria-pressed=true]{background:var(--ui-accent);color:var(--ui-on-accent)}
:root[data-studio-mode=light] .lobby-scenery:after{background:linear-gradient(180deg,#fff9e416,transparent 42%,#fff9e40a)}
.lobby-dissolve{position:fixed;inset:0;min-height:100dvh;z-index:1200;background:#000;pointer-events:none}

/* v0.3.26: warm light glass; fade the surfaces, never the text. */
:root[data-studio-mode=light] .game-lobby{--lobby-panel:rgba(247,244,235,.84);--lobby-raised:rgba(235,231,221,.78)}
:root[data-studio-mode=light] .lobby-menu-panel,:root[data-studio-mode=light] .lobby-club-label,:root[data-studio-mode=light] .assistant-dialog{backdrop-filter:blur(14px) saturate(.85);border-color:rgba(139,132,117,.58);box-shadow:0 9px 28px #24322c21}
:root[data-studio-mode=light] .lobby-menu-button{box-shadow:0 3px 11px #26302a15,inset 0 1px #ffffff77}
:root[data-studio-mode=light] .lobby-overview{background:#e8e7df}
:root[data-studio-mode=light] .lobby-overview>section{background:rgba(248,246,238,.86);border-color:#ccc9be;box-shadow:0 3px 15px #28362c0c}
:root[data-studio-mode=light] .lobby-schedule,:root[data-studio-mode=light] .assistant-actions .assistant-primary{background:linear-gradient(135deg,color-mix(in srgb,var(--ui-accent) 20%,#f5efe2),color-mix(in srgb,var(--ui-accent) 14%,#e7dfd0));color:#29383b;border-color:color-mix(in srgb,var(--ui-accent) 40%,#8d826f);box-shadow:inset 0 1px #ffffff55}
:root[data-studio-mode=light] .lobby-schedule{border-left:3px solid color-mix(in srgb,var(--ui-accent) 65%,#938879)}
:root[data-studio-mode=light] .lobby-schedule-heading small{color:inherit;opacity:.88}
/* Identical win/loss/draw badges in both modes; rightmost is the latest game. */
.home-rank-table .rank-form{padding-bottom:5px;gap:3px;overflow:visible}
.home-rank-table .rank-form i{position:relative;display:inline-grid;place-items:center;box-sizing:border-box;flex:0 0 16px;min-width:16px;width:16px;height:19px;line-height:17px;font:10px/17px system-ui,sans-serif;font-style:normal;font-weight:600;border:1px solid var(--form-border);border-radius:3px;background:var(--form-bg);color:var(--form-ink)}
.home-rank-table .rank-form .form-승,.lobby-overview .rank-form .form-승{--form-border:#15c879;--form-bg:#ebfbf2;--form-ink:#087443;color:var(--form-ink)}
.home-rank-table .rank-form .form-패,.lobby-overview .rank-form .form-패{--form-border:#4d94ff;--form-bg:#edf5ff;--form-ink:#1765cf;color:var(--form-ink)}
.home-rank-table .rank-form .form-무,.lobby-overview .rank-form .form-무{--form-border:#b59149;--form-bg:#fff7e8;--form-ink:#75531a;color:var(--form-ink)}
.home-rank-table .rank-form i:last-child:after{content:"";position:absolute;left:-1px;right:-1px;bottom:-5px;height:2px;border-radius:2px;background:var(--form-border)}
@media(max-width:600px){.lobby-overview .home-rank-table .rank-form{gap:2px}.lobby-overview .home-rank-table .rank-form i{min-width:14px;flex-basis:14px;width:14px}}

.lobby-overview .home-rank-table>div{grid-template-columns:minmax(42px,1fr) 60px 30px 100px!important;gap:var(--ui-space-1)}
@media(max-width:600px){.lobby-overview .home-rank-table>div{grid-template-columns:minmax(42px,1fr) 60px 30px 84px!important;gap:3px}}

.drag-card-ghost{pointer-events:none!important;touch-action:none;user-select:none}.drag-card-ghost *{pointer-events:none!important}.drag-card-ghost .drag-handle,.drag-card-ghost .squad-drag-handle{opacity:.65}

/* Optional destination links are secondary to tapping the assistant dialogue. */
.assistant-actions .assistant-link{border:0!important;background:none!important;box-shadow:none!important;color:#b9def6!important;min-height:0;padding:5px 0;font:12px/1.5 system-ui,sans-serif;text-align:left;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;border-radius:0;flex:0 1 auto}
.assistant-actions .assistant-link:hover,.assistant-actions .assistant-link:focus-visible{text-decoration-thickness:2px;outline-offset:4px}
html[data-studio-mode=light] .assistant-actions .assistant-link{color:#245c87!important}
.assistant-speech::after{content:none!important}.assistant-actions{justify-content:flex-start}.assistant-name{padding-right:0}.lobby-schedule-hint{display:block;font-size:var(--ui-font-caption);line-height:1.5;opacity:.85}

/* User SVGs share a fixed icon box; only main lobby illustrations change. */
.lobby-menu-button .lobby-menu-icon{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;color:var(--ui-accent-text);line-height:0}
.lobby-menu-button .lobby-menu-icon svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%;color:inherit;filter:none}
@media(max-width:600px){.lobby-menu-button .lobby-menu-icon{flex:0 0 32px;width:32px;height:32px}}

.inbox-toolbar,.inbox-filters,.inbox-message-actions{display:flex;align-items:center;gap:var(--ui-space-3);flex-wrap:wrap}.inbox-toolbar{margin:12px 0}.lobby-inbox button{font-family:var(--ui-display);font-size:var(--ui-font-small);min-height:36px;padding:7px 11px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);background:var(--ui-raised);color:var(--ui-text)}.inbox-toolbar button:first-child,.inbox-filters [aria-pressed=true]{background:var(--ui-accent);color:var(--ui-on-accent)}.inbox-filters{padding-bottom:12px;border-bottom:1px solid var(--ui-line)}.inbox-message.is-locked{border-inline-start:3px solid var(--ui-accent)}.inbox-message-actions{margin-top:10px}.inbox-message h2{font-size:var(--ui-font-subtitle)}.inbox-message p{line-height:1.6;overflow-wrap:anywhere}.inbox-message small{font-size:var(--ui-font-caption);color:var(--ui-muted)}

.pending-reward-dot{display:inline-block;width:7px;height:7px;margin-inline-start:5px;border-radius:50%;background:#ef5454;vertical-align:super}

@media (min-width: 601px) {
  .game-lobby { --lobby-inline-gutter: 4%; }
  .game-lobby .lobby-top, .game-lobby .lobby-overview { padding-inline: var(--lobby-inline-gutter); }
  .game-lobby .lobby-menu-panel, .game-lobby .lobby-club-label, .game-lobby .lobby-footer { left: var(--lobby-inline-gutter); }
}

/* Optional face for the five main buttons. Remove data-menu-skin to use the legacy rules above. */
.lobby-menu[data-menu-skin="beveled"] {
  --menu-face-top: color-mix(in srgb, var(--ui-raised) 84%, white);
  --menu-face-bottom: color-mix(in srgb, var(--ui-surface) 87%, var(--ui-accent));
  --menu-bevel: color-mix(in srgb, var(--ui-surface) 56%, black);
  --menu-reflection: rgb(255 255 255 / .24);
  --menu-icon-face: color-mix(in srgb, var(--ui-surface) 87%, black);
}

:root[data-studio-mode="light"] .lobby-menu[data-menu-skin="beveled"] {
  --menu-face-top: color-mix(in srgb, var(--ui-raised) 45%, white);
  --menu-face-bottom: color-mix(in srgb, var(--ui-raised) 88%, var(--ui-accent));
  --menu-bevel: color-mix(in srgb, var(--ui-line-strong) 77%, var(--ui-accent));
  --menu-reflection: rgb(255 255 255 / .75);
  --menu-icon-face: color-mix(in srgb, var(--ui-raised) 90%, var(--ui-accent));
}

.lobby-menu[data-menu-skin="beveled"] .lobby-menu-button {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: var(--ui-space-2);
  min-width: 0;
  min-height: 72px;
  padding: var(--ui-space-2);
  border: 1px solid var(--ui-line-strong);
  border-top-color: color-mix(in srgb, var(--ui-line-strong) 65%, var(--ui-accent));
  border-bottom: 4px solid var(--menu-bevel);
  border-radius: var(--ui-radius-card);
  background: linear-gradient(160deg, var(--menu-face-top), var(--menu-face-bottom));
  box-shadow: inset 0 1px var(--menu-reflection), 0 3px 5px rgb(0 0 0 / .20);
  filter: none;
  transform: none;
  transition: transform 100ms ease, border-color 100ms ease, box-shadow 100ms ease;
}

.lobby-menu[data-menu-skin="beveled"] .lobby-menu-icon {
  width: 42px;
  height: 42px;
  box-sizing: border-box;
  border: 1px solid color-mix(in srgb, var(--ui-accent) 35%, var(--ui-line));
  border-radius: var(--ui-radius-control);
  background: var(--menu-icon-face);
  box-shadow: inset 0 1px 3px rgb(0 0 0 / .20);
}

.lobby-menu[data-menu-skin="beveled"] .lobby-menu-icon svg { width: 30px; height: 30px; }
.lobby-menu[data-menu-skin="beveled"] .lobby-menu-button b { font-size: var(--ui-font-label); line-height: 1.2; }
.lobby-menu[data-menu-skin="beveled"] .lobby-menu-button small { margin-top: var(--ui-space-1); white-space: normal; line-height: 1.3; }

@media (hover: hover) and (pointer: fine) {
  .lobby-menu[data-menu-skin="beveled"] .lobby-menu-button:hover {
    border-inline-color: var(--ui-accent);
    border-top-color: var(--ui-accent);
    box-shadow: inset 0 1px var(--menu-reflection), 0 4px 7px rgb(0 0 0 / .25);
    transform: translateY(-1px);
  }
}

.lobby-menu[data-menu-skin="beveled"] .lobby-menu-button:active {
  box-shadow: inset 0 2px 5px rgb(0 0 0 / .22);
  transform: translateY(2px);
}

.lobby-menu[data-menu-skin="beveled"] .lobby-menu-button:focus-visible {
  outline: 2px solid var(--ui-accent-text);
  outline-offset: 2px;
}

@media (max-width: 880px) {
  .lobby-menu[data-menu-skin="beveled"] .lobby-menu-button {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    align-content: center;
    gap: var(--ui-space-1);
    padding: var(--ui-space-1);
    text-align: center;
  }
  .lobby-menu[data-menu-skin="beveled"] .lobby-menu-icon { width: 34px; height: 34px; }
  .lobby-menu[data-menu-skin="beveled"] .lobby-menu-icon svg { width: 25px; height: 25px; }
  .lobby-menu[data-menu-skin="beveled"] .lobby-menu-button b { font-size: var(--ui-font-small); white-space: normal; }
  .lobby-menu[data-menu-skin="beveled"] .lobby-menu-button small { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .lobby-menu[data-menu-skin="beveled"] .lobby-menu-button { transition: none; }
}

.lobby-feature-row {
  position:relative; margin-inline:var(--lobby-feature-gutter,4%); z-index:2;
  display:grid; grid-template-columns:minmax(240px,.8fr) minmax(420px,1.5fr); gap:var(--ui-space-6);
}
.game-lobby .lobby-feature-row .lobby-club-label {
  position:static; min-width:0; max-width:none; width:100%; text-align:left;
}
.game-lobby .lobby-stage,.game-lobby.has-assistant .lobby-stage {
  height:auto; min-height:610px; padding:266px 0 28px;
}
.game-lobby .lobby-stage > .lobby-top {position:absolute; inset:0 0 auto; gap:6px}
.lobby-top-actions {flex:none}
.lobby-brand {flex:0 1 255px; min-width:0}
.lobby-brand img {display:block; width:100%; height:auto}
.lobby-menu-slot {position:relative; min-width:0}
.lobby-menu-slot > .lobby-menu-button {width:100%; height:100%; cursor:default}
.lobby-menu[data-menu-skin="beveled"] .lobby-menu-slot > .lobby-menu-button[aria-disabled="true"] {transform:none; filter:none; border-inline-color:var(--ui-line-strong)}
.lobby-menu-slot > .lobby-menu-button::after {content:""; position:absolute; inset:0; border-radius:inherit; background:rgb(120 120 120 / 50%); pointer-events:none}
.lobby-menu-slot:has(.lobby-menu-button:focus-visible),.lobby-menu-slot[data-tooltip-open] {z-index:2}
.lobby-menu-panel:has(.lobby-menu-slot) {z-index:3}
.lobby-growth-tooltip {
  position:absolute; inset-block-start:calc(100% + 8px); inset-inline-start:50%; transform:translateX(-50%);
  width:max-content; max-width:min(240px,80vw); padding:7px 9px; border:1px solid var(--ui-line-strong);
  border-radius:var(--ui-radius-control); background:var(--ui-surface); color:var(--ui-text);
  box-shadow:0 3px 9px #0004; font:var(--ui-font-caption)/1.4 var(--ui-font-system); text-align:center;
  visibility:hidden; pointer-events:none;
}
.lobby-growth-tooltip::before {
  content:""; position:absolute; inset-block-start:-5px; inset-inline-start:calc(50% - 4px);
  width:8px; height:8px; transform:rotate(45deg); background:inherit; border-block-start:inherit; border-inline-start:inherit;
}
.lobby-menu-slot[data-tooltip-open] .lobby-growth-tooltip,.lobby-menu-slot:has(.lobby-menu-button:focus-visible) .lobby-growth-tooltip {visibility:visible}
@media (hover:hover) and (pointer:fine) {
  .lobby-menu-slot:has(.lobby-menu-button:hover) {z-index:2}
  .lobby-menu-slot:has(.lobby-menu-button:hover) .lobby-growth-tooltip {visibility:visible}
}
.game-lobby dialog.assistant-dialog {
  position:fixed; inset:auto 4% var(--lobby-assistant-bottom,28px) 31%; margin:0;
  width:auto; max-width:none; box-sizing:border-box; max-height:calc(100dvh - var(--lobby-assistant-bottom,28px) - 12px);
  overflow-y:auto; overscroll-behavior:contain;
}
.game-lobby dialog.assistant-dialog::backdrop {background:rgb(0 0 0 / 42%)}
.assistant-mobile-portrait {display:none}
.assistant-dialog-card {display:contents}
.lobby-fan-banner {
  position:relative; margin:0; min-width:0; min-height:128px; overflow:hidden;
  border:1px solid var(--ui-line-strong); border-radius:var(--ui-radius-modal); background:#15263e;
}
.lobby-fan-banner canvas {position:absolute; inset:0; width:100%; height:100%; object-fit:cover; image-rendering:pixelated}
.lobby-fan-banner figcaption {
  position:absolute; inset:auto auto 0 0; display:grid; gap:3px; min-width:112px;
  padding:9px 13px; color:#fff1d7; background:#10192cec; border-radius:0 8px 0 0;
}
.lobby-fan-banner figcaption small {font:var(--ui-font-caption)/1.3 var(--ui-display); color:#f4c389}
.lobby-fan-banner figcaption strong {font:var(--ui-font-label)/1.3 var(--ui-display)}
.lobby-fan-banner>i {position:absolute; top:21%; left:30%; width:5px; height:5px; background:#ffcf78; animation:fan-spark 2.6s steps(4,end) infinite}
.lobby-fan-banner>i:nth-of-type(2) {top:13%;left:61%;background:#ff9c9c;animation-delay:.55s}
.lobby-fan-banner>i:nth-of-type(3) {top:27%;left:83%;background:#a9dbda;animation-delay:1.2s}
.lobby-fan-banner[data-fan-mood=frenzy]>i {animation-duration:1.25s}
@keyframes fan-spark {
  0%,70%,100% {opacity:0; transform:scale(.5)}
  15% {opacity:1; transform:scale(1.5); box-shadow:0 -10px #ffe3aa,10px 0 #ffe3aa,0 10px #ffe3aa,-10px 0 #ffe3aa}
  55% {opacity:.35; transform:scale(2.2)}
}
@media(max-width:800px) {
  .lobby-feature-row {grid-template-columns:minmax(0,1fr); gap:10px}
  .lobby-fan-banner {min-height:0; height:104px}
  .game-lobby .lobby-stage,.game-lobby.has-assistant .lobby-stage {min-height:0; padding:244px 0 14px}
  .lobby-brand {flex-basis:185px}
  .game-lobby dialog.assistant-dialog {
    inset:0; width:min(440px,calc(100% - 24px)); max-height:calc(100dvh - 24px); margin:auto;
    padding:0; border:0; background:none; box-shadow:none; backdrop-filter:none; overflow:hidden;
  }
  .game-lobby dialog.assistant-dialog[open] {display:flex; flex-direction:column; align-items:start}
  .game-lobby .lobby-assistant {display:none}
  .game-lobby .assistant-mobile-portrait {
    display:block; flex:none; inline-size:auto; block-size:clamp(64px,23dvh,150px);
    max-inline-size:100%; margin-inline-start:12px; object-fit:contain; object-position:bottom;
    pointer-events:none;
  }
  .game-lobby .assistant-dialog-card {
    display:block; inline-size:100%; min-block-size:0; overflow:auto; overscroll-behavior:contain;
    padding:13px 14px; background:var(--lobby-panel); border:1px solid var(--ui-line-strong);
    border-radius:var(--ui-radius-modal);
  }
}
.game-lobby .assistant-dialog::after {content:none}
.game-lobby .assistant-actions {justify-content:flex-end}
.game-lobby .assistant-actions .assistant-next {min-height:44px; min-width:64px; padding:4px 12px; flex:0 0 auto}
.lobby-tutorial-resume {width:100%; margin-top:8px; min-height:40px}
@media(max-width:600px) {
  .game-lobby .lobby-stage {--lobby-feature-gutter:var(--lobby-inline-gutter,12px)}
}
@media(prefers-reduced-motion:reduce) { .lobby-fan-banner>i {animation:none;display:none} }

.stadium-chat-notice {
  margin:0; padding:8px 10px; color:var(--ui-text,#f3eee3);
  background:var(--ui-accent-soft,#26354a); border-inline-start:3px solid var(--ui-accent,#d39e58);
  overflow-wrap:anywhere; max-height:5.5em; overflow:auto; font-size:12px;
}
.stadium-chat-notice[hidden] {display:none}
.stadium-chat-notice strong {margin-inline-end:4px}



/* source: implementation/playable-v0.1/modal-polish.css */
/* Default work-panel placement is top anchored; centered critical notices require an explicit exception.
   Detail modals only. One vertical scrolling body, persistent headings/close. */
.manager-mode .match-sheet,.lobby-mode .match-sheet,.match-mode .match-sheet{
 box-sizing:border-box;max-height:calc(var(--app-viewport-height,100dvh) - var(--ui-modal-top) - var(--ui-modal-bottom));overflow:hidden;border-radius:var(--modal-radius)}
.match-sheet[data-panel="players"],.match-sheet[data-panel="entries"],.match-sheet[data-panel="franchise-roster"],.match-sheet[data-panel="player"],.match-sheet[data-panel="season-result"]{width:min(900px,calc(100vw - 24px))}
.match-sheet>header{flex:0 0 auto;gap:var(--ui-space-4);padding:12px var(--modal-pad);background:var(--ui-raised);min-width:0}
.match-sheet>header h2{min-width:0;flex:1;font-size:var(--ui-dialog-heading);line-height:1.4;margin:0;overflow-wrap:anywhere}
.match-sheet>header button{flex-shrink:0;min-width:44px;min-height:44px;line-height:1;font-size:23px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control)}
.match-sheet .sheet-body{flex:1 1 auto;min-height:0;min-width:0;overflow:auto;padding:var(--modal-pad);font-size:var(--ui-font-body);line-height:1.55;scrollbar-gutter:stable;touch-action:pan-x pan-y}
/* Legacy match-only CSS used to suppress every h3 in every host modal. */
.match-sheet .sheet-body h3{display:block;font-size:var(--ui-font-label);line-height:1.45;margin:16px 0 10px;color:var(--ui-text)}
.match-sheet .sheet-body h3:first-child{margin-top:0}
.match-sheet .sheet-body h4{font-size:var(--ui-font-body);line-height:1.45;margin:14px 0 8px}
.match-sheet .sheet-body :is(p.note,p.squad-help,.roster-list-summary){font-size:var(--ui-font-small);line-height:1.6;color:var(--ui-muted);margin:0 0 12px;overflow-wrap:anywhere}
.match-sheet .sheet-body :is(label,fieldset,.form,.edit-ratings,.trade-form){min-width:0;max-width:100%;box-sizing:border-box}
.match-sheet .sheet-body :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){max-width:100%;box-sizing:border-box}
.match-sheet .sheet-body fieldset{margin-inline:0}
.match-sheet .sheet-actions:not(.player-editor-actions):not(.player-editor-navigation){display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:var(--ui-space-3);margin-top:14px}
.match-sheet .sheet-actions>button{min-height:40px;white-space:normal;overflow-wrap:anywhere;line-height:1.4}
.match-sheet .sheet-tabs{position:sticky;top:calc(-1 * var(--modal-pad));z-index:2;display:flex;flex-wrap:wrap;gap:var(--ui-space-2);padding:8px 0;background:var(--ui-surface);border-bottom:1px solid var(--ui-line);margin-bottom:12px}
.match-sheet .sheet-tabs>button{flex:1;min-height:38px;font-size:var(--ui-font-small)}
.lineup-slot-preview{box-sizing:border-box;overflow:hidden;max-height:calc(100dvh - 24px)}
.lineup-slot-preview[open]{display:flex;flex-direction:column}
.lineup-slot-preview>header,.lineup-slot-preview>footer{flex:0 0 auto;min-width:0;padding:12px var(--modal-pad)}
.lineup-slot-preview>header>div{min-width:0}
.lineup-slot-preview h2{font-size:var(--ui-dialog-heading);line-height:1.4;overflow-wrap:anywhere;margin:4px 0 0}
.lineup-slot-preview>header button{flex-shrink:0;min-width:44px;min-height:44px}
.lineup-slot-preview .slot-preview-body{flex:1 1 auto;min-height:0;max-height:none;overflow:auto;padding:var(--modal-pad);scrollbar-gutter:stable;touch-action:pan-x pan-y}
.lineup-slot-preview>footer button{min-height:40px;min-width:76px}
body.field-studio .manager-dialog{box-sizing:border-box;padding:0;overflow:hidden;max-height:calc(100dvh - 24px)}
body.field-studio .manager-dialog[open]{display:flex;flex-direction:column}
body.field-studio .manager-dialog>.manager-heading,body.field-studio .manager-dialog>.manager-tabs,body.field-studio .manager-dialog>.manager-draft-actions{flex:0 0 auto;margin:0;padding:10px var(--modal-pad)}
body.field-studio .manager-dialog>.manager-content{flex:1 1 auto;min-height:0;overflow:auto;padding:12px var(--modal-pad);touch-action:pan-x pan-y}
body.field-studio .manager-heading h2{font-size:var(--ui-dialog-heading);margin:4px 0;line-height:1.4}
body.field-studio .manager-heading>button{min-height:40px;min-width:52px}
.game-end-dialog{overflow:hidden}
.game-end-dialog .end-content{min-height:0;touch-action:pan-x pan-y}
@media(max-width:600px){
 
 .manager-mode .match-sheet,.lobby-mode .match-sheet,.match-mode .match-sheet{width:calc(100vw - 16px);max-height:calc(var(--app-viewport-height,100dvh) - var(--ui-modal-top) - var(--ui-modal-bottom))}
 .match-sheet .sheet-body :is(input[type="text"],input[type="search"],input[type="number"],textarea,select){font-size:var(--ui-font-subtitle)}
 .lineup-slot-preview{width:calc(100vw - 16px);max-height:calc(var(--app-viewport-height,100dvh) - var(--ui-modal-top) - var(--ui-modal-bottom))}
 body.field-studio .manager-dialog{width:calc(100vw - 16px);max-height:calc(var(--app-viewport-height,100dvh) - var(--ui-modal-top) - var(--ui-modal-bottom))}
}

/* Keep hand labels subordinate to names, including compact pitcher rows. */
.pitching-hand{font:inherit;font-size:.8em;font-weight:500;white-space:nowrap}

/* source: implementation/playable-v0.1/rest-day.css */
body .match-sheet[data-panel="restday"] {
  --restday-height: var(--app-viewport-height, 100dvh);
  left: 50%;
  right: auto;
  top: calc(var(--restday-height) / 2);
  bottom: auto;
  width: min(640px, calc(100vw - 16px));
  transform: translate(-50%, -50%);
}
body .match-sheet[data-panel="restday"]:has([data-restday-step="targets"]) {
  top: var(--ui-modal-top);
  height: calc(var(--restday-height) - var(--ui-modal-top) - var(--ui-modal-bottom));
  transform: translateX(-50%);
}
.restday-workspace { display: grid; gap: var(--ui-space-4); min-width: 0; }
.restday-heading, .restday-saved, .restday-searchbar, .restday-preview-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}
.restday-heading h3 { margin: 0 0 var(--ui-space-1); }
.restday-heading p, .restday-current p, .restday-saved small, .restday-preview small {
  margin: 0;
  color: var(--ui-muted);
  font-size: var(--ui-font-small);
}
.restday-heading button { flex: 0 0 auto; }
.restday-saved { padding: var(--ui-space-3); border: 1px solid var(--ui-line); border-radius: var(--ui-radius-card); }
.restday-saved small { display: block; }
.restday-saved > div:last-child { display: flex; gap: var(--ui-space-1); }
.restday-command-list, .restday-player-list { display: grid; gap: var(--ui-space-2); min-width: 0; }
.restday-command-list button, .restday-player-list button {
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
  text-align: start;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-color: var(--ui-line);
}
.restday-command-list button { display: flex; justify-content: space-between; }
.restday-command-list small, .restday-player-list small { color: var(--ui-muted); }
.restday-command-list small { display: block; }
.restday-command-effect { color: var(--ui-accent-text); font-size: var(--ui-font-xs); white-space: nowrap; }
.restday-filters { display: flex; gap: var(--ui-space-1); }
.restday-filters button { flex: 1 0 auto; }
.restday-searchbar input { min-width: 0; width: min(48%, 220px); }
.restday-filters button[aria-pressed="true"], .restday-player-list button[aria-pressed="true"] {
  border-color: var(--ui-accent);
  background: var(--ui-accent-soft);
}
.restday-player-list button { display: grid; grid-template-columns: minmax(0,1fr) auto 1em; min-height: 42px; }
.restday-player-list button[hidden], .restday-player-list [hidden] { display: none; }
.restday-player-list button > span:first-child { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ui-space-1); }
.restday-player-list .condition-icon { width: 13px; height: 13px; }
.restday-player-list button > span:last-child { color: var(--ui-accent-text); text-align: center; }
.restday-current { padding-top: var(--ui-space-2); border-top: 1px solid var(--ui-line); }
.restday-current p { margin-block: var(--ui-space-2); }
.restday-footer {
  flex: 0 0 auto;
  display: grid;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3) var(--modal-pad);
  border-top: 1px solid var(--ui-line);
  background: var(--ui-raised);
}
.restday-preview { display: grid; gap: var(--ui-space-1); }
.restday-preview-heading > strong:last-child { color: var(--ui-accent-text); }
.restday-selected { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--ui-space-1); }
.restday-selected button {
  width: 100%;
  min-height: 30px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto 1em;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 2px var(--ui-space-2);
  text-align: start;
  font-size: var(--ui-font-small);
}
.restday-selected button span { display: inline-flex; align-items: center; gap: var(--ui-space-1); }
.restday-actions { display: grid; grid-template-columns: 2fr 3fr; gap: var(--ui-space-2); }
.restday-footer button { min-height: 38px; }
.restday-selected button { min-height: 28px; }
@media (max-width: 420px) {
  .restday-command-effect { display: none; }
  .restday-heading { align-items: start; }
  .restday-heading button, .restday-filters button { padding-inline: var(--ui-space-2); }
}

/* source: implementation/playable-v0.1/growth.css */
.growth-report{color:var(--ui-text);font-size:var(--ui-font-body);line-height:1.5;min-width:0;max-width:1100px;margin:auto;padding:12px}
.growth-report *{box-sizing:border-box}.growth-page-heading h1{font-size:25px;margin:4px 0}.growth-page-heading small{font-size:var(--ui-font-xs);color:var(--ui-muted)}.growth-page-heading p{margin:0 0 16px;color:var(--ui-muted)}
.growth-controls{display:flex;gap:14px;flex-wrap:wrap;align-items:end;margin:12px 0 16px}.growth-controls>div{display:flex;gap:var(--ui-space-2)}.growth-controls button,.growth-player-heading button{font:inherit;min-height:40px;padding:7px 16px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);background:var(--ui-raised);color:var(--ui-text)}.growth-controls [aria-pressed=true]{background:var(--ui-accent);color:var(--ui-on-accent);border-color:var(--ui-accent)}.growth-controls label{display:grid;gap:var(--ui-space-1);font-size:var(--ui-font-caption);color:var(--ui-muted);min-width:0}.growth-controls select{min-width:0;max-width:100%;min-height:40px;padding:6px 10px;font:inherit;background:var(--ui-surface);color:var(--ui-text);border:1px solid var(--ui-line);border-radius:var(--ui-radius-control)}
.growth-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ui-space-3)}.growth-summary>span{background:var(--ui-raised);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);padding:12px;font-size:var(--ui-font-caption);color:var(--ui-muted)}.growth-summary b{display:block;font-size:var(--ui-font-heading);color:var(--ui-text)}.growth-note{font-size:var(--ui-font-caption);color:var(--ui-muted);margin:12px 0}.growth-empty{padding:22px 12px;text-align:center;color:var(--ui-muted);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);margin:14px 0;font-size:var(--ui-font-body)}.growth-empty p{margin:6px 0 0;font-size:var(--ui-font-small)}
.growth-roster{display:grid;gap:var(--ui-space-3)}.growth-row{border:1px solid var(--ui-line);background:var(--ui-surface);border-radius:var(--ui-radius-card);padding:10px 12px;display:grid;grid-template-columns:minmax(140px,.8fr) minmax(0,1fr);gap:10px;align-items:center}.growth-row>button{background:transparent;border:0;color:var(--ui-text);text-align:left;padding:3px;min-height:44px;min-width:0}.growth-identity{display:flex;gap:10px;align-items:baseline;overflow-wrap:anywhere}.growth-identity strong{font-size:var(--ui-font-label)}.growth-identity>span,.growth-row small{font-size:var(--ui-font-caption);color:var(--ui-muted)}.growth-row small{display:block;margin-top:4px}.growth-gains,.growth-player-gains{display:flex;flex-wrap:wrap;gap:7px 12px}.growth-gains b,.growth-player-gains b,.growth-history b{color:var(--ui-success);font-variant-numeric:tabular-nums}.growth-no-change{color:var(--ui-muted);font-size:var(--ui-font-small)}.growth-player-heading h3{font-size:21px!important;margin:12px 0 0}.growth-player-heading p{font-size:var(--ui-font-small);color:var(--ui-muted)}.growth-history{padding:0;margin:14px 0;list-style:none}.growth-history li{display:grid;grid-template-columns:65px 1fr 60px;gap:var(--ui-space-3);padding:10px;border-bottom:1px solid var(--ui-line)}.growth-history time{color:var(--ui-muted)}.growth-history b{text-align:right}
.player-detail-growth{margin:12px 0;min-height:40px;font:inherit;padding:7px 13px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);background:var(--ui-raised);color:var(--ui-text)}.player-detail-dialog>footer[hidden]{display:none!important}.player-detail-dialog[data-growth-view] .player-detail-body{overflow:auto}
/* Five lobby entries retain one row, with scroll rather than tiny mobile targets. */
.lobby-menu-panel .lobby-menu{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:600px){.growth-report{padding:8px}.growth-controls{gap:10px}.growth-controls>label{flex:1 1 100%}.growth-controls select{width:100%;font-size:var(--ui-font-subtitle)}.growth-summary{gap:5px}.growth-summary>span{padding:9px 7px}.growth-summary b{font-size:var(--ui-font-subtitle)}.growth-row{grid-template-columns:1fr;gap:5px;padding:9px 10px}.growth-page-heading h1{font-size:22px}.lobby-menu-panel .lobby-menu{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding-bottom:3px}.lobby-menu-panel .lobby-menu-button{flex:0 0 78px;min-height:76px}.lobby-menu-panel .lobby-menu-button small{white-space:normal}.lobby-menu-panel .lobby-menu-icon svg{width:24px;height:24px}}

.growth-section-tabs{display:flex;gap:var(--ui-space-2);margin:10px 0 16px}.growth-section-tabs button,.development-actions button{min-height:40px;padding:7px 13px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);background:var(--ui-raised);color:var(--ui-text);font:inherit}.growth-section-tabs [aria-pressed=true],.development-actions [data-action=plan-save]{background:var(--ui-accent);color:var(--ui-on-accent)}
.development-player-picker,.development-form label{display:grid;gap:var(--ui-space-2);min-width:0;font-size:var(--ui-font-small)}.development-player-picker select,.development-form select{min-height:42px;width:100%;min-width:0;max-width:100%;box-sizing:border-box;background:var(--ui-surface);color:var(--ui-text);border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);padding:7px;font:inherit}.development-form{display:grid;gap:14px;margin:16px 0}.development-outlook{border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);padding:12px;background:var(--ui-raised)}.development-outlook h4{margin:0 0 8px}.development-outlook p{font-size:var(--ui-font-small);margin:7px 0}.development-outlook small{color:var(--ui-muted);font-size:var(--ui-font-caption)}.development-pending{padding:12px;border-left:3px solid var(--ui-accent);background:var(--ui-accent-soft);line-height:1.7}.development-blocked,[data-plan-status]{font-size:var(--ui-font-small);color:var(--ui-accent-text);margin:0}.development-actions{display:flex;gap:var(--ui-space-3);flex-wrap:wrap}.development-actions button{flex:1;min-width:85px}.development-actions button:disabled{opacity:.5}
@media(max-width:600px){.development-form select,.development-player-picker select{font-size:var(--ui-font-subtitle)}.development-actions{position:sticky;bottom:0;padding:8px 0;background:var(--ui-surface)}}

.growth-basis{display:block;flex-basis:100%;font:11px/1.5 system-ui,sans-serif;color:var(--ui-muted);overflow-wrap:anywhere}

/* The manager owns vertical scrolling; reports must never be clipped by its old overflow:hidden. */
.manager-content:has(>.growth-report){overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.manager-content>.growth-report{min-height:100%;height:auto;margin-block:0}
.growth-report [hidden]{display:none!important}
.growth-squad{display:grid;gap:7px;min-width:0}.growth-squad>h2{display:block!important;font-size:var(--ui-font-subtitle);margin:16px 0 2px;padding-bottom:8px;border-bottom:1px solid var(--ui-line)}.growth-squad>h2 small{font:11px system-ui,sans-serif;color:var(--ui-muted)}
.development-list-form{gap:var(--ui-space-4);margin-top:8px}.development-filters{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-space-3)}.development-filter{display:flex;gap:3px;padding:3px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);background:var(--ui-surface)}
.development-filter button{min-height:34px;padding:5px 15px;font-size:var(--ui-font-small);border:0;background:transparent;color:var(--ui-text);border-radius:var(--ui-radius-small)}.development-filter button[aria-pressed=true]{background:var(--ui-accent);color:var(--ui-on-accent)}
.development-bulk{display:grid;gap:var(--ui-space-3);padding:10px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);background:var(--ui-raised)}.development-bulk>strong{font-size:var(--ui-font-small)}.development-bulk>small,.development-list-footer>small{font:11px/1.5 system-ui,sans-serif;color:var(--ui-muted)}
.development-bulk-buttons{display:flex;gap:5px;flex-wrap:wrap}.development-bulk-buttons button{min-height:32px;padding:5px 9px;font-size:var(--ui-font-caption);border:1px solid var(--ui-line);background:var(--ui-surface);color:var(--ui-text);border-radius:var(--ui-radius-small)}
.development-card-list{display:grid;gap:5px;min-width:0}.development-plan-card{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);align-items:center;gap:8px 14px;padding:8px 10px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);background:var(--ui-surface);min-width:0}
.development-card-heading{display:flex;flex-wrap:wrap;align-items:center;gap:3px 8px;min-width:0}.development-card-heading>button{display:inline-flex;align-items:center;gap:3px;font:13px var(--ui-display,system-ui);background:transparent;border:0;padding:0;min-height:28px;color:var(--ui-text)}.development-card-heading>span{font-size:var(--ui-font-xs);color:var(--ui-muted)}.development-card-heading>small{flex-basis:100%;font:10px/1.4 system-ui,sans-serif;color:var(--ui-muted);overflow-wrap:anywhere}
.development-targets{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--ui-space-1);min-width:0;border:0;padding:0;margin:0}.development-plan-card[data-kind=pitchers] .development-targets{grid-template-columns:repeat(5,minmax(0,1fr))}.development-targets legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.development-targets label{position:relative;display:block;min-width:0;cursor:pointer}.development-targets input{position:absolute;width:1px;min-height:0;height:1px;margin:0;opacity:0;pointer-events:none}.development-targets span{display:block;border:1px solid var(--ui-line);border-radius:var(--ui-radius-small);padding:6px 3px;text-align:center;font:11px/1.3 system-ui,sans-serif;white-space:nowrap;color:var(--ui-muted);background:var(--ui-raised)}.development-targets input:checked+span{background:var(--ui-accent-soft);border-color:var(--ui-accent);color:var(--ui-accent-text);font-weight:700}.development-targets input:focus-visible+span{outline:2px solid var(--ui-accent);outline-offset:2px}.development-targets:disabled{opacity:.5;cursor:default}
.development-list-footer{position:sticky;bottom:-1px;z-index:3;background:var(--ui-page);border-top:1px solid var(--ui-line);padding:10px 0 3px;display:grid;gap:var(--ui-space-2)}.development-list-footer .development-actions{padding:0;background:none;position:static}.development-list-footer .development-actions button{flex:0 1 190px}.development-list-empty{text-align:center;font-size:var(--ui-font-small);color:var(--ui-muted);padding:20px}
@media(max-width:650px){.development-plan-card{grid-template-columns:minmax(0,1fr);gap:var(--ui-space-2);padding:8px}.development-card-heading>small{flex-basis:auto;flex-grow:1}.development-targets,.development-plan-card[data-kind=pitchers] .development-targets{grid-template-columns:repeat(3,minmax(0,1fr))}.development-targets span{min-height:32px;padding-block:8px}.development-filter button{padding-inline:11px}.development-bulk-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.development-bulk-buttons button{padding:5px 3px;font-size:var(--ui-font-xs)}.development-list-footer .development-actions button{flex:1;min-width:0}.growth-squad .growth-row{padding:8px}.growth-squad>h2{position:sticky;top:-1px;z-index:2;background:var(--ui-page);padding-top:8px}}

/* One compact row on both PC and mobile. Only the metrics strip pans on very narrow screens. */
.development-list-form .development-plan-card{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:var(--ui-space-4);padding:6px 10px;min-height:44px}
.development-list-form .development-card-heading{display:flex;flex-wrap:nowrap;flex:0 0 auto;gap:7px;min-width:0}
.development-list-form .development-card-heading>button[data-action=player-open]{display:inline-flex;align-items:center;gap:3px;min-height:30px;max-width:125px;white-space:nowrap}
.development-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.development-position{white-space:nowrap}
.development-list-form [data-plan-cycle]{min-height:30px;min-width:62px;max-width:100px;padding:4px 7px;font:11px/1.3 system-ui,sans-serif;border:1px solid var(--ui-line);border-radius:var(--ui-radius-small);color:var(--ui-text);background:var(--ui-raised);white-space:nowrap;flex:0 0 auto}
.development-list-form .development-plan-card:has([data-plan-target]:checked:not([value=balanced])) [data-plan-cycle]{border-color:var(--ui-accent);color:var(--ui-accent-text);background:var(--ui-accent-soft)}
.development-ability-strip{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:var(--ui-space-4);min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;touch-action:pan-x pan-y;font:11px/1.35 system-ui,sans-serif;font-variant-numeric:tabular-nums}
.development-ability-strip>span{display:inline-flex;align-items:baseline;gap:3px;white-space:nowrap;flex:0 0 auto}.development-ability-strip small{color:var(--ui-muted);font:inherit}.development-ability-strip b{font-weight:600}.development-ability-strip .is-training-focus b{color:var(--ui-accent-text)}
@media(max-width:650px){.development-list-form .development-plan-card{gap:var(--ui-space-2);padding:5px 6px;min-height:41px}.development-list-form .development-card-heading{gap:var(--ui-space-1)}.development-list-form .development-card-heading>button[data-action=player-open]{font-size:var(--ui-font-caption);max-width:91px}.development-list-form .development-position{font-size:var(--ui-font-dense)}.development-list-form [data-plan-cycle]{font-size:var(--ui-font-xs);min-width:48px;padding:4px 5px;min-height:29px}.development-list-form .development-ability-strip{gap:7px;font-size:var(--ui-font-xs);justify-content:flex-start}.development-ability-strip>span{gap:1px}}

/* XP sits on the lower edge; identity / integer abilities / goal stay in one row. */
.development-list-form .development-plan-card{position:relative;justify-content:flex-start;gap:10px;padding:6px 9px 12px;min-height:49px;overflow:hidden}
.development-list-form .development-card-heading{flex:0 1 auto;min-width:0}
.development-list-form .development-ability-strip{flex:1 1 0;min-width:0;justify-content:flex-start;margin:0;scrollbar-width:none}
.development-list-form [data-plan-cycle]{flex:0 0 auto;margin-left:auto;align-self:center}
.development-xp{position:absolute;inset:auto 0 0;height:6px;background:var(--ui-line);font-variant-numeric:tabular-nums}
.development-xp>span{display:block;height:100%;background:var(--ui-accent);max-width:100%}
.development-xp>small{position:absolute;left:0;bottom:0;min-width:27px;padding:0 3px;background:var(--ui-surface);color:var(--ui-text);font:700 9px/10px system-ui,sans-serif;border-radius:0 3px 0 0}
@media(max-width:650px){.development-list-form .development-plan-card{gap:5px;padding:5px 5px 11px;min-height:43px}.development-list-form .development-card-heading{gap:3px}.development-list-form .development-ability-strip{gap:5px;font-size:var(--ui-font-xs)}.development-list-form [data-plan-cycle]{min-width:49px}.development-list-form .development-card-heading>button[data-action=player-open]{max-width:84px}}

.development-xp>.development-xp-label{display:inline-flex;align-items:center;gap:2px;min-height:11px;line-height:11px}
.development-xp [data-xp-limit]{display:inline-flex;width:11px;height:11px;flex-shrink:0}.development-xp [data-xp-limit]>svg{display:block;width:100%;height:100%}
.development-xp.is-limit>span{background:var(--ui-warning,#e6ad45)}.development-xp.is-limit>.development-xp-label{color:var(--ui-warning,#e6ad45);font-weight:800}

/* v337 shared growth controls, live XP and compact five-entry lobby */
.growth-section-tabs button,.growth-controls [data-action="growth-kind"]{font-family:var(--ui-display,system-ui)}
.growth-current-xp{display:flex;align-items:center;flex-wrap:wrap;gap:5px 10px;font:12px/1.5 system-ui;color:var(--ui-text);margin:3px 0 5px}.growth-mini-bar{display:block;flex:0 0 90px;height:5px;background:var(--ui-line);border-radius:3px;overflow:hidden}.growth-mini-bar i{display:block;height:100%;background:var(--ui-accent)}
.health-panel-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:8px}.health-panel-help{font-size:var(--ui-font-small);line-height:1.6;margin:8px 0 14px}.health-player.is-injured{border-color:var(--ui-danger);background:var(--ui-danger-bg)}.health-player.is-injured strong{color:var(--ui-danger)}.settings-injury-frequency{padding:12px 0;margin:12px 0;border-block:1px solid var(--ui-line)}.settings-injury-frequency h3{margin:0 0 8px}
.squad-identity strong,.entry-roster-row strong{display:inline-flex;align-items:center;gap:2px;min-width:0}.squad-identity .condition-badge,.entry-roster-row .condition-badge{flex:none}.squad-identity .injury-badge,.entry-roster-row .injury-badge{flex:none}
@media(max-width:600px){.lobby-menu-panel .lobby-menu{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;overflow:visible;padding:0}.lobby-menu-panel .lobby-menu-button{min-width:0;width:100%;min-height:68px;padding:8px 3px;box-sizing:border-box}.lobby-menu-panel .lobby-menu-button strong{font-size:var(--ui-font-small)}.lobby-menu-panel .lobby-menu-button small{font-size:var(--ui-font-dense);overflow-wrap:anywhere}.growth-current-xp{font-size:var(--ui-font-caption)}}

/* Both sections share one header and tab row before any section-specific controls. */
.growth-report>.growth-page-heading{display:block;min-height:60px;margin:0;padding:0}.growth-report>.growth-page-heading small{display:block;font:10px/1.4 system-ui;letter-spacing:1.4px;color:var(--ui-muted)}.growth-report>.growth-page-heading h1{margin:5px 0 0;font-size:26px;line-height:1.25}.growth-report>.growth-section-tabs{margin:10px 0 16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-2)}.growth-report>.growth-section-tabs button{min-width:0;margin:0}.growth-report>.growth-player-heading{min-height:70px;margin:0;padding:0}.growth-player-heading h3{margin:8px 0}.development-unsaved-dialog{width:min(440px,calc(100% - 28px));box-sizing:border-box;padding:0;border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal);background:var(--ui-surface);color:var(--ui-text);font-family:system-ui,sans-serif}.development-unsaved-dialog::backdrop{background:#0008;backdrop-filter:blur(3px)}.development-unsaved-dialog header,.development-unsaved-dialog .development-unsaved-body{display:block;padding:18px}.development-unsaved-dialog header{border-bottom:1px solid var(--ui-line)}.development-unsaved-dialog h2{font-size:var(--ui-font-heading);margin:0}.development-unsaved-dialog p{font-size:var(--ui-font-label);line-height:1.7;margin:0 0 18px}.development-unsaved-dialog .two-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.development-unsaved-dialog button{min-height:42px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);color:var(--ui-text);background:var(--ui-raised);font:inherit}.development-unsaved-dialog [data-development-discard]{background:var(--ui-accent);color:var(--ui-on-accent)}
@media(max-width:600px){.growth-report>.growth-page-heading h1{font-size:22px}.growth-report>.growth-page-heading{min-height:56px}}
.development-unsaved-dialog>header{display:block!important}

/* source: implementation/playable-v0.1/record-scroll.css */
/* One bounded table viewport. Override old auto overscroll and mobile grid minimums. */
.manager-content:has(.records-workspace){overflow:hidden;min-height:0;overscroll-behavior:none}
.records-workspace{height:100%;min-height:0;min-width:0;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}
.record-table-block{min-width:0;min-height:0;overflow:hidden}
.record-mode-toggle{margin-inline-end:auto}
.record-mode-toggle button{min-height:32px;padding-inline:10px}
.record-coverage{display:block;font-size:var(--ui-font-xs);color:var(--ui-muted);white-space:nowrap}
.record-table-scroll{display:block;position:relative;isolation:isolate;min-width:0;min-height:0;padding:0;overflow:auto;overscroll-behavior:none!important;overflow-anchor:none;touch-action:pan-x pan-y!important}
.record-table-scroll table{width:max-content;min-width:100%;margin:0;padding:0;transform:none;border-collapse:separate;border-spacing:0}
.record-table-scroll th{position:sticky;top:0;z-index:3;background:var(--ui-raised);white-space:nowrap}
.record-table-scroll th:first-child{top:0;left:0;z-index:4;background:var(--ui-raised)}
.record-table-scroll td:first-child{position:sticky;left:0;z-index:2;background:var(--ui-surface)}
.record-table-scroll th:first-child,.record-table-scroll td:first-child{width:110px;min-width:110px;max-width:110px}
.record-table-scroll th button{min-height:36px}
.record-table-scroll :is(th,td):not(:first-child){text-align:center}
@media(max-height:540px){.manager-content:has(.records-workspace){overflow:hidden}.records-workspace{height:100%;min-height:0;gap:5px}.records-workspace .record-table-scroll{max-height:none}.records-workspace>.workspace-toolbar{grid-template-columns:auto minmax(0,1fr);gap:var(--ui-space-2)}.records-workspace .record-controls{gap:var(--ui-space-2)}.records-workspace .record-controls label{font-size:var(--ui-font-xs)}.records-workspace .record-controls input,.records-workspace .record-controls select{min-height:30px;padding:3px}.record-footer{min-height:0}}
/* Keep the record filters compact on touch screens. */
:root .records-workspace select,
:root .records-workspace #record-search {
  font-family:var(--ui-display);
  font-size:var(--ui-font-caption)!important;
  line-height:1.3;
  min-height:36px;
  padding-block:5px;
}

/* source: implementation/playable-v0.1/coaching.css */
.match-sheet[data-panel^="coaching"]{width:min(1100px,96vw);max-width:1100px}
.coaching-workspace{--coach-condition:#59c8bc;--coach-ability:#ba95f5;--coach-surface:var(--ui-surface,#152b36);color:var(--ui-text,#edf4f8);min-width:0}
.coaching-status{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-4);padding:12px;border:1px solid var(--line,#476171);border-radius:var(--ui-radius-modal);margin-bottom:12px;background:var(--coach-surface)}
.coaching-status>div{display:flex;flex-wrap:wrap;gap:8px 18px}.coaching-status span{font-size:var(--ui-font-body)}.coaching-status button{flex:none}
.coaching-grid{display:grid;grid-template-columns:minmax(230px,.85fr) minmax(0,1.3fr);gap:var(--ui-space-5);min-width:0}
.coaching-inventory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:10px;max-height:55vh;overflow:auto;padding:3px}
.coaching-card{--coach-accent:var(--coach-condition);display:flex;flex-direction:column;align-items:stretch;gap:7px;text-align:left;min-width:0;padding:12px;border:1px solid color-mix(in srgb,var(--coach-accent) 55%,var(--line,#476171));border-top:4px solid var(--coach-accent);border-radius:var(--ui-radius-card);background:color-mix(in srgb,var(--coach-accent) 9%,var(--coach-surface));color:inherit;line-height:1.35}
.coaching-card.ability{--coach-accent:var(--coach-ability)}.coaching-card[aria-pressed="true"]{outline:2px solid var(--coach-accent);outline-offset:0;box-shadow:0 0 12px color-mix(in srgb,var(--coach-accent) 25%,transparent)}
.coaching-card-type{font-size:var(--ui-font-xs);color:var(--coach-accent)}.coaching-card-symbol{align-self:center;font-size:1.6rem;font-weight:800;color:var(--coach-accent);padding:6px 0}.coaching-card strong{font-size:var(--ui-font-label)}.coaching-card>span:not(.coaching-card-symbol){font-size:var(--ui-font-caption)}.coaching-card small{font-size:var(--ui-font-caption)}.coaching-card-footer{display:flex;justify-content:space-between;gap:var(--ui-space-3);border-top:1px solid var(--line,#476171);padding-top:8px;margin-top:auto}
.coaching-preview{min-width:0;border:1px solid var(--line,#476171);border-radius:var(--ui-radius-modal);padding:12px;background:var(--coach-surface)}.coaching-preview header{display:flex;flex-direction:column;gap:5px}.coaching-preview header small{font-size:var(--ui-font-small)}.coaching-preview-note{font-size:var(--ui-font-xs);color:var(--coach-condition)}.coaching-preview-tabs{margin-top:12px;display:flex;gap:var(--ui-space-2)}.coaching-preview-tabs button{flex:1;min-width:0}.coaching-preview-rows{max-height:38vh;overflow:auto;margin-top:10px}.coaching-preview-row{display:grid;grid-template-columns:65px minmax(0,1fr) 20px;align-items:center;gap:var(--ui-space-3);border-bottom:1px solid var(--line,#476171);padding:9px 7px;border-radius:var(--ui-radius-control);min-height:48px}.coaching-preview-row.is-target{background:color-mix(in srgb,var(--coach-condition) 14%,transparent);box-shadow:inset 3px 0 var(--coach-condition)}.coaching-row-role{font-size:var(--ui-font-caption)}.coaching-preview-row strong{font-size:var(--ui-font-body)}.coaching-preview-row small{font-size:var(--ui-font-xs)}.coaching-preview-row .coaching-delta{display:block;margin-top:4px}.coaching-target-mark{color:var(--coach-condition)}.coaching-preview-rows h3{font-size:var(--ui-font-small);margin:12px 0 4px}.coaching-starter-picks{display:flex;gap:5px;overflow:auto;padding:5px 0}.coaching-starter-picks button{white-space:nowrap;font-size:var(--ui-font-caption)}
.coaching-apply-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-4);padding:12px 0 0;margin-top:12px;border-top:1px solid var(--line,#476171);background:var(--coach-surface)}.coaching-apply-footer small{font-size:var(--ui-font-caption)}.coaching-apply-footer button{min-height:44px;flex:none}.coaching-warning{font-size:var(--ui-font-small);color:#eab568}
.coaching-player-name{text-shadow:0 0 5px #5fe5d4,0 0 12px #48bfac88}.coaching-remaining{display:inline-flex;align-items:center;gap:var(--ui-space-1);white-space:nowrap;margin-left:7px;font-size:var(--ui-font-xs);color:#7be4d6}.coaching-remaining.ability{color:#c6a9f2}.coaching-remaining b{font-size:1.08em;font-weight:normal}
html[data-studio-mode="light"] .coaching-workspace{--coach-condition:#187d73;--coach-ability:#7650af;--coach-surface:#eff3f3;color:#233844}html[data-studio-mode="light"] .coaching-remaining{color:#17695f}html[data-studio-mode="light"] .coaching-remaining.ability{color:#7045a0}html[data-studio-mode="light"] .coaching-player-name{text-shadow:0 0 4px #30b8a777,0 0 8px #2c9c7944}html[data-studio-mode="light"] .coaching-warning{color:#895006}
@media(max-width:650px){.match-sheet[data-panel^="coaching"] .sheet-body{padding:10px}.coaching-grid{grid-template-columns:minmax(0,1fr);gap:10px}.coaching-inventory{display:flex;gap:9px;max-height:none;overflow-x:auto;scroll-snap-type:x proximity;padding:3px 3px 8px}.coaching-card{flex:0 0 155px;scroll-snap-align:start;gap:var(--ui-space-1);padding:9px}.coaching-card-symbol{font-size:var(--ui-font-heading);padding:0}.coaching-card strong{font-size:var(--ui-font-body)}.coaching-preview{padding:10px}.coaching-preview-rows{max-height:31vh}.coaching-status{padding:9px;margin-bottom:9px}.coaching-status>div{gap:var(--ui-space-1)}.coaching-status button{font-size:var(--ui-font-caption);padding:8px}.coaching-apply-footer{position:sticky;bottom:0;z-index:1;gap:var(--ui-space-3)}.coaching-apply-footer small{font-size:var(--ui-font-xs)}.coaching-remaining{margin-left:4px;font-size:var(--ui-font-dense)}.coaching-preview-row{grid-template-columns:58px minmax(0,1fr) 16px;padding:8px 5px}}
@media(prefers-reduced-motion:reduce){.coaching-player-name{animation:none}}

/* Keep grid rows intrinsic inside the scroll viewport; card contents never spill into the next row. */
.coaching-inventory{grid-auto-rows:max-content;align-items:start;min-height:0}
.coaching-inventory>.coaching-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(5,max-content);align-content:start;align-items:start;justify-items:stretch;gap:var(--ui-space-1);box-sizing:border-box;height:auto;min-height:118px;max-height:none;flex-shrink:0;padding:10px;overflow:hidden;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
.coaching-inventory>.coaching-card>*{min-width:0;max-width:100%;margin:0;position:static;line-height:1.35;white-space:normal}
.coaching-inventory>.coaching-card .coaching-card-type{font-size:var(--ui-font-xs)}
.coaching-inventory>.coaching-card .coaching-card-name{display:block;font-size:var(--ui-font-label);font-weight:600}
.coaching-inventory>.coaching-card .coaching-card-target,.coaching-inventory>.coaching-card .coaching-card-effect{display:block;font-size:var(--ui-font-caption)}
.coaching-inventory>.coaching-card .coaching-card-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-2);margin-top:3px;padding-top:6px;font-size:var(--ui-font-xs);flex-wrap:wrap}
.coaching-card-footer>b,.coaching-card-footer>span{white-space:nowrap}
@media(max-width:650px){.coaching-inventory>.coaching-card{flex:0 0 155px;min-height:118px;padding:9px}}

/* source: implementation/playable-v0.1/items.css */
.match-sheet[data-panel^="items"]{width:min(820px,96vw);max-height:88dvh;color:var(--ui-text);background:var(--ui-surface)}
.match-sheet[data-panel="items-confirm"]{max-width:440px}
/* Inventory filters only replace the inner list; the outer workspace stays put. */
.match-sheet[data-panel="items"]>.sheet-body{display:flex;flex:1;min-height:0;overflow:hidden}
.match-sheet[data-panel="items"] .item-workspace{display:flex;flex-direction:column;flex:1;min-height:0}
.match-sheet[data-panel="items"] :is(.item-filters,.item-rewards-link){flex:none}
.match-sheet[data-panel="items"] .item-list{flex:1;min-height:0;max-height:none;grid-auto-rows:max-content;overscroll-behavior:contain}
.item-workspace{min-width:0}.item-filters{display:flex;gap:var(--ui-space-2);flex-wrap:wrap;margin-bottom:14px}.item-filters button{font-size:var(--ui-font-body);min-height:36px}.item-filters button[aria-pressed="true"],.item-player[aria-pressed="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--ui-surface))}
.item-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;overflow:auto;max-height:62dvh;align-content:start;padding:2px}.inventory-item{display:flex;flex-direction:column;gap:var(--ui-space-3);text-align:left;padding:14px;min-width:0;border-radius:var(--ui-radius-modal);border:1px solid var(--line);background:var(--ui-surface);color:var(--ui-text);overflow-wrap:anywhere}.inventory-item strong{font-size:var(--ui-font-label)}.inventory-item small{font-size:var(--ui-font-small);line-height:1.5}.item-symbol{display:inline-flex;width:38px;height:38px;color:var(--accent)}.item-symbol svg{width:100%;height:100%}.item-count{margin-top:auto;padding-top:8px;font-size:var(--ui-font-small)}.item-count b{font-size:var(--ui-font-subtitle)}.item-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-3);font-size:var(--ui-font-body)}.item-target-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.item-target-list{max-height:49dvh;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;display:flex;flex-direction:column;gap:var(--ui-space-2);min-width:0;padding:2px}.item-player{display:flex;justify-content:space-between;align-items:center;text-align:left;gap:var(--ui-space-2);padding:10px;min-height:44px;flex:none;font-size:var(--ui-font-body)}.item-player small{font-size:var(--ui-font-caption);white-space:nowrap}.item-player>span{min-width:0;display:flex;align-items:center;gap:var(--ui-space-1)}.item-target-detail{min-width:0}.item-target-detail h3,.item-confirm h3{font-size:var(--ui-font-subtitle)}.item-target-detail label{font-size:var(--ui-font-body)}.item-target-detail select{width:100%;min-width:0;box-sizing:border-box;margin:8px 0}.item-preview{display:flex;flex-direction:column;gap:9px;padding:14px;border:1px solid var(--line);border-radius:var(--ui-radius-card);margin:14px 0;line-height:1.5}.item-preview strong{font-size:var(--ui-font-subtitle)}.item-preview span,.item-warning{font-size:var(--ui-font-small)}.item-growth-gain{color:var(--accent)}.item-warning{line-height:1.5}.item-confirm .two-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--ui-space-3);margin-top:18px}.item-confirm p{font-size:var(--ui-font-body);line-height:1.6}.item-confirm .two-actions button{min-height:42px}.lobby-items-button{display:inline-flex;align-items:center;gap:var(--ui-space-2)}.lobby-items-button svg{width:18px;height:18px}
@media(max-width:600px){.item-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-3)}.inventory-item{padding:10px}.inventory-item strong{font-size:var(--ui-font-body)}.item-target-layout{grid-template-columns:1fr;gap:var(--ui-space-3)}.item-target-list{max-height:27dvh}.item-target-detail h3{margin:8px 0}.item-preview{margin:8px 0;padding:10px}.item-target-detail .primary{width:100%}.item-filters{gap:var(--ui-space-1)}.item-filters button{flex:1;padding:6px;font-size:var(--ui-font-small)}}

.lobby-menu-panel-head{gap:var(--ui-space-3)}.lobby-menu-panel-head>span{flex:1;white-space:nowrap}.lobby-menu-panel.is-collapsed{width:min(300px,92%)}
/* Direct actions stay separate from player details and drag handles. */
.development-item-actions{display:inline-flex;align-items:center;gap:var(--ui-space-1);flex:0 0 auto;margin-left:auto}
.development-list-form .development-item-actions [data-plan-cycle]{margin-left:0}
.item-direct-button{font:10px/1.2 var(--ui-display,system-ui)!important;min-width:32px;min-height:28px;padding:4px!important;white-space:nowrap;border:1px solid var(--ui-line)!important;border-radius:var(--ui-radius-control);background:var(--ui-accent-soft)!important;color:var(--ui-accent-text)!important;touch-action:manipulation;flex:0 0 auto}
.item-direct-button small{font:9px system-ui}.item-direct-button:disabled{opacity:.42}
.detailed-lineup.view-pitching .staff-card>.pitcher-item-tools{display:flex;flex:0 0 56px;width:56px;min-width:0;flex-direction:column;gap:3px;align-self:center;margin-inline:3px 6px}
.pitcher-item-tools>.pitcher-energy{width:100%;flex-basis:auto}.pitcher-item-tools>.item-direct-button{min-height:23px}
.item-direct-dialog{width:min(440px,calc(100vw - 28px));max-height:calc(100dvh - 32px);box-sizing:border-box;padding:0;border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal);background:var(--ui-surface);color:var(--ui-text);overflow:auto;margin:auto}
.item-direct-dialog::backdrop{background:#0009;backdrop-filter:blur(3px)}
.item-direct-dialog>header{display:block!important;padding:15px 18px;border-bottom:1px solid var(--ui-line)}.item-direct-dialog h2{margin:0;font:18px var(--ui-display,system-ui)}
.item-direct-body{padding:18px}.item-direct-dialog .two-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.item-direct-dialog button{min-height:42px}.item-direct-dialog .item-confirm-stock{font-size:var(--ui-font-small);color:var(--ui-muted)}.item-direct-error{font-size:var(--ui-font-body);color:var(--ui-danger,#e16f6f)}
@media(max-width:650px){.development-item-actions{gap:3px}.development-item-actions .item-direct-button{min-width:28px;padding:4px 2px!important}.development-item-actions .item-direct-button small{display:none}.detailed-lineup.view-pitching .staff-card>.pitcher-item-tools{width:43px;flex-basis:43px;margin-inline:2px 3px}}

/* Inventory targets share the roster order and actual energy/XP ledgers. */
.item-squad-tabs{display:flex;gap:var(--ui-space-2);margin:10px 0}.item-squad-tabs button{min-height:34px;min-width:70px;font:13px var(--ui-display,system-ui)}
.item-squad-tabs [aria-pressed="true"]{background:var(--ui-accent-soft);border-color:var(--accent);color:var(--ui-accent-text)}
.item-player-group{display:flex;flex-direction:column;gap:var(--ui-space-2)}.item-player-group h3{font:13px var(--ui-display,system-ui);margin:8px 0 2px}
.item-player-metrics{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;width:100%;padding:9px 10px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);background:var(--ui-surface);color:var(--ui-text)}
.item-player-metrics>.item-player-heading{display:flex;gap:var(--ui-space-1);flex-wrap:wrap}.item-player-heading>small{margin-left:auto;color:var(--ui-muted)}
.item-player-metrics>.item-training-name{font-size:var(--ui-font-caption);line-height:1.4;overflow-wrap:anywhere}.item-player-metrics>.item-xp-line{display:flex;width:100%;gap:var(--ui-space-3)}
.item-xp-line progress{flex:1;min-width:0;width:100%;height:7px;accent-color:var(--accent)}
.item-player-metrics>.pitcher-energy{width:100%;max-width:none;flex-basis:auto;margin:0;min-height:17px}
.item-preview .item-stat-rise{font:inherit;font-weight:800;color:var(--ui-accent-text,var(--accent))}.item-stat-rise>span{font-size:.75em;margin-left:2px}.item-preview .item-stat-same{font:inherit}

/* A target picker is a full-height workspace, not a short notice dialog. */
.match-sheet[data-panel="items-target"]{top:max(8px,env(safe-area-inset-top));bottom:max(8px,env(safe-area-inset-bottom));left:50%;right:auto;transform:translateX(-50%);width:min(1100px,calc(100vw - 16px));height:auto;max-height:none;overflow:hidden;display:flex;flex-direction:column}
.match-sheet[data-panel="items-target"]>header{flex:none}
.match-sheet[data-panel="items-target"]>.sheet-body{display:flex;flex:1;min-height:0;overflow:hidden;scrollbar-gutter:auto;padding:12px}
.item-target-workspace{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}
.item-target-controls{flex:none;background:var(--ui-surface);padding-bottom:8px}
.item-target-controls .item-toolbar{margin-bottom:8px}
.item-target-controls .item-squad-tabs{margin:6px 0}
.item-kind-tabs{display:flex;gap:var(--ui-space-2)}
.item-kind-tabs button{min-height:32px;min-width:64px;font:12px var(--ui-display,system-ui)}
.item-kind-tabs [aria-pressed="true"]{background:var(--ui-accent-soft);border-color:var(--accent);color:var(--ui-accent-text)}
.item-target-workspace>.item-target-layout{flex:1;min-height:0;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.item-target-workspace .item-target-list{max-height:none;min-height:0;overflow-y:auto;overflow-x:hidden}
.item-target-workspace .item-player-group{flex:none}
.item-target-workspace .item-target-detail{overflow:auto;min-height:0;overscroll-behavior:contain}
/* .item-player > span used align-items:center, shrinking the empty track to zero. */
.item-player-metrics>.pitcher-energy{display:flex;flex-direction:column;align-items:stretch;gap:var(--ui-space-1);width:100%}
.item-player-metrics .pitcher-energy-track{display:block;width:100%;height:7px;min-height:7px;flex:none;background:var(--ui-line,#59636b)}
.item-player-metrics .pitcher-energy-fill{display:block;height:100%;background:var(--energy-color,#65ae85)}
.item-player-metrics .pitcher-energy-value{align-self:flex-end}
@media(max-width:600px){
 .match-sheet[data-panel="items-target"]{left:8px;right:8px;transform:none;width:auto;max-height:none}
 .match-sheet[data-panel="items-target"]>.sheet-body{padding:10px}
 .item-target-workspace>.item-target-layout{display:flex;flex-direction:column;gap:var(--ui-space-3)}
 .item-target-workspace .item-target-list{flex:1;min-height:90px}
 .item-target-workspace .item-target-detail{flex:0 1 auto;max-height:44%;border-top:1px solid var(--ui-line);padding-top:6px}
 .item-target-controls .item-kind-tabs button{flex:1}
}

.item-quantity-control{display:flex;align-items:center;gap:var(--ui-space-3);flex-wrap:wrap;margin:8px 0;font-size:var(--ui-font-small)}
.item-quantity-control input{width:76px;min-width:0;min-height:34px;padding:5px 8px;box-sizing:border-box}
.item-quantity-control>span{font-size:var(--ui-font-caption);color:var(--muted)}
.item-stat-change{display:flex;flex-direction:column;gap:5px;padding:5px 0}
.item-direct-controls{display:grid;gap:var(--ui-space-2);margin-bottom:12px}

.item-quantity-stepper{display:flex;align-items:center;gap:var(--ui-space-1)}.item-quantity-stepper button{min-width:34px;padding:5px;min-height:34px}.item-quantity-control>small{flex-basis:100%}.item-quantity-control>button{min-height:34px;font-size:var(--ui-font-small)}.item-quantity-stepper input{width:65px;text-align:center}

/* source: implementation/playable-v0.1/card-skins.css */
/* Card faces adapted from the approved standalone templates. */
.kbo-item-skin {
  display: block;
  position: relative;
  isolation: isolate;
  width: min(100%, 88px);
  box-sizing: border-box;
  text-align: center;
  aspect-ratio: 5 / 7;
  padding: 0;
  border: 0;
  background: #050912;
  color: #fff;
  border-radius: 7px;
  container-type: inline-size;
  box-shadow: 0 6px 15px #05090d80;
}
.kbo-item-skin[data-skin-theme="teal"] {
  --skin-shine: #b9fff4; --skin-foil: #2ae0c4; --skin-base: #087a86; --skin-deep: #102954; --skin-tag: #d4ff65;
}
.kbo-item-skin[data-skin-theme="amber"] {
  --skin-shine: #fff6a7; --skin-foil: #ffbb3d; --skin-base: #c64c1a; --skin-deep: #551735; --skin-tag: #fff2a2;
}
.kbo-item-skin[data-skin-theme="violet"] {
  --skin-shine: #f6d3ff; --skin-foil: #c478ff; --skin-base: #7337bb; --skin-deep: #261953; --skin-tag: #fff2a2;
}
.kbo-item-skin[data-skin-theme="blue"] {
  --skin-shine: #d4edff; --skin-foil: #74b4ff; --skin-base: #245aa8; --skin-deep: #17244a; --skin-tag: #f4f9ff;
}
.kbo-item-frame, .kbo-item-foil, .kbo-item-art, .kbo-item-tag, .kbo-item-quantity, .kbo-item-title { position: absolute; }
.kbo-item-frame {
  inset: 2%;
  border: 1px solid var(--skin-shine);
  border-radius: 5px;
  background: linear-gradient(142deg, #fff 0%, var(--skin-foil) 15%, var(--skin-deep) 40%, var(--skin-base) 65%, var(--skin-shine) 91%, var(--skin-deep));
  box-shadow: inset 0 0 0 1px #e2faff55;
}
.kbo-item-foil {
  inset: 5% 5% 18%;
  overflow: hidden;
  border: 1px solid var(--skin-shine);
  border-radius: 3px 3px 0 0;
  background:
    radial-gradient(ellipse at 51% 46%, var(--skin-shine), transparent 56%),
    repeating-conic-gradient(from -16deg at 50% 55%, #ffffff45 0deg 12deg, transparent 12deg 36deg),
    linear-gradient(143deg, var(--skin-deep), var(--skin-base) 52%, var(--skin-deep));
  box-shadow: inset 0 0 10px #0008;
}
.kbo-item-foil::after {
  position: absolute;
  content: "";
  inset: 0;
  background:
    radial-gradient(circle at 20% 29%, #fff 0 1%, transparent 2%),
    radial-gradient(circle at 84% 34%, #fff 0 1.2%, transparent 2.4%),
    radial-gradient(circle at 14% 65%, #fff 0 .9%, transparent 2%),
    radial-gradient(circle at 79% 76%, var(--skin-shine) 0 1.4%, transparent 2.5%),
    linear-gradient(123deg, transparent 32%, #fff4 40%, transparent 49%, #fff2 53%, transparent 58%);
  mix-blend-mode: screen;
  opacity: .82;
}
.kbo-item-art {
  inset: 12% 7% 18%;
  width: 86%;
  height: 70%;
  object-fit: contain;
  filter: drop-shadow(0 2px 3px #100c2caa);
}
.kbo-item-art-anchored {
  top: auto;
  bottom: 16%;
  object-position: center bottom;
}
.kbo-item-tag {
  top: 7%;
  left: 8%;
  max-width: 57%;
  color: var(--skin-tag);
  font-family: Impact, "Arial Black", system-ui, sans-serif;
  font-size: var(--skin-tag-size, 13cqw);
  font-style: italic;
  font-weight: 950;
  line-height: 1;
  letter-spacing: -.02em;
  text-shadow: 1px 1px #121324, 0 2px 2px #080d14;
  -webkit-text-stroke: .075em #12202c;
  paint-order: stroke fill;
}
.kbo-item-quantity {
  top: 6%;
  right: 7%;
  min-width: 21%;
  padding: 2% 3%;
  border: 1px solid #243353;
  border-radius: 4px;
  background: #fcfdff;
  color: #151932;
  font-size: 10cqw;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  box-shadow: 0 1px 2px #12152c99;
}
.kbo-item-skin .kbo-item-title {
  left: 5%;
  right: 5%;
  bottom: 5%;
  height: 16%;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding-inline: 2%;
  border: 1px solid var(--skin-shine);
  border-radius: 0 0 3px 3px;
  background: linear-gradient(var(--skin-base), var(--skin-deep));
  box-shadow: inset 0 1px #ffffff40, 0 -2px 4px #050b1999;
  font-family: var(--ui-display, "NtreevSoft", "Malgun Gothic", sans-serif);
  font-size: var(--skin-title-size, 11cqw);
  font-weight: 700;
  letter-spacing: -.055em;
  line-height: 1.1;
  white-space: nowrap;
  text-shadow: 0 1px 2px #0a1027;
}

.kbo-coach-skin {
  position: relative;
  width: 100%;
  box-sizing: border-box;
  text-align: left;
  font-weight: 400;
  min-width: 0;
  container-type: inline-size;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto auto 1fr;
  padding: 3px;
  border: 1px solid var(--skin-edge);
  border-radius: 5px;
  background: linear-gradient(150deg, var(--skin-edge), #202226 36%, #111719 68%, var(--skin-edge));
  box-shadow: inset 0 0 0 1px #000a, 0 6px 12px #050708aa;
}
.kbo-coach-skin[data-skin-kind="condition"] { --skin-edge: #80bcb2; --skin-ink: #b8efe3; --skin-shade: #223e3b; --skin-rule: #4e706a; }
.kbo-coach-skin[data-skin-kind="ability"] { --skin-edge: #b49aca; --skin-ink: #e6d4f9; --skin-shade: #3b304a; --skin-rule: #665672; }
.kbo-coach-top {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  min-height: 25px;
  padding: 2px 6px;
  color: var(--skin-ink);
  background: linear-gradient(105deg, var(--skin-shade), #111316 76%);
  border: 1px solid var(--skin-rule);
  border-bottom: 0;
  font-size: clamp(10px, 6.3cqw, 13px);
  line-height: 1.1;
}
.kbo-coach-kind { font-weight: 700; white-space: nowrap; }
.kbo-coach-count {
  color: #f5f3ec;
  border: 1px solid #ffffff33;
  border-radius: 2px;
  padding: 2px 4px;
  background: #14171bcc;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.kbo-coach-art {
  position: relative;
  aspect-ratio: 6 / 5;
  overflow: hidden;
  border: 1px solid var(--skin-rule);
  background: #e1dbca;
}
.kbo-coach-art img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.kbo-coach-title-row {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(42px, 27%) minmax(0, 1fr);
  align-items: stretch;
  min-height: 38px;
  color: #f7f4ea;
  background: linear-gradient(#35363b, #14191b 48%, #101416);
  border-inline: 1px solid var(--skin-rule);
  border-bottom: 1px solid var(--skin-rule);
}
.kbo-coach-duration {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 3px;
  color: var(--skin-ink);
  border-right: 1px solid var(--skin-rule);
  background: linear-gradient(var(--skin-shade), #101719);
  white-space: nowrap;
  font-size: clamp(9px, 6cqw, 12px);
}
.kbo-coach-duration b { color: #fff; font-size: clamp(14px, 11cqw, 23px); line-height: 1; }
.kbo-coach-skin .kbo-coach-name {
  align-self: center;
  margin: 0;
  padding: 3px 4px;
  font-family: var(--ui-display, "NtreevSoft", "Malgun Gothic", sans-serif);
  font-size: clamp(11px, 8.8cqw, 19px);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.18;
  text-align: center;
  overflow-wrap: anywhere;
}
.kbo-coach-details {
  min-width: 0;
  min-height: clamp(55px, 28cqw, 70px);
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 10px 8px;
  margin: 0;
  border: 1px solid var(--skin-rule);
  border-top: 0;
  background: linear-gradient(150deg, #282b2d, #1a1e21);
}
.kbo-coach-effect { margin: 0; color: var(--skin-ink); font-weight: 800; font-size: clamp(11px, 7.3cqw, 15px); line-height: 1.25; }
.kbo-coach-target { margin: 0; color: #e0e0d9; font-size: clamp(10px, 6.4cqw, 13px); line-height: 1.35; overflow-wrap: anywhere; }

.coaching-inventory > .coaching-card.kbo-coach-card-tile {
  width: min(100%, 152px);
  grid-template-rows: auto;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  overflow: visible;
  justify-self: center;
}
.coaching-inventory > .coaching-card.kbo-coach-card-tile[aria-pressed="true"] {
  outline: 2px solid var(--ui-accent-text, #8de0d2);
  outline-offset: 1px;
}
/* Illustrated inventory tiles and the coaching detail step. */
.match-sheet[data-panel="items"] .item-list {display:block}
.inventory-tiles {display:grid; justify-content:start; align-items:start; gap:10px; padding:4px}
.inventory-items {grid-template-columns:repeat(auto-fit,minmax(80px,88px))}
.inventory-coaches {grid-template-columns:repeat(auto-fit,minmax(126px,152px))}
.inventory-heading {margin:14px 4px 4px; font-size:var(--ui-font-body)}
/* Let the grid size the artwork outside the native button's anonymous content box. */
.inventory-card {position:relative;min-width:0;width:100%;border-radius:7px}
.inventory-card[data-stock="empty"] {opacity:.5}
.item-list .inventory-card > .inventory-card-action {
  position:absolute;inset:0;display:block;width:100%;height:100%;padding:0;
  border:0;background:transparent;box-shadow:none;border-radius:inherit;
}
.item-list .inventory-card > .inventory-card-action:focus-visible {
  outline:2px solid var(--ui-accent-text,var(--accent));outline-offset:1px;
}
.inventory-item-fallback {width:100%; min-height:123px; padding:7px}
.inventory-item-fallback strong {font-size:var(--ui-font-caption)}
.inventory-item-fallback small,.inventory-item-fallback .item-count {font-size:var(--ui-font-xs)}
.inventory-item-fallback .item-symbol {width:24px; height:24px}
.coaching-inventory {grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),152px)); justify-content:start}
.coaching-list-back {display:none}
.coaching-preview .coaching-selection-summary {display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:10px}
.coaching-selection-summary img {width:64px; aspect-ratio:6/5; object-fit:cover; border-radius:var(--ui-radius-control)}
.coaching-selection-summary>div {display:grid; gap:4px}
@media (max-width:650px) {
  .coaching-inventory {display:grid; grid-template-columns:repeat(2,minmax(0,152px)); justify-content:center; max-height:min(66dvh,630px); overflow:auto; scroll-snap-type:none}
  .coaching-workspace:not(.coaching-show-detail) :is(.coaching-preview,.coaching-apply-footer),
  .coaching-show-detail .coaching-inventory {display:none}
  .coaching-show-detail .coaching-list-back {display:inline-flex; min-height:34px; margin-bottom:8px}
}

/* source: implementation/playable-v0.1/attendance.css */
.attendance-launch {
  position:fixed; z-index:4;
  inset-inline-end:calc(16px + env(safe-area-inset-right, 0px));
  inset-block-end:calc(16px + env(safe-area-inset-bottom, 0px));
  display:inline-flex; align-items:center; gap:7px; min-height:44px;
  padding:8px 13px; border-radius:999px; border:1px solid var(--ui-line-strong);
  color:var(--ui-accent-text); background:var(--ui-surface);
  box-shadow:0 6px 18px #0006; font-family:var(--ui-display);
}
.attendance-launch svg {width:18px; height:18px}
body:has(dialog[open], .stadium-chat-handle[aria-expanded=true]) .attendance-launch {display:none}
.shell:has(.match-sheet[data-panel="attendance"])>.toast {visibility:hidden}
.match-sheet[data-panel="attendance"] {
  position:fixed; inset:auto; top:50%; left:50%; transform:translate(-50%,-50%);
  width:min(790px,calc(100vw - 24px)); max-height:calc(100dvh - 32px);
  border-block-start:2px solid var(--ui-accent); overflow:hidden;
}
.match-sheet[data-panel="attendance"]>header {
  flex:none; background:linear-gradient(140deg,var(--ui-accent-soft),var(--ui-surface));
}
.match-sheet[data-panel="attendance"]>.sheet-body {min-height:0; overflow:auto; overscroll-behavior:contain}
.attendance-content>p {margin:0 0 12px; color:var(--ui-accent-text)}
.attendance-content>.attendance-error {color:var(--ui-danger)}
.attendance-progress {display:flex; align-items:center; gap:8px; margin-bottom:12px; font-size:var(--ui-font-small)}
.attendance-progress progress {min-width:20px; flex:1; height:8px; accent-color:var(--ui-accent)}
.attendance-progress small {color:var(--ui-muted); white-space:nowrap; font-size:var(--ui-font-xs)}
.attendance-days {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.3fr); gap:8px}
.attendance-day {
  display:grid; grid-template-rows:auto 1fr auto; min-width:0; min-height:120px;
  padding:9px; border:1px solid var(--ui-line); border-radius:var(--ui-radius-control);
  background:var(--ui-raised);
}
.attendance-day header {display:flex; align-items:center; justify-content:space-between; gap:4px; font-size:var(--ui-font-small)}
.attendance-day small {font-size:var(--ui-font-xs); color:var(--ui-muted)}
.attendance-day ul,.attendance-receipt ul {list-style:none; margin:0; padding:0; font-size:var(--ui-font-caption); line-height:1.4}
.attendance-day b,.attendance-receipt strong {color:var(--ui-accent-text)}
.attendance-art {display:flex; align-items:center; justify-content:center; gap:3px; min-height:50px}
.attendance-art img {width:min(48%,52px); height:52px; object-fit:contain}
.attendance-box {padding:2px 10px; border:1px solid var(--ui-line-strong); border-radius:4px; color:var(--ui-accent-text); background:var(--ui-accent-soft); font-weight:800}
.attendance-day.attendance-last {grid-column:4; grid-row:1 / 3; background:radial-gradient(ellipse at center,var(--ui-accent-soft),var(--ui-raised))}
.attendance-last .attendance-art img {width:min(31%,90px); height:96px; min-width:0}
.attendance-today {border-color:var(--ui-accent); box-shadow:inset 0 0 0 1px var(--ui-accent)}
.attendance-receipt {display:grid; gap:5px; padding:10px; margin-bottom:12px; border:1px solid var(--ui-line); border-radius:var(--ui-radius-control)}
.attendance-receipt li {display:flex; align-items:center; gap:6px}
.attendance-receipt img {width:26px; height:26px; object-fit:contain}
.attendance-receipt p,.attendance-odds {font-size:var(--ui-font-caption)}
.attendance-odds {margin-top:12px}
.attendance-odds p {margin:6px 0 0}
.attendance-footer {display:flex; flex:none; align-items:center; justify-content:space-between; gap:8px; padding:10px 16px; border-top:1px solid var(--ui-line)}
.attendance-footer small {font-size:var(--ui-font-caption); color:var(--ui-muted)}
.attendance-footer button {min-height:44px; flex:none}
@media(max-width:650px) {
  .match-sheet[data-panel="attendance"] {max-height:calc(100dvh - 16px - env(safe-area-inset-bottom,0px)); width:calc(100vw - 16px)}
  .match-sheet[data-panel="attendance"]>.sheet-body {padding:10px}
  .attendance-days {grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px}
  .attendance-day {padding:6px; min-height:106px}
  .attendance-day.attendance-last {grid-column:1 / -1; grid-row:auto; grid-template-columns:minmax(0,1fr) auto; min-height:74px}
  .attendance-last .attendance-art {grid-column:2; grid-row:1 / 3; width:104px}
  .attendance-last .attendance-art img {height:60px}
  .attendance-footer {padding:8px 10px}
}

.attendance-launch {
  overflow:hidden; isolation:isolate;
  color:#fff2c6; border-color:#ffc76b;
  background:linear-gradient(150deg,#774318,#3e251a);
  box-shadow:0 4px 18px #0008,0 0 12px #ffb74366;
}
.attendance-launch::after {
  position:absolute; inset:0; content:""; pointer-events:none;
  background:linear-gradient(110deg,transparent 26%,#ffe9ae65 48%,transparent 70%);
  transform:translateX(-115%);
  animation:attendance-shimmer 3.6s ease-in-out infinite;
}
@keyframes attendance-shimmer {
  0%,45% {transform:translateX(-115%)}
  75%,100% {transform:translateX(115%)}
}
@media(prefers-reduced-motion:reduce){.attendance-launch::after{animation:none}}

.lobby-utility-actions button.lobby-mission-ready {
  position:relative; overflow:hidden; isolation:isolate; padding-inline-end:14px;
  color:#fff2c6; border-color:#ffc76b;
  background:linear-gradient(150deg,#774318,#3e251a);
  box-shadow:0 0 10px #ffb74366;
}
.lobby-mission-ready::after {
  position:absolute; inset:0; content:""; pointer-events:none;
  background:linear-gradient(110deg,transparent 26%,#ffe9ae65 48%,transparent 70%);
  transform:translateX(-115%); animation:attendance-shimmer 3.6s ease-in-out infinite;
}
.lobby-mission-dot {position:absolute; inset-block-start:4px; inset-inline-end:4px; width:6px; height:6px; border-radius:50%; background:#f75252}
@media(prefers-reduced-motion:reduce){.lobby-mission-ready::after{animation:none}}

/* source: implementation/playable-v0.1/lobby-utilities.css */
.lobby-utility-actions {display:flex;align-items:center;gap:5px}
.lobby-utility-actions button {
  position:relative; min-height:32px; padding:4px 9px; white-space:nowrap;
  font-family:var(--ui-display); font-size:clamp(11px, 3vw, 13px);
}
.utility-unread {
  position:absolute; inset-block-start:4px; inset-inline-end:4px; width:7px; height:7px;
  border-radius:50%; background:#e94555; box-shadow:0 0 0 1px var(--ui-surface);
}
.match-sheet:is([data-panel="items"],[data-panel="notices"],[data-panel="help"]) {
  --utility-sheet-edge:max(var(--ui-modal-top),var(--ui-modal-bottom));
  --utility-sheet-height:calc(var(--app-viewport-height,100dvh) - 2 * var(--utility-sheet-edge));
  inset:50% auto auto 50%;
  transform:translate(-50%,-50%);
  max-height:var(--utility-sheet-height);
  width:min(760px,calc(100vw - 16px));
}
.match-sheet:is([data-panel="items"],[data-panel="notices"]) {height:var(--utility-sheet-height)}
.match-sheet[data-panel="items"] {width:min(820px,calc(100vw - 16px))}
.match-sheet[data-panel="help"] {width:min(620px,calc(100vw - 16px));max-height:min(var(--utility-sheet-height),84dvh)}
.utility-tabs {display:flex;gap:6px;overflow-x:auto;overscroll-behavior-inline:contain;margin-block-end:12px;padding-block-end:4px}
.utility-tabs button {flex:0 0 auto;position:relative;max-width:min(220px,65vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.utility-tabs button[aria-pressed="true"] {color:var(--ui-accent-text);background:var(--ui-accent-soft);border-color:var(--ui-accent)}
.utility-tabs button:has(.utility-unread) {padding-inline-end:17px}
.notice-article h3,.help-topics h3 {margin:0 0 6px}
.notice-article time,.reputation-tree small {color:var(--ui-muted)}
.notice-article picture {display:block;margin-block:12px}
.notice-article img {display:block;width:100%;height:auto;border-radius:6px}
.notice-article p {white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}
.help-topics {display:grid;gap:8px}
.help-topics section,.reputation-tree li {padding:10px;border:1px solid var(--ui-line);border-radius:6px;background:var(--ui-surface)}
.help-topics p,.reputation-tree p {margin:0;line-height:1.5}
.reputation-tree {list-style:none;display:grid;gap:7px;padding:0;margin:0}
.reputation-tree header {display:flex;justify-content:space-between;gap:8px}
.reputation-tree li.is-current {border-color:var(--ui-accent);background:var(--ui-accent-soft)}
.reputation-tree p {margin-block-start:4px}

/* source: implementation/playable-v0.1/rewards.css */
.match-sheet[data-panel^="reward-"]{width:min(700px,96vw);max-height:88dvh;background:var(--ui-surface);color:var(--ui-text);left:50%;right:auto;top:50%;bottom:auto;transform:translate(-50%,-50%)}
.reward-stage,.gift-stage{text-align:center;min-width:0}.reward-heading{font-size:var(--ui-font-label)}.reward-heading strong{display:block;font-size:22px;margin:8px}.reward-cards{display:flex;justify-content:center;gap:var(--ui-space-4);margin:24px 0;min-width:0}.reward-card{flex:1;max-width:180px;min-width:0;aspect-ratio:2/3;perspective:900px;border:0;padding:0;background:transparent!important;opacity:1!important;color:var(--ui-text)}.reward-card-inner{display:block;position:relative;width:100%;height:100%;transform-style:preserve-3d}.reward-card.is-revealed .reward-card-inner{transform:rotateY(180deg)}.reward-card.is-revealing .reward-card-inner{animation:reward-flip .7s ease-out}.reward-card-back,.reward-card-front{box-sizing:border-box;position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--ui-space-4);border-radius:var(--ui-radius-modal);backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid var(--ui-line,var(--line));padding:12px;overflow:hidden}.reward-card-back{background:linear-gradient(145deg,#183441,#0d1b25);color:#f0d79c;border:2px solid #b89a5c}.reward-card-back svg{width:70%;max-height:80px}.reward-card-front{transform:rotateY(180deg);background:var(--ui-surface);color:var(--ui-text)}.reward-card-front strong{font-size:var(--ui-font-label);overflow-wrap:anywhere}.reward-card small{font-size:var(--ui-font-caption)}.reward-tier{font:10px system-ui;letter-spacing:1px}.reward-card.special.is-revealed .reward-card-front{border:2px solid #daa846;box-shadow:0 0 20px #e4b44c55;background:linear-gradient(140deg,#cda94a22,var(--ui-surface))}.reward-card.special.is-revealing{animation:reward-glow 1s ease-out}.reward-status{font-size:var(--ui-font-body);min-height:20px}.reward-actions{display:flex;justify-content:center;gap:var(--ui-space-3);margin-top:18px}.reward-actions button{flex:1;max-width:240px;min-height:42px}.gift-package{width:110px;height:110px;margin:16px auto;color:var(--accent)}.gift-stage small{font:10px system-ui;letter-spacing:1px}.gift-stage h3{font-size:20px}.gift-stage p{font-size:var(--ui-font-label);line-height:1.6}.gift-package.is-opening{animation:gift-receive .8s ease-out}.gift-receipt{padding:16px;border:1px solid #dab25c;border-radius:var(--ui-radius-modal);background:#dab25c12}.gift-receipt>div{display:flex;align-items:center;justify-content:center;gap:var(--ui-space-4);margin:8px;font-size:var(--ui-font-label)}.gift-receipt>b{display:block;font-size:var(--ui-font-small);margin-top:12px}.reward-list article{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-4);border-bottom:1px solid var(--line);padding:12px 0}.reward-list article small{display:block;font-size:var(--ui-font-small);margin-top:5px}.reward-list article button{flex:none}.item-rewards-link{display:flex;justify-content:space-between;gap:var(--ui-space-3);align-items:center;margin-bottom:12px;font-size:var(--ui-font-body)}
@keyframes reward-flip{from{transform:rotateY(0)}to{transform:rotateY(180deg)}}@keyframes reward-glow{50%{filter:drop-shadow(0 0 15px #f7c450)}}@keyframes gift-receive{0%{transform:scale(.65);opacity:.1}60%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
@media(max-width:600px){.reward-cards{gap:var(--ui-space-2);margin:18px 0}.reward-card{max-width:145px;aspect-ratio:1/1.8}.reward-card-front,.reward-card-back{padding:7px;gap:9px}.reward-card-front strong,.reward-card-back b{font-size:var(--ui-font-small)}.reward-card small{font-size:var(--ui-font-dense)}.reward-card .item-symbol{width:30px;height:30px}.reward-actions button{font-size:var(--ui-font-body);padding:8px}.gift-stage h3{font-size:var(--ui-font-heading)}}
@media(prefers-reduced-motion:reduce){.reward-card.is-revealing .reward-card-inner,.reward-card.special.is-revealing,.gift-package.is-opening{animation:none}}

/* source: implementation/playable-v0.1/loading.css */
/* Paint the startup shell before the application module is available. */
.kbo-loading{box-sizing:border-box;display:grid;place-items:center;min-width:0;color:var(--ui-text,#f4f1e8);background:var(--ui-page,#181c21);font-family:Arial,"Malgun Gothic",sans-serif;text-align:center}
.kbo-loading--boot{position:fixed;inset:0;z-index:1000;padding:24px;min-height:100vh;min-height:100dvh}
.kbo-loading-card{width:min(320px,100%);display:flex;flex-direction:column;align-items:center;gap:var(--ui-space-5);margin:0}
.kbo-loading-brand{font-size:var(--ui-font-small);letter-spacing:3px;color:var(--ui-muted,#aeb8bd)}
.kbo-loading-title{margin:0;font-size:22px;line-height:1.35;font-weight:700;font-family:var(--ui-display,Arial,sans-serif)}
.kbo-loading-message{margin:0;font-size:var(--ui-font-body);line-height:1.65;overflow-wrap:anywhere;color:var(--ui-muted,#b7c1c5)}
.kbo-loading-ball{display:block;width:56px;height:56px;object-fit:contain;animation:kbo-loading-turn 1.6s linear infinite;filter:drop-shadow(0 5px 8px #0003)}
.kbo-loading-track{width:100%;height:4px;border-radius:var(--ui-radius-modal);overflow:hidden;background:var(--ui-line,#41494e)}
.kbo-loading-track>span{display:block;height:100%;width:35%;border-radius:inherit;background:var(--ui-accent,#ff741b);animation:kbo-loading-sweep 1.5s ease-in-out infinite}
.kbo-loading-actions{display:flex;justify-content:center;gap:var(--ui-space-3);width:100%}
.kbo-loading-actions>button{min-height:42px;min-width:100px;max-width:100%;padding:8px 14px;border:1px solid var(--ui-line,#58636a);border-radius:var(--ui-radius-control);background:var(--ui-raised,#262d32);color:var(--ui-text,#f4f1e8);font:inherit;font-size:var(--ui-font-body);cursor:pointer}
.kbo-loading[hidden],.kbo-loading [hidden]{display:none!important}
.kbo-loading[data-state="error"] .kbo-loading-title{font-size:19px}
.integrated-field-stage{position:relative;isolation:isolate;grid-row:2;grid-column:1;flex:1;min-width:0;min-height:0;overflow:hidden;background:var(--ui-page,#181c21)}
.integrated-field-stage>#engineFrame{position:absolute;inset:0;width:100%;height:100%;border:0;transition:opacity .14s ease}
.integrated-field-stage>#engineFrame[data-field-loading]{opacity:0;pointer-events:none}
.kbo-loading--field{position:absolute;inset:0;z-index:2;padding:20px;transition:opacity .14s ease}
.kbo-loading--field .kbo-loading-title{font-size:var(--ui-font-heading)}
.kbo-loading--field .kbo-loading-ball{width:52px;height:52px}
.kbo-loading--field .kbo-loading-brand,.kbo-loading--field .kbo-loading-track{display:none}
/* The initial and short loading cards are centred in the visible viewport. */
.kbo-loading--field .kbo-loading-card{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(320px,calc(100vw - 40px))}
@media(min-width:1100px){.integrated-field-stage{grid-column:2}}
.match-sheet[data-panel="browser-exit"]{left:50%!important;right:auto!important;top:50%!important;bottom:auto!important;transform:translate(-50%,-50%)!important;width:min(420px,calc(100vw - 32px))!important;max-height:calc(100dvh - 32px)!important;border-radius:var(--ui-radius-modal)!important;animation:kbo-exit-appear .14s ease-out}
.match-sheet[data-panel="browser-exit"] .two-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.match-sheet[data-panel="browser-exit"] .two-actions>button{min-height:44px}
@keyframes kbo-loading-turn{to{transform:rotate(360deg)}}
@keyframes kbo-loading-sweep{0%{transform:translateX(-105%)}100%{transform:translateX(390%)}}
@keyframes kbo-exit-appear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.kbo-loading-ball,.kbo-loading-track>span,.match-sheet[data-panel="browser-exit"]{animation:none}.kbo-loading-track>span{width:100%;opacity:.65}.integrated-field-stage>#engineFrame,.kbo-loading--field{transition:none}}

.kbo-loading-percent{font:700 18px/1.2 system-ui,sans-serif;font-variant-numeric:tabular-nums;color:var(--ui-accent-text,var(--ui-text))}

/* source: implementation/playable-v0.1/notice-dialogs.css */
/* Small notices are not full-screen substitution workspaces. Shared host/field rules. */
dialog.notice-dialog,body.field-studio dialog.notice-dialog{
 box-sizing:border-box!important;width:min(480px,calc(100vw - 24px))!important;max-width:480px!important;
 max-height:calc(100dvh - 32px)!important;margin:auto!important;padding:var(--notice-pad)!important;overflow:auto!important;
 border:1px solid var(--ui-line,#3b4249)!important;border-radius:var(--ui-radius-modal)!important;
 background:var(--ui-surface,#202428)!important;color:var(--ui-text,#f0f1ed)!important;
 font:13px/1.65 var(--notice-body-font)!important;overscroll-behavior:contain;touch-action:pan-y}
dialog.notice-dialog[open],body.field-studio dialog.notice-dialog[open]{display:block!important}
dialog.notice-dialog::backdrop,.item-direct-dialog::backdrop,.development-unsaved-dialog::backdrop{background:#0009;backdrop-filter:blur(3px)}
dialog.notice-dialog>:is(h2,h3){display:block!important;margin:0 0 16px!important;padding:0 0 12px!important;border-bottom:1px solid var(--ui-line,#3b4249);font:var(--notice-heading-size)/1.4 var(--ui-display,KboNtreev,system-ui)!important;overflow-wrap:anywhere;color:inherit!important}
dialog.notice-dialog p,.notice-sheet .sheet-body p,.item-direct-body p,.development-unsaved-body p{font:13px/1.65 var(--notice-body-font)!important;white-space:normal;overflow-wrap:anywhere;color:var(--ui-text,#f0f1ed);margin:0 0 14px}
dialog.notice-dialog small,.notice-sheet .sheet-body .note{display:block;font:12px/1.6 var(--notice-body-font)!important;color:var(--ui-muted,#b0b8bf);overflow-wrap:anywhere}
dialog.notice-dialog .manager-change-lines{padding:12px;margin-bottom:14px}.manager-change-lines p:last-child{margin-bottom:0}
dialog.notice-dialog :is(.two-actions,.dh-confirm-actions,.notice-actions),.notice-sheet .two-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-3)!important;margin:18px 0 0!important;padding:0!important}
dialog.notice-dialog :is(.two-actions,.dh-confirm-actions,.notice-actions)>:only-child,dialog.notice-dialog .notice-actions>:nth-child(3):last-child{grid-column:1/-1}
dialog.notice-dialog .notice-actions+small{margin-top:12px}
dialog.notice-dialog button,.notice-sheet .sheet-body button,.item-direct-dialog button,.development-unsaved-dialog button{min-height:42px!important;padding:9px 12px!important;font:13px/1.4 var(--ui-display,KboNtreev,system-ui)!important;white-space:normal;overflow-wrap:anywhere;border-radius:var(--ui-radius-control);box-sizing:border-box}
dialog.notice-dialog:not([open]){display:none!important}
/* Existing host dialogs retain their scrolling structure, but share the same spacing/type scale. */
.match-sheet.notice-sheet{width:min(480px,calc(100vw - 24px))!important;max-width:480px;max-height:calc(100dvh - 32px)!important}
.match-sheet.notice-sheet>header,.item-direct-dialog>header,.development-unsaved-dialog>header{padding:14px var(--notice-pad)!important;gap:10px}
.match-sheet.notice-sheet>header h2,.item-direct-dialog h2,.development-unsaved-dialog h2{font:var(--notice-heading-size)/1.4 var(--ui-display,KboNtreev,system-ui)!important;margin:0!important}
.match-sheet.notice-sheet>.sheet-body,.item-direct-body,.development-unsaved-body{padding:var(--notice-pad)!important;min-width:0;overflow:auto}
.notice-sheet .sheet-actions{gap:var(--ui-space-3)!important;margin-top:18px!important}.notice-sheet .sheet-body>p:last-child{margin-bottom:0}
.notice-sheet :is(ul,li){font:13px/1.65 var(--notice-body-font);overflow-wrap:anywhere}
/* Keep bound X handlers for compatibility; hidden controls cannot take layout space/focus. */
[data-redundant-close=true][hidden]{display:none!important}
/* Compact confirmations are centered; long task panels keep the shared top anchor. */
.match-sheet.notice-sheet{left:50%!important;right:auto!important;top:50%!important;bottom:auto!important;transform:translate(-50%,-50%)!important;margin:0!important;max-height:calc(var(--app-viewport-height,100dvh) - 32px)!important}

/* source: implementation/playable-v0.1/bench-cards.css */
/* One layout for modern bench cards. Text, energy and item actions get their own rows. */
.detailed-lineup{--bench-card-width:182px;--bench-rows:1;--bench-tray-height:136px}
.detailed-lineup:is(.view-order,.view-field,.view-pitching){grid-template-rows:auto auto minmax(0,1fr) 20px var(--bench-tray-height) 44px}
.detailed-lineup .bench-caption{display:flex;grid-row:4}
.detailed-lineup .bench-tray{display:grid;grid-row:5;grid-auto-flow:column;grid-auto-columns:var(--bench-card-width);grid-template-rows:repeat(var(--bench-rows),minmax(126px,1fr));gap:7px;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;min-height:0;align-items:stretch}
.detailed-lineup .workspace-actions{grid-row:6}
.detailed-lineup .bench-mini{display:grid;grid-template-columns:minmax(0,1fr) 26px;grid-template-rows:minmax(0,1fr) auto;gap:0;min-width:0;min-height:126px;width:auto;flex-basis:auto;align-items:stretch}
.detailed-lineup .bench-mini>button[data-action="bench-pick"]{grid-column:1;grid-row:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:3px;min-width:0;min-height:0;padding:7px 8px;text-align:left}
.detailed-lineup .bench-mini strong{display:block;flex:none;min-width:0;width:100%;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;font-size:var(--lineup-name-size,13px);line-height:1.25}
.detailed-lineup .bench-mini small,.detailed-lineup .bench-mini .candidate-position-line,.detailed-lineup .bench-mini .candidate-abilities,.detailed-lineup .bench-mini .candidate-record{display:block;min-width:0;white-space:normal;overflow:visible;text-overflow:clip;font-size:var(--lineup-stat-size,10px);line-height:1.35;letter-spacing:normal;margin:0}
.detailed-lineup .bench-pitcher-heading{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-width:0}
.detailed-lineup .bench-pitcher-heading>strong{flex:none;width:100%}
.detailed-lineup .bench-pitcher-heading>.pitcher-energy.energy-compact{flex:none;width:100%;max-width:none;min-height:12px;gap:var(--ui-space-1);margin:0}
.detailed-lineup .bench-mini>.item-direct-button small{display:inline;font:inherit}
.detailed-lineup .bench-mini>.item-direct-button{display:block;grid-column:1;grid-row:2;justify-self:stretch;align-self:end;margin:0 8px 5px;min-height:22px;line-height:1.2;white-space:nowrap}
.detailed-lineup .bench-mini>.drag-handle{grid-column:2;grid-row:1 / span 2;align-self:stretch;display:flex;align-items:center;justify-content:center;width:26px;min-width:26px;touch-action:none}
.detailed-lineup.view-pitching{--bench-tray-height:148px}
.detailed-lineup:has(.bench-tray[data-empty="true"]){--bench-tray-height:34px}
.detailed-lineup .bench-tray[data-empty="true"]{display:flex;align-items:center}
@media(max-width:800px) and (min-height:740px){.detailed-lineup.view-field{--bench-rows:2;--bench-tray-height:263px}}

/* source: implementation/playable-v0.1/range-controls.css */
.range-control{display:grid;grid-template-columns:28px minmax(60px,1fr) 28px 3.3em;align-items:center;gap:var(--ui-space-2);min-width:0;width:100%;margin-top:var(--ui-space-2)}
.range-control input[type=range]{width:100%;min-width:0;min-height:32px;height:32px;margin:0;padding:0;border:0;background:transparent;accent-color:var(--ui-accent);touch-action:pan-y}
.range-control button{min-width:28px;min-height:30px;padding:0;font-family:system-ui,sans-serif;font-size:var(--ui-font-body);line-height:1}
.range-control output{font:600 var(--ui-font-body)/1.2 system-ui,sans-serif;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;color:var(--ui-text)}
.match-sheet:is([data-panel=player],[data-panel=player-add]){top:max(8px,env(safe-area-inset-top));bottom:auto;height:calc(var(--app-viewport-height,100dvh) - 16px);max-height:calc(var(--app-viewport-height,100dvh) - 16px);display:flex;flex-direction:column;left:50%;right:auto;transform:translateX(-50%)}
.match-sheet:is([data-panel=player],[data-panel=player-add])>.sheet-body{min-height:0;overflow:auto;overscroll-behavior:contain;scroll-padding-bottom:90px}
@media(max-width:600px){.create-stat-grid,.edit-ratings{grid-template-columns:minmax(0,1fr)!important}.create-pitch-row,.arsenal-edit-row{grid-template-columns:minmax(80px,.75fr) minmax(0,1.4fr)}.range-control{grid-template-columns:28px minmax(48px,1fr) 28px 3em;gap:4px}.range-control input[type=range]{min-height:36px;height:36px}}

.market-offers{display:grid;gap:var(--ui-space-4)}.market-offers-footer{display:flex;justify-content:center;margin:var(--ui-space-6) 0 var(--ui-space-3);padding:var(--ui-space-3) 0}.market-offers-footer button{min-width:140px;max-width:100%}.market-offers article{padding:12px;border:1px solid var(--border,#52616a);border-radius:6px}.market-offers h3,.market-offers p{margin:0 0 8px}
.other-clubs-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--ui-space-3)}.other-clubs-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ui-space-2);min-width:0}.other-clubs-sections button{min-width:0;min-height:36px;font-size:var(--ui-font-small);padding:6px 8px;white-space:nowrap}.other-clubs-toolbar label{display:flex;align-items:center;gap:8px}.other-clubs-toolbar select{max-width:100px}.other-squad-list{display:grid;gap:5px}.other-squad-list button{display:flex;justify-content:space-between;gap:8px;padding:8px;text-align:left}.other-clubs .workspace-actions:empty{display:none}.other-clubs .lineup-workspace{height:min(740px,70dvh);min-height:350px}.other-clubs .bench-tray{max-height:130px}
@media(max-width:600px){.other-clubs .lineup-workspace{height:70dvh;min-height:350px}.trade-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.trade-actions button{min-width:0;padding:8px 4px;font-size:11px}}

/* Replace the old 52px numeric-input column for range controls. */
.match-sheet .edit-ratings label{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:center;min-width:0;gap:6px}
.match-sheet .edit-ratings label>.range-control{width:100%;min-width:0;margin:0}
.match-sheet :is(.edit-ratings,.create-stat-grid,.arsenal-editor,.arsenal-edit-row){min-width:0;max-width:100%;box-sizing:border-box}
.other-clubs-toolbar label{white-space:nowrap;flex:0 0 auto;grid-template-columns:none;width:auto}
@media(max-width:350px){.match-sheet .edit-ratings label{grid-template-columns:65px minmax(0,1fr)}}

@media(max-width:600px){.other-clubs-toolbar{grid-template-columns:minmax(0,1fr);gap:var(--ui-space-3)}.other-clubs-toolbar label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--ui-space-3)}.other-clubs-toolbar select{width:100%;max-width:none;margin:0}.other-clubs-sections{width:100%}.other-clubs-sections button{padding-inline:4px;font-size:var(--ui-font-small)}}

/* Player editing uses full-width sliders, never the old numeric-input grid. */
.match-sheet[data-panel="player"] .player-editor{min-width:0;color:var(--ui-text)}
.match-sheet[data-panel="player"] .player-editor-abilities{padding:0;border:0;margin:16px 0}
.match-sheet[data-panel="player"] .edit-ratings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px}
.match-sheet[data-panel="player"] .edit-ratings label{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;align-content:start;font-size:var(--ui-font-small)}
.match-sheet[data-panel="player"] fieldset{padding:14px;margin:18px 0;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);background:var(--ui-raised)}
.match-sheet[data-panel="player"] legend{font:var(--ui-font-body) var(--ui-display);padding:0 6px;color:var(--ui-text)}
.match-sheet[data-panel="player"] :is(.hands-editor,.arsenal-editor,.position-checks) select{height:36px;min-height:36px;width:100%;padding:5px 10px;font-size:var(--ui-font-body);color:var(--ui-text);background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--ui-radius-control)}
.match-sheet[data-panel="player"] .arsenal-edit-row{grid-template-columns:minmax(95px,.65fr) minmax(0,1.35fr);gap:18px;margin:14px 0}
.match-sheet[data-panel="player"] .arsenal-edit-row label{display:grid;gap:4px;min-width:0}
.match-sheet[data-panel="player"] .player-editor-alias{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
.match-sheet[data-panel="player"] .player-editor-alias label{display:grid;gap:6px;min-width:0}
.match-sheet[data-panel="player"] .player-editor-actions{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px}
.editor-secondary{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}.editor-secondary>span{flex:1 1 100%;font-size:var(--ui-font-small)}.editor-secondary label{display:flex;gap:5px;align-items:center}
[data-live-pitch-grade],[data-live-create-grade]{color:var(--ui-accent-text);font-variant-numeric:tabular-nums}.range-control.is-inactive{opacity:.45}
@media(max-width:600px){.match-sheet[data-panel="player"] .edit-ratings{grid-template-columns:minmax(0,1fr);gap:12px}.match-sheet[data-panel="player"] .arsenal-edit-row{grid-template-columns:minmax(80px,.65fr) minmax(0,1.35fr);gap:10px}.match-sheet[data-panel="player"] fieldset{padding:10px}.match-sheet[data-panel="player"] :is(.hands-editor,.arsenal-editor,.position-checks) select{font-size:14px}}

/* Editor buttons belong to the panel, not its long scrolling form. */
.match-sheet:is([data-panel="player"],[data-panel="player-add"]){--editor-edge:12px;box-sizing:border-box;top:max(var(--editor-edge),env(safe-area-inset-top,0px));bottom:auto;height:calc(var(--app-viewport-height,100dvh) - max(var(--editor-edge),env(safe-area-inset-top,0px)) - max(var(--editor-edge),env(safe-area-inset-bottom,0px)));max-height:calc(var(--app-viewport-height,100dvh) - max(var(--editor-edge),env(safe-area-inset-top,0px)) - max(var(--editor-edge),env(safe-area-inset-bottom,0px)));margin:0;padding:0;overflow:hidden}
.match-sheet:is([data-panel="player"],[data-panel="player-add"])>.sheet-body{flex:1 1 0;min-height:0;max-height:none;padding-bottom:20px;scroll-padding-bottom:20px}
.match-sheet:is([data-panel="player"],[data-panel="player-add"])>.editor-fixed-actions{flex:0 0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px;box-sizing:border-box;margin:0;padding:12px var(--modal-pad);border-top:1px solid var(--ui-line);background:var(--ui-surface)}
.match-sheet>.editor-fixed-actions>button{min-width:0;width:100%;min-height:44px;margin:0;padding:10px 8px;line-height:1.4}

.range-control>button,.range-control>button svg{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.range-control>button{display:grid;place-items:center}.range-control>button svg{pointer-events:none}
.create-random-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.create-random-toolbar small{font:var(--ui-font-small)/1.5 var(--ui-font-system);color:var(--ui-muted)}.create-random-toolbar button{min-width:80px}
.create-velocity-row{grid-template-columns:minmax(0,1fr)!important;margin-top:14px}.create-velocity-row>label{display:grid;gap:6px;min-width:0}

/* source: implementation/playable-v0.1/medical-report.css */
.medical-report{font:var(--ui-font-body)/1.6 var(--ui-font-system);min-width:0}
.medical-report>small{color:var(--ui-muted);font-size:var(--ui-font-small)}.medical-report h3{margin:10px 0;font:var(--ui-font-heading)/1.4 var(--ui-display)}
.medical-report dl{margin:12px 0}.medical-report dl>div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:12px;padding:5px 0}.medical-report dt{color:var(--ui-muted)}.medical-report dd{margin:0;overflow-wrap:anywhere}.medical-report p{font-size:var(--ui-font-small);line-height:1.6}
.medical-decisions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.medical-decisions button{min-width:0;min-height:42px}

/* source: implementation/playable-v0.1/mobile-compat.css */
/* Browser text inflation and focus zoom are separate from deliberate user zoom. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button{touch-action:manipulation}
@media(hover:none) and (pointer:coarse),(max-width:750px){
 :root input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=button]):not([type=submit]),:root textarea,:root select{font-size:16px!important;line-height:1.4}
}

/* source: implementation/playable-v0.1/presence.css */
.stadium-presence {
  display: inline-flex;
  align-items: center;
  flex: none;
  gap: 3px;
  padding: 3px 6px;
  border: 1px solid var(--ui-line);
  border-radius: var(--ui-radius-control);
  background: var(--ui-surface);
  color: var(--ui-muted);
  font: 600 11px/1.4 ui-monospace, monospace;
  white-space: nowrap;
}
.stadium-presence::before {
  content: '';
  inline-size: 5px;
  block-size: 5px;
  border-radius: 50%;
  background: var(--ui-accent-text);
}
.stadium-presence strong {
  color: var(--ui-text);
  font: inherit;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 800px) {
  .manager-header .stadium-presence { font-size: var(--ui-font-dense); padding: 2px 4px; }
  .integrated-toolbar .stadium-presence { font-size: var(--ui-font-xs); padding: 3px 5px; }
}
@media (max-width: 360px) {
  .stadium-presence { padding-inline: 4px; }
  .stadium-presence::before { display: none; }
}

/* source: stadium-chat.css */
.stadium-chat {
  --chat-width: min(320px, 75vw);
  position: fixed;
  z-index: 5;
  inset-block-start: var(--chat-top, clamp(56px, 15%, 120px));
  inset-inline-end: 0;
  color: var(--ui-text);
}
.stadium-chat-handle {
  position: absolute;
  right: 0;
  top: 0;
  min-width: 32px;
  min-height: 44px;
  padding: 4px 5px;
  writing-mode: vertical-rl;
  font-size: 11px;
  background: var(--ui-surface);
  border-color: var(--ui-line-strong);
  border-radius: 6px 0 0 6px;
}
.stadium-friends-handle { top: 48px; }
.stadium-chat-dot {
  position: absolute;
  z-index: 1;
  top: 2px;
  right: 2px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ee4358;
  box-shadow: 0 0 0 1px var(--ui-surface);
  pointer-events: none;
}
.stadium-chat-guest {
  display: inline-grid;
  place-items: center;
  width: 1.35em;
  height: 1.35em;
  margin-inline-end: .35em;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: .8em;
}
.stadium-chat [hidden] { display: none !important; }
.stadium-chat-panel {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-rows: auto auto auto auto minmax(0, 1fr) auto;
  width: var(--chat-width);
  height: min(610px, 76vh);
  height: min(610px, 76dvh);
  max-height: var(--chat-height, calc(100dvh - clamp(56px, 15dvh, 120px) - 12px - env(safe-area-inset-bottom, 0px)));
  padding: 8px;
  box-sizing: border-box;
  border: 1px solid var(--ui-line);
  border-radius: 6px 0 0 6px;
  box-shadow: 0 8px 24px #0005;
  animation: side-drawer-enter .2s ease-out both;
}
@keyframes side-drawer-enter { from { transform: translateX(100%); } to { transform: translateX(0); } }
@media (prefers-reduced-motion: reduce) { .stadium-chat-panel { animation: none; } }
.stadium-chat-panel::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: var(--ui-surface);
  opacity: var(--chat-opacity, 1);
}
.stadium-chat-heading, .stadium-chat-actions, .stadium-chat-compose, .stadium-chat-nickname, .stadium-chat-opacity {
  display: flex;
  align-items: center;
  gap: 5px;
}
.stadium-chat-heading { grid-row: 1; justify-content: space-between; }
.stadium-chat-opacity { grid-row: 2; min-height: 34px; white-space: nowrap; font-size: 11px; color: var(--ui-text); }
.stadium-chat-opacity input { flex: 1; min-width: 0; padding: 0; }
.stadium-chat-opacity output { min-width: 4ch; text-align: end; }
.stadium-chat-nickname { grid-row: 3; }
.stadium-chat button { min-height: 33px; padding: 4px 7px; font-size: 11px; white-space: nowrap; }
.stadium-chat button.stadium-chat-handle { min-height: 44px; padding: 4px 5px; }
.stadium-chat-label-compact { display: none; }
@media (max-width: 800px) {
  .stadium-chat button.stadium-chat-handle {
    display: grid;
    place-content: center;
    width: 10px;
    min-width: 10px;
    box-sizing: border-box;
    border-inline-end: 0;
    padding: 0;
    writing-mode: horizontal-tb;
    font: 600 9px/1.2 var(--ui-font-system);
    text-align: center;
  }
  .stadium-chat-label { display: none; }
  .stadium-chat-label-compact { display: grid; }
}
.stadium-chat-info { grid-row: 4; color: var(--ui-text); font-size: 11px; }
.stadium-chat-log { grid-row: 5; min-height: 0; overflow-y: auto; overscroll-behavior: contain; list-style: none; margin: 0 0 7px; padding: 0; }
.stadium-chat-log li { padding: 6px 1px; border-bottom: 1px solid var(--ui-line); overflow-wrap: anywhere; font-size: 12px; }
.stadium-chat-log b { margin-inline-end: 6px; color: var(--ui-accent-text); }
.stadium-chat-compose { grid-row: 6; }
.stadium-chat input[type=text] { min-width: 0; flex: 1; width: 100%; box-sizing: border-box; font-size: 16px; }
body:has(.stadium-chat-handle[aria-expanded=true]) .quick-shift-right { z-index: 4; }

/* source: implementation/playable-v0.1/ui-polish391.css */
/* Focused polish inspired by unslop, Damir Sokolovsky (@heydamir), CC BY 4.0.
   https://github.com/heydamir/unslop
   Paint only. Existing layout, font sizes, club palette and semantic statuses stay intact. */

/* Names and actual ratings lead; dates, labels and recovery context support them. */
.player-detail-dialog{color:var(--ui-text)}
.player-detail-dialog>header h2,.player-detail-dialog>header button,.player-detail-dialog>footer button,
.player-detail h4,.player-detail-table thead{color:var(--ui-text)}
.player-detail-identity small,.player-detail-identity>span,
.player-energy-panel>p,.player-energy-panel>small,.player-recovery-row span{color:var(--ui-muted)}
.player-recovery-row b,.player-card-rating>strong{color:var(--ui-text)}
.player-card-abilities{background:var(--ui-surface)}
.player-card-abilities>small{color:var(--ui-muted)}
.player-card-pitches>span{color:var(--ui-muted)}
.player-card-pitches b{color:var(--ui-text)}

/* Keep the primary item decision and its outcome above stock/context text. */
.inventory-item>small,.item-count,.item-training-name,.item-quantity-control>small,
.item-confirm-stock,.item-stat-change>span,.item-preview>span{color:var(--ui-muted)}
.inventory-item>strong,.item-count>b,.item-player-heading>strong,
.item-preview>strong,.item-stat-change>strong{color:var(--ui-text)}
.item-preview{background:var(--ui-raised)}
.item-preview .item-stat-rise,.item-preview .item-growth-gain{color:var(--ui-accent-text)}
.item-warning{color:var(--ui-warning)}
.item-direct-error{color:var(--ui-danger)}
.item-player[aria-pressed="true"] .item-player-heading>strong{color:var(--ui-accent-text)}

/* Main notice copy remains readable; only explicitly secondary copy is quiet. */
.notice-dialog :is(.note,small),.notice-sheet :is(.sheet-note,.notice-note){color:var(--ui-muted)}

/* Host controls only: immediate press, short release, no movement or JS delay.
   Field controls and draggable player cards keep their own interaction contract. */
body:is(.manager-mode,.setup-mode,.match-mode) button:not(:disabled):not([draggable="true"]):not(.drag-handle):not([data-range-step]){
 transition:filter 120ms ease-out;
}
body:is(.manager-mode,.setup-mode,.match-mode) button:not(:disabled):not([draggable="true"]):not(.drag-handle):not([data-range-step]):active{
 filter:brightness(.82);
 transition-duration:0ms;
}
@media(prefers-reduced-motion:reduce){
 body:is(.manager-mode,.setup-mode,.match-mode) button{transition:none}
}

/* source: implementation/playable-v0.1/management392.css */
/* Keep long workspaces unchanged; only these short decisions are centered. */
.match-sheet:is([data-panel="medical-auto-confirm"],[data-panel="medical-auto-notice"],[data-panel="batch-injury"],[data-panel="reward-bulk"]){width:min(520px,calc(100vw - 24px));top:50%;bottom:auto;left:50%;right:auto;transform:translate(-50%,-50%);height:auto;max-height:calc(100dvh - 32px)}
.medical-auto-action{margin-top:14px}.medical-auto-action button{width:100%}
.working:has(.match-sheet[data-panel="batch-injury"]){opacity:1}
.working .match-sheet[data-panel="batch-injury"]{pointer-events:auto}
.medical-managed-list,.reward-bulk-list{max-height:42dvh;overflow:auto;overscroll-behavior:contain}
.medical-managed-list article{padding:10px 0;border-bottom:1px solid var(--ui-line)}
.reward-bulk-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--ui-line)}
.reward-bulk-list b{color:var(--ui-accent-text)}
.injury-auto-settings{padding:16px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);background:var(--ui-surface);margin:12px 0}
.injury-auto-settings h3{font-size:var(--ui-font-label);margin:0 0 8px}.injury-auto-settings p{font-size:var(--ui-font-small);color:var(--ui-muted)}
.injury-auto-settings [aria-pressed="true"],.roster-editor-controls .editor-source-controls button[aria-pressed="true"]{background:var(--ui-accent-soft);color:var(--ui-accent-text);border-color:var(--ui-accent-text)}
@media(max-width:600px){
 .appearance-settings .appearance-fields{gap:10px}
 .appearance-settings .appearance-fields select{min-height:36px;height:36px;padding:4px 8px;font-size:16px;box-sizing:border-box}
 .appearance-settings .appearance-heading h3{font-size:var(--ui-font-heading)}
 .appearance-settings .appearance-heading{margin-bottom:12px}
 .match-sheet[data-panel="batch-injury"] .two-actions{grid-template-columns:1fr}
}

/* source: implementation/playable-v0.1/management393.css */
/* v393: scoped notice positioning and pitching information, no lineup row changes. */
.match-sheet[data-panel="calendar-day"]{left:50%!important;right:auto!important;top:50%!important;bottom:auto!important;transform:translate(-50%,-50%)!important;margin:0!important;max-height:calc(var(--app-viewport-height,100dvh) - 32px)!important;width:min(620px,calc(100vw - 24px))!important;max-width:620px}
.batch-injury-details{display:grid;gap:8px;margin-block:12px}
.batch-injury-details article{display:flex;flex-wrap:wrap;gap:4px 12px;padding:10px;border:1px solid var(--ui-line);border-radius:6px}
.batch-injury-details span{font-size:.9em}
.inbox-club-select{display:flex;align-items:center;gap:10px;flex-basis:100%;margin-bottom:4px}
.inbox-club-select select{width:auto;min-width:110px;min-height:36px;padding:5px 26px 5px 10px;font-size:16px}
.player-detail .player-stat-grid.is-pitching{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.player-detail .player-stat-grid.is-pitching>div{min-width:0}
.player-max-velocity{display:flex;align-items:baseline;gap:6px;margin:8px 0 12px;color:var(--ui-text)}
.player-max-velocity strong{font-size:1.25em;color:var(--ui-accent-text)}
.player-max-velocity span{font-size:.85em}

/* source: implementation/playable-v0.1/staff-ui.css */
/* Staff uses the existing manager content scroll; lineup's six direct rows are untouched. */
.strength-workspace{width:100%;max-width:1100px;margin:0 auto;padding:var(--ui-space-4);box-sizing:border-box;min-width:0;color:var(--ui-text)}
.strength-heading{margin:0 0 var(--ui-space-4)}.strength-heading small{font:var(--ui-font-caption)/1.5 var(--ui-font-system);color:var(--ui-muted)}.strength-heading h1{font:25px/1.3 var(--ui-display);margin:var(--ui-space-1) 0}
.strength-section-tabs{display:flex;gap:var(--ui-space-2);margin-bottom:var(--ui-space-4)}.strength-section-tabs button,.staff-role-tabs button{min-height:var(--ui-control-height);padding:7px 13px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);font:var(--ui-font-body)/1.4 var(--ui-display);background:var(--ui-raised);color:var(--ui-text);white-space:nowrap}
.strength-section-tabs button[aria-pressed=true],.staff-role-tabs button[aria-pressed=true]{background:var(--ui-accent);border-color:var(--ui-accent);color:var(--ui-on-accent)}
.manager-content:has(>.strength-workspace){overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable}.manager-content>.strength-workspace{min-height:100%;height:auto}.strength-workspace>.growth-report{max-width:none;padding:0;margin:0}.strength-workspace>.growth-report>.growth-page-heading{display:none}
.coaching-staff-workspace{min-width:0;font:var(--ui-font-body)/1.5 var(--ui-font-system)}.coaching-staff-workspace *{box-sizing:border-box}.staff-role-tabs{position:sticky;top:0;z-index:2;background:var(--ui-page);display:flex;gap:var(--ui-space-2);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding-block:var(--ui-space-2);isolation:isolate}.staff-role-tabs button{flex:0 0 auto;min-width:84px}
.staff-page-heading,.staff-list-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-3);min-width:0;margin:var(--ui-space-4) 0 var(--ui-space-3)}.staff-page-heading h2,.staff-list-heading h3{margin:0;font:var(--ui-font-subtitle)/1.4 var(--ui-display)}.staff-page-heading>span,.staff-list-heading>span{font-size:var(--ui-font-small);color:var(--ui-muted);white-space:nowrap}.staff-change-notice{padding:var(--ui-space-3) var(--ui-space-4);border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);color:var(--ui-warning);font-size:var(--ui-font-small);margin:0 0 var(--ui-space-3)}
.staff-appointments{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--ui-space-3)}.staff-appointments.has-extra-slot{grid-template-columns:2fr 1fr}.staff-current{min-width:0;padding:var(--ui-space-4);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);background:var(--ui-raised)}.staff-current h3{font:var(--ui-font-small)/1.4 var(--ui-display);color:var(--ui-muted);margin:0 0 var(--ui-space-3)}.staff-current-identity{display:flex;align-items:center;gap:var(--ui-space-3)}.staff-current-identity>div{flex:1;min-width:0}.staff-current-identity strong{font:var(--ui-font-label)/1.4 var(--ui-display)}.staff-current-identity small{display:block;font-size:var(--ui-font-small);color:var(--ui-muted)}.staff-current-empty{min-height:56px;display:flex;flex-direction:column;justify-content:center;gap:var(--ui-space-1)}.staff-current-empty strong{font:var(--ui-font-label)/1.4 var(--ui-display)}.staff-current-empty span{font-size:var(--ui-font-small);color:var(--ui-muted)}.staff-slot-locked{display:flex;flex-direction:column;justify-content:center;gap:var(--ui-space-2);background:var(--ui-surface)}.staff-slot-locked h3{margin-bottom:0}.staff-slot-locked strong{font:var(--ui-font-body)/1.4 var(--ui-display);color:var(--ui-muted)}.staff-slot-locked small{font-size:var(--ui-font-caption);color:var(--ui-muted)}
.staff-candidate-list{display:grid;gap:var(--ui-space-2);min-width:0}.staff-candidate{display:grid;grid-template-columns:34px minmax(0,1fr) 66px;gap:var(--ui-space-3);align-items:center;min-width:0;padding:var(--ui-space-3) var(--ui-space-4);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card);background:var(--ui-surface)}.staff-candidate.is-appointed{border-color:var(--ui-accent);background:var(--ui-accent-soft)}.staff-candidate-copy{min-width:0}.staff-candidate-identity{display:flex;align-items:baseline;gap:var(--ui-space-3);flex-wrap:wrap;min-width:0}.staff-candidate-identity strong{font:var(--ui-font-label)/1.4 var(--ui-display)}.staff-candidate-identity small{font-size:var(--ui-font-small);color:var(--ui-muted)}.staff-appointed-label{font-size:var(--ui-font-caption);color:var(--ui-accent-text)}
.staff-grade{display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:30px;border:1px solid var(--ui-line-strong);border-radius:var(--ui-radius-control);background:var(--ui-raised);color:var(--ui-text);font:var(--ui-font-subtitle)/1 var(--ui-display)}.staff-grade.grade-S{color:var(--ui-warning);border-color:var(--ui-warning)}.staff-grade.grade-A{color:var(--ui-accent-text)}.staff-grade.grade-C{color:var(--ui-muted)}
.staff-effects{display:flex;gap:var(--ui-space-1) var(--ui-space-4);flex-wrap:wrap;min-width:0;font-size:var(--ui-font-small);margin-top:var(--ui-space-1)}.staff-effect{color:var(--ui-muted);overflow-wrap:anywhere}.staff-effect b{font-family:var(--ui-font-system);font-variant-numeric:tabular-nums}.staff-effect.is-positive b{color:var(--ui-success)}.staff-effect.is-negative b{color:var(--ui-danger)}.staff-current button,.staff-candidate button{min-height:var(--ui-control-height);padding:6px 10px;white-space:nowrap;font:var(--ui-font-small)/1.4 var(--ui-display);border:1px solid var(--ui-line-strong);border-radius:var(--ui-radius-control);background:var(--ui-raised);color:var(--ui-text)}.staff-candidate button:not(:disabled){border-color:var(--ui-accent);background:var(--ui-accent);color:var(--ui-on-accent)}.staff-current button:disabled,.staff-candidate button:disabled{opacity:.5}.staff-no-candidates{color:var(--ui-muted);text-align:center;padding:var(--ui-space-6)}
@media(max-width:600px){.strength-workspace{padding:var(--ui-space-3)}.strength-heading h1{font-size:22px}.strength-section-tabs button{flex:1;min-width:0}.staff-role-tabs button{min-width:78px;padding-inline:10px;font-size:var(--ui-font-small)}.staff-candidate{grid-template-columns:28px minmax(0,1fr) 58px;padding:var(--ui-space-3);gap:var(--ui-space-2)}.staff-grade{width:26px;height:28px;font-size:var(--ui-font-label)}.staff-candidate-identity{gap:2px 7px}.staff-candidate-identity strong{font-size:var(--ui-font-body)}.staff-candidate-identity small,.staff-effects{font-size:var(--ui-font-caption)}.staff-candidate button{padding-inline:7px}.staff-current{padding:var(--ui-space-3)}.staff-appointments.has-extra-slot{grid-template-columns:minmax(0,1fr)}.staff-slot-locked{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--ui-space-1) var(--ui-space-3)}.staff-slot-locked h3{grid-row:span 2}.staff-slot-locked small{grid-column:2}.staff-current-identity strong{font-size:var(--ui-font-body)}}

.staff-unseen-dot{display:inline-block;width:7px;height:7px;margin-inline-start:.4em;border-radius:50%;background:#e2434f;box-shadow:0 0 0 1px var(--ui-surface);vertical-align:super}
.lobby-menu-button>.staff-unseen-dot{position:absolute;inset-block-start:7px;inset-inline-end:7px;margin:0}
.staff-new-label{display:inline-block;border-radius:3px;padding:1px 4px;background:#a92236;color:#fff;font:700 9px/1.4 var(--ui-font-system)}

/* source: implementation/playable-v0.1/potential.css */
.potential-panel,.potential-list section { display:grid; gap:var(--ui-space-3); min-width:0; }
.potential-panel { position:relative; isolation:isolate; padding:var(--ui-space-4); margin-block:var(--ui-space-3); border:1px solid var(--ui-border); border-radius:var(--ui-radius-card); background:var(--ui-surface); }
.potential-heading,.potential-gauge { display:flex; align-items:center; gap:var(--ui-space-2); }
.potential-heading { justify-content:space-between; }
.potential-heading h4,.potential-explanation,.potential-muted { margin:0; }
.potential-heading span,.potential-muted,.potential-gauge span { color:var(--ui-muted); font-size:var(--ui-font-caption); }
.potential-slots { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--ui-space-2); }
.potential-slot { position:relative; display:grid; place-content:center; min-height:48px; min-width:0; text-align:center; padding:var(--ui-space-1); overflow-wrap:anywhere; }
.potential-slot[data-potential-tier] { border-color:color-mix(in srgb,var(--potential-edge) 57%,var(--ui-line)); color:var(--potential-ink); background:color-mix(in srgb,var(--potential-surface) 48%,var(--ui-surface)); }
.potential-slot.is-cycling,.potential-slot.is-active,.potential-badge[data-potential-tier] { border-color:var(--potential-edge); color:var(--potential-ink); background:var(--potential-surface); }
.potential-slots:has(.potential-slot.is-active) .potential-slot:not(.is-active) { opacity:.5; }
.potential-slot.is-active { border-width:2px; font-weight:700; }
:root[data-studio-mode="light"] .potential-slot.is-active {
  color:color-mix(in srgb,var(--potential-ink) 78%,#101820);
  border-color:color-mix(in srgb,var(--potential-edge) 78%,#101820);
  background:color-mix(in srgb,var(--potential-surface) 86%,var(--potential-edge));
}
.potential-slot.is-cycling { box-shadow:inset 0 0 12px var(--potential-glow); }
.potential-slot.is-revealed { animation:potential-lock .68s ease-out; z-index:1; }
.potential-slot.is-revealed::after { content:''; position:absolute; inset:0; border:2px solid var(--potential-edge); border-radius:inherit; pointer-events:none; animation:potential-wave .65s ease-out both; }
.potential-slot.is-revealed[data-potential-slot="2"]::before { content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 8% 25%,var(--potential-edge) 0 1px,transparent 3px),radial-gradient(circle at 19% 78%,var(--potential-edge) 0 2px,transparent 4px),radial-gradient(circle at 84% 18%,var(--potential-edge) 0 2px,transparent 4px),radial-gradient(circle at 92% 76%,var(--potential-edge) 0 1px,transparent 3px); animation:potential-sparks .68s ease-out both; }
.potential-slot.is-active:not(.is-revealed)[data-potential-tier="unique"],.potential-badge[data-potential-tier="unique"] { animation:potential-halo 2.8s ease-in-out infinite; }
@keyframes potential-lock { 0%{ transform:scale(1); } 24%{ transform:scale(1.06); box-shadow:0 0 22px var(--potential-glow),inset 0 0 18px var(--potential-glow); } 100%{ transform:scale(1); } }
@keyframes potential-halo { 0%,100%{box-shadow:0 0 3px var(--potential-glow)} 50%{box-shadow:0 0 9px var(--potential-glow)} }
@keyframes potential-wave { from{ transform:scale(1); opacity:.8; } to{ transform:scale(1.12,1.28); opacity:0; } }
@keyframes potential-sparks { from{ transform:scale(.75); opacity:1; } to{ transform:scale(1.27,1.52); opacity:0; } }
.potential-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--ui-space-2); }
.potential-actions button { min-width:0; min-height:var(--ui-control-height); white-space:normal; }
.potential-reward-dialog { position:fixed; inset:0; margin:auto; width:min(420px,calc(100% - 28px)); padding:var(--ui-space-4); border:1px solid var(--ui-line); border-radius:var(--ui-radius-modal); background:var(--ui-surface); color:var(--ui-text); }
.potential-reward-dialog::backdrop { background:var(--ui-backdrop); }
.potential-reward-dialog form { display:grid; gap:var(--ui-space-3); }
.potential-reward-dialog h3 { margin:0; }
.potential-gauge span { white-space:nowrap; font-variant-numeric:tabular-nums; }
.potential-track { position:relative; flex:1; height:8px; overflow:hidden; border-radius:10px; background:var(--ui-border); }
.potential-track i { position:absolute; inset-block:0; left:0; width:var(--potential-fill); border-radius:inherit; background:var(--ui-accent); }
.potential-track .potential-extra { background:#eebd50; }
.potential-list { display:grid; gap:var(--ui-space-4); }
.potential-list h2,.potential-list h3 { margin:0; }
.potential-list h3 small { color:var(--ui-muted); font-size:var(--ui-font-small); font-weight:400; }
.potential-row { display:grid; grid-template-columns:minmax(82px,1fr) minmax(105px,1.6fr) minmax(0,.85fr); align-items:center; text-align:left; gap:var(--ui-space-2); }
.potential-row small { overflow-wrap:anywhere; }
.potential-identity { overflow-wrap:anywhere; }
.potential-badge { display:inline-block; color:var(--ui-accent-text); font-size:var(--ui-font-caption); padding:1px 4px; border:1px solid currentColor; border-radius:var(--ui-radius-small); line-height:1.2; min-width:0; max-width:min(10em,100%); overflow:hidden; text-overflow:ellipsis; vertical-align:middle; white-space:nowrap; }
.bench-mini strong .potential-badge { margin-inline-start:var(--ui-space-1); }
@media(prefers-reduced-motion:reduce){.potential-slot.is-revealed,.potential-slot.is-revealed::after,.potential-slot.is-revealed::before,.potential-slot.is-active[data-potential-tier="unique"],.potential-badge[data-potential-tier="unique"]{animation:none}.potential-slot.is-revealed::before,.potential-slot.is-revealed::after{display:none}}

/* source: implementation/playable-v0.1/tutorial.css */
.tutorial-guide[hidden]{display:none!important}.tutorial-guide{position:fixed;inset:0;z-index:2147482000;pointer-events:none;color:var(--ui-text);text-size-adjust:100%;-webkit-text-size-adjust:100%}.tutorial-shade{position:fixed;background:rgba(0,0,0,.4);pointer-events:auto}.tutorial-target-ring{position:fixed;border:2px solid var(--ui-accent-text);border-radius:var(--ui-radius-control);box-shadow:0 0 0 2px #0004;pointer-events:none;animation:tutorial-focus 1.8s ease-in-out infinite}.tutorial-bubble{position:fixed;box-sizing:border-box;overflow:auto;overscroll-behavior:contain;pointer-events:auto;background:var(--ui-surface);border:1px solid var(--ui-line-strong);border-radius:var(--ui-radius-modal);padding:var(--ui-space-4);box-shadow:0 8px 28px #0005;font:var(--ui-font-body)/var(--ui-leading-body) var(--ui-font-system);color:var(--ui-text)}.tutorial-bubble header{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-3);border:0;padding:0;background:transparent;min-height:0}.tutorial-bubble header b{font-family:var(--ui-display);color:var(--ui-accent-text)}.tutorial-bubble header small{color:var(--ui-muted);font-size:var(--ui-font-caption)}.tutorial-bubble h2{font:var(--ui-font-subtitle)/var(--ui-leading-tight) var(--ui-display);margin:var(--ui-space-2) 0}.tutorial-bubble p{margin:var(--ui-space-2) 0;color:var(--ui-text);font-size:var(--ui-font-body);line-height:var(--ui-leading-body);overflow-wrap:anywhere}.tutorial-guide-actions{display:flex;justify-content:flex-end;margin-top:var(--ui-space-3);gap:var(--ui-space-2)}.tutorial-guide button{font:var(--ui-font-small)/1.3 var(--ui-display);min-height:var(--ui-control-height);padding:6px 12px;color:var(--ui-on-accent);background:var(--ui-accent);border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);cursor:pointer}.tutorial-guide button[hidden]{display:none!important}.tutorial-guide button:active{filter:brightness(.88)}.tutorial-guide button:focus-visible{outline:2px solid var(--ui-text);outline-offset:2px}.tutorial-gift{text-align:center;max-width:440px;margin:auto}.tutorial-gift h3{font-family:var(--ui-display);font-size:var(--ui-font-subtitle);margin:var(--ui-space-4) 0 var(--ui-space-2)}.tutorial-gift p{font-size:var(--ui-font-body);color:var(--ui-muted);line-height:var(--ui-leading-body)}.tutorial-gift ul{list-style:none;margin:var(--ui-space-4) 0;padding:0;text-align:left}.tutorial-gift li{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-3);padding:var(--ui-space-3) 0;border-bottom:1px solid var(--ui-line);font-size:var(--ui-font-body)}.tutorial-gift li span{white-space:nowrap;color:var(--ui-accent-text)}.tutorial-gift>div:last-child>button{width:100%;min-height:var(--ui-action-height)}.tutorial-gift-box{position:relative;width:74px;height:62px;margin:var(--ui-space-3) auto var(--ui-space-5);border-radius:var(--ui-radius-small);background:var(--ui-accent);box-shadow:0 6px 18px #0004}.tutorial-gift-box:before{content:'';position:absolute;left:-4px;right:-4px;top:0;height:14px;background:var(--ui-accent-text);border-radius:var(--ui-radius-small);transform-origin:left bottom;transition:transform .35s ease}.tutorial-gift-box span{position:absolute;left:31px;top:0;width:12px;height:62px;background:var(--ui-on-accent);opacity:.5}.tutorial-gift-box b{position:absolute;inset:20px 0 0;color:var(--ui-on-accent);font-size:24px}.tutorial-gift.is-received .tutorial-gift-box:before{transform:translateY(-10px) rotate(-12deg)}.tutorial-gift.is-received .tutorial-gift-box{animation:tutorial-gift-receive .5s ease-out}.tutorial-gift.is-received h3{color:var(--ui-success)}@keyframes tutorial-focus{50%{box-shadow:0 0 0 4px #0003,0 0 12px var(--ui-accent-soft)}}@keyframes tutorial-gift-receive{0%{transform:scale(.8);opacity:.4}65%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}@media(max-width:600px){.tutorial-bubble{padding:var(--ui-space-3)}.tutorial-bubble p{font-size:var(--ui-font-small)}.tutorial-gift li{font-size:var(--ui-font-small)}}@media(prefers-reduced-motion:reduce){.tutorial-target-ring,.tutorial-gift.is-received .tutorial-gift-box{animation:none}.tutorial-gift-box:before{transition:none}}

/* Opening gifts are compact notices; retain centered placement and an accessible body. */
.tutorial-guide [data-tutorial-skip]{background:var(--ui-raised);color:var(--ui-text)}
.practice-side-fade{position:fixed;inset:0;z-index:2147483000;background:#000;opacity:0;transition:opacity .24s ease}
.practice-side-fade.is-dark{opacity:1}
[data-practice-manager-note],.practice-potential-note{margin:0;padding:8px 12px;background:var(--ui-raised);color:var(--ui-text);font:var(--ui-font-body)/1.5 var(--ui-font-system)}
.player-detail-dialog[data-practice-potential-detail] [hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.practice-side-fade{transition:none}}
.match-sheet:is([data-panel="tutorial-gift"],[data-panel="tutorial-gift-received"]){left:50%!important;right:auto!important;top:calc(var(--app-viewport-height,100dvh) / 2)!important;bottom:auto!important;transform:translate(-50%,-50%)!important;margin:0!important;width:min(480px,calc(100vw - 24px))!important;max-height:calc(var(--app-viewport-height,100dvh) - 32px)!important;min-height:0!important;display:flex;flex-direction:column}
.match-sheet:is([data-panel="tutorial-gift"],[data-panel="tutorial-gift-received"])>.sheet-body{min-height:0;overflow:auto;padding:var(--ui-space-4);overscroll-behavior:contain}
.tutorial-gift.is-received{padding-block-start:var(--ui-space-5)}
.tutorial-gift-actions{flex:0 0 auto;padding:var(--ui-space-3) var(--ui-space-4) var(--ui-space-4);border-top:1px solid var(--ui-line)}
.tutorial-gift-actions>button{width:100%;min-height:var(--ui-action-height)}

/* source: implementation/playable-v0.1/management-14c.css */
/* v0.3.95.1c: reputation uses the existing UI theme and type scale. */
.lobby-club-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(122px,.9fr);align-items:start;gap:var(--ui-space-4,12px)}
.lobby-club-identity{min-width:0}
.lobby-club-identity>span{font-size:var(--ui-font-caption,11px);letter-spacing:1.5px;color:var(--ui-muted)}
.game-lobby .lobby-reputation{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-space-1,4px);width:100%;min-width:0;min-height:76px;padding:9px 10px;background:var(--ui-raised);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card,8px);color:var(--ui-text);text-align:left;font-size:var(--ui-font-small,12px);line-height:1.3}
.game-lobby .lobby-reputation:hover{background:var(--ui-hover)}
.game-lobby .lobby-reputation>span{display:flex;align-items:baseline;gap:6px;font-size:var(--ui-font-caption,11px);color:var(--ui-muted);white-space:nowrap}
.game-lobby .lobby-reputation b{font-size:var(--ui-font-subtitle,16px);font-variant-numeric:tabular-nums;color:var(--ui-text)}
.game-lobby .lobby-reputation>strong{display:block;max-width:100%;font-size:var(--ui-font-small,12px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game-lobby .lobby-reputation>small{font-size:var(--ui-font-caption,11px)}
.reputation-panel .is-positive,.reputation-result .is-positive,.lobby-reputation .is-positive{color:var(--ui-success)}
.reputation-panel .is-negative,.reputation-result .is-negative,.lobby-reputation .is-negative{color:var(--ui-danger)}
.reputation-panel .is-neutral,.reputation-result .is-neutral,.lobby-reputation .is-neutral{color:var(--ui-muted)}
.match-sheet[data-panel^="reputation"]{position:fixed;top:var(--ui-modal-top,12px);bottom:auto;left:50%;right:auto;transform:translateX(-50%);margin:0;width:min(640px,calc(100% - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - var(--ui-modal-top,12px) - max(12px,env(safe-area-inset-bottom,0px)))}
.match-sheet[data-panel^="reputation"] .sheet-body{min-width:0;overflow-x:hidden}
.reputation-panel{display:grid;gap:var(--ui-space-6,20px);font-size:var(--ui-font-body,13px);line-height:1.5;color:var(--ui-text)}
.reputation-panel h3,.reputation-confirm h3{font-size:var(--ui-font-label,14px);margin:0 0 var(--ui-space-3,8px);line-height:1.4}
.reputation-panel p,.reputation-confirm p{font-size:var(--ui-font-small,12px);margin:0 0 var(--ui-space-4,12px);color:var(--ui-muted);line-height:1.6}
.reputation-overview{display:grid;grid-template-columns:1fr 1fr;gap:var(--ui-space-4,12px);align-items:stretch;padding:var(--ui-space-5,16px);background:var(--ui-raised);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card,8px)}
.reputation-overview>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.reputation-overview small{font-size:var(--ui-font-small,12px);color:var(--ui-muted)}
.reputation-overview strong{font-size:24px;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--ui-accent-text)}
.reputation-overview b{font-size:var(--ui-font-heading,18px);font-variant-numeric:tabular-nums}
.reputation-overview span{font-size:var(--ui-font-small,12px)}
.reputation-slot-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-3,8px);margin:var(--ui-space-4,12px) 0}
.reputation-slot-list article{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-space-2,6px);padding:var(--ui-space-4,12px);min-width:0;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card,8px);background:var(--ui-raised)}
.reputation-slot-list article.is-unlocked{border-color:var(--ui-success)}
.reputation-slot-list article>span,.reputation-unlocks>small{font-size:var(--ui-font-small,12px);color:var(--ui-muted)}
.reputation-slot-list article.is-unlocked>span{color:var(--ui-success)}
.reputation-slot-list button{width:100%;margin-top:4px;min-height:var(--ui-control-height,36px);font-size:var(--ui-font-small,12px)}
.reputation-panel .reputation-block,.reputation-confirm .reputation-block{padding:var(--ui-space-3,8px) var(--ui-space-4,12px);border-radius:var(--ui-radius-control,6px);background:var(--ui-warning-bg);color:var(--ui-warning)}
.reputation-titles ul{display:flex;flex-wrap:wrap;gap:var(--ui-space-3,8px);padding:0;margin:0;list-style:none}
.reputation-titles li{display:flex;flex-direction:column;gap:2px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-control,6px);padding:var(--ui-space-3,8px) var(--ui-space-4,12px)}
.reputation-titles strong{font-size:var(--ui-font-small,12px)}
.reputation-titles time{font-size:var(--ui-font-caption,11px);color:var(--ui-muted)}
.reputation-section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-3,8px);margin-bottom:var(--ui-space-3,8px)}
.reputation-section-heading h3{margin:0}
.reputation-section-heading>small{font-size:var(--ui-font-small,12px);color:var(--ui-muted)}
.reputation-section-heading button{font-size:var(--ui-font-small,12px);min-height:var(--ui-control-height,36px)}
.reputation-history-row{border:1px solid var(--ui-line);border-radius:var(--ui-radius-control,6px);margin-top:var(--ui-space-3,8px);background:var(--ui-surface)}
.reputation-history-row summary{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-4,12px);padding:var(--ui-space-4,12px);cursor:pointer;color:var(--ui-text);font-size:var(--ui-font-body,13px)}
.reputation-history-row summary>span{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-space-3,8px)}
.reputation-history-row summary time{color:var(--ui-muted);font-size:var(--ui-font-small,12px)}
.reputation-history-row summary>b{font-variant-numeric:tabular-nums;white-space:nowrap}
.reputation-entry-body{padding:0 var(--ui-space-4,12px) var(--ui-space-4,12px)}
.reputation-breakdown{display:flex;flex-wrap:wrap;gap:var(--ui-space-3,8px);font-size:var(--ui-font-small,12px);margin-bottom:var(--ui-space-4,12px)}
.reputation-breakdown>span{padding:4px 7px;background:var(--ui-raised);border-radius:4px;color:var(--ui-muted)}
.reputation-breakdown b{color:var(--ui-text);padding-left:4px}
.reputation-reasons{list-style:none;padding:0;margin:0}
.reputation-reasons li{display:flex;justify-content:space-between;align-items:start;gap:var(--ui-space-4,12px);padding:var(--ui-space-3,8px) 0;border-top:1px solid var(--ui-line);font-size:var(--ui-font-small,12px)}
.reputation-reasons li>span{min-width:0;overflow-wrap:anywhere}
.reputation-reasons li>b{white-space:nowrap;font-variant-numeric:tabular-nums}
.reputation-source{display:inline-block;font-size:var(--ui-font-caption,11px);padding:1px 5px;margin-right:6px;border:1px solid var(--ui-line);border-radius:4px;color:var(--ui-muted)}
.reputation-source.source-user{color:var(--ui-accent-text);border-color:var(--ui-accent-text)}
.reputation-panel .reputation-empty{margin:0;padding:var(--ui-space-4,12px);background:var(--ui-raised);border-radius:var(--ui-radius-control,6px)}
.reputation-panel .reputation-footnote{font-size:var(--ui-font-caption,11px);margin:0}
.reputation-result{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-4,12px);width:100%;min-width:0;margin:var(--ui-space-4,12px) 0;padding:var(--ui-space-4,12px);font-size:var(--ui-font-body,13px);background:var(--ui-raised);border:1px solid var(--ui-line);border-radius:var(--ui-radius-card,8px);text-align:left;color:var(--ui-text)}
.reputation-result>span{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.reputation-result small{font-size:var(--ui-font-small,12px);color:var(--ui-muted);white-space:nowrap}
.reputation-result small>span{margin-left:8px}
.staff-appoint-actions{display:grid;gap:var(--ui-space-2,6px);min-width:0}
.staff-appoint-actions button{width:100%;font-size:var(--ui-font-small,12px);white-space:nowrap}
.staff-slot-unlocked{border-color:var(--ui-success)}
.staff-slot-unlocked h3 small{font-size:var(--ui-font-caption,11px);color:var(--ui-success);margin-left:4px;font-weight:400}
.staff-slot-locked>button{grid-column:1/-1;margin-top:var(--ui-space-3,8px);font-size:var(--ui-font-small,12px)}
@media(max-width:480px){.lobby-club-heading{grid-template-columns:minmax(0,1fr) minmax(122px,.95fr);gap:8px}.game-lobby .lobby-reputation{padding:8px}.reputation-overview{padding:12px;gap:10px}.reputation-slot-list article{padding:10px}.reputation-panel{gap:16px}}

/* Legend settings use the existing modal, theme and typography tokens. */
.match-sheet[data-panel="legends"],.match-sheet[data-panel="legend-confirm"]{align-self:flex-start;max-height:calc(100dvh - 2rem)}
.legend-settings{display:grid;gap:var(--space-3,12px);min-width:0;font-size:inherit}
.legend-toggles{display:flex;flex-wrap:wrap;gap:var(--space-2,8px)}
.legend-toggles button[aria-pressed="true"],.legend-choice-list button[aria-pressed="true"]{border-color:var(--ui-accent-text);box-shadow:inset 0 0 0 1px var(--ui-accent-text)}
.legend-choices{min-width:0;border:1px solid var(--ui-line);padding:12px;border-radius:var(--radius,8px)}
.legend-choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:36dvh;overflow-y:auto}
.legend-choice-list button{text-align:left;white-space:normal;min-width:0;padding:10px;font:inherit}
.legend-choice-list span,.legend-catalog small{display:block;font-size:var(--font-small,.85em)}
.legend-preview{overflow-x:auto;min-width:0}.legend-preview table{width:100%;font:inherit;border-collapse:collapse}
.legend-preview th,.legend-preview td{padding:8px;text-align:left;border-bottom:1px solid var(--ui-line);vertical-align:top}
.legend-settings footer{position:sticky;bottom:0;background:var(--ui-surface);padding:12px 0;display:flex;gap:8px;flex-wrap:wrap}
.legend-catalog article{padding:12px 0;border-bottom:1px solid var(--ui-line)}.legend-catalog p{line-height:1.6}
.legend-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;box-sizing:border-box;height:1.25em;min-width:1.25em;padding:0 .15em;font:600 var(--ui-font-xs,10px)/1 var(--ui-font-system,system-ui);color:var(--ui-accent-text);border:1px solid currentColor;border-radius:var(--ui-radius-small,4px);margin-inline-start:2px;white-space:nowrap;vertical-align:middle}
@media(max-width:480px){.legend-preview th,.legend-preview td{padding:6px;font-size:.85em}.legend-settings{gap:10px}.legend-choice-list button{padding:8px}}

.match-sheet[data-panel="legends"],.match-sheet[data-panel="legend-confirm"]{position:fixed;top:max(16px,env(safe-area-inset-top));bottom:auto;left:50%;right:auto;transform:translateX(-50%);width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:hidden;display:flex;flex-direction:column}
.match-sheet[data-panel^="legend"]>.sheet-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
@media(max-width:600px){.match-sheet[data-panel^="legend"]{top:max(8px,env(safe-area-inset-top));left:8px;right:8px;transform:none;width:auto;max-height:calc(100dvh - max(8px,env(safe-area-inset-top)) - max(8px,env(safe-area-inset-bottom)))}}

/* Compact legend marker must never become a block-level stat row. */
.detailed-lineup .order-identity>strong{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:2px;min-width:0;white-space:nowrap}
.detailed-lineup .order-info>.batting-metrics,.detailed-lineup .order-info>.ability-metrics{display:block;flex:0 0 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.detailed-lineup .order-identity .legend-badge,.detailed-lineup .staff-player-heading .legend-badge,.bench-mini .legend-badge{display:inline-flex;line-height:1;vertical-align:middle;flex:0 0 auto}

/* User-supplied L asset follows the condition icon at the same text height. */
.legend-badge,.manager-health-badges .legend-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;box-sizing:content-box;width:1em;height:1em;min-width:1em;padding:0;border:0;border-radius:0;background:none;margin-inline-start:2px;font-size:inherit;line-height:1;vertical-align:middle}
.legend-badge>.legend-icon{display:block;width:1em;height:1em;max-width:none;object-fit:contain;flex:0 0 auto}

/* source: implementation/playable-v0.1/menu-scenes.css */
.manager-content.manager-scene {
  --menu-scene-scrim: 55%;
  background-image:
    linear-gradient(180deg, transparent 34%, var(--ui-page) 100%),
    linear-gradient(90deg, color-mix(in srgb, var(--ui-page) 82%, transparent),
      color-mix(in srgb, var(--ui-page) var(--menu-scene-scrim), transparent)),
    var(--manager-scene-image);
  background-position: center, center, center;
  background-size: cover;
  background-repeat: no-repeat;
}

:root[data-studio-mode="light"] .manager-content.manager-scene { --menu-scene-scrim: 74%; }
.manager-content.manager-scene-home { background-position: center, center, center 57%; }
.manager-content.manager-scene-growth { background-position: center, center, center 64%; }
.manager-content.manager-scene-club { background-position: center, center, center 54%; }
.manager-content.manager-scene-box { background-position: center, center, center 58%; }
.manager-content.manager-scene-save {
  --menu-scene-scrim: 74%;
  background-position: center, center, center 48%;
}
:root[data-studio-mode="light"] .manager-content.manager-scene-save { --menu-scene-scrim: 84%; }

/* source: implementation/playable-v0.1/settings.css */
.manager-content:has(.settings-page) {
  overflow-y: auto;
  overscroll-behavior: contain;
}
.settings-page {
  width: min(100%, 980px);
  margin: 0 auto;
  padding: 8px 4px 32px;
  color: var(--ui-text);
}
.settings-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px 18px;
}
.settings-heading h2 {
  margin: 0;
  font-family: var(--ui-display);
  font-size: 22px;
}
.settings-heading > span, .settings-group-note {
  color: var(--ui-muted);
  font-size: var(--ui-font-caption);
}
.settings-group {
  margin: 0 0 22px;
  padding: 0;
  border: 0;
}
.settings-group h3 {
  margin: 0;
  padding: 8px 12px;
  font-family: var(--ui-display);
  font-size: var(--ui-font-label);
  color: var(--ui-accent-text);
  border-bottom: 2px solid var(--ui-line-strong);
}
.settings-list {
  display: grid;
  gap: 3px;
  padding-top: 5px;
}
.settings-page .setting-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(188px, 35%);
  align-items: center;
  column-gap: 20px;
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 8px 12px;
  box-sizing: border-box;
  border: 1px solid transparent;
  border-radius: 2px;
  background: var(--ui-surface);
  color: var(--ui-text);
  text-align: left;
}
.settings-page .setting-row:nth-child(even) {
  background: color-mix(in srgb, var(--ui-raised) 60%, var(--ui-surface));
}
.manager-scene-save .setting-row {
  background: color-mix(in srgb, var(--ui-surface) 90%, transparent);
}
.manager-scene-save .setting-row:nth-child(even) {
  background: color-mix(in srgb, color-mix(in srgb, var(--ui-raised) 60%, var(--ui-surface)) 90%, transparent);
}
.settings-page .setting-row:hover,
.settings-page .setting-row:focus-within {
  border-color: var(--ui-accent-text);
  background: var(--ui-accent-soft);
}
.setting-copy { min-width: 0; }
.setting-label {
  display: block;
  margin: 0;
  font-family: var(--ui-display);
  font-size: var(--ui-font-body);
  font-weight: 400;
  line-height: 1.4;
  color: inherit;
}
.setting-copy small {
  display: block;
  margin-top: 4px;
  font-family: var(--ui-font-system);
  font-size: var(--ui-font-caption);
  line-height: 1.5;
  color: var(--ui-muted);
}
.setting-control { min-width: 0; }
.setting-choice {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 30px;
  align-items: center;
}
.setting-choice-value { min-width: 0; }
.setting-choice-label { display: none; }
.settings-page .setting-choice select {
  width: 100%;
  min-width: 0;
  min-height: 32px;
  margin: 0;
  padding: 4px 0;
  border: 0;
  border-radius: 2px;
  background: transparent;
  color: var(--ui-text);
  font-family: var(--ui-font-system);
  font-size: var(--ui-font-body);
  text-align: center;
  text-align-last: center;
  appearance: none;
  cursor: pointer;
}
.settings-page .setting-step {
  display: grid;
  place-items: center;
  min-width: 0;
  min-height: 36px;
  padding: 8px;
  border: 0;
  background: transparent;
  color: var(--ui-text);
}
.setting-step svg, .setting-link-value svg { width: 12px; height: 12px; flex-shrink: 0; }
.setting-step[data-setting-step="-1"] svg { transform: rotate(180deg); }
.settings-page .setting-switch {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 36px;
  padding: 4px 12px;
  border: 0;
  border-radius: 2px;
  background: transparent;
  color: var(--ui-text);
  font-size: var(--ui-font-body);
}
.setting-switch-track {
  position: relative;
  width: 34px;
  height: 18px;
  border: 1px solid var(--ui-line-strong);
  border-radius: 12px;
  background: var(--ui-hover);
}
.setting-switch-track::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--ui-text);
  transition: transform 120ms ease;
}
.setting-switch[aria-checked="true"] .setting-switch-track {
  background: var(--ui-accent);
  border-color: var(--ui-accent);
}
.setting-switch[aria-checked="true"] .setting-switch-track::after {
  transform: translateX(16px);
  background: var(--ui-on-accent);
}
.setting-volume {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 4ch;
  gap: 10px;
  align-items: center;
}
.settings-page .setting-volume input {
  width: 100%;
  min-width: 0;
  height: 28px;
  margin: 0;
  padding: 0;
  accent-color: var(--ui-accent);
  cursor: pointer;
}
.setting-volume output {
  font-family: var(--ui-font-system);
  font-size: var(--ui-font-small);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.setting-control input[type="color"] {
  display: block;
  width: 70px;
  height: 32px;
  margin-left: auto;
  padding: 2px;
  border: 1px solid var(--ui-line-strong);
  border-radius: 3px;
  background: var(--ui-surface);
}
.setting-link-value {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  min-width: 0;
  font-family: var(--ui-font-system);
  font-size: var(--ui-font-small);
  color: var(--ui-muted);
}
.settings-page .setting-danger { color: var(--ui-danger); }
.settings-page .setting-danger .setting-link-value { color: inherit; }
.settings-page .setting-row[hidden] { display: none; }
.settings-group-note { margin: 4px 12px; line-height: 1.5; }
.settings-page :is(button, select, input):focus-visible {
  outline: 2px solid var(--ui-accent-text);
  outline-offset: 2px;
}
@media (max-width: 600px) {
  .settings-page { padding: 4px 0 24px; }
  .settings-heading { padding: 6px 8px 12px; }
  .settings-heading h2 { font-size: var(--ui-font-heading); }
  .settings-group { margin-bottom: 18px; }
  .settings-group h3 { padding: 8px; font-size: var(--ui-font-body); }
  .settings-page .setting-row {
    grid-template-columns: minmax(0, 1fr) minmax(130px, 46%);
    column-gap: 8px;
    min-height: 48px;
    padding: 6px 8px;
  }
  .setting-label { font-size: var(--ui-font-small); }
  .setting-copy small { font-size: var(--ui-font-xs); }
  .setting-choice { grid-template-columns: 24px minmax(0, 1fr) 24px; }
  .settings-page .setting-step { padding: 6px; min-height: 38px; }
  .setting-choice-value { display: grid; align-items: center; }
  .setting-choice-value > * { grid-area: 1 / 1; }
  .setting-choice-value:has(select:focus-visible) {
    outline: 2px solid var(--ui-accent-text);
    outline-offset: 2px;
  }
  /* Preserve the native picker and its 16px focus size on iOS. */
  .settings-page .setting-choice select { font-size: 16px; min-height: 38px; opacity: 0; z-index: 1; }
  .setting-choice-label {
    display: block;
    font-family: var(--ui-display);
    font-size: var(--ui-font-small);
    line-height: 1.4;
    text-align: center;
    pointer-events: none;
  }
  .settings-page .setting-switch { padding: 4px 6px; min-height: 38px; font-size: var(--ui-font-small); }
  .setting-link-value { gap: 8px; font-size: var(--ui-font-caption); }
  .setting-volume { gap: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .setting-switch-track::after { transition: none; }
}
.account-dialog{width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--ui-line-strong);border-radius:var(--ui-radius-modal);color:var(--ui-text);background:var(--ui-surface);overflow:hidden}
.account-dialog[open]{display:flex;flex-direction:column}
.account-friends-dialog{margin:12px auto auto}
.account-dialog.account-side-drawer{position:fixed;inset:auto;top:min(var(--account-side-top,clamp(56px,15%,120px)),calc(100dvh - 150px));right:var(--account-side-right,0px);z-index:12;margin:0;width:min(360px,86vw);max-height:min(610px,calc(100dvh - min(var(--account-side-top,clamp(56px,15dvh,120px)),calc(100dvh - 150px)) - 8px - env(safe-area-inset-bottom,0px)));box-sizing:border-box;border-radius:6px 0 0 6px;box-shadow:0 8px 24px #0005}
.account-side-drawer[open]{animation:side-drawer-enter .2s ease-out both}
.account-side-drawer>header{flex:none;padding:8px 12px}
.account-side-drawer>.account-dialog-body{min-height:0;padding:12px}
@media(prefers-reduced-motion:reduce){.account-side-drawer[open]{animation:none}}
.account-friends-list{display:grid;gap:6px;margin:12px 0}
.account-friend{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:8px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-modal)}
.account-friend small{display:block;color:var(--ui-muted)}
.account-friend .account-actions{margin:0}
.friend-roster-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.friend-roster-grid ol,.friend-roster-grid ul{padding-inline-start:20px}
.friend-roster-grid li{margin-block:4px;overflow-wrap:anywhere}
.friend-ratings{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:8px}
.friend-ratings div{padding:8px;border:1px solid var(--ui-line);border-radius:6px}
.friend-ratings dd{margin:2px 0 0;font-weight:700}
.mission-list{display:grid;gap:8px;padding:0;list-style:none}
.mission-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;padding:10px;border:1px solid var(--ui-line);border-radius:8px}
.mission-list li>div{display:grid;gap:4px}
.mission-list small{color:var(--ui-muted)}
.mission-progress{width:100%;max-width:220px;height:7px;box-sizing:border-box;border:1px solid var(--ui-line-strong);border-radius:999px;background:var(--ui-raised);overflow:hidden}
.mission-progress>span{display:block;height:100%;background:var(--ui-accent-text)}
.mission-list .mission-premium{border-color:var(--ui-line-strong)}
.account-dialog::backdrop{background:#0009}
.account-dialog>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--ui-line)}
.account-dialog h2{margin:0;font:var(--ui-font-subtitle)/1.4 var(--ui-display)}
.account-dialog-body{padding:16px;overflow:auto;overscroll-behavior:contain}
.account-dialog label{display:grid;gap:5px;margin-block:0 12px;font-size:var(--ui-font-body)}
.account-dialog input{width:100%;min-width:0;font-size:16px}
.account-dialog .account-recovery{font-family:monospace}
.account-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.account-identity{display:grid;gap:4px}
.account-identity p{margin:0;overflow-wrap:anywhere}
.account-identity span,.account-identity p+p{color:var(--ui-muted)}
.account-identity span,.account-login-id{margin-inline-start:4px}
.account-login-id{color:var(--ui-text);user-select:text}
.account-actions>button{min-height:42px}
.attendance-conflict-actions{display:grid;grid-template-columns:minmax(0,1fr) auto}
.attendance-conflict-actions>button:first-child{grid-column:1/-1;white-space:normal}
.account-save-compare{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.account-save-compare>div{padding:10px;border:1px solid var(--ui-line);border-radius:var(--ui-radius-card)}
.account-save-compare dt{color:var(--ui-muted)}
.account-save-compare dd{margin:4px 0 0;overflow-wrap:anywhere}
.account-username-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.account-dialog .account-username-row label{margin:0}
.account-username-row button{min-height:42px;white-space:nowrap}
.account-username-status{margin:6px 0 12px;color:var(--ui-muted);font-size:var(--ui-font-caption)}

.account-dialog.account-side-drawer {
  width:min(320px,75vw);
  font:12px/1.4 var(--ui-font-system);
}
.account-dialog.account-side-drawer>header {padding:8px;gap:5px}
.account-dialog.account-side-drawer h2 {font:inherit;font-weight:700}
.account-dialog.account-side-drawer .account-dialog-body {padding:8px}
.account-dialog.account-side-drawer button {min-height:33px;padding:4px 7px;font-size:11px;white-space:nowrap}
.account-dialog.account-side-drawer :is(.account-actions,.account-username-row) {gap:5px}
.account-dialog.account-side-drawer label {font-size:11px}
.account-dialog.account-side-drawer .account-friend small {font-size:11px}

.match-sheet[data-panel="friendly-reward"] {
  position:fixed; inset:50% auto auto 50%; transform:translate(-50%,-50%);
  width:min(440px,calc(100vw - 24px)); max-height:calc(100dvh - 24px);
}
.friendly-reward-items {padding-inline-start:1.3em;margin-block:12px 18px}
.account-feedback[role=alert]{color:var(--ui-danger)}
.lobby-inbox .inbox-gift-items{color:var(--ui-text);font-weight:600}
