@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap";
.score-panel,.side-panel{min-width:0}.voice-launch{background:#fff;width:100%;min-height:48px;margin-bottom:18px}.voice-record{justify-content:center;align-items:center;gap:8px;display:flex}.voice-label{margin:18px 0;font-size:13px;display:block}.voice-label textarea{width:100%;font:inherit;border:1px solid #b6c0af;border-radius:8px;min-height:90px;margin-top:8px;padding:12px;font-size:16px;display:block}.voice-dialog .voice-hint{margin:13px 0;font-size:12px;line-height:1.6}.voice-dialog .voice-error{color:#922727;font-size:13px}.voice-review{background:#f0f4e9;border-radius:10px;margin-top:16px;padding:16px}.voice-review .secondary{width:100%;margin-top:8px}.sharing-bar{align-items:center;gap:12px;margin-bottom:15px;display:flex}.sharing-bar>span{color:var(--muted);font-size:11px}.sync-error{background:#fff4ef;border:1px solid #dca99c;border-radius:10px;margin-bottom:16px;padding:16px}.sync-error button{margin:10px 8px 0 0;display:inline-flex}.sync-error p{line-height:1.5}@media (max-width:480px){.sharing-bar{flex-direction:column;align-items:flex-start;gap:7px}}.photo-launch{text-align:left;background:#e6efcf;border:1px solid #cadbb3;border-radius:12px;align-items:center;gap:12px;width:100%;min-height:64px;margin:0 0 18px;padding:16px 19px;font-weight:600;display:flex}.photo-launch>span:last-child{margin-left:auto;font-size:23px}.photo-launch small{color:#4e6046;margin-top:4px;font-size:11px;font-weight:400;display:block}.photo-actions{gap:10px;display:flex}.photo-actions button{flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.photo-dialog .photo-privacy{margin:12px 0 16px;font-size:11px}.photo-preview{object-fit:contain;background:#f0f1eb;border-radius:9px;width:100%;max-height:220px;margin-bottom:18px;display:block}.photo-loading{align-items:center;gap:10px;padding:20px 0;display:flex}.photo-dialog .photo-error{color:#9f2828;background:#fff0ee;border-radius:8px;padding:12px;font-size:13px}.photo-dialog .photo-warning{color:#765416;background:#fff8e6;border-radius:7px;padding:10px;font-size:12px}.photo-dialog .review-hint{font-size:12px}.photo-row{border-top:1px solid var(--line);padding:16px 0}.photo-row label{margin-bottom:12px;font-size:12px;display:block}.photo-row select,.photo-row textarea{width:100%;min-height:44px;font:inherit;color:var(--ink);background:#fff;border:1px solid #bac5b3;border-radius:7px;margin-top:7px;padding:10px;display:block}.photo-row textarea{resize:vertical;font-size:16px}.photo-dialog .review-score{margin:8px 0;font-size:12px}.photo-success{color:var(--green);margin-bottom:12px;font-size:12px}.photo-undo{margin-bottom:12px}@media (max-width:480px){.photo-dialog{padding:22px}.photo-actions{flex-direction:column}}:root{--paper:#f7f7f2;--ink:#202d25;--muted:#727b72;--line:#e0e4dc;--green:#2d5139;--lime:#ddf29a;--white:#fff;--display:"Space Grotesk",sans-serif}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:DM Sans,sans-serif;font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline-offset:4px;outline:3px solid #628836}button{transition:background .15s,transform .15s}button:active:not(:disabled){transform:translateY(1px)}main{max-width:1320px;margin:auto;padding:0 48px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display)}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:98px;display:flex}.brand{font-family:var(--display);letter-spacing:-.6px;color:var(--ink);align-items:center;gap:7px;font-size:17px;font-weight:700;text-decoration:none;display:flex}.brand>span:last-child{font-weight:400}.brand-icon{background:var(--green);color:var(--lime);border-radius:50%;place-items:center;width:36px;height:36px;margin-right:5px;display:grid}.league-tag{letter-spacing:1.6px;align-items:center;gap:9px;font-size:10px;display:flex}.league-tag>span,.live-dot{background:#4d7747;border-radius:100%;width:6px;height:6px;display:inline-block}.intro{justify-content:space-between;align-items:end;gap:20px;padding:43px 0 35px;display:flex}.eyebrow{letter-spacing:1.7px;color:var(--muted);align-items:center;gap:8px;font-size:10px;font-weight:700;display:flex}h1{letter-spacing:-2px;margin:12px 0;font-size:clamp(32px,4vw,49px);font-weight:500}h1 em{color:#58723e;font-style:normal}.intro p{color:var(--muted);font-size:14px}.secondary{border:1px solid var(--line);background:0 0;border-radius:9px;justify-content:center;align-items:center;gap:10px;min-height:44px;padding:12px 17px;font-size:12px;font-weight:600;display:flex}.secondary:hover{background:#e9eddf}.session-bar{letter-spacing:1.2px;justify-content:space-between;align-items:center;padding:17px 0;font-size:10px;display:flex}.session-bar>div{align-items:center;gap:10px;font-weight:700;display:flex}.muted{color:#bec5b7}.save-status{color:var(--muted);letter-spacing:0;align-items:center;gap:5px;font-size:11px;display:flex}.team-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:27px;display:grid}.bowler-card{background:var(--white);border:1px solid var(--line);text-align:left;border-radius:13px;padding:18px 18px 0;overflow:hidden}.bowler-card.selected{border:1.5px solid var(--green);box-shadow:0 0 0 1px var(--green);background:#f0f4e9}.bowler-card:hover{background:#edf1e7}.card-top{align-items:center;gap:9px;display:flex}.avatar{border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:12px;font-weight:600;display:grid}.avatar-0{color:#365237;background:#dfe8d3}.avatar-1{color:#84633b;background:#f1e5d8}.avatar-2{color:#52737a;background:#dce6e9}.avatar-3{color:#775984;background:#e8dfef}.bowler-name{font-size:14px;font-weight:600}.active-label{letter-spacing:.8px;color:var(--green);margin-left:auto;font-size:8px}.card-scores{align-items:center;gap:22px;margin:21px 0 17px;display:flex}.small-label{letter-spacing:1.1px;color:var(--muted);font-size:9px;font-weight:600;display:block}.card-scores strong{font-family:var(--display);letter-spacing:-1px;font-variant-numeric:tabular-nums;font-size:31px;font-weight:500;line-height:1.25;display:block}.possible{color:#5b743f}.score-divider{background:var(--line);width:1px;height:34px}.card-footer{color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 0;font-size:10px;display:flex}.workspace{grid-template-columns:minmax(0,1fr) 287px;gap:25px;display:grid}.score-panel{border:1px solid var(--line);background:#fff;border-radius:16px;padding:27px}.panel-heading{justify-content:space-between;align-items:center;margin-bottom:23px;display:flex}.panel-heading h2{letter-spacing:-.8px;flex-wrap:wrap;align-items:center;gap:13px;margin-top:8px;font-size:22px;font-weight:500;display:flex}.game-chip{border:1px solid var(--line);letter-spacing:0;color:var(--muted);border-radius:5px;padding:4px 7px;font-family:DM Sans,sans-serif;font-size:9px}.ceiling-hero{background:var(--green);color:#fff;border-radius:11px;justify-content:space-between;align-items:center;gap:15px;padding:25px 27px;display:flex;overflow:hidden}.ceiling-hero .small-label{color:#d6e2d0;font-size:9px}.hero-number{font-family:var(--display);letter-spacing:-5px;font-variant-numeric:tabular-nums;color:var(--lime);align-items:center;gap:18px;font-size:76px;font-weight:500;line-height:1.15;display:flex}.hero-number svg{stroke-width:1.4px;align-self:start;width:31px;height:31px;margin-top:12px}.ceiling-hero p{color:#d1ddce;font-size:11px;line-height:1.7}.pin-art{color:#92ad75;opacity:.55;white-space:pre;letter-spacing:8px;flex-direction:column;align-items:center;gap:7px;font-family:monospace;font-size:17px;display:flex;transform:rotate(-12deg)}.scorecard-scroll{margin-top:26px;overflow-x:auto}table{border-collapse:collapse;table-layout:fixed;text-align:center;width:100%;min-width:460px}th{color:var(--muted);border:1px solid var(--line);background:#f5f6f0;padding:9px;font-size:10px;font-weight:500}td{border:1px solid var(--line);vertical-align:top;height:75px;padding:0 0 9px}.frame-rolls{justify-content:end;align-items:start;min-height:30px;font-size:12px;display:flex}.frame-rolls span{border-left:1px solid var(--line);border-bottom:1px solid var(--line);min-width:18px;padding:4px 2px}td strong{min-height:23px;font-family:var(--display);font-size:17px;font-weight:500;display:block}.current{background:#f0f5df}.score-note{color:var(--muted);margin-top:10px;font-size:10px;line-height:1.6}.entry-heading{justify-content:space-between;align-items:center;margin:25px 0 16px;display:flex}.entry-heading h3{letter-spacing:-.4px;font-size:17px;font-weight:500}.entry-heading p{color:var(--muted);margin-top:5px;font-size:11px}.text-button{background:0 0;border:0;align-items:center;gap:6px;min-height:44px;padding:8px;font-size:11px;display:flex}.pin-buttons{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.pin-buttons button{border:1px solid var(--line);background:#fafbf7;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:66px;display:flex}.pin-buttons button:hover{background:#edf2df;border-color:#819b5c}.pin-buttons strong{font-size:23px;font-family:var(--display);font-weight:500}.pin-buttons span{letter-spacing:1px;color:var(--muted);font-size:7px}.pin-buttons .clear-pins{background:var(--lime);border-color:#c9e286}.team-summary{border:1px solid var(--line);background:#eeefe6;border-radius:13px;padding:25px}.team-summary h3{margin:22px 0 7px;font-size:18px;font-weight:500}.team-total{font-size:51px;font-family:var(--display);letter-spacing:-2px;font-weight:500}.team-summary p{color:var(--muted);margin-top:5px;font-size:12px;line-height:1.8}.potential-track{background:#d8decf;border-radius:10px;height:5px;margin-top:24px;overflow:hidden}.potential-track span{background:#67814b;height:100%;display:block}.range-labels{color:var(--muted);justify-content:space-between;margin-top:8px;font-size:8px;display:flex}.summary-divider{background:#dce0d1;height:1px;margin:24px 0 20px}.summary-row{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;margin-top:13px;font-size:11px;display:flex}.summary-row strong{color:var(--ink);font-family:var(--display);font-size:15px}.tip{gap:13px;margin:26px 6px;display:flex}.tip-icon{color:#73924d;font-size:25px;line-height:1}.tip h3{font-size:13px;font-weight:500}.tip p{color:var(--muted);margin-top:6px;font-size:11px;line-height:1.8}.next-game{background:#fff;justify-content:space-between;width:100%}.device-note{color:var(--muted);text-align:center;margin:13px 12px;font-size:10px;line-height:1.7}footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;margin-top:40px;padding:25px 0;font-size:9px;display:flex}footer span:first-child{font-family:var(--display);letter-spacing:1px}dialog{border:1px solid var(--line);width:calc(100% - 32px);max-width:460px;color:var(--ink);border-radius:18px;max-height:85dvh;padding:0}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14281fb3}.dialog-inner{padding:30px}.dialog-inner h2{margin:14px 0;font-size:26px}.dialog-inner p{color:var(--muted);margin:15px 0 24px;font-size:14px;line-height:1.7}.close-button{float:right;background:0 0;border:0;place-items:center;width:44px;height:44px;margin:-18px -17px 0 0;display:grid}.primary{background:var(--green);color:#fff;border:0;border-radius:9px;width:100%;min-height:48px;padding:15px;font-weight:600}.dialog-inner>.secondary{width:100%;margin-top:10px}.history-game{border-top:1px solid var(--line);padding:18px 0}.history-game h3{font-size:16px}.history-game .summary-row{font-size:14px}@media (min-width:1400px){main{padding:0 55px}.intro{padding-top:52px}}@media (max-width:1000px){main{padding:0 25px}.workspace{grid-template-columns:minmax(0,1fr) 245px;gap:18px}.score-panel{padding:20px}.card-scores{gap:15px}.bowler-card{padding:15px 13px 0}.active-label{font-size:7px}.team-summary{padding:20px}}@media (max-width:760px){main{padding:0 18px}.topbar{height:75px}.brand{font-size:14px}.league-tag{letter-spacing:1px;font-size:8px}.intro{padding:29px 0 19px}.intro h1{letter-spacing:-1.6px}.intro p{max-width:260px;font-size:12px;line-height:1.7}.history-button{min-width:44px;padding:10px;font-size:0}.history-button svg{width:19px;height:19px}.team-grid{grid-template-columns:repeat(2,1fr);gap:11px;margin-bottom:20px}.workspace{grid-template-columns:1fr}.card-scores{gap:22px;margin:15px 0}.bowler-card{padding:14px 15px 0}.active-label{font-size:7px}.score-panel{border-radius:13px;padding:18px}.panel-heading h2{gap:8px;font-size:21px}.ceiling-hero{padding:23px 20px}.hero-number{font-size:73px}.pin-art{letter-spacing:5px;font-size:13px}.pin-buttons{grid-template-columns:repeat(4,1fr)}.pin-buttons button{min-height:68px}.side-panel{grid-template-columns:1fr;display:grid}.team-summary{padding:22px}.team-summary h3{margin-top:16px}.team-total{font-size:43px}.tip{margin:22px 5px}.save-status{font-size:9px}.session-bar{letter-spacing:.7px;font-size:9px}.scorecard-scroll{margin-top:22px}footer{gap:10px;margin-top:26px;font-size:8px}.ceiling-hero p{font-size:10px}.small-label{font-size:8px}.card-scores strong{font-size:29px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.league-section{margin-bottom:34px}.league-section>.eyebrow{margin-bottom:14px}.league-scroll{border:1px solid var(--line);background:#fff;border-radius:13px;overflow-x:auto}.league-table{table-layout:auto;text-align:center;min-width:560px}.league-table th{border:0;border-bottom:1px solid var(--line);padding:11px 10px}.league-table td{border:0;border-bottom:1px solid var(--line);vertical-align:middle;font-variant-numeric:tabular-nums;height:auto;padding:13px 10px;font-size:13px}.league-table tr:last-child td{border-bottom:0}.league-table .left{text-align:left}.league-table tr.ours td{background:#f0f4e9}.league-table tr.ours td.left strong:after{content:" ●";color:var(--green);font-size:10px}.muted-cell{color:var(--muted)}.roster-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.roster-card{cursor:default;padding-bottom:6px}.roster-card:hover{background:#fff}.roster-rows{border-top:1px solid var(--line);padding:4px 0 12px}.roster-rows .summary-row{margin-top:10px}.league-columns{grid-template-columns:minmax(0,1fr) 340px;gap:25px;display:grid}.leaderboard{border:1px solid var(--line);background:#fff;border-radius:13px;margin:0;padding:0;list-style:none}.leaderboard li{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:10px 16px;font-size:13px;display:flex}.leaderboard li:last-child{border-bottom:0}.leaderboard li.ours{background:#f0f4e9}.leaderboard .rank{width:22px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.leaderboard .who{flex-direction:column;flex:1;display:flex}.leaderboard .who small{color:var(--muted);margin-top:2px;font-size:10px}.leaderboard .pts{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:17px}.week-bars{border:1px solid var(--line);background:#fff;border-radius:13px;align-items:flex-end;gap:6px;height:140px;padding:14px 14px 4px;display:flex;overflow-x:auto}.week-bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:14px;height:100%;display:flex;position:relative}.week-bar span{background:#c9d3bd;border-radius:3px 3px 0 0;width:100%;display:block}.week-bar span.win{background:var(--green)}.week-bar small{color:var(--muted);margin-top:4px;font-size:8px}.week-bars:before{content:"";pointer-events:none;border-top:1px dashed #b9c4ad;position:absolute;top:calc(50% + 2px);left:0;right:0}.week-bars{position:relative}@media (max-width:1000px){.roster-grid{grid-template-columns:repeat(2,1fr)}.league-columns{grid-template-columns:1fr}}@media (max-width:480px){.roster-grid{grid-template-columns:1fr}}a.league-tag{color:inherit;text-decoration:none}.season-nav{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.season-nav a{border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:6px 11px;font-size:11px;font-weight:600;text-decoration:none}.season-nav a.active{background:var(--green);color:#fff;border-color:var(--green)}.match-panel{border:1px solid var(--line);background:#fff;border-radius:13px;margin-bottom:18px;padding:20px}.match-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.match-head .text-button{min-height:36px;padding:6px 8px}.points-strip{text-align:center;grid-template-columns:1fr auto 1fr;align-items:end;gap:12px;margin:16px 0 6px;display:grid}.points-strip strong{font-family:var(--display);letter-spacing:-1.5px;font-variant-numeric:tabular-nums;font-size:40px;font-weight:500;line-height:1.1;display:block}.points-strip>div:first-child strong{color:var(--green)}.points-remaining strong{color:var(--muted);font-size:22px}.points-breakdown{border-top:1px solid var(--line);margin-top:12px;padding-top:4px}.points-breakdown .summary-row{margin-top:9px}.opponent-grid-scroll{margin-top:16px;overflow-x:auto}.opponent-grid{table-layout:auto;min-width:0;font-size:12px}.opponent-grid th,.opponent-grid td{border:0;border-bottom:1px solid var(--line);vertical-align:middle;background:0 0;height:auto;padding:7px 4px}.opponent-grid th.left{text-align:left;color:var(--ink);font-size:12px;font-weight:600}.opponent-grid th.left small{color:var(--muted);font-size:9px;font-weight:400;display:block}.opponent-grid input{width:54px;min-height:40px;font:inherit;text-align:center;color:var(--ink);background:#fafbf7;border:1px solid #bac5b3;border-radius:7px;font-size:16px}.opponent-grid input:focus-visible{outline-offset:1px;outline:2px solid #628836}.opponent-grid .ours-row th,.opponent-grid .ours-row td{background:#f0f4e9;font-weight:600}.chalkboard{border-top:1px solid var(--line);color:#6b5a3e;align-items:center;gap:10px;margin-top:16px;padding-top:14px;display:flex}.chalkboard>div{flex:1}.chalkboard strong{font-family:var(--display);color:var(--ink);font-size:15px;display:block}.field{margin:14px 0;font-size:12px;display:block}.field input,.field select{width:100%;min-height:44px;font:inherit;color:var(--ink);background:#fff;border:1px solid #bac5b3;border-radius:7px;margin-top:6px;padding:10px;font-size:16px;display:block}.lineup-pick{border:1px solid var(--line);border-radius:10px;margin:14px 0;padding:8px 12px 12px}.lineup-pick legend{color:var(--muted);padding:0 4px;font-size:11px;font-weight:600}.lineup-pick label{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:44px;font-size:13px;display:flex}.lineup-pick label:last-child{border-bottom:0}.lineup-pick label.on span{color:var(--green);font-weight:600}.lineup-pick label small{color:var(--muted);text-align:right;margin-left:auto;font-size:11px}.lineup-pick input[type=checkbox]{width:20px;height:20px;accent-color:var(--green)}.lineup-pick.ours label span{flex:1}.lineup-pick.ours input{width:70px;min-height:40px;font:inherit;text-align:center;border:1px solid #bac5b3;border-radius:7px;font-size:16px}.reconcile-card{background:#fff8e6;border:1px solid #ecd9a3;border-radius:12px;margin-bottom:10px;padding:14px 16px}.reconcile-card .score-note{margin:0 0 6px}.reconcile-list{margin:8px 0;padding-left:18px;font-size:13px;line-height:1.7}.reconcile-list em{font-style:normal;font-family:var(--display);font-weight:600}.reconcile-card a{color:var(--green)}.targets-panel{border:1px solid var(--line);background:#fff;border-radius:13px;margin-bottom:18px;padding:18px 20px}.targets-panel>.eyebrow{margin-bottom:8px}.target-row{border-bottom:1px solid var(--line);grid-template-columns:70px 1fr;align-items:baseline;gap:4px 10px;padding:9px 0;font-size:12px;display:grid}.target-row:last-of-type{border-bottom:0}.target-row span{color:var(--muted);line-height:1.5}.target-row em{color:#6b5a3e;grid-column:2;align-items:center;gap:5px;font-style:normal;font-weight:600;display:flex}.recap-card{border:1px solid var(--line);background:#fff;border-radius:13px;padding:20px}.recap-text{white-space:pre-wrap;margin-bottom:16px;font-size:14px;line-height:1.75}.recap-button{width:auto;margin-top:10px;padding:12px 18px}.topbar-right{align-items:center;gap:14px;display:flex}.account-link,.topbar-right .secondary{min-height:38px;padding:8px 12px;font-size:11px}.account-email{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:11px;overflow:hidden}.topbar-right .text-button{min-height:38px;font-size:11px}.login-card{border:1px solid var(--line);background:#fff;border-radius:16px;max-width:440px;margin:48px auto;padding:30px}.login-card h1{margin:14px 0 8px;font-size:32px}.login-card p{color:var(--muted);margin-bottom:8px;line-height:1.7}.login-card .primary{margin-top:6px}.login-card .text-button{margin:8px auto 0}.code-input{font-family:var(--display);letter-spacing:8px;text-align:center;font-size:28px!important}.member-list{border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:0;list-style:none}.member-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:10px 14px;font-size:13px;display:flex}.member-list li:last-child{border-bottom:0}.member-list strong{color:var(--muted);font-size:12px;font-weight:500}@media (max-width:760px){.account-email{display:none}.topbar-right{gap:8px}}
