:root{color:#e8edf5;font-synthesis:none;--bg:#08101d;--panel:#111b2b;--panel2:#162235;--line:#26364d;--muted:#8fa0b7;--orange:#ff7a2f;--green:#4bd29a;--red:#ff6b6b;background:#08101d;font-family:Noto Sans HK,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 70% 0,#132443 0,transparent 35%),var(--bg);min-width:320px;margin:0}button,select,input{font:inherit}button{border:1px solid var(--line);color:#e8edf5;cursor:pointer;background:#172437;border-radius:8px;padding:.7rem 1rem;font-weight:700}button:hover:not(:disabled){background:#1d2d44;border-color:#4c6382}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--orange);border-color:var(--orange);color:#111}.primary:hover:not(:disabled){background:#ff8d50;border-color:#ff8d50}.danger{color:#f99}.wide{width:100%}.app-shell{grid-template-columns:220px minmax(0,1fr);min-height:100vh;display:grid}aside{border-right:1px solid var(--line);background:#0a1321;flex-direction:column;height:100vh;padding:25px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;margin:0 8px 30px;font-weight:800;line-height:1.25;display:flex}.brand>span{color:#10151c;background:var(--orange);padding:9px 7px;font-family:Oswald,sans-serif;font-size:1.3rem;transform:skew(-7deg)}nav{gap:4px;display:grid}nav button{text-align:left;color:var(--muted);background:0 0;border:0;padding:10px 13px}nav button.active{color:#fff;border-left:3px solid var(--orange);background:#1b293d}.season-chip{border-top:1px solid var(--line);color:var(--muted);margin-top:auto;padding:18px 12px}.season-chip b{color:#fff}main{min-width:0;padding:0 34px 50px}header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:90px;margin-bottom:26px;display:flex}header h1{margin:3px 0 0;font-size:1.65rem}header small,.muted{color:var(--muted)}.header-stats{color:var(--muted);align-items:center;gap:24px;display:flex}.header-stats b{color:#fff;margin-left:6px}.panel{border:1px solid var(--line);background:linear-gradient(145deg,#142032fa,#0e1827fa);border-radius:12px;padding:22px;box-shadow:0 12px 35px #00000029}.grid{grid-template-columns:1.2fr .8fr;gap:18px;display:grid}.hero{background:linear-gradient(105deg,#0f1c30f5,#142841e6),repeating-linear-gradient(90deg,#0000 0 80px,#ffffff05 81px);grid-column:1/-1;justify-content:space-between;align-items:end;min-height:190px;display:flex}.hero h2{margin:.4rem 0;font-size:2.1rem}.eyebrow{letter-spacing:.14em;color:var(--orange);text-transform:uppercase;font-family:Oswald,sans-serif;font-size:.78rem}.record{grid-template-columns:auto auto;align-items:baseline;column-gap:8px;display:grid}.record strong{font:700 3.6rem Oswald}.record span{color:var(--muted)}.section-title{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.section-title h3{margin:0}.section-title p{color:var(--muted);margin:5px 0 0}.section-title>span{color:var(--orange);font:700 1.05rem Oswald}.task{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;border-radius:0;grid-template-columns:34px 1fr auto;align-items:center;width:100%;padding:13px 4px;display:grid}.task span:nth-child(2){display:grid}.task small{color:var(--muted);margin-top:2px;font-weight:400}.task i{font-size:1.3rem}.check{color:var(--muted);font-size:1.4rem}.check.done{color:var(--green)}.checklist>.primary{margin-top:18px}.versus,.big-versus{text-align:center;justify-content:center;align-items:center;gap:24px;margin:30px 0;display:flex}.versus div{gap:4px;display:grid}.versus b{color:#fff;font:700 2rem Oswald}.versus small{color:var(--muted)}.versus em{color:var(--orange);font:700 1rem Oswald}.warning{color:#ffc171}.success{color:var(--green)}.box{border:1px solid;border-radius:7px;padding:10px 12px}.news article{border-top:1px solid var(--line);gap:12px;padding:12px 0;display:flex}.news article>span{background:#8192aa;border-radius:50%;width:7px;height:7px;margin-top:9px}.news article>span.good{background:var(--green)}.news article>span.bad{background:var(--red)}.news article p{margin:3px 0}.news article small{color:var(--muted)}.split{grid-template-columns:minmax(640px,1.5fr) minmax(330px,.8fr);align-items:start;gap:18px;display:grid}.stack{gap:18px;display:grid}.table-panel{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);padding:10px;font-size:.75rem}td{border-bottom:1px solid #1e2d42;padding:11px 10px}tbody tr{transition:all .12s}tbody tr:hover,tbody tr.selected{background:#19283d}.tag{color:#ffb17e;background:#5e3a1f;border-radius:10px;margin-left:8px;padding:2px 6px}.player-card{position:sticky;top:110px}.player-card h2{margin:.3rem 0;font-size:2rem}.skill-grid{grid-template-columns:1fr 1fr;gap:11px 18px;margin:24px 0;display:grid}.skill-grid>div{justify-content:space-between;padding-bottom:7px;display:flex;position:relative;overflow:hidden}.skill-grid span{color:var(--muted);font-size:.8rem}.skill-grid i{background:var(--orange);height:2px;position:absolute;bottom:0;left:0}.player-card label,label{color:var(--muted);gap:7px;font-size:.85rem;display:grid}select,input{color:#fff;border:1px solid var(--line);background:#0c1727;border-radius:7px;padding:9px}.form-grid{grid-template-columns:repeat(4,minmax(160px,1fr));gap:16px;display:grid}.toggle{align-items:center;gap:8px;display:flex}.toggle input{accent-color:var(--orange)}.minutes{width:75px}.validation{color:#ff9ca5;background:#2a1a24;border:1px solid #6b3940;border-radius:8px;margin-top:15px;padding:12px}.validation p{margin:4px 0}.report-grid{grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:12px;display:grid}.report-grid article{border:1px solid var(--line);background:#0d1827;border-radius:9px;padding:16px}.report-grid article>span{float:right;color:var(--orange);font:700 1.3rem Oswald}.report-grid h3{margin:.2rem 0}.report-grid p{color:var(--muted)}dl{grid-template-columns:1fr 1fr;margin:0;font-size:.85rem;display:grid}dt{color:var(--muted)}dd{text-align:right;margin:0}.match-entry{text-align:center}.big-versus h2{min-width:220px}.big-versus b{color:var(--orange)}.match-entry button{margin:0 5px}.scoreboard{text-align:center;grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.scoreboard>div:first-child,.scoreboard>div:last-child{display:grid}.scoreboard strong{font:700 4rem Oswald}.quarters{gap:12px;display:flex}.quarters span{color:var(--muted);font-size:.75rem;display:grid}.quarters b{color:#fff}.pbp>div:not(.section-title){border-top:1px solid var(--line);grid-template-columns:85px 1fr 55px;align-items:center;padding:7px 0;display:grid}.pbp time{color:var(--muted);font:500 .8rem Oswald}.pbp p{margin:0}.pbp>div>b{text-align:right}.finance-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.finance-grid section:last-child{grid-column:1/-1}.metric{gap:10px;display:grid}.metric small{color:var(--muted)}.metric strong{font:700 2.3rem Oswald}.button-row{flex-wrap:wrap;gap:10px;display:flex}.toast{color:#ffb4bd;background:#351e28;border:1px solid #814353;border-radius:8px;margin-bottom:15px;padding:11px 42px 11px 14px;position:relative}.toast.good{color:#8de1bd;background:#153328;border-color:#31755a}.toast button{background:0 0;border:0;position:absolute;top:2px;right:4px}.start{place-items:center;min-height:100vh;padding:30px;display:grid;position:relative;overflow:hidden}.court-lines{border:2px solid #ff7a2f1f;border-radius:50%;width:700px;height:700px;position:absolute;top:-220px;right:-210px}.court-lines:after{content:"";background:#ff7a2f1f;width:100%;height:2px;position:absolute;top:50%}.start-card{border:1px solid var(--line);background:#0d1726f0;border-radius:18px;width:min(720px,100%);padding:50px;position:relative;box-shadow:0 30px 100px #0008}.start-card>h1{margin:.25rem 0;font-size:3.4rem}.start-card>p:not(.eyebrow){color:var(--muted);max-width:570px}.start-actions{gap:10px;margin:28px 0;display:flex}.save-list{border-top:1px solid var(--line);margin-top:30px}.save-row{grid-template-columns:1fr auto;gap:10px;margin:8px 0;display:grid}.save-row>button:first-child{text-align:left;display:grid}.save-row small{color:var(--muted);font-weight:400}.storage-note{font-size:.8rem!important}.modal{z-index:20;background:#02060dcc;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{border:1px solid var(--line);background:#111d2e;border-radius:14px;width:min(560px,100%);padding:28px}.modal-card select{width:100%;margin:14px 0 24px}.modal-actions{justify-content:flex-end;gap:10px;display:flex}@media (max-width:980px){.app-shell{grid-template-columns:82px 1fr}.brand div{display:none}.brand{justify-content:center}.brand>span{font-size:1rem}nav button{text-align:center;padding:10px 2px;font-size:.78rem}.season-chip{text-align:center;font-size:.75rem}main{padding:0 18px 35px}.grid,.split{grid-template-columns:1fr}.player-card{position:static}.form-grid{grid-template-columns:1fr 1fr}.header-stats span{display:none}}@media (max-width:620px){.app-shell{display:block}aside{z-index:10;background:#0a1321;width:auto;height:64px;padding:5px;position:fixed;inset:auto 0 0}aside .brand,aside .season-chip{display:none}nav{display:flex;overflow-x:auto}nav button{min-width:68px}main{padding:0 12px 85px}header{height:72px}.header-stats{gap:8px}.grid{display:block}.grid>*{margin-bottom:12px}.hero{min-height:150px}.hero h2{font-size:1.4rem}.record strong{font-size:2rem}.form-grid,.finance-grid{grid-template-columns:1fr}.scoreboard{grid-template-columns:1fr 1fr}.scoreboard .quarters{grid-area:2/1/auto/-1;justify-content:center}.big-versus h2{min-width:0;font-size:1.1rem}.start-card{padding:28px 20px}.start-card>h1{font-size:2.2rem}.skill-grid{grid-template-columns:1fr}}.result-tabs{z-index:4;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#08101df0;gap:8px;padding:8px 0;display:flex;position:sticky;top:0}.result-tabs button{flex:1}.result-tabs button.active{background:var(--orange);border-color:var(--orange);color:#111}.metric-row{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.metric-row>span{border:1px solid var(--line);min-width:105px;color:var(--muted);background:#0b1625;border-radius:8px;gap:3px;padding:9px 11px;font-size:.75rem;display:grid}.metric-row b{color:#fff;font-size:.95rem}.analysis-columns{grid-template-columns:1fr 1fr;gap:18px;display:grid}.analysis-columns dl{grid-template-columns:1fr 1fr;gap:8px 20px}.pbp .scoring-event{background:#ff7a2f0e}.pbp em{color:var(--orange);font-size:.72rem;font-style:normal}.pbp small{min-width:32px;color:var(--orange);display:inline-block}tfoot{background:#0b1625}tfoot th{color:#e8edf5;border-top:2px solid var(--line)}@media (max-width:620px){.analysis-columns{grid-template-columns:1fr}.scoreboard .quarters{flex-wrap:wrap}.pbp>div:not(.section-title){grid-template-columns:70px 1fr 45px}}.clickable{cursor:pointer}.link-button{color:#8cc8ff;text-align:left;background:0 0;border:0;padding:2px 4px}.link-button:hover:not(:disabled){background:0 0;border-color:#0000;text-decoration:underline}.completion{text-align:center;border-color:#31755a}.completion h3{color:var(--green)}.press-post{border-left:3px solid var(--orange)}.press-post .section-title small{color:var(--muted)}.dashboard-alerts{gap:7px;display:grid}.dashboard-alerts .section-title{margin-bottom:4px}.dashboard-alerts>button{text-align:left;justify-content:space-between;display:flex}.market-table table{min-width:900px}.player-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;display:flex}.player-header h2{margin:.25rem 0;font-size:2rem}.subtabs{gap:8px;display:flex;overflow-x:auto}.subtabs button.active{background:var(--orange);border-color:var(--orange);color:#111}.trade-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.trade-grid td small{color:var(--red);display:block}@media (max-width:980px){.trade-grid{grid-template-columns:1fr}}.player-card>.form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.player-card>.form-grid label,.player-card>.form-grid select{width:100%;min-width:0}.new-game-modal{width:min(760px,100%);max-height:90vh;overflow:auto}.new-game-fields{grid-template-columns:2fr 1fr 1fr;gap:14px;display:grid}.new-game-fields input{width:100%}.new-game-fields small{color:#ffb27f;min-height:1.2em}.template-detail{border:1px solid var(--line);background:#0b1625;border-radius:9px;margin-bottom:18px;padding:14px}.template-detail p{color:var(--muted);margin:.35rem 0}.competition-badge{border:1px solid var(--line);border-radius:999px;padding:3px 8px;display:inline-block}.competition-badge.international{color:#8cc8ff}.competition-badge.national{color:#ffb27f}@media (max-width:980px){.player-card>.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.new-game-fields{grid-template-columns:1fr 1fr}.new-game-fields label:first-child{grid-column:1/-1}}@media (max-width:620px){.player-card>.form-grid,.new-game-fields{grid-template-columns:1fr}.new-game-fields label:first-child{grid-column:auto}}.player-card>.form-grid label{font-size:0}.player-card>.form-grid label:before{font-size:.85rem}.player-card>.form-grid label:first-child:before{content:"重要性"}.player-card>.form-grid label:nth-child(2):before{content:"進攻風格"}.player-card>.form-grid label:nth-child(3):before{content:"防守風格"}.player-card>.form-grid label:nth-child(4):before{content:"近距離出手"}.player-card>.form-grid label:nth-child(5):before{content:"中距離出手"}.player-card>.form-grid label:nth-child(6):before{content:"三分出手"}.player-card>.form-grid select{font-size:.85rem}.dense-table table,.training-table table{min-width:1500px}.dense-table th,.training-table th{cursor:pointer;white-space:nowrap}.sticky-name{z-index:2;background:#111b2b;min-width:130px;position:sticky;left:0}.training-table td small,.dense-table td small{color:var(--muted);display:block}.gain{font-weight:800;color:var(--green)!important}.skills-inline{white-space:normal;min-width:540px;color:var(--muted);font-size:.78rem}.sector-panel{grid-column:1/-1}.finance-grid .table-panel{grid-column:1/-1;max-height:430px}.finance-grid dl{gap:8px}.finance-grid dd{font-weight:800}.training-table select{min-width:120px}.system-info{color:var(--muted);overflow-wrap:anywhere;margin-top:18px;font-size:.85rem}.system-info summary{cursor:pointer}.system-info dl{gap:8px;margin-top:12px}aside{overflow-y:auto}@media (max-width:620px){.stack,.panel{min-width:0}.trade-grid>section{overflow:auto}.section-title,.start-actions{flex-wrap:wrap}}
