:root{color-scheme:light;--bg:#f7f4fa;--surface:#fff;--soft:#faf8fb;--ink:#281d30;--muted:#74697b;--line:#e5deea;--purple:#4d246e;--gold:#d3a638;--gold-soft:#fff6dc;--green:#287757;--red:#a44848;--shadow:0 16px 44px rgba(61,31,80,.1)}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}body{margin:0;min-width:320px}button,input,select{font:inherit}button,a,select{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(211,166,56,.45);outline-offset:2px}
.site-header{height:72px;background:var(--purple);color:#fff;display:flex;align-items:center;padding:0 max(20px,calc((100% - 1120px)/2));gap:24px;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none}.brand-ball{width:38px;height:38px;border-radius:11px;background:var(--gold);color:var(--purple);display:grid;place-items:center;font-size:1.25rem}.brand strong{display:block;font-size:1rem}.brand small{display:block;color:#dfd0e8;font-size:.75rem;margin-top:2px}.site-header nav{display:flex;gap:6px;margin-left:auto}.site-header nav a{color:#e7ddec;text-decoration:none;padding:9px 13px;border-radius:8px;font-size:.9rem}.site-header nav a:hover,.site-header nav a.active{background:rgba(255,255,255,.14);color:#fff}.menu-button{display:none;margin-left:auto;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;border-radius:8px;padding:8px 10px}
.page-wrap{width:min(1120px,calc(100% - 36px));margin:0 auto;padding:34px 0 56px}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--purple);font-size:.72rem;font-weight:700;margin:0 0 6px}.page-heading h1{margin:0;font-size:2rem;letter-spacing:-.03em}.page-heading p{margin:7px 0 0;color:var(--muted);line-height:1.5}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.card-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 20px;border-bottom:1px solid var(--line)}.card-header h2{font-size:1.05rem;margin:0}.card-header p{font-size:.8rem;color:var(--muted);margin:4px 0 0}.tag{background:var(--gold-soft);color:#694c00;border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:700;white-space:nowrap}
.week-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 12px;margin-bottom:10px}.week-tab{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:9px;padding:9px 13px;white-space:nowrap;font-weight:650;font-size:.82rem}.week-tab.active{background:var(--purple);border-color:var(--purple);color:#fff}.match-list{padding:8px 20px 18px}.match-row{display:grid;grid-template-columns:100px minmax(0,1fr) auto;align-items:center;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}.match-row:last-child{border-bottom:0}.court-label{color:var(--muted);font-size:.8rem}.match-row h3{font-size:.95rem;margin:0}.match-row p{color:var(--muted);font-size:.78rem;margin:5px 0 0}.result{font-size:.8rem;text-align:right;color:var(--muted)}.result strong{display:block;color:var(--ink);font-size:1rem;margin-bottom:3px}.result.pending{font-style:italic}
.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:18px}.summary-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:15px}.summary-card span{display:block;color:var(--muted);font-size:.75rem}.summary-card strong{display:block;font-size:1.3rem;margin-top:4px}.summary-card small{display:block;color:var(--muted);font-size:.72rem;margin-top:4px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;background:var(--soft);color:var(--muted);font-size:.74rem;padding:12px 14px;white-space:nowrap}td{padding:14px;border-top:1px solid var(--line);font-size:.86rem}th:last-child,td:last-child{text-align:right}.seed{font-weight:800;color:var(--purple)}.positive{color:var(--green)}.negative{color:var(--red)}.rules-note{margin-top:16px;color:var(--muted);font-size:.82rem;line-height:1.5}.rules-note strong{color:var(--ink)}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border-radius:9px;padding:9px 14px;text-decoration:none;font-weight:700;font-size:.84rem;border:1px solid var(--line)}.button.primary{background:var(--gold);border-color:var(--gold);color:#321147}.button.secondary{background:var(--surface);color:var(--ink)}.admin-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.admin-toolbar label{font-weight:700;font-size:.85rem}.admin-toolbar select{width:190px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:10px}.admin-toolbar span{color:var(--muted);font-size:.78rem}.score-matches{display:grid;gap:16px}.score-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.score-card header{padding:15px 18px;background:var(--soft);border-bottom:1px solid var(--line)}.score-card header h2{font-size:1rem;margin:0}.score-card header p{font-size:.76rem;color:var(--muted);margin:4px 0 0}.court-score{display:grid;grid-template-columns:90px minmax(180px,1fr) minmax(180px,1fr);gap:14px;align-items:end;padding:15px 18px;border-bottom:1px solid var(--line)}.court-score:last-child{border-bottom:0}.court-score strong{font-size:.84rem;align-self:center}.court-score label{display:grid;gap:6px;color:var(--muted);font-size:.74rem}.court-score select,.court-score input{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:9px;min-height:40px}.save-bar{display:flex;justify-content:flex-end;margin-top:18px}.toast{position:fixed;right:22px;bottom:22px;background:var(--purple);color:#fff;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}
.roster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.roster-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}.roster-card header{padding:15px 17px;background:var(--purple);color:#fff}.roster-card h2{font-size:1rem;margin:0}.roster-card header span{display:block;color:#e6dced;font-size:.73rem;margin-top:4px}.roster-card ul{list-style:none;margin:0;padding:8px 17px 16px}.roster-card li{padding:9px 0;border-bottom:1px solid var(--line);font-size:.85rem}.roster-card li:last-child{border-bottom:0}.empty-roster{color:var(--muted);font-style:italic}
.upload-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;background:var(--gold-soft);border:1px solid #ecd88e;border-radius:14px;padding:17px 19px;margin-bottom:18px}.upload-card h2{font-size:1rem;margin:0}.upload-card p{font-size:.78rem;color:#6a520d;margin:5px 0 0;line-height:1.5}.upload-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.file-button{display:inline-flex;align-items:center;justify-content:center;background:var(--purple);color:#fff;border-radius:9px;padding:10px 14px;font-size:.8rem;font-weight:700;cursor:pointer}.file-button input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.replace-check{display:flex;align-items:center;gap:7px;font-size:.78rem;color:#5d4710}.replace-check input{width:16px;height:16px}.import-status{grid-column:1/-1;margin:0!important}.team-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.team-editor{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:17px}.team-editor label{display:grid;gap:6px;color:var(--muted);font-size:.76rem}.team-editor label+label{margin-top:13px}.team-editor input,.team-editor textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);padding:10px}.team-editor input{min-height:41px;font-weight:700}.team-editor textarea{min-height:150px;resize:vertical;line-height:1.5;font:inherit;font-size:.86rem}
.team-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:15px 18px;margin-bottom:16px}.team-controls strong{display:block}.team-controls span{display:block;color:var(--muted);font-size:.78rem;margin-top:4px}.button:disabled,.delete-team:disabled{opacity:.45;cursor:not-allowed}.team-editor-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.team-editor-heading strong{color:var(--purple);font-size:.85rem}.delete-team{border:1px solid #e5bcbc;background:#fff6f6;color:var(--red);border-radius:8px;padding:7px 10px;font-size:.75rem;font-weight:700}
@media(max-width:900px){.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-editor-grid{grid-template-columns:1fr}.site-header nav a{padding:8px 9px;font-size:.8rem}}
@media(max-width:720px){.site-header{padding:0 16px}.menu-button{display:block}.site-header nav{display:none;position:absolute;top:64px;right:14px;background:var(--purple);padding:8px;border-radius:10px;box-shadow:var(--shadow);flex-direction:column}.site-header nav.open{display:flex}.page-wrap{width:min(100% - 24px,1120px);padding-top:24px}.page-heading{flex-direction:column}.page-heading h1{font-size:1.65rem}.summary-grid,.roster-grid{grid-template-columns:1fr}.match-row{grid-template-columns:1fr;gap:6px}.result{text-align:left}.court-score{grid-template-columns:1fr}.court-score strong{margin-top:3px}.card-header{align-items:flex-start}.brand small{display:none}.upload-card{grid-template-columns:1fr}.upload-controls{align-items:flex-start;flex-direction:column}.team-controls{align-items:flex-start;flex-direction:column}.team-controls .button{width:100%}}


/* USTA-style score entry */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.court-score{display:block;min-inline-size:0;margin:0;padding:17px 18px;border:0;border-bottom:1px solid var(--line)}
.court-score:last-child{border-bottom:0}
.court-score-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:13px}
.court-name-field{display:grid;gap:6px;color:var(--muted);font-size:.74rem;width:min(340px,100%)}
.court-name-field input{width:100%;min-height:40px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:9px;font-weight:700;color:var(--ink)}
.court-format{display:inline-flex;align-items:center;background:var(--gold-soft);color:#694c00;border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:700;white-space:nowrap}
.usta-score-grid{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.usta-score-head,.usta-team-row{display:grid;grid-template-columns:minmax(320px,1fr) repeat(3,72px);align-items:stretch;min-width:590px}
.usta-score-head{background:var(--purple);color:#fff;font-size:.72rem;font-weight:700}
.usta-score-head span{display:grid;place-items:center;padding:9px;border-left:1px solid rgba(255,255,255,.16)}
.usta-score-head span:first-child{place-items:center start;border-left:0;padding-left:12px}
.usta-team-row+.usta-team-row{border-top:1px solid var(--line)}
.usta-team-players{padding:11px 12px}
.usta-team-players strong{display:block;font-size:.82rem;margin-bottom:7px}
.player-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.player-pair select{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:8px;font-size:.78rem}
.usta-team-row>input{width:100%;min-width:0;border:0;border-left:1px solid var(--line);border-radius:0;background:var(--surface);text-align:center;font-size:1.05rem;font-weight:800;color:var(--ink)}
.usta-team-row>input:focus{position:relative;z-index:1}
.score-help{margin:9px 0 0;color:var(--muted);font-size:.72rem;line-height:1.4}
@media(max-width:720px){
  .court-score{padding:14px 12px}
  .court-score-heading{align-items:flex-start;flex-direction:column}
  .court-name-field{width:100%}
  .usta-score-head,.usta-team-row{grid-template-columns:minmax(260px,1fr) repeat(3,62px);min-width:500px}
  .player-pair{grid-template-columns:1fr}
}
