@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap";:root{color:#16251f;background:#f6f7f2;font-family:DM Sans,sans-serif;font-synthesis:none;--ink: #16251f;--muted: #6e7b73;--line: #dce3da;--paper: #fff;--green: #1b5d47;--lime: #d9ed8e;--orange: #ef9561}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.55}.app-shell{min-height:100vh}.topbar{display:flex;max-width:1240px;margin:auto;padding:28px 36px;justify-content:space-between;align-items:center}.topbar-actions{display:flex;align-items:center;gap:20px}.brand{color:var(--ink);text-decoration:none;font-weight:700;display:inline-flex;gap:10px;align-items:center;font-size:17px;letter-spacing:-.02em}.brand-mark{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;font-family:Playfair Display;font-size:17px}.user-pill{display:flex;align-items:center;gap:10px;font-size:13px}.user-pill img{width:28px;height:28px;border-radius:50%}.text-button{border:0;background:none;color:var(--muted);font-size:12px;padding:5px}.social-link{color:var(--green);font-size:12px;font-weight:600;text-decoration:none}.social-link:hover{text-decoration:underline}.content{max-width:1168px;margin:26px auto 80px;padding:0 36px}.eyebrow,.label{font-family:DM Mono;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--green)}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;border-bottom:1px solid var(--line);padding:12px 0 30px;margin-bottom:28px}.page-heading h1{font-family:Playfair Display;font-size:clamp(34px,5vw,60px);line-height:1;margin:10px 0 12px;letter-spacing:-.045em;font-weight:600}.page-heading p{color:var(--muted);margin:0}.heading-status{display:flex;align-items:center;gap:12px}.result-label{color:var(--green);font:11px DM Mono;text-transform:uppercase;letter-spacing:.08em}.status{border:1px solid var(--line);padding:8px 12px;border-radius:20px;font:10px DM Mono;text-transform:uppercase;letter-spacing:.08em}.status-active{background:var(--lime);border-color:transparent}.status-completed{background:var(--green);color:#fff;border-color:transparent}.alert{background:#fff0e9;color:#92441e;border:1px solid #f1c5ae;padding:11px 14px;border-radius:8px;margin-bottom:20px;font-size:13px}.grid{display:grid;gap:20px}.two-columns{grid-template-columns:1fr 1fr}.bottom-grid{align-items:start}.card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:26px}.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:23px}.section-title>div:first-child{display:flex;gap:12px;align-items:baseline}.section-title h2{margin:0;font-family:Playfair Display;font-size:22px;font-weight:600;letter-spacing:-.025em}.muted{color:var(--muted);font-size:12px}.primary,.secondary{border-radius:5px;padding:12px 18px;border:1px solid var(--green);font-weight:600;font-size:13px}.primary{background:var(--green);color:#fff}.primary:hover{background:#124936}.secondary{background:#fff;color:var(--green)}.small{padding:8px 12px;font-size:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 12px}.form-grid label{color:var(--muted);font-size:11px;display:flex;flex-direction:column;gap:6px}.form-grid .full{grid-column:1 / -1}.form-grid input,.form-grid select,.player-add input,.manager-form input{border:1px solid var(--line);border-radius:4px;padding:10px 11px;color:var(--ink);background:#fbfcf9;outline:none;font-size:13px}.form-grid input:focus,.form-grid select:focus,input:focus{border-color:var(--green);box-shadow:0 0 0 2px #dceee6}.player-add{display:flex;gap:8px;margin-bottom:17px}.player-add input{flex:1}.player-list{display:grid;gap:8px}.player-row{display:flex;gap:10px;align-items:center;min-height:42px}.player-row.removed{opacity:.45}.avatar{flex:0 0 30px;height:30px;width:30px;display:grid;place-items:center;border-radius:50%;background:#e7eee7;color:var(--green);font-weight:600;font-size:12px}.player-name{display:grid;flex:1;gap:2px}.player-name strong{font-size:13px;font-weight:500}.player-name small,.leader-row small{color:var(--muted);font-size:10px}.chip{border:1px solid var(--line);background:#fff;border-radius:20px;padding:5px 9px;font:10px DM Mono;color:var(--muted)}.chip-active{background:#fff0e9;color:#9f512b;border-color:#f3c6ae}.icon-button{background:none;border:0;color:var(--muted);font-size:20px;line-height:1}.round-card{margin:20px 0;min-height:280px}.round-actions{display:flex;align-items:center;gap:12px}.empty-state{min-height:190px;display:grid;place-items:center;align-content:center;text-align:center;gap:8px}.empty-state h3{margin:0;font-family:Playfair Display;font-size:24px}.empty-state p{color:var(--muted);margin:0 0 10px;font-size:13px}.court-panel{max-width:750px;margin:auto}.matchup{display:grid;grid-template-columns:1fr 56px 1fr;align-items:center;gap:10px}.team{min-height:112px;border-radius:6px;padding:18px;display:flex;flex-direction:column;justify-content:space-between;position:relative}.team-A{background:#e5f0df}.team-B{background:#fff0df}.team-name{display:grid;gap:2px;font-size:14px;font-weight:600}.big-score{font:42px DM Mono;line-height:.9}.serve-badge{position:absolute;right:13px;top:13px;color:var(--green);font:9px DM Mono;letter-spacing:.08em}.versus{text-align:center;color:var(--muted);font:10px DM Mono}.serve-note,.completed-note{text-align:center;color:var(--muted);font-size:12px;margin:18px 0}.court-panel>.primary{display:block;margin:16px auto 0}.score-controls{display:grid;gap:12px;margin:20px 0 12px}.score-control{display:flex;justify-content:space-between;align-items:center;gap:12px}.score-control>span{color:var(--muted);font-size:11px}.score-control>div{display:flex;gap:5px}.score-control button{min-width:37px;padding:7px 5px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:4px;font:11px DM Mono}.score-control button.selected{color:#fff;background:var(--green);border-color:var(--green)}.complete-button{display:block;margin:15px auto 0}.score-table{overflow-x:auto}.score-head,.score-row{display:grid;grid-template-columns:minmax(130px,1fr) repeat(5,42px);align-items:center;min-width:350px;border-bottom:1px solid var(--line);padding:10px 0;font:11px DM Mono}.score-head{color:var(--muted);font-size:9px;text-transform:uppercase}.score-row strong{font:12px DM Sans}.leader-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.leader-row:last-child{border:0}.leader-row>div{display:grid;gap:2px;flex:1}.leader-row strong{font-size:13px;font-weight:500}.leader-row b{font:12px DM Mono;color:var(--green)}.rank{font:11px DM Mono;color:var(--muted)}.share-card{margin-top:20px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}.share-card h2{margin:7px 0;font-family:Playfair Display;font-size:21px}.share-card p{margin:0}.share-controls{display:grid;justify-items:end;gap:12px}.manager-form{display:flex;gap:7px}.manager-form input{width:210px}.manager-list{grid-column:1 / -1;color:var(--muted);font-size:11px;border-top:1px solid var(--line);padding-top:15px}.create-card{max-width:760px;margin:40px auto;padding:42px}.create-intro{max-width:470px;margin-bottom:32px}.create-intro h2{font:600 42px Playfair Display;letter-spacing:-.04em;margin:9px 0 10px}.create-intro p{color:var(--muted);line-height:1.6;margin:0}.create-button{margin-top:27px}.landing{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:#f6f7f2}.landing-art{background:var(--green);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:420px}.court-line{position:absolute;border:1px solid rgba(217,237,142,.45);width:74%;height:64%;left:13%}.court-one{transform:rotate(-13deg)}.court-two{transform:rotate(13deg)}.tennis-ball{width:210px;height:210px;border-radius:50%;display:grid;place-items:center;color:var(--orange);background:var(--lime);font-size:150px;line-height:0;box-shadow:30px 30px #00000012;transform:rotate(17deg)}.landing-copy{padding:56px clamp(32px,9vw,120px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.landing-copy .brand{margin-bottom:auto}.landing-copy .eyebrow{margin-top:auto;margin-bottom:23px}.landing-copy h1{font:600 clamp(46px,6vw,78px)/.96 "Playfair Display";letter-spacing:-.055em;max-width:550px;margin:0 0 23px}.landing-copy p{max-width:410px;color:var(--muted);line-height:1.7;margin:0 0 30px}.login-button{text-decoration:none;display:inline-flex;gap:22px;align-items:center}.landing-copy small{color:var(--muted);margin-top:12px;font-size:11px}.landing-social{margin-top:20px;font-size:11px}.shared-social{display:inline-block;margin-top:24px}.revision-list{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.revision-heading{color:var(--muted);font:10px DM Mono;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.revision-item{border-bottom:1px solid var(--line);padding:10px 0;display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px}.revision-item>div:first-child{display:grid;gap:2px}.revision-item strong{font-size:12px}.revision-item small{color:var(--muted);font-size:10px}.revision-controls{grid-column:1 / -1;padding-top:8px}.shared-round{display:grid;grid-template-columns:1fr auto;gap:5px 12px;border-bottom:1px solid var(--line);padding:13px 0}.shared-round strong{font:16px DM Mono}.shared-round small{grid-column:1 / -1;color:var(--muted);font-size:11px}.round-score-list{display:grid;gap:0}.round-score-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:13px 0}.round-score-row:last-child{border-bottom:0}.round-score-label{display:grid;gap:4px;min-width:0}.round-score-label strong{font-size:12px}.round-score-label small{color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.round-score-row>b{flex:0 0 auto;color:var(--green);font:14px DM Mono}.round-pending{opacity:.6}.playoff-action{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid var(--line);margin-top:20px;padding-top:17px}.playoff-action>div{display:grid;gap:3px}.playoff-action strong{font-size:12px}.playoff-action small{color:var(--muted);font-size:10px}.playoff-card{margin-top:20px}.playoff-bracket{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.playoff-match{display:grid;gap:7px;border:1px solid var(--line);border-radius:6px;padding:14px;background:#fbfcf9}.playoff-match span{color:var(--muted);font:9px DM Mono;text-transform:uppercase}.playoff-match strong{font-size:12px}.playoff-match b{color:var(--muted);font:10px DM Mono}.public-court-card{margin-bottom:20px}.live-indicator{color:var(--green);font:10px DM Mono;text-transform:uppercase;letter-spacing:.06em;display:inline-flex;align-items:center;gap:6px}.live-indicator i{width:7px;height:7px;display:inline-block;border-radius:50%;background:#69b85c;box-shadow:0 0 0 3px #e4f3df}.public-matchup{display:grid;grid-template-columns:1fr 50px 1fr;gap:16px;align-items:center;text-align:center}.public-matchup>div{min-height:104px;display:grid;place-items:center;align-content:center;gap:10px;background:#f5f7f1;border-radius:7px;padding:16px}.public-matchup strong{font-size:14px}.public-matchup b{color:var(--green);font:34px DM Mono}.public-matchup>span{color:var(--muted);font:10px DM Mono}.public-serve{text-align:center;margin:14px 0 0}.loading-screen{display:grid;place-items:center;align-content:center;gap:12px;color:var(--muted)}.loading-screen p{font-size:13px}.loading-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--green);color:#fff;font:24px Playfair Display}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:#16251f7a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-card{width:min(100%,440px);position:relative;padding:30px;border-radius:10px;background:var(--paper);border:1px solid var(--line);box-shadow:0 22px 70px #0c221933}.modal-card h2{margin:0 34px 10px 0;font:600 27px Playfair Display;letter-spacing:-.03em}.modal-card p{margin:0 0 20px;color:var(--muted);line-height:1.55;font-size:13px}.modal-close{position:absolute;top:15px;right:17px;border:0;background:transparent;color:var(--muted);font-size:25px;line-height:1}.modal-input{width:100%;border:1px solid var(--line);border-radius:4px;padding:11px;color:var(--ink);background:#fbfcf9;outline:none;font-size:14px}.modal-input:focus{border-color:var(--green);box-shadow:0 0 0 2px #dceee6}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.modal-danger{background:#a65332;border-color:#a65332}.modal-danger:hover{background:#8c4125}.history-page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;border-bottom:1px solid var(--line);padding:12px 0 30px;margin-bottom:28px}.history-page-heading h1{font-family:Playfair Display;font-size:clamp(42px,6vw,72px);line-height:1;margin:10px 0 12px;letter-spacing:-.05em;font-weight:600}.history-page-heading p{color:var(--muted);margin:0}.history-empty{color:var(--muted);text-align:center;padding:70px 20px}.empty-history{max-width:560px;margin:70px auto;text-align:center;padding:52px 30px}.empty-icon{width:52px;height:52px;display:grid;place-items:center;margin:0 auto 20px;color:var(--green);background:var(--lime);border-radius:50%;font-size:25px}.empty-history h2{font:600 31px Playfair Display;margin:0 0 10px}.empty-history p{color:var(--muted);max-width:360px;margin:0 auto 24px;line-height:1.6;font-size:13px}.history-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.history-card{padding:22px}.history-card-top{display:flex;align-items:center;gap:13px}.history-card-top>div{flex:1;min-width:0}.history-card-top h2{margin:0 0 4px;font:600 21px Playfair Display;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-card-top p{margin:0;color:var(--muted);font-size:11px}.history-icon{flex:0 0 38px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e5f0df;color:var(--green);font:14px DM Mono}.history-card-meta{display:flex;flex-wrap:wrap;gap:8px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:22px 0 14px;padding:12px 0;color:var(--muted);font:10px DM Mono}.history-card-actions{display:flex;justify-content:space-between;align-items:center}.delete-button{color:#a65332}.back-button{display:block;margin:-8px 0 32px;padding-left:0}@media(max-width:800px){.landing{grid-template-columns:1fr}.landing-art{min-height:280px}.tennis-ball{width:140px;height:140px;font-size:90px}.landing-copy{padding:30px 28px 50px}.landing-copy .brand{margin-bottom:70px}.landing-copy .eyebrow{margin-top:0}.topbar,.content{padding-left:20px;padding-right:20px}.two-columns,.share-card{grid-template-columns:1fr}.share-controls{justify-items:stretch}.manager-form input{flex:1;width:auto}.page-heading{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.matchup{grid-template-columns:1fr 28px 1fr}.team{padding:13px;min-height:100px}.big-score{font-size:31px}.score-control{display:block}.score-control>div{margin-top:7px}.score-control button{flex:1}.score-control>div{display:flex}.round-actions{align-items:flex-end;flex-direction:column-reverse;gap:5px}.create-card{padding:28px 22px}.history-page-heading{align-items:flex-start;flex-direction:column}.history-list{grid-template-columns:1fr}.modal-card{padding:25px 20px}.public-matchup{grid-template-columns:1fr 24px 1fr;gap:6px}.public-matchup>div{padding:12px 6px}.public-matchup strong{font-size:12px}.public-matchup b{font-size:27px}.topbar-actions{gap:9px}.playoff-action{align-items:stretch;flex-direction:column}.playoff-bracket{grid-template-columns:1fr}}
