:root{--ink:#153c32;--green:#184f3d;--lime:#d5f578;--paper:#f5f5ee;--muted:#6d7972}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer}header{max-width:1180px;margin:auto;padding:28px 32px;display:flex;justify-content:space-between;align-items:center}header strong{letter-spacing:1px}main{max-width:1180px;margin:auto;padding:0 32px}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;padding:38px 0;align-items:center}small{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--muted)}h1{font-size:clamp(38px,5vw,64px);line-height:1.08;letter-spacing:-3px;margin:18px 0;font-weight:750}h1 em{font-style:normal;background:var(--lime);padding:0 9px}p{color:var(--muted);line-height:1.6;font-size:14px}.primary{background:var(--green);color:white;border:0;border-radius:9px;padding:14px 21px;font-weight:600}.hero .primary{margin-top:12px}.court{height:310px;background:#24634b;border-radius:16px;position:relative;overflow:hidden;transform:rotate(-2deg);box-shadow:10px 12px 0 #e2e7d7}.court:before{content:'';position:absolute;inset:25px;border:2px solid #ffffff70;background:linear-gradient(90deg,transparent 49.7%,#ffffff80 49.7%,#ffffff80 50.3%,transparent 50.3%)}.court:after{content:'';position:absolute;left:25px;right:25px;top:25%;bottom:25%;border-top:2px solid #ffffff70;border-bottom:2px solid #ffffff70}.court i{position:absolute;width:42px;height:42px;border-radius:50%;background:var(--lime);right:50px;top:48px;box-shadow:6px 9px 0 #123b3255}.court b{position:absolute;left:48px;bottom:55px;color:white;font-size:32px;line-height:1.1;z-index:1}.stats{display:flex;border-block:1px solid #dce1d6;padding:22px 0;gap:70px}.stats div{display:flex;flex-direction:column;gap:5px}.stats strong{font-size:21px}.stats span{font-size:12px;color:var(--muted)}nav{display:flex;gap:25px;margin-top:28px;border-bottom:1px solid #dce1d6}nav button{padding:17px 0;border:0;background:none;color:var(--muted);font-size:13px}nav button.active{border-bottom:3px solid var(--green);color:var(--green);font-weight:700}.section-head{display:flex;justify-content:space-between;align-items:center;padding:14px 0}h2{font-size:30px;letter-spacing:-1px}.section-head label{font-size:12px;display:flex;gap:7px;align-items:center}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:white;padding:23px;border:1px solid #e1e6dc;border-radius:13px}.card-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.badge{font-size:10px;font-weight:700;padding:6px 9px;border-radius:30px;background:#edf4dd}.date{font-size:11px;color:var(--muted)}.card h3{font-size:21px;margin:20px 0 6px}.location{font-size:12px;color:var(--muted)}.range{font-size:12px;padding:13px 0;border-bottom:1px solid #edf0e8}.range b{font-size:15px}.players{display:flex;gap:7px;margin:18px 0 9px}.player{width:35px;height:35px;border-radius:50%;background:#e9eddf;display:grid;place-items:center;font-size:11px;font-weight:700}.player.empty{border:1px dashed #cad2c4;background:none;color:#9ba597}.names{font-size:11px;color:var(--muted);min-height:28px}.card button{width:100%;border:1px solid #d8dfd0;background:var(--lime);color:var(--ink);padding:11px;border-radius:8px;font-weight:600;font-size:12px;margin-top:10px}.card button.secondary{background:white}.card button:disabled{opacity:.5;cursor:default}footer{margin:40px 0 25px;font-size:11px;color:var(--muted);line-height:1.6;display:flex;justify-content:space-between;gap:20px}footer button{border:0;background:none;color:var(--muted);text-decoration:underline;font-size:11px}.profile{margin:25px 0;background:white;border:1px solid #e1e6dc;border-radius:14px;padding:30px;max-width:660px}.level strong{font-size:70px}.level{color:var(--muted)}form{display:grid;gap:15px}form label{display:grid;gap:6px;font-size:12px}input,select{padding:11px;border:1px solid #cdd6c8;border-radius:7px;background:white;color:var(--ink);min-width:0}.history-row{display:flex;justify-content:space-between;border-top:1px solid #eee;padding:12px 0;font-size:12px}dialog{border:0;border-radius:15px;padding:30px;width:min(94vw,500px);color:var(--ink);box-shadow:0 20px 80px #0003}dialog::backdrop{background:#092c2670;backdrop-filter:blur(3px)}.close{float:right;background:none;border:0;font-size:25px;color:var(--muted)}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.teams{display:grid;gap:12px;margin:20px 0}.team{padding:16px;border:1px solid #dde4d5;border-radius:9px}.team button{margin-top:10px;width:100%}.empty-state{padding:30px;border:1px dashed #bdcbb6;border-radius:10px;color:var(--muted);grid-column:1/-1;font-size:14px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:13px 20px;border-radius:10px;display:none;font-size:13px;z-index:3}[hidden]{display:none!important}@media(max-width:760px){header{padding:20px;gap:12px}header strong{font-size:13px}main{padding:0 20px}.hero{grid-template-columns:1fr;gap:26px;padding-top:20px}h1{letter-spacing:-2px}.court{height:205px;transform:none}.court b{font-size:24px;bottom:40px}.stats{gap:10px;justify-content:space-between}.stats strong{font-size:15px}.stats span{font-size:10px}.cards{grid-template-columns:1fr}nav{gap:20px}footer{flex-direction:column}.profile{padding:22px}}
#switchAuth{margin-top:16px;padding:10px;border:1px solid #ccd6c6;background:white;border-radius:8px;color:var(--ink)}#account{font-size:12px;padding:10px}input:focus,button:focus-visible,select:focus{outline:2px solid #628836;outline-offset:3px}
.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:24px;margin:28px 0;align-items:start}.profile-overview,.profile-editor{padding:28px;background:white;border:1px solid #e1e6dc;border-radius:16px;min-width:0}.profile-overview{background:#eef2e4}.profile-identity{display:flex;align-items:center;gap:16px;margin:24px 0}.profile-identity h2{margin:0 0 6px}.profile-identity span{font-size:12px;color:var(--muted)}.profile-avatar{width:80px;height:80px;flex-shrink:0;border-radius:50%;background:var(--lime);display:grid;place-items:center;overflow:hidden;font-size:26px;font-weight:700}.profile-avatar img,.player img{width:100%;height:100%;object-fit:cover}.profile-avatar span{font-size:inherit;color:var(--ink)}.small-avatar{width:64px;height:64px;font-size:20px}.performance{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border-block:1px solid #d6dfcb;padding:20px 0;margin:22px 0}.performance div{display:flex;flex-direction:column;gap:7px}.performance strong{font-size:24px}.performance span{font-size:11px;color:var(--muted)}fieldset{border:1px solid #dae1d3;border-radius:10px;padding:16px;margin:0;min-width:0}legend{padding:0 6px;font-size:12px;font-weight:600}.photo-controls{display:flex;gap:16px;align-items:center}.upload-button{padding:10px 14px;border-radius:8px;background:#eaf1da;cursor:pointer;display:inline-block!important;font-weight:600}.text-button{background:none;border:0;color:var(--muted);font-size:12px;padding:10px}.field-help{font-size:11px;margin:4px 0;line-height:1.6}.availability-grid{display:grid;grid-template-columns:44px repeat(3,1fr);gap:7px;margin-top:14px;align-items:center}.availability-grid strong{font-size:11px;text-align:center}.availability-cell{display:block;position:relative;height:35px;cursor:pointer}.availability-cell input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.availability-cell span{display:grid;place-items:center;border:1px solid #d5dec9;border-radius:7px;height:35px;color:transparent;background:#f8faf3}.availability-cell input:checked+span{background:var(--green);color:var(--lime);border-color:var(--green)}.availability-cell input:focus-visible+span{outline:2px solid #628836;outline-offset:2px}#profileEmail{background:#f6f7f1;color:var(--muted)}#profileFeedback{font-size:12px;min-height:20px;margin:0}#saveProfile:disabled{opacity:.6;cursor:wait}.player{overflow:hidden}@media(max-width:760px){.profile-layout{grid-template-columns:1fr;gap:16px}.profile-overview,.profile-editor{padding:22px}.performance strong{font-size:21px}.profile-identity h2{font-size:25px}}
.menu-toggle{border:1px solid #ccd6c6;background:transparent;color:var(--ink);width:42px;height:42px;border-radius:10px;font-size:22px;flex-shrink:0}header{gap:16px}header>strong{margin-right:auto}.menu-backdrop{position:fixed;inset:0;background:#082b2766;backdrop-filter:blur(2px);z-index:20}.side-menu{position:fixed;top:0;left:0;bottom:0;width:min(310px,88vw);padding:25px;background:var(--paper);z-index:21;box-shadow:10px 0 50px #082b2733;overflow-y:auto}.menu-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;letter-spacing:1px}.menu-heading button{font-size:27px;padding:0 7px}.side-menu>p{font-size:12px;margin-top:5px}.side-menu nav{display:flex;flex-direction:column;gap:8px;border:0;margin-top:35px}.side-menu nav button{text-align:left;border:0;border-radius:10px;padding:16px;font-size:14px;background:#ffffff80;color:var(--ink)}.side-menu nav button.active{background:var(--green);color:white;border:0}.menu-account{margin-top:32px;border-top:1px solid #dce1d6;padding-top:22px}.menu-account button{width:100%}@media(max-width:760px){header{gap:10px;padding:16px}header>strong{font-size:11px;letter-spacing:.5px}#account{font-size:10px;padding:9px}.menu-toggle{width:36px;height:36px;font-size:20px}}

.profile-shortcut{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--ink);font-size:12px;font-weight:600;padding:4px;white-space:nowrap}.header-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--lime);overflow:hidden;flex-shrink:0;font-size:11px}.header-avatar img{width:100%;height:100%;object-fit:cover}@media(max-width:760px){header{flex-wrap:wrap}.profile-shortcut{font-size:11px;gap:5px}.header-avatar{width:28px;height:28px}header>strong{flex:1;min-width:110px}.profile-shortcut{margin-left:auto}}

.header-avatar{padding:0;border:0;line-height:1;letter-spacing:0}.header-avatar>span{padding:0;border:0;font-size:inherit;line-height:1;letter-spacing:0}.header-avatar img{display:block;object-position:center}

.header-actions{display:flex;align-items:center;gap:14px;flex-shrink:0;margin-left:auto}@media(max-width:760px){.header-actions{gap:10px;justify-content:flex-end}.header-actions .profile-shortcut{margin-left:0}}
.admin-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0 30px}.admin-summary div{padding:20px;background:#eaf0de;border-radius:12px;display:flex;flex-direction:column;gap:8px;font-size:12px}.admin-summary strong{font-size:28px}.admin-list{display:grid;gap:10px}.admin-row{background:white;border:1px solid #dce3d3;border-radius:10px;padding:18px;display:flex;justify-content:space-between;align-items:center;gap:12px;overflow-wrap:anywhere}.admin-row p{font-size:12px;margin:5px 0}.admin-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-actions button{padding:10px;border:1px solid #cdd8c3;border-radius:8px;color:var(--ink);background:#eef4e5;font-size:12px;white-space:nowrap}textarea{font:inherit;resize:vertical;padding:10px;border:1px solid #cdd6c8;border-radius:7px;width:100%}@media(max-width:760px){.admin-summary{grid-template-columns:repeat(2,1fr)}.admin-row{flex-direction:column;align-items:stretch}.admin-actions button{flex:1}}
.level-choice label{display:flex;align-items:center;gap:9px;margin:10px 0}.level-choice input{padding:0}#manualLevel,#levelQuiz{display:grid;gap:14px}.quiz-estimate{padding:16px;border-radius:10px;background:#eaf2d9;font-weight:700;color:var(--green)}#levelQuiz select{width:100%;font-size:12px}#manualLevel .field-help{margin:0}
.match-summary{cursor:pointer;transition:border-color .15s,box-shadow .15s}.match-summary:hover{border-color:var(--green);box-shadow:0 4px 16px #153c3210}.match-summary:focus-visible{outline:3px solid var(--green);outline-offset:3px}.organizer{font-size:12px;margin:10px 0;overflow-wrap:anywhere}.match-hint{font-size:12px;font-weight:600;color:var(--green);margin-bottom:0}.match-detail{padding:0;border:0}.match-detail .organizer{margin-top:12px}
.match-teams{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.match-team{padding:12px 8px;border-radius:10px;border:1px solid}.team-a{background:#edf4dd;border-color:#b8cf98}.team-b{background:#eaf1fc;border-color:#aec3e3}.match-team h4{margin:0 0 12px;font-size:13px;text-align:center}.team-b h4{color:#274c7b}.team-places{display:flex;gap:8px;justify-content:space-around}.team-place{min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;flex:1}.team-place>span:last-child{font-size:11px;text-align:center;overflow-wrap:anywhere;max-width:100%}.card button.seat-choice{width:35px;height:35px;padding:0;border-radius:50%;margin:0;background:white;border:1px dashed var(--green);font-size:20px}.seat-choice:focus-visible{outline:3px solid var(--green);outline-offset:2px}

.team-place .player-name{font-size:11px;text-align:center;overflow-wrap:anywhere;max-width:100%}.team-place .player-level{font-size:10px;font-weight:600;color:var(--green);white-space:nowrap}.team-b .player-level{color:#274c7b}

.team-place .player-side{font-size:10px;color:var(--muted);text-align:center;overflow-wrap:anywhere}

.booking-link{display:block;margin:12px 0;color:var(--green);font-size:13px;font-weight:600;text-decoration:underline}

button.availability-button,.card button.availability-button{background:var(--green);color:white;border:0;border-radius:9px;padding:13px 18px;font-size:13px;font-weight:600;width:100%;margin-top:8px;transition:filter .15s}button.availability-button:hover{filter:brightness(1.1)}button.availability-button:disabled{opacity:.6;cursor:wait}.availability-status{margin:8px 0 0;padding:10px 14px;border-radius:8px;font-size:13px;font-weight:700}.availability-yes{color:#205e39;background:#e9f5e8}.availability-no{color:#a52d2d;background:#fbeaea}.availability-unknown{color:var(--muted);background:#edf0e8}

.start-time-picker{grid-column:1/-1;border:0;padding:0;margin:4px 0 0;min-width:0}.start-time-picker legend{font-size:12px;margin-bottom:10px}.start-time-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.start-time-option{position:relative;cursor:pointer}.start-time-option input{position:absolute;opacity:0;width:1px;height:1px;padding:0}.start-time-option span{display:block;text-align:center;border:1px solid #d5ddcf;border-radius:8px;padding:10px 3px;font-size:12px;background:white;color:var(--ink)}.start-time-option input:checked+span{background:var(--lime);border-color:var(--green);font-weight:700;box-shadow:inset 0 0 0 1px var(--green)}.start-time-option input:focus-visible+span{outline:3px solid var(--green);outline-offset:2px}.start-time-option:hover span{border-color:var(--green)}
button.availability-button,.card button.availability-button{background:#edf0e8;color:var(--ink);border:1px solid #b8c7b1}.reservation-login-button{display:block;text-align:center;text-decoration:none;padding:13px 16px;margin:10px 0 0;border:1px solid #c2d789;border-radius:9px;background:#eef6d7;color:var(--ink);font-size:13px;font-weight:600}.reservation-login-button:hover{background:#e2efbd}.reservation-login-button:focus-visible{outline:3px solid var(--green);outline-offset:2px}@media(max-width:420px){.start-time-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

.calendar-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;align-items:end}.calendar-controls label{display:grid;gap:6px;font-size:12px}.calendar-controls button.availability-button{margin:0;min-height:43px}.calendar-legend{display:flex;gap:20px;font-size:12px}.legend-free{color:#205e39}.legend-busy{color:#a52d2d}.court-calendar{display:grid;grid-template-columns:1fr 1fr;gap:20px}.court-calendar-panel{background:white;border:1px solid #dce1d6;border-radius:13px;padding:20px}.court-calendar-panel h3{margin-top:0}.court-calendar-hours{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.calendar-slot{display:flex;flex-direction:column;gap:5px;align-items:center;border:1px solid;border-radius:9px;padding:12px 4px;min-width:0}.calendar-slot strong{font-size:14px}.calendar-slot span{font-size:10px;text-align:center}.calendar-slot-free{background:#e9f5e8;border-color:#b8d5b5;color:#205e39}.calendar-slot-free:hover{background:#d6edcc;border-color:#205e39}.calendar-slot-busy{background:#fbeaea;border-color:#ebc4c4;color:#a52d2d;cursor:default}.calendar-slot:focus-visible{outline:3px solid var(--green);outline-offset:2px}@media(max-width:760px){.calendar-controls{grid-template-columns:1fr 1fr}.calendar-controls button{grid-column:1/-1}.court-calendar{grid-template-columns:1fr}.court-calendar-panel{padding:16px}}

.start-time-option span{display:flex;flex-direction:column;gap:4px}.start-time-option b{font-weight:500}.start-time-option small{font-size:9px;letter-spacing:0;line-height:1.2;font-weight:500;color:inherit}.start-time-option[data-availability="available"] span{background:#e9f5e8;border-color:#b8d5b5;color:#205e39}.start-time-option[data-availability="occupied"] span{background:#fbeaea;border-color:#ebc4c4;color:#a52d2d}.start-time-option[data-availability="unknown"] span{background:#f4f5f0;color:var(--muted)}.start-time-option input:checked+span{border:2px solid var(--green);padding:9px 2px;box-shadow:0 0 0 2px #153c3222}.start-time-option input:checked+span b{font-weight:800}.calendar-dialog{width:min(96vw,1060px);max-height:92vh;overflow:auto}.internal-calendar-button,.card button.internal-calendar-button{background:none;border:0;padding:0;width:auto;font-weight:600;font-size:13px;text-decoration:underline;text-align:left}

.header-profile-meta{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.header-level{font-size:11px;font-weight:600;color:var(--muted)}

.card button.avatar-action{width:35px;height:35px;border:0;padding:0;margin:0;border-radius:50%;background:#e9eddf;display:grid;place-items:center;font-size:11px}.avatar-action:hover{outline:2px solid var(--green);outline-offset:2px}.avatar-action:focus-visible{outline:3px solid var(--green);outline-offset:2px}.public-player-heading{display:flex;gap:18px;align-items:center;margin:20px 0}.public-player-heading h2{margin:0;font-size:25px;overflow-wrap:anywhere}.public-player-heading p{margin:8px 0}.public-player-availability{display:flex;flex-wrap:wrap;gap:8px}.public-player-availability span{background:#edf4dd;border-radius:20px;padding:8px 12px;font-size:12px}

.add-calendar-button{display:block;text-align:center;text-decoration:none;border:1px solid #bbcbb2;color:var(--ink);background:#edf0e8;padding:12px 16px;border-radius:9px;font-size:13px;font-weight:600;margin:12px 0}.add-calendar-button:hover{background:#e1e8d9}.add-calendar-button:focus-visible{outline:3px solid var(--green);outline-offset:2px}

.match-filters{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;margin:0 0 12px}.notification-list{display:grid;gap:12px}.notification{background:white;border:1px solid #dce1d6;border-radius:12px;padding:18px}.notification-unread{border-left:4px solid var(--green)}.notification p{color:var(--ink);margin-top:0}.notification small{letter-spacing:0;font-weight:400}.notification-actions{display:flex;align-items:center;gap:16px;margin-top:12px}.notification-actions span{font-size:12px;color:var(--muted)}#notificationCount,#menuNotificationCount{background:var(--lime);border-radius:20px;padding:2px 7px;color:var(--ink)}@media(max-width:760px){.match-filters{grid-template-columns:1fr 1fr}.header-actions{flex-wrap:wrap;justify-content:flex-end}.notification-actions{flex-wrap:wrap}}

.home-logo{background:none;border:0;color:var(--ink);padding:6px 0;text-align:left}.home-logo:focus-visible{outline:2px solid var(--green);outline-offset:5px;border-radius:4px}

.home-logo{display:flex;align-items:center;gap:9px}.home-logo img{width:40px;height:40px;object-fit:contain;flex-shrink:0}@media(max-width:760px){.home-logo{gap:6px}.home-logo img{width:32px;height:32px}}

.admin-actions .danger-button{color:#a32f36;border-color:#e3b7b9;background:#fff4f4}

.modal-feedback{position:sticky;top:0;z-index:1;background:#fff1f0;border:1px solid #e5b0b0;color:#8f2424;padding:12px 14px;border-radius:9px;font-size:14px;font-weight:600;line-height:1.5;margin:0 0 16px}.calendar-slot-unavailable{background:#eef0ed;border-color:#d0d5ce;color:#68736b;cursor:default}.legend-unavailable{color:#68736b}.start-time-option[data-availability="unavailable"] span{background:#eef0ed;border-color:#d0d5ce;color:#68736b}.calendar-legend{flex-wrap:wrap}
.start-time-option[data-availability="available"] input:checked+span{background:#e9f5e8;color:#205e39}.start-time-option[data-availability="occupied"] input:checked+span{background:#fbeaea;color:#a52d2d}.start-time-option[data-availability="unavailable"] input:checked+span,.start-time-option[data-availability="unknown"] input:checked+span{background:#eef0ed;color:#68736b}

.in-play-section{margin-top:24px;border:1px solid #d6dfcb;border-radius:12px;padding:18px}.in-play-section summary{cursor:pointer;font-size:20px;font-weight:700}.in-play-section summary span{font-size:13px;border-radius:20px;background:var(--lime);padding:3px 9px;margin-left:8px}.in-play-section[open] summary{margin-bottom:16px}

.history-row{flex-wrap:wrap;gap:8px}.rating-explanation{flex-basis:100%;font-size:11px;color:var(--muted)}
