:root{--ink:#f1f4e9;--muted:#92998a;--paper:#10120d;--panel:#191c15;--line:#30352a;--acid:#d8ff3e;--red:#ff5a43;--blue:#69b7ff;--mono:"Consolas","SFMono-Regular",monospace;--sans:Inter,"Segoe UI","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);min-height:100vh;background-image:radial-gradient(circle at 78% 8%,#273214 0,transparent 28%),linear-gradient(#ffffff05 1px,transparent 1px);background-size:auto,100% 48px}button,input,select{font:inherit}.topbar{position:sticky;top:0;z-index:10;height:72px;padding:0 max(24px,calc((100vw - 1320px)/2));display:flex;align-items:center;justify-content:space-between;background:#10120de8;backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.brand{color:var(--ink);text-decoration:none;font:900 21px var(--sans);letter-spacing:-1px}.brand span{font-weight:300}.brand b{color:var(--acid);font-size:11px;vertical-align:top;margin-left:2px}nav{display:flex;gap:4px}nav button{border:0;background:none;color:var(--muted);padding:10px 15px;cursor:pointer;font-weight:700;font-size:13px}nav button:hover,nav button.active{color:var(--ink)}nav .admin-link{border:1px solid var(--line);margin-left:10px}.page{display:none;max-width:1320px;margin:auto;padding:52px 24px 90px}.page.active{display:block}.hero{min-height:340px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.hero h1{font-size:clamp(48px,8vw,110px);line-height:.86;letter-spacing:-.075em;margin:15px 0 24px;max-width:850px}.hero p:not(.eyebrow){color:var(--muted);font-size:18px}.eyebrow{font:700 11px var(--mono);letter-spacing:.16em;color:var(--acid);margin:0}.hero-number{text-align:right;border-left:1px solid var(--line);padding:45px}.hero-number strong{font:800 76px/1 var(--mono);display:block;color:var(--acid)}.hero-number span{color:var(--muted);font-size:12px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin:48px 0 24px}.section-head h1,.section-head h2{font-size:32px;margin:6px 0 0;letter-spacing:-.04em}.match-list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}.match-card{background:var(--panel);display:grid;grid-template-columns:100px 1fr auto;align-items:center;padding:20px;gap:25px}.match-id{font:700 13px var(--mono);color:var(--muted)}.teams{display:flex;gap:8px;flex-wrap:wrap}.team{padding-right:16px;color:var(--muted)}.team.winner{color:var(--ink);font-weight:700}.winner-mark{font:800 11px var(--mono);background:var(--acid);color:#10120d;padding:5px 8px}.empty{display:block;background:var(--panel);padding:60px;text-align:center;color:var(--muted)}.player-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.player-card{background:var(--panel);border:1px solid var(--line);padding:24px;text-align:left;color:var(--ink);cursor:pointer;transition:.2s}.player-card:hover{border-color:var(--acid);transform:translateY(-2px)}.player-card strong{font-size:19px;display:block}.player-card span{color:var(--muted);font:12px var(--mono)}.detail-panel{margin-top:24px}.hidden{display:none}.stat-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:24px}.stat-box{background:var(--panel);padding:24px}.stat-box h3{margin:0 0 18px}.metrics{display:flex;gap:24px;flex-wrap:wrap}.metric strong{display:block;font:800 26px var(--mono);color:var(--acid)}.metric span{font-size:10px;color:var(--muted)}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--muted);font:10px var(--mono);text-transform:uppercase}th,td{padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}.record-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.record-board{border:1px solid var(--line);background:var(--panel);padding:22px}.record-board h3{margin:0 0 16px;text-transform:uppercase}.record-row{display:grid;grid-template-columns:24px 1fr auto;padding:10px 0;border-top:1px solid var(--line)}.record-row b{color:var(--acid);font:700 18px var(--mono)}.pair-list{display:grid;gap:8px}.pair-card{display:grid;grid-template-columns:60px 1fr 1fr;align-items:center;border:1px solid var(--line);background:var(--panel);padding:20px}.pair-rank{font:800 28px var(--mono);color:var(--muted)}.pair-names{font-weight:800;font-size:20px}.pair-score{text-align:right}.pair-score strong{font:800 30px var(--mono);color:var(--acid)}.pair-score span{display:block;color:var(--muted);font-size:11px}.inline-field{font-size:12px;color:var(--muted)}.inline-field input{width:60px;margin-left:8px}.admin-layout{display:grid;grid-template-columns:310px 1fr;gap:16px}.upload-card,.editor-card{background:var(--panel);border:1px solid var(--line);padding:22px}.field{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:11px}.field input,.field select,.inline-field input{background:#0e100c;border:1px solid var(--line);color:var(--ink);padding:11px;outline:none}.field input:focus,.field select:focus{border-color:var(--acid)}.drop-zone{display:flex;min-height:190px;margin:16px 0;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #59604f;cursor:pointer;text-align:center}.drop-zone:hover,.drop-zone.drag{border-color:var(--acid);background:#d8ff3e08}.drop-zone span,.drop-zone small{color:var(--muted);margin-top:8px}.file-preview{font-size:11px;color:var(--muted);margin-bottom:12px}.primary,.secondary{border:0;padding:12px 18px;font-weight:800;cursor:pointer}.primary{background:var(--acid);color:#111}.primary:disabled{opacity:.35;cursor:not-allowed}.secondary{border:1px solid var(--line);background:transparent;color:var(--ink)}.upload-card .primary{width:100%}.fine-print{font-size:11px;line-height:1.6;color:var(--muted)}.editor-head,.editor-actions,.match-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.editor-head h2{margin:0}.editor-head span{font-size:11px;color:var(--muted)}.match-meta{margin:24px 0;align-items:flex-end}.grow{flex:1}.table-wrap{overflow:auto;max-width:100%}.edit-table input,.edit-table select{width:54px;background:#0e100c;color:var(--ink);border:1px solid var(--line);padding:7px}.edit-table .uid{width:130px}.shot{display:flex;align-items:center;gap:2px}.shot input{width:38px}.uncertain input,.uncertain select{border-color:#f5b83d}.remove-row{background:none;border:0;color:var(--red);cursor:pointer}.editor-actions{margin-top:20px}.status-dot{color:var(--muted);font-size:11px}.status-dot.ok{color:var(--acid)}#toast{position:fixed;right:24px;bottom:24px;background:var(--ink);color:#111;padding:14px 20px;font-weight:700;transform:translateY(100px);opacity:0;transition:.25s;z-index:20}#toast.show{transform:none;opacity:1}#toast.error{background:var(--red);color:white}@media(max-width:900px){.topbar{height:auto;padding:14px 16px;align-items:flex-start}.topbar nav{overflow-x:auto}nav button{padding:8px}.brand{padding-top:6px}.page{padding:35px 16px}.hero{min-height:300px}.hero-number{display:none}.record-grid,.stat-strip{grid-template-columns:1fr}.admin-layout{grid-template-columns:1fr}.match-card{grid-template-columns:65px 1fr}.winner-mark{display:none}.match-meta{align-items:stretch;flex-direction:column}.pair-card{grid-template-columns:40px 1fr auto}}@media(max-width:600px){nav .admin-link{margin-left:0}.brand{display:none}.topbar{justify-content:center}.hero h1{font-size:52px}.record-grid{grid-template-columns:1fr}.page{padding-top:28px}.pair-names{font-size:15px}.pair-score strong{font-size:22px}}
/* Player report uses two wider cards so all shooting splits remain readable. */
.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-box .metrics{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:760px){.stat-strip{grid-template-columns:1fr}.stat-box .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

nav{gap:8px}nav button{min-height:42px;padding:11px 18px;border:1px solid transparent;border-radius:8px;font-size:14px;transition:color .18s,background .18s,border-color .18s,transform .18s}nav button:hover{background:#24291d;border-color:var(--line);transform:translateY(-1px)}nav button.active{color:#10120d;background:var(--acid);border-color:var(--acid)}nav .admin-link{margin-left:6px}.shooting-note{display:inline;color:var(--muted);font-weight:500;white-space:nowrap}@media(max-width:760px){.topbar{height:auto;min-height:72px;padding-block:10px;align-items:flex-start}.topbar nav{max-width:72vw;overflow-x:auto;gap:5px;padding-bottom:3px}.topbar nav button{min-height:38px;padding:9px 13px;white-space:nowrap;font-size:13px}}

.record-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:28px 0 30px;padding:5px;border:1px solid var(--line);border-radius:12px;background:#0b0d09}.record-tabs button{min-height:52px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;font-weight:800;letter-spacing:.04em;transition:background .18s,color .18s,border-color .18s}.record-tabs button:hover{color:var(--ink);background:var(--panel)}.record-tabs button.active{color:#10120d;background:var(--acid);border-color:var(--acid)}.record-panel{display:none}.record-panel.active{display:grid}@media(max-width:560px){.record-tabs{gap:3px;padding:4px}.record-tabs button{min-height:46px;font-size:13px;letter-spacing:0}}

.template-panel{margin:20px 0;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#20271a,#151912);padding:24px}.template-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.template-head h3{margin:8px 0 0;font-size:24px}.template-button{border:1px solid var(--acid);border-radius:8px;background:var(--acid);color:#10120d;padding:12px 18px;font-weight:800;cursor:pointer}.template-button:disabled{border-color:var(--line);background:#30352a;color:#92998a;cursor:not-allowed}.template-progress{margin:12px 0;color:var(--muted);font-size:12px}.template-primary{display:grid;grid-template-columns:1fr auto;gap:8px 20px;padding:20px;border:1px solid #55633d;border-radius:10px;background:#d8ff3e12}.template-primary h3{margin:5px 0 0;font-size:22px}.template-primary>b{font:800 34px var(--mono);color:var(--acid)}.template-primary>span{color:var(--muted)}.template-primary>p{grid-column:1/-1;margin:5px 0 0;color:var(--ink);line-height:1.6}.template-alternatives{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px}.template-match{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:8px}.template-match span,.template-match small{color:var(--muted)}.template-match small{line-height:1.5}.template-summary{margin:16px 0 0;color:var(--ink);line-height:1.6}.template-panel .fine-print{margin-bottom:0}@media(max-width:600px){.template-panel{padding:16px}.template-head{align-items:flex-start;flex-direction:column}.template-button{width:100%}.template-alternatives{grid-template-columns:1fr}.template-primary h3{font-size:19px}}

.position-filter{display:flex;gap:4px;width:max-content;max-width:100%;margin:0 0 18px;padding:4px;border:1px solid var(--line);background:#0b0d09;overflow-x:auto}.position-filter.hidden{display:none}.position-filter button{min-height:40px;padding:9px 16px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;font-weight:800;white-space:nowrap}.position-filter button:hover{color:var(--ink);background:var(--panel)}.position-filter button.active{border-color:var(--acid);background:var(--acid);color:#10120d}.player-position-filter{margin-top:-8px}.average-position-filter{margin-top:-16px}@media(max-width:560px){.position-filter{width:100%}.position-filter button{flex:1;padding-inline:10px}.player-position-filter button{flex:0 0 auto}}

.career-totals{margin-top:30px;padding:24px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#1c2118,#151912)}.career-totals h2{margin:8px 0 20px;font-size:24px}.career-totals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:12px}.career-totals-grid span{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:12px}.career-totals-grid strong{color:var(--ink);font:800 22px var(--mono)}

.template-overview{margin:20px 0;padding:20px;border:1px solid var(--line);border-radius:12px;background:#171b13}.template-overview h2{margin:8px 0 16px;font-size:22px}.template-overview-list{display:grid;gap:8px}.template-overview-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px}.template-overview-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.template-overview-row button{min-width:58px}@media(max-width:560px){.template-overview{padding:16px}.template-overview-row{gap:8px}.template-overview-row strong{font-size:13px}}
