@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{font-family:DM Sans,sans-serif;color:#202a26;background:#f5f6f2;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #202a26;--muted: #8a928d;--line: #e8ebe5;--green: #27785b;--green-dark: #174e3c;--green-soft: #e9f2ed;--orange: #e69665}*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{color:inherit}.app-shell{min-height:100vh}.topbar{height:76px;padding:0 max(5.5vw,28px);background:#fff;border-bottom:1px solid #eceee9;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:12px 12px 12px 4px;color:#fff;background:var(--green-dark);font:800 20px Manrope,sans-serif}.brand-copy{display:grid;gap:2px}.brand-copy strong{font:800 12px Manrope,sans-serif;letter-spacing:1.1px}.brand-copy span{color:#929992;font-size:9px;font-weight:700;letter-spacing:1.45px}.topbar-right{display:flex;align-items:center;gap:25px}.database-status{display:flex;gap:8px;align-items:center;color:#738078;font-size:11px}.database-status>span,.event-tag>span{width:7px;height:7px;border-radius:50%;background:#5da77f;box-shadow:0 0 0 3px #e8f3ec}.season-pill{display:flex;gap:8px;align-items:center;padding:9px 13px;border:1px solid var(--line);border-radius:6px;color:#69736d;font-size:9px;font-weight:700;letter-spacing:.8px}.season-pill i{width:3px;height:3px;border-radius:50%;background:var(--orange)}.page{width:min(1410px,89%);margin:0 auto}.intro{min-height:262px;padding:48px 2px 38px;display:flex;justify-content:space-between;align-items:end}.eyebrow,.section-kicker{color:#7e8981;font-size:9px;font-weight:700;letter-spacing:1.5px}.eyebrow{display:flex;align-items:center;gap:9px;margin-bottom:12px}.eyebrow-line{display:inline-block;width:22px;height:2px;background:var(--orange)}.intro h1{margin:0;font:600 clamp(36px,4vw,50px)/1.07 "Manrope",sans-serif;letter-spacing:-2.4px}.intro h1 em{color:var(--green);font-style:normal}.intro-copy{max-width:420px;margin:13px 0 0;color:#7c8780;font-size:12px;line-height:1.75}.intro-stats{display:flex;align-items:center;gap:22px;padding:0 17px 4px 0}.intro-stats>div:not(.stat-divider){display:grid;gap:5px}.intro-stats strong{color:var(--green-dark);font:700 25px Manrope,sans-serif}.intro-stats span{color:#919a93;font-size:8px;font-weight:700;letter-spacing:1.2px}.stat-divider{height:35px;width:1px;background:#dfe4dd}.dashboard{display:grid;grid-template-columns:minmax(205px,.82fr) minmax(390px,1.62fr) minmax(265px,1fr);gap:18px;align-items:start}.panel{overflow:hidden;border:1px solid #e8ebe5;border-radius:9px;background:#fff;box-shadow:0 3px 15px #1c3e2d05}.schedule-panel,.players-panel{min-height:610px}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:21px 19px 16px}.panel-heading h2{margin:5px 0 0;font:700 17px Manrope,sans-serif;letter-spacing:-.5px}.term-count{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;color:#688174;background:#f0f5f1;font-size:10px;font-weight:700}.mobile-session-picker{display:none}.session-list{max-height:504px;overflow-y:auto;padding:0 8px;scrollbar-color:#dce5de transparent;scrollbar-width:thin}.session-link{position:relative;display:flex;width:100%;gap:10px;align-items:center;padding:11px 9px;border:0;border-radius:6px;background:transparent;text-align:left;cursor:pointer;transition:background .16s ease}.session-link:hover{background:#f6f8f5}.session-link.selected{background:#edf4ef}.session-link.selected:before{position:absolute;content:"";left:-8px;top:9px;bottom:9px;width:3px;border-radius:0 4px 4px 0;background:var(--green)}.day-icon{display:grid;flex:0 0 32px;place-items:center;width:32px;height:34px;border-radius:5px;font-size:8px;font-weight:800;letter-spacing:.3px}.day-wed{color:#92724f;background:#f5efe6}.day-sat{color:#587d8d;background:#edf3f5}.session-link-info{display:grid;min-width:0;gap:4px}.session-link-info strong{font-size:11px;font-weight:700}.session-link-info span{overflow:hidden;color:#929a94;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.session-link-count{margin-left:auto;color:#4a7560;font-size:10px;font-weight:700}.session-link-count i{color:#a0a9a2;font-style:normal;font-weight:500}.session-link.past .session-link-info strong{color:#87918a}.schedule-footnote{display:flex;gap:10px;align-items:center;margin:15px 16px 0;padding:13px 0 0;border-top:1px solid #eef0ec;color:#a0a8a2;font-size:9px;line-height:1.6}.footnote-icon{color:var(--orange);font-size:17px}.main-column{display:grid;gap:17px}.event-card{position:relative;overflow:hidden;padding:22px 24px 18px;border-radius:9px;color:#fff;background:#174e3c}.event-card:after{position:absolute;content:"";width:205px;height:205px;top:-133px;right:-63px;border:1px solid #ffffff14;border-radius:50%;box-shadow:0 0 0 24px #ffffff08,0 0 0 50px #ffffff05}.event-topline{display:flex;justify-content:space-between;align-items:center}.event-tag{display:flex;gap:8px;align-items:center;color:#c4d7cc;font-size:8px;font-weight:700;letter-spacing:1px}.event-tag>span{background:#9dc79e;box-shadow:0 0 0 3px #ffffff16}.week-label{position:relative;z-index:1;padding:5px 8px;border:1px solid #ffffff25;border-radius:4px;color:#d1e0d6;font-size:9px}.event-card h2{margin:17px 0 0;font:600 26px Manrope,sans-serif;letter-spacing:-.9px;text-transform:capitalize}.event-date{margin:3px 0 0;color:#c2d5c9;font-size:10px}.past-session-notice{margin:8px 0 0;color:#92724f;font-size:10px}.event-card .past-session-notice{color:#e7c99e}.admin-past-session-notice{margin:0;padding:10px 0;border-bottom:1px solid #f0f1ee}.capacity-block{margin-top:21px}.capacity-label,.capacity-foot{display:flex;justify-content:space-between;align-items:center}.capacity-label>span,.capacity-foot>span:last-child{color:#b6cec0;font-size:8px;font-weight:700;letter-spacing:1px}.capacity-label strong{color:#c6d9cd;font-size:10px;font-weight:500}.capacity-label strong b{color:#fff;font:700 15px Manrope,sans-serif}.capacity-label strong i{padding:0 3px;color:#8caa99;font-style:normal}.capacity-track{height:4px;margin-top:8px;overflow:hidden;border-radius:6px;background:#ffffff24}.capacity-track span{display:block;height:100%;border-radius:inherit;background:#e7a679;transition:width .25s ease}.capacity-foot{margin-top:8px;color:#e2eee6;font-size:9px}.roster-card,.roster-heading{padding-bottom:13px}.roster-total{color:#87938a;font-size:9px}.assigned-list{padding:0 15px}.assigned-player{display:flex;min-height:48px;align-items:center;gap:10px;border-top:1px solid #f0f1ee}.player-number{width:18px;color:#adb5ae;font-size:8px;font-weight:600}.avatar{display:grid;flex:0 0 30px;place-items:center;width:30px;height:30px;border:1px solid #dfece4;border-radius:50%;color:#327456;background:#edf5ef;font:700 9px Manrope,sans-serif}.assigned-player>strong{overflow:hidden;font-size:10px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.assigned-player-actions,.player-row-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.confirmation-status{display:inline-flex;align-items:center;width:fit-content;max-width:100%;padding:3px 6px;border-radius:10px;font-size:8px;line-height:1.4;white-space:normal}.confirmation-status.confirmed{color:#327456;background:#edf5ef}.confirmation-status.unconfirmed{color:#947642;background:#faf4e5}.confirm-button{padding:5px 7px;border:1px solid #dce8df;border-radius:4px;color:#327456;background:#f3f8f4;font-size:8px;white-space:nowrap;cursor:pointer}.confirm-button:hover:not(:disabled){border-color:#bad1c1;background:#eaf3ec}.confirm-button:disabled{cursor:wait;opacity:.5}.release-button{margin-left:auto;padding:6px 7px;border:0;border-radius:4px;color:#a3aaa5;background:transparent;font-size:9px;white-space:nowrap;cursor:pointer;opacity:0;transition:opacity .16s ease,color .16s ease,background .16s ease}.assigned-player:hover .release-button,.release-button:focus-visible{opacity:1}.release-button:hover{color:#a45443;background:#fbf0ed}.release-button span{margin-left:3px;font-size:11px}.open-place-note{display:flex;gap:8px;align-items:center;margin:7px 17px 0;padding-top:11px;border-top:1px dashed #e6e9e4;color:#8d9991;font-size:9px}.open-dot{width:6px;height:6px;border-radius:50%;background:var(--orange)}.empty-roster{padding:17px 18px;color:#87918a;font-size:11px}.all-players-heading{padding-bottom:13px}.search-box{display:flex;gap:8px;align-items:center;height:34px;margin:0 13px 8px;padding:0 9px;border:1px solid #eaede8;border-radius:5px;color:#929a94}.search-box>span{font-size:18px;line-height:1;transform:rotate(-20deg)}.search-box input{width:100%;min-width:0;border:0;outline:0;color:var(--ink);background:transparent;font-size:10px}.search-box input::placeholder{color:#a6ada8}.search-box kbd{color:#a4aca5;font:8px DM Sans,sans-serif;white-space:nowrap}.players-list{max-height:469px;overflow-y:auto;padding:0 9px;scrollbar-color:#dce5de transparent;scrollbar-width:thin}.player-row{display:flex;min-height:48px;gap:9px;align-items:center;padding:0 4px;border-bottom:1px solid #f1f2ef}.avatar-small{flex-basis:27px;width:27px;height:27px;color:#738078;border-color:#e8ebe6;background:#f4f5f2;font-size:8px}.player-details{display:grid;min-width:0;gap:4px}.player-details strong{overflow:hidden;font-size:9px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.player-details>span{display:flex;flex-wrap:wrap;gap:5px;align-items:center;color:#a1a8a2;font-size:8px}.player-details>span i{width:5px;height:5px;border-radius:50%;background:#c6cbc7}.player-details>.status-assigned{color:#488260}.player-details>.status-assigned i{background:#65a57c}.player-details>.status-other{color:#638091}.player-details>.status-other i{background:#83a8bc}.player-details>.status-cancelled{color:#a45443}.player-details>.status-cancelled i{background:#c97b68}.player-row.is-assigned .avatar-small{color:#327456;border-color:#dfece4;background:#edf5ef}.player-row-actions .icon-action{margin-left:0}.icon-action{display:grid;flex:0 0 24px;place-items:center;width:24px;height:24px;margin-left:auto;border:1px solid #e9ece8;border-radius:5px;color:#a5ada6;background:#fff;font-size:16px;line-height:1;cursor:pointer}.icon-action:hover:not(:disabled){color:#a45443;border-color:#efd8d0;background:#fcf4f1}.icon-action.add-action{color:#fff;border-color:var(--green);background:var(--green)}.icon-action.add-action:hover:not(:disabled){border-color:#1d5e43;background:#1d5e43}.icon-action:disabled,.release-button:disabled{cursor:wait;opacity:.5}.wait-mark{margin-left:auto;color:#c1c6c1;font-size:8px}.players-foot{display:flex;gap:6px;align-items:center;padding:13px 15px;border-top:1px solid #eff1ed;color:#87918a;font-size:8px}.legend-dot{width:6px;height:6px;margin-left:5px;border-radius:50%}.legend-dot.green{background:#65a57c}.legend-dot.blue{background:#83a8bc}.legend-dot.red{background:#c97b68}.legend-dot.gray{background:#c6cbc7}.legend-dot.gray+.legend-dot{margin-left:6px}.no-results{padding:10px;color:#929a94;font-size:10px}.feedback{display:flex;justify-content:space-between;align-items:center;margin:-18px 0 15px;padding:11px 14px;border:1px solid;border-radius:6px;font-size:11px}.feedback button{border:0;background:none;font-size:16px;cursor:pointer}.feedback-error{color:#9c4635;border-color:#f0d7d1;background:#fff7f4}.feedback-success{color:#28714e;border-color:#d8e9dc;background:#f3faf5}.page-footer{display:flex;justify-content:space-between;padding:25px 1px 35px;color:#9ba39c;font-size:8px;font-weight:700;letter-spacing:1px}.loading-screen,.startup-error{display:grid;min-height:100vh;place-content:center;justify-items:center;color:#637269}.loader{width:24px;height:24px;margin-bottom:13px;border:2px solid #dce8df;border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.startup-error{padding:24px;text-align:center}.startup-error .brand-mark{margin-bottom:12px}.startup-error h1{max-width:480px;color:var(--ink);font:700 24px Manrope,sans-serif}.startup-error p{max-width:540px;color:#a45443;font-size:13px}.startup-error .muted{color:#87918a}.account-controls{display:flex;gap:12px;align-items:center;color:#65726a;font-size:10px}.account-controls button,.quiet-button{padding:7px 9px;border:1px solid #e8ebe5;border-radius:5px;color:#65726a;background:#fff;font-size:9px;cursor:pointer}.account-controls button:hover,.quiet-button:hover{border-color:#b7cbbd;color:var(--green)}.auth-header-actions{display:flex;align-items:center;gap:12px}.install-button{min-height:36px;padding:7px 10px;border:1px solid #dce8df;border-radius:5px;color:#3a7654;background:#f3f8f4;font-size:10px;font-weight:600;white-space:nowrap;cursor:pointer}.install-button:hover{border-color:#bad1c1;background:#eaf3ec}.install-button:focus-visible,.install-help-close:focus-visible{outline:3px solid #8eae99;outline-offset:2px}.install-help{position:fixed;z-index:30;right:max(16px,5vw);bottom:16px;width:min(360px,calc(100vw - 32px));padding:17px 19px;border:1px solid #dfe7df;border-radius:9px;background:#fff;box-shadow:0 12px 40px #10271d26}.install-help-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.install-help h2{margin:0;color:var(--green-dark);font:700 14px Manrope,sans-serif}.install-help-close{display:grid;flex:0 0 32px;width:32px;height:32px;place-items:center;border:1px solid var(--line);border-radius:5px;color:#65726a;background:#fff;font-size:20px;cursor:pointer}.install-help p,.install-help ol{margin:10px 0 0;padding-left:20px;color:#68746c;font-size:11px;line-height:1.8}.install-help p{padding-left:0}.install-help strong{color:#315d43}.auth-page{min-height:100vh;background:#f5f6f2}.auth-card{width:min(440px,calc(100% - 32px));margin:65px auto;padding:34px;border:1px solid #e8ebe5;border-radius:10px;background:#fff;box-shadow:0 8px 34px #1c3e2d08}.auth-card h1{margin:12px 0 8px;font:700 34px/1.12 Manrope,sans-serif;letter-spacing:-1.6px}.auth-card h1 em,.admin-intro h1 em{color:var(--green);font-style:normal}.auth-card>p{margin:0 0 22px;color:#7c8780;font-size:11px;line-height:1.7}.auth-card .feedback{margin:0 0 15px}.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:7px;color:#5f6b63;font-size:10px;font-weight:600}.auth-form input,.add-player-form input,.edit-player-form input{width:100%;min-width:0;height:39px;padding:0 11px;border:1px solid #e5e9e3;border-radius:5px;outline:0;color:var(--ink);background:#fff;font-size:11px}.auth-form input:focus,.add-player-form input:focus,.edit-player-form input:focus{border-color:#8eae99;box-shadow:0 0 0 3px #edf4ef}.password-input-wrap{position:relative;display:flex;min-width:0}.password-input-wrap input{padding-right:82px}.password-visibility-button{position:absolute;top:50%;right:7px;padding:5px 6px;transform:translateY(-50%);border:0;border-radius:4px;color:#52715e;background:transparent;font-size:9px;cursor:pointer}.password-visibility-button:hover{color:var(--green-dark);background:#f0f5f1}.primary-button,.secondary-button{display:inline-flex;min-height:34px;justify-content:center;align-items:center;padding:8px 13px;border:1px solid var(--green);border-radius:5px;color:#fff;background:var(--green);font-size:10px;font-weight:600;cursor:pointer}.primary-button:hover:not(:disabled){background:#1d5e43}.primary-button:disabled,.secondary-button:disabled,.quiet-button:disabled,.delete-button:disabled{cursor:wait;opacity:.55}.auth-form .primary-button{width:100%;min-height:40px;margin-top:3px}.auth-help{margin:18px 0 0!important;color:#929a94!important;font-size:9px!important}.password-hint{margin-top:-7px;color:#87918a;font-size:9px}.auth-form>.quiet-button{justify-self:center}.admin-page{width:min(1100px,90%);margin:0 auto;padding-bottom:45px}.admin-intro{display:flex;min-height:235px;justify-content:space-between;align-items:end;padding:40px 2px 32px}.admin-intro h1{margin:0;font:700 clamp(36px,4vw,48px)/1.07 "Manrope",sans-serif;letter-spacing:-2px}.admin-intro p{max-width:420px;margin:13px 0 0;color:#7c8780;font-size:11px;line-height:1.7}.admin-stats{display:flex;gap:24px;padding-bottom:3px}.admin-stats div{display:grid;gap:5px}.admin-stats strong{color:var(--green-dark);font:700 22px Manrope,sans-serif}.admin-stats span{color:#919a93;font-size:8px;font-weight:700;letter-spacing:.9px}.admin-card{margin-bottom:18px}.admin-tabs{display:flex;gap:7px;margin:0 0 14px;padding:5px;border:1px solid #e8ebe5;border-radius:7px;background:#fff}.admin-tabs button{padding:9px 13px;border:0;border-radius:5px;color:#78837b;background:transparent;font-size:10px;cursor:pointer}.admin-tabs button.active{color:#286547;background:#edf4ef;font-weight:700}.login-failure-list{padding:0 20px 10px}.login-failure-row{display:flex;min-height:60px;gap:12px;align-items:center;justify-content:space-between;border-top:1px solid #f0f1ee}.login-failure-info{display:grid;min-width:0;gap:5px}.login-failure-info strong{overflow-wrap:anywhere;color:#39483e;font-size:10px}.login-failure-info span{color:#87918a;font-size:9px;line-height:1.5}.message-board{margin-top:18px}.message-board-heading{padding-bottom:15px}.message-board>.feedback{margin:0 18px 12px}.message-compose{display:grid;gap:9px;padding:0 19px 17px;border-bottom:1px solid #eff1ed}.message-compose textarea{width:100%;min-height:78px;resize:vertical;padding:10px 11px;border:1px solid #e5e9e3;border-radius:5px;outline:0;color:var(--ink);background:#fff;font:inherit;font-size:11px;line-height:1.6}.message-compose textarea:focus{border-color:#8eae99;box-shadow:0 0 0 3px #edf4ef}.message-compose textarea::placeholder{color:#a6ada8}.message-compose-footer{display:flex;justify-content:space-between;gap:12px;align-items:center}.message-compose-footer>span{color:#929a94;font-size:9px}.message-list{padding:0 19px}.message-item{display:flex;gap:11px;align-items:start;padding:15px 0;border-bottom:1px solid #f0f1ee}.message-item:last-child{border-bottom:0}.message-avatar{flex:0 0 32px;width:32px;height:32px}.message-content{min-width:0;flex:1}.message-meta{display:flex;flex-wrap:wrap;gap:5px 10px;align-items:baseline}.message-meta strong{color:#39483e;font-size:10px}.message-meta time{color:#929a94;font-size:9px}.message-content p{margin:6px 0 0;color:#58645c;font-size:11px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.message-delete{flex:0 0 auto;padding:5px 7px;border:1px solid #eee5e2;border-radius:4px;color:#a45443;background:#fff;font-size:8px;cursor:pointer}.message-delete:hover{border-color:#efd8d0;background:#fcf4f1}.message-empty{margin:0;padding:18px 0;color:#87918a;font-size:10px;text-align:center}.admin-session-list{padding:0 18px 17px}.admin-session{border-bottom:1px solid #edf0eb}.admin-session:last-child{border-bottom:0}.admin-session-heading{display:flex;min-height:53px;gap:11px;align-items:center;padding:7px 5px;list-style:none;cursor:pointer}.admin-session-heading::-webkit-details-marker{display:none}.admin-session-heading:after{order:2;margin-left:1px;color:#95a098;content:"+";font-size:17px}.admin-session[open]>.admin-session-heading:after{content:"−"}.admin-session-heading>div{display:grid;flex:1;gap:4px}.admin-session-heading>div strong{font-size:10px}.admin-session-heading>div>span{color:#87918a;font-size:9px}.create-session-form{margin:0 18px 17px;padding:17px;border:1px solid #e6ece5;border-radius:7px;background:#fafbf9}.create-session-title p{margin:5px 0 14px;color:#87918a;font-size:9px}.create-session-fields{display:grid;grid-template-columns:1.25fr 1fr 1fr .7fr;gap:10px}.create-session-fields label{display:grid;gap:6px;color:#68746c;font-size:9px;font-weight:600}.create-session-fields input{width:100%;min-width:0;height:34px;padding:0 8px;border:1px solid #e5e9e3;border-radius:5px;outline:0;color:var(--ink);background:#fff;font:inherit;font-size:10px}.create-session-fields input:focus{border-color:#8eae99;box-shadow:0 0 0 3px #edf4ef}.prebook-heading{display:flex;justify-content:space-between;gap:12px;align-items:end;margin:17px 0 8px}.prebook-heading>div{display:grid;gap:4px}.prebook-heading strong{color:#5f6b63;font-size:10px}.prebook-heading span{color:#89938b;font-size:9px}.prebook-list{display:grid;max-height:170px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 8px;overflow-y:auto;padding:7px;border:1px solid #e9ede8;border-radius:5px;background:#fff}.prebook-player{display:flex;min-width:0;gap:7px;align-items:center;padding:5px;border-radius:4px;color:#5d6860;font-size:9px;cursor:pointer}.prebook-player:hover{background:#f5f8f4}.prebook-player input{flex:0 0 auto;accent-color:var(--green)}.prebook-player .avatar{flex-basis:24px;width:24px;height:24px}.prebook-player>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prebook-player:has(input:disabled){color:#a4aca5;cursor:not-allowed}.form-error{margin:8px 0 0;color:#a45443;font-size:9px}.create-session-button{margin-top:12px}.admin-booking-list{padding:0 8px 11px 47px}.admin-booking-row{display:flex;min-height:42px;gap:9px;align-items:center;border-top:1px solid #f3f4f1}.admin-booking-row>strong{flex:1;font-size:10px;font-weight:500}.admin-booking-row>.secondary-button{min-height:27px;padding:5px 9px}.admin-booking-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:9px 0 2px;border-top:1px dashed #e6e9e4}.admin-booking-add select{flex:1;min-width:180px;height:33px;padding:0 9px;border:1px solid #e5e9e3;border-radius:5px;color:#56635b;background:#fff;font:inherit;font-size:9px}.admin-booking-add>span{color:#87918a;font-size:9px}.admin-session-actions{display:flex;justify-content:flex-end;padding-top:9px}.delete-session-button{min-height:34px;padding:7px 10px;border:1px solid #eee0dc;border-radius:5px;color:#a45443;background:#fff;font-size:9px;cursor:pointer}.delete-session-button:hover:not(:disabled){border-color:#e6bdb3;background:#fcf4f1}.delete-session-button:disabled{cursor:wait;opacity:.55}.confirm-overlay{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow-y:auto;padding:20px;background:#17241f99}.confirm-dialog{width:min(440px,100%);padding:25px;border:1px solid #e8ebe5;border-radius:10px;background:#fff;box-shadow:0 18px 60px #10271d38}.confirm-dialog h2{margin:8px 0 14px;color:var(--ink);font:700 20px/1.25 Manrope,sans-serif;letter-spacing:-.5px}.confirm-dialog-date{display:grid;gap:5px;margin:0;color:#435b4c;font-size:13px;font-weight:700}.confirm-dialog-date span{color:#87918a;font-size:10px;font-weight:500}.confirm-dialog-warning{margin:15px 0 20px;padding:12px;border:1px solid #f0e2d7;border-radius:6px;color:#795f4c;background:#fcf8f3;font-size:11px;line-height:1.6}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:9px}.confirm-dialog-actions button{min-height:40px;padding:8px 12px;font-size:10px}.confirm-delete-button{border:1px solid #a34b3e;border-radius:5px;color:#fff;background:#a34b3e;font-weight:600;cursor:pointer}.confirm-delete-button:hover:not(:disabled){border-color:#87392f;background:#87392f}.confirm-delete-button:disabled{cursor:wait;opacity:.6}.admin-heading{gap:15px;padding:20px 21px 16px}.invite-all-button{white-space:nowrap}.add-player-form{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 20px;border-top:1px solid #eff1ed;border-bottom:1px solid #eff1ed}.add-player-form label{color:#68746c;font-size:10px;font-weight:600}.add-player-form input,.edit-player-form input{height:34px;font-size:10px}.secondary-button{min-height:31px;border-color:#dce8df;color:#3a7654;background:#f3f8f4;white-space:nowrap}.secondary-button:hover:not(:disabled){border-color:#bad1c1;background:#eaf3ec}.admin-player-list{padding:0 20px}.admin-player-row{display:flex;min-height:57px;gap:11px;align-items:center;border-bottom:1px solid #f0f1ee}.admin-player-row:last-child{border-bottom:0}.admin-player-info{display:grid;min-width:155px;flex:1;gap:4px}.admin-player-info strong{font-size:10px}.admin-player-info>span{color:#8c958e;font-size:8px}.admin-player-info code{color:#6f7d73;font-size:8px}.account-status{min-width:100px;color:#8a928d;font-size:9px}.status-active{color:#3d8359}.status-invited{color:#9a7643}.delete-button{width:26px;height:26px;border:1px solid #eee5e2;border-radius:5px;color:#ad786d;background:#fff;font-size:17px;cursor:pointer}.delete-button:hover{border-color:#efd8d0;background:#fcf4f1}.edit-player-form{display:flex;width:100%;gap:8px;align-items:center;padding:10px 0}.invitation-result{margin-bottom:18px;padding:19px 21px}.invitation-result-heading{display:flex;justify-content:space-between;gap:22px;align-items:start}.invitation-result-heading h2{margin:5px 0;font:700 16px Manrope,sans-serif}.invitation-result-heading p{max-width:620px;margin:0 0 13px;color:#87918a;font-size:9px;line-height:1.6}.copy-button{flex:0 0 auto}.invitation-table{overflow-x:auto;border:1px solid #e9ede8;border-radius:6px}.invitation-row{display:grid;min-width:490px;grid-template-columns:minmax(150px,1fr) minmax(145px,.8fr) minmax(175px,.9fr);gap:12px;align-items:center;padding:10px 12px;border-bottom:1px solid #eff1ed;font-size:9px}.invitation-row:last-child{border-bottom:0}.invitation-row>span{color:#758078}.invitation-row code{width:fit-content;padding:5px 7px;border-radius:4px;color:#315d43;background:#eff5f0;font-size:9px;-webkit-user-select:all;user-select:all}.admin-security-note{margin:0;padding:14px 20px 17px;border-top:1px solid #eff1ed;color:#859087;font-size:9px;line-height:1.6}@media(max-width:1050px){.page{width:min(850px,92%)}.dashboard{grid-template-columns:minmax(205px,.8fr) minmax(350px,1.5fr)}.players-panel{grid-column:1 / -1;min-height:0}.players-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:390px}}@media(max-width:650px){.topbar{min-height:64px;height:auto;flex-wrap:wrap;gap:10px;padding:10px 14px}.brand{gap:8px}.brand-mark{flex:0 0 34px;width:34px;height:34px}.brand-copy strong{font-size:10px;letter-spacing:.8px}.brand-copy span{font-size:8px;letter-spacing:1px}.topbar-right,.topbar>.account-controls,.auth-header-actions{width:100%;justify-content:flex-end}.topbar-right{min-width:0;gap:10px}.auth-header-actions{gap:6px}.install-button{min-height:38px;padding:7px 8px;font-size:9px}.install-help{right:12px;bottom:max(12px,env(safe-area-inset-bottom))}.database-status{font-size:0}.database-status>span{width:8px;height:8px}.season-pill{display:none}.page{width:min(100% - 32px,500px)}.intro{min-height:0;padding:28px 0 20px;align-items:start}.intro h1{font-size:clamp(32px,9vw,37px)}.intro-copy{max-width:340px;font-size:11px}.intro-stats{display:none}.dashboard{grid-template-columns:1fr;gap:13px}.schedule-panel{min-height:0;grid-row:1}.mobile-session-picker{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;align-items:center;padding:0 12px 14px}.mobile-session-picker button{display:grid;width:44px;height:44px;place-items:center;border:1px solid #e8ebe5;border-radius:6px;color:var(--green-dark);background:#fff;font-size:24px;cursor:pointer}.mobile-session-picker button:disabled{color:#b7beb8;background:#f8f9f7;cursor:default}.mobile-session-picker label{min-width:0}.mobile-session-picker select{width:100%;min-width:0;height:44px;padding:0 30px 0 10px;border:1px solid #dfe6df;border-radius:6px;outline:0;color:#3e5548;background:#f8faf8;font:inherit;font-size:11px}.mobile-session-picker select:focus{border-color:#8eae99;box-shadow:0 0 0 3px #edf4ef}.session-list,.schedule-footnote{display:none}.main-column{grid-row:2}.players-panel{grid-column:auto;grid-row:3}.players-list{grid-template-columns:1fr;max-height:min(460px,60vh)}.event-card{padding:20px 19px 17px}.event-card h2{font-size:23px}.roster-card .panel-heading{padding-left:16px;padding-right:16px}.assigned-list{padding:0 12px}.assigned-player{display:grid;grid-template-columns:18px 30px minmax(0,1fr) auto;gap:8px;padding:10px 0}.assigned-player>strong{min-width:0}.assigned-player-actions{grid-column:3 / 5;justify-self:end;gap:7px;margin:0}.confirm-button{min-height:38px;padding:8px 10px;font-size:10px}.release-button{min-height:38px;opacity:1}.page-footer{flex-wrap:wrap;gap:8px 12px;font-size:7px}.topbar .account-controls{gap:5px}.topbar .account-controls>span{display:none}.topbar .account-controls button{min-height:38px;padding:7px 9px;font-size:9px}.topbar .account-controls .install-button{padding:7px 8px}.auth-page>.topbar{padding-right:16px;padding-left:16px}.auth-card{margin-top:28px;padding:25px 21px}.auth-card h1{font-size:clamp(30px,8vw,34px)}.admin-page{width:calc(100% - 28px)}.admin-intro{min-height:0;flex-direction:column;align-items:start;gap:20px;padding:34px 0 23px}.admin-stats{width:100%;justify-content:space-between;gap:10px}.admin-stats span{font-size:7px;letter-spacing:.3px}.admin-tabs{position:sticky;z-index:3;top:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.admin-tabs button{min-height:42px;padding:8px 6px;font-size:9px}.login-failure-list{padding:0 12px 8px}.login-failure-row{align-items:start;flex-direction:column;padding:12px 0}.login-failure-row .secondary-button{min-height:38px}.message-board{margin-top:13px}.message-board-heading{padding:16px 14px 13px}.message-compose{padding:0 12px 13px}.message-compose-footer{align-items:end}.message-compose-footer .primary-button{min-height:40px}.message-list{padding:0 12px}.message-item{gap:8px}.admin-heading{flex-wrap:wrap;padding:16px 14px 13px}.invite-all-button{width:100%;min-height:42px}.add-player-form{grid-template-columns:1fr auto;gap:8px;padding:12px}.add-player-form label{grid-column:1 / -1}.add-player-form .primary-button{min-height:40px}.admin-player-list{padding:0 12px}.admin-player-row{min-height:0}.admin-player-row button{min-height:38px}.admin-session-list{padding:0 9px 12px}.admin-booking-list{padding-left:10px}.admin-booking-add select{min-width:0;min-height:40px}.admin-booking-add .primary-button,.delete-session-button{min-height:40px}.confirm-overlay{align-items:end;padding:12px}.confirm-dialog{padding:22px 18px;border-radius:10px 10px 7px 7px}.confirm-dialog-actions{display:grid;grid-template-columns:1fr}.confirm-dialog-actions button{width:100%;min-height:44px}.create-session-form{margin:0 9px 13px;padding:12px}.create-session-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.create-session-fields input{min-height:40px}.prebook-list{grid-template-columns:repeat(2,minmax(0,1fr))}.prebook-player{min-height:38px}.prebook-heading{align-items:start;flex-direction:column}.create-session-button{width:100%;min-height:42px}.admin-player-row{flex-wrap:wrap;gap:8px;padding:10px 0}.admin-player-info{min-width:calc(100% - 55px)}.account-status{margin-left:37px}.invitation-result{padding:15px 12px}.invitation-result-heading{flex-direction:column;gap:8px}.copy-button{width:100%}.edit-player-form{flex-wrap:wrap}.edit-player-form input{flex:1 1 100%}.edit-player-form button{min-height:38px}.players-foot{flex-wrap:wrap;gap:8px;line-height:1.5}.players-foot .legend-dot:not(:first-child){margin-left:4px}.player-row{min-height:62px;gap:8px;padding:7px 4px}.icon-action{flex-basis:40px;width:40px;height:40px;font-size:20px}.player-row-actions{gap:7px}.player-row-actions .confirm-button{min-height:40px}}@media(max-width:380px){.topbar{padding-right:10px;padding-left:10px}.brand{gap:6px}.brand-copy strong{font-size:9px}.topbar .account-controls{gap:4px}.topbar .account-controls button,.topbar .account-controls .install-button{padding-right:6px;padding-left:6px;font-size:8px}.page{width:calc(100% - 24px)}.admin-page{width:calc(100% - 20px)}.event-card{padding-right:15px;padding-left:15px}.capacity-label>span,.capacity-foot>span:last-child{font-size:7px}.player-row-actions .confirm-button{padding:7px;font-size:9px}.prebook-list{grid-template-columns:1fr}.admin-stats{gap:6px}.admin-stats span{font-size:6px}}:root[data-theme=dark]{color-scheme:dark;color:#e4e9e5;background:#171d1a;--ink: #e4e9e5;--muted: #a0aaa3;--line: #39433d;--green: #67b58a;--green-dark: #91d1aa;--green-soft: #263b30}:root[data-theme=dark] body,:root[data-theme=dark] .auth-page{color:#e4e9e5;background:#171d1a}:root[data-theme=dark] .topbar,:root[data-theme=dark] .panel,:root[data-theme=dark] .auth-card,:root[data-theme=dark] .admin-tabs,:root[data-theme=dark] .install-help,:root[data-theme=dark] .confirm-dialog{border-color:#39433d;background:#202724}:root[data-theme=dark] .topbar{border-bottom-color:#303a34}:root[data-theme=dark] .session-link:hover,:root[data-theme=dark] .mobile-session-picker button,:root[data-theme=dark] .account-controls button,:root[data-theme=dark] .quiet-button,:root[data-theme=dark] .install-help-close,:root[data-theme=dark] .delete-button,:root[data-theme=dark] .message-delete,:root[data-theme=dark] .delete-session-button{border-color:#414c45;color:#d3ddd6;background:#252e29}:root[data-theme=dark] .session-link.selected,:root[data-theme=dark] .term-count,:root[data-theme=dark] .admin-tabs button.active,:root[data-theme=dark] .avatar,:root[data-theme=dark] .avatar-small,:root[data-theme=dark] .invitation-row code{border-color:#405748;color:#b7e0c3;background:#293d31}:root[data-theme=dark] .mobile-session-picker button:disabled{color:#7d8981;background:#202724}:root[data-theme=dark] .day-wed{color:#e6c497;background:#40382b}:root[data-theme=dark] .day-sat{color:#afd2df;background:#293a40}:root[data-theme=dark] .mobile-session-picker select,:root[data-theme=dark] .search-box,:root[data-theme=dark] .auth-form input,:root[data-theme=dark] .add-player-form input,:root[data-theme=dark] .edit-player-form input,:root[data-theme=dark] .message-compose textarea,:root[data-theme=dark] .create-session-fields input,:root[data-theme=dark] .admin-booking-add select,:root[data-theme=dark] .prebook-list{border-color:#414c45;color:#e4e9e5;background:#1a211d}:root[data-theme=dark] .create-session-form{border-color:#39433d;background:#1b231f}:root[data-theme=dark] .session-link-info span,:root[data-theme=dark] .session-link.past .session-link-info strong,:root[data-theme=dark] .roster-total,:root[data-theme=dark] .player-number,:root[data-theme=dark] .schedule-footnote,:root[data-theme=dark] .page-footer,:root[data-theme=dark] .section-kicker,:root[data-theme=dark] .eyebrow,:root[data-theme=dark] .brand-copy span,:root[data-theme=dark] .database-status,:root[data-theme=dark] .season-pill,:root[data-theme=dark] .intro-copy,:root[data-theme=dark] .intro-stats span,:root[data-theme=dark] .session-link-count i,:root[data-theme=dark] .player-details>span,:root[data-theme=dark] .message-meta time,:root[data-theme=dark] .message-empty,:root[data-theme=dark] .admin-intro p,:root[data-theme=dark] .admin-stats span,:root[data-theme=dark] .admin-security-note,:root[data-theme=dark] .auth-card>p,:root[data-theme=dark] .auth-help,:root[data-theme=dark] .password-hint,:root[data-theme=dark] .login-failure-info span,:root[data-theme=dark] .invitation-row>span,:root[data-theme=dark] .admin-booking-add>span,:root[data-theme=dark] .create-session-title p,:root[data-theme=dark] .prebook-heading span,:root[data-theme=dark] .empty-roster,:root[data-theme=dark] .form-error,:root[data-theme=dark] .install-help p,:root[data-theme=dark] .install-help ol{color:#a0aaa3}:root[data-theme=dark] .create-session-fields label,:root[data-theme=dark] .prebook-heading strong{color:#c1cbc4}:root[data-theme=dark] .assigned-player,:root[data-theme=dark] .player-row,:root[data-theme=dark] .login-failure-row,:root[data-theme=dark] .message-item,:root[data-theme=dark] .admin-player-row,:root[data-theme=dark] .admin-session,:root[data-theme=dark] .admin-booking-row,:root[data-theme=dark] .admin-booking-add,:root[data-theme=dark] .admin-security-note,:root[data-theme=dark] .message-compose,:root[data-theme=dark] .admin-past-session-notice{border-color:#354039}:root[data-theme=dark] .session-link-info strong,:root[data-theme=dark] .assigned-player>strong,:root[data-theme=dark] .player-details strong,:root[data-theme=dark] .message-meta strong,:root[data-theme=dark] .login-failure-info strong,:root[data-theme=dark] .admin-player-info strong,:root[data-theme=dark] .admin-player-info>span,:root[data-theme=dark] .admin-player-info code,:root[data-theme=dark] .admin-booking-row>strong,:root[data-theme=dark] .prebook-player,:root[data-theme=dark] .admin-booking-add select,:root[data-theme=dark] .account-controls{color:#d3ddd6}:root[data-theme=dark] .player-details>.status-assigned,:root[data-theme=dark] .session-link-count,:root[data-theme=dark] .status-active,:root[data-theme=dark] .confirmation-status.confirmed{color:#8bd1a3}:root[data-theme=dark] .confirmation-status.confirmed{background:#293d31}:root[data-theme=dark] .confirmation-status.unconfirmed,:root[data-theme=dark] .confirm-dialog-warning{border-color:#57492f;color:#e0c589;background:#383123}:root[data-theme=dark] .feedback-error{border-color:#603b35;color:#f0ab9d;background:#352623}:root[data-theme=dark] .feedback-success{border-color:#345742;color:#a6dfb4;background:#23342a}:root[data-theme=dark] .primary-button{border-color:#317d56;color:#fff;background:#317d56}:root[data-theme=dark] .secondary-button,:root[data-theme=dark] .confirm-button,:root[data-theme=dark] .install-button{border-color:#405748;color:#b7e0c3;background:#293d31}:root[data-theme=dark] .delete-session-button{border-color:#5b3e39;color:#e4a397;background:#352623}:root[data-theme=dark] .delete-session-button:hover:not(:disabled){border-color:#754a41;background:#412b27}:root[data-theme=dark] .prebook-player:hover,:root[data-theme=dark] .session-link:hover{background:#2a332e}:root[data-theme=dark] .search-box input::placeholder,:root[data-theme=dark] .message-compose textarea::placeholder{color:#87938b}:root[data-theme=dark] .startup-error{color:#d3ddd6}:root[data-font-size=large] body{zoom:1.15}:root[data-font-size=larger] body{zoom:1.3}.appearance-controls,.appearance-choice{display:inline-flex;align-items:center}.appearance-controls{gap:7px}.appearance-choice{gap:2px;padding:2px;border:1px solid #e8ebe5;border-radius:6px;background:#f5f6f2}.appearance-choice button,.font-size-button{min-height:32px;padding:5px 8px;border:0;border-radius:4px;color:#65726a;background:transparent;font-size:10px;white-space:nowrap;cursor:pointer}.appearance-choice button[aria-pressed=true]{color:#286547;background:#fff;font-weight:700;box-shadow:0 1px 3px #1c3e2d12}.font-size-button{min-width:36px;border:1px solid #e8ebe5;background:#fff;font-size:14px;font-weight:700}.font-size-button span{font-size:10px;vertical-align:top}.appearance-controls button:focus-visible{outline:3px solid #8eae99;outline-offset:2px}:root[data-theme=dark] .appearance-choice{border-color:#414c45;background:#1a211d}:root[data-theme=dark] .appearance-choice button,:root[data-theme=dark] .font-size-button{border-color:#414c45;color:#d3ddd6;background:#252e29}:root[data-theme=dark] .appearance-choice button[aria-pressed=true]{color:#b7e0c3;background:#35463b}@media(max-width:650px){:root[data-font-size=larger] body{min-width:0}.topbar-right,.topbar>.account-controls,.auth-header-actions{flex-wrap:wrap;row-gap:8px}.appearance-controls{gap:4px}}
