@font-face{font-family:Barlow;src:url('../assets/barlow-condensed-700.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--bg:var(--theme-bg,#f2f4f6);--paper:#ffffff;--ink:#191f28;--muted:#56616e;--green:var(--theme-primary);--line:#e5e8eb;--accent:var(--theme-primary);font-family:'Apple SD Gothic Neo','Malgun Gothic',Arial,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.48}button{color:inherit}a{color:var(--green)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1.2px;line-height:1.4}h2{font-size:19px;letter-spacing:-.5px;line-height:1.5}h3{font-size:15px}p{line-height:1.8}button{border:0;background:none}svg.icon{width:20px;height:20px;flex-shrink:0}small{font-size:12px}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip-link:focus{position:fixed;z-index:20;background:white;padding:12px}.brand{display:flex;gap:10px;align-items:center;font-weight:800;font-size:23px;letter-spacing:-1px}.brand>.icon{width:31px;height:31px}.brand small{display:block;font-size:9px;letter-spacing:2.2px;margin-top:4px}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;position:fixed;inset:0 auto 0 0;background:var(--green);color:#f2f4f6;padding:32px 24px;display:flex;flex-direction:column}.sidebar nav{margin-top:55px;display:grid;gap:9px}.nav-item{display:flex;align-items:center;gap:13px;text-align:left;min-height:46px;padding:11px 13px;border-radius:4px;font-size:14px;color:inherit}.sidebar .nav-item{color:#c3d2c7}.nav-item.active{background:#ffffff16;color:#fff}.sidebar .nav-item.active{box-shadow:inset 3px 0 #e4b56e}.nav-item:hover{background:#ffffff0b}.sidebar-bottom{margin-top:auto;padding-top:40px;font-size:11px;color:#baccc1}.save-dot{display:inline-block;width:6px;height:6px;background:#adcd9b;border-radius:50%;margin-right:7px}.sidebar-bottom button{display:flex;gap:8px;align-items:center;margin-top:16px;padding:0;font-size:12px}.sidebar-bottom p{margin-top:32px;color:#91aca0;line-height:1.9}.workspace{margin-left:220px;width:calc(100% - 220px)}.topbar{height:83px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px}.season-label{font-weight:700;font-size:14px}.season-label span{font-weight:400;font-size:12px;color:var(--muted);margin-left:16px;padding-left:16px;border-left:1px solid var(--line)}.quiet-button,.text-button{display:inline-flex;align-items:center;gap:8px;padding:10px 0;font-size:12px}.quiet-button{color:var(--muted)}.text-button{font-weight:700}.mobile-brand,.mobile-nav{display:none}main{max-width:1440px;margin:auto;padding:36px 42px 50px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:30px}.page-heading p{font-size:13px;color:var(--muted);margin-top:7px}.career-grid{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:28px;align-items:start}.career-main{min-width:0}.next-season{background:var(--green);color:var(--paper);padding:28px 30px 30px;border-radius:5px;position:relative;overflow:hidden}.season-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.status-badge{font-size:11px;font-weight:700;display:inline-flex;padding:6px 9px;border:1px solid currentColor;border-radius:3px}.next-season .status-badge{color:#d4dfca}.season-year{font:700 44px/1 Barlow,sans-serif;color:#8aa899}.next-season h2{font-size:25px;letter-spacing:-.8px}.next-season p{font-size:13px;color:#c5d4c9;margin-top:12px;max-width:470px}.season-action{display:flex;gap:18px;align-items:center;margin-top:26px}.season-action>span{font-size:10px;color:#a7c1b2}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:12px 19px;border-radius:3px;font-size:13px;font-weight:700}.primary{background:var(--green);color:#fff}.next-season .primary{background:#e7bd83;color:#233c2f}.primary:hover:not(:disabled){filter:brightness(1.12)}.secondary{background:var(--paper);border:1px solid var(--line)}.secondary:hover:not(:disabled){border-color:var(--green)}.dossier{background:#ffffff;border:1px solid #d2d9c9;border-radius:5px;text-align:center;padding:22px 22px 0;position:relative;overflow:hidden}.dossier-top{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.jersey-number{font:700 122px/1 Barlow,sans-serif;margin:19px 0 0;position:relative;z-index:1;color:var(--green)}.diamond{width:100%;height:auto}.dossier>.diamond{margin-top:-66px;opacity:.6;margin-bottom:0}.dossier h2{font-size:24px;margin-top:-5px;position:relative}.dossier>p{font-size:12px;color:var(--muted);margin-top:3px}.dossier-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:24px -5px}.dossier-stats div+div{border-left:1px solid #c9d1c1}.dossier-stats strong{display:block;font:700 32px Barlow,sans-serif}.dossier-stats span{font-size:10px;color:var(--muted)}.dossier-link{border-top:1px solid #c9d1c1;display:flex;align-items:center;justify-content:space-between;width:calc(100% + 44px);margin-left:-22px;padding:17px 22px;font-size:12px;font-weight:700}.empty-start,.season-summary{margin-top:26px;padding:25px 0;border-bottom:1px solid var(--line)}.empty-start p,.summary-text{font-size:13px;color:var(--muted);margin-top:12px}.journey{display:flex;align-items:center;margin-top:28px;font-size:11px;color:var(--muted)}.journey i{flex:1;height:1px;background:var(--line);margin:0 12px}.journey .current{color:var(--green);font-weight:700}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.section-heading>span{font-size:10px;color:var(--muted)}.news-section{margin-top:28px}.news-row{display:flex;gap:22px;padding:18px 0;border-bottom:1px solid var(--line)}.news-row>span{font:700 19px Barlow;color:var(--muted)}.news-row h3{line-height:1.5}.news-row p{font-size:12px;color:var(--muted);margin-top:5px}.empty-text{font-size:13px;color:var(--muted);padding:20px 0}.app-footer{display:flex;justify-content:space-between;padding:23px 42px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.summary-caption{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--muted)}.summary-caption strong{font:700 27px Barlow;color:var(--green)}.growth{margin-left:auto}.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);margin:20px 0;gap:10px}.stat-strip div+div{border-left:1px solid var(--line);padding-left:18px}.stat-strip dt{font-size:11px;color:var(--muted)}.stat-strip dd{font:700 35px/1.3 Barlow,sans-serif;margin:6px 0 0;font-variant-numeric:tabular-nums}.highlights{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:8px}.highlights li{font-size:12px;display:flex;gap:8px;align-items:center}.highlights .icon{width:15px;height:15px}.injury-note{font-size:12px;color:#985033;margin-top:9px}.decision-panel{border-radius:0;background:var(--paper);border-top:4px solid var(--accent);padding:25px 28px 28px;box-shadow:0 3px 14px #20382c05}.decision-panel .status-badge{color:#9e4a2b}.decision-panel h2{font-size:24px;margin-top:18px}.decision-panel>p{color:var(--muted);font-size:13px;margin-top:10px}.choice-list{display:grid;gap:10px;margin-top:23px}.choice{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);padding:17px;text-align:left;background:var(--bg);border-radius:3px}.choice:hover{border-color:var(--green)}.choice strong{font-size:14px}.choice small{display:block;margin-top:7px;line-height:1.6;color:var(--muted)}.player-layout{display:grid;grid-template-columns:270px 1fr;gap:40px;align-items:start}.attribute-section,.details-section{padding:0 0 25px}.attribute-row{display:flex;align-items:center;gap:16px;margin:21px 0;font-size:13px}.attribute-row>span{width:45px}.attribute-row strong{width:25px;text-align:right;font:700 24px Barlow}.attribute-track{flex:1;height:7px;background:#dce1d6}.attribute-track span{display:block;height:100%;background:var(--green)}.quiet-copy{font-size:12px;color:var(--muted);line-height:1.8;margin:16px 0}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.detail-list div{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;font-weight:700}.career-totals{background:#ffffff;padding:20px 25px;margin-bottom:30px}.career-totals h2{font-size:13px}.career-totals .stat-strip{margin-bottom:0}.record-toolbar{display:flex;justify-content:space-between;align-items:center;margin:20px 0}.record-toolbar label{font-size:12px}.record-toolbar select{margin-left:8px}.table-scroll{overflow:auto;width:100%;border-bottom:1px solid var(--line)}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}th,td{padding:15px 12px;text-align:right;border-bottom:1px solid var(--line)}thead th{background:#f2f4f6;font-size:10px;color:var(--muted)}th:first-child,td:first-child,th:nth-child(2),td:nth-child(2){text-align:left}tbody th{font-weight:600}.table-empty{text-align:center!important;padding:50px 20px;color:var(--muted);line-height:2}.awards-section{margin-top:35px}.awards{list-style:none;padding:0}.awards li{padding:13px 0;border-bottom:1px solid var(--line);display:flex;gap:16px;font-size:13px}.awards li span{color:var(--muted)}.awards .icon{color:#ab7339}.league-columns{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:30px}.league-columns>section{min-width:0}.team-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--team-color);margin-right:7px}.my-team{background:var(--theme-soft)}.club-directory{padding-left:24px;border-left:1px solid var(--line)}.club-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.team-monogram{font-size:11px;font-weight:800;color:var(--team-color);width:40px;text-align:center}.club-row h3{font-size:12px}.club-row p{font-size:10px;color:var(--muted);margin-top:2px}.champion{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;background:#ffffff;padding:18px;margin-top:20px}.roster-section{margin-top:40px;border-top:1px solid var(--line);padding-top:25px}.roster-section>p{font-size:13px;color:var(--muted)}.search-label{display:block;font-size:12px;margin:20px 0;max-width:400px}.search-label input{display:block;width:100%;margin-top:8px}.roster-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0 20px}.roster-grid>div{padding:13px 0;border-bottom:1px solid var(--line)}.roster-grid strong{font-size:13px}.roster-grid span{display:block;font-size:11px;color:var(--muted);margin-top:6px}.shop-intro{padding:25px;background:#ffffff}.shop-intro p{font-size:13px;color:var(--muted);margin-top:7px}.shop-intro .status-badge{margin-top:12px}.shop-row{display:grid;grid-template-columns:55px 1fr auto;gap:20px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line)}.shop-index{font:700 37px Barlow;color:#93a393}.shop-row p{font-size:13px;color:var(--muted);margin-top:6px}.shop-effect{display:block;font-size:11px;margin-top:9px;color:var(--green)}.shop-buy{text-align:right;display:grid;gap:10px}.shop-buy>strong{font-size:13px}.purchase-history{margin-top:30px}.purchase-history>p{font-size:13px;margin-top:12px}.info-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:45px}.info-layout h2{margin:25px 0 14px}.info-layout h2:first-child{margin-top:0}.info-layout p,.info-layout dd,.help-steps{font-size:13px;color:var(--muted);line-height:1.9}.explanation-list>div{padding:18px 0;border-bottom:1px solid var(--line)}.explanation-list dt{font-size:14px;font-weight:700;margin-bottom:9px}.explanation-list dd{margin:0}.help-steps{padding-left:20px}.help-steps li{margin:10px 0}.sources{border-left:1px solid var(--line);padding-left:25px}.sources a{display:block;text-decoration:none;padding:17px 0;border-bottom:1px solid var(--line)}.sources strong{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.6}.sources a span{font-size:11px;color:var(--muted);display:block;line-height:1.7;margin-top:7px}.sources>p{font-size:11px;margin-top:20px}.retirement{text-align:center;padding:30px;background:var(--paper)}.retirement-number{font:700 100px Barlow;color:var(--green)}.retirement h2{font-size:27px}.retirement>p{font-size:13px;color:var(--muted)}.retirement-copy{margin:30px 0}.button-row{display:flex;gap:12px;flex-wrap:wrap}.retirement .button-row{justify-content:center;margin:20px 0}.onboarding{max-width:1500px;margin:auto;min-height:100vh;display:flex;flex-direction:column}.onboarding>header{padding:28px 6%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.onboard-tools{display:flex;gap:25px}.onboard-main{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0;width:100%;flex:1;max-width:none}.onboard-story{background:var(--green);color:var(--paper);padding:56px 12%;position:relative;overflow:hidden;min-height:650px}.wordmark{font:700 clamp(70px,7.3vw,110px)/.9 Barlow,sans-serif;letter-spacing:-1px}.wordmark span{color:#e4b56e}.onboard-story h1{font-size:27px;line-height:1.55;margin-top:30px;letter-spacing:-1px}.onboard-story>p{font-size:13px;line-height:1.9;color:#c1d0c4;margin-top:16px}.story-diamond{position:absolute;width:310px;right:-65px;bottom:50px;color:#c6d7ba;transform:rotate(-8deg);opacity:.4}.story-bottom{position:absolute;bottom:35px;left:12%;right:12%;display:flex;justify-content:space-between;font-size:10px;color:#b6c9b9;border-top:1px solid #ffffff25;padding-top:18px}.setup-panel{padding:50px 12% 25px;display:flex;flex-direction:column;justify-content:center}.setup-progress{display:flex;justify-content:space-between;margin-bottom:35px;gap:12px}.setup-progress span{font-size:10px;color:#6b7684;display:flex;align-items:center;gap:6px;white-space:nowrap}.setup-progress b{display:flex;width:22px;height:22px;align-items:center;justify-content:center;border:1px solid #bcc7b9;border-radius:50%;font-size:10px}.setup-progress .done{color:var(--green)}.setup-progress .done b{background:var(--green);color:white;border-color:var(--green)}.setup-panel h2{font-size:23px;letter-spacing:-.8px}.setup-panel form>p{font-size:12px;color:var(--muted);margin:10px 0 24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px 16px}.form-grid label{font-size:12px;font-weight:700}.full{grid-column:1/-1}input,select{border:1px solid #cbd2c4;border-radius:3px;background:var(--paper);color:var(--ink);min-height:44px;padding:11px 12px;font-size:13px;max-width:100%}.form-grid input,.form-grid select{display:block;width:100%;margin-top:8px}.setup-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:30px}.setup-actions>span{font-size:10px;color:var(--muted)}.setup-footnote{font-size:10px;text-align:center;color:var(--muted);margin-top:25px}.setup-panel .form-error{color:#a33e28;margin:12px 0 0}.position-grid,.style-options{border:0;margin:0;padding:0;display:grid;gap:10px}.position-grid{grid-template-columns:repeat(4,1fr)}.position-option{position:relative;display:flex;flex-direction:column;text-align:center;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--paper);height:90px;cursor:pointer;border-radius:3px}.position-option input,.style-option input{position:absolute;opacity:0;width:100%;height:100%;margin:0;inset:0;cursor:pointer}.position-option:focus-within,.style-option:focus-within{outline:2px solid var(--accent)}.position-option strong{font:700 30px Barlow}.position-option span{font-size:11px;margin-top:5px;color:var(--muted)}.position-option.selected,.style-option.selected{border-color:var(--green);background:var(--theme-soft);box-shadow:inset 0 0 0 1px var(--green)}.position-note{font-size:12px;color:var(--muted);line-height:1.8;margin-top:20px}.style-option{position:relative;display:flex;align-items:center;justify-content:space-between;padding:16px;border:1px solid var(--line);border-radius:3px;background:var(--paper);cursor:pointer}.style-option strong{font-size:13px}.style-option small{display:block;color:var(--muted);font-size:11px;margin-top:6px}.style-option .icon{opacity:0}.style-option.selected .icon{opacity:1}.creation-summary{display:flex;flex-direction:column;gap:7px;margin-top:22px;font-size:12px}.creation-summary span{color:var(--muted);font-size:11px}.onboard-footer{display:flex;justify-content:space-between;gap:20px;padding:20px 6%;font-size:10px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);padding:26px;width:480px;max-width:calc(100% - 32px);max-height:85vh}dialog::backdrop{background:#0d2d2680;backdrop-filter:blur(3px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.icon-button{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.dialog-header h2{font-size:21px}dialog>p{font-size:13px;color:var(--muted);margin-bottom:22px}.settings-actions{display:grid}.setting-row{position:relative;display:block;text-align:left;padding:17px 30px 17px 0;border-top:1px solid var(--line)}.setting-row strong{display:block;font-size:13px}.setting-row span{display:block;font-size:11px;color:var(--muted);margin-top:6px}.setting-row>.icon{position:absolute;right:0;top:23px}.danger strong{color:#a1442e}.archive-list>div{display:grid;grid-template-columns:1fr auto;gap:7px;padding:15px 0;border-bottom:1px solid var(--line)}.archive-list span{grid-column:1;font-size:12px;color:var(--muted)}.archive-list button{grid-column:2;grid-row:1/3}.error-banner{padding:15px;background:#f6e1d2;border:1px solid #c58259;font-size:12px;margin-bottom:20px;line-height:1.7}.error-banner button{text-decoration:underline;font-weight:700}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#333d4b;color:white;padding:14px 22px;border-radius:4px;box-shadow:0 6px 24px #0002;z-index:30;font-size:13px;max-width:calc(100% - 30px);transition:opacity .2s,transform .2s}#toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1600px){.onboard-main{min-height:740px}.onboard-story{padding-top:75px}}@media(max-width:1150px){.sidebar{width:185px;padding:28px 17px}.workspace{margin-left:185px;width:calc(100% - 185px)}main{padding:30px 25px}.topbar{padding:0 25px}.career-grid{grid-template-columns:minmax(0,1fr) 230px;gap:20px}.season-action{align-items:start;flex-direction:column;gap:12px}.league-columns,.info-layout{grid-template-columns:1fr}.club-directory,.sources{border-left:0;padding-left:0;margin-top:15px}.club-directory{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.club-directory h2{grid-column:1/-1}.setup-panel{padding:40px 8%}.onboard-story{padding-left:10%;padding-right:10%}.setup-progress span{font-size:9px}.page-heading h1{font-size:26px}}
@media(max-width:800px){.sidebar{display:none}.workspace{margin:0;width:100%}.topbar{height:74px;padding:0 20px}.mobile-brand{display:block}.mobile-brand .brand{font-size:20px}.mobile-brand .brand small{font-size:8px}.season-label{display:none}.mobile-nav{display:flex;overflow:auto;padding:7px 10px;border-bottom:1px solid var(--line);gap:2px}.mobile-nav .nav-item{flex:1;min-width:66px;gap:4px;justify-content:center;flex-direction:column;font-size:10px;padding:6px 8px}.mobile-nav .nav-item.active{background:#e1e7d8;color:var(--green);border-radius:4px}.mobile-nav .icon{width:18px;height:18px}main{padding:26px 20px 35px}.career-grid{grid-template-columns:minmax(0,1fr) 220px}.next-season{padding:23px}.page-heading h1{font-size:24px}.onboarding>header{padding:22px 5%}.onboard-main{grid-template-columns:1fr}.onboard-story{min-height:0;padding:32px 7% 38px}.wordmark{font-size:61px}.onboard-story h1{font-size:23px;margin-top:22px}.onboard-story>p{font-size:12px}.story-diamond{right:4%;bottom:15px;width:260px}.story-bottom{display:none}.setup-panel{padding:32px 7%}.setup-progress{margin-bottom:28px;justify-content:flex-start;gap:24px}.setup-progress span{font-size:11px}.setup-panel h2{font-size:23px}.onboard-footer{font-size:9px;line-height:1.8}.player-layout{grid-template-columns:220px 1fr;gap:25px}.detail-list{grid-template-columns:1fr}.roster-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.career-grid,.player-layout{grid-template-columns:1fr}.career-grid>.dossier{margin-top:5px}.dossier{padding-top:18px}.dossier .jersey-number{font-size:85px;margin-top:10px}.dossier>.diamond{display:none}.dossier h2{margin-top:5px}.dossier-stats{margin:18px 0}.dossier-link{padding:14px 22px}.page-heading{align-items:flex-start;flex-direction:column;gap:14px;margin-bottom:23px}.page-heading h1{font-size:24px;letter-spacing:-.8px}.page-heading p{font-size:12px}.next-season h2{font-size:23px}.next-season{padding:22px}.season-top{margin-bottom:18px}.season-year{font-size:37px}.season-action{gap:12px}.season-action>.primary{width:100%}.stat-strip{gap:5px}.stat-strip div+div{padding-left:10px}.stat-strip dd{font-size:31px}.stat-strip dt{font-size:10px}.section-heading h2{font-size:17px}.section-heading>.text-button{font-size:10px;white-space:nowrap}.summary-caption{flex-wrap:wrap}.growth{margin-left:0}.decision-panel{padding:22px 19px}.decision-panel h2{font-size:23px}.choice{padding:15px 13px}.app-footer{padding:20px;font-size:9px}.club-directory{grid-template-columns:1fr}.club-directory h2{grid-column:auto}.roster-grid{grid-template-columns:repeat(2,1fr)}.shop-row{grid-template-columns:30px 1fr;gap:14px}.shop-index{font-size:30px;align-self:start}.shop-buy{grid-column:2;display:flex;align-items:center;justify-content:space-between;margin-top:5px}.shop-row h2{font-size:18px}.shop-row p{font-size:12px}.onboard-tools{gap:14px}.onboard-tools button{font-size:10px}.onboarding .brand{font-size:20px}.onboarding .brand>.icon{width:26px;height:26px}.onboarding .brand small{font-size:8px}.wordmark{font-size:60px}.story-diamond{right:-50px;width:220px;bottom:20px;opacity:.25}.onboard-story h1{font-size:22px}.onboard-story>p{position:relative;z-index:1}.setup-progress{gap:15px;justify-content:space-between}.setup-progress span{font-size:10px;gap:5px}.setup-panel h2{font-size:22px}.setup-panel form>p{font-size:12px}.position-grid{grid-template-columns:repeat(4,1fr);gap:8px}.position-option{height:80px}.setup-actions{margin-top:25px}.setup-actions>.primary{padding:12px 15px}.onboard-footer{align-items:start}.onboard-footer>span:first-child{white-space:nowrap}.onboard-footer>span:last-child{max-width:220px;text-align:right}.record-toolbar h2{font-size:17px}.info-layout{gap:20px}.retirement{padding:25px 18px}.retirement .button-row{flex-direction:column}.news-row{gap:15px}#toast{font-size:12px;width:max-content;text-align:center}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.scouting-tools{border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:28px}.tool-grades{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:22px 0}.tool-grades>div{border-top:2px solid var(--green);padding-top:13px}.tool-grades span{display:block;font-size:12px}.tool-grades strong{display:block;font:700 39px Barlow;margin:8px 0}.tool-grades small{font-size:10px;color:var(--muted)}.scouting-intro p{font-size:13px;color:var(--muted);max-width:75ch;margin-top:12px}.scout-filters{display:flex;align-items:end;gap:16px;margin:28px 0 12px}.scout-filters label{display:flex;flex-direction:column;gap:8px;font-size:12px}.scout-filters label:last-child{flex:1;max-width:380px}.player-source{display:block;color:var(--muted);font-weight:400;margin-top:6px;font-size:10px}.calibration-summary{margin-top:30px;border-top:1px solid var(--line);padding-top:24px}.tournament-results{margin:22px 0}.tournament-results>div{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding:12px 0;font-size:12px;line-height:1.6}.tournament-results strong{white-space:nowrap}.tournament-results>.quiet-copy{margin:7px 0}.scouting-tools .quiet-copy{margin:10px 0}@media(max-width:600px){.tool-grades{gap:8px}.tool-grades strong{font-size:32px}.scout-filters{flex-wrap:wrap;gap:12px}.scout-filters label:last-child{flex:1 1 100%;max-width:none}.tournament-results>div{font-size:11px}}

.mobile-nav{position:relative}

/* Compact single-column career UI, independently implemented from observed layout. */
:root{--muted:#56616e;font-family:Pretendard,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;font-size:16px}
.app-shell{display:block;max-width:800px;margin:auto;min-height:100dvh}.workspace{margin:0;width:100%;padding-bottom:100px}.topbar{height:76px;padding:0 20px;border:0}.brand{font-size:20px;letter-spacing:-.5px}.brand small{display:none}.brand>.icon{width:24px;height:24px}.topbar .icon-button{color:#8b95a1}main{max-width:800px;padding:4px 20px 30px}.page-heading{margin:12px 0 22px}.page-heading h1,h1{font-size:20px;letter-spacing:-.5px}.page-heading p{font-size:13px}.bottom-nav{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:min(800px,100%);height:calc(80px + env(safe-area-inset-bottom));padding:10px 12px calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -4px 22px #191f2806}.bottom-nav .nav-item{flex-direction:column;justify-content:center;gap:7px;padding:4px;font-size:12px;color:#8b95a1}.bottom-nav .nav-item.active{color:var(--theme-primary);background:transparent}.bottom-nav .icon{width:23px;height:23px}.bottom-nav .nav-item:hover{background:#f2f4f6}.primary,.secondary{min-height:50px;border-radius:14px;font-size:15px}.primary{background:var(--theme-primary)}.primary:active,button:active{transform:scale(.985);transition:transform 90ms}.primary:hover:not(:disabled){filter:brightness(.97)}h2{font-size:18px}p{line-height:1.6}.home-player,.home-tasks,.news-card,.next-season,.decision-panel,.season-summary,.empty-start,.attribute-section,.details-section,.scouting-tools,.pitching-panel,.scouting-intro,.calibration-summary,.shop-intro,.retirement,.career-totals{background:#fff;border:0;border-radius:22px;padding:24px;margin:0 0 16px}.home-player-top{display:flex;align-items:center;gap:16px}.player-badge{width:62px;height:72px;border-radius:18px;background:var(--theme-soft);display:grid;place-content:center;justify-items:center;color:var(--theme-primary)}.player-badge svg{width:25px;height:25px}.player-badge b{font-size:20px}.player-identity{flex:1;min-width:0}.player-identity h1{font-size:20px}.player-identity p{font-size:13px;color:#6b7684;margin:5px 0}.player-identity small{color:#8b95a1}.home-overall{text-align:right}.home-overall small{display:block;color:#8b95a1;font-size:11px}.home-overall strong{font-size:36px;letter-spacing:-1px}.home-overall>span{color:#f04452;font-size:14px;margin-left:5px}.home-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:25px;text-align:center}.home-metrics>div+div{border-left:1px solid #f2f4f6}.home-metrics strong{display:block;font-size:18px}.home-metrics strong small{font-size:10px}.home-metrics span{display:block;font-size:11px;color:#8b95a1;margin-top:7px}.home-tasks{padding:12px 20px}.home-tasks h2{font-size:16px;padding:10px 4px}.home-row{display:flex;align-items:center;width:100%;text-align:left;gap:13px;padding:18px 0;min-height:78px}.home-row+.home-row{border-top:1px solid #f2f4f6}.home-row>span:nth-child(2){flex:1;min-width:0}.home-row strong{display:block;font-size:15px;font-weight:600}.home-row small{display:block;font-size:12px;color:#8b95a1;line-height:1.5;margin-top:5px}.home-row>.icon{color:#b0b8c1;width:17px}.row-symbol{background:#f2f4f6;border-radius:12px;width:38px;height:38px;display:grid;place-items:center;color:#6b7684;flex-shrink:0}.home-advance{width:100%;height:56px;border-radius:16px;font-size:17px;margin-top:2px}.home-footnote{font-size:11px;color:#8b95a1;text-align:center;margin:14px 0 0}.career-grid,.player-layout,.league-columns,.info-layout{display:block}.career-grid>.dossier{display:none}.next-season{color:#191f28}.next-season h2{font-size:21px}.next-season p{color:#6b7684}.next-season .status-badge{color:var(--theme-primary);border:0;background:var(--theme-soft);border-radius:8px}.season-year{font:700 28px/1 inherit;color:#b0b8c1}.season-action{display:flex;flex-direction:column;align-items:stretch;gap:12px}.season-action>span{color:#8b95a1;text-align:center}.next-season .primary{background:var(--theme-primary);color:#fff;width:100%;height:56px;font-size:17px}.decision-panel h2{font-size:21px;margin:0}.choice{border-radius:14px;background:#f9fafb}.dossier{background:#fff;border:0;border-radius:22px;margin-bottom:16px;padding-top:20px}.dossier .jersey-number{font:700 48px/1.2 sans-serif;margin:12px 0;color:var(--theme-primary)}.dossier>.diamond{display:none}.dossier h2{font-size:20px;margin-top:6px}.dossier-stats strong{font:700 24px/1.4 sans-serif}.dossier-link{display:none}.dossier-stats div+div{border-color:#f2f4f6}.stat-strip dd{font:700 27px/1.3 sans-serif;letter-spacing:-.7px}.summary-caption strong{font:700 20px sans-serif}.news-row>span{font:600 14px sans-serif}.news-row:last-child{border:0}.news-section{padding:22px;background:#fff;border-radius:22px}.attribute-row strong{font:700 18px sans-serif}.attribute-track{background:#f2f4f6;border-radius:7px;overflow:hidden}.tool-grades strong{font:700 30px sans-serif}.tool-grades>div{border-top:0;background:#f9fafb;padding:14px 6px;text-align:center;border-radius:12px}.tool-grades{gap:8px}.tool-grades span{font-size:11px}.velocity-pair{display:flex;gap:32px;margin:24px 0}.velocity-pair span{display:block;font-size:13px;color:#6b7684}.velocity-pair strong{display:block;font-size:32px;margin-top:8px;letter-spacing:-1px;color:var(--theme-primary)}.velocity-pair small{font-size:13px;font-weight:400;color:#6b7684;letter-spacing:0}.pitch-list>div{display:grid;grid-template-columns:1.2fr 1fr .8fr .8fr;gap:8px;align-items:center;padding:15px 0;border-bottom:1px solid #f2f4f6;font-size:13px}.pitch-list small{color:#6b7684}.table-scroll{border-radius:14px;background:white}.club-directory,.sources{border:0;padding:20px 0}.club-directory{display:block}.shop-row{background:white;border-radius:22px;margin:14px 0;padding:22px;grid-template-columns:1fr auto}.shop-index{display:none}.info-layout>section,.sources{background:#fff;padding:24px;border-radius:22px;margin-bottom:16px}.onboarding{max-width:800px}.onboarding>header{height:76px;padding:0 20px;border:0}.onboard-main{display:block;padding:4px 20px 24px}.onboard-story{display:none}.setup-panel{background:#fff;border-radius:22px;margin:0;padding:28px 24px;min-height:460px}.setup-progress{justify-content:space-between}.setup-progress span{color:#8b95a1;font-size:11px}.setup-progress b{border-color:#d1d6db}.setup-panel h2{font-size:22px}.setup-actions .primary{min-width:120px}.onboard-footer{padding:20px;font-size:10px}.position-option,.style-option,input,select{border-radius:12px;border-color:#e5e8eb}.position-option strong{font:700 24px sans-serif}.position-option.selected,.style-option.selected{background:var(--theme-soft)}.style-option{padding:19px 16px}.style-option strong{font-size:15px}.style-option small{font-size:12px}.position-grid{gap:10px}.setup-footnote{margin-top:20px}dialog{border:0;border-radius:22px}dialog::backdrop{background:#191f2866}#toast{bottom:110px;border-radius:14px;background:#333d4b}.section-heading{gap:10px}.section-heading>.text-button{white-space:nowrap}.season-replay{position:fixed;z-index:40;inset:0;margin:auto;width:min(800px,100%);background:#fff;animation:panel-in 240ms ease-out}.replay-inner{height:100%;padding:110px 24px 24px;display:flex;flex-direction:column}.replay-inner h2{font-size:26px;line-height:1.38}.replay-phase{color:#6b7684;margin-top:12px;font-size:15px}.replay-progress{height:8px;background:#f2f4f6;border-radius:8px;overflow:hidden;margin-top:30px}.replay-fill{height:100%;background:var(--theme-primary);border-radius:8px;transition:width 60ms linear}.replay-count{font-size:14px;color:#8b95a1;margin-top:12px;text-align:right;font-variant-numeric:tabular-nums}.replay-feed{display:grid;gap:8px;margin-top:22px;overflow:auto}.replay-event{background:#f2f4f6;border-radius:14px;padding:11px 14px;font-size:15px;line-height:1.5;animation:event-in 250ms ease-out}.replay-skip{background:#f2f4f6;min-height:52px;border-radius:16px;margin-top:auto;color:#6b7684;flex-shrink:0}.replay-feed+.replay-skip{margin-top:auto}#main{animation:panel-in 240ms ease-out}@keyframes panel-in{from{opacity:0}to{opacity:1}}@keyframes event-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){main{padding:4px 16px 24px}.topbar{padding:0 18px;height:70px}.home-player{padding:22px 18px}.home-player-top{gap:12px}.player-badge{width:50px;height:62px}.home-overall strong{font-size:32px}.home-metrics strong{font-size:16px}.home-tasks{padding:12px 18px}.home-row{gap:10px}.home-row small{font-size:11px}.page-heading h1{font-size:20px}.season-summary,.next-season,.attribute-section,.details-section,.pitching-panel,.scouting-tools{padding:22px 18px}.stat-strip dd{font-size:24px}.stat-strip div+div{padding-left:8px}.velocity-pair{gap:25px}.velocity-pair strong{font-size:28px}.pitch-list>div{font-size:11px;gap:6px}.pitch-list small{font-size:10px}.tool-grades strong{font-size:25px}.tool-grades{gap:5px}.tool-grades>div{padding:12px 3px}.shop-buy{grid-column:auto;display:grid}.onboard-main{padding:4px 16px 20px}.setup-panel{padding:25px 20px}.setup-progress span{font-size:10px}.position-grid{gap:7px}.onboard-tools{gap:12px}.replay-inner{padding-top:100px}.home-row strong{font-size:14px}.detail-list{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.home-action-dock{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(800px,100%);padding:18px 20px 12px;background:linear-gradient(transparent,#f2f4f6 18px);z-index:9}.home-footnote{padding-bottom:90px}.result-continue{width:100%;min-height:56px}.season-year{font-family:inherit;font-size:28px;font-weight:700;line-height:1}.home-advance:active{transform:scale(.985)}@media(max-width:600px){.home-action-dock{padding-left:16px;padding-right:16px}}

.replay-description{font-size:13px;color:#8b95a1;margin-top:12px}.replay-feed{padding-bottom:20px}.replay-phase{font-weight:600;color:#333d4b;margin-top:28px}

/* Fit the available window; keep cards and fixed controls on the same width. */
:root{--app-width:1440px;--page-gutter:clamp(16px,2.5vw,36px)}
html,body,#app{width:100%;min-width:0}
.app-shell,.onboarding{width:100%;max-width:var(--app-width);margin-inline:auto}
.workspace{width:100%;min-width:0}
.topbar,.onboarding>header{padding-inline:var(--page-gutter)}
main,.onboard-main{width:100%;max-width:none;padding-inline:var(--page-gutter)}
#main>*{min-width:0;max-width:100%}
.bottom-nav,.home-action-dock,.season-replay{left:0;right:0;width:100%;max-width:var(--app-width);margin-inline:auto;transform:none}
.home-action-dock{padding-inline:var(--page-gutter)}
.home-player-top,.home-row,.section-heading,.page-heading,.record-toolbar,.summary-caption,.shop-row,.scout-filters{min-width:0}
.home-row>span,.choice>span,.news-row>div,.shop-row>div,.page-heading>div{min-width:0;overflow-wrap:anywhere}
.home-player h1,.player-identity p,.dossier h2,.detail-list dd{overflow-wrap:anywhere}
.table-scroll{max-width:100%;overscroll-behavior-x:contain}
.bottom-nav .nav-item{min-width:0}
.record-toolbar{gap:12px;flex-wrap:wrap}
.record-toolbar label{max-width:100%}
.detail-list>div{gap:14px}.detail-list dd{text-align:right}
.onboard-main{display:flex;justify-content:center;align-items:flex-start}
.setup-panel{width:100%;max-width:680px}
.replay-inner{max-width:800px;margin-inline:auto}
@media(min-width:960px){
 #main:has(>.home-player){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
 #main>.home-player,#main>.home-footnote,#main>.error-banner{grid-column:1/-1}
 #main>.home-tasks{margin:0}
 #main>.home-player{margin-bottom:0}
 .home-metrics{max-width:700px;margin-inline:auto}
 .player-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:22px;align-items:start}
 .league-columns{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start}
 .club-directory{margin:0;padding:0}
 .info-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}
 .sources{margin-top:0}
 .scout-filters label:last-child{max-width:520px}
}
@media(max-width:359px){
 .home-player-top{gap:9px}.player-badge{width:42px;height:58px}
 .player-identity h1{font-size:18px}.player-identity p{font-size:11px}
 .home-overall strong{font-size:27px}.home-overall small{font-size:10px}
 .home-metrics strong{font-size:14px}.home-metrics span{font-size:10px}
 .velocity-pair{gap:16px}.velocity-pair strong{font-size:25px}
 .pitch-list>div{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:7px}
 .pitch-list>div>span:nth-child(3),.pitch-list>div>small{color:var(--muted);font-size:11px}
 .onboard-tools{gap:8px}.onboarding .brand{font-size:17px}.onboarding .brand>.icon{width:20px}
 .setup-panel{padding-inline:16px}.setup-progress{gap:8px}.setup-progress span{font-size:9px}
 .setup-actions{gap:8px}.setup-actions>span{font-size:9px}.setup-actions .primary{min-width:100px}
}
/* Keep text readable on wide displays; reserve space for the stadium view. */
:root{--app-width:1040px;--page-gutter:clamp(16px,2vw,28px)}
.home-player-top{max-width:680px;margin-inline:auto}.home-metrics{max-width:680px}
.home-action-dock .primary{max-width:680px;margin-inline:auto;display:flex}
@media(min-width:960px){#main:has(>.home-player){grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.player-layout{grid-template-columns:240px minmax(0,1fr)}.league-columns{grid-template-columns:minmax(0,1fr) 240px}.info-layout{grid-template-columns:minmax(0,1fr) 280px}}
.match-overlay{position:fixed;inset:0;z-index:50;background:var(--bg);overflow-y:auto;overscroll-behavior:contain;padding:24px max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom));animation:panel-in .24s ease-out}
.match-room{width:100%;max-width:900px;margin:auto}.match-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.match-header h1{font-size:22px;margin-top:5px}.match-kicker{font-size:10px;color:var(--theme-primary);font-weight:800;letter-spacing:1.3px}.match-exit{font-size:13px;color:#6b7684;padding:12px;border-radius:12px;background:white;flex-shrink:0}.match-scoreboard{display:grid;grid-template-columns:minmax(0,1fr) 130px minmax(0,1fr);align-items:center;background:#fff;border-radius:22px 22px 0 0;text-align:center;padding:20px}.match-scoreboard>div>span{font-size:15px;font-weight:600;overflow-wrap:anywhere}.match-scoreboard strong{display:block;font-size:42px;line-height:1.4;font-variant-numeric:tabular-nums}.match-scoreboard .batting{color:var(--theme-primary)}.match-period b{font-size:15px}.match-period small{display:block;font-size:11px;color:#8b95a1;margin-top:8px}.match-arena{position:relative;overflow:hidden;background:#e5efe9;border-radius:0 0 22px 22px}.match-field{display:block;width:100%;height:min(43vh,350px);min-height:210px}.outfield{fill:#bdd9c8}.infield{fill:#dfbe98}.grass{fill:#9fc7ad}.foul-line{stroke:#fff;stroke-width:2;fill:none}.field-bases{fill:white}.mound{fill:#dfbe98}.pitcher-figure,.batter-figure{stroke:#25374a;stroke-width:5;stroke-linecap:round;fill:#edc5a7}.pitcher-figure .uniform{fill:var(--theme-primary);stroke:var(--theme-primary)}.batter-figure .uniform{fill:#f56c63;stroke:#f56c63}.pitcher-arm{transform-origin:247px 203px}.batter-bat{stroke:#9e6634;stroke-width:5;transform-origin:222px 300px}.pitch-ball,.hit-ball{fill:#fff;stroke:#a2aab2;stroke-width:1;opacity:0}.fielders{fill:var(--theme-primary);stroke:#fff;stroke-width:2}.match-situation{position:absolute;left:18px;top:14px;display:flex;gap:20px;align-items:center;font-size:11px;font-weight:700;color:#345342}.base-indicators{display:flex;gap:6px}.base-indicators i{width:10px;height:10px;border:1px solid #6b8d78;transform:rotate(45deg)}.base-indicators i.occupied{background:#f5b747;border-color:#c38d24}.pitch-speed{position:absolute;right:18px;bottom:16px;font-size:25px;font-weight:800;color:#25374a}.pitch-speed small{font-size:11px;font-weight:500}.match-commentary{padding:20px 0 16px;min-height:92px}.match-commentary strong{font-size:18px}.match-commentary p{font-size:12px;color:#6b7684;margin-top:8px}.match-controls{display:flex;gap:10px}.match-controls>.primary{flex:1;min-height:54px}.match-note{margin-top:18px;font-size:11px;color:#6b7684}.match-note p{margin-top:10px;max-width:75ch}.is-playing .pitcher-arm{animation:throw-arm 1s ease-in-out}.is-playing .pitch-ball{animation:throw-ball 1.15s linear forwards}.is-playing .batter-bat{animation:swing-bat .45s .9s ease-in-out}.is-playing.contact .hit-ball{animation:hit-ball .8s 1.1s ease-out forwards}.is-playing.ball-out .hit-ball{animation:ground-ball .8s 1.1s ease-out forwards}
@keyframes throw-arm{0%{transform:rotate(0)}40%{transform:rotate(-100deg)}75%,100%{transform:rotate(40deg)}}@keyframes throw-ball{0%,55%{opacity:0;transform:translateY(0)}56%{opacity:1;transform:translateY(0)}99%{opacity:1;transform:translateY(113px)}100%{opacity:0;transform:translateY(113px)}}@keyframes swing-bat{0%{transform:rotate(0)}65%,100%{transform:rotate(135deg)}}@keyframes hit-ball{0%{opacity:1;transform:translate(0,0)}100%{opacity:1;transform:translate(100px,-260px)}}@keyframes ground-ball{0%{opacity:1;transform:translate(0,0)}100%{opacity:1;transform:translate(-75px,-130px)}}
@media(max-width:600px){.match-overlay{padding-top:18px}.match-header h1{font-size:18px}.match-exit{font-size:11px;padding:10px}.match-scoreboard{padding:16px 12px;grid-template-columns:minmax(0,1fr) 95px minmax(0,1fr)}.match-scoreboard>div>span{font-size:12px}.match-scoreboard strong{font-size:34px}.match-period b{font-size:13px}.match-period small{font-size:10px}.match-commentary strong{font-size:16px}.match-controls .secondary{font-size:12px;padding-inline:12px}.match-field{height:32vh;min-height:200px}}
/* The generic main-child rule must not expand the creation form. */
.onboarding{max-width:760px}#main>.setup-panel{max-width:640px}

.is-playing.outcome-single .hit-ball{animation:single-hit .8s 1.1s ease-out forwards}.is-playing.outcome-double .hit-ball{animation:double-hit .8s 1.1s ease-out forwards}.match-scoreboard strong{animation:score-pop .25s ease-out}@keyframes single-hit{from{opacity:1;transform:translate(0,0)}to{opacity:1;transform:translate(55px,-165px)}}@keyframes double-hit{from{opacity:1;transform:translate(0,0)}to{opacity:1;transform:translate(-145px,-220px)}}@keyframes score-pop{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
/* One persistent career path; optional information never replaces its next action. */
#main:has(.flow-dock){padding-bottom:150px}
.flow-context{color:var(--muted);font-size:13px;margin-bottom:16px}
.flow-progress{display:flex;gap:8px;padding:0;margin:0 0 24px;list-style:none;color:var(--muted);font-size:13px}
.flow-progress li{flex:1;border-bottom:2px solid var(--line);padding-bottom:10px;text-align:center}
.flow-progress [aria-current]{color:#1768cc;border-color:var(--theme-primary);font-weight:700}
.flow-card{background:white;border-radius:22px;padding:24px;display:grid;gap:20px}
.flow-card details{border-top:1px solid var(--line);padding-top:18px}
.flow-card summary{cursor:pointer;min-height:44px;display:list-item;font-size:14px;color:var(--muted)}
.flow-card details[open]>summary{margin-bottom:16px}
.flow-card .season-summary{padding:0;border:0;margin:0}
.flow-next{font-weight:700}
.flow-choices{border:0;padding:0;margin:0;display:grid;gap:12px}
.flow-choices legend{font-size:14px;color:var(--muted);margin-bottom:14px}
.flow-choice{display:flex;gap:14px;align-items:flex-start;background:#fff;border:2px solid transparent;border-radius:16px;padding:20px;cursor:pointer}
.flow-choice:has(:checked){border-color:var(--theme-primary);background:var(--theme-soft)}
.flow-choice input{margin-top:5px;accent-color:var(--theme-primary);flex-shrink:0;width:18px;height:18px}
.flow-choice strong,.flow-choice small{display:block}.flow-choice small{line-height:1.7;color:var(--muted);margin-top:8px}
.flow-dock{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom));left:0;right:0;margin-inline:auto;max-width:var(--app-width);padding:12px var(--page-gutter);background:var(--bg);z-index:9;border-top:1px solid var(--line)}
.flow-dock p{font-size:12px;color:var(--muted);margin:0 auto 8px;max-width:680px;text-align:center}
.flow-dock .primary{display:flex;width:100%;max-width:680px;margin:auto;min-height:56px;font-size:16px}
#main:has(.flow-progress){max-width:800px}
@media(max-width:480px){.flow-choice{padding:16px}.flow-card{padding:20px}.flow-progress{font-size:12px}.flow-dock .primary{font-size:14px}}
.flow-milestones{padding:16px;background:var(--theme-soft);border-radius:12px;color:#174f91;font-weight:700}.flow-milestones p+p{margin-top:8px}
.flow-branch-note{margin-bottom:20px;padding:16px;background:var(--theme-soft);border-radius:12px;color:#174f91;font-size:14px}

.stat-detail{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px 12px;margin:12px 0 0;font-size:.85rem}.stat-detail div{display:flex;flex-direction:column}.stat-detail dt{color:var(--muted,#6b7684)}.stat-detail dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.level-note{margin:8px 0 0;font-size:.85rem;color:var(--muted)}
.rank-badges{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;list-style:none}.rank-badges li{padding:3px 10px;border-radius:999px;background:#eef3ff;color:var(--accent);font-size:.82rem;font-weight:700}.rank-badges li.first{background:var(--accent);color:#fff}
.team-line{margin:12px 0 0;font-weight:600}.honors-line{margin:6px 0 0}.honors-line strong{margin-right:6px;color:var(--accent)}
.leaderboard{margin-top:14px}.leader-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:8px}.leader-grid h3{margin:0 0 4px;font-size:.9rem}.leader-grid ol{margin:0;padding-left:18px;font-size:.82rem}.leader-grid li{display:flex;justify-content:space-between;gap:6px}.leader-grid li.me{color:var(--accent);font-weight:700}.my-rank{margin:2px 0 0;font-size:.8rem;color:var(--accent)}
.career-card{width:100%;max-width:360px;height:auto;aspect-ratio:4/5;display:block;margin:0 auto 12px;border-radius:16px;background:#0f1b3d}.hide-name{display:flex;gap:8px;align-items:center;justify-content:center;margin:8px 0}
.career-table table{width:100%;font-size:.85rem}.career-table tr.future td{color:var(--muted)}.career-table tr.current td{color:var(--accent);font-weight:700}
.profile-card{background:var(--paper);border-radius:22px;padding:20px;margin:12px 0 16px}.profile-top{display:flex;align-items:center;gap:14px}
.profile-avatar{width:72px;height:72px;flex:none;border-radius:16px;background:#f2f4f6;display:grid;place-content:center;justify-items:center;color:var(--accent)}.profile-avatar svg{width:24px;height:24px}.profile-avatar b{font-size:18px;color:var(--ink)}
.profile-meta{margin:0;font-size:13px;color:var(--muted)}.profile-meta .team-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--team-color);margin-right:4px}
.profile-ovr{margin:4px 0;font-size:22px;font-weight:800;letter-spacing:-.3px}.profile-sub{margin:0;font-size:12px;color:var(--muted)}.profile-sub .up{color:#f04452}.profile-sub .down{color:var(--accent)}
.profile-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 0 0;padding-top:14px;border-top:1px solid var(--line)}.profile-stats dt{font-size:12px;color:var(--muted)}.profile-stats dd{margin:6px 0 0;font-size:18px;font-weight:700}
.scout-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:16px 0 0}.scout-tiles.tiles-4{grid-template-columns:repeat(4,minmax(0,1fr))}.scout-tiles.tiles-6{grid-template-columns:repeat(6,minmax(0,1fr))}.scout-tile{position:relative;overflow:hidden;background:#f7f8fa;border-radius:14px;padding:12px 6px 14px;text-align:center}
.scout-tile span{display:block;font-size:12px;color:var(--ink)}.scout-tile strong{display:block;font-size:24px;font-weight:800;margin-top:4px}.scout-tile em{display:block;font-style:normal;font-size:11px;color:var(--muted);margin-top:2px}.scout-tile em.up{color:#f04452}.scout-tile em.down{color:var(--accent)}
.scout-tile .xp{position:absolute;left:0;bottom:0;height:3px;width:var(--xp);background:var(--accent);opacity:.55}.growth-notes{margin:10px 0 0;font-size:12px;color:var(--muted)}
@media (max-width:480px){.scout-tiles{gap:5px}.scout-tile strong{font-size:20px}}

.tool-row{padding:4px 0 10px;border-bottom:1px solid var(--line)}.tool-row:last-of-type{border-bottom:0}.tool-row .attribute-row{margin:14px 0 2px}.tool-row .attribute-row>span{width:56px;font-weight:700}
.tool-note{font-size:12px;color:var(--muted);margin:0 0 6px}
.detail-row{display:grid;grid-template-columns:72px 30px 1fr;align-items:baseline;gap:8px;padding:5px 0 5px 12px;font-size:13px}.detail-row strong{font:700 15px Barlow;text-align:right}.detail-row small{color:var(--muted);line-height:1.5}
@media (max-width:480px){.scout-tiles.tiles-6{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-row{grid-template-columns:64px 26px 1fr}}
.roll{display:grid;gap:10px;padding:18px;border-radius:16px;background:#f7f8fa;cursor:default}.roll.rolling{cursor:pointer}
.roll-label{font-size:28px;font-weight:800;text-align:center;letter-spacing:-.5px;color:var(--muted)}
.roll[data-side=win] .roll-label,.roll.win .roll-label{color:#1b9e5a}.roll[data-side=lose] .roll-label,.roll.lose .roll-label{color:#f04452}
.roll.landed.win .roll-label,.roll.landed.lose .roll-label{animation:roll-pop .4s ease-out}
.roll-bar{position:relative;height:14px;border-radius:7px;background:#ffe3e6;overflow:visible}
.roll-zone{position:absolute;inset:0 auto 0 0;border-radius:7px 0 0 7px;background:#c9f0d8}
.roll-needle{position:absolute;top:-6px;bottom:-6px;width:4px;margin-left:-2px;border-radius:2px;background:var(--ink)}
.roll.landed .roll-needle{box-shadow:0 0 0 4px rgba(25,31,40,.12)}
.roll-scale{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.flow-outcome{transition:opacity .35s}.flow-outcome.pending{opacity:0;visibility:hidden}
@keyframes roll-pop{0%{transform:scale(1)}40%{transform:scale(1.25)}100%{transform:scale(1)}}
.futures-standings table{width:100%;font-size:.85rem}.futures-standings h3{margin:14px 0 4px;font-size:.9rem}.futures-games{margin:0;padding:0;list-style:none;font-size:.82rem}.futures-games li{padding:3px 0}.futures-games span{display:inline-block;min-width:88px;color:var(--muted)}
.scout-tile strong small{font-size:12px;font-weight:600;color:var(--muted);margin-left:1px}
.scout-tile.breakout{background:#fff1f2;box-shadow:inset 0 0 0 1.5px #f04452}
.scout-tile .burst{display:inline-block;margin-top:3px;padding:1px 6px;border-radius:8px;background:#f04452;color:#fff;font-size:10px;font-weight:700;letter-spacing:-.2px}
.profile-ovr .peer{margin-left:8px;font-size:12px;font-weight:600;color:var(--accent);letter-spacing:0;vertical-align:middle}
.tool-row .attribute-track{position:relative}
.tool-row .future-mark{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--ink);opacity:.35}
.tool-row .attribute-row strong small{font-size:12px;font-weight:600;color:var(--muted)}
.tool-row .attribute-row strong{width:auto;min-width:25px;white-space:nowrap}
/* Growth style: ★ main tool and the coach's style suggestion drill-down (style-coach.js). */
.main-star{margin-left:3px;color:#f5a623;font-size:11px;vertical-align:1px}
.style-detail{margin:0 0 20px;padding:4px 16px 12px;border-radius:12px;background:#f7f8fa;font-size:14px}
.style-detail summary{cursor:pointer;min-height:44px;display:list-item;line-height:44px;color:var(--muted)}
.style-detail dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 10px}.style-detail dt{font-size:12px;color:var(--muted)}.style-detail dd{margin:2px 0 0;font-weight:700}
.style-detail ul{margin:0;padding-left:18px;color:var(--muted);font-size:13px;line-height:1.8}
/* 1군↔퓨처스 season flow (season-split.js): futures line, flow chips, 8-period drawer. */
.futures-summary{margin:8px 0 0;font-size:13px;color:var(--muted)}
.season-flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 0;font-size:12px;line-height:1.5}
.flow-chip{padding:3px 10px;border-radius:999px;background:#f2f4f6;color:var(--ink);font-weight:600}
.flow-arrow{color:var(--muted)}
.team-sub{display:block;margin-top:2px;font-weight:400;color:var(--muted)}
.season-flow-table table{font-size:12px}

.tool-glance,.relations{background:white;border-radius:22px;padding:20px;margin-top:16px}
.glance-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:12px}
.glance-tool{background:#f7f8fa;border-radius:14px;padding:12px}
.glance-head{display:flex;justify-content:space-between;align-items:baseline;font-weight:700}.glance-head strong{font:800 20px Barlow}.glance-head small{font-size:12px;color:var(--muted);font-weight:600}
.glance-detail{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-top:6px}.glance-detail b{color:var(--ink)}
.glance-more{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}.glance-more summary{cursor:pointer;min-height:44px;display:list-item;font-size:14px;color:var(--muted)}
.glance-explain{padding:10px 0;border-bottom:1px solid var(--line)}.glance-explain:last-of-type{border-bottom:0}.glance-explain h3{font-size:15px}.glance-explain h3 small{color:var(--muted);font-weight:500;margin-left:6px}
.glance-explain p{font-size:13px;line-height:1.6;margin-top:4px}.glance-recipe{color:var(--muted)}.glance-recipe b{color:var(--ink)}
.effect-list{display:grid;gap:10px;margin:10px 0}.effect-list dt{font-weight:700;font-size:14px}.effect-list dd{margin:2px 0 0;font-size:13px;line-height:1.6;color:var(--muted)}
.relations .attribute-row>span{width:84px;flex-shrink:0;white-space:nowrap}.relations .attribute-row strong{width:auto;min-width:44px}
.profile-status{margin:6px 0 0;font-size:13px;line-height:1.5}.profile-status b{color:var(--accent)}.profile-status span{white-space:nowrap}.profile-fame{display:block;margin-top:2px;color:var(--muted)}
.achievements-status{font-size:13px;margin:6px 0 10px}.achievements-status b{color:var(--accent)}
/* 지금까지 성적: the season so far above a mid-season card (app.js soFar) */
.so-far{background:white;border-radius:22px;padding:18px 20px;margin:16px 0;display:grid;gap:12px}
.so-far-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.so-far-head h2{font-size:15px}.so-far-head p{font-size:13px;color:var(--muted);line-height:1.5}
.so-far-line h3{font-size:12px;color:var(--muted);font-weight:600;margin-bottom:4px}
.so-far-line dl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0}
.so-far-line dt{font-size:11px;color:var(--muted)}.so-far-line dd{margin:2px 0 0;font:700 20px/1.3 Barlow,sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
.so-far-line+.so-far-line{border-top:1px solid var(--line);padding-top:10px}
.so-far-pace,.so-far-empty{font-size:13px;line-height:1.5;color:var(--muted)}.so-far-pace b{color:var(--accent)}
@media(max-width:359px){.so-far-line dd{font-size:17px}}
/* 클럽하우스 sections and the season ledger line (app.js shopPage, ledgerLine; shop.js) */
.shop-section{background:white;border-radius:22px;margin:14px 0;padding:0 22px}
.shop-section>summary{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding:20px 0;cursor:pointer;list-style:none}
.shop-section>summary::-webkit-details-marker{display:none}
.shop-section>summary strong{font-size:17px}.shop-section>summary span{font-size:13px;color:var(--muted);min-width:0;overflow-wrap:anywhere}
.shop-section>summary::after{content:'펼치기';font-size:12px;color:var(--accent)}.shop-section[open]>summary::after{content:'접기'}
.shop-section .shop-list{padding-bottom:8px}.shop-section .shop-row{background:var(--bg);margin:10px 0}
.shop-row h2{font-size:16px}.shop-row p{font-size:13px;line-height:1.55;color:var(--muted);margin-top:4px}
.shop-buy button[disabled]{opacity:.55}
.ledger{margin:10px 0;font-size:14px}.ledger>summary{cursor:pointer;color:var(--ink)}.ledger>summary b{font-variant-numeric:tabular-nums}
.ledger dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 16px;margin:10px 0 0}
.ledger dl div{display:flex;justify-content:space-between;gap:8px;font-size:13px}.ledger dt{color:var(--muted)}.ledger dd{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}
.clubhouse-summary .text-button{margin-top:10px}
@media(max-width:600px){.shop-section{padding:0 16px}.shop-section .shop-row{padding:16px}}
/* 클럽하우스 뽑기 (app.js shopPage): odds, buttons, the pull's cards flipping in one by one, the pool by rarity */
.gacha-box{border-radius:22px;margin-top:6px}.gacha-odds{font-size:12px!important}
.gacha-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.gacha-actions button{min-height:46px;padding:0 18px;border-radius:12px}
.gacha-actions .primary{background:var(--accent);color:white;font-weight:700}.gacha-actions .secondary{background:var(--theme-soft);color:var(--accent);font-weight:700}
.gacha-reveal{margin:14px 0;display:grid;gap:10px;justify-items:center}
.gacha-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;width:100%}
.gacha-card{--c:#8b95a1;display:grid;gap:4px;align-content:start;min-height:120px;padding:14px;border-radius:16px;background:white;border:2px solid var(--c);opacity:0;transform:rotateY(90deg);animation:gacha-flip .45s ease-out forwards;animation-delay:calc(var(--i) * .45s)}
.gacha-card span{font-size:12px;font-weight:800;color:var(--c)}.gacha-card strong{font-size:15px;line-height:1.4}.gacha-card small{color:var(--muted);line-height:1.45;overflow-wrap:anywhere}
.gacha-card.rare{--c:var(--theme-primary)}.gacha-card.epic{--c:#8a4fff;background:#f6f1ff}.gacha-card.legend{--c:#e8a100;background:#fff8e5;box-shadow:0 0 0 4px #ffe7a3}
.gacha-reveal.shown .gacha-card{animation:none;opacity:1;transform:none}
@keyframes gacha-flip{from{opacity:0;transform:rotateY(90deg)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.gacha-card{animation:none;opacity:1;transform:none}}
.gacha-held{border-radius:22px;margin:14px 0}.gacha-held .detail-list{margin-top:8px}
.gacha-pool{display:grid;gap:12px;padding-bottom:18px}.gacha-pool h3{font-size:13px}.gacha-pool-group.rare h3{color:var(--theme-primary)}.gacha-pool-group.epic h3{color:#8a4fff}.gacha-pool-group.legend h3{color:#c48700}
.gacha-pool ul{margin:6px 0 0;padding-left:18px;display:grid;gap:4px}.gacha-pool li{font-size:13px;line-height:1.5;color:var(--muted)}.gacha-pool li b{color:var(--ink)}
/* Grade colours (app.js TIERS) on tiles, radar and the training board */
.t70{color:#e8a100;fill:#e8a100}.t60{color:#ff7a45;fill:#ff7a45}.t50{color:#1fa463;fill:#1fa463}.t40{color:var(--theme-primary);fill:var(--theme-primary)}.t20{color:#8b95a1;fill:#8b95a1}
/* 능력치 육각형 (app.js radarBlock): beside the tiles on wide screens, above them on phones */
.profile-viz{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:center;margin-top:14px}
.profile-viz .scout-tiles{margin:0;grid-template-columns:repeat(3,minmax(0,1fr))}
.profile-viz.tools-4 .scout-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
.radar-wrap{display:grid;justify-items:center;gap:4px}.radar{width:100%;max-width:260px;height:auto;overflow:visible}
.radar-bg{fill:#f7f8fa;stroke:#d1d6db}.radar-ring{fill:none;stroke:#e5e8eb}.radar-avg{fill:none;stroke:#b0b8c1;stroke-dasharray:4 4}
.radar-prev{fill:none;stroke:#8b95a1;stroke-width:1.5;stroke-dasharray:5 4}.radar-now{fill:var(--theme-primary);fill-opacity:.22;stroke:var(--theme-primary);stroke-width:2.5;stroke-linejoin:round}
.radar-dot{stroke:#fff;stroke-width:1.5}.radar-label{font-size:13px;font-weight:700;fill:#4e5968;text-anchor:middle}.radar-grade{font:800 16px Barlow,sans-serif;text-anchor:middle}
.radar-key{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 10px;margin:0;font-size:11px;color:var(--muted);line-height:1.4}
.radar-key i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:3px;background:currentColor;vertical-align:0}
.radar-key span{display:inline-flex;align-items:center}.radar-key span:nth-child(1){color:#b07a00}
@media(max-width:640px){.profile-viz{grid-template-columns:1fr}.radar{max-width:240px}}
/* Trophies (trophies.js): new ones pop on the season result; shelf on the profile; cabinet on the player page */
.trophy-shelf{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin:12px 0 0;padding:8px 10px;background:#f7f8fa;border-radius:14px}
.trophy-mini{display:inline-flex;align-items:center;gap:2px;font:700 12px Barlow,sans-serif;color:var(--muted)}
.trophy-pop{display:grid;gap:10px;margin:0 0 14px}
.trophy-new{display:flex;gap:18px;align-items:center;background:linear-gradient(135deg,#fff7e0,#fff);border-radius:22px;padding:16px 20px;animation:trophy-in .7s cubic-bezier(.2,1.5,.4,1) both;animation-delay:calc(var(--i) * .25s)}
.trophy-new small{color:#765400;font-weight:700;font-size:12px}.trophy-new h3{margin:4px 0 0;font-size:20px;letter-spacing:-.6px}
.trophy-big{flex-shrink:0;line-height:0}
@keyframes trophy-in{0%{transform:scale(.3) rotate(-10deg);opacity:0}100%{transform:none;opacity:1}}
.cabinet-title{font-size:15px;margin:14px 0 8px}
.trophy-cabinet{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:12px}
.trophy-case{position:relative;background:linear-gradient(#fbfbfc,#f2f4f6);border-radius:16px;padding:14px 8px 10px;text-align:center;line-height:0}
.trophy-case h3{margin:8px 0 2px;font-size:13px;line-height:1.4}.trophy-case p{margin:0;font-size:11px;color:var(--muted);line-height:1.4}
.trophy-case.locked{opacity:.35;filter:grayscale(1)}
.trophy-count{position:absolute;right:8px;top:8px;background:var(--ink);color:#fff;border-radius:10px;font:700 11px/1 Barlow,sans-serif;padding:4px 6px}
@media(prefers-reduced-motion:reduce){.trophy-new{animation:none}}
/* 겨울 훈련 계획 (app.js trainingBoard) */
.train-board{background:var(--paper);border-radius:22px;padding:18px;margin:0 0 16px}
.train-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
.train-plan{border-radius:14px;padding:12px 10px;background:#f2f4f6;text-align:left;display:grid;gap:2px}
.train-plan b{font-size:15px}.train-plan small{font-size:11px;color:var(--muted);line-height:1.4}
.train-plan.on{background:var(--theme-soft);box-shadow:inset 0 0 0 2px var(--accent)}.train-plan.on b{color:var(--accent)}
.train-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.train-tools.tools-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.train-tool{position:relative;border-radius:14px;padding:10px 12px;background:#f7f8fa;text-align:left;display:grid;gap:2px;transition:transform .12s}
.train-tool:active{transform:scale(.98)}.train-tool.fixed{cursor:default}.train-tool.pick{background:#fff;box-shadow:inset 0 0 0 2px var(--accent)}
.train-name{font-size:12px;color:var(--muted)}.train-tool>b{font:800 22px/1.2 Barlow,sans-serif}.train-tool small{font-size:11px;color:var(--muted);line-height:1.4}
.train-check{position:absolute;right:10px;top:10px;width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;display:none;align-items:center;justify-content:center}
.train-tool.pick .train-check{display:flex}
.train-bar{position:relative;height:7px;border-radius:4px;background:#dfe3e8;margin:4px 0 2px;overflow:hidden}
.train-bar i{position:absolute;inset:0 auto 0 0;background:var(--accent);border-radius:4px}.train-bar u{position:absolute;top:0;bottom:0;background:#22b573}
.train-msg{font-size:14px;font-weight:700;margin:12px 0 0}
.train-risk{margin-top:10px}.train-risk>div{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}.train-risk>div b{color:var(--ink)}
.train-gauge{display:block;height:8px;border-radius:4px;background:#dfe3e8;margin-top:4px;overflow:hidden}.train-gauge b{display:block;height:100%;border-radius:4px}
.train-gauge .low{background:#22b573}.train-gauge .mid{background:#f59f00}.train-gauge .high{background:#f04452}
@media(max-width:480px){.train-plans{gap:5px}.train-plan{padding:10px 8px}.train-tools{grid-template-columns:repeat(2,minmax(0,1fr))}}
.trophy-row{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:10px}
.trophy-small{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink);animation:trophy-in .6s cubic-bezier(.2,1.5,.4,1) both;animation-delay:calc(var(--i) * .12s + .3s)}
.trophy-small b{font-weight:700}
@media(prefers-reduced-motion:reduce){.trophy-small{animation:none}}
/* Next-season screen (app.js seasonPage ready): season prep rows, scouting report with the radar beside the grades */
.season-prep{background:var(--paper);border-radius:22px;padding:18px 20px;margin:0 0 16px}
.season-prep h2{font-size:17px;margin:0 0 10px}
.season-prep dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}
.season-prep dl div{background:#f7f8fa;border-radius:14px;padding:12px 14px;min-width:0}
.season-prep dt{font-size:12px;color:var(--muted)}
.season-prep dd{margin:4px 0 0;display:grid;gap:2px}.season-prep dd b{font-size:15px;overflow-wrap:anywhere}.season-prep dd small{font-size:12px;color:var(--muted)}
.season-prep-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.glance-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;align-items:center;margin-top:12px}
.glance-layout .glance-grid{margin-top:0}
@media(max-width:760px){.season-prep dl{grid-template-columns:repeat(2,minmax(0,1fr))}.glance-layout{grid-template-columns:1fr}}
/* web-design-guidelines pass (2026-10-25): numbers line up, hover states on the training board, balanced headings */
.scout-tile strong,.glance-head strong,.season-prep dd b,.train-tool>b,.radar-grade,.trophy-mini b{font-variant-numeric:tabular-nums}
.train-plan:hover:not(.on),.train-tool:not(.fixed):not(.pick):hover{background:#eef1f4}
.season-prep h2,.page-heading h1{text-wrap:balance}
/* 아마추어 대회 (app.js tournamentResults): result with the deciding game; the bracket path opens on tap */
.tournament-results .tour{border-top:1px solid var(--line);padding:2px 0}
.tour>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:baseline;padding:10px 0;cursor:pointer;list-style:none}
.tour>summary::-webkit-details-marker{display:none}
.tour-name{font-size:14px;font-weight:700;min-width:0}.tour-result{font-size:14px;color:var(--muted)}.tour-result.win{color:#c48700}.tour-result.second{color:var(--accent)}
.tour>summary small{grid-column:1/-1;font-size:12px;color:var(--muted)}
.tour>summary small::after{content:' · 대진 보기';color:var(--accent)}.tour[open]>summary small::after{content:' · 접기'}
.tour-path{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:4px}
.tour-path li{display:grid;grid-template-columns:52px minmax(0,1fr) 22px;gap:8px;align-items:center;background:#f7f8fa;border-radius:10px;padding:8px 10px;font-size:13px}
.tour-round{color:var(--muted);font-size:12px}.tour-score{min-width:0;overflow-wrap:anywhere}.tour-score b{font-variant-numeric:tabular-nums}
.tour-wl{font-weight:800;text-align:right}.tour-path li.w .tour-wl{color:#1fa463}.tour-path li.l .tour-wl{color:#f04452}
/* In season: this season's growth so far continues the experience bar (app.js pendBar, engine.js growthSoFar) */
.scout-tile .xp{height:4px}
.scout-tile .xp-pend{position:absolute;bottom:0;left:var(--from);width:var(--w);height:4px;background:repeating-linear-gradient(90deg,#22b573 0 6px,#7dd8a8 6px 9px)}
.scout-tile em.soon{color:#1fa463;font-weight:700}
.profile-viz>.growth-notes{grid-column:1/-1;margin:0}
/* Season-end growth reveal (growth-reveal.js) */
.growth-reveal{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:16px;background:rgba(25,31,40,.6);animation:panel-in .25s ease-out}
.gr-inner{width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;background:#fff;border-radius:24px;padding:24px 22px 18px;text-align:center}
.gr-eyebrow{font-size:13px;font-weight:700;color:var(--accent);margin:0}
.gr-overall{font-size:22px;margin:6px 0 16px}.gr-overall b{font:800 30px Barlow,sans-serif;font-variant-numeric:tabular-nums}.gr-to{color:var(--accent)}
.gr-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.gr-tile{position:relative;background:#f7f8fa;border-radius:14px;padding:12px 6px;opacity:.35;transition:opacity .2s,transform .2s}
.gr-tile.shown{opacity:1}.gr-tile span{display:block;font-size:12px;color:var(--muted)}
.gr-tile strong{display:block;font:800 30px/1.15 Barlow,sans-serif;font-variant-numeric:tabular-nums}
.gr-tile em{font-style:normal;font-size:12px;font-weight:700;color:var(--muted)}.gr-tile em.up{color:#f04452}.gr-tile em.down{color:var(--accent)}
.gr-tile.burst{background:#fff4e5;box-shadow:inset 0 0 0 2px #ff9f43}.gr-tile.burst.shown{animation:gr-burst .6s cubic-bezier(.2,1.6,.4,1)}
.gr-burst{position:absolute;top:6px;right:6px;font-size:10px;color:#fff;background:#ff7a45;border-radius:8px;padding:2px 6px}
@keyframes gr-burst{0%{transform:scale(.8)}100%{transform:none}}
.gr-moments{display:grid;gap:6px;margin:14px 0 4px}
.gr-moment{margin:0;padding:10px 12px;border-radius:12px;font-size:14px;font-weight:700;animation:event-in .35s ease-out both}
.gr-moment.tier{background:var(--theme-soft);color:var(--theme-primary)}.gr-moment.first{background:#fff4d6;color:#8a5a00}
.gr-done{margin-top:12px;width:100%;min-height:48px;border-radius:14px;background:var(--accent);color:#fff;font-weight:700}
@media(prefers-reduced-motion:reduce){.growth-reveal,.gr-moment,.gr-tile.burst.shown{animation:none}.gr-tile{opacity:1}}
.growth-moments{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.growth-moments .moment{font-size:13px;font-weight:700;border-radius:10px;padding:6px 10px}.moment.tier{background:var(--theme-soft);color:var(--theme-primary)}.moment.first{background:#fff4d6;color:#8a5a00}
.firsts-timeline{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:4px}
.firsts-timeline li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;font-size:13px;padding:6px 0;border-bottom:1px solid var(--line)}
.firsts-timeline b{font-variant-numeric:tabular-nums;color:var(--muted)}

/* ── 소셜 탭 (design/plan-2026-10-25-social.md, design/mockups/social-2026-10-25.html): profile, follower graph, highlights, four panes ── */
.bottom-nav .nav-item{position:relative}
.nav-badge{position:absolute;top:2px;left:calc(50% + 4px);min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#f04452;color:#fff;font:700 11px/17px Barlow,sans-serif;font-style:normal;text-align:center;pointer-events:none}
.sp-card{background:var(--paper);border-radius:22px;padding:20px;margin:12px 0 14px;min-width:0}
.sp-top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center}
.sp-avatar{width:84px;height:84px;border-radius:50%;padding:3px;background:conic-gradient(#f5b700,#ff7a45,#f04452,#8a4fff,var(--theme-primary),#f5b700)}
.sp-avatar div{width:100%;height:100%;border-radius:50%;background:#f2f4f6;border:3px solid #fff;display:grid;place-items:center;font:700 32px Barlow,sans-serif}
.sp-handle{display:flex;align-items:center;gap:6px;font-size:18px;font-weight:800;overflow-wrap:anywhere}
.sp-verified{width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;flex:none}.sp-verified svg{width:11px;height:11px;stroke-width:3.4}
.sp-counts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:8px 0 0}
.sp-counts>div{display:flex;flex-direction:column-reverse;gap:2px;min-width:0}
.sp-counts dt{font-size:12px;color:var(--muted)}
.sp-counts dd{margin:0;display:flex;flex-direction:column;font:700 22px/1.1 Barlow,sans-serif;font-variant-numeric:tabular-nums}
.sp-delta{font:800 12px/1.5 'Apple SD Gothic Neo','Malgun Gothic',sans-serif;font-style:normal;white-space:nowrap}.sp-delta.up{color:#f04452}.sp-delta.down{color:var(--accent)}
.sp-bio{font-size:13px;color:var(--muted);margin:10px 0 0;line-height:1.5}
.sp-new{display:inline-block;margin:10px 0 0;background:#fff0f1;color:#c0272d;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800}
.sp-graph{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.sp-graph h3{font-size:13px;display:flex;justify-content:space-between;gap:8px;margin:0 0 6px}.sp-graph h3 span{color:var(--muted);font-weight:500}
.sp-chart{position:relative;height:92px;margin:34px 6px 0}.sp-chart svg{width:100%;height:100%;display:block;overflow:visible}
.sp-line{fill:none;stroke:var(--accent);stroke-width:3;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.sp-area{fill:#3182f61c;stroke:none}
.sp-pin{position:absolute;width:0;height:0}
.sp-pin i{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid #f04452}.sp-pin.down i{border-color:var(--accent)}.sp-pin.one i{border-color:var(--accent)}
.sp-pin b{position:absolute;bottom:12px;left:0;transform:translateX(-50%);white-space:nowrap;font-size:11px;font-weight:800;color:#d6303f;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff}.sp-pin.down b{color:var(--theme-primary)}
.sp-pin.below b{bottom:auto;top:12px}.sp-pin.l b{transform:none;left:-6px}.sp-pin.r b{transform:translateX(-100%);left:6px}
.sp-axis{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted);margin:8px 0 0}
.sp-notes{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px;font-size:12px}
.sp-notes li{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:baseline}.sp-notes b{font:700 13px Barlow,sans-serif;color:var(--muted)}.sp-notes em{font-style:normal;font-weight:800;font-variant-numeric:tabular-nums}.sp-notes em.up{color:#f04452}.sp-notes em.down{color:var(--accent)}
.sp-hl{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 2px;margin-top:14px;scrollbar-width:none}.sp-hl::-webkit-scrollbar{display:none}
.sp-hl button{border:0;background:none;padding:0;display:grid;justify-items:center;align-content:start;gap:4px;flex:0 0 auto;min-width:62px}
.sp-ring{width:62px;height:62px;border-radius:50%;padding:2px;background:conic-gradient(#f5b700,#ff7a45,#f04452,#8a4fff,var(--theme-primary),#f5b700)}
.sp-ring b{width:100%;height:100%;border-radius:50%;background:#fff;border:2px solid #fff;display:grid;place-items:center;font:800 13px/1.15 'Apple SD Gothic Neo','Malgun Gothic',sans-serif;text-align:center;color:var(--ink);word-break:keep-all}.sp-ring b.sm{font-size:10px}
.sp-hl small{font-size:11px;color:var(--muted);max-width:72px;text-align:center;line-height:1.3}
.sp-hl-empty{margin-top:14px}
.sp-seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--paper);border-radius:16px;padding:4px;margin:0 0 12px;position:sticky;top:8px;z-index:2}
.sp-seg button{border:0;background:none;border-radius:12px;padding:10px 0;min-height:44px;font-weight:700;font-size:14px;color:var(--muted)}.sp-seg button.on{background:var(--theme-soft);color:var(--accent)}
.sp-badge{display:inline-block;min-width:17px;padding:0 5px;border-radius:9px;background:#f04452;color:#fff;font:700 11px/17px Barlow,sans-serif;margin-left:4px;vertical-align:1px}
.sp-posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;border-radius:16px;overflow:hidden}
.sp-post{aspect-ratio:1;border:0;border-radius:0;padding:10px;text-align:left;color:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:4px;min-width:0;overflow:hidden}
.sp-post small{font-size:11px;opacity:.92}.sp-post b{font-size:15px;line-height:1.25;letter-spacing:-.3px;word-break:keep-all;overflow-wrap:anywhere}.sp-post .big{font:700 30px/1 Barlow,sans-serif}.sp-post .meta{font-size:11px;opacity:.95;line-height:1.3}
.sp-post.p1{background:linear-gradient(150deg,var(--theme-primary),var(--theme-primary))}.sp-post.p2{background:linear-gradient(150deg,#7a5200,#c78b00)}.sp-post.p3{background:linear-gradient(150deg,#0d5a35,#1a9460)}.sp-post.p4{background:linear-gradient(150deg,#191f28,#4e5968)}.sp-post.p5{background:linear-gradient(150deg,#6a35d6,#8a4fff)}.sp-post.p6{background:linear-gradient(150deg,#b83a12,#e0541f)}
.sp-more{width:100%;margin-top:12px}
.sp-caption{font-size:14px;line-height:1.6;margin:8px 0}.sp-react{font-size:13px;color:var(--muted);margin:0 0 6px}
.sp-cmts{display:grid}
.sp-cmt{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:start;padding:8px 0;border-top:1px solid var(--line);font-size:13px;line-height:1.5}
.sp-cmt b{font-size:12px}.sp-like{font-size:11px;color:var(--muted);white-space:nowrap}
.sp-who{width:26px;height:26px;border-radius:50%;background:#f2f4f6;display:grid;place-items:center;font-size:11px;font-weight:800}
.sp-tag{font-size:10px;font-weight:800;border-radius:6px;padding:1px 5px;margin-left:4px}.sp-tag.own{background:var(--theme-soft);color:var(--theme-primary)}.sp-tag.rival{background:#ffe8e8;color:#c0272d}.sp-tag.neutral{background:#f2f4f6;color:#4e5968}
.sp-article{background:var(--paper);border-radius:18px;padding:16px;margin:0 0 10px}
.sp-article .src{font-size:12px;color:var(--muted)}.sp-article h4{font-size:16px;margin:6px 0;letter-spacing:-.4px;line-height:1.4;overflow-wrap:anywhere}.sp-article p{font-size:13px;color:#333d4b;line-height:1.6;margin:0}
.sp-article.interview{border:2px solid var(--accent);background:#f7fbff}
.sp-qa{margin:8px 0 0}.sp-qa dt{font-size:12px;font-weight:700;color:var(--muted);margin-top:8px}.sp-qa dd{margin:2px 0 0;font-size:14px;line-height:1.6;color:#191f28}
.sp-segs{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}
.sp-segs li{background:var(--paper);border-radius:14px;padding:10px 14px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px}.sp-segs span{color:var(--muted)}
.sp-board{background:var(--paper);border-radius:18px;overflow:hidden}
.sp-thread{padding:14px 16px;border-bottom:1px solid var(--line)}.sp-thread:last-child{border-bottom:0}
.sp-thread .t{font-size:15px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}.sp-thread .m{font-size:12px;color:var(--muted);margin-top:4px;display:flex;flex-wrap:wrap;gap:2px 10px}.sp-thread .up{color:#f04452;font-weight:800}
.sp-thread .hot{font-size:10px;font-weight:800;color:#fff;background:#f04452;border-radius:6px;padding:1px 6px;margin-right:6px;vertical-align:2px}
.sp-scout{background:var(--paper);border-radius:18px;padding:16px;margin:0 0 10px}
.sp-scout .who{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--muted)}.sp-scout h4{margin:6px 0 10px;font-size:16px;line-height:1.4;overflow-wrap:anywhere}
.sp-scout .gr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.sp-scout .gr>div{background:#f7f8fa;border-radius:12px;padding:8px;text-align:center;font-size:12px;color:var(--muted)}
.sp-scout .gr b{display:block;font:700 20px Barlow,sans-serif;color:var(--ink)}.sp-scout .gr em{font-style:normal;font-size:12px;color:var(--muted);margin-left:3px}.sp-scout .gr em.up{color:#1fa463}
.sp-scout .quote{font-size:13px;line-height:1.6;margin:10px 0 0;color:#333d4b}
.sp-scout .interest{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12px;color:var(--muted);flex-wrap:wrap}.sp-scout .meter{flex:1;min-width:80px;height:8px;border-radius:4px;background:#e5e8eb;overflow:hidden}.sp-scout .meter i{display:block;height:100%;background:linear-gradient(90deg,var(--theme-primary),#8a4fff)}
.sp-rows{list-style:none;margin:8px 0 0;padding:0;display:grid}.sp-rows li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:8px 0;border-top:1px solid var(--line);font-size:13px;line-height:1.5}.sp-rows b{font:700 14px Barlow,sans-serif;color:var(--muted)}.sp-rows small{display:block;color:var(--accent);font-weight:700;margin-top:2px}
.sp-note{margin:14px 2px 0}
.so-far-react{font-size:13px;line-height:1.5;color:var(--ink);background:#f7f8fa;border-radius:12px;padding:8px 12px}
.sp-article h4,.sp-article p,.sp-qa dd,.sp-thread .t,.sp-scout h4,.sp-scout .quote,.sp-caption,.sp-cmt,.sp-bio{word-break:keep-all}
@media(min-width:640px){.sp-posts{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:960px){.sp-posts{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:480px){.sp-card{padding:16px}.sp-avatar{width:72px;height:72px}.sp-avatar div{font-size:28px}.sp-top{gap:12px}.sp-counts{gap:6px 14px}.sp-post{padding:8px}.sp-post b{font-size:14px}.sp-post .big{font-size:26px}}
/* Fun-gap pass (2026-10-25, research/fun-gap-2026-10-25): result headline, player strip, choice chips, folded details. */
.avatar-fallback{width:var(--s);height:var(--s);border-radius:calc(var(--s)*.24);background:#f2f4f6;display:inline-grid;place-content:center;justify-items:center;color:var(--accent);flex:none}.avatar-fallback b{font-size:calc(var(--s)*.26);color:var(--ink)}.avatar-fallback svg.icon{width:calc(var(--s)*.34);height:calc(var(--s)*.34)}
.result-hero{display:flex;gap:16px;align-items:center;background:var(--paper);border-radius:22px;padding:20px;margin:12px 0 14px;position:relative;overflow:hidden}
.result-hero::before{content:none}
.rh-avatar{flex:none;display:grid;place-items:center}.rh-avatar svg{display:block}
.rh-year{font-size:13px;color:var(--muted);font-weight:700;margin-bottom:2px}
.result-hero h1{font-size:22px;letter-spacing:-.6px;line-height:1.25;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.result-hero h1 b{font-family:Barlow,sans-serif;font-size:52px;letter-spacing:0;line-height:1;color:var(--accent)}
.result-hero h1 em{font-style:normal;font-size:15px;font-weight:800;border-radius:999px;padding:3px 10px;background:#f2f4f6;color:var(--muted)}
.result-hero h1 em.up{background:#ffeef0;color:#a61b29}.result-hero h1 em.down{background:var(--theme-soft);color:var(--theme-primary)}
.result-hero p:last-child{font-size:14px;color:#4e5968;margin-top:4px}
.result-viz h2{font-size:16px;margin-bottom:10px}
.result-more{background:var(--paper);border-radius:22px;padding:4px 20px;margin:14px 0}
.result-more>summary{cursor:pointer;font-weight:800;padding:16px 0;list-style:none;display:flex;justify-content:space-between;align-items:center}
.result-more>summary::after{content:'펼치기';font-size:12px;font-weight:700;color:var(--muted)}.result-more[open]>summary::after{content:'접기'}
.result-more>summary::-webkit-details-marker{display:none}
.result-more[open]{padding-bottom:18px}.result-more[open]>*:not(summary){margin-top:14px}
.mini-profile{display:flex;align-items:center;gap:12px;background:var(--paper);border-radius:18px;padding:10px 14px;margin:10px 0 14px;border-left:5px solid var(--team-color)}
.mini-profile>div:last-child{display:grid;line-height:1.35}.mini-profile b{font-size:15px}.mini-profile span{font-size:12px;color:var(--muted)}
.ack-story{display:grid;gap:12px;transition:opacity .35s}.ack-story.pending{opacity:0;visibility:hidden}
.ack-story>p{font-size:16px;font-weight:700;line-height:1.6}
.fx-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.fx-chips li{font-size:13px;font-weight:800;border-radius:10px;padding:6px 10px}.ack-story:not(.pending) .fx-chips li{animation:score-pop .35s both}
.fx-chips li:nth-child(2){animation-delay:.08s}.fx-chips li:nth-child(3){animation-delay:.16s}.fx-chips li:nth-child(4){animation-delay:.24s}.fx-chips li:nth-child(n+5){animation-delay:.32s}
.fx-chips li.good{background:#e9f8ef;color:#108a4a}.fx-chips li.bad{background:#ffeef0;color:#d22030}
@media(prefers-reduced-motion:reduce){.ack-story:not(.pending) .fx-chips li{animation:none}}
.replay-head{display:flex;align-items:center;gap:14px}.replay-avatar{flex:none}.replay-avatar svg{display:block}
.replay-event.mark{background:#fff;border:2px solid var(--accent);font-weight:800;color:var(--ink);display:flex;align-items:center;gap:10px;animation:mark-in .45s cubic-bezier(.2,1.4,.4,1)}
.replay-event.mark::before{content:'';width:9px;height:9px;border-radius:50%;background:#22b573;flex:none;box-shadow:0 0 0 4px #e9f8ef}
@keyframes mark-in{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.replay-event.mark{animation:none}}
.card-frame{position:relative;overflow:hidden;border:3px solid currentColor;background:linear-gradient(160deg,#fff,#f2f4f6);padding:0;place-content:center}
.card-frame svg{display:block}
.card-tier{position:absolute;left:0;right:0;bottom:0;font-size:9px;font-weight:800;line-height:1.5;text-align:center;color:#fff;background:currentColor;white-space:nowrap}
.card-tier{color:#fff}.card-frame.t20 .card-tier{background:#8b95a1}.card-frame.t40 .card-tier{background:var(--theme-primary)}.card-frame.t50 .card-tier{background:#1fa463}.card-frame.t60 .card-tier{background:#ff7a45}.card-frame.t70 .card-tier{background:#e8a100}
.card-frame.t60::after,.card-frame.t70::after{content:'';position:absolute;inset:-40%;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.75) 50%,transparent 60%);animation:card-shine 3.2s ease-in-out infinite}
.card-frame.t70{box-shadow:0 0 0 3px #fff4d6,0 6px 18px rgba(232,161,0,.35)}
@keyframes card-shine{0%,55%{transform:translateX(-60%)}100%{transform:translateX(60%)}}
.moment.card{background:#fff4d6;color:#8a5a00;border:1px solid #f5d27a}
@media(prefers-reduced-motion:reduce){.card-frame::after{animation:none;display:none}}
.career-table tr.current td{background:var(--theme-soft)}.ct-q{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#ff7a45;color:#fff;font-family:Barlow,sans-serif;font-size:18px}
.ct-cups{white-space:nowrap}.ct-cups span{display:inline-block;margin-right:2px;vertical-align:middle}.ct-cups svg{display:block}
.contract-sheet{position:fixed;inset:0;z-index:60;background:rgba(25,31,40,.55);display:flex;align-items:flex-end;justify-content:center;animation:panel-in .2s}
.cs-panel{background:var(--paper);width:min(560px,100%);max-height:92vh;overflow:auto;border-radius:26px 26px 0 0;padding:26px 22px 22px;display:grid;gap:12px;animation:sheet-up .38s cubic-bezier(.2,1,.3,1)}
@media(min-width:700px){.contract-sheet{align-items:center}.cs-panel{border-radius:26px}}
.cs-kicker{justify-self:center;font-size:13px;font-weight:800;color:var(--accent);background:var(--theme-soft);border-radius:999px;padding:4px 12px}
.cs-move{display:flex;align-items:center;justify-content:center;gap:12px;min-height:84px}
.cs-emblem{width:72px;height:72px;border-radius:50%;background:var(--c);display:grid;place-items:center;box-shadow:0 0 0 4px #fff,0 4px 14px rgba(0,0,0,.18);animation:emblem-in .5s cubic-bezier(.2,1.5,.4,1) both}
.cs-emblem b{color:#fff;font-weight:900;font-size:16px;letter-spacing:-.3px}
.cs-emblem+.cs-arrow+.cs-emblem{animation-delay:.25s}
.cs-arrow{width:34px;height:3px;background:#d1d6db;position:relative;border-radius:2px}.cs-arrow::after{content:'';position:absolute;right:-2px;top:-5px;border:6px solid transparent;border-left:8px solid #d1d6db}
.cs-avatar svg{display:block}
.cs-panel h2{text-align:center;font-size:21px;letter-spacing:-.6px}
.cs-amount{display:grid;justify-items:center;line-height:1.2}.cs-amount small{color:var(--muted);font-weight:700}.cs-amount b{font-family:Barlow,sans-serif;font-size:40px;color:var(--ink)}
.cs-line{text-align:center;color:#4e5968;font-size:14px}
.cs-press{background:#f2f4f6;border-radius:14px;padding:12px 14px;font-weight:700;font-size:14px}
.cs-fans{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cs-fans li{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;border-bottom:1px solid var(--line);padding:8px 2px}
.cs-fans li b{font-size:13px}.cs-seg{font-size:11px;font-weight:700;color:var(--accent);align-self:center}.cs-fans li p{grid-column:1/-1;font-size:14px;line-height:1.5}
.cs-done{margin-top:4px}
@keyframes sheet-up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@keyframes emblem-in{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.contract-sheet,.cs-panel,.cs-emblem{animation:none}}
.title-strip{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.title-chip{font-size:13px;font-weight:800;border-radius:10px;padding:6px 10px;border:1px solid}
.title-chip.gold,.title-card.gold{background:#fff8e1;color:#8a5a00;border-color:#f5d27a}.title-chip.silver,.title-card.silver{background:#f2f4f6;color:#4e5968;border-color:#d1d6db}.title-chip.bronze,.title-card.bronze{background:#fdf1e7;color:#8a4b1c;border-color:#efc6a4}
.title-grid{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.title-card{border:1px solid;border-radius:14px;padding:10px 12px;display:grid;gap:2px}.title-card b{font-size:14px}.title-card small{font-size:11px;font-weight:700}.title-card p{font-size:11px;line-height:1.5;color:#4e5968}
.title-card.locked{background:#fafbfc;color:#b0b8c1;border-color:#e5e8eb;border-style:dashed}.title-card.locked p{color:#b0b8c1}
.avatar-preview{display:flex;align-items:flex-end;justify-content:center;gap:18px;background:linear-gradient(180deg,var(--theme-soft),#f9fafb);border-radius:18px;padding:16px;margin:14px 0}
.avatar-preview svg{display:block}
.avatar-grid{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:8px}
.avatar-option{position:relative;display:grid;place-items:center;padding:4px;border-radius:14px;background:#f2f4f6;border:2px solid transparent;cursor:pointer}
.avatar-option input{position:absolute;opacity:0;pointer-events:none}
.avatar-option.selected{border-color:var(--accent);background:var(--theme-soft)}.avatar-option:focus-within{outline:3px solid var(--accent);outline-offset:2px}
.avatar-option svg{display:block}
.creation-summary svg{display:block;flex:none}
.decision-scene{margin:0 0 14px;border-radius:16px;overflow:hidden}
.mp-avatar svg,.profile-avatar svg,.sp-avatar svg,.retirement-number svg{display:block}
.card-frame svg{width:100%;height:100%}
.title-locked{margin:-8px 0 18px}.title-locked>summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--muted);padding:6px 0}.title-locked .title-grid{margin-top:8px}
@media(min-width:700px){.decision-scene{max-width:480px}}

/* Detailed season records: personal stats first; secondary records open by topic. */
.result-more .result-personal{padding:8px 0 20px}
.result-personal h3{font-size:18px;margin:0 0 20px}
.result-stat-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px}
.result-stat-groups h4,.record-section>h4{font-size:15px;margin:0 0 10px;color:var(--ink)}
.result-more .stat-detail{display:block;margin:0;font-size:15px}
.result-more .stat-detail>div{display:flex;flex-direction:row;justify-content:space-between;align-items:baseline;gap:16px;padding:9px 0;border-bottom:1px solid #e5e8eb;line-height:1.5}
.result-more .stat-detail dt{color:#4e5968}.result-more .stat-detail dd{font-size:16px;text-align:right;white-space:nowrap}
.result-more .record-group{margin:0;border-top:1px solid #d1d6db}
.record-group>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;cursor:pointer;padding:20px 0;min-height:64px}
.record-group>summary::-webkit-details-marker{display:none}
.record-group>summary strong{display:block;font-size:16px;line-height:1.5}
.record-group>summary small{display:block;margin-top:5px;color:#4e5968;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.record-group>summary .icon{flex-shrink:0;width:18px;height:18px}
.record-group[open]>summary .icon{transform:rotate(90deg)}
.record-group-body{padding:0 0 24px;min-width:0}
.record-group-body>.record-section+*,.record-group-body>.tournament-results+*{margin-top:24px}
.result-more .record-guide{margin-top:16px;font-size:14px;color:#4e5968}
.record-guide>summary{cursor:pointer;min-height:44px;padding:10px 0;line-height:1.5}
.record-guide p{font-size:14px;line-height:1.7;max-width:65ch;margin:4px 0 12px}
.result-more .record-section table{font-size:14px}
.result-more .leader-grid{display:block}.result-more .leader-grid>section+section{margin-top:24px}
.result-more .leader-grid h3{font-size:15px;margin-bottom:10px}
.result-more .leader-grid ol{padding:0;list-style:none;counter-reset:record-rank;font-size:14px}
.result-more .leader-grid li{counter-increment:record-rank;display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:10px;padding:10px 0;border-bottom:1px solid #e5e8eb;line-height:1.5}
.result-more .leader-grid li::before{content:counter(record-rank);color:#4e5968}
.result-more .leader-grid strong{font-variant-numeric:tabular-nums}
.result-more .honors-line{line-height:1.8;font-size:15px;margin-bottom:20px}
.result-more .record-section dl{margin:12px 0;display:grid;gap:12px}
.result-more .record-section dl>div{display:flex;justify-content:space-between;gap:16px;font-size:14px;line-height:1.5}
.result-more .record-section dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}
.result-more summary:focus-visible{outline:2px solid var(--theme-primary);outline-offset:3px;border-radius:4px}
@media(max-width:600px){.result-stat-groups{grid-template-columns:1fr}.result-more{padding-left:18px;padding-right:18px}.result-more .table-scroll{max-width:100%;overflow-x:auto}.result-more .record-section th,.result-more .record-section td{padding:10px 12px}}

.record-ranking{border-bottom:1px solid #e5e8eb}.record-ranking>summary{cursor:pointer;padding:14px 0;font-size:14px;line-height:1.5}.record-ranking>summary span{float:right;color:#4e5968;font-variant-numeric:tabular-nums}.record-ranking ol{padding-bottom:14px!important}

.record-honors{margin-bottom:24px}.record-honors h4{font-size:15px;margin:0 0 10px}.record-honors ul{padding-left:20px;margin:0}.record-honors li{font-size:15px;line-height:1.6;padding:6px 0}
/* Career goals and accomplishment-led reactions use the existing light UI. */
.career-objective{padding:16px 0 20px;margin:0 0 16px;border-bottom:1px solid #d1d6db}
.career-objective h2{font-size:18px;line-height:1.45;margin:0 0 8px}.career-objective p{font-size:14px;line-height:1.6;margin:5px 0}.career-objective small{display:block;color:#4e5968;font-size:12px;line-height:1.6}
.direct-choices{display:grid;gap:12px;margin:20px 0}.direct-choices .flow-choice{display:block;width:100%;text-align:left;cursor:pointer;padding:18px;border:1px solid #d1d6db;background:#fff;border-radius:12px;color:#191f28}.direct-choices strong{display:block;font-size:16px;line-height:1.5}.direct-choices small{display:block;font-size:14px;line-height:1.5;color:#4e5968;margin-top:8px}.direct-choices button:hover{border-color:var(--theme-primary);background:#f2f7ff}.direct-choices button:focus-visible{outline:3px solid var(--theme-primary);outline-offset:3px}
.career-moments>h1{font-size:24px;line-height:1.4;margin:12px 0}.career-moment{padding:24px 0;border-bottom:1px solid #d1d6db;overflow-wrap:anywhere}.career-moment h3{font-size:23px;line-height:1.4;margin:8px 0 12px}.career-moment p{font-size:15px;line-height:1.65}.career-moment .moment-context{font-size:13px;color:#4e5968;margin:0}.moment-line{font-weight:600}.career-moment .moment-reach{font-size:14px;color:#235bb8}.moment-press{margin:20px 0}.moment-press small{font-size:12px;color:#4e5968}.moment-press h4{font-size:17px;line-height:1.5;margin:6px 0}.career-moment blockquote{margin:12px 0;padding:0;font-size:15px;line-height:1.7}.career-moment cite{display:block;font-style:normal;font-size:12px;color:#4e5968;margin-top:4px}.career-moment .text-button{padding:12px 0;min-height:44px}.result-reaction{padding:24px 20px;margin:16px 0;background:#fff;border-radius:16px}.result-reaction>h2{font-size:18px;margin:0}.result-reaction .career-moment{border:0;padding:16px 0}.result-reaction .milestone{animation:moment-reveal .7s ease-out}.result-reaction .secondary{width:100%;margin-top:12px;white-space:normal}.social-archive,.moment-archive{margin:24px 0}.social-archive>summary,.moment-archive>summary{padding:16px 0;cursor:pointer;font-size:16px;min-height:48px}.social-archive[open]>.sp-card{margin-top:16px}
@keyframes moment-reveal{from{opacity:.65;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.result-reaction .milestone{animation:none}}
@media(max-width:600px){.career-moment h3{font-size:21px}.result-reaction{padding:20px 18px}.career-objective h2{font-size:17px}}

/* Pitch training stays optional within the existing season preparation flow. */
.pitch-training{margin:18px 0 24px;border-top:1px solid #d1d6db;border-bottom:1px solid #d1d6db}
.pitch-training>summary{cursor:pointer;min-height:52px;padding:16px 0;font-size:16px;font-weight:700;line-height:1.5}
.pitch-training>summary>span{font-size:13px;font-weight:400;color:#4e5968;margin-left:10px}
.pitch-training-body{padding:0 0 22px;max-width:560px}
.pitch-training-body>label{display:block;font-weight:600;margin:16px 0 8px}
.pitch-training-body select{width:100%;min-height:48px;font-size:16px;background:#fff;color:#191f28}
.pitch-training-body .quiet-copy{font-size:14px;line-height:1.6;color:#4e5968}
.pitch-usage-inputs{margin-top:20px;display:grid;gap:12px}
.pitch-usage-inputs label{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:15px}
.pitch-usage-inputs label>span{display:flex;align-items:center;gap:8px}
.pitch-usage-inputs input{width:90px;min-height:48px;font-size:16px;text-align:right;font-variant-numeric:tabular-nums}
#pitch-usage-total{font-size:14px;color:#4e5968}
.pitch-main-weapon{font-size:19px;font-weight:700;margin:20px 0 8px}
.pitch-role-note{font-size:14px;color:#4e5968;line-height:1.6}
.pitch-repertoire{margin-top:22px}
.pitch-row{border-top:1px solid #e5e8eb}
.pitch-row>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:84px;padding:16px 0}
.pitch-row>summary>span{display:grid;gap:6px;min-width:0}
.pitch-row>summary>span:last-child{text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}
.pitch-row>summary strong{font-size:16px}.pitch-row>summary b{font-size:18px}
.pitch-row>summary small{font-size:13px;font-weight:400;color:#4e5968;line-height:1.5}
.pitch-row dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0 0 12px;margin:0}
.pitch-row dt{font-size:13px;color:#4e5968;margin-bottom:6px}.pitch-row dd{margin:0;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}
.pitch-row .quiet-copy{font-size:13px;line-height:1.6;color:#4e5968;margin:0 0 18px}
.pitch-training summary:focus-visible,.pitch-row summary:focus-visible{outline:3px solid var(--theme-primary);outline-offset:4px;border-radius:4px}
@media(max-width:600px){.pitch-row>summary{gap:10px}.pitch-row dl{grid-template-columns:1fr 1fr}.pitch-row dl>div:last-child{grid-column:1/-1}.pitch-training>summary>span{display:block;margin:4px 0 0}.pitch-row>summary small{font-size:12px}}

/* Flow redesign: keep the active task first, with compact routes back from secondary pages. */
.flow-return{display:flex;position:static;left:auto;right:auto;bottom:auto;width:auto;max-width:none;margin:0 0 14px;padding:0;border:0;background:transparent;z-index:auto}
.flow-return .secondary{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:8px 12px;font-size:13px}
.decision-context,.result-secondary,.ready-context{display:block;margin:20px 0;border-top:1px solid var(--line)}
.decision-context>summary,.result-secondary>summary,.ready-context>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 0;cursor:pointer;font-size:14px;font-weight:700;list-style:none}
.decision-context>summary::-webkit-details-marker,.result-secondary>summary::-webkit-details-marker,.ready-context>summary::-webkit-details-marker{display:none}
.decision-context>summary::after,.result-secondary>summary::after,.ready-context>summary::after{content:'펼치기';font-size:12px;color:var(--muted)}
.decision-context[open]>summary::after,.result-secondary[open]>summary::after,.ready-context[open]>summary::after{content:'접기'}
.decision-context[open]>summary,.result-secondary[open]>summary,.ready-context[open]>summary{margin-bottom:12px}
.career-objective.compact{padding:10px 0;margin:8px 0 12px;border-bottom:1px solid var(--line)}
.career-objective.compact h2{margin-bottom:4px}
.career-objective.compact p{margin:0;font-size:13px}
.result-highlight{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px 12px;padding:12px 0;margin:0 0 12px;border-bottom:1px solid var(--line)}
.result-highlight>span{grid-column:1/-1;font-size:12px;font-weight:700;color:var(--muted)}
.result-highlight>strong{overflow-wrap:anywhere}
.result-highlight .career-moment{grid-column:1/-1;margin:6px 0 0;padding:10px 0 0;border-top:1px solid var(--line);border-bottom:0}
.result-highlight .career-moment h3{font-size:16px;margin:4px 0}
.result-highlight .career-moment p{font-size:13px;margin:4px 0}
.result-highlight .career-moment .moment-press{margin:8px 0}
.result-highlight .career-moment blockquote{margin:6px 0;font-size:13px;line-height:1.5}
.result-hero{border-radius:12px}
.train-plans{border:0;margin:0 0 8px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.train-plans legend{margin:0 0 8px;font-size:14px;font-weight:700}
.train-plan{position:relative;border:0;border-radius:8px;padding:11px 10px;background:#f2f4f6;text-align:left;display:grid;gap:3px;cursor:pointer}
.train-plan input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%);margin:0}
.train-plan:focus-within{outline:3px solid var(--accent);outline-offset:2px}
.train-plan small{font-size:12px;color:var(--muted);line-height:1.4}
.train-plan.on{background:var(--theme-soft);box-shadow:inset 0 0 0 2px var(--accent)}
.train-plan.on b{color:#1768cc}
.train-board .pitch-training{margin:8px 0 12px}
.train-board .pitch-training>summary{padding:12px 0;min-height:48px}
.train-board .pitch-training-body{padding:0 0 12px}
.train-board .pitch-training-body>label{margin:10px 0 6px}
.pitch-plan-note{margin:8px 0;padding:8px 10px;background:var(--theme-soft);border-radius:6px;color:#174f91;font-size:13px;line-height:1.5}
.training-focus{margin:12px 0}
.training-focus h2{font-size:14px;margin:0 0 8px}
.training-reference{margin:10px 0 0;border-top:1px solid var(--line)}
.training-reference>summary{min-height:44px;padding:8px 0;cursor:pointer;font-size:13px;color:var(--muted);list-style:none}
.training-reference>summary::-webkit-details-marker{display:none}
.training-reference>summary::after{content:'펼치기';float:right;font-size:12px}
.training-reference[open]>summary::after{content:'접기'}
.training-reference .train-tools{margin:8px 0}
.train-tool:disabled{opacity:1;color:var(--ink)}
.train-tool:disabled .train-name,.train-tool:disabled small{color:var(--muted)}
.train-tool:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.train-risk{padding:8px 0 4px;border-top:1px solid var(--line)}
.train-msg{font-size:13px;line-height:1.5}
.training-summary{margin:8px 0 0;padding-top:10px;border-top:1px solid var(--line);font-size:14px;font-weight:700;line-height:1.5}
.pitch-usage-inputs label{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 16px;align-items:center}
.pitch-usage-inputs label>span{grid-column:2;grid-row:1}
.pitch-usage-error{grid-column:1/-1;margin:0;color:#a61b29;font-size:12px;line-height:1.45}
.pitch-usage-inputs input[aria-invalid="true"]{border-color:#a61b29;box-shadow:0 0 0 1px #a61b29}
#pitch-usage-total{margin:12px 0 4px;font-weight:700;color:var(--ink)}
.pitch-normalize{min-height:44px;margin-top:8px}
.pitch-growth-result{margin:8px 0 12px;padding:12px 0;border-bottom:1px solid var(--line)}
.pitch-growth-result h2{font-size:16px;margin:0 0 4px}
.pitch-growth-result p{font-size:14px;font-weight:700;margin:0;line-height:1.5}
.pitch-growth-result small{display:block;margin-top:4px;color:var(--muted);font-size:12px}
@media(max-width:480px){
 .train-plans{gap:5px}
 .train-plan{padding:10px 7px}
 .train-plan b{font-size:14px}
 .train-plan small{font-size:11px}
 .train-tools{grid-template-columns:repeat(2,minmax(0,1fr))}
 .result-highlight{gap:5px 9px}
}

/* Keep the fixed mobile action area within one compact screen edge. */
.bottom-nav{height:calc(64px + env(safe-area-inset-bottom));padding:3px 8px calc(3px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0}
.bottom-nav .nav-item{min-height:44px;gap:2px;padding:2px 4px;font-size:10px}
.bottom-nav .icon{width:20px;height:20px}
.flow-dock{bottom:calc(64px + env(safe-area-inset-bottom));padding:6px var(--page-gutter)}
.flow-dock p{font-size:11px;line-height:1.3;margin:0 auto 3px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}
.flow-dock .primary{min-height:48px;padding:8px 14px;font-size:14px}
.train-board~.flow-dock p{display:none}
.train-board~.flow-dock{padding:6px var(--page-gutter)}
.train-board~.flow-dock .primary{min-height:48px}
@media(max-width:480px){.bottom-nav .nav-item{gap:1px;font-size:9px}.bottom-nav .icon{width:19px;height:19px}}

.result-secondary>h2{margin:0 0 16px;font-size:18px;line-height:1.5}

.clubhouse-entry{margin-left:auto;display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--line,#e1e5eb);border-radius:12px;background:white;color:var(--text);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.clubhouse-entry svg{width:20px;height:20px}.clubhouse-entry small{display:block;font-size:11px;color:var(--muted);font-weight:400}
.shop-sheet{width:min(680px,calc(100vw - 32px));max-height:88dvh;padding:24px;border-radius:24px;overflow-y:auto}
.shop-sheet .page-heading{margin-top:8px}.shop-sheet .shop-resume{width:100%;margin-top:18px}.shop-timing{line-height:1.6;color:var(--accent)}
.shop-odds{margin:12px 0;font-size:13px}.shop-odds summary{cursor:pointer}.shop-sheet .gacha-card{animation-delay:calc(min(var(--i),2) * .2s)}
@media(max-width:600px){.shop-sheet{margin:auto 0 0;width:100%;max-width:100%;max-height:88dvh;border-radius:24px 24px 0 0;padding:20px 16px;padding-bottom:max(20px,env(safe-area-inset-bottom))}.clubhouse-entry{padding:6px 8px}.shop-sheet .gacha-actions{flex-wrap:wrap}.shop-sheet .gacha-actions button{flex:1;min-width:130px}}

.shop-sheet[open]{display:flex;flex-direction:column;overflow:hidden}.shop-sheet .dialog-header,.shop-sheet .shop-resume{flex-shrink:0}.shop-sheet-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}.shop-sheet .shop-intro{padding:16px 0}.shop-sheet .gacha-cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
@media(max-width:600px){.shop-sheet .gacha-actions{flex-direction:column}.shop-sheet .gacha-actions button{width:100%}}

/* Secondary site actions stay separate from the game controls. */
.support-account{display:grid;gap:12px;margin-block:24px;padding-block:20px;border-block:1px solid var(--line,#d9ded4)}
.support-account strong{font-size:clamp(20px,5vw,28px);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;user-select:all}
.support-account .secondary{justify-self:start}
#copy-account-status:empty{display:none}

/* Keep the support action directly below the game name at every width. */
.topbar,.onboarding>header{height:auto;min-height:104px;padding-block:14px;gap:12px;flex-wrap:wrap}
.game-identity{min-width:0;flex:1 1 240px}
.game-identity .brand{line-height:1.4;align-items:center}
.game-identity .brand>.icon{display:block;flex:0 0 24px;width:24px;height:24px;margin:0}
.game-title{min-width:0;word-break:keep-all}
.game-title>span{display:inline-block}
.support-link{display:inline-flex;align-items:center;min-height:44px;margin:8px 0 0 34px;padding:0 14px;border:1px solid #d1d6db;border-radius:12px;background:#fff;color:#4e5968;font-size:12px;font-weight:600;line-height:1.4;cursor:pointer}
.support-link:hover{background:var(--theme-soft);border-color:var(--theme-primary);color:var(--theme-primary)}
.support-link:active{background:var(--theme-soft)}
@media(max-width:600px){
 .game-identity{flex-basis:200px}
 .game-identity .brand{font-size:18px}
 .onboard-tools{margin-left:auto;gap:16px}
}

/* Fan-team preference is independent of the player's club. */
:root{--theme-primary:#2468c5;--theme-soft:#e8f3ff;--theme-header:transparent;--theme-header-ink:#191f28;--theme-point:#2468c5}
.topbar,.onboarding>header{background:var(--theme-header);color:var(--theme-header-ink);border-radius:0 0 16px 16px;margin-bottom:16px}
.theme-picker{position:relative;flex:0 0 auto;color:#191f28;font-size:13px}
.theme-picker summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 14px;border:1px solid #d1d6db;border-radius:12px;background:#fff;cursor:pointer;list-style:none}
.theme-picker summary::-webkit-details-marker{display:none}
.theme-picker summary>span:nth-child(2){display:flex;flex-direction:column;gap:2px;font-size:11px;color:#6b7684}
.theme-picker summary strong{font-size:13px;color:#191f28;font-weight:700}
.theme-chevron{margin-left:auto;font-size:20px;line-height:1;transition:transform .15s}
.theme-picker[open] .theme-chevron{transform:rotate(180deg)}
.theme-picker summary:focus-visible,.theme-option:has(input:focus-visible){outline:3px solid var(--theme-primary);outline-offset:3px}
.theme-swatch{display:inline-block;flex:0 0 25px;width:25px;height:25px;border-radius:50%;background:linear-gradient(135deg,var(--swatch) 0 65%,var(--swatch-point) 65%);box-shadow:inset 0 0 0 1px #00000014}
.theme-options{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:340px;max-width:calc(100vw - 32px);margin:0;padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:4px;border:1px solid #e5e8eb;border-radius:16px;background:#fff;box-shadow:0 12px 36px #191f2826;max-height:65vh;overflow:auto}
.theme-options legend{float:left;grid-column:1/-1;width:100%;padding:2px 6px 10px;font-size:14px;font-weight:700}
.theme-option{position:relative;display:flex;align-items:center;gap:8px;min-height:48px;padding:8px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;color:#333d4b}
.theme-option:first-of-type{grid-column:1/-1;border-bottom:1px solid #e5e8eb;border-radius:0;margin-bottom:4px}
.theme-option input{position:absolute;width:1px;height:1px;opacity:0}
.theme-option:hover{background:#f2f4f6}
.theme-option:has(input:checked){background:var(--theme-soft);color:var(--theme-primary)}
.theme-check{margin-left:auto;visibility:hidden;font-size:15px}
.theme-option:has(input:checked) .theme-check{visibility:visible}
.game-identity .brand>.icon{color:inherit}
.topbar .icon-button,.onboarding>header .quiet-button{color:inherit}
.primary,.gacha-actions .primary{background:var(--theme-button,var(--theme-primary));color:var(--theme-button-ink,#fff)}
.primary:hover,.gacha-actions .primary:hover{background:var(--theme-hover)}
::selection{background:var(--theme-soft);color:var(--theme-primary)}
@media(max-width:600px){.theme-picker{flex-basis:100%;order:3}.theme-picker summary>span:nth-child(2){flex-direction:row;align-items:baseline;gap:8px}.theme-options{width:100%;box-sizing:border-box}.topbar .game-identity{flex-basis:180px}.onboarding>header .onboard-tools{gap:12px}}
@media(prefers-reduced-motion:reduce){.theme-chevron{transition:none}}
