/* Portrait game layout: the same focused canvas on phones, tablets and desktops. */
html[data-layout=portrait]{--radius:9px;--muted:#58635f;--panel:#f8f7f1;--panel2:#e9e7de;--line:#d4d6ca}
html[data-layout=portrait][data-theme=dark]{--panel:#23332e;--panel2:#2b4037;--muted:#b7c4b9;--line:#476052}
html[data-layout=portrait] body{background:#0d1219}
html[data-layout=portrait] h1,html[data-layout=portrait] h2{font-family:'Arial Narrow','Roboto Condensed',system-ui,sans-serif;letter-spacing:-.7px}
html[data-layout=portrait] button{touch-action:manipulation}
html[data-layout=portrait] input,html[data-layout=portrait] select,html[data-layout=portrait] textarea{font-size:16px;max-width:100%;min-width:0}
html[data-layout=portrait] summary{cursor:pointer;min-height:44px;align-content:center}
html[data-layout=portrait] .primary{background:linear-gradient(180deg,#aa3c50,#7b283b);color:#fff7ec;border:1px solid #e0838860;box-shadow:0 3px 0 #4b1924;font-weight:750}
html[data-layout=portrait] .primary:disabled{box-shadow:none}
.portrait-shell{position:relative;isolation:isolate;width:100%;max-width:640px;min-height:100svh;margin:0 auto;padding-bottom:calc(150px + env(safe-area-inset-bottom));background:#18202b80;box-shadow:0 0 80px #0008}
.portrait-backdrop{position:fixed;inset:0 auto 0 50%;transform:translateX(-50%);width:min(100%,640px);height:100lvh;z-index:-1;background:#101826;overflow:hidden;pointer-events:none}
.portrait-backdrop img{width:100%;height:100%;object-fit:cover;object-position:52% center;opacity:.42}
.portrait-backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#172132 1%,#202d3b60 28%,#0b121a80 58%,#0b1017 94%)}
.portrait-shell .play-header{position:sticky;top:0;z-index:20;height:calc(66px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;gap:10px;background:#192231f5;border-bottom:1px solid #b99a5b66;backdrop-filter:blur(12px)}
.portrait-shell .play-header>.brand-mark{width:32px;height:32px;border-radius:50%;background:#d5b678;color:#4a2530;flex-shrink:0}
.portrait-shell .play-header>.brand-mark .icon{width:23px;height:23px}
.portrait-shell .play-brand{flex:1;min-width:0;font:800 10px/1.2 system-ui,sans-serif;letter-spacing:1.4px;text-align:left;color:#d9bd86}
.portrait-shell .play-brand small{font:800 17px/1.3 system-ui,sans-serif;letter-spacing:-.4px;color:#fcf4e7;margin-top:4px}
.portrait-shell .play-header-right{gap:5px}
.portrait-shell .play-office{height:42px;width:38px;min-height:42px;padding:8px;justify-content:center;background:#ffffff08;color:#ead7b5;border-color:#ffffff18}
.portrait-shell .chair-inbox{position:relative}
.portrait-shell .chair-mail-count{position:absolute;right:-3px;top:-3px;font-size:9px;background:#a83d52;color:white;min-width:17px;height:17px;line-height:17px;border-radius:50%;padding:0 3px}
.portrait-shell .portrait-back{width:32px;min-height:42px;padding:5px;background:transparent;color:#f4dfb4;flex-shrink:0}
.portrait-back .icon{transform:rotate(180deg)}
.portrait-shell .play-page{padding:18px 16px 12px;max-width:640px;margin:0;width:100%;min-width:0}
.portrait-shell .play-nav{position:fixed;inset:auto auto 0 50%;transform:translateX(-50%);z-index:35;width:100%;max-width:640px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:4px 6px calc(5px + env(safe-area-inset-bottom));height:calc(66px + env(safe-area-inset-bottom));background:#101a25f5;border-top:1px solid #dbbb7c55;backdrop-filter:blur(12px)}
.portrait-shell .play-tab{display:flex;flex-direction:column;justify-content:center;gap:4px;font-size:10px;min-width:0;min-height:52px;max-width:none;padding:5px 2px;color:#b5bdc4;border:none;border-radius:7px;background:transparent;box-shadow:none}
.portrait-shell .play-tab .icon{width:20px;height:20px}
.portrait-shell .play-tab.active{color:#f3d28e;background:#dfb36717;box-shadow:inset 0 2px #d4ad65}
.portrait-dock{position:fixed;z-index:34;bottom:calc(66px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:100%;max-width:640px;padding:8px 16px 11px;background:linear-gradient(180deg,#0d1722e6,#101a25);border-top:1px solid #ffffff0d}
.portrait-dock>span{display:block;color:#b5c2cb;font-size:10px;line-height:1.4;margin-bottom:6px;text-align:center}
.portrait-dock>button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:48px;font-size:16px;letter-spacing:.1px}
.portrait-shell .play-save{max-width:100%;padding:9px 18px 6px;color:#c5cecf;font-size:10px;gap:8px;display:flex;flex-wrap:wrap}
.portrait-shell .play-save>div{gap:0}.portrait-shell .play-save .ghost{color:#d7c7a8;min-width:40px;min-height:42px}
.portrait-shell .play-save>span{display:flex;align-items:center;gap:6px}
.portrait-shell .chair-continuebar{display:none}
/* The bandroom. */
.portrait-band{margin:0 0 12px}
.band-ribbon{display:flex;gap:10px;align-items:center;min-height:60px;background:linear-gradient(110deg,#fffaf0,#e4e4db);padding:10px 12px;border-radius:6px;border-bottom:3px solid #c8a366;box-shadow:0 4px 18px #0002;color:#1d2930}
.band-ribbon h1{flex:1;min-width:0;font-size:22px;line-height:1.1;font-weight:850;margin:0;overflow-wrap:anywhere}
.band-ribbon>.ghost{padding:8px;min-width:38px;min-height:38px;color:#5c584d}
.band-ribbon .band-avatar,.band-ribbon .band-crest{width:38px;height:38px;flex-shrink:0}
.portrait-season{display:flex;justify-content:space-between;gap:8px;margin:9px 2px 0;color:#e1dfd6;font-size:10px;font-weight:700;letter-spacing:.3px}
.portrait-stats{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:7px;margin:12px 0}
.portrait-stats button{min-width:0;background:#fbfaf3ed;color:#1c2931;border:1px solid #ffffff4d;border-radius:6px;min-height:69px;padding:10px 5px;box-shadow:0 3px 9px #0002}
.portrait-stats small{display:block;font-size:9px;font-weight:750;letter-spacing:.4px}
.portrait-stats strong{font-size:27px;line-height:1.3;font-weight:850;display:block;letter-spacing:-1px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.portrait-stats button:first-child strong{color:#315a47;font-size:25px}
.portrait-stats em{font-size:12px;font-style:normal;letter-spacing:0;margin-left:1px}
.portrait-shell .office-play-grid{display:block;margin:0}
.portrait-fixture{isolation:isolate;position:relative;overflow:hidden;border-radius:8px;min-height:164px;border:1px solid #cfaf7050;margin:0;box-shadow:0 5px 22px #0003}
.portrait-fixture>.venue-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 54%;z-index:-2}
.portrait-fixture:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#101923dd,#11172272 70%),linear-gradient(0deg,#0d101be6,transparent 90%);z-index:-1}
.portrait-fixture-copy{padding:18px 17px 9px;color:#fff9ed}
.portrait-fixture-copy>.eyebrow{font-size:9px;color:#f0ce8c;letter-spacing:1.1px}
.portrait-fixture h2{font-size:27px;font-weight:850;line-height:1.1;margin:8px 0 5px;max-width:95%}
.portrait-fixture p{font-size:12px;color:#e3e6e5;margin-bottom:7px;max-width:85%}
.portrait-fixture-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #ffffff24;font-size:10px;color:#ddd9ce;padding-top:4px}
.portrait-fixture-meta button{color:#f4d18b;white-space:nowrap;padding:7px 0 7px 8px;min-height:38px;font-size:11px;display:flex;align-items:center;gap:5px}
.portrait-fixture-meta .icon{width:15px;height:15px}
.portrait-news{width:100%;display:flex;align-items:center;gap:10px;border:1px solid #d1ad6544;border-left:3px solid #d1ad65;border-radius:6px;padding:10px 12px;margin-top:10px;background:#132330ee;color:#f8f0e1;text-align:left}
.portrait-news>span{flex:1;min-width:0}.portrait-news small{display:block;font-size:8px;letter-spacing:1px;color:#e0bd75}.portrait-news strong{font-size:11px;line-height:1.35;display:block}.portrait-news>.icon{width:17px;height:17px;flex-shrink:0}
.portrait-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:12px 0}
.portrait-tile{padding:11px 5px 9px;text-align:center;min-width:0;background:linear-gradient(150deg,#18252e,#172027);color:#faf4e6;border:1px solid #bec8c42e;border-radius:7px;position:relative;overflow:hidden}
.portrait-tile>.icon{color:#d4b16f;width:20px;height:20px;margin-bottom:3px}.portrait-tile>small{display:block;font-size:10px;font-weight:800}.portrait-tile>strong{display:block;font-size:25px;letter-spacing:-.8px;margin:2px 0;font-weight:850;line-height:1.2}.portrait-tile>span{display:block;font-size:8px;line-height:1.3;color:#b6c4c4;min-height:22px;overflow-wrap:anywhere}
.portrait-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}
.portrait-links button{display:flex;flex-direction:column;gap:7px;align-items:center;min-height:62px;border-radius:6px;padding:10px 3px;background:#583440e8;border:1px solid #ce9a7d45;color:#f4e5c8;font-size:10px;font-weight:700}.portrait-links .icon{width:20px;height:20px}
.portrait-countdown{display:flex;align-items:center;gap:8px;font-size:10px;color:#e0d7bf;margin:12px 0}.portrait-countdown>.icon{color:#d4b16f;width:17px;height:17px}.portrait-countdown>span{flex:1;font-weight:700}.portrait-countdown button{color:#efd08d;min-height:40px;font-size:11px}
.portrait-shell .play-choices{background:var(--panel);border:1px solid var(--line);border-radius:7px;margin-top:10px;padding:0 13px}.portrait-shell .play-choices summary{font-size:11px;gap:10px}.portrait-shell .play-choices .quick-approaches{grid-template-columns:1fr;gap:5px}.portrait-shell .quick-approaches button{padding:11px}.portrait-shell .quick-approaches button span{font-size:11px}
.portrait-shell .office-results{margin-top:10px;padding:8px 14px}.portrait-shell .office-results>summary{font-size:11px;display:flex;flex-direction:row;justify-content:space-between;gap:10px}.portrait-shell .play-form{flex-wrap:wrap}
/* Compact titles, menus and reports. */
.portrait-title{color:#fff5e7;margin:3px 0 17px}.portrait-title>.eyebrow{font-size:9px;color:#e3bd77;letter-spacing:1.6px}.portrait-title h1{font-size:29px;line-height:1.1;margin:6px 0 7px;font-weight:850;overflow-wrap:anywhere}.portrait-title p{font-size:12px;color:#c8d1d2;line-height:1.5}
.portrait-shell .quick-heading{color:#fbf3e7;margin-bottom:18px;display:flex;flex-wrap:wrap;gap:10px}.portrait-shell .quick-heading h1{font-size:29px;font-weight:850;line-height:1.14}.portrait-shell .quick-heading p{font-size:12px;color:#d0d8d8}.portrait-shell .quick-heading .eyebrow{color:#dfbb7b}.portrait-shell .quick-heading .badge{background:#21313b;color:#f0dbb1;border-color:#b2935e}
.portrait-shell .illustrated-heading{min-height:120px;grid-template-columns:minmax(0,1fr) 100px;margin-bottom:17px}.portrait-shell .heading-copy{padding:18px}.portrait-shell .illustrated-heading h1{font-size:25px;font-weight:800}.portrait-shell .heading-scene{height:100%;min-height:120px}.portrait-shell .illustrated-heading p{font-size:11px}.portrait-shell .illustrated-heading .eyebrow{font-size:8px;letter-spacing:.8px}.portrait-shell .illustrated-heading .hint{margin-top:10px}
.portrait-shell .chair-section-title{color:#f2e6cb;font-size:15px;margin:19px 0 11px}.portrait-shell .quick-disclosure{margin:14px 0;padding:13px 15px}.portrait-shell .quick-disclosure>summary{font-size:12px;line-height:1.45}.portrait-shell .quick-disclosure>p{font-size:12px}.portrait-shell .notice{font-size:12px;background:var(--panel)}
.portrait-shell .play-subnav{gap:8px;margin-bottom:18px}.portrait-shell .play-subnav button{flex:1;min-height:42px;background:#f0eadc}.portrait-shell .play-subnav .selected{background:#7b2b3e;color:#fff4dc;border-color:#ba8c74}
.portrait-page-actions{display:flex;gap:8px;margin-top:16px}.portrait-page-actions button{flex:1;min-height:44px}
/* All 22 musicians remain visible; no sideways table is needed. */
.portrait-squad-summary{display:grid;grid-template-columns:repeat(4,1fr);background:#f6f3e9ee;color:#1c2d30;border-radius:7px;padding:13px 4px;margin-bottom:12px;text-align:center}.portrait-squad-summary small{display:block;font-size:8px;font-weight:750;letter-spacing:.4px}.portrait-squad-summary strong{display:block;font-size:24px;letter-spacing:-.8px;margin-top:3px;font-weight:850}
.portrait-shell .squad-quick-actions{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:6px;margin:0}.portrait-shell .squad-quick-actions button{font-size:11px;min-height:43px;padding:9px 4px}
.portrait-roster{border-radius:7px;overflow:hidden}.roster-columns{display:grid;grid-template-columns:minmax(0,1fr) 43px 38px 38px;gap:3px;color:#d8dcd6;font-size:8px;font-weight:750;text-align:center;padding:8px 7px}.roster-columns>span:first-child{text-align:left}
.roster-section{--section:#aa3c53}.roster-section.horns{--section:#527ba7}.roster-section.euphs{--section:#a68135}.roster-section.basses{--section:#477866}
.roster-section h3{display:flex;justify-content:space-between;padding:8px 10px;font-size:10px;font-weight:750;letter-spacing:.4px;background:#13212c;color:#f5e6c7;border-left:4px solid var(--section)}.roster-section h3>span{color:#b6c6c5}
.portrait-player{display:grid;grid-template-columns:32px minmax(0,1fr) 40px 34px 34px;gap:5px;align-items:center;width:100%;min-height:56px;padding:5px 7px 5px 5px;background:#f5f4ecf2;color:#1c2c31;border:none;border-bottom:1px solid #aebbb7;border-left:4px solid var(--section);border-radius:0;text-align:left;box-shadow:none}
.portrait-player:nth-of-type(even){background:#e7e9e2f2}.portrait-player .portrait.small{width:30px;height:38px;border-radius:3px;border:0;background-color:#d9d3bc}.roster-name{min-width:0}.roster-name strong{display:block;font-size:12px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}.roster-name small{display:block;font-size:8px;color:#596a69;margin-top:4px;line-height:1.25}.roster-rating{background:#19242d;color:#fcf3da;align-self:stretch;display:flex;justify-content:center;align-items:center;font-size:21px;letter-spacing:-.8px;border-radius:2px}.roster-meter{width:29px;min-height:25px;display:grid;place-items:center;border-radius:15px;font-size:10px;font-weight:800;border:1px solid currentColor;justify-self:center}.roster-meter.good{background:#e0eddf;color:#2a5c38}.roster-meter.mixed{background:#f1e4bf;color:#735813}.roster-meter.low{background:#f5dfdf;color:#962f3b}.portrait-player.vacant{min-height:56px;grid-template-columns:32px 1fr;background:#faeadb}.roster-key{font-size:10px;color:#c7d3d2;margin:10px 0;line-height:1.6}
/* Career and money use actual saved figures. */
.portrait-career{padding:21px 18px}.career-identity{display:flex;align-items:center;gap:15px}.career-identity .portrait{width:78px;flex-shrink:0}.career-identity h2{font-size:23px;font-weight:850;line-height:1.15;margin:4px 0}.career-identity p{font-size:12px}.career-identity small{font-size:10px;color:var(--muted)}.career-scoreline{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin:20px 0 8px;text-align:center;gap:8px}.career-scoreline span{font-size:10px;color:var(--muted)}.career-scoreline strong{display:block;font-size:28px;font-weight:850;color:var(--ink);line-height:1.1;margin-bottom:5px}.portrait-career .finance-line{padding:13px 0;font-size:12px}.portrait-career>.small{margin-top:13px;line-height:1.6}
.portrait-finance-report{padding:20px 18px;margin:16px 0}.portrait-finance-report h2{font-size:24px;font-weight:850;margin:5px 0 14px}.portrait-finance-report .finance-line{font-size:13px;padding:13px 0;gap:14px}.portrait-finance-report .finance-line strong{font-size:20px;white-space:nowrap}.portrait-finance-report .finance-line>span{min-width:0}.portrait-finance-report .report-total{border-top:2px solid var(--line);font-weight:750}.portrait-finance-report summary{font-size:11px;color:var(--muted)}.portrait-finance-report details .finance-line{font-size:11px}.portrait-finance-report details strong{font-size:13px}
.portrait-shell .chair-income-grid,.portrait-shell .chair-finance-links{grid-template-columns:1fr;gap:10px}.portrait-shell .chair-income-grid section,.portrait-shell .chair-finance-links section{padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.portrait-shell .chair-income-grid h2{font-size:24px}.portrait-shell .chair-income-grid p,.portrait-shell .chair-finance-links p{font-size:12px}.portrait-shell .chair-upgrades{grid-template-columns:1fr;gap:10px}.portrait-shell .chair-upgrade{padding:18px}.portrait-shell .chair-upgrade h3{font-size:17px}.portrait-shell .chair-development{padding:17px;flex-direction:column;gap:12px}.portrait-shell .chair-development h2{font-size:23px}.portrait-shell .chair-development p{font-size:12px}
/* Venue selection and short performance broadcasts. */
.venue-gallery{display:grid;gap:17px}.venue-card{overflow:hidden}.venue-card>.venue-photo{display:block;width:100%;height:210px;object-fit:cover}.venue-card>div{padding:18px}.venue-card h2{font-size:26px;font-weight:850;margin:6px 0}.venue-card p{font-size:13px}.venue-card small{display:block;font-size:11px;color:var(--muted);margin:8px 0 16px}.venue-card button{width:100%;min-height:45px;justify-content:center}.venue-credit{font-size:10px;line-height:1.6;color:#bec9cb;margin:18px 0}
.venue-banner{position:relative;overflow:hidden;border-radius:7px;height:250px;background:#1c2633;isolation:isolate;margin-bottom:20px}.venue-banner>.venue-photo{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;z-index:-2}.venue-banner:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0d1728ec,transparent 85%);z-index:-1}.venue-banner>div{position:absolute;bottom:18px;left:18px;right:18px;color:#fff3d9}.venue-banner span{display:block;font-size:9px;letter-spacing:1px;color:#dfbc80}.venue-banner strong{display:block;font-size:22px;line-height:1.18;margin-top:6px}.venue-banner.small{height:120px;margin:0 0 18px}.venue-banner.small>div{left:14px;bottom:13px}.venue-banner.small strong{font-size:17px}.venue-preview-copy h2{font-size:27px;margin:10px 0}.venue-preview-copy p{font-size:13px;line-height:1.6;margin:12px 0}.venue-preview-copy .finance-line{font-size:12px}
.portrait-shell .quick-calendar{grid-template-columns:1fr;gap:12px}.portrait-shell .quick-calendar article{padding:0 17px 16px;overflow:hidden}.portrait-shell .quick-calendar .calendar-venue{display:block;width:calc(100% + 34px);max-width:none;height:125px;object-fit:cover;margin:0 -17px 14px}.portrait-shell .quick-calendar h3{font-size:18px;margin:9px 0}.portrait-shell .quick-calendar p{font-size:12px}.portrait-shell .quick-calendar .text-btn{margin-right:15px;min-height:40px}.portrait-shell .quick-calendar article.current{border:2px solid #c39b53}.portrait-shell .quick-calendar article.current:before{display:none}
.broadcast-venue-label{padding:9px 12px;background:#12202a;color:#d8c6a2;font-size:10px;text-align:center;border-bottom:1px solid #d5b67b33}.quick-live-stage,.match-stage{isolation:isolate}.performance-venue{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.65;z-index:-2}.quick-live-stage:after,.match-stage:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#101324eb,#10132410);z-index:-1;pointer-events:none}.quick-live-stage .stage-band{opacity:.8;bottom:22px}.quick-live-stage .stage-player{filter:drop-shadow(0 3px 6px #000)}.quick-live-stage .stage-conductor{filter:drop-shadow(0 3px 6px #000)}
html[data-layout=portrait] .quick-broadcast-header{padding:13px;font-size:11px;gap:8px}html[data-layout=portrait] .quick-broadcast-header strong{font-size:13px;line-height:1.25}html[data-layout=portrait] .quick-live-stage{height:270px}html[data-layout=portrait] .quick-commentary{padding:17px}html[data-layout=portrait] .quick-commentary h2{font-size:24px;line-height:1.2}html[data-layout=portrait] .quick-commentary p{font-size:13px;line-height:1.7;min-height:68px}html[data-layout=portrait] .quick-result{padding:7px 5px 15px}html[data-layout=portrait] .quick-result-score{font-size:80px;margin:10px 0}html[data-layout=portrait] .quick-result h2{font-size:27px}html[data-layout=portrait] .quick-result-changes{padding:15px 8px;gap:5px}html[data-layout=portrait] .quick-result-changes strong{font-size:24px}html[data-layout=portrait] .quick-result-changes small{font-size:8px}html[data-layout=portrait] .quick-judges{gap:5px}html[data-layout=portrait] .quick-judges strong{font-size:25px}html[data-layout=portrait] .quick-judges small{font-size:9px}
/* The current message comes first; the full list is optional. */
.portrait-letter{padding:21px 18px}.portrait-letter .inbox-letter-head{padding:0;margin-bottom:18px}.portrait-letter .inbox-letter-head h2{font-size:25px;line-height:1.2}.portrait-letter .inbox-letter{font-size:14px;line-height:1.8}.portrait-letter .inbox-letter-actions{display:flex;flex-wrap:wrap;gap:8px}.portrait-letter .inbox-letter-actions button{min-height:44px}.portrait-mail-list{padding:13px 15px;margin-top:15px}.portrait-mail-list>summary{font-size:12px;font-weight:750}.portrait-mail-list .inbox-filters{padding:10px 0;overflow:auto;flex-wrap:nowrap;max-width:100%}.portrait-mail-list .inbox-filters button{white-space:nowrap;flex-shrink:0}.portrait-mail-list .inbox-search{padding:10px 0}.portrait-mail-list .inbox-search label{font-size:11px}.portrait-mail-list .inbox-search .row{gap:6px}.portrait-mail-list .inbox-list{max-height:390px;overflow:auto;border:1px solid var(--line);border-radius:5px;margin:12px 0}.portrait-mail-list .inbox-subject{display:block;font-size:13px}.portrait-mail-list .inbox-item{min-height:75px}.portrait-letter .inbox-facts{grid-template-columns:1fr 1fr}.portrait-letter .inbox-actions{flex-wrap:wrap}
/* Touch-friendly secondary screens fit the portrait canvas too. */
.portrait-shell .market-player-grid{grid-template-columns:1fr;gap:10px}.portrait-shell .market-filters{grid-template-columns:1fr 1fr;gap:10px}.portrait-shell .market-filters>.form-field:first-child{grid-column:1/-1}.portrait-shell .market-filters>button{align-self:end;min-height:44px}.portrait-shell .market-tabs{gap:5px}.portrait-shell .market-tabs button{flex:1;font-size:12px;padding:11px 5px}.portrait-shell .market-overview{grid-template-columns:repeat(3,1fr);padding:14px 8px;gap:7px;background:var(--panel);border-radius:8px}.portrait-shell .market-overview strong{font-size:20px}.portrait-shell .market-overview small{font-size:8px}.portrait-shell .filters{display:grid;grid-template-columns:1fr 1fr;gap:7px}.portrait-shell .filters>input{grid-column:1/-1}.portrait-shell .filters select{width:100%;min-width:0;font-size:12px}.portrait-shell .data-table th,.portrait-shell .data-table td{padding:11px 8px;font-size:11px}.portrait-shell .table-wrap{overflow-x:auto;overscroll-behavior-inline:contain}.portrait-shell .staff-grid,.portrait-shell .club-staff-grid,.portrait-shell .club-team-grid,.portrait-shell .committee-grid{grid-template-columns:1fr}.portrait-shell .stat-grid{grid-template-columns:1fr 1fr;gap:9px}.portrait-shell .stat-card{padding:17px}.portrait-shell .stat-number{font-size:26px}.portrait-shell .stat-label,.portrait-shell .stat-card .note{font-size:10px}.portrait-shell .stat-card>.icon{width:20px;height:20px}.portrait-shell .play-games{grid-template-columns:1fr 1fr;gap:10px}.portrait-shell .play-game{min-height:210px;padding:17px 14px}.portrait-shell .play-game h2{font-size:23px}.portrait-shell .play-game p{font-size:12px}.portrait-shell .play-game .eyebrow{font-size:8px;letter-spacing:.8px}.portrait-shell .play-game-icon{width:44px;height:44px;margin-bottom:14px}.portrait-shell .play-free-studio{flex-wrap:wrap;padding:17px;gap:13px}.portrait-shell .play-free-studio h2{font-size:21px}.portrait-shell .play-free-studio p{font-size:12px}.portrait-shell .quick-goals,.portrait-shell .quick-paths{grid-template-columns:1fr}.portrait-shell .quick-fans{padding:18px}.portrait-shell .quick-fans h2,.portrait-shell .quick-cabinet h2{font-size:23px}.portrait-shell .quick-season-end{min-height:550px}.portrait-shell .quick-season-end h1{font-size:32px}.portrait-shell .quick-season-end>div{padding:30px 20px}
/* Portrait dialogs retain visible Close and action controls. */
html[data-layout=portrait] dialog{width:min(608px,calc(100% - 20px));max-width:608px;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:10px;overflow-y:auto;overscroll-behavior:contain}
html[data-layout=portrait] dialog::backdrop{background:#08111be8;backdrop-filter:blur(5px)}
html[data-layout=portrait] .modal-head{position:sticky;top:0;z-index:10;min-height:58px;padding:10px 16px;background:#192734;color:#f7e5bf;border-bottom:1px solid #c19e56}
html[data-layout=portrait] .modal-head h2{font-size:18px;line-height:1.3;font-weight:800;letter-spacing:-.2px}html[data-layout=portrait] .modal-head button{min-width:42px;min-height:42px;padding:10px}
html[data-layout=portrait] .modal-body{padding:18px;overflow-wrap:anywhere;min-width:0}html[data-layout=portrait] .modal-body h2{font-weight:800}html[data-layout=portrait] .modal-foot{position:sticky;bottom:0;z-index:10;padding:12px 16px;background:var(--panel);box-shadow:0 -4px 15px #0001;display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--line)}html[data-layout=portrait] .modal-foot button{flex:1;min-width:110px;min-height:44px;font-size:12px;padding:10px 12px;justify-content:center}html[data-layout=portrait] .modal-foot .primary{order:1}html[data-layout=portrait] .modal-foot .text-btn{flex:0 1 auto;min-width:90px}
html[data-layout=portrait] .player-card-top{grid-template-columns:76px minmax(0,1fr);gap:14px}html[data-layout=portrait] .player-card-top h2{font-size:25px}html[data-layout=portrait] .player-info{grid-template-columns:1fr 1fr;gap:9px}html[data-layout=portrait] .player-info strong{font-size:11px}html[data-layout=portrait] .portrait-credit{font-size:8px}html[data-layout=portrait] .attribute-grid{grid-template-columns:1fr;gap:20px}html[data-layout=portrait] .attribute{font-size:12px}html[data-layout=portrait] .attribute-col h3{font-size:11px}html[data-layout=portrait] .attr-value{min-width:30px;font-size:14px}html[data-layout=portrait] .offer-grid{grid-template-columns:1fr 1fr;gap:12px}html[data-layout=portrait] .sale-offers{grid-template-columns:1fr}html[data-layout=portrait] .takeover-numbers strong{font-size:25px}html[data-layout=portrait] .fund-packs{grid-template-columns:1fr}html[data-layout=portrait] .quick-office-links{grid-template-columns:1fr 1fr}html[data-layout=portrait] .quick-office-links button{font-size:12px;min-height:53px;padding:12px}html[data-layout=portrait] .game-stage{max-width:100%}
/* New-career registration uses the same narrow game canvas. */
html[data-layout=portrait] .sidebar{display:none}html[data-layout=portrait] .shell{max-width:640px;margin:0 auto;background:var(--paper);min-height:100svh;padding-bottom:120px}html[data-layout=portrait] .shell>.page{padding:18px 16px 30px;max-width:640px}html[data-layout=portrait] .shell>.topbar{margin:0;padding:12px 16px;height:auto;min-height:65px}html[data-layout=portrait] .shell .desktop-title,html[data-layout=portrait] .shell .avatar-name{display:none}html[data-layout=portrait] .shell .mobile-logo{display:flex}html[data-layout=portrait] .shell .mobile-logo .wordmark{font-size:14px}html[data-layout=portrait] .shell .mobile-logo .wordmark small{font-size:7px}html[data-layout=portrait] .shell .topbar>.row .badge{display:none}html[data-layout=portrait] .shell .profile-intro{grid-template-columns:1fr}html[data-layout=portrait] .shell .intro-copy{display:none}html[data-layout=portrait] .shell .profile-inner{grid-template-columns:95px minmax(0,1fr);gap:16px;padding:18px}html[data-layout=portrait] .shell .portrait-choices{grid-template-columns:repeat(2,1fr);gap:5px}html[data-layout=portrait] .shell .portrait-choice{padding:3px}html[data-layout=portrait] .shell .profile-identity h2{font-size:24px}html[data-layout=portrait] .shell .role{font-size:11px}html[data-layout=portrait] .shell .profile-inner .form-field{margin:12px 0}html[data-layout=portrait] .shell .slots{grid-template-columns:1fr}html[data-layout=portrait] .shell .bottom-bar{position:fixed;left:50%;transform:translateX(-50%);width:100%;max-width:640px;bottom:0;padding:13px 16px calc(13px + env(safe-area-inset-bottom));background:var(--panel)}html[data-layout=portrait] .shell+.mobile-nav{display:none}html[data-layout=portrait] .shell .bottom-bar .desktop-only{display:none}html[data-layout=portrait] .shell .footer-status{font-size:9px}html[data-layout=portrait] .game-cover{border-radius:10px}html[data-layout=portrait] .game-cover-bar{padding:16px;gap:12px;flex-wrap:wrap}html[data-layout=portrait] .game-cover-actions{gap:7px}html[data-layout=portrait] .game-cover-actions>a,html[data-layout=portrait] .game-cover-actions>button{font-size:12px}
@media(min-width:640px){.portrait-shell{border-left:1px solid #d8cba328;border-right:1px solid #d8cba328}.portrait-shell .play-page{padding:22px 24px 14px}.portrait-band h1{font-size:27px}.portrait-stats button{min-height:81px}.portrait-stats strong{font-size:32px}.portrait-stats button:first-child strong{font-size:32px}.portrait-fixture{min-height:210px}.portrait-fixture-copy{padding:26px 22px 15px}.portrait-fixture h2{font-size:33px}.portrait-fixture p{font-size:14px}.portrait-tile>strong{font-size:29px}.portrait-tile>small{font-size:11px}.portrait-tile>span{font-size:9px}.portrait-player{grid-template-columns:35px minmax(0,1fr) 48px 42px 42px;min-height:62px}.roster-name strong{font-size:14px}.roster-name small{font-size:10px}.roster-columns{grid-template-columns:minmax(0,1fr) 50px 44px 44px}.roster-meter{font-size:12px;width:33px;min-height:27px}}
@media(max-width:359px){.portrait-shell .play-page{padding:14px 10px}.portrait-shell .play-header{padding-right:10px;padding-left:10px;gap:6px}.portrait-shell .play-brand{font-size:8px}.portrait-shell .play-brand small{font-size:15px}.portrait-shell .play-office{width:34px}.portrait-stats strong,.portrait-stats button:first-child strong{font-size:22px}.portrait-tile>strong{font-size:21px}.portrait-tile>span{font-size:7px}.band-ribbon h1{font-size:20px}.portrait-player{grid-template-columns:26px minmax(0,1fr) 32px 29px 29px;gap:3px;padding-right:4px}.portrait-player .portrait.small{width:25px;height:34px}.roster-name strong{font-size:11px}.roster-name small{font-size:7px}.roster-meter{width:26px;font-size:9px}.roster-rating{font-size:18px}.portrait-shell .play-games{grid-template-columns:1fr}html[data-layout=portrait] .offer-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.portrait-shell *{scroll-behavior:auto}.portrait-shell .venue-photo{animation:none}.performance-venue{transition:none}}

.portrait-title{color:var(--ink)}.portrait-title p{color:var(--muted)}.portrait-shell .portrait-title{color:#fff5e7}.portrait-shell .portrait-title p{color:#c8d1d2}
.portrait-directory{display:grid;gap:7px}.directory-band{display:flex;align-items:center;gap:10px;min-height:79px;text-align:left;padding:12px 10px;background:var(--panel);border:1px solid var(--line);border-radius:7px;min-width:0}.directory-band>.band-avatar,.directory-band>.band-crest{width:36px;height:36px;flex-shrink:0}.directory-band>span:nth-child(2){flex:1;min-width:0}.directory-band>span>strong{display:block;font-size:13px;line-height:1.2}.directory-band>span>small{display:block;font-size:9px;color:var(--muted);line-height:1.4;margin-top:4px}.directory-band .directory-price{width:78px;flex-shrink:0;text-align:right}.directory-band .directory-price small{font-size:7px;letter-spacing:.2px}.directory-band .directory-price strong{font-size:14px;color:var(--green);margin-top:5px}.directory-band.owned{border-color:var(--gold);box-shadow:inset 3px 0 var(--gold)}
.portrait-shell .programme-grid,.portrait-shell .registry-grid,.portrait-shell .finance-grid,.portrait-shell .club-grid{grid-template-columns:1fr}.portrait-shell .play-page>.data-foot{color:#c8d1d2}.portrait-shell .play-page>.data-foot .text-btn{color:#e5c17e}.portrait-shell .play-page>.small.muted{color:#c8d1d2}.portrait-shell .play-page>.contract-strip{background:var(--panel);padding:15px;border-radius:7px}.portrait-shell .staff-card{display:grid;grid-template-columns:65px minmax(0,1fr);gap:0 14px;padding:18px}.portrait-shell .staff-card .portrait{width:65px;grid-row:1/5}.portrait-shell .staff-card h3{margin-top:0;font:800 19px system-ui,sans-serif}.portrait-shell .staff-card .row{grid-column:1/-1;margin:15px 0 10px;gap:10px}.portrait-shell .staff-card .row button{min-height:44px;width:100%}.portrait-shell .staff-card .fee{margin-left:0}.portrait-shell .staff-card>a{grid-column:1/-1;font-size:10px;min-height:35px;align-content:center}.portrait-shell .staff-card>.badge{justify-self:start;margin:3px 0}.portrait-shell .staff-card p{min-height:0;margin:5px 0}

/* Event line-up, reserves and the youth pathway. */
.roster-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:16px 0}.roster-tabs button{min-height:46px;padding:9px 6px;font-size:12px;white-space:normal}
.reserve-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.reserve-card{min-width:0;padding:18px;border:1px solid var(--line);border-radius:9px;background:var(--panel);overflow-wrap:anywhere}.reserve-card>.row{align-items:center}.reserve-card h3{font-size:16px}.reserve-card h3 button{min-height:34px;text-align:left}.reserve-card p{font-size:12px;color:var(--muted);line-height:1.7}.reserve-card>.row.wrap{margin-top:14px}.reserve-card>.primary{min-height:44px}.reserve-list>.empty{grid-column:1/-1}
.reserve-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}.reserve-stats small{display:block;color:var(--muted);font-size:9px}.reserve-stats strong{display:block;font-size:17px;margin-top:3px}.report-lineup{margin:16px 0;text-align:left;border:1px solid var(--line);border-radius:8px;padding:12px}.report-lineup summary{cursor:pointer;min-height:32px;font-weight:700}.report-lineup>div{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:8px 0;font-size:12px}.report-lineup span{color:var(--muted)}
@media(max-width:640px){.reserve-list{grid-template-columns:1fr}.reserve-card{padding:16px}.reserve-card>.row.wrap>*{flex:1;min-height:44px}.report-lineup>div{font-size:11px}.roster-tabs button{font-size:11px}}
