.franchise-library{min-height:100vh;background:var(--paper);color:var(--ink)}
.library-header{max-width:1200px;margin:auto;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.library-brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--forest);font:700 20px var(--display);letter-spacing:1.8px;line-height:1.2}
.library-brand .brand-mark{display:grid;place-items:center;color:var(--forest);border-color:var(--forest)}
.library-main{max-width:1200px;margin:0 auto;padding:44px 32px 60px}.library-intro{max-width:720px;margin-bottom:36px}
.library-intro h1{font:600 clamp(48px,5vw,58px)/1.05 var(--display);letter-spacing:-2px;margin:12px 0 18px;color:var(--forest)}
.library-intro p{max-width:540px;font-size:20px;line-height:1.8;color:var(--muted)}
.save-capacity{display:flex;gap:16px;align-items:baseline;padding:16px 20px;margin:0 0 28px;border:1px solid var(--line);border-radius:6px;background:var(--card)}.save-capacity strong{white-space:nowrap;font-size:20px;color:var(--forest)}.save-capacity p{margin:0;color:var(--muted);font-size:20px;line-height:1.7}.save-capacity.is-full{background:#f5eddf;border-color:#d7c49e}.library-import label[aria-disabled="true"]{opacity:.5;cursor:not-allowed}.create-franchise input:disabled,.create-franchise select:disabled{opacity:.6;cursor:not-allowed}
.library-layout{display:grid;grid-template-columns:350px minmax(0,1fr);gap:36px;align-items:start}
.create-franchise{padding:28px}.create-franchise h2,.weekly-matchup h2,.weekly-tasks h2{font:600 32px var(--display);letter-spacing:-.6px;margin:8px 0 12px}
.create-franchise p,.weekly-matchup p{color:var(--muted);font-size:20px;line-height:1.8}
.create-franchise form{display:grid;gap:9px;margin-top:24px}.create-franchise label,.save-name-label{display:block;font-size:16px;font-weight:700;letter-spacing:1px;margin:8px 0 0}
.create-franchise input,.create-franchise select,#save-name,#sim-through{width:100%;padding:13px 12px;border:1px solid var(--line);border-radius:4px;background:var(--card);color:var(--ink);font:inherit;font-size:20px}
.new-team-preview{display:flex;gap:12px;align-items:center;min-height:78px;padding:12px 0}.new-team-preview strong{display:block;font-size:20px}.new-team-preview small{display:block;margin-top:5px;font-size:16px;color:var(--muted)}
.franchise-team-mark{display:inline-grid;place-items:center;flex-shrink:0;width:50px;height:56px;background:var(--club);color:#fff7df;font:700 20px var(--display);letter-spacing:1px;border:3px solid #e7e5d4;box-shadow:0 0 0 1px #d3d5c8}
.library-import{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);margin-top:24px;padding-top:18px;font-size:16px;color:var(--muted)}.library-import label{margin:0;cursor:pointer;letter-spacing:0}
.save-file-list{display:grid;gap:16px}.save-file{padding:22px}.save-file-heading{display:flex;align-items:center;gap:15px}.save-file-heading>div{flex:1;min-width:0}.save-file h3{font:600 24px var(--display);margin:0;overflow-wrap:anywhere}.save-file-heading p{font-size:16px;color:var(--muted);margin:6px 0 0}
.save-file-details{display:flex;flex-wrap:wrap;gap:9px 16px;margin:18px 0 7px;font-size:20px}.save-file-details>span:last-child{color:var(--muted)}.save-date{color:var(--muted);font-size:16px}.save-file-actions{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.save-location{font-size:16px;line-height:1.8;color:var(--muted);margin-top:20px}.empty-franchises{border:1px dashed #b7c1ae;min-height:280px;padding:36px;display:flex;flex-direction:column;justify-content:center}.empty-save-mark{font:600 45px var(--display);color:#a3b39a}.empty-franchises h3{font:600 28px var(--display);margin:12px 0}.empty-franchises p{font-size:20px;line-height:1.8;color:var(--muted)}
.active-save-label{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:600}.hub-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(270px,1fr);gap:24px}.weekly-matchup,.weekly-tasks{padding:30px}.matchup-teams{display:flex;align-items:center;gap:24px;margin:26px 0}.matchup-teams>.franchise-team-mark{width:72px;height:80px;font-size:24px}.matchup-teams>span:nth-child(2){font-size:16px;letter-spacing:2px;color:var(--muted)}.season-finish-mark{font:600 60px var(--display);color:var(--forest)}
.hub-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px;align-items:center}.hub-task{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;background:transparent;border:0;border-bottom:1px solid var(--line);padding:20px 0;text-align:left;color:var(--ink)}.hub-task strong{display:block;font-size:20px}.hub-task small{display:block;font-size:16px;color:var(--muted);margin-top:6px;line-height:1.5}.hub-task:hover{color:var(--forest);background:#f0f2e8}.hub-bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;margin-top:24px}.hub-result{display:flex;justify-content:space-between;gap:12px;width:100%;padding:14px 0;background:transparent;border:0;border-bottom:1px solid var(--line);text-align:left;font-size:20px;color:var(--ink)}
.gameday-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.sim-progress .secondary{color:#fff3ce;border-color:#8ca48b}.save-error{border-color:#af553b}#save-name-form p,#simulate-form p{font-size:20px;line-height:1.8;color:var(--muted)}#save-name,#sim-through{margin:12px 0}.franchise-library~#toast{left:50%}
.field-drive-actions{padding:10px 20px}.field-drive-actions button{min-height:40px}
.playoff-preview,.playoff-bracket{padding:26px;margin:24px 0}.playoff-preview h2,.playoff-bracket h2{font:600 32px var(--display);margin:8px 0 10px}.playoff-preview p,.playoff-bracket .section-head p{font-size:20px;line-height:1.8;color:var(--muted);margin:8px 0}.playoff-bracket .section-head{align-items:flex-start;gap:18px}.playoff-bracket .section-head>div{min-width:0}.playoff-bracket h2{overflow-wrap:anywhere}.playoff-bracket .text-button{flex-shrink:0;min-height:40px}.playoff-rounds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}.playoff-round{min-width:0}.playoff-round h3{font:700 20px var(--display);line-height:1.6;margin:0 0 14px;padding:10px 0;border-bottom:2px solid var(--line)}.playoff-current-round h3{border-color:var(--forest);color:var(--forest)}.playoff-match{padding:12px 10px;border:1px solid var(--line);border-radius:4px;background:var(--paper);margin-bottom:12px}.playoff-game-label{font-size:16px;letter-spacing:.5px;color:var(--muted);margin-bottom:10px}.playoff-team{display:grid;grid-template-columns:17px minmax(0,1fr) 25px;gap:6px;align-items:baseline;padding:6px 0;font-size:16px;line-height:1.6}.playoff-team>span:nth-child(2){overflow-wrap:anywhere}.playoff-team>strong{text-align:right}.playoff-seed{color:var(--muted);font-size:16px}.playoff-team small{display:inline-block;font-size:16px;color:var(--forest);margin-left:3px}.playoff-winner{font-weight:700;color:var(--forest)}.playoff-your-team{background:#e6eddd}.playoff-byes,.playoff-waiting{font-size:16px;line-height:1.8;color:var(--muted)}.playoff-seed-list{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 22px}.playoff-seed-list details{border:1px solid var(--line);border-radius:4px;padding:12px 16px}.playoff-seed-list summary{font-size:16px;font-weight:700;cursor:pointer;padding:4px 0}.playoff-seed-list ol{font-size:16px;line-height:1.8;padding-left:25px;margin-bottom:0}.playoff-seed-list li{padding:4px 6px}.playoff-seed-list li small{display:block;color:var(--muted);font-size:16px}.playoff-bracket-compact .playoff-rounds{display:block}.playoff-bracket-compact .playoff-round{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.playoff-bracket-compact .playoff-round h3,.playoff-bracket-compact .playoff-byes{grid-column:1/-1;margin:0}.playoff-bracket-compact .playoff-match{margin-bottom:0}
@media(max-width:1100px){.playoff-rounds{grid-template-columns:repeat(2,minmax(0,1fr))}.playoff-bracket-compact .playoff-round{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.playoff-preview,.playoff-bracket{padding:18px}.playoff-rounds,.playoff-seed-list,.playoff-bracket-compact .playoff-round{grid-template-columns:1fr}.playoff-bracket .section-head{flex-wrap:wrap}.playoff-team{font-size:20px}.playoff-bracket h2{font-size:28px}}
.opponent-scouting{margin-top:24px;overflow:hidden}.opponent-scouting>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 26px;cursor:pointer;list-style:none}.opponent-scouting>summary::-webkit-details-marker{display:none}.opponent-scouting>summary>span:first-child{min-width:0}.opponent-scouting>summary strong{display:block;font:600 28px var(--display);margin:7px 0;overflow-wrap:anywhere}.opponent-scout-summary{display:block;color:var(--muted);font-size:20px;line-height:1.6;overflow-wrap:anywhere}.opponent-scout-toggle{flex-shrink:0;color:var(--forest);font-size:16px;font-weight:700}.opponent-scout-toggle>span{display:inline-block;margin-left:8px;font-size:20px}.opponent-scouting[open] .opponent-scout-toggle>span{transform:rotate(45deg)}.opponent-scouting>summary:focus-visible{outline:3px solid var(--forest);outline-offset:-4px}.opponent-scout-body{padding:0 26px 24px;border-top:1px solid var(--line)}.opponent-scout-intro,.opponent-scout-footnote{font-size:16px;line-height:1.8;color:var(--muted);margin:18px 0}.opponent-scout-footnote{margin-bottom:0}.opponent-scout-group{font-size:16px;letter-spacing:.6px;text-transform:uppercase;margin:24px 0 12px}.opponent-scout-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.opponent-scout-defense{grid-template-columns:repeat(2,minmax(0,1fr))}.opponent-scout-player{min-width:0;padding:16px;border:1px solid var(--line);border-radius:5px;background:var(--card)}.opponent-scout-player-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.opponent-scout-player-heading>div{min-width:0}.opponent-scout-position{font-size:16px;color:var(--muted);font-weight:700;letter-spacing:1px}.opponent-scout-player h3{font:600 24px var(--display);line-height:1.25;margin:7px 0 0;overflow-wrap:anywhere}.opponent-scout-rating{flex-shrink:0;display:grid;text-align:center;gap:2px;color:var(--forest)}.opponent-scout-rating strong{font:600 28px var(--display)}.opponent-scout-rating small{font-size:16px;letter-spacing:1px}.opponent-scout-player>p{font-size:16px;line-height:1.8;color:var(--muted);margin:14px 0}.opponent-scout-recent{border-top:1px solid var(--line);padding-top:12px;margin-top:14px;color:var(--muted);font-size:16px;line-height:1.7}.opponent-scout-recent>span{font-size:16px}.opponent-scout-recent p{margin:4px 0 0;color:var(--ink)}.opponent-scout-player .opponent-scout-pressure{padding:12px 14px;background:var(--paper);border-radius:4px}.opponent-scout-pressure strong{display:block;color:var(--ink)}.opponent-scout-pressure a{color:var(--forest);white-space:normal}.opponent-scouting-compact{margin:0 0 22px}.opponent-scouting-compact>summary{padding:16px 22px}.opponent-scouting-compact>summary strong{font-size:24px}.opponent-scouting-compact .opponent-scout-summary{font-size:16px}
@media(max-width:760px){.opponent-scouting>summary{padding:18px;gap:12px;align-items:flex-start}.opponent-scouting>summary strong{font-size:24px}.opponent-scout-toggle{font-size:16px;margin-top:3px}.opponent-scout-body{padding:0 18px 18px}.opponent-scout-grid,.opponent-scout-defense{grid-template-columns:1fr}.opponent-scout-player{padding:15px}.opponent-scouting-compact>summary{padding:16px}.opponent-scout-summary{font-size:16px}}
@media(max-width:600px){.field-drive-actions{padding:10px}}
@media(max-width:950px){.library-layout{grid-template-columns:300px minmax(0,1fr);gap:22px}.create-franchise{padding:22px}.hub-grid,.hub-bottom{grid-template-columns:1fr}.active-save-label{max-width:130px}.nav{overflow-x:auto}}
@media(max-width:760px){.library-header{padding:20px}.library-main{padding:28px 20px 40px}.library-layout{grid-template-columns:1fr;gap:30px}.library-intro{margin-bottom:26px}.library-intro h1{letter-spacing:-1px}.save-file{padding:20px}.save-file-actions .primary{width:100%}.weekly-matchup,.weekly-tasks{padding:22px}.active-save-label{max-width:90px;font-size:16px}.hub-actions .primary{flex:1}.hub-task{min-height:68px}.nav{justify-content:flex-start!important}.nav button{flex:0 0 57px}.saved-franchises .section-head{margin-bottom:16px}.library-brand{font-size:16px}.save-file-actions .text-button{min-height:32px}}

.hub-grid>*,.hub-bottom>*,.save-file-heading>div{min-width:0}.hub-bottom h2,.save-error,.note-box,.page-heading .eyebrow{overflow-wrap:anywhere}
.delete-save-summary{display:flex;align-items:center;gap:16px;padding:18px;border:1px solid var(--line);border-radius:6px;background:var(--card)}.delete-save-summary>div{min-width:0}.delete-save-summary strong{display:block;font:600 24px var(--display);overflow-wrap:anywhere}.delete-save-summary p{margin:6px 0 0!important}#delete-save-form p{font-size:20px;line-height:1.8;color:var(--muted)}.delete-save-actions{flex-wrap:wrap}.delete-save-confirm{background:#8f352c;color:#fff}.delete-save-confirm:hover{background:#702a23}
@media(max-width:760px){.save-capacity{display:block;padding:16px}.save-capacity p{margin-top:8px}.delete-save-summary{padding:14px;gap:12px}.delete-save-actions{justify-content:flex-start}.delete-save-actions button{min-height:42px}}
