:root{font-family:Avenir Next,Segoe UI,sans-serif;color:#19231e;background:#f4f1e9;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--paper: #f4f1e9;--ink: #19231e;--muted: #72776e;--green: #175c45;--green-dark: #104735;--orange: #ec6848;--line: #d9d7ce;--serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;--mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}#nl-badge-frame{display:none!important}body{min-width:320px;min-height:100vh;margin:0;background:radial-gradient(#1d35281a .7px,transparent .7px);background-size:9px 9px}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:3px solid #ec6848a8;outline-offset:3px}.app-shell{min-height:100vh;padding:0 7.2vw 44px}.topbar{min-height:76px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:11px;color:var(--ink);font-size:13px;font-weight:850;letter-spacing:1.8px;text-decoration:none}.brand-logo{width:38px;aspect-ratio:1;border-radius:8px;object-fit:cover}.brand-dot,.title-period{color:var(--orange)}.topbar-meta,.eyebrow,.rules-line,.player-number,.turn-tag,.winner-tag,.player-card-bottom,.name-field>span,.player-count legend,.dart-input>span,.visit-total>span,.game-footer,.dart-counter{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:1.1px}.topbar-meta{display:flex;align-items:center;gap:9px;color:var(--muted)}.topbar-nav{display:flex;align-items:center;justify-content:center;gap:0;min-width:0}.topbar-nav-group{display:flex;align-items:center;gap:4px}.topbar-nav-group+.topbar-nav-group{margin-left:12px;padding-left:12px;border-left:1px solid var(--line)}.topbar-nav-link{position:relative;min-height:42px;padding:0 12px;border:0;background:transparent;color:#51594f;font-size:12px;font-weight:650;white-space:nowrap;cursor:pointer;transition:color .14s,background .14s}.topbar-nav-link:hover{background:#175c4509;color:var(--green)}.topbar-nav-link[aria-current=page]{color:var(--green)}.topbar-nav-link[aria-current=page]:after{position:absolute;right:12px;bottom:3px;left:12px;height:2px;background:var(--orange);content:""}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.topbar-actions .sign-out-button{min-height:32px;padding:0 10px;border:1px solid var(--line);background:transparent;color:var(--green);font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer}.topbar-actions .sign-out-button:hover{border-color:var(--green);background:#175c4509}.club-menu-button{min-height:35px;padding:0 13px;border:1px solid var(--green);background:var(--green);color:#fff;font-size:12px;font-weight:700;cursor:pointer}.club-menu-button:hover{background:var(--green-dark)}.club-menu-button[aria-current=page]{border-color:var(--line);background:transparent;color:var(--green)}.profile-menu-button{background:transparent;color:var(--green)}.profile-menu-button:hover{background:#175c4510}.player-directory-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,470px);align-items:center;gap:8vw;max-width:1180px;min-height:calc(100vh - 180px);margin:0 auto;padding:50px 0 75px}.player-directory-card{display:grid;gap:14px;padding:26px 28px;border:1px solid #d0d0c6;background:#f8f6efeb;box-shadow:9px 10px #175c450e}.player-directory-card .admin-section-heading{margin:0}.player-directory-card .admin-section-heading h2{margin:0;font-family:var(--serif);font-size:28px;font-weight:500}.player-directory-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.player-directory-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;border-bottom:1px solid var(--line);color:var(--ink);font-size:13px}.player-directory-tag{flex:none;color:var(--muted);font:9px var(--mono);letter-spacing:.8px}.player-directory-guest{display:grid;gap:8px;padding-top:15px;border-top:1px solid var(--line)}.player-directory-guest>.eyebrow{margin:0}.player-directory-guest>p:not(.eyebrow){display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0}.player-directory-guest>small{color:var(--muted);font-size:11px;line-height:1.5}.club-evenings-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,390px);align-items:center;gap:8vw;max-width:1180px;min-height:calc(100vh - 180px);margin:0 auto;padding:50px 0 75px}.club-evenings-heading h1{margin:0;font-family:var(--serif);font-size:clamp(52px,9vw,108px);font-weight:500;line-height:.98}.club-evenings-heading .intro{margin-top:24px}.club-registration-card{padding:27px 29px;border:1px solid #d0d0c6;background:#f8f6efeb;box-shadow:9px 10px #175c450e}.club-registration-card .eyebrow{margin-bottom:8px}.club-registration-card h2{margin:0 0 19px;font-family:var(--serif);font-size:30px;font-weight:500}.club-signup-field{display:grid;gap:7px;margin-bottom:13px}.club-signup-field>span{color:var(--muted);font:10px var(--mono);letter-spacing:1px}.club-signup-field input,.club-signup-field select{width:100%;min-width:0;min-height:43px;padding:0 10px;border:1px solid var(--line);border-radius:0;background:#fffefa;color:var(--ink);font-size:13px}.club-signup-form{display:grid;gap:1px}.club-signup-submit{width:100%;margin-top:1px}.club-cancel-button,.club-attendees li button{min-height:30px;padding:0 8px;border:1px solid var(--line);background:transparent;color:var(--green);font-size:11px;cursor:pointer}.club-cancel-button{margin-top:9px}.club-cancel-button:disabled,.club-attendees li button:disabled{cursor:not-allowed;opacity:.55}.club-signup-message,.club-local-note{color:var(--muted);font-size:11px;line-height:1.5}.club-attendees{margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.club-attendees h3{display:flex;justify-content:space-between;margin:0 0 10px;font-size:13px}.club-attendees h3 span{color:var(--green);font-family:var(--mono)}.club-attendees>p{color:var(--muted);font-size:12px}.club-attendees ul{display:grid;gap:7px;margin:0;padding:0;list-style:none}.club-attendees li{display:flex;align-items:center;justify-content:space-between;gap:9px;color:var(--ink);font-size:12px}.club-local-note{margin:16px 0 0}.admin-page{display:grid;gap:25px;max-width:1180px;margin:0 auto;padding:50px 0 75px}.admin-page>.club-evenings-heading h1{font-size:clamp(52px,9vw,108px)}.admin-panel{padding:25px 28px;border:1px solid #d0d0c6;background:#f8f6efeb;box-shadow:9px 10px #175c450e}.admin-section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,290px) auto;align-items:end;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--line)}.admin-section-heading h2,.admin-roles-panel h2{margin:0;font-family:var(--serif);font-size:27px;font-weight:500}.admin-section-heading .eyebrow,.admin-roles-panel .eyebrow{margin:0 0 5px}.admin-export-select,.admin-role-form label,.admin-signup-edit label{display:grid;gap:6px;min-width:0}.admin-export-select>span,.admin-role-form label>span,.admin-signup-edit label>span{color:var(--muted);font:9px var(--mono);letter-spacing:.8px}.admin-export-select select,.admin-role-form input,.admin-signup-edit input,.admin-signup-edit select{width:100%;min-width:0;min-height:40px;padding:0 9px;border:1px solid var(--line);border-radius:0;background:#fffefa;color:var(--ink);font-size:12px}.admin-export-button{min-height:40px;white-space:nowrap}.admin-export-button:disabled,.admin-signup-actions button:disabled,.admin-role-form button:disabled,.admin-list button:disabled{cursor:not-allowed;opacity:.55}.admin-message{margin:13px 0 0;color:var(--green);font-size:12px;line-height:1.5}.admin-message.is-error{color:#9b452f}.admin-empty{margin:17px 0 0;color:var(--muted);font-size:12px}.admin-event{padding-top:16px}.admin-event+.admin-event{margin-top:15px;border-top:1px solid var(--line)}.admin-event h3{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 7px;font-size:14px}.admin-event h3 span{color:var(--green);font:10px var(--mono);white-space:nowrap}.admin-signup-list,.admin-list{display:grid;margin:0;padding:0;list-style:none}.admin-signup-list>li,.admin-list>li{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:43px;padding:7px 0;border-top:1px solid #d9d7ce80;font-size:12px}.admin-signup-name,.admin-list>li>span{min-width:0;overflow-wrap:anywhere}.admin-signup-actions{display:flex;flex:none;align-items:center;justify-content:flex-end;gap:7px}.admin-signup-actions button,.admin-list button{min-height:31px;padding:0 9px;border:1px solid var(--line);background:transparent;color:var(--green);font-size:11px;font-weight:700;cursor:pointer}.admin-signup-actions button:hover,.admin-list button:hover{border-color:var(--green)}.admin-signup-actions .admin-delete-confirm,.admin-signup-actions .admin-delete-button,.admin-list .admin-delete-button{color:#9b452f}.admin-signup-edit{width:100%;display:grid;grid-template-columns:minmax(180px,.8fr) minmax(130px,1fr) auto;align-items:end;gap:10px}.admin-signup-edit .admin-signup-actions{grid-column:3}.admin-roles-panel{display:grid;gap:15px}.admin-roles-panel>div>p:last-child,.admin-role-note{margin:7px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.admin-role-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.admin-role-form .primary-button{min-height:40px}.admin-list>li{border-top:0;border-bottom:1px solid #d9d7ce80}.admin-role-note{margin:-7px 0 0}.admin-documents-panel .admin-section-heading{grid-template-columns:minmax(0,1fr) auto}.admin-document-upload{position:relative;display:inline-flex;min-height:40px;align-items:center;justify-content:center;padding:0 13px;cursor:pointer}.admin-document-upload input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.admin-document-upload:focus-within{outline:2px solid var(--green);outline-offset:3px}.admin-document-upload.is-disabled{cursor:not-allowed;opacity:.55}.admin-document-upload.is-disabled input{cursor:not-allowed}.admin-document-note{margin:13px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.admin-document-list{display:grid;margin:0;padding:0;list-style:none}.admin-document-list>li{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:50px;padding:8px 0;border-bottom:1px solid #d9d7ce80;font-size:12px}.admin-document-details{display:grid;min-width:0;gap:4px}.admin-document-details>span:last-child{color:var(--muted);font-size:10px}.admin-document-name{overflow-wrap:anywhere;font-weight:700}.tournament-panel{display:grid;gap:18px}.tournament-panel .admin-section-heading{grid-template-columns:minmax(0,1fr) minmax(210px,290px) auto}.tournament-heading-actions{display:flex;justify-content:flex-end;gap:8px}.tournament-active-count{align-self:center;margin:0;color:var(--green);font:10px var(--mono);text-align:right}.tournament-print-button{min-height:40px;padding:0 12px;border:1px solid var(--green);background:transparent;color:var(--green);font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer}.tournament-print-button:hover{background:#175c4510}.tournament-print-content{display:none}.tournament-format-note{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.tournament-day-panel{display:grid;gap:12px;padding:16px;border:1px solid var(--line);background:#fffefa}.tournament-day-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.tournament-day-heading h3{margin:0;font-family:var(--serif);font-size:21px;font-weight:500}.tournament-day-heading>span,.tournament-day-queue h4{color:var(--green);font:9px var(--mono);letter-spacing:.5px;text-transform:uppercase}.tournament-board-chips{display:flex;flex-wrap:wrap;gap:7px}.tournament-board-chips>span{padding:6px 8px;border:1px solid var(--line);font:9px var(--mono)}.tournament-board-chips>.is-free{background:#175c450c;color:var(--green)}.tournament-board-chips>.is-occupied{background:#ec68480d;color:#9b452f}.tournament-board-warning{margin:0;color:#9b452f;font-size:11px;line-height:1.5}.tournament-day-match-list,.tournament-day-queue ol{display:grid;gap:7px;margin:0;padding:0;list-style:none}.tournament-day-match-list>li,.tournament-day-queue li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid #d9d7ce}.tournament-day-match-info{display:grid;min-width:0;gap:3px;font-size:11px}.tournament-day-match-info strong{color:var(--green);font-size:10px}.tournament-day-match-info span{overflow-wrap:anywhere}.tournament-day-match-info small{color:var(--muted);font:8px var(--mono)}.tournament-board-select{display:grid;flex:none;gap:4px}.tournament-board-select>span{color:var(--muted);font:8px var(--mono)}.tournament-board-select select{min-height:34px;border:1px solid var(--line);border-radius:0;background:#fffefa;color:var(--ink);font-size:11px}.tournament-day-queue{display:grid;gap:7px;padding-top:10px;border-top:1px solid var(--line)}.tournament-day-queue h4{margin:0}.tournament-day-queue li>span{min-width:0;font-size:10px;line-height:1.4;overflow-wrap:anywhere}.tournament-day-queue li>span small{display:block;margin-top:4px;color:var(--green);font:8px var(--mono)}.tournament-day-queue li .tournament-play-button{min-height:33px}.tournament-day-queue>p{margin:0;color:var(--muted);font-size:11px}.tournament-draw{display:grid;gap:14px}.tournament-draw>.admin-empty{margin:0;line-height:1.6}.tournament-seed-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:0;padding:0;list-style:none}.tournament-seed-list li{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #d9d7ce80;font-size:12px}.tournament-seed-list li>span{min-width:0;overflow-wrap:anywhere}.tournament-seed-list label{display:grid;flex:none;gap:4px}.tournament-seed-list label>span{color:var(--muted);font:8px var(--mono)}.tournament-seed-list select{min-height:33px;max-width:125px;border:1px solid var(--line);border-radius:0;background:#fffefa;color:var(--ink);font-size:11px}.tournament-pool{min-width:0;padding-top:17px;border-top:1px solid var(--line)}.tournament-pool>h3{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px;font-size:15px}.tournament-pool>h3 span{color:var(--green);font:9px var(--mono)}.tournament-table-wrap{max-width:100%;overflow-x:auto}.tournament-standings{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.tournament-standings th,.tournament-standings td{padding:9px 10px;border-bottom:1px solid #d9d7ce80}.tournament-standings thead th{color:var(--muted);font:9px var(--mono)}.tournament-standings tbody th{font-weight:600}.tournament-standings tbody th small{display:block;margin-top:3px;color:var(--orange);font:8px var(--mono)}.tournament-standings input{width:18px;height:18px;accent-color:var(--green)}.tournament-match-list{display:grid;gap:7px;margin:13px 0 0;padding:0;list-style:none}.tournament-match{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #d9d7ce;background:#fffefa}.tournament-match-info{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:baseline;gap:4px 9px;font-size:11px}.tournament-match-info span{overflow-wrap:anywhere}.tournament-match-info span:last-of-type{text-align:right}.tournament-match-info b{color:var(--orange)}.tournament-match-info small{grid-column:1 / -1;color:var(--muted);font:8px var(--mono)}.tournament-match-info .tournament-referee{color:var(--green)}.tournament-play-button{flex:none;min-height:36px;padding:0 12px;border:1px solid var(--green);background:var(--green);color:#fff;font-size:10px;font-weight:700;cursor:pointer}.tournament-play-button:disabled{cursor:wait;opacity:.6}.tournament-match-result{max-width:45%;color:var(--green);font-size:11px;text-align:right;overflow-wrap:anywhere}.tournament-match-pending{color:var(--muted);font-size:10px}.tournament-resume-status{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-8px 0 0;color:var(--green);font-size:11px;line-height:1.5}.tournament-resume-status.is-error{color:#9b452f}.tournament-resume-status strong{display:block;margin-top:4px}.tournament-cup-round{margin-top:16px}.tournament-cup-round h4{margin:0;color:var(--green);font:10px var(--mono);letter-spacing:.5px;text-transform:uppercase}.tournament-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:12px;border-top:1px solid var(--line)}.tournament-actions .admin-empty{margin:0;line-height:1.5}.tournament-champion{margin:16px 0 0;padding:13px;background:#175c4510;color:var(--green);font-family:var(--serif);font-size:20px;text-align:center}.tournament-archive{padding-top:17px;border-top:1px solid var(--line)}.tournament-archive-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.tournament-archive h3{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0;font-size:14px}.tournament-archive h3 span{color:var(--green);font:9px var(--mono)}.tournament-delete-button{color:#9b452f!important}.tournament-archive>p{margin:7px 0 12px;color:var(--muted);font-size:11px;line-height:1.5}.tournament-archive ul{display:grid;margin:0;padding:0;list-style:none}.tournament-archive li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:45px;padding:7px 0;border-top:1px solid #d9d7ce80}.tournament-archive li>div{min-width:0;display:grid;gap:4px}.tournament-archive li>.tournament-archive-actions{display:flex;flex:none;flex-wrap:wrap;gap:7px}.tournament-delete-confirmation{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:9px;border:1px solid #9b452f66;background:#9b452f0d;color:#7f321f;font-size:11px;line-height:1.45}.tournament-delete-confirmation>span{flex:1 1 100%}.tournament-delete-confirmation button{min-height:32px;padding:0 10px;border:1px solid var(--line);background:#fffefa;color:var(--ink);font-size:10px;font-weight:700;cursor:pointer}.tournament-delete-confirmation .tournament-delete-button{border-color:#9b452f;background:#9b452f;color:#fff!important}.tournament-delete-confirmation button:disabled,.tournament-archive li button:disabled{cursor:not-allowed;opacity:.55}.tournament-archive li strong{font-size:12px}.tournament-archive li span{color:var(--muted);font-size:10px}.tournament-archive li button{min-height:32px;flex:none;padding:0 10px;border:1px solid var(--green);background:transparent;color:var(--green);font-size:10px;font-weight:700;cursor:pointer}.tournament-archive li button:disabled{border-color:var(--line);color:var(--muted);cursor:default}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}.player-profile-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,460px);align-items:center;gap:8vw;max-width:1180px;min-height:calc(100vh - 180px);margin:0 auto;padding:50px 0 75px}.player-profile-page .club-evenings-heading h1{max-width:520px}.player-profile-card{padding:27px 29px;border:1px solid #d0d0c6;background:#f8f6efeb;box-shadow:9px 10px #175c450e}.player-profile-card>.eyebrow{margin-bottom:8px}.player-profile-card>h2{margin:0;font-family:var(--serif);font-size:27px;font-weight:500}.profile-account-label{margin:4px 0 20px;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.profile-identity{display:flex;align-items:center;gap:13px}.profile-identity h2{min-width:0;overflow-wrap:anywhere}.profile-avatar{width:68px;height:68px;flex:none;border:1px solid var(--line);border-radius:50%;background:#fffefa;object-fit:cover}.profile-avatar-placeholder{display:grid;place-items:center;color:var(--green);font:26px var(--mono)}.profile-save-button{width:100%}.profile-avatar-upload{position:relative;min-height:42px;display:grid;place-items:center;margin-top:10px;border:1px solid var(--green);color:var(--green);font-size:12px;font-weight:700;cursor:pointer}.profile-avatar-upload:hover{background:#175c4510}.profile-avatar-upload input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.profile-avatar-upload.is-disabled{cursor:not-allowed;opacity:.5}.profile-avatar-upload.is-disabled input{cursor:not-allowed}.profile-avatar-note{margin:7px 0 0;color:var(--muted);font-size:10px;line-height:1.5}.profile-message{color:var(--muted);font-size:11px;line-height:1.5}.career-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:20px;border:1px solid var(--line);background:var(--line)}.career-stats>div{min-height:68px;display:grid;align-content:center;gap:4px;padding:8px;background:#fffefa}.career-stats strong{color:var(--green);font:20px var(--mono)}.career-stats span{color:var(--muted);font:8px var(--mono);letter-spacing:.5px}.career-stats>p{grid-column:1 / -1;margin:0;padding:9px;background:#fffefa;color:var(--muted);font-size:10px}.court-indicator{padding:4px 6px;border:1px solid var(--line);color:var(--green);font:9px var(--mono);white-space:nowrap}.local-mode-tag{padding:4px 6px;border:1px solid var(--line);color:var(--muted);font-size:8px}.offline-dot{display:inline-block;width:7px;aspect-ratio:1;border-radius:50%;background:var(--orange);box-shadow:0 0 0 3px #ec68481c}.database-message{max-width:1180px;margin:12px auto 0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;color:var(--orange);font-size:12px;line-height:1.5}.database-message button{flex:none;padding:0;border:0;background:transparent;color:var(--green);font:inherit;font-weight:700;cursor:pointer}.live-dot{display:inline-block;width:7px;aspect-ratio:1;border-radius:50%;background:#5a9c67;box-shadow:0 0 0 3px #5a9c671c}.setup-layout{position:relative;min-height:calc(100vh - 120px);display:grid;grid-template-columns:1fr 390px;align-items:center;gap:8vw;max-width:1180px;margin:0 auto;padding:55px 0 80px}.bull-off-layout{position:relative;min-height:calc(100vh - 120px);display:grid;grid-template-columns:1fr 430px;align-items:center;gap:7vw;max-width:1180px;margin:0 auto;padding:55px 0 80px}.setup-copy{position:relative;z-index:1;padding-bottom:44px;animation:rise-in .5s both}.bull-off-copy{position:relative;z-index:1;padding-bottom:35px;animation:rise-in .4s both}.eyebrow{margin:0 0 17px;color:var(--green)}.setup-copy h1,.game-heading h1{margin:0;font-family:var(--serif);font-size:180px;font-weight:500;line-height:.78}.bull-off-copy h1{margin:0;font-family:var(--serif);font-size:116px;font-weight:500;line-height:.85}.intro{max-width:340px;margin:34px 0 26px;color:#51594f;font-family:var(--serif);font-size:23px;line-height:1.4}.rules-line{display:flex;align-items:center;gap:12px;color:var(--muted)}.rules-line span{color:var(--green)}.rules-line i,.game-footer i{width:4px;aspect-ratio:1;border-radius:50%;background:var(--orange)}.setup-panel{position:relative;z-index:1;padding:28px 30px 24px;border:1px solid #d0d0c6;background:#f8f6efeb;box-shadow:9px 10px #175c450e;animation:rise-in .5s 80ms both}.bull-off-panel{padding:27px 29px 22px;border:1px solid #d0d0c6;background:#f8f6efeb;box-shadow:9px 10px #175c450e;animation:rise-in .4s 70ms both}.auth-shell{min-height:100vh}.auth-layout{min-height:calc(100vh - 110px);display:grid;grid-template-columns:minmax(0,1fr) 410px;align-items:center;gap:8vw;max-width:1080px;margin:0 auto;padding:48px 0 72px}.auth-copy{animation:rise-in .4s both}.auth-copy h1{margin:0;font-family:var(--serif);font-size:160px;font-weight:500;line-height:.85}.auth-copy .intro{max-width:360px}.auth-panel{display:grid;gap:15px;padding:28px;border:1px solid #d0d0c6;background:#f8f6efeb;box-shadow:7px 8px #175c450e;animation:rise-in .4s 70ms both}.auth-panel>.eyebrow{margin:0}.auth-panel h2{margin:0 0 3px;font-family:var(--serif);font-size:30px;font-weight:500}.auth-field{display:grid;gap:7px}.auth-field>span{color:var(--muted);font:10px var(--mono);letter-spacing:1px}.auth-field input{width:100%;height:45px;padding:0 11px;border:1px solid var(--line);border-radius:0;background:#fffefa;color:var(--ink);font-size:14px}.auth-message{margin:0;color:#9b452f;font-size:12px;line-height:1.5}.auth-submit{width:100%;margin-top:3px}.auth-mode-toggle{min-height:35px;padding:0;border:0;background:transparent;color:var(--green);font-size:12px;text-align:left;cursor:pointer}.auth-mode-toggle:hover{text-decoration:underline}.guest-entry{display:grid;gap:12px;margin-top:4px;padding-top:18px;border-top:1px solid var(--line)}.guest-entry>p{margin:0;color:var(--muted);font:10px var(--mono);letter-spacing:1px}.guest-entry>small{color:var(--muted);font-size:11px;line-height:1.5}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:19px;border-bottom:1px solid var(--line)}.panel-heading .eyebrow{margin-bottom:7px}.panel-heading h2,.entry-title h2,.winner-banner h2{margin:0;font-family:var(--serif);font-size:28px;font-weight:500}.panel-index{color:#8b8b80;font:10px var(--mono)}.player-count{margin:20px 0 17px;padding:0;border:0}.player-count legend{margin-bottom:10px;color:var(--muted)}.count-options{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.count-option{min-height:39px;border:1px solid var(--line);background:transparent;cursor:pointer;transition:color .14s,background .14s,border-color .14s}.count-option:hover{border-color:var(--green)}.count-option.selected{border-color:var(--green);background:var(--green);color:#fff}.count-option:disabled{cursor:not-allowed;opacity:.45}.team-mode-toggle{min-height:37px;margin:-5px 0 16px;font-size:11px}.match-format{margin:0 0 18px;padding:0;border:0}.match-format legend{margin-bottom:9px;color:var(--muted);font:10px var(--mono);font-weight:700;letter-spacing:1.1px}.format-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.court-select{margin:0 0 18px;padding:0;border:0}.court-select legend{margin-bottom:9px;color:var(--muted);font:10px var(--mono);font-weight:700;letter-spacing:1.1px}.court-options{grid-template-columns:repeat(5,minmax(0,1fr))}.game-mode-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.format-option{min-height:36px;padding:0 5px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:11px;cursor:pointer}.format-option.selected{border-color:var(--green);background:var(--green);color:#fff}.match-format>p{margin:7px 0 0;color:var(--muted);font-size:10px}.name-fields{display:grid;gap:11px}.name-field{display:grid;gap:6px}.name-field>span,.dart-input>span,.visit-total>span{color:var(--muted)}.name-field input{width:100%;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:0;background:#fffefa;color:var(--ink);font-size:14px}.name-field input::placeholder{color:#a9aaa1}.player-library{margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.player-library-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.player-library-heading .eyebrow{margin:0 0 4px}.player-library-heading>div>span{color:var(--muted);font-size:11px}.player-library-count{color:var(--green);font:11px var(--mono)}.add-roster-player{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.add-roster-player input{width:100%;min-width:0;height:39px;padding:0 10px;border:1px solid var(--line);border-radius:0;background:#fffefa;color:var(--ink);font-size:13px}.add-roster-player button,.player-library-list button{min-height:34px;padding:0 11px;border:1px solid var(--green);background:transparent;color:var(--green);font-size:11px;font-weight:700;cursor:pointer}.add-roster-player button:disabled{border-color:var(--line);color:#a6a69c;cursor:not-allowed}.roster-slot-picker{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px}.roster-slot-picker>span{color:var(--muted);font:9px var(--mono);letter-spacing:.8px}.roster-slot-picker select{min-height:32px;max-width:150px;padding:0 7px;border:1px solid var(--line);background:#fffefa;color:var(--ink);font-size:11px}.player-library-list{max-height:148px;overflow-y:auto;margin:7px 0 0;padding:0;border-top:1px solid var(--line);list-style:none}.player-library-list li{min-height:39px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);color:var(--ink);font-size:12px}.player-library-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-library-actions{display:flex;flex:none;gap:5px}.player-library-list button{min-height:28px;flex:none;padding:0 9px}.player-library-list button:hover{background:var(--green);color:#fff}.player-library-list .player-library-delete{border-color:#c55a42;color:#b24029}.player-library-list .player-delete-confirm{border-color:#b24029;background:#b24029;color:#fff}.player-library-list .player-delete-confirm:hover{background:#963822}.player-library-empty{margin:8px 0 0;color:var(--muted);font-size:11px}.primary-button{min-height:47px;display:inline-flex;align-items:center;justify-content:space-between;gap:22px;padding:0 16px;border:1px solid var(--green);background:var(--green);color:#fff;font-size:13px;font-weight:700;cursor:pointer;transition:background .14s,transform .14s}.primary-button:hover:not(:disabled){transform:translateY(-1px);background:var(--green-dark)}.primary-button:disabled{cursor:not-allowed;opacity:.45}.primary-button span{font-size:17px;font-weight:400}.start-button{width:100%;margin-top:17px}.form-note{margin:12px 0 0;color:var(--muted);font-size:11px}.coin-toss-control{display:grid;justify-items:start;gap:7px;margin-top:17px}.coin-choice-label{margin:0;color:var(--muted);font:10px var(--mono);letter-spacing:1px}.coin-toss-button{min-height:54px;display:inline-flex;align-items:center;gap:12px;padding:5px 15px 5px 6px;border:1px solid var(--line);background:#fffefa;color:var(--ink);font-size:12px;font-weight:700;cursor:pointer}.coin-toss-button:hover{border-color:var(--green)}.coin-mark{position:relative;width:42px;height:42px;display:block;flex:none;border:1px solid #a7792e;border-radius:50%;background:linear-gradient(145deg,#f7e2a0,#d4aa54 55%,#bd8838);box-shadow:inset 0 0 0 2px #fff2c4,inset 0 0 0 4px #c39543,0 2px #8e682d,0 3px 5px #19231e30;transform-style:preserve-3d;transition:transform .24s ease-out}.coin-mark:before{position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1px solid #a77b33;border-radius:50%;content:"";box-shadow:inset 0 0 0 1px #fff0bc}.coin-face{position:absolute;top:8px;right:8px;bottom:8px;left:8px;display:grid;place-items:center;border:1px solid #c7a253;border-radius:50%;background:radial-gradient(circle at 32% 25%,#fff5c9,#efd17f 54%,#d3a64b);color:#65502a;font:700 6px var(--mono);backface-visibility:hidden}.coin-face-mynt,.coin-mark.landed-mynt{transform:rotateY(180deg)}.coin-mark.is-flipping.spin-to-kron{animation:coin-spin-kron .9s cubic-bezier(.17,.7,.18,1) both}.coin-mark.is-flipping.spin-to-mynt{animation:coin-spin-mynt .9s cubic-bezier(.17,.7,.18,1) both}.coin-toss-button>span:last-child{min-width:96px;text-align:left}.coin-toss-control p{margin:0;color:var(--muted);font-size:11px}.bull-order{margin:0;padding:0;list-style:none}.bull-order li{min-height:51px;display:flex;align-items:center;gap:12px;border-top:1px solid var(--line)}.bull-order-number{color:var(--orange);font:10px var(--mono)}.bull-order li strong{flex:1;font-size:13px}.bull-first-tag{color:var(--green);font:9px var(--mono);letter-spacing:.7px}.bull-winner-field{display:grid;gap:7px;margin-top:18px}.bull-winner-field>span{color:var(--muted);font:10px var(--mono);letter-spacing:1px}.bull-winner-field select{width:100%;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:0;background:#fffefa;color:var(--ink)}.bull-back-button{margin-top:9px}.bull-toss-note{margin:0 0 8px;color:var(--muted);font-size:11px}.bull-winner-choices{display:grid;gap:9px;margin-top:18px}.bull-winner-choices button{min-height:52px;padding:10px 14px;border:1px solid var(--green);background:var(--green);color:#fffefa;font-size:15px;font-weight:700;text-align:left;cursor:pointer}.bull-winner-choices button:hover{background:#124b39}.bull-winner-choices button:focus-visible{outline:3px solid var(--orange);outline-offset:3px}.bull-undo-button{margin-top:13px}.bull-trigger{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px;padding:13px 15px;border:1px solid #ec684866;background:#f8f6ef}.bull-trigger>div{display:grid;gap:5px}.bull-trigger>div>span{color:var(--orange);font:10px var(--mono);letter-spacing:1px}.bull-trigger>div>strong{font-size:13px}.saved-history{grid-column:1 / -1;align-self:start;justify-self:center;width:min(100%,860px);padding-top:12px}.saved-history-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:12px}.saved-history-heading .eyebrow{margin-bottom:5px}.saved-history-heading h2{margin:0;font-family:var(--serif);font-size:25px;font-weight:500}.saved-history-heading>span{color:var(--muted);font:9px var(--mono);letter-spacing:1px}.history-filters{display:grid;grid-template-columns:minmax(0,1fr) 150px 112px;gap:9px;margin:0 0 12px}.history-filters label{min-width:0;display:grid;gap:6px}.history-filters label>span{color:var(--muted);font:9px var(--mono);letter-spacing:.8px}.history-filters input,.history-filters select{width:100%;min-width:0;height:38px;padding:0 9px;border:1px solid var(--line);border-radius:0;background:#fffefa;color:var(--ink);font-size:12px}.saved-history ul{margin:0;padding:0;list-style:none}.saved-history-list{max-height:370px;overflow-y:auto;border-top:1px solid var(--line)}.saved-history li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.history-match-main{min-width:0;display:grid;gap:4px}.history-match-main time{color:var(--muted);font:10px var(--mono)}.saved-history li strong{color:var(--green)}.history-match-summary{grid-column:1 / -1;color:var(--muted);font-size:11px}.history-match-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:7px}.history-details-button{min-height:30px;padding:0 9px;border:1px solid var(--green);background:transparent;color:var(--green);font-size:11px;font-weight:700;cursor:pointer}.history-details-button:hover{background:var(--green);color:#fff}.history-delete-button,.history-delete-cancel,.history-delete-confirm{min-height:30px;padding:0 9px;border:1px solid #b24029;background:transparent;color:#b24029;font-size:11px;font-weight:700;cursor:pointer}.history-delete-button:hover,.history-delete-cancel:hover{background:#b2402910}.history-delete-confirm{background:#b24029;color:#fff}.history-delete-confirm:hover{background:#96331f}.history-delete-prompt{color:#b24029;font-size:11px;font-weight:700}.reopen-match-button{grid-column:2;justify-self:start;min-height:30px;padding:0 9px;border:1px solid var(--line);background:transparent;color:var(--green);font-size:11px;font-weight:700;cursor:pointer}.reopen-match-button:hover{border-color:var(--green);background:#175c4510}.history-match-actions .reopen-match-button{grid-column:auto}.saved-history-empty{margin:12px 0 0;color:var(--muted);font-size:12px}.history-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;display:grid;place-items:center;padding:18px;background:#19231e99}.history-dialog{width:min(100%,900px);max-height:calc(100vh - 36px);overflow-y:auto;padding:22px 24px;border:1px solid var(--line);background:var(--paper);box-shadow:0 14px 44px #101b1640}.history-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.history-dialog-heading .eyebrow{margin-bottom:6px}.history-dialog-heading h2{margin:0;font-family:var(--serif);font-size:28px;font-weight:500}.history-dialog-heading p:last-child{margin:7px 0 0;color:var(--muted);font-size:11px}.history-dialog-heading>button{flex:none}.history-dialog-starter{margin:12px 0 0;color:var(--muted);font-size:11px}.history-player-detail{padding:15px 0;border-bottom:1px solid var(--line)}.history-player-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.history-player-heading h3{margin:0;font-size:14px}.history-player-heading h3 span{color:var(--orange);font:9px var(--mono)}.history-player-heading>strong{color:var(--green);font:11px var(--mono)}.history-player-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:12px 0}.history-player-stats>div{min-width:0;display:grid;gap:4px}.history-player-stats dt{color:var(--muted);font:8px var(--mono)}.history-player-stats dd{margin:0;color:var(--green);font:600 13px var(--mono)}.history-player-detail h4{margin:14px 0 6px;color:var(--muted);font:9px var(--mono)}.history-visits{margin:0;padding:0;list-style:none}.history-visits li{display:grid;grid-template-columns:128px minmax(0,1fr) minmax(105px,auto);gap:6px 10px;align-items:center;padding:7px 0;border-top:1px solid #d9d7ce88}.history-visits li>span:first-child{color:var(--muted);font:9px var(--mono)}.history-visits li>strong{overflow-wrap:anywhere;font:10px var(--mono)}.history-visits li>span:last-child{color:var(--muted);font:9px var(--mono);text-align:right}.history-no-visits{margin:0;color:var(--muted);font-size:11px}.setup-stamp{position:absolute;right:-30px;bottom:22px;width:94px;aspect-ratio:1;display:grid;align-content:center;justify-content:center;border:1px solid #ec684860;border-radius:50%;color:var(--orange);font:8px/1.35 var(--mono);letter-spacing:1px;text-align:center;transform:rotate(11deg)}.setup-stamp b{font-size:15px}.game-layout{max-width:1180px;margin:0 auto;padding:48px 0 0;animation:rise-in .4s both}.game-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:30px}.game-heading .eyebrow{margin-bottom:15px}.game-heading h1{font-size:78px}.heading-slash{padding:0 6px;color:var(--orange)}.game-actions{display:flex;gap:22px;padding-bottom:5px}.text-button{display:inline-flex;align-items:center;gap:8px;padding:9px 0;border:0;background:none;color:var(--green);font-size:13px;font-weight:700;cursor:pointer}.text-button span{font-size:20px}.text-button:disabled{color:#a6a69c;cursor:not-allowed}.new-game-button{color:var(--muted)}.player-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.player-grid.players-1{grid-template-columns:minmax(0,1fr)}.player-grid.players-3,.player-grid.players-4{grid-template-columns:repeat(2,minmax(0,1fr))}.player-card{min-width:0;padding:18px 21px 13px;border:1px solid var(--line);background:#f8f6efdb;transition:border-color .16s,box-shadow .16s}.player-card.is-active{border-color:var(--green);box-shadow:inset 3px 0 0 var(--green)}.player-card.is-winner{border-color:var(--orange);box-shadow:inset 3px 0 0 var(--orange)}.player-card-top,.player-name-wrap,.player-card-bottom{display:flex;align-items:center}.player-card-top{min-height:28px;justify-content:space-between;gap:8px}.player-name-wrap{min-width:0;gap:10px}.player-number{color:var(--orange)}.player-name-wrap h2{overflow:hidden;margin:0;font-size:14px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.player-team-tag{flex:none;color:var(--orange);font:9px var(--mono)}.turn-tag,.winner-tag{display:flex;align-items:center;gap:7px;color:var(--green);font-size:9px}.winner-tag{color:var(--orange)}.score-display{margin:20px 0 16px;font-family:var(--mono);font-size:76px;font-weight:500;line-height:1;font-variant-numeric:tabular-nums}.cricket-score{display:flex;align-items:baseline;gap:10px}.cricket-score>span{color:var(--muted);font:10px var(--mono);letter-spacing:1px}.cricket-mark-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:-4px 0 14px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.cricket-mark{min-width:0;display:grid;justify-items:center;gap:7px}.cricket-mark strong{color:var(--muted);font:700 10px var(--mono)}.cricket-mark>span{height:15px;display:flex;align-items:center;gap:4px}.cricket-mark i{width:2px;height:12px;background:var(--line);transform:rotate(32deg)}.cricket-mark i.marked{background:var(--green)}.score-edit-button{display:flex;flex-direction:column;align-items:flex-start;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}.score-edit-button:disabled{cursor:default;opacity:1}.score-edit-cue{margin-top:6px;color:var(--muted);font:9px var(--mono);letter-spacing:.8px}.score-edit-button:not(:disabled):hover .score-edit-cue{color:var(--green)}.score-edit-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:18px;background:#19231e99}.score-edit-dialog{width:min(100%,420px);padding:25px;border:1px solid var(--line);background:var(--paper);box-shadow:0 14px 44px #101b1640}.score-edit-dialog form{display:grid;gap:14px}.score-edit-dialog .eyebrow{margin:0}.score-edit-dialog h2{margin:0;font-family:var(--serif);font-size:27px;font-weight:500}.score-edit-field{display:grid;gap:7px}.score-edit-field>span{color:var(--muted);font:10px var(--mono);letter-spacing:1px}.score-edit-field input{width:100%;height:50px;padding:0 12px;border:1px solid var(--line);border-radius:0;background:#fffefa;color:var(--green);font:24px var(--mono)}.score-edit-note,.score-edit-error{margin:0;color:var(--muted);font-size:12px}.score-edit-error{color:#b24029}.score-edit-actions{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin-top:3px}.legs-progress{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-5px 0 13px}.legs-progress>div{display:flex;gap:5px}.leg-pip{width:19px;height:4px;background:var(--line)}.leg-pip.earned{background:var(--green)}.legs-progress>span{color:var(--muted);font:9px var(--mono);letter-spacing:.8px}.player-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:12px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.player-stats.has-fastest-checkout{grid-template-columns:repeat(5,minmax(0,1fr))}.player-stats>div{min-width:0;display:grid;gap:4px}.player-stats strong{color:var(--green);font:600 15px var(--mono);font-variant-numeric:tabular-nums}.player-stats>div:first-child strong{font-size:17px}.player-stats span{overflow:hidden;color:var(--muted);font:8px var(--mono);letter-spacing:.4px;text-overflow:ellipsis;white-space:nowrap}.player-card-bottom{min-height:26px;justify-content:space-between;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:9px}.last-visit{color:var(--green)}.bust-label{color:var(--orange)}.score-entry{margin-top:20px;padding:22px 24px 15px;border:1px solid var(--line);background:#f8f6ef}.checkout-hint{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;padding:10px 12px;border-left:3px solid var(--orange);background:#ec684810}.checkout-hint-copy{min-width:0;display:grid;gap:5px}.checkout-hint-copy>span{color:var(--muted);font:10px var(--mono);letter-spacing:1px}.checkout-hint-copy>strong{color:var(--green);font:700 15px var(--mono)}.checkout-table-toggle{min-height:32px;display:inline-flex;align-items:center;gap:7px;margin:-5px 0 11px;padding:0;border:0;background:transparent;color:var(--green);font-size:11px;font-weight:700;cursor:pointer}.checkout-table-toggle>span{width:16px;display:inline-grid;place-items:center;color:var(--orange);font:17px var(--mono)}.checkout-table{max-height:230px;overflow-y:auto;margin:-2px 0 14px;border:1px solid var(--line);background:#fffefa}.checkout-table-heading{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border-bottom:1px solid var(--line);background:#f4f1e9}.checkout-table-heading strong,.checkout-table-heading span{color:var(--muted);font:9px var(--mono)}.checkout-table-heading span{text-align:right}.checkout-table-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.checkout-table-row{min-width:0;display:grid;grid-template-columns:30px minmax(0,1fr);align-items:start;gap:7px;padding:5px 9px;border-bottom:1px solid #d9d7ce88}.checkout-table-row strong{color:var(--green);font:700 10px var(--mono);font-variant-numeric:tabular-nums}.checkout-table-row>span{color:var(--ink);font:9px/1.3 var(--mono);overflow-wrap:anywhere}.checkout-apply{min-height:36px;flex:none;padding:0 12px;border:1px solid var(--green);background:transparent;color:var(--green);font-size:11px;font-weight:700;cursor:pointer}.checkout-apply:hover{background:var(--green);color:#fff}.entry-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.entry-title .eyebrow{margin:0 0 6px}.entry-title h2{font-size:21px}.entry-title h2 span{color:var(--muted);font:13px Avenir Next,Segoe UI,sans-serif}.dart-counter{color:var(--muted)}.entry-mode{display:flex;gap:5px;margin:0 0 13px}.entry-mode button{min-height:33px;padding:0 12px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:11px;cursor:pointer}.entry-mode button[aria-pressed=true]{border-color:var(--green);background:var(--green);color:#fff}.cricket-entry-note{margin:-2px 0 13px;color:var(--muted);font-size:11px;line-height:1.5}.dart-inputs{display:grid;grid-template-columns:repeat(3,minmax(74px,1fr)) minmax(76px,.9fr) auto;gap:9px;align-items:end}.dart-input{display:grid;gap:7px}.dart-input>span,.visit-total>span{font:10px var(--mono);letter-spacing:1px}.dart-input select{width:100%;min-width:0;height:48px;padding:0 8px;border:1px solid var(--line);border-radius:0;background:#fffefa;color:var(--green);font:12px Avenir Next,Segoe UI,sans-serif}.visit-total{height:48px;display:grid;align-content:center;justify-content:center;gap:2px;border:1px solid var(--line)}.visit-total>span{font-size:8px;text-align:center}.visit-total strong{color:var(--green);font:17px var(--mono);text-align:center}.manual-score-entry{display:grid;grid-template-columns:minmax(140px,1fr) minmax(90px,auto) auto auto;gap:12px;align-items:end}.manual-score-field{display:grid;gap:7px}.manual-score-field>span{color:var(--muted);font:10px var(--mono);letter-spacing:1px}.manual-score-field input{width:100%;min-width:0;height:48px;padding:0 12px;border:1px solid var(--line);border-radius:0;background:#fffefa;color:var(--green);font:22px var(--mono)}.manual-darts-field{display:grid;gap:7px}.manual-darts-field>span{color:var(--muted);font:9px var(--mono);letter-spacing:.7px}.manual-darts-field select{min-height:48px;padding:0 8px;border:1px solid var(--line);border-radius:0;background:#fffefa;color:var(--ink);font-size:12px}.manual-double-toggle{display:inline-flex;align-items:center;gap:9px;min-height:48px;color:var(--ink);font-size:12px;cursor:pointer}.manual-double-toggle input{position:absolute;width:1px;height:1px;opacity:0}.custom-check{width:17px;height:17px;display:grid;flex:none;place-items:center;border:1px solid #a9aaa1;background:#fffefa}.manual-double-toggle input:checked+.custom-check{border-color:var(--green);background:var(--green)}.manual-double-toggle input:checked+.custom-check:after{width:7px;height:4px;border-bottom:2px solid white;border-left:2px solid white;content:"";transform:rotate(-45deg) translateY(-1px)}.manual-double-toggle input:focus-visible+.custom-check{outline:3px solid #ec6848a8;outline-offset:3px}.submit-score{min-width:133px;height:48px}.entry-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-top:14px}.quick-scores{display:flex;gap:6px}.quick-scores button{min-width:43px;min-height:29px;padding:0 8px;border:1px solid var(--line);background:transparent;color:var(--muted);font:11px var(--mono);cursor:pointer}.quick-scores button:hover{border-color:var(--green);color:var(--green)}.entry-message{min-height:18px;margin:12px 0 0;color:var(--muted);font-size:11px}.winner-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px;padding:22px 24px;border:1px solid #ec684866;background:#f8f6ef}.winner-banner .eyebrow{margin-bottom:7px;color:var(--orange)}.match-scoreline{margin:10px 0 0;color:var(--green);font:11px var(--mono)}.match-scoreline>span{margin-left:8px;color:var(--muted)}.email-report-status{margin:9px 0 0;color:var(--muted);font-size:11px;line-height:1.4}.game-footer{display:flex;justify-content:space-between;gap:12px;margin-top:23px;color:#898b81;font-size:9px}.game-footer>span:first-child{display:inline-flex;align-items:center;gap:8px}@keyframes coin-spin-kron{0%{transform:rotateY(0)}to{transform:rotateY(1800deg)}}@keyframes coin-spin-mynt{0%{transform:rotateY(0)}to{transform:rotateY(1980deg)}}@keyframes rise-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){.club-evenings-page{grid-template-columns:minmax(0,1fr);gap:24px;min-height:auto;padding:40px 0 55px}.admin-page{gap:18px;padding:35px 0 55px}.admin-section-heading{grid-template-columns:minmax(0,1fr) minmax(165px,1fr)}.admin-section-heading>div{grid-column:1 / -1}.tournament-panel .admin-section-heading{grid-template-columns:minmax(0,1fr) minmax(165px,1fr)}.tournament-panel .admin-section-heading>div{grid-column:1 / -1}.tournament-heading-actions{grid-column:1 / -1;justify-content:stretch}.tournament-heading-actions>*{flex:1}.tournament-day-panel{padding:13px 11px}.tournament-day-match-list>li,.tournament-day-queue li{align-items:flex-start;flex-direction:column}.tournament-day-match-list .tournament-play-button,.tournament-day-queue li .tournament-play-button{width:100%;white-space:normal}.tournament-board-select,.tournament-board-select select{width:100%}.admin-signup-edit{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.admin-signup-edit .admin-signup-actions{grid-column:1 / -1}.admin-document-list>li{align-items:flex-start;flex-direction:column}.admin-document-list .admin-signup-actions{width:100%;justify-content:flex-start}.player-profile-page{grid-template-columns:minmax(0,1fr);gap:24px;min-height:auto;padding:40px 0 55px}.app-shell{padding:0 22px 32px}.topbar{min-height:65px;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:9px 0 0}.topbar-nav{grid-column:1 / -1;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.topbar-nav::-webkit-scrollbar{display:none}.topbar-nav-group{flex:none}.topbar-nav-group+.topbar-nav-group{margin-left:7px;padding-left:7px}.topbar-nav-link{min-height:39px;padding:0 10px;font-size:11px}.topbar-nav-link[aria-current=page]:after{right:10px;bottom:1px;left:10px}.topbar-actions{gap:6px}.topbar-meta{display:none}.topbar-actions .sign-out-button{min-height:30px;padding:0 7px;font-size:9px}.club-menu-button{min-height:32px;padding:0 9px;font-size:11px}.setup-layout{min-height:auto;grid-template-columns:1fr;gap:19px;padding:30px 0 28px}.bull-off-layout{min-height:auto;grid-template-columns:1fr;gap:21px;padding:32px 0 28px}.auth-layout{min-height:auto;grid-template-columns:1fr;gap:22px;padding:34px 0}.auth-copy h1{font-size:100px}.auth-copy .intro{margin:14px 0 0;font-size:18px}.player-directory-page{min-height:auto;grid-template-columns:1fr;gap:22px;padding:34px 0}.auth-panel,.player-directory-card{padding:21px 19px}.setup-copy,.bull-off-copy{padding:0}.setup-copy .eyebrow{margin-bottom:12px}.setup-copy h1{font-size:108px}.bull-off-copy h1{font-size:82px}.intro{margin:17px 0 13px;font-size:18px;line-height:1.35}.rules-line{gap:8px;font-size:9px;letter-spacing:.8px}.setup-stamp{top:13px;right:4px;bottom:auto;width:62px}.setup-stamp b{font-size:12px}.setup-panel,.bull-off-panel{padding:18px 17px 15px;box-shadow:5px 6px #175c450e}.panel-heading{padding-bottom:14px}.player-count{margin:15px 0 13px}.match-format{margin-bottom:13px}.name-fields{gap:8px}.name-field input{height:40px}.player-library{margin-top:14px;padding-top:12px}.player-library-list{max-height:120px}.coin-toss-control,.start-button{margin-top:13px}.saved-history{padding-top:0}.history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.history-filter-search{grid-column:1 / -1}.history-dialog{padding:19px}.history-player-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.game-layout{padding-top:32px}.game-heading{margin-bottom:21px}.game-heading h1{font-size:65px}.game-heading .eyebrow{font-size:9px}.player-card{padding:15px 15px 11px}.score-display{margin:17px 0 13px;font-size:62px}.score-entry{padding:19px 17px 13px}.dart-inputs{grid-template-columns:repeat(3,minmax(54px,1fr))}.manual-score-entry{grid-template-columns:minmax(0,1fr) minmax(90px,.7fr)}.manual-score-entry>.submit-score{grid-column:1 / -1}.manual-double-toggle{grid-column:1 / -1}.visit-total{grid-column:1 / 2}.submit-score{grid-column:2 / 4;width:100%}}@media(max-width:480px){.topbar{gap:3px 6px;padding-top:8px}.topbar-nav{margin:0 -2px}.topbar-nav-link{padding:0 9px;font-size:10px}.topbar-actions{margin-left:auto}.app-shell{padding-right:16px;padding-left:16px}.brand{font-size:11px;letter-spacing:1.2px}.topbar{min-height:59px}.admin-panel{padding:18px 15px}.admin-section-heading{grid-template-columns:minmax(0,1fr)}.admin-section-heading>div{grid-column:auto}.tournament-panel .admin-section-heading{grid-template-columns:minmax(0,1fr)}.tournament-panel .admin-section-heading>div{grid-column:auto}.tournament-heading-actions{grid-column:auto;flex-direction:column}.tournament-heading-actions>*{width:100%}.admin-export-button{width:100%}.admin-signup-list>li{align-items:flex-start;flex-direction:column}.admin-signup-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.admin-signup-edit{grid-template-columns:minmax(0,1fr)}.admin-signup-edit .admin-signup-actions{grid-column:auto}.admin-role-form{grid-template-columns:minmax(0,1fr)}.admin-role-form .primary-button{width:100%}.tournament-seed-list{grid-template-columns:minmax(0,1fr)}.tournament-match,.tournament-archive li{align-items:stretch;flex-direction:column}.tournament-archive-heading{align-items:flex-start;flex-direction:column}.tournament-archive-heading>*{width:100%}.tournament-archive li>.tournament-archive-actions{width:100%}.tournament-archive-actions button{flex:1}.tournament-match-result{max-width:none;text-align:left}.tournament-play-button{width:100%}.tournament-actions{align-items:stretch;flex-direction:column}.tournament-actions .primary-button{width:100%}.brand-logo{width:34px}.game-heading{align-items:flex-start}.game-actions{flex-direction:column;align-items:flex-end;gap:1px}.player-grid,.player-grid.players-3,.player-grid.players-4{grid-template-columns:minmax(0,1fr)}.player-card{padding:12px 15px 10px}.bull-trigger{align-items:stretch;flex-direction:column}.bull-trigger-button{width:100%}.score-display{margin:12px 0 10px;font-size:57px}.entry-title{align-items:baseline}.entry-title h2{font-size:19px}.checkout-hint{align-items:flex-start;flex-direction:column;gap:9px}.checkout-hint-copy>strong{font-size:14px}.checkout-apply{width:100%}.dart-inputs{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.dart-input select{height:46px;padding:0 4px;font-size:11px}.manual-score-entry{grid-template-columns:minmax(0,1fr)}.manual-double-toggle,.manual-score-entry>.submit-score{width:100%}.visit-total{grid-column:1 / 2}.submit-score{grid-column:2 / 4;min-width:0}.entry-bottom{align-items:flex-start}.game-footer,.winner-banner{flex-direction:column;align-items:flex-start}.saved-history-list li{grid-template-columns:minmax(0,1fr)}.history-match-actions{justify-content:flex-start}.reopen-match-button{grid-column:auto}.history-dialog-backdrop{padding:8px}.history-dialog{max-height:calc(100vh - 16px);padding:16px 13px}.history-dialog-heading h2{font-size:24px}.history-visits li{grid-template-columns:minmax(0,1fr) auto}.history-visits li>strong{grid-column:1 / -1;grid-row:2}.player-library-list li{align-items:flex-start;flex-direction:column;padding:7px 0}.player-library-actions{width:100%;justify-content:flex-end}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@page{size:A4 landscape;margin:10mm}@media print{body{min-width:0;min-height:0;background:#fff}.app-shell{min-height:0;padding:0}.app-shell>*{display:none!important}.app-shell>.admin-page{display:block!important;max-width:none;margin:0;padding:0}.admin-page>*{display:none!important}.admin-page>.tournament-panel{display:block!important;padding:0;border:0;background:#fff;box-shadow:none}.tournament-panel>:not(.tournament-print-content){display:none!important}.tournament-print-content{display:block;color:#111;font:10pt/1.25 Arial,sans-serif}.tournament-print-header{margin-bottom:4mm}.tournament-print-header>p{margin:0 0 2mm;font-size:8pt;font-weight:700;letter-spacing:1px}.tournament-print-header h1{margin:0 0 1mm;font:18pt Georgia,serif}.tournament-print-header>span{font-size:8pt}.tournament-print-sheet{break-after:page;page-break-after:always}.tournament-print-sheet:last-child{break-after:auto;page-break-after:auto}.tournament-print-sheet h2{margin:0 0 2mm;padding-bottom:2mm;border-bottom:2px solid #175c45;font:20pt Georgia,serif}.tournament-print-date{margin:0 0 5mm;color:#444;font-size:9pt}.tournament-print-sheet h3{margin:7mm 0 2mm;font:11pt Arial,sans-serif}.tournament-print-standings,.tournament-print-matches,.tournament-print-cup-matches{width:100%;border-collapse:collapse;table-layout:fixed}.tournament-print-standings{margin-bottom:5mm}.tournament-print-standings th,.tournament-print-standings td,.tournament-print-matches th,.tournament-print-matches td,.tournament-print-cup-matches th,.tournament-print-cup-matches td{height:6mm;padding:1mm 1.5mm;border:1px solid #666;text-align:left;vertical-align:middle;overflow-wrap:anywhere}.tournament-print-standings th,.tournament-print-matches th,.tournament-print-cup-matches th{height:7mm;background:#eee;font-size:8pt}.tournament-print-standings th:first-child,.tournament-print-standings td:first-child{width:14mm;text-align:center}.tournament-print-standings th:nth-child(3),.tournament-print-standings td:nth-child(3){width:20mm;text-align:center}.tournament-print-standings th:nth-child(4),.tournament-print-standings td:nth-child(4){width:35mm;text-align:center}.tournament-print-standings small{display:block;margin-top:1mm;color:#333;font-size:7pt}.tournament-print-matches{font-size:7pt}.tournament-print-matches th,.tournament-print-matches td{height:4.8mm;padding:.6mm 1mm}.tournament-print-matches th:first-child,.tournament-print-matches td:first-child{width:13mm;text-align:center}.tournament-print-matches th:nth-child(2),.tournament-print-matches th:nth-child(4){width:36%}.tournament-print-matches th:nth-child(3),.tournament-print-matches th:nth-child(5),.tournament-print-matches td:nth-child(3),.tournament-print-matches td:nth-child(5){width:12mm;text-align:center}.tournament-print-cup-matches{font-size:10pt}.tournament-print-cup-matches th:first-child,.tournament-print-cup-matches td:first-child{width:15mm;text-align:center}.tournament-print-cup-matches th:nth-child(3),.tournament-print-cup-matches td:nth-child(3){width:33mm;text-align:center}.tournament-print-cup>p:last-child{margin-top:4mm;font-size:9pt}.tournament-print-pool-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:8mm;margin-bottom:5mm}.tournament-print-pool-heading h2{flex:1;margin:0}.tournament-print-pool-heading p{margin:0;color:#333;font-size:9pt;white-space:nowrap}.tournament-print-pool-heading p span{margin-left:12mm}.tournament-print-pool .tournament-print-standings{margin:0;font-size:8pt}.tournament-print-pool .tournament-print-standings th,.tournament-print-pool .tournament-print-standings td{height:11mm;padding:1mm;text-align:center}.tournament-print-pool .tournament-print-standings th:nth-child(2),.tournament-print-pool .tournament-print-standings td:nth-child(2){width:43mm;text-align:left}.tournament-print-pool .tournament-print-standings th:nth-child(3),.tournament-print-pool .tournament-print-standings td:nth-child(3){width:25mm}.tournament-print-pool .tournament-print-standings th:first-child,.tournament-print-pool .tournament-print-standings td:first-child{width:10mm}.tournament-print-pool .tournament-print-standings th:nth-last-child(3),.tournament-print-pool .tournament-print-standings td:nth-last-child(3){width:17mm}.tournament-print-pool .tournament-print-standings th:nth-last-child(2),.tournament-print-pool .tournament-print-standings td:nth-last-child(2){width:19mm}.tournament-print-pool .tournament-print-standings th:last-child,.tournament-print-pool .tournament-print-standings td:last-child{width:13mm}.tournament-print-pool .tournament-print-standings small{display:block;margin-top:.5mm;color:#444;font-size:7pt}.tournament-print-matrix-diagonal{background:#dededb}.tournament-print-matrix-score{font-size:7pt;white-space:nowrap}.tournament-print-pool-footer{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:8mm;margin-top:7mm}.tournament-print-pool-footer h3{margin:0 0 2mm;font-size:9pt}.tournament-print-pool-footer ol{display:flex;gap:8mm;min-height:10mm;margin:0;padding-left:5mm}.tournament-print-pool-footer>div>p,.tournament-print-records p{margin:2mm 0;font-size:8pt}.tournament-print-pool-status{margin:0;color:#444;font-size:8pt}.tournament-print-cup{break-after:auto;page-break-after:auto}.tournament-print-bracket-headings{display:grid;gap:3mm;margin:4mm 0 2mm}.tournament-print-bracket-headings h3{margin:0;padding-bottom:1mm;border-bottom:1px solid #777;font-size:8pt;text-align:center}.tournament-print-bracket{display:grid;height:158mm;gap:1mm 3mm}.tournament-print-bracket-match{position:relative;align-self:center;display:grid;grid-template-columns:minmax(0,1fr) 7mm;grid-template-rows:1fr 1fr;min-width:0;border:1px solid #777;background:#fff;font-size:6.5pt;line-height:1.1}.tournament-print-bracket-match>span{min-width:0;overflow:hidden;padding:.5mm 1mm;text-overflow:ellipsis;white-space:nowrap}.tournament-print-bracket-match>span:nth-child(2n){border-left:1px solid #aaa;text-align:center}.tournament-print-bracket-match>span:nth-child(n+3){border-top:1px solid #aaa}.tournament-print-cup-footer{display:flex;justify-content:space-between;gap:5mm;margin-top:4mm;font-size:8pt}.tournament-print-cup-footer strong{font-size:8pt}}
