.franchise-shell{max-width:1120px;margin:22px auto 60px;padding:0 24px}.franchise-shell [hidden]{display:none!important}.franchise-breadcrumb{display:flex;gap:10px;font:12px Arial;color:var(--club-soft);margin-bottom:22px}.franchise-breadcrumb a{color:inherit;text-decoration:none}.franchise-breadcrumb a:last-child{color:var(--club-lime)}
.franchise-hero{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:24px;margin:16px 0 28px;padding:28px;border:1px solid var(--club-stroke);border-radius:12px;background:linear-gradient(125deg,#284a43,#122833);position:relative;overflow:hidden}.franchise-hero:after{content:'';position:absolute;inset:auto -40px -90px auto;width:250px;height:250px;transform:rotate(45deg);border:24px solid #aac79d0a;pointer-events:none}.franchise-hero h1{font-size:clamp(30px,4vw,48px);max-width:700px}.franchise-hero p{margin:8px 0;color:var(--club-soft)}.franchise-hero .pixel-mark{width:130px;height:150px;filter:drop-shadow(7px 7px 0 #071b27)}.franchise-seal{width:120px;aspect-ratio:1;display:grid;place-content:center;transform:rotate(-8deg);border:5px double var(--club-gold);color:var(--club-gold);font:700 52px 'Courier New';box-shadow:10px 10px 0 #081e2a}.franchise-seal small{font-size:10px;text-align:center;letter-spacing:2px}.franchise-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0 14px}.franchise-heading h2{margin:0}.franchise-heading span,.franchise-note{font:12px/1.6 Arial;color:var(--club-soft)}
.franchise-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.club-ui .primary-action{background:var(--club-lime)!important;color:#132e2c!important;border-color:var(--club-lime)!important;box-shadow:0 3px 0 #061c24}.franchise-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.franchise-slot{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:22px;border:1px solid var(--club-stroke);border-radius:10px;background:#1a333b;min-width:0}.franchise-slot .slot-top{display:flex;justify-content:space-between;align-items:center;width:100%}.franchise-slot .pixel-mark{width:48px;height:48px}.franchise-slot h3{margin:0;font-size:20px}.franchise-slot p{margin:0;color:var(--club-soft);font-size:13px}.franchise-slot button{width:100%;margin-top:auto}.slot-tag{font:10px 'Courier New';color:var(--club-gold);letter-spacing:1px}.franchise-slot small{color:var(--club-soft);font:11px Arial}.franchise-empty{border-style:dashed;background:#142b33}.franchise-empty .slot-plus{font:32px 'Courier New';color:var(--club-lime);height:48px}
.franchise-toolbar{display:flex;gap:12px;margin:18px 0;align-items:end}.franchise-toolbar label{display:grid;gap:7px;color:var(--club-soft);font-size:12px;flex:1}.franchise-toolbar label:last-child{max-width:200px}.franchise-toolbar input,.franchise-toolbar select{width:100%;min-width:0;background:#122833;color:var(--club-ink);border:1px solid var(--club-stroke);border-radius:7px;padding:12px;font:16px Arial;min-height:46px}.franchise-team-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.club-ui .franchise-team{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;text-align:left;align-items:center;padding:12px;min-height:106px;border-top:3px solid var(--team-accent);position:relative;background:linear-gradient(145deg,#23433f,#172d37)}.franchise-team[aria-pressed=true]{outline:2px solid var(--club-lime);outline-offset:2px}.franchise-team .pixel-mark{width:52px;height:72px}.franchise-team strong{display:block;font:700 13px/1.3 Arial;overflow-wrap:anywhere}.franchise-team small{display:block;font:10px/1.5 Arial;color:var(--club-soft);margin-top:5px}.franchise-team b{display:block;color:var(--club-gold);font:700 15px 'Courier New';margin-top:5px}.franchise-selection{margin-top:24px;border:1px solid var(--club-stroke);border-radius:12px;background:linear-gradient(115deg,#29483f,#182f3b);padding:24px;scroll-margin-top:16px}.franchise-selection .selection-top{display:flex;align-items:center;gap:18px}.selection-top .pixel-mark{width:72px;height:98px;flex:none}.selection-top h2{margin:6px 0}.franchise-strength{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.franchise-strength div{border-left:2px solid var(--club-gold);padding-left:12px}.franchise-strength strong{display:block;font:700 28px 'Courier New';color:var(--club-ink)}.franchise-strength span{font:11px Arial;color:var(--club-soft)}
.franchise-dashboard{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}.franchise-panel{border:1px solid var(--club-stroke);border-radius:10px;background:#19323b;padding:22px;min-width:0}.franchise-panel h2{font-size:20px;margin:0 0 18px}.franchise-matchup{display:flex;align-items:center;justify-content:center;gap:18px;padding:20px 0}.franchise-matchup>div{display:grid;justify-items:center;gap:10px;font:700 18px 'Courier New'}.franchise-matchup .pixel-mark{width:76px;height:76px}.franchise-matchup>span{color:var(--club-soft);font-size:12px}.franchise-game-date{font:12px Arial;color:var(--club-soft)}.franchise-panel .franchise-note{margin-bottom:0}.franchise-standings{width:100%;border-collapse:collapse;font:12px Arial}.franchise-standings th{text-align:right;font-size:10px;color:var(--club-soft);padding:0 0 10px}.franchise-standings th:nth-child(2){text-align:left}.franchise-standings td{padding:10px 0;border-top:1px solid #45605966;text-align:right}.franchise-standings td:nth-child(2){text-align:left}.franchise-standings .standing-club{display:flex;align-items:center;gap:8px}.standing-club .pixel-mark{width:25px;height:25px}.franchise-standings .your-team{color:var(--club-lime);font-weight:700}.franchise-upcoming{list-style:none;padding:0;margin:0}.franchise-upcoming li{display:grid;grid-template-columns:48px 30px minmax(0,1fr) 36px;gap:10px;align-items:center;padding:12px 0;border-top:1px solid #45605966;font-size:12px}.franchise-upcoming li:first-child{border:0}.franchise-upcoming .pixel-mark{width:30px;height:30px}.franchise-upcoming time,.franchise-upcoming small{color:var(--club-soft)}.franchise-alert{padding:14px 0;border-top:1px solid #45605966}.franchise-alert:first-of-type{border:0;padding-top:0}.franchise-alert strong{font-size:13px}.franchise-alert p{font-size:12px;color:var(--club-soft);margin:5px 0}.franchise-roster{margin-top:18px}.franchise-roster summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:14px}.franchise-roster summary:before{content:'+';margin-right:12px;color:var(--club-gold)}.franchise-roster[open] summary:before{content:'−'}.franchise-roster ol{list-style:none;padding:0;margin:10px 0}.franchise-roster li{display:grid;grid-template-columns:32px minmax(0,1fr) 34px;gap:10px;padding:9px 0;border-top:1px solid #45605966;font-size:12px}.franchise-roster li small{color:var(--club-soft)}.franchise-roster li b{color:var(--club-gold);text-align:right}.franchise-save-chip{display:inline-block;border:1px solid #6c8c7388;border-radius:20px;padding:5px 10px;font:11px Arial;color:var(--club-lime)}
#franchise-confirm{max-width:430px;width:calc(100% - 32px);background:#19323b;color:var(--club-ink);border:1px solid var(--club-stroke);border-radius:12px;padding:24px}#franchise-confirm::backdrop{background:#06141ed9;backdrop-filter:blur(6px)}#franchise-confirm p{color:var(--club-soft);font-size:14px}.franchise-error{color:#ffd3aa!important}.franchise-shell :focus-visible{outline:2px solid var(--club-gold);outline-offset:4px}
@media(max-width:1000px){.franchise-team-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.franchise-slots{grid-template-columns:1fr}.franchise-slot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px}.franchise-slot .slot-top{grid-column:1/-1}.franchise-slot button{grid-column:1/-1}.franchise-slot small{grid-column:1/-1}.franchise-dashboard{grid-template-columns:1fr}.franchise-team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.franchise-hero{padding:22px;grid-template-columns:minmax(0,1fr) 90px;gap:12px}.franchise-hero .pixel-mark{width:85px;height:115px}.franchise-seal{width:80px;font-size:38px}.franchise-seal small{font-size:8px}.franchise-hero .franchise-strength{grid-column:1/-1}.franchise-hero h1{font-size:32px}}
@media(max-width:520px){.franchise-shell{padding:0 16px;margin-top:18px}.franchise-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.franchise-toolbar{gap:8px}.franchise-toolbar label:last-child{max-width:108px}.franchise-panel{padding:18px}.franchise-hero{padding:18px}.franchise-hero h1{font-size:28px}.franchise-hero p{font-size:13px}.franchise-heading h2{font-size:21px}.franchise-heading{align-items:start}.franchise-slot{padding:18px}.franchise-strength strong{font-size:25px}.franchise-selection{padding:18px}.franchise-team-grid .franchise-team{padding:10px;grid-template-columns:42px minmax(0,1fr);gap:7px}.franchise-team .pixel-mark{width:42px;height:64px}.franchise-team strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){.franchise-ui *{scroll-behavior:auto!important;transition:none!important}}
.franchise-shell h1[tabindex="-1"]:focus{outline:none}
@media(max-width:760px){.franchise-empty h3,.franchise-empty p{grid-column:1/-1}}
/* Season controls use the same scoreboard palette and framed game surfaces. */
.season-center{margin:0 0 20px}.season-center .franchise-heading{margin-top:0}.season-ticket{border:1px solid var(--club-gold);color:var(--club-gold);padding:8px;font:700 13px monospace}.match-uniforms{display:flex;align-items:center;justify-content:center;gap:35px;padding:12px}.match-uniforms>div{display:grid;justify-items:center;gap:5px}.match-uniforms small{font:10px monospace;color:var(--club-soft)}.match-uniforms>span{font:12px monospace;color:var(--club-gold)}.uniform-preview{width:86px;height:100px}.season-center>.franchise-actions{justify-content:center}.season-center>.franchise-actions button{flex:1;max-width:280px}.calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid var(--club-stroke);padding-top:22px;margin-top:22px}.calendar-heading h2{margin:0}.season-center select,.season-center input,.franchise-admin input,.franchise-admin select{background:#102832;border:1px solid var(--club-stroke);border-radius:6px;color:var(--club-ink);min-height:44px;padding:8px;font:14px Arial;max-width:100%;min-width:0}.calendar-legend{display:flex;gap:15px;margin:15px 0;font:10px monospace;color:var(--club-soft)}.calendar-final{color:var(--club-lime)}.season-calendar{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.season-calendar li{display:flex;align-items:center;gap:10px;border:1px solid #496a6077;border-radius:6px;padding:10px;background:#112b34;min-width:0}.season-calendar time{font:11px monospace;width:43px;flex:none;color:var(--club-soft)}.season-calendar .pixel-mark{width:28px;height:28px;flex:none}.season-calendar li>span{display:grid;gap:5px;font-size:12px}.season-calendar small{font:9px monospace;color:var(--club-soft)}.season-calendar .calendar-later{margin-left:auto;font-size:10px;color:var(--club-soft)}.season-calendar .calendar-result{margin-left:auto;font-family:monospace!important;white-space:nowrap}.season-calendar .result-win{color:var(--club-lime)!important}.season-calendar .result-loss{color:#ffc3a0!important}.season-calendar .calendar-play{margin-left:auto}.season-calendar button{padding:8px!important}.season-calendar .calendar-complete{border-left:2px solid #8aa36d}.sim-date{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0 10px}.sim-date label{font-size:13px}.sim-date input{flex:1}.league-results{margin-top:24px;border-top:1px solid var(--club-stroke);padding-top:12px}.league-results summary,.franchise-admin summary{cursor:pointer;min-height:44px;font-weight:700;font-size:14px;display:list-item;padding:10px 0}.league-results>label{display:flex;gap:12px;align-items:center;margin:10px 0;font-size:12px}#league-scoreboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}#league-scoreboard>div{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;border:1px solid #496a6077;padding:12px;font:12px monospace}#league-scoreboard small{flex-basis:100%;color:var(--club-soft);font-size:9px}#league-leaders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}#league-leaders h3{font:12px monospace;color:var(--club-gold)}#league-leaders p{display:flex;justify-content:space-between;gap:12px;font-size:12px}#league-leaders small{color:var(--club-soft)}.franchise-action-dialog{max-width:480px;width:calc(100% - 32px);border:1px solid var(--club-stroke);border-radius:12px;background:#19323b;color:var(--club-ink);padding:24px;max-height:90dvh;overflow:auto}.franchise-action-dialog::backdrop{background:#06141ed9;backdrop-filter:blur(6px)}.franchise-action-dialog p{font:14px/1.6 Arial;color:var(--club-soft)}.club-ui .danger-action{color:#ffd0b6!important;border-color:#b37567!important;background:#4b302e!important}.franchise-slot .danger-action{margin-top:0;font-size:11px!important}.franchise-admin{margin:0 0 20px;border-color:#a99a64}.franchise-admin>label{display:grid;gap:8px;margin-top:12px;font-size:12px}.franchise-admin .franchise-toolbar{align-items:end}.franchise-box{max-width:650px}.franchise-box .box-rows>div{display:flex;justify-content:space-between;gap:12px;font:12px Arial;border-top:1px solid #496a6077;padding:10px 0}.franchise-box .box-rows span{color:var(--club-soft);text-align:right}.season-finished{font-size:23px;font-weight:700;color:var(--club-gold)}.franchise-standings th:first-child,.franchise-standings td:first-child{padding-right:8px;width:35px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#season-progress{margin-top:20px}#season-progress strong{font-size:13px}
@media(max-width:700px){.season-calendar{grid-template-columns:1fr}#league-scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))}#league-leaders{grid-template-columns:1fr}.calendar-heading{flex-wrap:wrap}.franchise-admin .franchise-toolbar{flex-wrap:wrap}.franchise-box .box-rows>div{flex-direction:column;gap:5px}.franchise-box .box-rows span{text-align:left}.season-center>.franchise-actions{flex-wrap:nowrap;gap:8px}.season-center>.franchise-actions button{padding:10px 8px}.season-calendar li{gap:8px;padding:8px}.season-calendar button{font-size:11px!important}}

#league-standings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}#league-player-stats th:first-child,#league-player-stats td:first-child{width:auto}#league-player-stats{font-size:12px}.league-results>label{flex-wrap:wrap}.league-results select{max-width:100%}@media(max-width:700px){#league-standings{grid-template-columns:1fr}}
.franchise-club-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:20px 0}.franchise-club-links a{padding:15px 8px;background:#2b4b42;border:1px solid var(--club-stroke);border-radius:8px;text-decoration:none;color:var(--club-lime);font:bold 13px monospace;text-align:center;box-shadow:0 4px 0 #071d27}.match-park{text-align:center;font:12px monospace;color:var(--club-gold)}@media(max-width:500px){.franchise-club-links{grid-template-columns:repeat(2,1fr)}}
