/* Card presentation only. Rarity belongs to the portrait; status belongs to live data. */
:root {--card-edge:#49615f;--card-light:#ffffff10;--card-shadow:#071b2299;}
.quality-tier-0 {--card-x:0%;--card-y:0%;}
.quality-tier-1 {--card-x:33.333%;--card-y:0%;}
.quality-tier-2 {--card-x:66.667%;--card-y:0%;}
.quality-tier-3 {--card-x:100%;--card-y:0%;}
.quality-tier-4 {--card-x:0%;--card-y:100%;}
.quality-tier-5 {--card-x:33.333%;--card-y:100%;}
.quality-tier-6 {--card-x:66.667%;--card-y:100%;}
.quality-tier-7 {--card-x:100%;--card-y:100%;}
.pc-portrait {position:relative;display:grid;place-items:center;width:52px;height:78px;isolation:isolate;flex-shrink:0;}
.pc-portrait::before {content:"";position:absolute;z-index:-1;inset:8px 6px;background:linear-gradient(#1c3c37,#12272e);}
.pc-portrait::after {content:"";position:absolute;inset:0;z-index:2;background-image:url('../assets/cards/player-card-atlas.png');background-size:400% 200%;background-position:var(--card-x) var(--card-y);background-repeat:no-repeat;image-rendering:pixelated;pointer-events:none;}
#squad-grid .player-card {grid-template-columns:52px minmax(0,1fr) 46px;grid-template-rows:auto auto auto;gap:2px 10px;min-height:98px;padding:9px 10px;border:1px solid var(--card-edge);border-left-width:1px;border-radius:8px;background:linear-gradient(135deg,#25424a,#1a303b);box-shadow:inset 0 1px var(--card-light),0 2px 0 var(--card-shadow);text-align:left;}
#squad-grid .pc-portrait {grid-column:1;grid-row:1/4;}
#squad-grid .pc-portrait img {position:relative;z-index:1;display:block;width:40px;height:40px;grid-area:auto;margin:0;border-radius:0;image-rendering:pixelated;}
#squad-grid .pc-top {grid-column:3;grid-row:1/3;gap:2px;align-self:center;}
#squad-grid .pc-rate {order:0;font-size:24px;line-height:1.05;font-variant-numeric:tabular-nums;text-shadow:0 2px #071e25;}
.pc-rating-label {display:block;font-size:9px;line-height:1.3;font-weight:600;letter-spacing:.4px;color:#b9ccce;}
#squad-grid .pc-rating-label {order:1;}
#squad-grid .pc-pos {order:2;color:#e1eadf;border:1px solid #9fbeb638;border-radius:4px;padding:2px 5px;margin-top:3px;font-size:11px;}
#squad-grid .roster-name {font-size:15px;line-height:1.35;align-self:end;}
#squad-grid .roster-fit {align-self:start;line-height:1.45;gap:2px;}
#squad-grid .roster-trait {color:#c0d0d1;}
#squad-grid .roster-condition {color:#acd6b8;}
#squad-grid .is-unavailable,.is-unavailable {color:#ffb9ac;}
#squad-grid .pc-portrait .pc-badge {left:4px;right:auto;bottom:9px;top:auto;z-index:3;padding:2px 3px;border-radius:3px;background:#142730;font-size:11px;}
.roster-energy {grid-column:2/4;grid-row:3;display:flex;gap:7px;align-items:center;min-height:16px;--energy-color:#a6d5b1;}
.roster-energy[hidden] {display:none!important;}
.roster-energy-track {flex:1;height:5px;background:#0e232d;border-radius:3px;overflow:hidden;}
.roster-energy-track i {display:block;height:100%;background:var(--energy-color);border-radius:3px;}
.roster-energy small {min-width:32px;font-size:11px;color:var(--energy-color);font-variant-numeric:tabular-nums;text-align:right;}
.roster-energy.is-tired {--energy-color:#efba72;}
#squad-grid .player-card.swap-selected {outline:2px solid #dccc91;outline-offset:1px;filter:none;transform:none;background:linear-gradient(135deg,#345345,#203a38);}
#squad-grid .player-card.swap-selected::after {content:"✓";position:absolute;right:4px;top:4px;padding:1px 3px;color:#f4df98;font-size:11px;font-weight:800;}
#squad-grid .player-card:focus-visible,#bench-row .bench-card:focus-visible {outline:2px solid #f0d68d;outline-offset:2px;}
#squad-grid .player-card:active {transform:translateY(1px);}

/* The map retains its formation coordinates and expanded touch areas. */
#stage.roster-map #squad-grid .player-card {display:block;width:64px;height:72px;min-height:72px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;image-rendering:pixelated;transform:translate(-50%,-50%);}
#stage.roster-map #squad-grid .player-card::before {display:block;inset:9px 7px;background:#15342d;border-radius:0;}
#stage.roster-map #squad-grid .pc-portrait {position:absolute;inset:0;width:64px;height:72px;}
#stage.roster-map #squad-grid .pc-portrait::before {display:none;}
#stage.roster-map #squad-grid .pc-portrait::after {display:block;}
#stage.roster-map #squad-grid .pc-portrait img {width:36px;height:36px;margin:6px 0 0;}
#stage.roster-map #squad-grid .pc-top {position:absolute;inset:7px 6px auto;z-index:3;display:flex;flex-direction:row;justify-content:space-between;padding:0;}
#stage.roster-map #squad-grid .pc-pos {order:0;border:0;margin:0;padding:1px 2px;font-size:10px;background:#10291ee6;line-height:1.2;}
#stage.roster-map #squad-grid .pc-rate {font-size:14px;line-height:1;}
#stage.roster-map .pc-rating-label {display:none;}
#stage.roster-map #squad-grid .pc-portrait .pc-badge {left:6px;bottom:9px;font-size:10px;padding:1px 2px;}
#stage.roster-map .roster-energy {position:absolute;inset:auto 9px 8px;z-index:3;min-height:0;}
#stage.roster-map .roster-energy-track {height:4px;}
#stage.roster-map .roster-energy small {display:none;}
#stage.roster-map #squad-grid .player-card.swap-selected {outline:2px solid #f0d68d;transform:translate(-50%,-50%) scale(1.04);}
#stage.roster-map #squad-grid .player-card.swap-selected::after {content:"";inset:-10px;padding:0;}
#stage.roster-map #squad-grid .player-card:active {transform:translate(-50%,-50%) scale(.97);}

#bench-row {gap:10px;margin-top:20px;}
#bench-row .bench-card {display:grid;grid-template-columns:46px minmax(0,1fr);grid-template-rows:auto auto auto;align-content:center;gap:3px 8px;min-height:106px;padding:10px 8px;border-radius:8px;border-color:var(--card-edge);background:linear-gradient(135deg,#243e46,#192f38);box-shadow:inset 0 1px var(--card-light),0 2px 0 var(--card-shadow);text-align:left;}
#bench-row .pc-portrait {width:46px;height:69px;grid-column:1;grid-row:1/4;}
#bench-row .pc-portrait img {display:block;width:34px;height:34px;margin:0;position:relative;z-index:1;border-radius:0;}
#bench-row .bench-name {grid-column:2;grid-row:1;font-size:13px;line-height:1.35;overflow-wrap:anywhere;align-self:end;}
#bench-row .bc-rate {grid-column:2;grid-row:2;display:flex;align-items:baseline;gap:5px;font-size:19px;line-height:1.2;}
#bench-row .bc-foot {grid-column:2;grid-row:3;justify-content:flex-start;gap:6px;align-self:start;}
#bench-row .pc-portrait .pc-badge {top:auto;bottom:8px;right:auto;left:4px;z-index:3;font-size:10px;border-radius:3px;}
#bench-row .bench-condition {grid-column:1/3;font-size:11px;line-height:1.4;}
#bench-row .swap-eligible {border-color:#9dcead;background:linear-gradient(135deg,#2e4c43,#1b333a);}
#bench-row .swap-ineligible {opacity:.6;}

/* The detail sheet shows the full identity, with the same portrait frame as the roster. */
#modal-box .pd-head {gap:10px;margin-bottom:12px;align-items:center;}
#modal-box .pd-name {white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3;overflow-wrap:anywhere;}
#modal-box .pd-avatar-frame {width:62px;height:93px;background:none;isolation:isolate;}
#modal-box .pd-avatar-frame::before {inset:10px 8px;background:#173731;border-radius:0;}
#modal-box .pd-avatar-frame::after {content:"";position:absolute;inset:0;z-index:2;background-image:url('../assets/cards/player-card-atlas.png');background-position:var(--card-x) var(--card-y);background-size:400% 200%;background-repeat:no-repeat;image-rendering:pixelated;pointer-events:none;}
#modal-box .pd-avatar-frame img {width:46px;height:46px;margin:24px auto 0;border-radius:0;}
#modal-box .pd-avatar-pos {z-index:3;top:9px;left:9px;font-size:10px;}
#modal-box .pd-avatar-flag {z-index:3;bottom:9px;left:9px;}
#modal-box .pd-ovr {background:#132831;border:1px solid #647b632e;}
#modal-box .pd-ovr .n {color:#ecdc9b;font-size:24px;}
#modal-box .pd-stat-row .lb {white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3;flex-shrink:0;}

/* Quiet material, two edges and deliberate action hierarchy across management cards. */
.release-card,.coach-plan,.journey-panel,.team-plan,.team-result,.team-ground,.competition-hero,.competition-pro,.competition-offline,.wide-card,.scout-profile-card,.scout-search-card {border:1px solid var(--card-edge);border-radius:12px;background-color:#203842;box-shadow:inset 0 1px var(--card-light),0 3px 0 var(--card-shadow)!important;}
.release-card {padding:16px;}
.release-card h3 {font-size:18px;line-height:1.35;}
.release-eyebrow,.team-section-label {color:#cabb88;letter-spacing:.7px;font-size:10px;}
.wide-card .wc-title {font-size:16px;line-height:1.4;color:#edf3ed;}
.wide-card .wc-ic {width:36px;height:40px;display:grid;place-items:center;color:#b7d1c3;}
.wide-card .wc-ic .game-icon {width:27px;height:27px;}
.card-level {display:block;margin-top:3px;font-size:12px;color:#b7c9ce;font-weight:500;}
.club-upgrade-progress,.facility-progress,.club-journey-goal>progress,.season-youth progress {display:block;appearance:none;width:100%;height:6px;max-width:none;border:0;border-radius:4px;overflow:hidden;margin:10px 0;background:#102630;accent-color:#9bc9ab;}
progress::-webkit-progress-bar {background:#102630;border-radius:4px;}
progress::-webkit-progress-value {background:#9bc9ab;border-radius:4px;}
progress::-moz-progress-bar {background:#9bc9ab;border-radius:4px;}
#tactics-cards .club-upgrade-effect {font-size:14px;line-height:1.5;color:#d2e2c8;}
#tactics-cards .club-upgrade-card.feature-surface-club {background:#203842;background-image:none;}
.card-purchase {grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;padding-top:12px;border-top:1px solid #b9d7d51a;}
.card-price {display:flex;flex-direction:column;gap:3px;}
.card-price small {font-size:11px;color:#aec5c8;}
.card-price b {font-size:18px;line-height:1.2;color:#f0e1ba;font-variant-numeric:tabular-nums;}
.card-purchase .action-btn {min-height:44px;min-width:108px;width:auto;margin:0;padding:8px 14px;font-size:14px;}
.card-blocked {grid-column:1/-1;color:#e1bb9f;font-size:12px;line-height:1.4;}
.card-complete {display:flex;align-items:center;gap:6px;color:#b9dcb9;font-size:12px;}
.card-complete .game-icon {width:16px;height:16px;}
.is-maxed {border-color:#587760;}
.club-facility-card>.facility-progress {width:100%;margin:8px 0;}
.club-facility-card .facility-benefit {color:#d2e2c8;}
.team-drill {border-radius:9px;background:#233d47;border:1px solid var(--card-edge);box-shadow:inset 0 1px var(--card-light)!important;}
.team-drill.selected {background:#304c42;border-color:#b9c992;box-shadow:inset 3px 0 #d6cd94,inset 0 1px #ffffff14!important;}
.team-drill.is-locked {background:#1c3039;border-color:#415357;}
.team-drill.is-locked small {color:#cfb8a0;}
.team-drill i .game-icon {width:17px;height:17px;}
.team-gain {display:block;padding:9px 11px;background:#142e2c;border-radius:6px;color:#c4e5be;font-size:16px;line-height:1.5;}
.team-plan-total {border-top:1px solid #b9d7d51a;padding-top:12px;}
.team-plan-total small {font-size:12px;color:#b6cbcf;}
.team-plan-total b {font-size:15px;color:#f0e1ba;}
.team-block-reason,.team-ground-requirement {color:#ebc29c;line-height:1.4;}
.team-ground-unlock {color:#d2e2c8;font-size:13px;}

.club-overview-stats {gap:0;border:1px solid var(--card-edge);border-radius:10px;background:linear-gradient(135deg,#29423e,#1f363e);padding:12px 0;margin-bottom:16px;box-shadow:inset 0 1px var(--card-light);}
.club-overview-stats>span {padding:0 8px;border:0;border-right:1px solid #b4cebf24;border-radius:0;background:transparent;gap:5px;}
.club-overview-stats>span:last-child {border:0;}
.club-overview-stats b {font-variant-numeric:tabular-nums;}
.season-focus,.club-journey-goal {border-top-color:#a39767;background:linear-gradient(135deg,#29453c,#203842);}
.next-fixtures {gap:0;margin-top:14px;padding-top:5px;}
.fixture-row {display:grid;grid-template-columns:64px minmax(0,1fr) 10px;align-items:center;gap:8px;min-height:40px;border-bottom:1px solid #b9d7d514;}
.fixture-row:last-child {border:0;}
.fixture-row small {font-size:11px;color:#b6c9cb;}
.fixture-row b {font-size:13px;font-weight:500;overflow-wrap:anywhere;}
.fixture-row i {color:#dbc789;font-style:normal;}
.season-youth {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;margin-top:14px;}
.season-youth>small {grid-column:1/-1;font-size:11px;color:#bdcfca;}
.season-youth>b {font-size:13px;overflow-wrap:anywhere;}
.season-youth>span {font-size:12px;color:#cddab2;font-variant-numeric:tabular-nums;}
.season-youth progress {grid-column:1/-1;margin:2px 0 0;}
.competition-hero {border-top-color:#a99e6f;}
#competition-hub .competition-stage.selected.feature-surface-tournament {border:1px solid #8e986b;background:#2b443c;box-shadow:inset 3px 0 #d7c98e;}
.competition-stage .stage-state.current {color:#ead897;}
.competition-stage.locked {opacity:1;}
.competition-stage.locked .stage-copy {color:#9eb5bb;}
.competition-stage.locked .stage-state {color:#c6b599;}
.competition-stage.selected .stage-node {border-color:#cabb84;background:#445340;color:#f5e5b8;}
.competition-brief-result,.store-reward-card.is-ready,.store-gift-card.has-gifts,.competition-offline.ready {border-color:#9f9261;background-color:#2b403a;}
.store-reward-card .wc-ic,.store-gift-card .wc-ic,.competition-offline.ready .pro-marker {color:#e2c77e;}
.store-reward-card.is-ready #store-bonus-state,.store-gift-card.has-gifts #store-gift-count {display:inline-block;margin-top:6px;color:#f0d98c;font-size:12px;font-weight:600;}
.store-reward-card:not(.is-ready) #store-bonus-state,.store-gift-card:not(.has-gifts) #store-gift-count {color:#afc5c9;}
.store-give-chip {border:0;background:#132b3380;border-radius:5px;padding:4px 7px;color:#d3e0da;}
.store-deal-card {background-color:#1e343e;}
#store-cards .store-reward-card.feature-surface-reward,#store-cards .store-gift-card.feature-surface-reward {background:linear-gradient(135deg,#2b3e3b,#20343c);border-color:#536760;}
#store-cards .store-reward-card.is-ready,#store-cards .store-gift-card.has-gifts {background:linear-gradient(135deg,#3b4436,#283d3c);border-color:#a49662;box-shadow:inset 0 2px #d1bc7e55,0 3px 0 var(--card-shadow)!important;}
#store-cards .store-supply-card.feature-surface-reward {background:#203842;border-color:var(--card-edge);}
#store-cards .store-supply-card .wc-sub {color:#b5cbce;font-weight:500;}
.action-btn:disabled {opacity:.55;box-shadow:none;}
@media (hover:hover) {
  #squad-grid .player-card:hover,#bench-row .bench-card:hover,.team-drill:hover:not(:disabled) {border-color:#93b7a6;}
}
@media (min-width:700px) {
  #bench-row {grid-template-columns:repeat(4,minmax(0,1fr));}
  #bench-row .bench-card {grid-template-columns:52px minmax(0,1fr);}
  #bench-row .pc-portrait {width:52px;height:78px;}
}
@media (prefers-reduced-motion:reduce) {
  .player-card,.bench-card,.team-drill {transition:none;}
}

/* Match console: quiet context, readable coaching and factual evidence. */
#competition-current.feature-surface-matchday{position:relative;display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:56px;padding:10px 34px 10px 12px;background:#172d37;background-image:none;border:1px solid #354d57;border-radius:10px;box-shadow:none;text-shadow:none;}
.match-context-title{font-size:13px;font-weight:700;line-height:1.35;}
.match-context-time{font-size:11px;color:#9fb5bf;line-height:1.4;}
.match-context-arrow{position:absolute;right:13px;top:50%;transform:translateY(-50%);font-size:22px;color:#9fb5bf;}
#stage[data-phase=live] .mobile-guide:not([data-entry-cue=true]){padding:12px 14px;margin:0;background:#1b323e;border:1px solid #344d58;border-radius:10px 10px 0 0;border-bottom:0;}
#stage[data-phase=live] .mobile-guide:not([data-entry-cue=true]) h2{font-size:11px;font-weight:600;line-height:1.4;letter-spacing:.04em;color:#9fb5bf;margin:0 0 7px;}
#stage[data-phase=live] .mobile-guide:not([data-entry-cue=true]) p{font-size:15px;font-weight:600;line-height:1.5;color:#edf3ed;margin:0;}
#stage[data-match-view=live] #screen-squad>#release-match-panel{display:block;}
#release-match-panel .live-evidence{padding:12px 14px;margin:0;background:#1b323e;border:1px solid #344d58;border-top:1px solid #ffffff0c;border-radius:0 0 10px 10px;box-shadow:none;}
.live-evidence>b{display:block;font-size:11px;font-weight:500;color:#9fb5bf;line-height:1.5;}
.evidence-scope{display:block;color:#9fb5bf;font-size:11px;margin-top:4px;}
.evidence-stats{display:grid;grid-template-columns:1.5fr 1fr;margin-top:9px;gap:12px;}
.evidence-stats>div+div{border-left:1px solid #ffffff10;padding-left:14px;}
.evidence-stats strong{display:block;font-size:20px;font-weight:600;line-height:1.2;color:#edf3ed;}
.evidence-stats strong span{font-size:13px;color:#9fb5bf;font-weight:400;}
.evidence-stats small{display:block;font-size:11px;line-height:1.5;color:#aebfc5;margin-top:3px;}
#manager-bar{padding:7px 12px 10px;gap:6px 8px;background:#152b35;border-top:1px solid #37505b;}
#manager-bar>div{min-height:16px;align-items:center;}
#manager-bar #coach-status{font-size:11px;font-weight:600;line-height:1.4;color:#c6d5da;}
#manager-bar #save-status{font-size:10px;font-weight:400;line-height:1.4;color:#8da6ad;min-width:0;}
#manager-bar #save-status.warning{color:#ffc66e;}
#manager-bar #save-status.saving{color:#d8bc79;}
#manager-bar button,#manager-bar #btn-speed,#manager-bar #coach-primary{min-height:44px;font-size:13px;border-radius:9px;}
#manager-bar #coach-primary{font-weight:600;}
#manager-bar #coach-open,#manager-bar #btn-speed{background:#1b333e;border-color:#38515c;color:#bdcfd6;}

#stage[data-match-view=live] #match-guide[data-entry-cue=true]+#release-match-panel{display:none;}

.entry-skip{min-height:44px;margin-top:10px;padding:8px 14px;border:1px solid #46616b;border-radius:9px;background:#203943;color:#dfebe9;font:inherit;font-size:12px;cursor:pointer;}
.stage-half-card{max-width:430px;padding:16px;background:#172e39;border:1px solid #4a6470;border-radius:14px;text-align:left;}
.stage-half-card .stage-cinema{height:auto;aspect-ratio:450/252;margin:-16px -16px 14px;}
.stage-half-card .stage-close{width:44px;height:44px;}
.interval-teams{display:grid;grid-template-columns:1fr 1fr;gap:16px;font-size:12px;line-height:1.4;color:#c2d2d7;margin-top:8px;text-align:center;}
.stage-half-card .stage-score{margin:8px 0;}
.stage-half-card .stage-score b{font-size:30px;}
.interval-stats{margin-top:12px;border-top:1px solid #ffffff12;}
.interval-stat{display:grid;grid-template-columns:60px 1fr 60px;align-items:center;text-align:center;gap:8px;padding:8px 0;border-bottom:1px solid #ffffff0c;font-size:12px;}
.interval-stat span{font-size:11px;color:#a9bfc7;}
.interval-stat b{font-size:13px;}
.interval-events{margin-top:12px;}
.interval-events h3{font-size:11px;color:#a9bfc7;margin:0 0 6px;font-weight:600;}
.interval-events p{font-size:12px;margin:5px 0;line-height:1.5;}
.interval-events p span,.interval-events small{color:#a9bfc7;font-size:10px;}
.interval-empty{color:#839ca7;}
.interval-insight{padding:10px;background:#203c46;border-radius:8px;font-size:12px;line-height:1.5;margin-top:12px;}
.stage-half-card .stage-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.stage-half-card .stage-actions button{min-height:44px;font-size:12px;}
.stage-half-card .stage-actions .stage-primary{grid-column:1/-1;}

#stage[data-match-view=live] #screen-squad #match-guide[data-entry-cue=true]+#release-match-panel{display:none;}
#stage:has(#match-guide[data-entry-cue=true]) #ticker{visibility:hidden;}
