:root{--baize: #1B4332;--baize-dark: #12302222;--baize-deep: #0F2A1F;--ivory: #FFFDF7;--ink: #22262B;--ink-soft: #5B6560;--brass: #C79A45;--brass-soft: #E9D6A8;--alert: #A13D37;--line: #DCD6C6;--font-display: "Fraunces", serif;--font-body: "Inter", -apple-system, sans-serif;--radius: 6px;--shadow: 0 1px 3px rgba(15, 42, 31, .15)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--baize);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5}#root{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;color:var(--ink);margin:0 0 .5em}a{color:inherit}button{font-family:var(--font-body);cursor:pointer}table{border-collapse:collapse;width:100%}.app-shell{min-height:100vh;display:flex}.sidebar{width:220px;background:var(--baize-deep);color:var(--ivory);padding:28px 20px;flex-shrink:0}.sidebar h1{font-size:20px;color:var(--ivory);margin-bottom:4px}.sidebar .subtitle{color:var(--brass-soft);font-size:13px;margin-bottom:32px}.sidebar nav a,.sidebar nav button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--ivory);text-decoration:none;padding:10px 12px;border-radius:var(--radius);font-size:14px;margin-bottom:2px;opacity:.85}.sidebar nav a.active,.sidebar nav a:hover,.sidebar nav button:hover{background:#ffffff14;opacity:1}.form-row{display:flex;gap:16px}.match-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.sidebar .logout{margin-top:40px;border-top:1px solid rgba(255,255,255,.15);padding-top:20px}.main-content{flex:1;background:var(--ivory);padding:40px 48px;overflow-y:auto}.main-content .page-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}.main-content .page-header p{color:var(--ink-soft);margin:4px 0 0}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:24px}.data-table th{text-align:left;font-family:var(--font-body);font-weight:600;font-size:12px;color:var(--ink-soft);border-bottom:2px solid var(--line);padding:8px 12px}.data-table td{padding:10px 12px;border-bottom:1px solid var(--line);font-size:14px}.data-table tr:last-child td{border-bottom:none}.clickable-row{cursor:pointer}.clickable-row:hover td{background:var(--ivory)}.clickable-row td.pos{font-family:var(--font-display);font-weight:700;color:var(--baize);width:20px;text-align:center}.result-badge{flex-shrink:0;display:inline-block;width:26px;height:26px;line-height:26px;text-align:center;border-radius:50%;font-size:13px;font-weight:700}.result-badge.win{background:#2f8f4e;color:#fff}.result-badge.draw{background:var(--brass);color:var(--baize-deep)}.result-badge.loss{background:var(--alert);color:#fff}.scorecard-wrap{width:100%}.scorecard-table{width:100%;table-layout:fixed}.scorecard-table th,.scorecard-table td{white-space:normal;word-break:break-word;padding:8px 6px}.scorecard-table .result-badge{width:22px;height:22px;line-height:22px;font-size:12px}@media (max-width: 720px){.scorecard-wrap{overflow-x:visible}.scorecard-table{display:table;white-space:normal}.scorecard-table th,.scorecard-table td{padding:6px 4px;font-size:12px}.scorecard-table .result-badge{width:20px;height:20px;line-height:20px;font-size:11px}}@media (max-width: 400px){.scorecard-table th,.scorecard-table td{padding:5px 3px;font-size:11px}}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:500;color:var(--ink-soft);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);font-family:var(--font-body);font-size:14px;background:var(--ivory)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--baize);outline-offset:1px}.btn{display:inline-block;padding:10px 20px;border-radius:var(--radius);border:none;font-size:14px;font-weight:600;background:var(--baize);color:var(--ivory)}.btn:hover{background:var(--baize-deep)}.btn.secondary{background:transparent;border:1px solid var(--line);color:var(--ink)}.btn.danger{background:var(--alert);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.error-banner{background:#fbeae9;border:1px solid var(--alert);color:var(--alert);padding:10px 14px;border-radius:var(--radius);font-size:14px;margin-bottom:16px}.empty-state{color:var(--ink-soft);font-size:14px;padding:24px;text-align:center;border:1px dashed var(--line);border-radius:var(--radius)}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge.scheduled{background:#eaeaea;color:var(--ink-soft)}.badge.lineups_pending{background:var(--brass-soft);color:#7a5c1e}.badge.ready{background:#dceee5;color:var(--baize)}.badge.in_progress{background:#fde9c8;color:#92600a}.badge.completed{background:var(--baize);color:var(--ivory)}.badge.forfeit{background:var(--alert);color:var(--ivory);padding:1px 7px;font-size:10px;letter-spacing:.04em}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--baize);background-image:radial-gradient(circle at 20% 20%,rgba(255,255,255,.04),transparent 40%)}.login-card{background:var(--ivory);padding:48px 40px;border-radius:var(--radius);width:380px;box-shadow:0 12px 40px #00000040}.login-card h1{font-size:26px;margin-bottom:4px}.login-card .subtitle{color:var(--ink-soft);font-size:14px;margin-bottom:28px}.standings-page{min-height:100vh;background:var(--baize);padding:56px 24px}.standings-wrap{max-width:880px;margin:0 auto}.standings-wrap h1{color:var(--ivory);font-size:32px;text-align:center;margin-bottom:8px}.standings-wrap .subtitle{color:var(--brass-soft);text-align:center;margin-bottom:32px}.division-tabs{display:flex;justify-content:center;gap:8px;margin-bottom:24px}.division-tabs button{background:#ffffff14;color:var(--ivory);border:1px solid rgba(255,255,255,.2);padding:8px 20px;border-radius:999px;font-size:14px}.division-tabs button.active{background:var(--brass);color:var(--baize-deep);border-color:var(--brass);font-weight:600}.standings-table{background:var(--ivory);border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 30px #0003}.standings-table th{background:var(--baize-deep);color:var(--ivory);font-size:12px;text-transform:none;padding:12px;text-align:left}.standings-table th.num,.standings-table td.num{text-align:center}.standings-table td{padding:12px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.standings-table tr:nth-child(1) td.pos{color:var(--brass);font-weight:700}.standings-table td.pos{font-family:var(--font-display);font-weight:600;color:var(--ink-soft)}@media (max-width: 720px){.app-shell{flex-direction:column}.sidebar{width:100%;padding:16px}.sidebar .subtitle{margin-bottom:16px}.sidebar nav{display:flex;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch}.sidebar nav a,.sidebar nav button{width:auto;white-space:nowrap}.sidebar .logout{margin-top:12px;padding-top:12px}.main-content{padding:20px 16px}.main-content .page-header{flex-direction:column;align-items:flex-start;gap:12px}.card{padding:16px}.form-row{flex-direction:column;gap:0}.match-columns{grid-template-columns:1fr}.data-table{display:block;overflow-x:auto;white-space:nowrap}.login-card{width:100%;padding:32px 24px}.standings-page{padding:32px 12px}.standings-wrap h1{font-size:24px}.standings-table{overflow-x:auto;display:block}}.public-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:28px}.public-tabs button{background:#ffffff14;color:var(--ivory);border:1px solid rgba(255,255,255,.2);padding:9px 22px;border-radius:999px;font-size:14px;font-weight:500}.public-tabs button.active{background:var(--ivory);color:var(--baize-deep);border-color:var(--ivory);font-weight:700}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.tile{background:var(--ivory);border-radius:var(--radius);padding:18px 20px;box-shadow:0 4px 16px #00000026}.tile-fixture .tile-status{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.tile-fixture .tile-date{font-size:12px;color:var(--ink-soft)}.tile-fixture .tile-teams{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--ink)}.tile-fixture .tile-teams .vs{color:var(--ink-soft);font-weight:400;font-size:14px;margin:0 6px}.tile-fixture .tile-venue{font-size:13px;color:var(--ink-soft);margin-top:6px}.search-input-wrap{margin-bottom:16px}.search-input-wrap input{width:100%;padding:10px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:var(--ivory);font-size:14px}.search-input-wrap input::placeholder{color:#fffdf78c}.search-input-wrap input:focus{outline:none;border-color:var(--brass);background:#ffffff1f}.fixture-list{background:var(--ivory);border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 30px #0003}.fixture-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}.fixture-row:last-child{border-bottom:none}.fixture-row .fr-date{font-size:12px;color:var(--ink-soft);width:76px;flex-shrink:0;line-height:1.3}.fixture-row .fr-week{display:block;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--brass)}.fixture-row .fr-teams{flex:1;font-size:14px;font-weight:600;color:var(--ink);min-width:0}.fixture-row .fr-teams .vs{color:var(--ink-soft);font-weight:400;font-size:12px;margin:0 5px}.fixture-row .fr-venue{font-size:11px;color:var(--ink-soft);font-weight:400;display:block;margin-top:2px}.fixture-row .badge{flex-shrink:0;font-size:11px}.tile-standing{display:flex;align-items:center;gap:16px}.tile-standing .tile-pos{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--ink-soft);width:32px;text-align:center;flex-shrink:0}.tile-standing.first .tile-pos{color:var(--brass)}.tile-standing .tile-standing-body{flex:1}.tile-standing .tile-team-name{font-family:var(--font-display);font-size:17px;font-weight:600;margin-bottom:4px}.tile-standing .tile-record{font-size:12px;color:var(--ink-soft)}.tile-standing .tile-points{text-align:right;flex-shrink:0}.tile-standing .tile-points .num{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--baize);display:block;line-height:1}.tile-standing .tile-points .label{font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.tile-break{display:flex;align-items:center;gap:16px}.tile-break .tile-break-value{font-family:var(--font-display);font-size:30px;font-weight:700;color:var(--brass);width:56px;text-align:center;flex-shrink:0}.tile-break .tile-break-body .tile-player-name{font-family:var(--font-display);font-size:16px;font-weight:600}.tile-break .tile-break-body .tile-break-meta{font-size:12px;color:var(--ink-soft);margin-top:2px}.section-label{color:var(--brass-soft);font-size:13px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin:28px 0 12px}.section-label:first-child{margin-top:0}.player-stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:16px}.player-stat-card .psc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.player-stat-card .psc-name{font-family:var(--font-display);font-size:18px;font-weight:600}.psc-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.psc-summary .psc-stat{background:var(--ivory);border-radius:var(--radius);padding:10px;text-align:center}.psc-summary .psc-stat .num{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--baize);display:block}.psc-summary .psc-stat .label{font-size:11px;color:var(--ink-soft);text-transform:uppercase}.psc-toggle{font-size:13px;color:var(--baize);background:none;border:none;font-weight:600;padding:0}.psc-detail{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.psc-detail h4{font-size:13px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px}@media (max-width: 720px){.public-tabs button{padding:8px 14px;font-size:13px}.tile-grid{grid-template-columns:1fr}.psc-summary{grid-template-columns:repeat(2,1fr)}}.filter-pills{display:flex;gap:8px;margin-bottom:16px}.filter-pills button{background:var(--ivory);border:1px solid var(--line);color:var(--ink-soft);padding:6px 16px;border-radius:999px;font-size:13px;font-weight:500}.filter-pills button.active{background:var(--baize);color:var(--ivory);border-color:var(--baize);font-weight:600}.bottom-tab-bar{display:none}.standings-subtabs{display:flex;justify-content:center;gap:8px;margin-bottom:16px}.standings-subtabs button{background:#ffffff0f;color:var(--ivory);border:1px solid rgba(255,255,255,.18);padding:7px 18px;border-radius:999px;font-size:13px;font-weight:500}.standings-subtabs button.active{background:var(--brass);color:var(--baize-deep);border-color:var(--brass);font-weight:700}@media (max-width: 720px){.sidebar nav,.sidebar .logout{display:none}.public-tabs{display:none}.bottom-tab-bar{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--baize-deep);border-top:1px solid rgba(255,255,255,.12);z-index:50;padding:4px 4px calc(4px + env(safe-area-inset-bottom))}.bottom-tab-bar a,.bottom-tab-bar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;color:#fffdf7a6;text-decoration:none;font-size:11px;padding:6px 2px;border-radius:var(--radius)}.bottom-tab-bar a svg,.bottom-tab-bar button svg{width:20px;height:20px}.bottom-tab-bar a.active,.bottom-tab-bar button.active{color:var(--ivory)}.bottom-tab-bar a.active svg,.bottom-tab-bar button.active svg{color:var(--brass)}.main-content{padding-bottom:76px}.standings-page{padding-bottom:88px}}@media (min-width: 721px){.standings-page{padding:32px 24px}.standings-wrap h1{font-size:26px;margin-bottom:4px}.standings-wrap .subtitle{margin-bottom:20px}.division-tabs{margin-bottom:16px}.public-tabs{margin-bottom:18px}.standings-subtabs{margin-bottom:12px}.standings-table th,.standings-table td{padding:8px 12px}.standings-table td{font-size:13px}.standings-table th{font-size:11px}}.add-player-form{display:flex;gap:12px;align-items:center}.add-player-form input{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:6px}.yn-toggle{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}.yn-toggle button{background:var(--ivory);border:none;padding:6px 18px;font-size:13px;font-weight:600;color:var(--ink-soft);min-width:52px}.yn-toggle button+button{border-left:1px solid var(--line)}.yn-toggle button.yes.active{background:#2f8f4e;color:#fff}.yn-toggle button.no.active{background:var(--alert);color:#fff}.avail-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}.avail-chip{font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--ink-soft)}.avail-chip.yes{background:#dceee5;color:#1f6b3a;border-color:transparent}.avail-chip.no{background:#f6dad6;color:var(--alert);border-color:transparent}@media (max-width: 720px){.freeze{--c1: 34px;--c2: 120px;--c3: 104px;--freeze-bg: #fff;--freeze-head-bg: #fff}.standings-table.freeze{--freeze-bg: var(--ivory);--freeze-head-bg: var(--baize-deep)}.freeze-players{--c1: 30px;--c2: 130px}.freeze-fixtures{--c1: 46px;--c2: 62px;--c3: 108px}.freeze td:nth-child(-n+2):not([colspan]),.freeze th:nth-child(-n+2),.freeze-3 td:nth-child(3):not([colspan]),.freeze-3 th:nth-child(3){position:sticky;z-index:2;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;padding-left:6px;padding-right:6px}.freeze td:nth-child(-n+2):not([colspan]),.freeze-3 td:nth-child(3):not([colspan]){background:var(--freeze-bg)}.freeze th:nth-child(-n+2),.freeze-3 th:nth-child(3){background:var(--freeze-head-bg)}.freeze td:nth-child(1):not([colspan]),.freeze th:nth-child(1){left:0;width:var(--c1);min-width:var(--c1);max-width:var(--c1)}.freeze td:nth-child(2):not([colspan]),.freeze th:nth-child(2){left:var(--c1);width:var(--c2);min-width:var(--c2);max-width:var(--c2)}.freeze-3 td:nth-child(3):not([colspan]),.freeze-3 th:nth-child(3){left:calc(var(--c1) + var(--c2));width:var(--c3);min-width:var(--c3);max-width:var(--c3)}.freeze-2 td:nth-child(2):not([colspan]),.freeze-2 th:nth-child(2),.freeze-3 td:nth-child(3):not([colspan]),.freeze-3 th:nth-child(3){box-shadow:3px 0 4px -2px #00000047}}.avail-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.avail-tile{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 12px;text-align:center}.avail-tile-value{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--baize);line-height:1.1}.avail-tile-label{font-size:11px;color:var(--ink-soft);margin-top:6px}@media (max-width: 720px){.avail-tiles{gap:8px}.avail-tile{padding:12px 6px}.avail-tile-value{font-size:20px}.freeze-name{--cn: 120px}.freeze-name td:nth-child(1):not([colspan]),.freeze-name th:nth-child(1){position:sticky;left:0;z-index:2;box-sizing:border-box;width:var(--cn);min-width:var(--cn);max-width:var(--cn);overflow:hidden;text-overflow:ellipsis;background:#fff;box-shadow:3px 0 4px -2px #00000047}}.avail-tile.rag-green{background:#dceee5;border-color:#8cc4a5}.avail-tile.rag-green .avail-tile-value{color:#1f7a4d}.avail-tile.rag-amber{background:#fbefd0;border-color:#e3be6a}.avail-tile.rag-amber .avail-tile-value{color:#9a6200}.avail-tile.rag-red{background:#f8dad7;border-color:#e0908a}.avail-tile.rag-red .avail-tile-value{color:#b3261e}.rag-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.rag-pill.green{background:#dceee5;color:#1f7a4d}.rag-pill.amber{background:#fbefd0;color:#9a6200}.rag-pill.red{background:#f8dad7;color:#b3261e}.rag-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--ink-soft);margin-bottom:12px}.rag-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}.rag-dot.green{background:#1f7a4d}.rag-dot.amber{background:#e0a100}.rag-dot.red{background:#b3261e}.rag-row.green{--freeze-bg: #DCEEE5}.rag-row.amber{--freeze-bg: #FBEFD0}.rag-row.red{--freeze-bg: #F8DAD7}.rag-row.green td{background:#dceee5}.rag-row.amber td{background:#fbefd0}.rag-row.red td{background:#f8dad7}.rag-row .rag-pill{background:#ffffffa6}.res-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-weight:800;font-size:14px;color:#fff}.res-badge.W{background:#1f7a4d}.res-badge.D{background:#e0a100}.res-badge.L{background:#b3261e}@media (max-width: 720px){.freeze-results{--c1: 42px;--c2: 108px;--c3: 50px}.freeze-results td:nth-child(3):not([colspan]){text-align:center}}
