:root{--miller-blue: #2657a7;--miller-blue-dark: #1c4180;--miller-orange: #f26c23;--miller-teal: #00b8bc;--miller-gold: #d7df23;--ink: #1a1a1a;--muted: #5b6470;--line: #e4e7ec;--surface: #ffffff;--bg: #f6f7f9;--win: #2e7d32;--loss: #b3261e;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);--shadow-lg: 0 4px 12px rgba(16, 24, 40, .1);--font-display: "Poppins", system-ui, sans-serif;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--maxw: 1080px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink);background:var(--bg);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}table,.tabular{font-variant-numeric:tabular-nums}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.15;margin:0}a{color:var(--miller-blue);text-decoration:none}a:hover{text-decoration:underline}.app{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 16px}.main{flex:1;padding:24px 0 64px}.site-header{background:#fff;color:var(--ink);border-bottom:4px solid var(--miller-orange);box-shadow:0 1px 2px #1018280d;position:sticky;top:0;z-index:50}.site-header .container{display:flex;align-items:center;gap:16px;min-height:68px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px;color:var(--ink)}.brand:hover{text-decoration:none}.brand-logo{display:block;width:auto}.brand-logo-full{height:44px}.brand-logo-mark{height:40px;display:none}.brand-kicker{display:flex;flex-direction:column;line-height:1.05;padding-left:12px;border-left:2px solid var(--line);font-family:var(--font-display);text-transform:uppercase}.brand-kicker .k1{font-weight:800;font-size:15px;letter-spacing:1px;color:var(--miller-blue)}.brand-kicker .k2{font-weight:700;font-size:11px;letter-spacing:2px;color:var(--miller-orange)}.nav{display:flex;gap:2px;margin-left:auto;flex-wrap:wrap}.nav a{color:var(--muted);font-weight:600;font-size:14px;padding:8px 12px;border-radius:8px;white-space:nowrap}.nav a:hover{color:var(--miller-blue);background:#eef2f8;text-decoration:none}.nav a.active{color:#fff;background:var(--miller-blue)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:18px}.section-title{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-family:var(--font-display);font-weight:700;margin-bottom:12px}.page-head{margin-bottom:20px}.page-head h1{font-size:28px}.page-head .sub{color:var(--muted);margin-top:4px}.chip{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-display);font-weight:700;font-size:12px;padding:2px 8px;border-radius:999px;line-height:1.6}.wl{width:24px;height:24px;justify-content:center;padding:0;border-radius:6px;color:#fff;font-size:13px}.wl-W{background:var(--win)}.wl-L{background:var(--loss)}.chip-blue{background:#2657a71a;color:var(--miller-blue)}.chip-orange{background:#f26c231f;color:#c8501a}.chip-teal{background:#00b8bc24;color:#067f82}.chip-muted{background:#eef1f4;color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-display);font-weight:600;font-size:14px;padding:9px 14px;border-radius:var(--radius-sm);background:var(--miller-blue);color:#fff;border:none;cursor:pointer}.btn:hover{background:var(--miller-blue-dark);text-decoration:none}.btn-orange{background:var(--miller-orange)}.btn-orange:hover{background:#d9591a}.btn-ghost{background:transparent;color:var(--miller-blue);border:1px solid var(--line)}.btn-ghost:hover{background:#f0f3f8}.btn-sm{padding:6px 10px;font-size:13px}.link-out:after{content:" ↗";font-size:.85em;opacity:.7}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:14px}table.data th,table.data td{text-align:right;padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}table.data th:first-child,table.data td:first-child{text-align:left}table.data thead th{color:var(--muted);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.5px}table.data tbody tr:hover{background:#fafbfc}table.data tr.total-row td{font-weight:700;border-top:2px solid var(--line);background:#fbfcfd}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:12px}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.gamecard{position:relative;overflow:hidden}.gamecard .label{font-family:var(--font-display);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--miller-orange);margin-bottom:8px}.gamecard .opp{font-family:var(--font-display);font-weight:800;font-size:24px;line-height:1.1}.gamecard .meta{color:var(--muted);font-size:14px;margin-top:4px}.gamecard .score{font-family:var(--font-display);font-weight:800;font-size:34px;letter-spacing:1px}.record-strip{display:flex;gap:28px;flex-wrap:wrap}.record-strip .stat .n{font-family:var(--font-display);font-weight:800;font-size:30px}.record-strip .stat .l{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1px;font-weight:700}.scoreboard{background:linear-gradient(135deg,var(--miller-blue),var(--miller-blue-dark));color:#fff;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-lg)}.scoreboard .teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}.scoreboard .tname{font-family:var(--font-display);font-weight:700;font-size:18px}.scoreboard .tscore{font-family:var(--font-display);font-weight:800;font-size:46px;line-height:1}.scoreboard .mid{text-align:center;color:#cdd8ec;font-weight:700}.scoreboard .side-r{text-align:right}.impact caption{text-align:left;font-family:var(--font-display);font-weight:700;font-size:14px;margin-bottom:6px;color:var(--ink)}.impact td.rowlabel{font-weight:600;color:var(--muted)}.impact tr.net td{font-weight:700}.net-pos{color:var(--win)}.net-neg{color:var(--loss)}.section-nav{position:sticky;top:64px;z-index:10;display:flex;gap:6px;overflow-x:auto;padding:8px 0;background:var(--bg);margin-bottom:8px}.section-nav a{font-size:13px;font-weight:600;padding:6px 11px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--muted);white-space:nowrap}.section-nav a:hover{color:var(--miller-blue);border-color:var(--miller-blue);text-decoration:none}.pos{display:inline-block;min-width:34px;text-align:center;font-family:var(--font-display);font-weight:700;font-size:11px;padding:2px 6px;border-radius:6px;background:var(--miller-blue);color:#fff}.pos-group-head{display:flex;align-items:center;gap:8px;margin:4px 0 8px}.pos-group-head h3{font-size:15px}.perf-row{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.perf-row:last-child{border-bottom:none}.perf-name{font-weight:700}.perf-line{color:var(--muted);font-size:14px}.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.filters button{font-family:var(--font-display);font-weight:600;font-size:13px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer}.filters button.active{background:var(--miller-blue);color:#fff;border-color:var(--miller-blue)}.empty{text-align:center;color:var(--muted);padding:28px 16px}.note{background:#fff8f2;border:1px solid #f5d9c2;color:#8a4b1f;border-radius:var(--radius-sm);padding:10px 12px;font-size:14px}.matchup-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.matchup-select{display:flex;flex-direction:column;gap:3px}.matchup-select select{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--miller-blue);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px;background:#fff;cursor:pointer}.matchup-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted);padding:2px 2px 4px}.legend-item{display:inline-flex;align-items:center;gap:6px}.dot{width:11px;height:11px;border-radius:3px;display:inline-block}.dot-blue{background:var(--miller-blue)}.dot-orange{background:var(--miller-orange)}.dot-orange-2{background:repeating-linear-gradient(45deg,var(--miller-orange),var(--miller-orange) 3px,#f9a877 3px,#f9a877 6px)}.dir-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:12px 2px 2px;padding-bottom:8px;border-bottom:2px solid var(--line)}.dir-head h2{font-size:20px}.dir-sub{font-family:var(--font-display);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.6px}.dir-wash .dir-sub{color:var(--miller-blue)}.dir-opp .dir-sub{color:#c8501a}.dir-st .dir-sub{color:#067f82}.dir-st{border-bottom-color:#00b8bc80}.vs-card{overflow:hidden}.vs-head{padding:14px 18px;border-bottom:1px solid var(--line);background:#fbfcfd}.vs-title{font-family:var(--font-display);font-weight:800;font-size:18px}.vs-context{font-size:13px;color:var(--muted);margin-top:2px}.vs-body{display:grid;grid-template-columns:1fr 44px 1fr;align-items:start}.vs-col{padding:16px 18px}.vs-wash{border-left:4px solid var(--miller-blue)}.vs-opp{border-left:4px solid var(--miller-orange);background:#fffdfb}.vs-col-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:12px}.vs-team{font-family:var(--font-display);font-weight:800;font-size:16px;color:var(--miller-blue)}.vs-team-opp{color:#c8501a}.vs-role{font-family:var(--font-display);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.vs-scope{font-size:12px;color:var(--muted);margin-left:auto}.vs-divider{display:grid;place-items:center;align-self:stretch;position:relative}.vs-divider:before{content:"";position:absolute;top:16px;bottom:16px;width:1px;background:var(--line)}.vs-divider span{position:relative;z-index:1;background:#fff;border:1px solid var(--line);border-radius:999px;width:34px;height:34px;display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:12px;text-transform:uppercase;color:var(--muted)}.mtiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:8px}.mtile{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 6px;text-align:center}.vs-opp .mtile{background:#fff}.mv{font-family:var(--font-display);font-weight:800;font-size:20px;line-height:1.1}.ml{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-top:2px;font-weight:600}.mh{font-size:11px;color:var(--miller-blue);margin-top:2px;font-weight:600}.mnet{font-size:11px;margin-top:2px;font-weight:700}.layer+.layer{margin-top:12px}.layer-h{font-family:var(--font-display);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:7px;display:flex;align-items:center;gap:6px}.layer-empty{font-size:13px;color:var(--muted);background:#f6f7f9;border:1px dashed var(--line);border-radius:var(--radius-sm);padding:10px 12px;margin-top:12px}.vs-takeaway{position:relative;border-top:1px solid var(--line);padding:12px 96px 12px 18px;font-size:14px;background:#fff8f2;border-left:4px solid var(--miller-orange)}.vs-takeaway-tag{display:inline-block;font-family:var(--font-display);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:#c8501a;margin-right:8px}.take-edited{color:var(--muted);font-weight:600;text-transform:none;letter-spacing:0}.take-empty{color:var(--muted);font-style:italic}.take-edit-btn,.row-edit-btn{font-family:var(--font-display);font-weight:600;font-size:12px;color:#c8501a;background:#fff;border:1px solid #f5d9c2;border-radius:999px;padding:4px 10px;cursor:pointer}.take-edit-btn{position:absolute;top:10px;right:12px}.take-edit-btn:hover,.row-edit-btn:hover{background:var(--miller-orange);color:#fff;border-color:var(--miller-orange)}.vs-takeaway-edit{padding:12px 18px}.take-input{display:block;width:100%;margin-top:6px;box-sizing:border-box;font-family:var(--font-body);font-size:14px;line-height:1.5;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 11px;background:#fff;resize:vertical}.take-input:focus{outline:none;border-color:var(--miller-orange);box-shadow:0 0 0 3px #f26c231f}.take-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.take-reset{margin-left:auto;color:var(--muted)}.matchup-tip{margin:-4px 2px 4px}@media (max-width: 720px){.vs-body{grid-template-columns:1fr}.vs-wash,.vs-opp{border-left:4px solid}.vs-divider{flex-direction:row;padding:4px 0}.vs-divider:before{top:auto;bottom:auto;left:16px;right:16px;height:1px;width:auto}.matchup-meta{align-items:flex-start;text-align:left}}.explainer{border-left:4px solid var(--miller-teal)}.explainer-h{font-size:17px;margin-bottom:10px}.explainer-steps{margin:0 0 16px;padding-left:20px;font-size:14px}.explainer-steps li{margin-bottom:6px}.explainer-two{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--line);padding-top:14px}.explainer-tag{font-family:var(--font-display);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--miller-blue);margin-bottom:4px}.explainer code{background:#eef1f4;padding:1px 5px;border-radius:4px;font-size:12.5px}.upload-h{font-size:18px;margin-bottom:14px;display:flex;align-items:center;gap:10px}.pill-fmt{font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.5px;background:var(--miller-blue);color:#fff;padding:2px 8px;border-radius:6px}.upload-fields{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}.uf{display:flex;flex-direction:column;gap:5px;flex:1 1 200px}.uf-sm{flex:0 0 130px}.uf>span{font-size:13px;font-weight:600}.uf>span em{font-weight:400}.uf select,.uf input{font-family:var(--font-body);font-size:14px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff}.uf input[type=file]{padding:6px}.upload-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}.upload-report{margin-top:16px;display:flex;flex-direction:column;gap:12px}.report-block{border-radius:var(--radius-sm);padding:12px 14px;font-size:14px}.report-block ul{margin:8px 0 0;padding-left:20px}.report-block li{margin-bottom:4px}.report-h{font-family:var(--font-display);font-weight:700;font-size:14px}.report-errors{background:#fdecea;border:1px solid #f5c6c2;color:#8a1c14}.report-errors .report-h{color:var(--loss)}.report-warnings{background:#fff8ec;border:1px solid #f5e0b8;color:#7a5a12}.report-ok{background:#f0f8f1;border:1px solid #cfe8d2}.report-ok .report-h{color:var(--win);margin-bottom:8px}.upload-msg{margin-top:16px;padding:12px 14px;border-radius:var(--radius-sm);font-size:14px;font-weight:600}.upload-msg-ok{background:#f0f8f1;border:1px solid #cfe8d2;color:var(--win)}.upload-msg-err{background:#fdecea;border:1px solid #f5c6c2;color:var(--loss)}.scout-preview{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;font-size:14px}.scout-preview .k{display:inline-block;min-width:130px;color:var(--muted);font-weight:600}.take-err{color:var(--loss);font-size:13px;margin-top:6px}@media (max-width: 720px){.explainer-two,.scout-preview{grid-template-columns:1fr}}.auth-loading{display:grid;place-items:center;min-height:100vh;color:var(--muted);font-family:var(--font-display);font-weight:600}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(160deg,#eef2f8,var(--bg))}.login-card{width:100%;max-width:400px;padding:28px 26px;text-align:center}.login-logo{height:46px;width:auto;display:block;margin:0 auto 6px}.login-kicker{font-family:var(--font-display);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:2px;color:var(--miller-orange)}.login-title{font-size:22px;margin-top:10px}.login-sub{color:var(--muted);font-size:14px;margin:8px 0 20px}.login-field{display:block;text-align:left;margin-bottom:14px}.login-field>span{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:5px}.login-field>span em{font-weight:400;font-style:normal}.login-field input{width:100%;box-sizing:border-box;font-family:var(--font-body);font-size:15px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff}.login-field input:focus{outline:none;border-color:var(--miller-blue);box-shadow:0 0 0 3px #2657a71f}.login-card .btn{width:100%;justify-content:center;padding:11px;font-size:15px;margin-top:4px}.login-error{background:#fdecea;border:1px solid #f5c6c2;color:var(--loss);border-radius:var(--radius-sm);padding:9px 12px;font-size:14px;margin-bottom:14px;text-align:left}.login-note{font-size:12.5px;margin:16px 0 0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0f1a2c73;display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;overflow-y:auto}.modal-card{width:100%;max-width:540px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.form-grid label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--muted)}.form-grid label.check-label{flex-direction:row;align-items:center;gap:8px;align-self:end;padding-bottom:8px}@media (max-width: 560px){.form-grid{grid-template-columns:1fr}}.user-chip{display:flex;align-items:center;gap:8px;padding-left:12px;margin-left:8px;border-left:1px solid var(--line)}.role-dot{width:9px;height:9px;border-radius:999px;flex:none}.role-coach{background:var(--miller-blue)}.role-player{background:var(--miller-teal)}.user-label{display:flex;flex-direction:column;line-height:1.1;font-size:13px;font-weight:700;color:var(--ink)}.user-role{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.logout-btn{cursor:pointer}@media (max-width: 720px){.user-chip{margin-left:auto;padding-left:0;border-left:none}.user-role{display:none}}.site-footer{border-top:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:13px}.site-footer .container{padding:18px 16px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.muted{color:var(--muted)}.small{font-size:13px}.mt-0{margin-top:0}.mb-8{margin-bottom:8px}.divider{height:1px;background:var(--line);margin:16px 0}.crumb{font-size:13px;color:var(--muted);margin-bottom:10px}.crumb a{color:var(--muted)}@media (max-width: 720px){.hero-grid,.grid-2,.grid-3{grid-template-columns:1fr}.page-head h1{font-size:23px}.scoreboard .tscore{font-size:36px}.scoreboard .tname{font-size:15px}.nav a{padding:7px 9px;font-size:13px}.site-header .container{min-height:58px;gap:10px}.brand-logo-full{display:none}.brand-logo-mark{display:block}.brand-kicker .k1{font-size:14px}}.cal-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.cal-nav{display:flex;align-items:center;gap:6px}.cal-month-label{font-weight:700;min-width:150px;text-align:center}.cal-legend{display:flex;align-items:center;gap:6px;margin-left:auto;color:var(--muted)}.cal-key{display:inline-block;width:10px;height:10px;border-radius:3px}.cal-key-game{background:#1d3557}.cal-key-event{background:#f26c23d9}.cal-card{overflow:hidden}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-head-row{border-bottom:1px solid #e3e7eb}.cal-weekday{padding:8px 6px;font-size:12px;font-weight:700;text-align:center;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.cal-cell{min-height:92px;padding:4px 5px;border-top:1px solid #eef1f4;border-left:1px solid #eef1f4;display:flex;flex-direction:column;gap:3px}.cal-cell:nth-child(7n+1){border-left:none}.cal-out{background:#fafbfc}.cal-out .cal-daynum{color:#b7bfc7}.cal-today{background:#f26c230f}.cal-today .cal-daynum{color:#c8501a;font-weight:800}.cal-daynum{font-size:12px;font-weight:700;color:var(--muted)}.cal-items{display:flex;flex-direction:column;gap:2px}.cal-item{display:block;width:100%;text-align:left;font-size:11.5px;line-height:1.25;padding:2px 5px;border-radius:4px;border:none;cursor:pointer;text-decoration:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-family:inherit}.cal-game{background:#1d3557;color:#fff;font-weight:600}.cal-game:hover{background:#274b77;color:#fff}.cal-game.cal-cancelled{opacity:.55;text-decoration:line-through}.cal-result{font-weight:400;opacity:.85}.cal-event{background:#f26c2324;color:#a34216;font-weight:600}.cal-event:hover{background:#f26c2342}@media (max-width: 640px){.cal-cell{min-height:64px}.cal-item{font-size:10px}}
