@font-face{font-family:Manrope;src:url('/public/assets/manrope-regular.ttf') format('truetype');font-style:normal;font-weight:400 500;font-display:swap}
@font-face{font-family:Manrope;src:url('/public/assets/manrope-semibold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('/public/assets/manrope-bold.ttf') format('truetype');font-style:normal;font-weight:700 800;font-display:swap}
:root{--ground:#f7f8f7;--surface:#fff;--ink:#20241f;--muted:#686d67;--line:#e6e9e4;--tonal:#eef0eb;--accent:#d9ed9b;--green:#3f5f31;--positive-bg:#edf3e6;--warning-bg:#f7efdf;--warning-ink:#805b1f;--radius:16px;--gap:20px;--font:Manrope,Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button{border:0;background:none}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:4px}input:focus,select:focus,textarea:focus{outline:2px solid #657f50;border-color:transparent}button:disabled{opacity:.5}h1,h2,h3,p{margin:0}h1{font-size:29px;font-weight:600;line-height:1.25;letter-spacing:-1.2px}h2{font-size:16px;font-weight:600;letter-spacing:-.4px;line-height:1.35}h3{font-size:15px;font-weight:600;letter-spacing:-.25px}strong{font-weight:600}small{font-size:12px}img{display:block;max-width:100%}.icon{display:inline-block;flex-shrink:0;vertical-align:middle}button .icon{pointer-events:none}::selection{background:var(--accent);color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;z-index:100;top:12px;left:12px;padding:12px 20px;background:var(--ink);color:#fff;transform:translateY(-200%)}.skip:focus{transform:none}.sidebar{position:fixed;inset:0 auto 0 0;width:222px;background:var(--surface);border-right:1px solid var(--line);padding:32px 18px 16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:10px;margin:0 8px 44px}.brand>span{font-size:36px;font-weight:700;letter-spacing:-2.2px;line-height:.9}.brand-sub{display:block;font-size:11px;line-height:1.5;letter-spacing:2.2px;font-weight:600;margin-top:9px;margin-left:2px}.workspace-label{font-size:11px;color:var(--muted);margin:0 12px 13px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-item{height:44px;display:flex;align-items:center;gap:12px;padding:0 12px;color:#666b64;font-size:12px;border-radius:8px;transition:background-color .15s,color .15s}.nav-item .icon{width:18px;height:18px}.nav-item.active{background:var(--tonal);color:var(--ink);font-weight:600}.nav-item:hover{background:#f5f6f3;color:var(--ink)}.nav-arrow{margin-left:auto;font-size:17px}.sidebar-bottom{margin-top:auto;padding-top:36px}.club-note{border-radius:12px;background:#f4f5ef;padding:16px 14px 14px}.club-note .court-art{width:76px;height:42px;color:#86957a;margin-bottom:10px}.club-note strong{font-size:12px}.club-note p{font-size:11px;color:var(--muted);margin:7px 0 12px;line-height:1.65}.club-note .text-btn{font-size:11px}.local-status{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);margin:20px 10px 16px}.local-status>span{width:6px;height:6px;background:#728b5c;border-radius:50%}.info-button{border:1px solid #a7aea1;border-radius:50%;width:14px;height:14px;font-size:11px;line-height:12px;padding:0;margin-left:auto}.profile{display:flex;align-items:center;text-align:left;gap:9px;width:100%;border-top:1px solid var(--line);padding:16px 4px 0}.profile>span:nth-child(2){display:flex;flex-direction:column;min-width:0;gap:2px}.profile strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.profile small{font-size:11px;color:var(--muted)}.profile>.icon{width:14px;margin-left:auto}.avatar{flex-shrink:0;width:35px;height:35px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;background:#e9e6dd;color:#4b5041}.avatar.small{width:29px;height:29px;font-size:11px}.tone-1{background:#f1e6e3;color:#754c45}.tone-2{background:#e3ebef;color:#405d6b}.tone-3{background:#ece7f0;color:#655075}main{margin-left:222px;min-height:100svh;display:flex;flex-direction:column}.canvas{padding:0 36px 28px;width:100%;max-width:1380px;margin:0 auto;flex:1}.utility-bar{height:87px;display:flex;align-items:center;justify-content:space-between;gap:12px}.breadcrumb{font-size:11px;color:var(--muted);display:flex;gap:12px}.breadcrumb strong{font-weight:500;color:var(--ink)}.breadcrumb>span{color:#b0b5ad}.utility-right{display:flex;align-items:center;gap:20px}.role-switch{display:flex;padding:3px;border:1px solid var(--line);border-radius:999px;font-size:11px;gap:2px;background:#f0f2ee}.role-switch button{padding:6px 11px;border-radius:999px;color:var(--muted)}.role-switch button[aria-pressed=true]{background:#fff;color:var(--ink)}.top-avatar{padding:0}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:4px 0 27px;min-height:60px}.page-heading p{margin-top:8px;color:var(--muted);font-size:12px}.today-label{display:flex;align-items:center;gap:8px;font-size:11px;white-space:nowrap;color:#596052}.today-label .icon{width:15px;height:15px}.mobile-bar{display:none}.text-btn{font-size:11px;font-weight:500;display:inline-flex;align-items:center;gap:8px;padding:0;white-space:nowrap}.text-btn .icon{width:14px;height:14px}.text-btn:hover{color:var(--green)}.icon-btn{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.icon-btn:hover{background:var(--tonal)}.icon-btn .icon{width:16px;height:16px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.section-heading h2{font-size:14px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;min-width:0}.muted{color:var(--muted);font-size:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:40px;padding:10px 20px;font-size:12px;font-weight:500;border-radius:999px;white-space:nowrap}.btn .icon{width:16px;height:16px}.btn.primary{background:var(--ink);color:#fff}.btn.primary:hover{background:#3c4536}.btn.secondary{background:var(--tonal);color:var(--ink)}.btn.secondary:hover{background:#e3e7de}.btn.danger{background:#f8ece9;color:#873d30}.btn.danger:hover{background:#f2ded8}.btn.wide{width:100%}.btn:disabled{background:var(--tonal);color:#666b61;opacity:1;font-size:11px}.round-btn{width:44px;height:44px;background:#fff;color:var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.round-btn .icon{width:20px;height:20px;transform:rotate(-40deg)}.round-btn:hover{background:var(--accent)}
/* 12 columns share both canvas edges: at 1440px, 1146 = 12×77.17 + 11×20. */
.home-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap)}.span-8{grid-column:span 8}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-3{grid-column:span 3}.club-hero{position:relative;min-height:239px;border-radius:var(--radius);overflow:hidden;background:#3e534b;color:#fff;isolation:isolate}.club-hero>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 48%;z-index:-2}.hero-shade{position:absolute;inset:0;background:#0a1511;opacity:.31;z-index:-1}.hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 24px}.hero-top>span:first-child{font-size:15px;font-weight:600}.hero-location{display:block;font-size:11px;font-weight:400;opacity:.9;margin-top:2px}.photo-tag{font-size:11px;border:1px solid #ffffff60;border-radius:999px;padding:5px 9px;background:#0a151133}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;padding:24px;position:absolute;left:0;bottom:0;right:0}.hero-bottom h2{font-size:31px;line-height:1.15;letter-spacing:-1px;font-weight:500}.next-session{background:#252a24;color:white;border-radius:var(--radius);padding:23px 22px 0;display:flex;flex-direction:column;min-height:239px}.next-session .section-heading{margin-bottom:22px}.next-session .section-heading h2{font-weight:500;font-size:12px}.status-dark{font-size:11px;color:#e0edc2;display:flex;align-items:center;gap:5px}.status-dark:before{content:'';width:4px;height:4px;background:#d2e9a3;border-radius:50%}.session-day{font-size:11px;color:#c4c9c0}.session-time{font-size:34px;font-weight:400;letter-spacing:-1.5px;margin:5px 0 10px;line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums}.session-time>span{font-size:18px;color:#aab1a4;letter-spacing:-.4px}.session-place{font-size:11px;display:flex;gap:8px;align-items:center;color:#d2d6ce}.session-place .icon{width:14px;height:14px}.session-place>span{color:#798172}.session-footer{border-top:1px solid #ffffff21;display:flex;justify-content:space-between;align-items:center;padding:14px 0;margin-top:auto;font-size:11px;color:#e7ebdf}.session-footer>.icon{width:16px;height:16px}.session-empty{padding-bottom:24px}.session-empty p{font-size:25px;letter-spacing:-.8px;margin-bottom:10px}.session-empty span{color:#c5ccbe;font-size:12px}.date-strip{display:flex;align-items:center;gap:4px;margin:2px -7px 20px}.dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;flex:1;min-width:0}.date-item{display:flex;flex-direction:column;align-items:center;padding:8px 5px;gap:4px;border-radius:9px;min-width:0;font-variant-numeric:tabular-nums}.date-item>span{font-size:11px;color:var(--muted)}.date-item>strong{font-size:17px;font-weight:500;line-height:1.2}.date-item.selected{background:var(--ink);color:white}.date-item.selected>span{color:#d4d7ce}.date-item:hover:not(.selected){background:var(--tonal)}.date-month{display:none}.compact{margin-top:0;margin-bottom:17px}.compact .date-item{padding:7px 4px;gap:4px}.compact .date-item>strong{font-size:15px}.compact .icon-btn{width:22px}.quick-courts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-court{text-align:left;border:1px solid var(--line);padding:0 10px 11px;border-radius:9px;overflow:hidden}.quick-court:hover{border-color:#b2bea7}.court-thumb{height:57px;margin:0 -10px 9px;background:#ebeee6;display:flex;align-items:center;justify-content:center}.court-thumb .court-art{height:46px;width:88px;stroke-width:1.5;color:#818e75;transform:perspective(150px) rotateX(25deg) rotateZ(-8deg)}.court-thumb.court-2{background:#e7eceb}.court-thumb.court-2 .court-art{color:#7e9292;transform:perspective(150px) rotateX(25deg) rotateZ(5deg)}.court-thumb.court-3{background:#edece6}.court-thumb.court-3 .court-art{color:#96937e;transform:perspective(150px) rotateX(25deg) rotateZ(-5deg)}.court-art{stroke:currentColor;stroke-width:1.5}.court-art .net{stroke-width:2.5}.quick-court-heading{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:11px}.quick-court-heading .icon{width:13px;height:13px;transform:rotate(-40deg)}.quick-court-info{display:flex;justify-content:space-between;gap:5px;margin-top:4px;font-size:11px;color:var(--muted)}.quick-court-info>span:last-child{color:var(--ink);white-space:nowrap}.quick-court-info small{font-size:11px;color:var(--muted)}.tournament-preview{display:flex;flex-direction:column}.event-feature{padding:0;display:flex;flex-direction:column;flex:1;text-align:left;min-height:0}.event-art{position:relative;overflow:hidden;background:#e6ebdd;border-radius:10px;width:100%;flex:1;min-height:135px;color:#849373;isolation:isolate}.event-art>.court-art{position:absolute;inset:15px -30px 0 auto;width:230px;height:150px;transform:rotate(-25deg);opacity:.7;z-index:-1}.event-symbol{font-size:82px;line-height:1;font-weight:600;color:#3f5137;position:absolute;left:24px;top:12px;letter-spacing:-10px}.event-symbol>span{font-size:70px;font-weight:400;letter-spacing:-17px}.event-art-caption{position:absolute;bottom:12px;left:17px;font-size:11px;color:#46533c}.event-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:13px;width:100%}.event-caption h3{font-size:13px}.event-caption p{font-size:11px;color:var(--muted);margin-top:4px}.event-caption>.icon{width:15px}.mini-ranking{margin-top:-3px}.rank-row{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:11px}.rank-number{width:15px;color:var(--muted);font-variant-numeric:tabular-nums}.rank-name{flex:1}.rank-points{white-space:nowrap;font-variant-numeric:tabular-nums}.rank-points small{color:var(--muted);font-size:11px}.your-position{padding-top:10px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted);margin-top:6px}.your-position strong{color:var(--ink)}.your-position>span{margin-left:auto}.membership-summary{display:flex;flex-direction:column;height:calc(100% - 35px);align-items:flex-start;padding-top:4px}.status{display:inline-flex;align-items:center;gap:5px;background:var(--positive-bg);color:#3e6030;padding:3px 8px;border-radius:999px;font-size:11px;line-height:1.6;white-space:nowrap;max-width:100%}.status.live:before{content:'';width:5px;height:5px;background:currentColor;border-radius:50%}.status.warning{color:var(--warning-ink);background:var(--warning-bg)}.status.neutral{color:#656b60;background:var(--tonal)}.membership-summary h3{font-size:14px;margin-top:15px;overflow-wrap:anywhere}.membership-summary p{font-size:11px;color:var(--muted);margin:5px 0 20px}.membership-summary .text-btn{margin-top:auto}.payment-summary{padding:5px 0}.payment-summary>span{font-size:11px;color:var(--muted)}.payment-summary>strong{display:block;font-size:32px;font-weight:400;letter-spacing:-1px;font-variant-numeric:tabular-nums;margin-top:4px}.payment-summary p{font-size:11px;color:var(--muted);margin-top:12px}footer{display:flex;justify-content:space-between;gap:15px;font-size:11px;color:var(--muted);padding:14px 36px 23px;width:100%;max-width:1380px;margin:0 auto}.footer-dot{margin:0 7px}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.scheduler .date-item{padding:11px 5px}.scheduler .date-month{display:block;font-size:11px}.scheduler>.section-heading{margin-bottom:20px}.schedule-controls{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 20px}.tabs{display:flex;align-items:center;gap:4px;max-width:100%;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs>button{padding:8px 14px;border-radius:999px;font-size:11px;color:var(--muted);white-space:nowrap;min-height:34px}.tabs>button.selected{background:var(--ink);color:#fff}.tabs>button:hover:not(.selected){background:var(--tonal)}.legend{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px;white-space:nowrap}.legend i{width:7px;height:7px;background:#e4edd7;border:1px solid #7b9168;border-radius:2px;margin-left:5px}.legend i.booked{background:#edeeeb;border-color:#b5b9b1}.schedule-table{width:100%;border-collapse:separate;border-spacing:6px 8px;table-layout:fixed;margin:0 -6px}.schedule-table thead th{font-size:12px;font-weight:600;text-align:center;padding:5px 0 14px}.schedule-table thead th:first-child{width:49px;text-align:left;font-size:11px;font-weight:400;color:var(--muted)}.schedule-table thead th>span{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:5px}.schedule-table tbody th{text-align:left;font-size:11px;white-space:nowrap;font-weight:500;font-variant-numeric:tabular-nums}.schedule-table tbody th>small{display:block;font-size:11px;color:var(--muted);font-weight:400}.schedule-table td{padding:0}.slot{min-height:44px;display:flex;width:100%;align-items:center;justify-content:center;gap:5px;font-size:11px;border-radius:7px;background:#f0f2ed;color:#777d70;padding:6px 3px;word-break:normal}.slot .icon{width:12px;height:12px}.slot.free{background:#f0f5e9;color:#456137;border:1px solid #e2ead8}.slot.free:hover{background:#e2edce;border-color:#a1b88a}.slot.booked{background:#eeefec;color:#62685b}.slot.blocked{background:#eeefec;color:#696c65}.slot.past,.slot.closed{opacity:1;background:#f7f8f5;color:#6c7166}.slot.mine{background:#e4ecd8;color:#3e582d;font-weight:600}.schedule-note{font-size:11px;color:var(--muted);margin-top:14px;line-height:1.8}.booking-aside{min-width:0}.booking-list-row{display:flex;align-items:center;gap:11px;text-align:left;padding:14px 0;width:100%;border-bottom:1px solid var(--line)}.booking-list-row:last-child{border-bottom:0;padding-bottom:0}.booking-list-row>.icon{width:13px;margin-left:auto}.booking-list-row strong{font-size:11px}.booking-list-row small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.date-square{width:42px;height:47px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;background:var(--tonal);flex-shrink:0}.date-square strong{font-size:17px;line-height:1.2;font-weight:500}.date-square>span{font-size:11px;color:var(--muted)}.quiet-note{display:flex;gap:12px;margin:25px 0;align-items:flex-start;padding:0 4px;color:var(--muted)}.quiet-note>.icon{width:19px;height:19px;color:#75836b;margin-top:2px}.quiet-note strong{color:var(--ink);font-size:12px;font-weight:500}.quiet-note p{font-size:11px;line-height:1.8;max-width:620px;margin-top:5px}.filter-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px}.filter-row>.muted{white-space:nowrap}.tournaments-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.tournament-card{background:#fff;border-radius:16px;border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;min-width:0}.tournament-cover{height:200px;position:relative;overflow:hidden;display:block;width:100%;padding:0;background:#e7ecdf;text-align:left}.tournament-cover>img{width:100%;height:100%;object-fit:cover;object-position:50% 65%;transition:transform .3s}.tournament-cover:hover>img{transform:scale(1.035)}.tournament-cover>.status{position:absolute;top:14px;left:14px;background:#fff;color:#31452a;font-size:11px}.tournament-cover>.court-art{width:100%;height:90%;position:absolute;right:-42%;top:10px;transform:rotate(-30deg);color:#b1bda3}.cover-1{background:#e9eae5}.cover-2{background:#dce5d4}.cover-word{display:flex;flex-direction:column;position:absolute;bottom:22px;left:24px;font-size:40px;font-weight:500;letter-spacing:-2px;color:#3d4e32;line-height:1.2}.cover-word>span{font-size:11px;letter-spacing:0;margin-top:4px}.tournament-body{padding:22px;display:flex;flex-direction:column;flex:1}.event-meta{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:7px;margin-bottom:12px}.event-meta .icon{width:13px;height:13px}.tournament-body h2{font-size:21px;letter-spacing:-.7px;margin-bottom:10px}.tournament-body>p{font-size:12px;color:var(--muted);line-height:1.8;min-height:65px;margin-bottom:20px}.event-facts{display:flex;flex-wrap:wrap;gap:6px;font-size:11px;margin-top:auto;margin-bottom:20px}.event-facts>span{padding:4px 9px;background:var(--tonal);border-radius:4px}.capacity{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.capacity strong{color:var(--ink);font-size:14px}.capacity-bar{height:4px;background:var(--tonal);border-radius:4px;overflow:hidden;margin:10px 0 24px}.capacity-bar>span{display:block;height:100%;background:#8b9f72}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.back-link{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);margin-bottom:20px;padding:0}.back-link>.icon{width:14px;height:14px}.detail-description{line-height:1.8;margin-bottom:28px}.match-row{padding:16px 0;border-top:1px solid var(--line)}.match-row:first-child{border-top:0;padding-top:0}.match-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;color:var(--muted);margin-bottom:14px}.match-meta .muted{font-size:11px}.live-text{color:var(--green)}.match-players{display:flex;gap:12px;align-items:center}.match-player{display:flex;gap:9px;align-items:center;flex:1;font-size:12px;min-width:0}.match-player>span:not(.avatar){overflow-wrap:anywhere}.match-player.winner{font-weight:600}.match-player>.icon{width:14px;color:var(--green);margin-left:auto}.vs{font-size:11px;color:var(--muted)}.match-score{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-left:38px}.match-score>strong{font-size:11px;font-weight:500;font-variant-numeric:tabular-nums}.participants>div{display:flex;gap:10px;align-items:center;padding:9px 0;font-size:11px}.participants small{color:var(--muted)}.data-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.data-table th{font-size:11px;font-weight:400;color:var(--muted);padding:12px 10px 16px;white-space:nowrap}.data-table td{padding:17px 10px;border-top:1px solid var(--line)}.data-table td:first-child,.data-table th:first-child{padding-left:4px}.data-table td:last-child,.data-table th:last-child{padding-right:4px}.data-table small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.num{text-align:right;font-variant-numeric:tabular-nums}.person-cell{display:flex;align-items:center;gap:12px;min-width:150px}.person-cell strong{font-size:12px}.person-cell small{display:none}.rankings-panel{padding:8px 24px}.ranking-table .rank-position{font-size:16px;color:var(--muted);font-weight:400;width:60px;padding-right:24px}.ranking-table .points{font-weight:600;font-size:14px}.self-row{background:#f4f6ef}.self-row td:first-child{border-radius:8px 0 0 8px}.self-row td:last-child{border-radius:0 8px 8px 0}.you-label{font-size:11px;font-weight:400;color:var(--green);margin-left:6px}.level-tag{font-size:11px;color:var(--muted)}.position-label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:12px}.position-label strong{font-size:24px;font-weight:500;color:var(--ink)}.ranking-explainer{margin:30px 4px;font-size:11px;color:var(--muted);max-width:700px;line-height:1.8}.ranking-explainer>div{display:flex;align-items:center;gap:10px;color:var(--ink);margin-bottom:8px}.ranking-explainer .icon{width:16px;height:16px}.ranking-explainer>small{font-size:11px;display:block;margin-top:8px}.current-enrollment{border-radius:16px;background:#eaf0e2;display:flex;align-items:center;gap:25px;padding:24px;margin-bottom:36px}.enrollment-art{display:flex;align-items:center;justify-content:center;align-self:stretch;width:110px;flex-shrink:0;color:#7f926c}.enrollment-art>.court-art{width:110px;transform:rotate(-15deg)}.current-enrollment h2{font-size:24px;margin:10px 0 6px;letter-spacing:-.8px}.current-enrollment p{font-size:12px;color:#4d5a42}.current-enrollment small{font-size:11px;color:#58644d;display:block;margin-top:8px}.enrollment-actions{display:flex;flex-direction:column;gap:12px;align-items:center;margin-left:auto}.plans-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.plan-card{background:white;border:1px solid var(--line);border-radius:16px;padding:24px;display:flex;flex-direction:column}.plan-card.current{border-color:#b0c194}.plan-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);margin-bottom:24px}.plan-top .icon{width:20px;height:20px;color:#758765}.plan-card h2{font-size:21px;letter-spacing:-.75px}.plan-card>p{font-size:11px;color:var(--muted);margin-top:8px}.plan-price{font-size:32px;letter-spacing:-1px;display:flex;align-items:baseline;gap:5px;margin:24px 0;font-variant-numeric:tabular-nums}.plan-price>span{font-size:11px;color:var(--muted);letter-spacing:0}.plan-card ul{padding:0;list-style:none;margin:0 0 30px;font-size:11px;display:flex;flex-direction:column;gap:13px;color:var(--muted)}.plan-card li{display:flex;align-items:center;gap:8px}.plan-card li .icon{width:13px;height:13px;color:#6b8058}.plan-card .btn{margin-top:auto}.finance-summary,.admin-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:34px;padding:24px 0;background:#eef1ea;border-radius:16px}.finance-summary>div,.admin-stats>div{display:flex;flex-direction:column;padding:0 24px;border-left:1px solid #d8dfd1;gap:10px;min-width:0}.finance-summary>div:first-child,.admin-stats>div:first-child{border:0}.finance-summary span,.admin-stats span{font-size:11px;color:#59634f}.finance-summary strong,.admin-stats strong{font-size:27px;letter-spacing:-1px;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.2}.finance-summary>div:last-child strong{font-size:21px;overflow-wrap:anywhere}.finance-summary small,.admin-stats small{font-size:11px;color:#647058}.row-actions{text-align:right}.row-actions .text-btn{font-size:11px}.nowrap{white-space:nowrap}.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:10px}.admin-stats>div{padding:0 21px}.admin-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}.admin-agenda-row{display:flex;align-items:center;gap:13px;width:100%;text-align:left;border-top:1px solid var(--line);padding:18px 0}.admin-agenda-row:nth-child(2){border:0}.agenda-hour{font-size:15px;font-variant-numeric:tabular-nums}.admin-agenda-row small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.admin-agenda-row strong{font-size:12px}.admin-agenda-row>.status{margin-left:auto;font-size:11px}.admin-agenda-row>.icon{width:13px;height:13px}.pending-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-top:1px solid var(--line)}.pending-row:nth-child(2){border:0}.pending-row>div{flex:1}.pending-row strong{font-size:11px}.pending-row small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.pending-row>strong{font-size:13px;font-variant-numeric:tabular-nums}.admin-club-photo{position:relative;border-radius:16px;overflow:hidden;min-height:320px;isolation:isolate}.admin-club-photo>img{position:absolute;width:100%;height:100%;object-fit:cover;z-index:-2}.admin-club-photo:after{content:'';background:#14211966;position:absolute;inset:0;z-index:-1}.admin-club-photo>div{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;height:100%;padding:28px;min-height:320px}.admin-club-photo h2{color:white;font-size:30px;font-weight:500;letter-spacing:-1px;margin-bottom:20px}.admin-club-photo .btn.secondary{background:white}.result-action{margin:0 0 16px 38px}.admin-grid .match-row{border-top:1px solid var(--line);padding-top:16px}.admin-grid .section-heading+.match-row{border-top:0}.search-field{display:flex;align-items:center;gap:9px;background:white;border:1px solid var(--line);border-radius:999px;padding:9px 14px;width:340px;max-width:100%}.search-field>.icon{width:15px;height:15px;color:var(--muted)}.search-field input{border:0;min-width:0;width:100%;background:transparent;font-size:11px;outline:none}.search-field:focus-within{outline:2px solid var(--green);outline-offset:2px}input::placeholder,textarea::placeholder{color:#70766a}.settings-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:55px;padding:28px 0;border-top:1px solid var(--line)}.settings-row>div:first-child h2{margin:4px 0 10px}.settings-row>div:first-child p{font-size:12px;color:var(--muted);line-height:1.8;max-width:300px}.form-grid{display:flex;flex-direction:column;gap:20px;background:#eff1ec;border:0;align-items:flex-start}.form-grid>.field,.form-grid>.two-fields{width:100%}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;min-width:0;margin:0 0 17px}.form-grid>.field{margin:0}.field input,.field select,.field textarea{border:1px solid #dce1d7;border-radius:8px;min-height:43px;padding:10px 12px;background:#fff;color:var(--ink);font-size:12px;width:100%;min-width:0;max-width:100%}.field textarea{resize:vertical}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.two-fields>.field{margin-bottom:0}.day-checks{padding:0;border:0;display:flex;gap:6px;width:100%;margin:0}.day-checks legend{font-size:12px;margin-bottom:10px}.day-checks label{position:relative;flex:1;min-width:0;cursor:pointer}.day-checks input{position:absolute;opacity:0}.day-checks span{display:flex;width:100%;height:36px;border-radius:6px;align-items:center;justify-content:center;font-size:12px;background:white;color:var(--muted);border:1px solid var(--line)}.day-checks input:checked+span{background:#2c3527;color:white;border-color:#2c3527}.day-checks input:focus-visible+span{outline:2px solid var(--green);outline-offset:3px}.toggle-row{display:flex;align-items:center;width:100%;position:relative;cursor:pointer}.toggle-row>span:first-child{flex:1}.toggle-row strong{font-size:12px;font-weight:500}.toggle-row small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.toggle-row input{position:absolute;right:0;opacity:0}.toggle{height:21px;width:36px;border-radius:999px;background:#b7bdb1;position:relative}.toggle:after{content:'';position:absolute;width:15px;height:15px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform .15s}.toggle-row input:checked+.toggle{background:#4b6340}.toggle-row input:checked+.toggle:after{transform:translateX(15px)}.toggle-row input:focus-visible+.toggle{outline:2px solid var(--green);outline-offset:3px}.settings-save{display:flex;justify-content:flex-end;align-items:center;gap:20px;margin:10px 0 20px}.form-static{display:flex;flex-direction:column;font-size:12px;gap:8px}.form-static small{font-size:11px;color:var(--muted)}.empty{padding:25px 8px;text-align:center;font-size:12px;line-height:1.8;color:var(--muted)}.empty .text-btn{margin:16px auto 0}.form-error{color:#9a3429;background:#f9ede8;border-radius:6px;font-size:12px;padding:10px 12px;margin:16px 0 0}.form-error[hidden]{display:none}#toast{position:fixed;bottom:24px;left:calc(50% + 111px);transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:90;background:#252e21;color:#fff;padding:14px 22px;border-radius:10px;font-size:12px;max-width:calc(100vw - 40px);transition:transform .2s,opacity .2s;box-shadow:0 5px 25px #17201120}#toast.visible{opacity:1;transform:translate(-50%,0)}dialog{background:white;color:var(--ink);border:0;border-radius:20px;padding:26px;width:460px;max-width:calc(100vw - 32px);max-height:calc(100svh - 48px);box-shadow:0 25px 100px #0d1c2030;overscroll-behavior:contain}dialog::backdrop{background:#16201766}.modal-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px}.modal-heading h2{font-size:21px;letter-spacing:-.8px}.modal-heading .icon-btn{background:var(--tonal)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.modal-description{font-size:12px;color:var(--muted);line-height:1.9;margin:14px 0 22px}.booking-modal-court{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#e9efdf;color:#667c50;padding:18px 22px;border-radius:12px;margin-bottom:20px}.booking-modal-court .court-art{width:130px;height:70px;transform:rotate(-7deg)}.booking-modal-court>span{font-size:24px;letter-spacing:-.7px;color:#405333;white-space:nowrap}.modal-facts{display:flex;flex-direction:column;gap:14px;margin:10px 0 22px}.modal-facts>div{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.modal-facts>div>span:first-child{color:var(--muted)}.modal-facts strong{text-align:right;font-weight:500;font-variant-numeric:tabular-nums}.field-hint{font-size:11px;line-height:1.8;color:var(--muted);margin-top:8px}.result-players{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px;background:var(--tonal);border-radius:10px;margin-bottom:24px;font-size:12px}.result-players>span{font-size:11px;color:var(--muted)}.payment-modal-amount{font-size:39px;font-weight:400;letter-spacing:-1.5px;font-variant-numeric:tabular-nums}.simulation-notice{display:flex;gap:12px;padding:16px;background:#f1f4eb;border-radius:10px;font-size:11px;color:#5b6a4f;line-height:1.8}.simulation-notice>.icon{width:18px;height:18px;margin-top:2px}.checkbox-line{display:flex;align-items:center;gap:10px;font-size:12px;margin:12px 0}.checkbox-line input{accent-color:var(--green);width:16px;height:16px}.contact-detail{display:flex;align-items:center;gap:12px;padding:10px 0;font-size:13px;overflow-wrap:anywhere}.contact-detail>.icon{width:16px;height:16px}
@media(min-width:1600px){.canvas{padding-top:8px}.club-hero,.next-session{min-height:270px}.hero-bottom h2{font-size:34px}.quick-courts .court-thumb{height:75px}.quick-court-info{font-size:11px}.quick-court-heading{font-size:13px}.event-art{min-height:155px}.hero-top>span:first-child{font-size:18px}.session-time{font-size:37px}.session-footer{padding:18px 0}.session-day{margin-top:15px}}
@media(max-width:1200px){.sidebar{width:200px;padding-left:12px;padding-right:12px}.brand{margin-left:10px}.brand>span{font-size:32px}.brand-sub{font-size:7px}.brand img{width:34px;height:34px}.nav-item{font-size:11px;gap:9px;padding-left:10px}main{margin-left:200px}.canvas{padding-left:26px;padding-right:26px}.utility-bar{height:75px}.page-heading{margin-bottom:22px}.page-heading h1{font-size:25px}.today-label{font-size:11px}.home-grid{gap:16px}.panel{padding:17px}.session-time{font-size:29px}.session-time>span{font-size:16px}.next-session{padding:20px 17px 0}.next-session .section-heading{gap:4px}.next-session .section-heading h2{font-size:11px}.status-dark{font-size:11px}.event-art{min-height:126px}.club-hero,.next-session{min-height:230px}.hero-top{padding:20px}.hero-bottom{padding:20px}.hero-bottom h2{font-size:29px}.photo-tag{font-size:11px}.quick-court-info{flex-wrap:wrap;gap:1px;font-size:11px}.quick-court-info>span:last-child{margin-left:auto}.quick-court{padding-left:8px;padding-right:8px}.quick-courts{gap:8px}.hero-top>span:first-child{font-size:13px}.quick-court-heading{font-size:11px}.section-heading h2{font-size:13px}.section-heading>.text-btn{font-size:11px;gap:4px}.tournament-body{padding:18px}.tournament-body h2{font-size:18px}.tournament-body>p{font-size:11px}.booking-layout,.detail-layout{grid-template-columns:minmax(0,1fr) 250px}.tabs>button{padding-left:10px;padding-right:10px}.booking-aside .panel{padding:16px}.booking-list-row{gap:8px}.booking-list-row strong{font-size:11px}.booking-list-row small{font-size:11px}.legend{display:none}.date-strip{gap:0}.date-strip .icon-btn{width:24px}.data-table{font-size:11px}.data-table td,.data-table th{padding-left:8px;padding-right:8px}.finance-summary{gap:8px}.plan-card{padding:20px}.plan-card h2{font-size:18px}.plan-card ul{font-size:11px}.plan-card .btn:disabled{font-size:11px}.finance-summary strong{font-size:24px}.finance-summary>div:last-child strong{font-size:18px}.admin-stats{gap:0}.admin-stats>div{padding:0 16px}.admin-stats strong{font-size:23px}.admin-stats small{font-size:11px}.admin-agenda-row{gap:8px}.admin-agenda-row>.status{display:none}.admin-grid{grid-template-columns:1.2fr 1fr}.admin-grid .match-players{gap:8px}.admin-grid .match-player{font-size:11px;gap:6px}.settings-row{gap:30px}#toast{left:calc(50% + 100px)}}
@media(max-width:1000px){.sidebar{display:none}.mobile-bar{display:flex;position:sticky;top:0;z-index:40;align-items:center;justify-content:space-between;height:62px;background:white;border-bottom:1px solid var(--line);padding:0 24px}.mobile-bar .brand{margin:0;gap:8px}.mobile-bar .brand>span{font-size:28px}.mobile-bar .icon-btn{width:40px;height:40px}.sidebar.mobile-open{display:flex;top:62px;width:265px;box-shadow:20px 0 60px #1a241c20;padding-top:25px}.sidebar.mobile-open .brand{display:none}.sidebar.mobile-open .nav-item{font-size:13px;height:45px}.sidebar.mobile-open .workspace-label{font-size:12px}.sidebar.mobile-open .club-note{display:none}.sidebar.mobile-open .sidebar-bottom{padding-top:20px}.sidebar.mobile-open .profile strong{font-size:12px;max-width:160px}.sidebar.mobile-open .profile small{font-size:11px}main{margin-left:0;min-height:calc(100svh - 62px)}.canvas{padding-left:24px;padding-right:24px}.utility-bar{height:64px}.home-grid{gap:16px}.club-hero,.next-session{min-height:235px}.home-grid>.span-5{grid-column:span 5}.home-grid>.span-3{grid-column:span 3}.quick-court-info{font-size:11px}.booking-layout,.detail-layout{grid-template-columns:minmax(0,1fr) 255px}.role-switch{font-size:11px}#toast{left:50%}footer{padding-left:24px;padding-right:24px}.tournament-cover{height:180px}.tournament-body{padding:17px}.tournaments-grid,.plans-grid{gap:14px}.tournament-body h2{font-size:17px}.plan-card{padding:18px}.plan-card h2{font-size:17px}.plan-price{font-size:27px}.plan-price>span{font-size:11px}.current-enrollment{gap:20px}.enrollment-art{width:85px}.current-enrollment h2{font-size:21px}.current-enrollment small{font-size:11px}.settings-row{gap:40px}.data-table td{padding-top:18px;padding-bottom:18px}}
@media(max-width:760px){.home-grid>.span-8{grid-column:span 7}.home-grid>.span-4{grid-column:span 5}.home-grid>.span-5{grid-column:span 7}.home-grid>.span-3{grid-column:span 5}.home-grid>.span-4:last-child{grid-column:span 12}.home-grid>.span-4:last-child .payment-summary{display:flex;flex-wrap:wrap;align-items:center;gap:15px}.home-grid>.span-4:last-child .payment-summary>strong{margin-top:0;font-size:26px}.home-grid>.span-4:last-child .payment-summary>p{margin:0 0 0 auto}.hero-top{padding:17px}.hero-bottom{padding:17px}.hero-bottom h2{font-size:27px}.photo-tag{display:none}.next-session{padding:19px 18px 0}.session-time{font-size:30px}.next-session .section-heading{margin-bottom:30px}.next-session .section-heading h2{font-size:12px}.next-session .status-dark{font-size:11px}.session-day{font-size:11px}.page-heading{align-items:flex-start}.today-label{display:none}.page-heading h1{font-size:25px}.quick-courts{gap:6px}.quick-court{padding:0 6px 10px}.quick-court-heading{font-size:11px}.quick-court-info{font-size:11px}.quick-court-info>span:last-child{display:none}.court-thumb{margin-left:-6px;margin-right:-6px}.compact .icon-btn{display:none}.compact .date-item{padding:6px 3px}.compact .date-item>span{font-size:11px}.booking-preview .section-heading>.text-btn{font-size:11px;gap:2px}.event-art{min-height:130px}.event-symbol{font-size:76px}.event-caption p{font-size:11px}.tournaments-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tournament-card:last-child{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr}.tournament-card:last-child .tournament-cover{height:100%;min-height:260px}.tournament-body h2{font-size:19px}.tournament-body>p{font-size:12px}.tournament-cover{height:175px}.booking-layout{grid-template-columns:1fr}.booking-aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.booking-aside>.quiet-note{margin-top:5px;padding:20px}.schedule-controls .legend{display:flex}.detail-layout{grid-template-columns:1fr}.detail-layout>aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.current-enrollment{padding:20px}.current-enrollment .enrollment-art{display:none}.current-enrollment h2{font-size:21px}.plans-grid{grid-template-columns:1fr}.plan-card{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;padding:24px}.plan-top{grid-column:span 2;margin-bottom:14px}.plan-card>h2{font-size:22px}.plan-card>p{grid-column:1;font-size:12px}.plan-card>.plan-price{grid-column:1;margin:20px 0}.plan-card ul{grid-column:2;grid-row:2/span 3;font-size:11px;justify-content:center;margin:0}.plan-card>.btn{grid-column:span 2;margin-top:22px}.finance-summary{padding:20px 0}.finance-summary>div{padding:0 16px}.finance-summary strong{font-size:23px}.finance-summary>div:last-child strong{font-size:17px}.finance-summary span{font-size:11px}.payments-panel{padding:15px}.payments-panel .data-table td{padding-left:5px;padding-right:5px;font-size:11px}.payments-panel .data-table td:first-child{max-width:160px}.payments-panel .row-actions .text-btn{font-size:11px;gap:3px}.payments-panel .row-actions .text-btn>.icon{display:none}.payments-panel .data-table .nowrap{white-space:normal}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:25px}.admin-stats>div:nth-child(3){border:0}.admin-stats>div{padding-left:24px}.admin-stats strong{font-size:27px}.admin-grid{grid-template-columns:1fr 1fr}.admin-grid>.panel:first-child{grid-column:span 2}.admin-grid>.panel:nth-child(3){grid-column:span 2;grid-row:2}.admin-grid>.panel:nth-child(2){grid-column:span 2}.admin-club-photo{grid-column:span 2;min-height:220px}.admin-club-photo>div{min-height:220px}.admin-grid .match-player{font-size:12px}.admin-grid .match-players{gap:12px}.admin-grid .match-player{gap:10px}.admin-agenda-row>.status{display:inline-flex}.settings-row{grid-template-columns:1fr;gap:18px;padding-top:24px}.settings-row>div:first-child p{max-width:500px}.settings-row>div:first-child h2{font-size:17px}.settings-save{flex-direction:column;align-items:flex-end}.table-scroll{overflow-x:auto;scrollbar-width:thin}.ranking-table{min-width:580px}.ranking-table .person-cell small{display:block}.search-field{width:300px}.search-field input{font-size:12px}.result-action{font-size:11px}}
@media(max-width:500px){.mobile-bar{height:58px;padding:0 17px}.sidebar.mobile-open{top:58px;width:100%;bottom:0;box-shadow:none}.canvas{padding:0 16px 20px}.utility-bar{height:60px;gap:8px}.breadcrumb{font-size:11px;gap:6px}.utility-right{gap:8px}.top-avatar{display:none}.role-switch{font-size:11px;gap:0;padding:3px}.role-switch button{padding:6px 9px}.page-heading{margin-top:7px;margin-bottom:23px;gap:12px;flex-wrap:wrap;min-height:0}.page-heading h1{font-size:24px;letter-spacing:-.85px;line-height:1.3}.page-heading p{font-size:11px;line-height:1.8;margin-top:6px}.page-heading>.btn{min-height:38px;font-size:11px;padding:9px 15px}.home-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.home-grid>.span-8,.home-grid>.span-4,.home-grid>.span-5,.home-grid>.span-3{grid-column:span 12}.club-hero{min-height:228px}.hero-top{padding:20px}.hero-top>span:first-child{font-size:14px}.hero-location{font-size:11px}.hero-bottom{padding:20px}.hero-bottom h2{font-size:30px}.hero-bottom .round-btn{width:41px;height:41px}.photo-tag{display:block;font-size:11px;padding:4px 7px}.next-session{min-height:190px;padding:20px 20px 0}.next-session .section-heading{margin-bottom:15px}.next-session .section-heading h2{font-size:13px}.next-session .status-dark{font-size:11px}.session-time{font-size:32px;margin:6px 0 8px}.session-time>span{font-size:19px}.session-day{font-size:11px}.session-place{font-size:11px;margin-bottom:17px}.session-footer{padding:13px 0;font-size:11px}.panel{padding:18px;border-radius:14px}.section-heading{margin-bottom:18px}.section-heading h2{font-size:14px}.section-heading>.text-btn{font-size:11px;gap:5px}.compact .icon-btn{display:flex;width:20px}.compact .dates{gap:2px}.compact .date-item{padding:8px 1px}.compact .date-item>span{font-size:11px}.compact .date-item>strong{font-size:16px}.quick-courts{gap:8px}.quick-court{padding:0 8px 11px}.quick-court-heading{font-size:11px}.quick-court-info{font-size:11px}.quick-court-info>span:last-child{display:inline}.court-thumb{margin:0 -8px 10px;height:60px}.quick-court-info{gap:2px;flex-wrap:wrap}.quick-court-info>span:last-child{margin:0}.tournament-preview .event-art{min-height:160px}.event-symbol{top:20px;left:25px;font-size:85px}.event-art>.court-art{width:280px;height:180px;right:-15px;top:0}.event-caption h3{font-size:15px}.event-caption p{font-size:11px}.rank-row{font-size:12px;padding:10px 0}.rank-number{width:20px}.rank-points small{font-size:11px}.your-position{font-size:11px;margin-top:10px;padding-top:13px}.membership-summary{height:auto;display:grid;grid-template-columns:1fr auto;column-gap:10px;padding-top:0}.membership-summary>.status{justify-self:start;font-size:11px}.membership-summary>h3{grid-row:2;font-size:17px;margin-top:12px}.membership-summary>p{grid-row:3;margin-bottom:0;font-size:11px}.membership-summary>.text-btn{grid-column:2;grid-row:1/4;align-self:center}.home-grid>.span-4:last-child .payment-summary{gap:5px 12px}.home-grid>.span-4:last-child .payment-summary>p{flex:1 0 100%;font-size:11px;margin:6px 0 0}.home-grid>.span-4:last-child .payment-summary>strong{margin-left:auto;font-size:29px}.payment-summary>span{font-size:12px}footer{padding:12px 16px 22px;font-size:11px}footer>span:last-child{display:none}.booking-layout,.detail-layout{gap:16px}.scheduler{padding:17px 12px}.scheduler>.section-heading{padding:0 5px}.scheduler .date-strip{margin:0 -4px 22px}.scheduler .date-item{padding:10px 3px;gap:5px}.scheduler .date-strip>.icon-btn{width:22px}.scheduler .date-item>span{font-size:11px}.scheduler .date-item>strong{font-size:17px}.schedule-controls{gap:4px;flex-wrap:wrap;margin-bottom:15px}.tabs>button{font-size:11px;padding:9px 12px;min-height:36px}.schedule-controls .tabs>button{font-size:11px;padding:8px 10px}.schedule-controls .legend{font-size:11px;margin-left:auto;gap:4px}.legend i{width:5px;height:5px}.schedule-table{border-spacing:4px 8px;margin:0 -3px;width:calc(100% + 6px)}.schedule-table thead th{font-size:11px}.schedule-table thead th:first-child{width:39px}.schedule-table thead th>span{font-size:11px}.schedule-table tbody th{font-size:11px}.schedule-table tbody th>small{font-size:11px}.slot{min-height:44px;font-size:11px;border-radius:5px;gap:3px}.slot .icon{display:none}.booking-aside{grid-template-columns:1fr;gap:0}.booking-aside>.quiet-note{margin:20px 0 0;padding:0 5px}.booking-list-row strong{font-size:12px}.booking-list-row small{font-size:11px}.booking-list-row .date-square{width:44px;height:47px}.booking-list-row .date-square strong{font-size:18px}.booking-list-row{gap:12px;padding:17px 0}.quiet-note p{font-size:11px}.quiet-note strong{font-size:12px}.tournaments-grid{grid-template-columns:1fr;gap:20px}.tournament-card:last-child{display:flex;grid-column:auto}.tournament-card:last-child .tournament-cover{height:190px;min-height:190px}.tournament-cover{height:190px}.tournament-body{padding:21px}.tournament-body h2{font-size:23px}.tournament-body>p{min-height:0;font-size:12px}.event-meta{font-size:11px}.event-facts{font-size:11px}.capacity{font-size:12px}.tournament-body .btn{min-height:42px}.filter-row{flex-wrap:wrap;gap:10px;margin-bottom:20px}.filter-row .tabs{width:100%}.filter-row>.muted{font-size:11px;margin-left:5px}.filter-row .tabs>button{font-size:11px;padding:9px 12px}.detail-layout>aside{display:block}.match-players{gap:8px;flex-wrap:wrap}.match-player{font-size:11px;gap:7px;min-width:40%}.match-player>.avatar{width:25px;height:25px;font-size:11px}.match-player>.icon{width:11px}.match-meta{font-size:11px}.match-score{padding-left:0;flex-wrap:wrap;gap:10px}.match-score .text-btn{font-size:11px}.participants>div{font-size:12px;padding:10px 0}.rankings-panel{padding:5px 10px}.ranking-table{min-width:460px}.ranking-table td{padding:15px 8px}.ranking-table .rank-position{width:30px;padding-right:12px;font-size:13px}.ranking-table .person-cell{gap:8px;min-width:155px}.ranking-table .person-cell .avatar{width:29px;height:29px;font-size:11px}.ranking-table .person-cell strong{font-size:11px}.ranking-table th:nth-child(3),.ranking-table td:nth-child(3){display:none}.ranking-table .points{font-size:12px}.position-label{font-size:11px}.position-label strong{font-size:22px}.ranking-explainer{font-size:11px;line-height:1.9}.current-enrollment{flex-wrap:wrap;padding:22px;gap:18px}.current-enrollment h2{font-size:23px}.current-enrollment p{font-size:11px}.current-enrollment small{font-size:11px;line-height:1.8}.enrollment-actions{margin-left:0;width:100%;align-items:flex-start}.plans-grid{gap:16px}.plan-card{display:flex;padding:24px}.plan-top{width:100%;margin-bottom:24px}.plan-card h2{font-size:23px}.plan-card>p{font-size:12px}.plan-card>.plan-price{margin:25px 0;font-size:33px}.plan-card ul{font-size:12px;gap:15px}.plan-card>.btn{margin-top:26px}.plan-card .btn:disabled{font-size:11px}.finance-summary{grid-template-columns:1fr;gap:0;padding:0 20px;margin-bottom:25px}.finance-summary>div{border-left:0;border-top:1px solid #d8dfd1;padding:18px 0;display:grid;grid-template-columns:1fr auto;gap:6px 15px;align-items:center}.finance-summary>div>span{font-size:12px}.finance-summary>div>strong{font-size:26px;grid-column:2;grid-row:1/span 2;white-space:nowrap}.finance-summary>div:last-child>strong{font-size:16px;white-space:normal;max-width:160px;text-align:right}.finance-summary small{font-size:11px}.payments-panel{padding:4px 14px}.payments-panel .table-scroll{overflow:visible}.payments-panel .data-table,.payments-panel .data-table tbody{display:block;width:100%}.payments-panel .data-table thead{display:none}.payments-panel .data-table tr{display:grid;grid-template-columns:1fr auto;gap:10px 14px;padding:19px 0;border-bottom:1px solid var(--line)}.payments-panel .data-table tr:last-child{border-bottom:0}.payments-panel .data-table td{display:block;padding:0!important;border:0;font-size:11px;max-width:none!important}.payments-panel .data-table td:first-child{grid-column:1;grid-row:1}.payments-panel .data-table td:first-child>strong{font-size:12px}.payments-panel .data-table td.num{grid-column:2;grid-row:1;font-size:14px}.payments-panel .data-table td.row-actions{grid-column:2;grid-row:2/span 2;align-self:center}.payments-panel .data-table td.row-actions .text-btn{font-size:11px}.payments-panel .data-table td:nth-child(2){color:var(--muted);font-size:11px}.payments-panel .data-table td:nth-child(3){align-self:center}.payments-panel .data-table .icon-btn{width:34px;height:34px}.admin-stats{row-gap:22px;padding:23px 0}.admin-stats>div{gap:8px;padding:0 16px}.admin-stats span{font-size:11px}.admin-stats strong{font-size:26px}.admin-stats small{font-size:11px}.admin-grid{display:flex;flex-direction:column;gap:16px}.admin-agenda-row{gap:10px;flex-wrap:wrap}.admin-agenda-row>.status{display:none}.admin-agenda-row>.icon{margin-left:auto}.pending-row strong{font-size:12px}.pending-row small{font-size:11px}.pending-row>strong{font-size:14px}.admin-grid .match-player{font-size:11px;min-width:40%;gap:6px}.admin-club-photo h2{font-size:28px}.admin-club-photo>div{padding:24px}.search-field{width:100%;padding:11px 14px}.settings-row{padding-top:24px;margin-top:0}.settings-row>.panel{padding:20px}.form-grid{gap:18px}.field>span{font-size:12px}.field input,.field select,.field textarea{font-size:16px;min-height:45px;padding:10px 12px}.two-fields{gap:10px}.two-fields input[type=date]{font-size:13px;min-width:0;padding-left:8px;padding-right:4px}.toggle-row{min-height:40px}.toggle-row strong{font-size:13px}.toggle-row small{font-size:11px}.day-checks span{height:40px}.btn{min-height:44px}.icon-btn{min-height:36px;min-width:32px}.date-strip .icon-btn{min-width:20px}#toast{bottom:18px;max-width:calc(100vw - 32px);width:max-content;font-size:11px;padding:13px 17px}dialog{padding:24px 20px;border-radius:18px;max-height:calc(100svh - 32px)}.modal-heading h2{font-size:20px}.modal-actions .btn{padding:10px 16px;font-size:11px}.modal-description{font-size:12px}.booking-modal-court{padding:15px 20px}.booking-modal-court .court-art{width:110px;height:66px}.modal-facts>div{font-size:11px}.modal-facts>div strong{max-width:73%}.result-players{gap:10px;font-size:11px}.settings-save{align-items:stretch}.settings-save .btn{width:100%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

/* Readable metadata and a wordmark that stays within its frame. */
.brand-sub{font-size:8px;letter-spacing:2px}.club-note strong{display:block}.club-note .court-art{display:block}.brand-sub{font-size:11px;letter-spacing:1px}.membership-summary h3{margin-top:12px}.membership-summary p{margin-bottom:12px}.photo-tag{font-size:11px}.hero-location{font-size:11px}

.heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-plans{margin-bottom:32px}.admin-plans h2{margin-bottom:8px}.admin-plans .plan-price{margin:18px 0}.membership-details{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--muted);margin:0 0 16px}.pay-summary-action{margin-top:16px}.sidebar{overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain}.sidebar nav{flex-shrink:0}
@media(max-height:850px) and (min-width:1001px){.sidebar .club-note{display:none}.sidebar-bottom{padding-top:20px}.sidebar .brand{margin-bottom:32px}}
@media(max-width:500px){.membership-details{grid-column:1;grid-row:4;margin:13px 0 0;gap:4px}.membership-summary>.text-btn{grid-row:1/5}.home-grid>.span-4:last-child .pay-summary-action{margin-top:7px}.heading-actions{width:100%}.heading-actions>.btn{flex:1}.admin-plans{display:grid;grid-template-columns:1fr}.admin-plans .panel{display:block}.admin-plans .plan-price{font-size:28px}}

/* Primary labels stay at reading size; 11–12px is reserved for metadata. */
.nav-item{font-size:13px}.nav-item .icon{width:18px;height:18px}.btn{font-size:13px}.text-btn{font-size:12px}.quick-court-heading{font-size:13px}.rank-row{font-size:13px}.profile strong{font-size:12px}.session-day{font-size:12px}.session-place{font-size:12px}.session-footer{font-size:12px}.next-session .section-heading h2{font-size:14px}.membership-summary h3{font-size:15px}.payment-summary>span{font-size:12px}.event-caption h3{font-size:15px}.tournament-body>p{font-size:13px}.data-table{font-size:13px}.data-table th{font-size:12px}.data-table .person-cell strong{font-size:13px}.match-player{font-size:13px}.page-heading p{font-size:13px}.tabs>button{font-size:12px}.slot{font-size:12px}.booking-list-row strong{font-size:12px}.admin-agenda-row strong{font-size:13px}.pending-row strong{font-size:13px}.status-dark{font-size:11px}.membership-summary p{font-size:12px}.quick-court-info{font-size:11px}.hero-bottom h2{font-weight:500}.admin-plans .muted{font-size:12px}
@media(min-width:1001px) and (max-width:1200px){.nav-item{font-size:12px}.next-session .section-heading{flex-wrap:wrap;row-gap:5px}.quick-court-heading{font-size:12px}.quick-court-info{font-size:11px}.home-grid .span-3{grid-column:span 4}.home-grid .span-5{grid-column:span 4}.session-time{font-size:30px}.photo-tag{display:none}}
@media(min-width:501px) and (max-width:760px){.quick-court-heading{font-size:11px}.quick-court-info{font-size:11px}.next-session .section-heading{flex-wrap:wrap;row-gap:5px}.next-session .section-heading h2{font-size:13px}}
@media(max-width:500px){.nav-item{font-size:14px}.btn{font-size:12px}.quick-court-heading{font-size:12px}.quick-court-info>span:last-child{margin-left:0}.quick-court-info{font-size:11px}.rank-row{font-size:13px}.session-day{font-size:12px}.session-footer{font-size:12px}.session-time>span{font-size:19px}.next-session .section-heading h2{font-size:14px}.slot{font-size:11px}.schedule-table thead th>span{font-size:11px}.schedule-table thead th>span{line-height:1.5}.schedule-table thead th{vertical-align:top}.tabs>button{font-size:12px}.match-player{font-size:12px}.data-table .person-cell strong{font-size:12px}.heading-actions>.btn{font-size:11px}.plan-card .btn:disabled{font-size:12px}.event-caption h3{font-size:15px}.page-heading p{font-size:12px}.hero-top .photo-tag{font-size:10px}.photo-tag{font-size:11px!important}.membership-summary>h3{font-size:17px}.membership-summary>p{font-size:12px}}

.slot:disabled{opacity:1}

.ranking-table .person-cell .mobile-rank-record{display:none}
@media(max-width:500px){.ranking-table{min-width:0;table-layout:auto}.ranking-table th:nth-child(4),.ranking-table td:nth-child(4),.ranking-table th:nth-child(5),.ranking-table td:nth-child(5){display:none}.ranking-table .person-cell .mobile-rank-record{display:block;font-size:11px;white-space:nowrap;margin-top:4px}.ranking-table .person-cell{min-width:0;gap:8px}.ranking-table .person-cell>span{min-width:0}.ranking-table .person-cell .avatar{width:26px;height:26px;font-size:10px}.ranking-table .person-cell strong{font-size:12px}.ranking-table .rank-position{padding-right:8px;font-size:12px;width:26px}.ranking-table .points{font-size:14px}.ranking-table td{padding:16px 5px}.ranking-table th{padding-left:5px;padding-right:5px}.ranking-table th:last-child{font-size:11px}.ranking-table .person-cell small:not(.mobile-rank-record){font-size:11px}}

/* Mobile destinations remain visible while the page scrolls. */
.bottom-nav{display:none}
@media(max-width:1000px){
  :root{--bottom-nav-height:68px}
  main{padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px))}
  .bottom-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;inset:auto 0 0;z-index:45;height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px));padding:7px max(12px,env(safe-area-inset-right,0px)) calc(7px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));background:var(--surface);border-top:1px solid var(--line)}
  .bottom-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:48px;min-width:0;border-radius:9px;color:var(--muted);font-size:11px;line-height:1.3;font-weight:500;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}
  .bottom-tab .icon{width:21px;height:21px}
  .bottom-tab.active,.bottom-tab[aria-expanded=true]{color:var(--ink);background:var(--tonal);font-weight:600}
  .bottom-tab:active{background:var(--tonal)}
  .sidebar.mobile-open{bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px))}
  #toast{bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px) + 16px)}
  html{scroll-padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px) + 20px)}
}
@media(hover:hover) and (pointer:fine){.bottom-tab:hover{background:var(--tonal);color:var(--ink)}}

.admin-login{min-height:100svh;display:grid;place-items:center;padding:32px 20px;background:var(--ground)}
.login-panel{width:100%;max-width:420px;padding:36px;background:var(--surface);border:1px solid var(--line);border-radius:20px}
.login-panel .brand{margin:0 0 40px}.login-panel h1{font-size:28px}.login-panel>p{font-size:13px;color:var(--muted);margin:10px 0 28px}.login-panel form{margin-bottom:24px}.login-panel form .btn{margin-top:12px}.login-panel .form-error{margin-bottom:12px}.login-panel input{font-size:16px}

.admin-login #app{width:100%;display:flex;justify-content:center}.auth-links{display:flex;flex-direction:column;align-items:flex-start;gap:18px}.auth-notice{font-size:13px;line-height:1.8;padding:14px;background:var(--positive-bg);border-radius:8px;margin-bottom:20px}.login-panel form .form-error{margin-bottom:16px}.login-panel>h1{font-size:26px}.login-panel .field input[readonly]{background:var(--tonal)}
.password-control{display:block;position:relative;width:100%}.password-control input{padding-right:48px;width:100%}.password-eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:40px;height:40px;border:0;background:transparent;color:var(--muted,#63695e);cursor:pointer;border-radius:8px}.password-eye:focus-visible{outline:2px solid #7d9546;outline-offset:-2px}.password-eye[aria-pressed="true"]{color:#20241f}.family-picker{display:flex;align-items:center;gap:10px;margin-right:auto;max-width:320px}.family-picker label{font-size:12px;color:#64695f}.family-picker select{max-width:230px;border:1px solid #dfe3db;border-radius:8px;background:white;padding:8px 10px;font:inherit;font-size:13px}.access-checks{max-height:240px;overflow:auto;display:grid;gap:12px;padding:14px;border:1px solid #e3e5de;border-radius:10px}.access-checks legend{padding:0 6px;font-size:13px}.access-checks label{display:flex;gap:9px;align-items:center;font-size:13px}.access-checks input{width:17px;height:17px;flex-shrink:0}.account-students{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.account-students span{font-size:12px;background:#f0f2eb;border-radius:5px;padding:4px 7px}.request-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid #e9ebe5}.request-actions{display:flex;gap:12px}.account-list{display:grid;gap:16px}.account-card{padding:22px}.account-card h2{font-size:17px;margin-bottom:6px}.account-card .section-heading{align-items:start}.standard-password-form{max-width:520px;margin-bottom:28px}.family-notice{margin-bottom:24px;font-size:13px;color:#62685c}.heading-actions{flex-wrap:wrap}@media(max-width:600px){.utility-bar{flex-wrap:wrap;gap:12px}.family-picker{max-width:100%;width:100%;order:2}.family-picker select{flex:1;max-width:none}.request-row{align-items:flex-start;flex-direction:column}.heading-actions{gap:8px}.access-checks{max-height:220px}}
/* People directories: quiet rows, search and bounded pages. */
.directory-tools{display:grid;gap:18px;margin:24px 0 18px}.directory-tools .search-field{width:100%;max-width:520px}.directory-tools .search-field input{min-width:0;width:100%}.directory-filters{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:thin}.directory-filters button{display:flex;gap:8px;align-items:center;white-space:nowrap;min-height:38px;padding:8px 13px;border:1px solid transparent;border-radius:8px;background:transparent;color:#686d63;font:inherit;font-size:13px;cursor:pointer}.directory-filters button.selected{border-color:#dce1d4;background:#edf0e7;color:#252a23}.directory-filters button span{font-size:11px;opacity:.8}.directory-panel{padding:0;overflow:hidden}.directory-table{width:100%;table-layout:fixed}.directory-table th:first-child{width:29%}.directory-table th:last-child{width:180px}.directory-table td,.directory-table th{padding-left:22px;padding-right:16px}.directory-table td{vertical-align:middle;overflow-wrap:anywhere}.directory-table .person-cell{min-width:0;gap:12px}.directory-table .person-cell strong{min-width:0}.directory-table .row-actions{white-space:normal}.directory-table .row-actions .text-btn{margin:4px 0 4px 10px;white-space:normal;text-align:left}.directory-email{color:#6b7066;font-size:12px;overflow-wrap:anywhere}.directory-links{display:flex;flex-wrap:wrap;gap:6px}.directory-links>span{font-size:12px;padding:4px 7px;background:#f0f2eb;border-radius:5px;line-height:1.5}.directory-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px;border-top:1px solid #e7eae2;font-size:12px;color:#6c7266}.directory-pagination>div{display:flex;align-items:center;gap:8px}.danger-text{color:#9e3b34!important}.removal-person{display:grid;gap:6px;background:#f4f5f0;padding:16px;border-radius:10px;margin:12px 0 18px}.removal-person span{font-size:13px;color:#70766a}.standard-password-form{max-width:none;padding:18px 22px;margin-bottom:22px}.standard-password-form summary{cursor:pointer;font-size:13px}.standard-password-form form{margin-top:18px;max-width:500px}
/* Searchable many-to-many assignments retain selections outside the current result page. */
.assignment-picker{border:1px solid #dde2d6;border-radius:12px;padding:14px;margin:8px 0 20px;min-width:0}.assignment-picker legend{font-size:13px;font-weight:600;padding:0 6px}.assignment-top{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#62695b}.assignment-top .text-btn{font-size:12px}.assignment-top [aria-pressed="true"]{font-weight:700;color:#20241f}.assignment-selected{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.assignment-empty{font-size:12px;color:#7c8275;padding:4px 0}.assignment-chip{display:flex;align-items:center;gap:4px;padding:4px 4px 4px 9px;border-radius:6px;background:#eef2e4;max-width:100%;font-size:12px}.assignment-chip>span{min-width:0;overflow-wrap:anywhere}.assignment-chip button{width:28px;height:28px;border:0;background:transparent;border-radius:5px;color:#444c37;cursor:pointer;font-size:20px;flex-shrink:0}.assignment-search{display:block}.assignment-search input{width:100%;padding:10px 12px;border:1px solid #dce1d4;border-radius:8px;background:#fafbf8;font:inherit;font-size:13px}.assignment-summary{font-size:11px;line-height:1.5;color:#747b6c;margin:9px 0}.assignment-results{max-height:250px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.assignment-option{display:flex;gap:12px;align-items:center;padding:10px 6px;border-top:1px solid #eef0e9;cursor:pointer;min-height:52px}.assignment-option input{width:18px;height:18px;flex-shrink:0;accent-color:#6c823e}.assignment-option>span{display:grid;gap:4px;min-width:0}.assignment-option strong{font-size:13px;font-weight:500;overflow-wrap:anywhere}.assignment-option small{font-size:11px;color:#7b8271;overflow-wrap:anywhere}.assignment-no-results{font-size:13px;padding:14px 0;color:#70786a}
/* Installation help stays out of the desktop workspace. */
.install-nudge,.install-menu-help{display:none}.install-nudge[hidden]{display:none}.install-guide{width:min(460px,calc(100vw - 32px));padding:26px;max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}.install-guide .modal-heading h2{font-size:24px;letter-spacing:-.04em}.install-guide .icon-btn{font-size:26px}.install-platform{display:flex;margin:20px 0}.install-platform button{flex:1}.install-app-preview{display:flex;align-items:center;gap:14px;margin:20px 0}.install-app-preview img{border-radius:13px}.install-app-preview span{display:grid;gap:3px}.install-app-preview strong{font-size:24px;letter-spacing:-.05em}.install-app-preview small{font-size:12px;color:#72796a}.install-steps{list-style:none;counter-reset:install;padding:0;margin:20px 0;display:grid;gap:20px}.install-steps li{counter-increment:install;position:relative;padding-left:40px;font-size:13px;line-height:1.65;color:#62695c}.install-steps li strong{color:#252b21;font-weight:600}.install-steps li::before{content:counter(install);position:absolute;left:0;top:1px;width:26px;height:26px;display:grid;place-items:center;background:#eef2e5;color:#3d4a2c;border-radius:50%;font-size:12px}.install-guide-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:20px}.install-guide-footer a{font-size:12px;color:#687656}.install-feedback{font-size:12px;line-height:1.5;color:#727b67}.install-guide .modal-description{font-size:14px}
@media(max-width:768px){.directory-tools .search-field{max-width:none}.directory-table,.directory-table tbody,.directory-table tr,.directory-table td{display:block;width:100%;min-width:0}.directory-table thead{display:none}.directory-table tr{padding:20px;border-bottom:1px solid #e8ebe2}.directory-table td{border:0;padding:5px 0!important}.directory-table td[data-column]{display:inline-flex;align-items:center;gap:7px;width:auto;margin-right:18px;font-size:12px}.directory-table td[data-column]::before{content:attr(data-column) ":";color:#7b8271}.directory-table .row-actions{display:flex;justify-content:flex-end;gap:22px;margin-top:10px}.directory-table .row-actions .text-btn{margin:0;min-height:36px}.directory-table .person-cell{padding-bottom:6px}.directory-pagination{padding:14px 16px;gap:8px;font-size:11px}.directory-pagination>div{gap:2px}.directory-pagination .icon-btn{width:36px}.directory-links{margin-top:4px}.install-nudge{position:fixed;z-index:45;left:14px;right:14px;bottom:calc(82px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:12px;max-width:440px;margin:0 auto;padding:14px;border:1px solid #dce2d2;border-radius:14px;background:#fff;box-shadow:0 8px 32px #20241f12}.admin-login .install-nudge{bottom:calc(16px + env(safe-area-inset-bottom,0px))}.install-nudge img{border-radius:9px;flex-shrink:0}.install-nudge>div{display:grid;gap:5px;min-width:0}.install-nudge strong{font-size:13px}.install-nudge .text-btn{font-size:11px;text-align:left}.install-dismiss{margin-left:auto;flex-shrink:0;width:30px;height:36px;background:transparent;border:0;font-size:23px;color:#6c7660}.install-menu-help{display:block;text-align:left;margin:8px 0 18px;font-size:12px}.install-guide{padding:24px 20px;padding-bottom:calc(22px + env(safe-area-inset-bottom,0px))}.install-guide .modal-heading h2{font-size:22px}.install-nudge~dialog::backdrop{background:#20241f55}}
@media(pointer:coarse){.assignment-search input{font-size:16px}.assignment-top button,.assignment-chip button{min-height:40px;min-width:40px}.directory-filters button{min-height:44px}.directory-table .row-actions button{min-height:44px}.install-guide button,.install-guide-footer a{min-height:44px}.install-dismiss{width:40px;height:40px}}
@media(max-width:768px) and (max-height:600px){.admin-login .install-nudge{display:none}}
.directory-table td:first-child,.directory-table th:first-child{padding-left:22px}.directory-table td:last-child,.directory-table th:last-child{padding-right:22px}.directory-table td>strong,.directory-table .person-cell strong{font-size:14px}.directory-table .row-actions .text-btn{font-size:13px}.directory-table .directory-email{font-size:12px}.directory-table th{font-size:12px}.directory-links>span{font-size:13px}.directory-table .status{font-size:12px}.directory-tools .search-field input{font-size:13px}
@media(max-width:768px){.directory-filters{flex-wrap:wrap;overflow:visible;gap:4px}.directory-filters button{font-size:12px;padding:8px 10px}.directory-table tr{padding:16px}.directory-table td:first-child,.directory-table td:last-child{padding-left:0;padding-right:0}.directory-table td[data-column]{font-size:13px}.directory-table .directory-email{font-size:13px}.directory-table .row-actions{margin-top:6px}}
@media(pointer:coarse){.directory-tools .search-field input{font-size:16px}}

/* School and annual circuit: fees stay legible and distinct from court availability. */
.tournament-reserve{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}
.tournament-reserve p{margin-bottom:0}.booking-context{max-width:520px;margin-bottom:24px}
.circuit-panel{margin-bottom:28px}.circuit-overview{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;margin-bottom:32px}
.circuit-overview h3,.circuit-panel h3{font-size:18px;margin:8px 0 16px}.circuit-membership{background:var(--ground,#f5f6f2);padding:24px;align-self:start}
.circuit-prices{min-width:0}.circuit-events{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 28px}
.circuit-event{background:#f2f4ee;padding:20px;display:flex;flex-direction:column;gap:8px;text-align:left;border:0;min-width:0;color:inherit;font:inherit}
.circuit-event span,.circuit-event small{font-size:13px;color:var(--muted,#526058)}.circuit-event strong{overflow-wrap:anywhere;font-size:16px}.circuit-event .icon{align-self:flex-end}
.plans-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:767px){.circuit-overview{grid-template-columns:1fr;gap:20px}.circuit-events{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tournament-reserve{align-items:start;flex-direction:column}.circuit-panel>.section-heading{align-items:start;gap:12px;flex-wrap:wrap}.plans-grid{grid-template-columns:1fr}.circuit-event{padding:16px}}
.circuit-panel .data-table td,.circuit-panel .data-table th{font-size:14px}
.circuit-panel .field-hint{font-size:13px}
.circuit-event span,.circuit-event small{font-size:14px}
@media(max-width:767px){.circuit-membership{order:-1}.circuit-overview{gap:24px}}
/* The install suggestion belongs in the flow so it never covers prices or actions. */
.canvas>.install-nudge{position:static;max-width:none;margin:0 0 24px;box-shadow:none}
.plan-card>p,.plan-card ul,.plan-card .btn:disabled,.current-enrollment p,.current-enrollment small{font-size:13px}
.plan-price span{font-size:14px}
.canvas>.install-nudge{margin:24px 0 0}
.school-catalog{padding:0 24px}.school-plan{display:grid;grid-template-columns:minmax(0,1fr) 180px 170px;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}
.school-plan:last-child{border:0}.school-plan h2{font-size:18px;margin:0 0 5px}.school-plan p{font-size:14px;margin:0 0 5px;color:var(--muted)}.school-plan small{font-size:13px;color:var(--muted)}
.school-plan-price{display:flex;flex-direction:column;gap:3px;font-variant-numeric:tabular-nums}.school-plan-price strong{font-size:24px;font-weight:500;letter-spacing:-.04em}.school-plan-price span{font-size:14px;color:var(--muted)}
@media(max-width:1000px){.school-plan{grid-template-columns:minmax(0,1fr) 140px;gap:14px 20px}.school-plan>.btn{grid-column:1/-1;justify-self:start}.school-plan>.btn:disabled{background:none;padding:0;min-height:24px;color:var(--muted)}}
@media(max-width:600px){.school-catalog{padding:0 18px}.school-plan{grid-template-columns:minmax(0,1fr) auto;padding:22px 0;gap:12px}.school-plan h2{font-size:17px}.school-plan p{font-size:13px}.school-plan small{display:block;line-height:1.5}.school-plan-price{text-align:right}.school-plan-price strong{font-size:23px;white-space:nowrap}.school-plan-price span{font-size:13px}}

/* Published competition: one category at a time, with a native-sized round on phones. */
.competition-panel,.competition-ranking,.competition-legacy{margin:24px 0;padding:24px;min-width:0}
.competition-panel>.section-heading,.competition-ranking>.section-heading{align-items:flex-start;gap:20px}
.competition-updated{font-size:13px;color:var(--muted);margin:7px 0 0}.competition-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.competition-actions .text-btn{font-size:13px}.competition-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0 20px}
.competition-tabs button{padding:11px 18px;border-radius:6px;background:#f2f4ee;color:#4d5848;font-size:14px;min-height:44px}.competition-tabs button.selected{background:#263426;color:#fff}
.competition-toolbar,.competition-track{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.competition-track{padding-top:18px}.competition-track>span,.competition-caption{font-size:13px;color:var(--muted);line-height:1.7}.competition-notice{font-size:14px;line-height:1.6;background:#f2f4ee;padding:14px 16px;border-radius:6px;margin:16px 0}
.bracket-scroll{overflow-x:auto;overscroll-behavior-x:contain;padding:4px 2px 20px;scrollbar-gutter:stable;max-width:100%}
.bracket-rounds{display:flex;gap:36px;min-width:max-content}.bracket-round{width:240px;display:flex;flex-direction:column;flex-shrink:0}
.bracket-round h3{font-size:15px;font-weight:600;margin:0 0 18px;color:#43513c}.bracket-matches{display:flex;flex-direction:column;justify-content:space-around;gap:20px;flex:1}
.bracket-match{position:relative;background:#fff;border:1px solid #dfe5db;border-radius:8px;padding:12px;min-width:0;text-align:left}
.bracket-round:not(:last-child) .bracket-match:after{content:'';position:absolute;right:-37px;top:50%;width:36px;height:1px;background:#c9d3c1}
.bracket-match-meta{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#65705e;margin-bottom:10px}
.bracket-player{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 8px;font-size:14px;line-height:1.45;min-height:39px;border-radius:4px}
.bracket-player>span:first-child{overflow-wrap:anywhere;min-width:0}.bracket-player.winner{background:#e8f0db;color:#26381e;font-weight:600}.bracket-player:not(.winner){color:#485442}
.bracket-seed{font-size:12px;display:inline-block;margin-right:8px;color:#5b6d4d;font-variant-numeric:tabular-nums}
.bracket-score{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin:10px 6px 3px}.bracket-score span{font-size:12px;color:var(--muted)}
.bracket-match>.text-btn{font-size:13px;margin:12px 6px 0;min-height:32px}.mobile-round-control{display:none}
.competition-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.competition-results>.empty{grid-column:1/-1}
.competition-results .bracket-match:after{display:none}.competition-rank-filters{display:flex;gap:16px;align-items:end;margin:20px 0}.competition-rank-filters .field:first-child{flex:1;max-width:360px}
.competition-rank-table table{min-width:760px}.competition-rank-table td,.competition-rank-table th{font-size:14px}.competition-rank-table td:nth-child(2){min-width:210px}.competition-rank-table th{max-width:150px;white-space:normal;line-height:1.5}
.competition-rank-table td:last-child strong{font-size:18px}.competition-ranking>.field-hint{font-size:13px;margin-top:16px;line-height:1.7}
.import-preview{max-height:390px;overflow:auto;margin:20px 0}.import-preview table{min-width:420px}.competition-panel details{margin-top:20px}.competition-panel summary{font-size:14px}
#modal details{margin:20px 0}#modal details h3{font-size:15px;margin:18px 0 12px}#modal textarea{width:100%;font:inherit;font-size:14px;padding:12px;min-height:150px;border:1px solid var(--line);border-radius:6px}
@media(max-width:1000px){.competition-toolbar .competition-actions{width:100%}.competition-panel>.section-heading,.competition-ranking>.section-heading{flex-wrap:wrap}.competition-panel .competition-actions .btn{min-height:44px}}
@media(max-width:600px){.competition-panel,.competition-ranking,.competition-legacy{padding:18px;margin:20px 0}.competition-tabs{margin:18px 0 16px;gap:8px}.competition-tabs button{font-size:14px;padding:10px 14px}.competition-toolbar .tabs{display:flex;overflow-x:auto;max-width:100%;white-space:nowrap;width:100%}.competition-toolbar .tabs>button{flex:1;font-size:13px;padding:10px 12px}.competition-toolbar .competition-actions{gap:16px}.competition-track{align-items:flex-start}.competition-track>span{width:100%}.mobile-round-control{display:flex;align-items:center;gap:10px;margin:18px 0}.mobile-round-control .field{flex:1}.mobile-round-control .icon-btn{min-width:44px;min-height:44px}.bracket-rounds{display:block;min-width:0}.bracket-round{display:none;width:100%}.bracket-round.current-round{display:block}.bracket-round h3{display:none}.bracket-matches{gap:14px}.bracket-round .bracket-match:after{display:none!important}.bracket-scroll{overflow:visible;padding:0 0 12px}.bracket-player{font-size:15px}.bracket-match-meta{font-size:12px}.bracket-match>.text-btn{min-height:44px}.competition-rank-filters{align-items:stretch;flex-direction:column}.competition-rank-filters .field:first-child{max-width:none}.competition-rank-table{overflow-x:auto;max-width:100%}.competition-rank-table td:nth-child(2),.competition-rank-table th:nth-child(2){position:sticky;left:0;background:#fff;z-index:1;min-width:180px}.competition-rank-table th:nth-child(2){z-index:2}.competition-results{grid-template-columns:1fr}}
.competition-ranking .competition-rank-table{overflow-x:auto;max-width:100%;min-width:0;overscroll-behavior-x:contain}
.bracket-rounds{min-width:100%;width:max(100%,calc(var(--draw-rounds)*276px - 36px))}.bracket-round{flex:1 0 240px;width:auto}
.bracket-match{padding:10px}.bracket-match-meta{margin-bottom:7px}.bracket-player{padding:6px 8px;min-height:32px}.bracket-score{margin-top:7px}
@media(max-width:600px){.bracket-rounds{width:100%;min-width:0}.bracket-round{width:100%}.competition-toolbar .tabs>button{padding:10px}.bracket-player{min-height:36px}.competition-panel>.section-heading h2,.competition-ranking>.section-heading h2{font-size:17px}}
.competition-season-title{font-size:18px;margin:28px 0 12px;font-weight:600}

/* Account scope: a 2:1 overview, then aligned people and enrollment rows. */
.account-overview{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:20px;margin-bottom:24px}
.account-person-row,.account-enrollment-row{display:flex;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid var(--line,#e4e7e1)}
.account-person-row:last-child,.account-enrollment-row:last-child{border-bottom:0}.account-person-row>div,.account-enrollment-row>div{flex:1;min-width:0}.account-person-row h3{font-size:15px;margin:0 0 5px}.account-person-row p,.account-enrollment-row p{font-size:13px;color:var(--muted,#697064);margin:6px 0 0}.account-enrollment-row h2{font-size:17px;margin:0}.account-balance>strong{display:block;font-size:38px;letter-spacing:-.06em;margin:16px 0}.account-balance p{font-size:14px;line-height:1.65;color:#697064}.account-balance>a{margin:12px 0;display:inline-flex}.account-balance>span{font-size:14px}.account-profile{margin-top:20px}.person-self{font-size:12px;font-weight:400;color:#697064;margin-left:8px}.account-membership{border-bottom:1px solid #e4e7e1;padding:12px 0}.account-tournament-actions{display:flex;gap:14px;align-items:center}.account-people-panel>.section-heading{margin-bottom:8px}.account-enrollments{margin-bottom:32px}.more-menu>a,.more-menu>button,.more-menu form button{display:flex;align-items:center;gap:16px;width:100%;padding:20px 0;border:0;border-bottom:1px solid #e4e7e1;background:none;color:inherit;text-align:left;text-decoration:none;font-size:15px}.more-menu span{flex:1}.more-menu .more-signout{margin-top:18px;color:#8c3e31}.payment-billing-link{display:flex;gap:18px;align-items:center}.tax-fieldset{border:1px solid #e4e7e1;border-radius:8px;padding:16px;margin-top:20px}.tax-fieldset legend{padding:0 8px;font-size:14px}form[data-account-form]{display:grid;gap:16px}.payments-panel td:nth-child(2){min-width:160px}.payments-panel td:nth-child(2)>small{display:block;color:#697064;margin-top:5px}.account-people-panel .avatar{flex-shrink:0}
@media(max-width:700px){.account-overview{grid-template-columns:1fr}.account-person-row,.account-enrollment-row{flex-wrap:wrap;gap:12px}.account-person-row>div{flex-basis:calc(100% - 64px)}.account-person-row>.text-btn{margin-left:52px}.account-enrollment-row>div{flex-basis:100%}.account-enrollment-row .text-btn{margin-left:auto}.account-balance>strong{font-size:34px}.account-tournament-actions{flex-wrap:wrap}.payment-billing-link{width:100%;justify-content:space-between}.section-heading{gap:12px;flex-wrap:wrap}}

.account-overview{align-items:start}.account-person-row p{line-height:1.6}.account-profile .field span{font-size:13px}
.payments-panel .data-table td,.payments-panel .data-table td strong,.payments-panel .row-actions .text-btn{font-size:13px}.payments-panel .data-table td small{font-size:12px}.finance-summary>div>span{font-size:13px}.finance-summary>div>small{font-size:12px}

.account-overview{align-items:stretch}.account-paid-total{border-top:1px solid #dfe3db;padding-top:18px;margin-top:18px;display:flex;justify-content:space-between;gap:18px;font-size:13px}.account-paid-total strong{font-size:18px;font-weight:500}

.account-tournament-actions .status{white-space:normal;max-width:430px;text-align:left}.account-tournament-actions{justify-content:flex-end}
.account-profile{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:18px;background:transparent}.account-profile>button{grid-column:1/-1;justify-self:start}@media(max-width:700px){.account-profile{grid-template-columns:1fr}}

/* Club shop: products, stock and cash orders. */
.shop-tabs,.shop-order-filters,.shop-product-heading,.shop-cart-total,.shop-order-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.shop-tabs{margin:24px 0}.shop-tabs .tabs{overflow:auto;max-width:100%}.shop-tabs .tabs button{white-space:nowrap}.shop-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:28px 0}.shop-product{min-width:0}.shop-product-photo{position:relative;width:100%;aspect-ratio:1;background:#eeefea;border:0;overflow:hidden;cursor:pointer;padding:0;border-radius:4px}.shop-product-photo img{width:100%;height:100%;object-fit:cover}.shop-product-heading{align-items:baseline;flex-wrap:nowrap;margin-top:18px;gap:12px}.shop-product-heading h2{font-size:19px;line-height:1.4;margin:0;overflow-wrap:anywhere}.shop-product-heading strong{white-space:nowrap}.shop-product>p,.shop-pickup{font-size:14px;color:var(--muted);line-height:1.7}.shop-pickup strong{font-weight:500;color:var(--ink)}.shop-soldout{position:absolute;bottom:14px;left:14px;background:#fff;padding:6px 12px;font-size:13px}.shop-no-photo{display:grid;place-items:center;min-height:90px;background:#eeefea;color:#63685f;font-size:13px}.shop-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--line);padding:24px 0;margin:24px 0;gap:28px}.shop-summary>div{display:flex;flex-direction:column;gap:9px}.shop-summary span,.shop-summary small{font-size:13px;color:var(--muted)}.shop-summary strong{font-size:30px;letter-spacing:-1px;font-weight:600}.shop-inventory-row{display:flex;align-items:flex-start;gap:22px;padding:26px 0;border-bottom:1px solid var(--line)}.shop-inventory-row:last-child{border-bottom:0}.shop-inventory-photo{width:100px;height:110px;object-fit:cover;flex-shrink:0;border-radius:3px}.shop-inventory-info{flex:1;min-width:0}.shop-inventory-info h2{font-size:18px;margin:0;overflow-wrap:anywhere}.shop-inventory-info>p{font-size:14px;color:var(--muted);margin:8px 0 16px}.shop-stock-list{display:flex;flex-wrap:wrap;gap:14px 28px}.shop-stock-entry{display:flex;flex-direction:column;gap:5px;font-size:13px;min-width:135px}.shop-stock-entry strong{font-weight:600}.shop-stock-entry small{font-size:13px;color:var(--muted)}.shop-order-filters{align-items:flex-end;margin:24px 0}.shop-order-filters>.field{flex:1;min-width:180px}.shop-order-filters .btn{margin-bottom:0}.shop-gallery-main{display:block;width:100%;max-height:380px;object-fit:contain;background:#eeefea}.shop-thumbnails{display:flex;gap:10px;margin:12px 0}.shop-thumbnails button{width:64px;height:64px;padding:0;background:#eeefea;border:1px solid var(--line);cursor:pointer}.shop-thumbnails img{width:100%;height:100%;object-fit:cover}.shop-detail-price{font-size:25px;font-weight:600}.shop-cart-row,.shop-order-item{display:flex;align-items:flex-start;gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}.shop-cart-row>div,.shop-order-item>div{flex:1;min-width:0}.shop-cart-row p,.shop-order-item p{font-size:14px;line-height:1.5;color:var(--muted);margin:8px 0}.shop-cart-row .field{max-width:100px}.shop-order-item>img,.shop-order-item>.shop-no-photo{width:62px;height:70px;object-fit:cover;min-height:0;flex-shrink:0}.shop-cart-total{padding:24px 0;font-size:18px}.shop-cart-total strong{font-size:26px}.shop-order-actions{justify-content:flex-start;margin-top:24px}.shop-variants-field,.shop-photos-field{border:1px solid var(--line);padding:18px;margin:24px 0;min-width:0}.shop-variants-field legend,.shop-photos-field legend{font-size:14px;font-weight:600;padding:0 8px}.shop-variant-edit{display:grid;grid-template-columns:minmax(0,1fr) 95px;align-items:end;gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}.shop-variant-edit .check{font-size:13px}.shop-variant-edit>.field{min-width:0}.shop-editor-photos{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}.shop-editor-photos>div{width:100px}.shop-editor-photos>div img{width:100px;height:100px;object-fit:cover}.shop-editor-photos>div button{display:block;font-size:13px;margin-top:8px}.shop-coming{max-width:720px;padding:48px!important}.shop-coming h2{font-size:32px}.shop-coming p{line-height:1.7}.shop-order-item strong,.shop-cart-row strong{overflow-wrap:anywhere}.shop-order-item>strong{white-space:nowrap}.shop-orders-table td{vertical-align:top}.shop-inventory-row>.btn{flex-shrink:0}
@media(max-width:1100px){.shop-product-grid{gap:22px;grid-template-columns:repeat(2,minmax(0,1fr))}.shop-inventory-row{flex-wrap:wrap}.shop-inventory-row>.btn{margin-left:122px}.shop-summary strong{font-size:25px}}
@media(max-width:600px){.shop-product-grid{grid-template-columns:1fr;gap:32px}.shop-product-photo{aspect-ratio:1.15}.shop-summary{grid-template-columns:1fr;gap:20px;padding:20px 0}.shop-summary>div{display:grid;grid-template-columns:1fr auto;gap:5px 14px}.shop-summary small{grid-column:1/-1}.shop-summary strong{font-size:25px;grid-column:2;grid-row:1/3}.shop-tabs{align-items:flex-start}.shop-inventory-photo{width:70px;height:85px}.shop-inventory-row{gap:16px}.shop-inventory-row>.btn{margin-left:0;width:100%}.shop-stock-list{gap:14px}.shop-stock-entry{min-width:120px}.shop-order-filters{display:grid;grid-template-columns:1fr}.shop-order-filters>.field{min-width:0}.shop-cart-row{flex-wrap:wrap}.shop-cart-row>div{flex-basis:65%}.shop-cart-row>.text-btn{margin-left:0}.shop-coming{padding:26px!important}.shop-order-actions>.btn{width:100%}.shop-variants-field,.shop-photos-field{padding:12px}.shop-order-item{gap:12px}.shop-order-item>img{width:44px;height:54px}.shop-cart-total strong{font-size:23px}}

.shop-editor-photos>div{flex:0 0 110px}.shop-editor-photos>div>div{display:flex;align-items:center;gap:10px}.shop-editor-photos small{display:block;margin:7px 0}.shop-tabs button,.shop-product .text-btn{font-size:13px;min-height:44px}.shop-product-heading{margin-top:14px}
@media(max-width:600px){.shop-summary{gap:12px;padding:16px 0;margin:18px 0}.shop-summary>div{gap:2px 12px}.shop-summary small{grid-column:1;grid-row:2}.shop-summary strong{grid-row:1/3;align-self:center}.shop-stock-entry small{font-size:12px}.shop-order-filters{gap:12px}}

/* Storefront pages: catalogue → article → basket → cash pickup. */
.shop-page{padding-bottom:112px}.shop-breadcrumb{display:flex;align-items:center;gap:12px;margin:0 0 20px;font-size:13px;color:var(--muted)}.shop-breadcrumb a{font-size:13px}.shop-page>.page-heading{align-items:flex-start}.shop-page>.page-heading h1{max-width:850px}.shop-page>.page-heading p{font-size:14px}.shop-tabs .tabs a{padding:11px 16px;border-radius:24px;font-size:13px;white-space:nowrap}.shop-tabs .tabs a.selected{background:var(--ink);color:white}.shop-tabs .tabs a:hover{background:var(--tonal);color:var(--ink)}.shop-collection-note{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:6px 0 22px;font-size:14px;line-height:1.7}.shop-collection-note>span{color:var(--muted);white-space:nowrap;font-size:13px}.shop-catalog-tools{display:grid;grid-template-columns:minmax(0,1fr) 230px auto;gap:20px;align-items:end;border-block:1px solid var(--line);padding:18px 0}.shop-catalog-tools .field{margin:0;min-width:0}.shop-catalog-tools .checkbox-line{margin:0 0 12px;white-space:nowrap;font-size:13px}.shop-result-count{font-size:13px;color:var(--muted);margin:18px 0}.shop-product-photo{display:block;border-radius:3px}.shop-product-name{font-size:18px;line-height:1.4;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shop-product-heading{align-items:flex-start}.shop-product-heading h2{flex:1;min-width:0}.shop-product-heading>strong{font-size:15px;line-height:1.7}.shop-product>p{margin-top:8px}.shop-cart-dock{position:fixed;right:32px;bottom:24px;width:320px;z-index:28}.shop-cart-button{display:flex;align-items:center;gap:16px;background:var(--ink);color:white;border-radius:10px;padding:14px 20px;min-height:66px;box-shadow:none}.shop-cart-button>span:nth-child(2){flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.shop-cart-button strong{font-size:15px;font-weight:600;display:flex;align-items:center;gap:9px}.shop-cart-button small{font-size:13px;color:#e3e7df}.shop-cart-button>span:last-child{font-size:21px}.shop-cart-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;background:#fff;color:var(--ink);border-radius:50%;font-size:12px}.shop-cart-button:focus-visible{outline:3px solid #657f50;outline-offset:4px}.shop-product-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:48px;align-items:start;margin-top:28px}.shop-product-media{min-width:0}.shop-product-media .shop-gallery-main{max-height:none;aspect-ratio:1;object-fit:contain;border-radius:3px}.shop-product-media .shop-thumbnails{gap:12px;margin-top:16px}.shop-thumbnails button{width:74px;height:74px;min-height:44px;border-radius:3px;overflow:hidden}.shop-thumbnails button[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:3px}.shop-product-buy{padding-top:6px;min-width:0}.shop-product-buy .shop-detail-price{font-size:28px;line-height:1.2;margin:0 0 22px}.shop-product-description{font-size:15px;line-height:1.8;margin-bottom:26px}.shop-product-buy>.text-btn{font-size:13px;margin:22px 0}.shop-product-buy .field{max-width:115px}.shop-size-picker{border:0;margin:0;padding:0;min-width:0}.shop-size-picker legend{font-size:14px;font-weight:600;margin-bottom:12px}.shop-size-picker>div{display:flex;flex-wrap:wrap;gap:10px}.shop-size{position:relative;cursor:pointer}.shop-size input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}.shop-size>span{display:flex;align-items:center;justify-content:center;gap:6px;flex-direction:column;min-width:48px;min-height:46px;padding:10px 14px;border:1px solid #c5cbc0;border-radius:3px;font-size:14px}.shop-size input:checked+span{background:var(--ink);color:white;border-color:var(--ink)}.shop-size input:focus-visible+span{outline:2px solid #657f50;outline-offset:3px}.shop-size.sold-out{color:#62695c;cursor:default}.shop-size.sold-out>span{border-color:var(--line);background:#f0f1ee}.shop-size.sold-out small{font-size:11px}.shop-variant-availability{font-size:13px;color:var(--muted);margin:12px 0 20px}.shop-add-button{width:100%;min-height:48px;font-size:15px!important;margin-top:4px}.shop-added,.shop-receipt-note{border:1px solid #d0dfc2;background:#edf3e6;padding:18px 20px;margin:20px 0;border-radius:4px;line-height:1.7}.shop-added{display:flex;gap:10px 18px;flex-wrap:wrap}.shop-added strong{flex-basis:100%;font-size:14px}.shop-added a{font-size:13px}.shop-pickup-details{border-top:1px solid var(--line);margin-top:28px;padding-top:22px}.shop-pickup-details h2{font-size:15px;margin-bottom:10px}.shop-pickup-details p{font-size:14px;color:var(--muted);line-height:1.8;margin-bottom:8px}.shop-basket-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:36px;align-items:start;margin-top:28px}.shop-basket-lines,.shop-checkout-review,.shop-order-detail{min-width:0}.shop-basket-lines>.text-btn{font-size:14px;margin-top:24px}.shop-basket-line{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:20px;border-bottom:1px solid var(--line);padding:24px 0}.shop-basket-line:first-child{padding-top:0}.shop-basket-line>img,.shop-basket-line>.shop-no-photo{width:100px;height:120px;object-fit:cover;border-radius:3px}.shop-basket-line h2{font-size:16px;line-height:1.5;margin:0 0 6px}.shop-basket-line p{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:12px}.shop-basket-line>strong{font-size:15px;white-space:nowrap;padding-top:3px}.shop-basket-line .field{max-width:96px;margin-bottom:12px}.shop-basket-line .text-btn{font-size:13px;min-height:32px}.shop-basket-summary{position:sticky;top:24px;border:1px solid var(--line);background:white;padding:26px;border-radius:6px;min-width:0}.shop-basket-summary h2{font-size:19px;margin-bottom:24px}.shop-basket-summary>div{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-bottom:18px;font-size:14px}.shop-basket-summary>div strong{text-align:right;font-size:14px}.shop-basket-summary .shop-summary-total{border-top:1px solid var(--line);padding-top:20px;margin-top:22px;font-size:18px}.shop-basket-summary .shop-summary-total strong{font-size:23px}.shop-basket-summary>p{font-size:13px;line-height:1.8;color:var(--muted);margin:18px 0}.shop-basket-summary>.btn{width:100%;white-space:normal;text-align:center;min-height:48px;font-size:14px}.shop-basket-summary>small{display:block;margin-top:14px;text-align:center;color:var(--muted);font-size:12px}.shop-basket-summary>.text-btn{font-size:13px;margin-top:20px}.shop-cart-review{margin-top:22px}.shop-cart-review button{white-space:normal}.shop-cart-review .form-error{margin-bottom:12px}.shop-checkout-block{border-bottom:1px solid var(--line);padding:22px 0}.shop-checkout-block:first-child{padding-top:0}.shop-checkout-block h2{font-size:17px;margin-bottom:12px}.shop-checkout-block>p{font-size:14px;line-height:1.8;margin:8px 0}.shop-checkout-block .section-heading h2{margin:0}.shop-page-form{background:white;border:1px solid var(--line);border-radius:6px;padding:28px;min-width:0}.shop-form-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px}.shop-form-actions .btn{min-height:46px}.shop-editor-layout{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(0,1.35fr);gap:40px;margin-top:32px}.shop-editor-layout>div>h2{font-size:19px;margin-bottom:14px}.shop-editor-layout>div>p{font-size:14px;line-height:1.8;color:var(--muted)}.shop-editor-layout .shop-variant-edit{grid-template-columns:minmax(0,1fr) 120px}.shop-action-page{max-width:700px}.shop-action-page>h2{font-size:22px;margin-bottom:12px}.shop-action-page>p{font-size:15px;margin-bottom:24px}.shop-action-page .shop-page-form{border:0;padding:0}.shop-action-page form>p{font-size:15px;line-height:1.8}.shop-empty{padding:40px!important;line-height:1.8;max-width:760px}.shop-empty h2{font-size:24px;margin-bottom:14px}.shop-empty p{font-size:15px;margin-bottom:24px}.shop-empty .btn{white-space:normal}.shop-order-detail>.muted{font-size:13px;margin:14px 0 22px}.shop-order-detail .section-heading h2{font-size:20px}.shop-order-detail .shop-order-item{padding:22px 0}.shop-order-detail .shop-order-item>img{width:80px;height:90px}.shop-receipt-note strong{font-size:17px}.shop-receipt-note p{font-size:14px}.shop-page [data-shop-form]>.form-error{margin-top:18px}.shop-page .shop-order-actions .text-btn{font-size:13px;white-space:normal}.shop-page .shop-order-actions{gap:18px}.shop-page .shop-inventory-row>.btn{white-space:normal;text-align:center}.shop-catalog-tools .field input,.shop-catalog-tools select{min-height:44px}
@media(max-width:1100px){.shop-catalog-tools{grid-template-columns:minmax(0,1fr) 220px}.shop-catalog-tools .checkbox-line{grid-column:1/-1;margin:0}.shop-collection-note{display:block}.shop-collection-note>span{display:block;margin-top:8px;white-space:normal}.shop-product-layout{gap:28px;grid-template-columns:1fr 1fr}.shop-product-name{font-size:17px}.shop-basket-layout{grid-template-columns:minmax(0,1fr) 300px;gap:24px}.shop-basket-line{grid-template-columns:80px minmax(0,1fr);gap:16px}.shop-basket-line>img{width:80px;height:100px}.shop-basket-line>strong{grid-column:2}.shop-editor-layout{grid-template-columns:1fr;gap:22px}}
@media(max-width:768px){.shop-product-layout{grid-template-columns:1fr;gap:26px}.shop-product-media .shop-gallery-main{aspect-ratio:1.15}.shop-basket-layout{grid-template-columns:1fr;gap:28px}.shop-basket-summary{position:static}.shop-product-buy{padding:0}.shop-product-buy .shop-detail-price{margin-bottom:16px}.shop-cart-dock{left:16px;right:16px;bottom:calc(78px + env(safe-area-inset-bottom,0px));width:auto;max-width:none}.shop-cart-button{min-height:60px;padding:11px 18px}.shop-page{padding-bottom:100px}.shop-basket-line>strong{grid-column:auto}.shop-basket-line{grid-template-columns:80px minmax(0,1fr) auto}.shop-order-detail .shop-order-item>img{width:58px;height:70px}.shop-product-buy .field input,.shop-page-form input,.shop-page-form textarea,.shop-page-form select{font-size:16px}.shop-page .shop-tabs{gap:16px}.shop-product-description{margin-bottom:22px}}
@media(max-width:600px){.shop-catalog-tools{grid-template-columns:1fr;gap:14px;padding:16px 0}.shop-catalog-tools .checkbox-line{margin:0;min-height:32px}.shop-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 14px;margin-top:18px}.shop-product-photo{aspect-ratio:.9}.shop-product-heading{display:block;margin-top:12px}.shop-product-name{font-size:15px;line-height:1.45}.shop-product-heading>strong{display:block;font-size:14px;margin-top:6px}.shop-product>p{font-size:12px;line-height:1.65;margin-top:4px}.shop-soldout{font-size:11px;left:8px;bottom:8px;padding:4px 8px}.shop-catalog-tools input,.shop-catalog-tools select{font-size:16px}.shop-breadcrumb{font-size:12px;margin-bottom:16px}.shop-basket-line{grid-template-columns:66px minmax(0,1fr);gap:14px}.shop-basket-line>img{width:66px;height:82px}.shop-basket-line>strong{grid-column:2}.shop-basket-line h2{font-size:15px}.shop-basket-summary{padding:22px}.shop-page-form{padding:20px}.shop-editor-layout .shop-variant-edit{grid-template-columns:minmax(0,1fr) 95px}.shop-form-actions{flex-wrap:wrap}.shop-form-actions .btn{flex:1;white-space:normal}.shop-empty{padding:26px!important}.shop-empty h2{font-size:21px}.shop-order-detail .section-heading{flex-wrap:wrap}.shop-product-buy .shop-detail-price{font-size:27px}.shop-gallery-main{max-height:none}.shop-page>.page-heading h1{font-size:24px;letter-spacing:-.7px}.shop-pickup-details{margin-top:24px}}

.shop-collection-note summary{cursor:pointer;font-size:14px}.shop-collection-note details>p{margin-top:12px;max-width:650px;font-size:14px;color:var(--muted)}
@media(max-width:600px){.shop-collection-note{display:flex;align-items:flex-start;gap:14px;padding-bottom:16px}.shop-collection-note>span{margin:0;font-size:12px;white-space:nowrap}.shop-collection-note summary{font-size:13px}.shop-catalog-tools{grid-template-columns:minmax(0,1fr) 145px;gap:12px}.shop-catalog-tools>.field:first-child{grid-column:1/-1}.shop-catalog-tools>.field>span{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.shop-catalog-tools .checkbox-line{grid-column:2;margin:0;align-self:center;font-size:12px}.shop-catalog-tools select{font-size:14px;padding-inline:10px}.shop-page>.shop-tabs{margin:20px 0}.shop-result-count{margin:14px 0}.canvas:has(.shop-page) .utility-bar{height:48px}}

/* Collection controls stay in the page; column preference applies at every width. */
.shop-product-grid[data-columns="1"]{grid-template-columns:minmax(0,1fr)}.shop-product-grid[data-columns="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-results-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0}.shop-results-bar .shop-result-count{margin:0}.shop-view-switch{display:flex;gap:4px;border:1px solid var(--line);padding:3px;border-radius:5px}.shop-view-switch button{font-size:12px;min-height:38px;padding:8px 12px;border:0;background:transparent;border-radius:3px;color:var(--ink);cursor:pointer}.shop-view-switch button[aria-pressed=true]{background:var(--ink);color:white}.shop-filter-disclosure{border-bottom:1px solid var(--line);padding:14px 0;font-size:13px}.shop-filter-disclosure summary{cursor:pointer;min-height:32px;align-content:center}.shop-filter-disclosure>div{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:20px;padding:16px 0 8px}.shop-filter-disclosure .field{margin:0;min-width:0}.shop-filter-disclosure .text-btn{min-height:44px}.shop-product-grid[data-columns="1"] .shop-product-photo{aspect-ratio:1.4;max-height:620px}.shop-product-grid[data-columns="1"] .shop-product-photo img{object-fit:contain}
@media(min-width:641px) and (max-width:768px){.shop-product-layout{grid-template-columns:1fr 1fr}.shop-product-media .shop-gallery-main{aspect-ratio:1}}
@media(max-width:600px){.shop-filter-disclosure>div{grid-template-columns:1fr 1fr;gap:12px}.shop-filter-disclosure .text-btn{grid-column:1/-1;justify-self:start}.shop-filter-disclosure select{font-size:16px;max-width:100%}.shop-results-bar{margin:14px 0}.shop-view-switch button{padding-inline:10px}.shop-product-grid[data-columns="1"] .shop-product-heading{display:flex;gap:16px}.shop-product-grid[data-columns="1"] .shop-product-heading>strong{margin-top:0}.shop-product-grid[data-columns="1"] .shop-product-name{font-size:18px}}
/* Club navigation, news and personal sporting context. */
.notification-button{position:relative;min-width:44px;min-height:44px;overflow:visible}.notification-button .icon{width:22px;height:22px}.notification-badge{position:absolute;top:1px;right:0;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#8b372a;color:white;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.desktop-notifications{display:inline-flex}.circuit-hub-tabs{display:flex;gap:6px;margin:4px 0 26px;border-bottom:1px solid var(--line);padding-bottom:12px}.circuit-hub-tabs a{padding:12px 24px;min-height:44px;font-size:14px;border-radius:24px}.circuit-hub-tabs .selected{background:var(--ink);color:white}.club-home-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:28px;align-items:start}.club-home-layout:not(:has(.club-personal)){grid-template-columns:minmax(0,1fr)}.club-news-main{min-width:0}.club-welcome{display:grid;grid-template-columns:1fr 1fr;background:#e9eddf;border-radius:6px;overflow:hidden;margin-bottom:30px;min-width:0}.club-welcome>img{width:100%;height:100%;object-fit:cover;aspect-ratio:1.55}.club-welcome>div{align-self:center;padding:26px;min-width:0}.club-welcome h2{font-size:25px;line-height:1.25;margin-bottom:12px}.club-welcome p{font-size:14px;line-height:1.8;margin-bottom:22px}.club-welcome .text-btn{font-size:13px;white-space:normal}.club-news-feed>.section-heading{margin-bottom:0}.club-news-feed>.section-heading h2{font-size:18px}.club-news-row{padding:26px 0;border-bottom:1px solid var(--line)}.club-news-meta{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:10px}.club-news-row h3{font-size:21px;line-height:1.4;margin-bottom:10px}.club-news-row h3 a:hover{text-decoration:underline;text-underline-offset:4px}.club-news-excerpt{font-size:14px;line-height:1.8;max-width:75ch;white-space:pre-line}.club-news-row>.text-btn{font-size:13px;margin-top:16px;min-height:32px}.club-personal{display:grid;gap:20px}.club-sports-summary{padding:24px}.club-sports-summary h2{font-size:20px}.club-points{margin:24px 0 12px;display:flex;align-items:baseline;flex-wrap:wrap;gap:10px}.club-points>strong{font-size:36px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.2}.club-points>span{font-size:13px;color:var(--muted)}.club-sports-summary>.text-btn{font-size:13px;min-height:44px;margin-top:6px}.club-sports-summary .muted{font-size:13px}.club-next-match{border-top:1px solid var(--line);margin-top:18px;padding-top:22px}.club-next-match h3{font-size:14px;margin-bottom:14px}.club-next-match p{font-size:13px;color:var(--muted);line-height:1.8;margin-bottom:6px}.club-next-match .club-match-opponent{font-size:18px;color:var(--ink);font-weight:600}.club-next-match .text-btn{font-size:13px;min-height:44px;margin-top:10px}.notification-list{padding:0 24px}.notification-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:18px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line)}.notification-row:last-child{border:0}.notification-dot{width:7px;height:7px;border-radius:50%;background:transparent;margin-top:10px}.notification-row.is-unread .notification-dot{background:var(--green)}.notification-row h2{font-size:16px;font-weight:500;margin-bottom:8px}.notification-row.is-unread h2{font-weight:700}.notification-row p:not(.club-news-meta){font-size:14px;line-height:1.8}.notification-row .text-btn{min-height:44px;font-size:13px}.notification-row .club-news-meta{margin-bottom:6px}.club-news-detail{max-width:850px;padding:32px}.club-news-detail p{font-size:16px;line-height:1.9;white-space:normal;overflow-wrap:anywhere;margin-bottom:22px}.club-news-detail p:last-child{margin-bottom:0}.club-admin-news-row{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:22px 0;border-bottom:1px solid var(--line)}.club-admin-news-row:last-child{border:0}.club-admin-news-row h2{font-size:17px;margin-bottom:10px}.club-admin-news-row p{color:var(--muted);font-size:13px}.club-news-form{max-width:850px;padding:28px}.club-news-form textarea{line-height:1.7;min-height:240px}.family-actions{display:flex;flex-wrap:wrap;gap:18px;margin-top:24px}.is-self-player,.bracket-player .is-self-player,.match-player .is-self-player{font-weight:800}.is-self-player small{font-size:12px;white-space:nowrap}.competition-player-name{font-weight:400}.bracket-player.winner .competition-player-name{font-weight:400}.data-table td .competition-player-name{display:inline}.club-news-form .field input,.club-news-form textarea,.club-news-form select{font-size:16px}
@media(max-width:1100px){.club-home-layout{grid-template-columns:minmax(0,1fr) 290px;gap:20px}.club-welcome{grid-template-columns:1fr}.club-welcome>img{aspect-ratio:2.3}.club-welcome>div{padding:24px}.club-welcome h2{font-size:23px}}
@media(max-width:1000px){.desktop-notifications{display:none}.mobile-notifications{display:inline-flex}.mobile-bar{z-index:29}}
@media(max-width:700px){.club-home-layout{display:flex;flex-direction:column;gap:24px}.club-personal{order:-1;width:100%}.club-news-main{width:100%}.club-sports-summary{padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.club-sports-summary>.club-news-meta,.club-sports-summary>h2{grid-column:1/-1}.club-sports-summary .club-points{margin:18px 0 10px;grid-column:1}.club-sports-summary>.muted,.club-sports-summary>.text-btn{grid-column:1}.club-next-match{grid-column:2;grid-row:3/7;margin:18px 0 0;padding:0 0 0 18px;border-top:0;border-left:1px solid var(--line);min-width:0}.club-next-match .club-match-opponent{font-size:16px}.club-next-match p{font-size:13px}.club-points>strong{font-size:32px}.club-welcome{grid-template-columns:1fr;min-height:0}.club-welcome>img{aspect-ratio:2.4}.club-welcome>div{padding:22px}.club-welcome h2{font-size:23px}.club-news-row h3{font-size:20px}.circuit-hub-tabs{gap:4px;margin-bottom:24px}.circuit-hub-tabs a{flex:1;text-align:center;padding:12px 14px;font-size:14px}.notification-list{padding:0 18px}.notification-row{grid-template-columns:7px minmax(0,1fr);gap:12px}.notification-row>.text-btn{grid-column:2;justify-self:start;min-height:36px}.club-news-detail{padding:22px}.club-news-detail p{font-size:15px}.club-admin-news-row{flex-wrap:wrap}.club-news-form{padding:22px}.account-person-row h2{font-size:16px}.family-actions .btn{font-size:13px}.bottom-tab span{font-size:11px}}
@media(max-width:700px){.club-home-layout:has(.club-personal) .club-welcome{grid-template-columns:.8fr 1.2fr;margin-bottom:24px}.club-home-layout:has(.club-personal) .club-welcome>img{height:100%;aspect-ratio:auto}.club-home-layout:has(.club-personal) .club-welcome>div{padding:18px}.club-home-layout:has(.club-personal) .club-welcome h2{font-size:20px;margin-bottom:10px}.club-home-layout:has(.club-personal) .club-welcome p{font-size:13px;line-height:1.6;margin-bottom:12px}.club-sports-summary{gap:0 16px}.club-sports-summary .club-news-meta{margin-bottom:5px}.club-next-match h3{margin-bottom:10px}.club-next-match p{line-height:1.6}.club-next-match .text-btn{margin-top:3px}}
/* Explore the entire draw on every screen with native panning and draw zoom. */
.bracket-explorer{min-width:0}.bracket-navigation{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:18px 0 10px}.bracket-navigation .field{margin:0;min-width:0;flex:0 1 240px}.bracket-navigation select{font-size:16px;min-height:44px}.bracket-navigation .icon-btn{width:44px;height:44px;border:1px solid var(--line);border-radius:5px;font-size:20px}.bracket-navigation .text-btn{font-size:13px;min-height:44px;margin-left:auto}.bracket-help{font-size:13px;line-height:1.7;color:var(--muted);margin:0 0 14px}.bracket-explorer .bracket-scroll{overflow:auto;overscroll-behavior:contain;touch-action:auto;height:min(65svh,620px);min-height:300px;padding:0 16px 16px;border:1px solid #dce2d7;border-radius:6px;background:#f3f5ef;scrollbar-gutter:stable;cursor:grab;scroll-padding:48px 16px}.bracket-explorer .bracket-scroll:focus-visible{outline:2px solid #657f50;outline-offset:4px}.bracket-scroll.is-dragging{cursor:grabbing;user-select:none}.bracket-explorer .bracket-rounds{position:relative;display:flex;gap:40px;min-width:max-content;width:max-content;--match-pitch:204px}.bracket-explorer .bracket-round{display:flex;flex:0 0 264px;width:264px;position:relative}.bracket-explorer .bracket-round h3{display:block;position:sticky;top:0;z-index:3;padding:16px 4px;margin:0;background:#f3f5ef;border-bottom:1px solid #dce2d7;font-size:14px;line-height:20px;color:var(--ink);height:53px}.bracket-explorer .bracket-matches{height:calc(var(--first-round-matches)*var(--match-pitch));flex:none;display:flex;flex-direction:column;justify-content:space-around;gap:0}.bracket-explorer .bracket-match{min-height:152px;z-index:1;box-shadow:none;padding:14px;border-radius:5px;flex-shrink:0}.bracket-explorer .bracket-match:after{display:none!important}.bracket-connections{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;fill:none;stroke:#9aaa90;stroke-width:1.5}.bracket-explorer .bracket-player{min-height:40px;font-size:14px}.bracket-explorer .bracket-match-meta{font-size:12px}.bracket-explorer .bracket-match>.text-btn{min-height:40px}.bracket-explorer .bracket-scroll button{cursor:pointer;touch-action:manipulation}
@media(max-width:600px){.bracket-navigation{gap:8px}.bracket-navigation .field{flex:1}.bracket-navigation .text-btn{margin-left:0;width:100%;justify-content:flex-start;min-height:32px}.bracket-explorer .bracket-scroll{height:62svh;min-height:320px;padding-inline:12px}.bracket-explorer .bracket-round{width:252px;flex-basis:252px}.bracket-explorer .bracket-rounds{gap:32px}.bracket-help{font-size:13px}}
/* Compact notices and a shared shopping action in the top bar. */
.mobile-header-actions{display:flex;align-items:center;gap:8px}.shop-header-cart{position:relative;min-width:44px;min-height:44px}.shop-header-cart>svg{width:22px;height:22px}.header-cart-count{position:absolute;top:1px;right:0;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.desktop-shop-cart{display:inline-flex}.shop-page{padding-bottom:24px}.shop-page .page-heading p:empty{display:none}.shop-page[data-shop-page="catalog"] .shop-results-bar{margin:8px 0 18px}.notification-list{padding:0 18px}.notification-row{width:100%;text-align:left;grid-template-columns:6px minmax(0,1fr) 20px;align-items:center;gap:12px;padding:14px 0;min-height:80px;border-radius:0}.notification-dot{margin:0;width:6px;height:6px}.notification-copy{display:grid;gap:3px;min-width:0}.notification-title{font-size:14px;font-weight:500;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-row.is-unread .notification-title{font-weight:700}.notification-preview{font-size:13px;line-height:1.45;color:#50574b;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;overflow-wrap:anywhere}.notification-meta{font-size:12px;line-height:1.4;color:var(--muted)}.notification-chevron{display:flex;align-items:center;justify-content:center;color:var(--muted)}.notification-chevron .icon{width:16px;height:16px}.notification-row:focus-visible{outline-offset:3px}.notification-row:active{background:var(--tonal)}
@media(hover:hover) and (pointer:fine){.notification-row:hover{background:#f7f8f5}}
@media(min-width:1001px){.canvas:has(.shop-page) .utility-bar{position:sticky;top:0;z-index:30;background:var(--ground)}.canvas:has(.shop-page) .utility-right{gap:12px}}
@media(max-width:1000px){.desktop-shop-cart{display:none}.canvas:has(.shop-page) .utility-bar{position:static}.notification-list{padding:0 14px}}
@media(max-width:600px){.notification-row{grid-template-columns:6px minmax(0,1fr) 16px;gap:10px;padding:12px 0;min-height:82px}.notification-preview{-webkit-line-clamp:2}.notification-title{font-size:14px}.shop-page[data-shop-page="catalog"] .page-heading{margin-bottom:18px}.mobile-header-actions{gap:4px}}

/* Expanded draw keeps the exit and track controls outside the scrolling canvas. */
dialog.bracket-fullscreen{position:fixed;inset:0;margin:0;border:0;border-radius:0;width:100%;max-width:none;height:100dvh;max-height:none;padding:16px max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));padding-top:max(12px,env(safe-area-inset-top));background:#f6f7f2;color:var(--ink);overflow:hidden;box-sizing:border-box}
dialog.bracket-fullscreen[open]{display:flex;flex-direction:column;gap:10px}
.bracket-fullscreen::backdrop{background:#f6f7f2}
.expanded-bracket-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}
.expanded-bracket-header>div{min-width:0}
.expanded-bracket-header h1{font-size:20px;margin:0;line-height:1.3}
.expanded-bracket-header p{font-size:12px;color:#65705d;margin:3px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.expanded-bracket-header button{min-height:44px;flex-shrink:0;gap:14px}
.expanded-bracket-header button span{font-size:24px;line-height:1}
.expanded-bracket-tracks{align-self:flex-start;flex-shrink:0}
.expanded-bracket-tracks button{min-height:44px}
.expanded-rotate-hint{display:none;font-size:13px;color:#65705d;margin:0}
.expanded-bracket-content{flex:1;min-height:0;display:flex}
.bracket-fullscreen .bracket-explorer{display:flex;flex-direction:column;flex:1;min-height:0}
.bracket-fullscreen .bracket-navigation{margin:0 0 8px;flex-shrink:0}
.bracket-fullscreen .bracket-help{margin:0 0 8px;flex-shrink:0}
.bracket-fullscreen .bracket-scroll{height:auto;min-height:0;flex:1}
@media(orientation:portrait) and (max-width:1000px){.expanded-rotate-hint{display:block}}
@media(max-height:500px) and (orientation:landscape){dialog.bracket-fullscreen[open]{gap:6px}.expanded-bracket-header{padding-right:110px;min-height:44px}.expanded-bracket-header h1{font-size:17px}.expanded-bracket-header p{display:none}.expanded-bracket-header>button{position:absolute;top:max(8px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right))}.expanded-bracket-tracks{position:absolute;top:max(8px,env(safe-area-inset-top));left:40%;margin:0}.bracket-fullscreen .bracket-help{display:none}.bracket-fullscreen .bracket-navigation .text-btn{width:auto;margin:0 0 0 auto}.bracket-fullscreen .bracket-navigation{flex-wrap:nowrap}.bracket-fullscreen .bracket-navigation .field{flex:0 1 240px}}

@media(max-height:500px) and (orientation:landscape){.expanded-bracket-header>div{max-width:35%}.expanded-bracket-header h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Draw view controls belong to the canvas, separate from category/track choices. */
.bracket-view-tools{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:18px 0 10px}
.bracket-zoom-controls{display:flex;align-items:center;gap:4px}
.bracket-view-tools .icon-btn{width:44px;height:44px;border:1px solid var(--line);border-radius:5px;font-size:22px}
.bracket-view-tools .text-btn{min-height:44px;padding:0 10px;font-size:13px;white-space:nowrap}
.bracket-view-tools .bracket-zoom-value{min-width:64px;font-variant-numeric:tabular-nums}
.bracket-view-tools [data-bracket-zoom="fit"][aria-pressed="true"]{background:#e5ebdd;border-radius:5px;color:#304526}

.bracket-navigation{margin-top:0}
.bracket-stage{position:relative;flex:none;overflow:hidden;overflow:clip}
.bracket-stage>.bracket-rounds{position:absolute;top:0;left:0;transform-origin:top left}
.bracket-fullscreen .bracket-view-tools{margin:0 0 8px;flex-shrink:0}
@media(max-width:600px){.bracket-view-tools{gap:6px}.bracket-view-tools .text-btn{padding-inline:8px}}
@media(max-height:500px) and (orientation:landscape){.bracket-fullscreen .bracket-explorer{position:relative}.bracket-fullscreen .bracket-view-tools{align-self:flex-end;margin:0;height:44px}.bracket-fullscreen .bracket-navigation{margin-top:-44px;margin-right:300px;height:44px;gap:4px}.bracket-fullscreen .bracket-navigation .field{flex:1}.bracket-fullscreen .bracket-navigation .text-btn{display:none}.bracket-fullscreen .bracket-view-tools .text-btn{padding-inline:6px}.bracket-fullscreen .bracket-view-tools .bracket-zoom-value{min-width:52px}}

/* Only the draw owns the pinch gesture. Page zoom remains available outside it. */
.bracket-explorer .bracket-scroll{touch-action:pan-x pan-y}
.bracket-footer{display:flex;justify-content:flex-end;margin-top:14px}
.bracket-footer>.btn{min-height:44px;font-size:13px;gap:8px}
@media(max-width:600px){.bracket-footer>.btn{width:100%;justify-content:center}}

/* Sports administration and personal media retain the club's quiet surfaces. */
.tournament-detail-photo{width:100%;height:clamp(180px,26vw,340px);object-fit:cover;border-radius:12px;margin-bottom:24px}
.event-photo-field{margin-bottom:20px}.event-photo-field img{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:8px;margin-top:10px}
.profile-photo-editor{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:12px 0 20px}.profile-photo-editor>img{width:64px;height:64px;object-fit:cover;border-radius:50%}.profile-photo-editor label{position:relative;cursor:pointer;overflow:hidden}.profile-photo-editor input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.profile-photo-editor label:focus-within{outline:2px solid #657f50;outline-offset:3px}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.sports-history{padding:24px}.sports-history-filters{display:grid;grid-template-columns:2fr 1.5fr 1fr 1.5fr;gap:14px}.history-admin-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0 24px}.history-admin-actions>div{display:flex;gap:10px;align-items:center;font-size:13px}.sports-history table small{display:block;margin-top:5px;color:var(--muted);line-height:1.5}.sports-history .directory-pagination{margin-top:18px}.competition-actions{flex-wrap:wrap;justify-content:flex-end}.competition-actions .text-btn{min-height:44px}.circuit-hub-tabs{overflow-x:auto}
@media(max-width:700px){.sports-history{padding:18px}.sports-history-filters{grid-template-columns:1fr 1fr}.sports-history-filters>.field:first-child{grid-column:1/-1}.history-admin-actions>div{flex-wrap:wrap}.circuit-hub-tabs a{padding:12px 8px;min-width:76px}.profile-photo-editor .btn{min-height:44px;font-size:13px}.tournament-detail-photo{border-radius:8px}}
.category-rule-editor{margin:16px 0}.category-rule-editor input{font:inherit;font-size:16px;min-height:44px;width:100%;min-width:100px;border:1px solid var(--line);border-radius:5px;padding:8px}.category-rule-editor td:first-child{min-width:180px}.competition-panel>.section-heading{align-items:flex-start;gap:20px}.competition-panel>.section-heading>.competition-actions{max-width:740px}

.imported-roster{margin-bottom:24px}.imported-roster summary{cursor:pointer;font-size:15px;font-weight:600;min-height:32px}.imported-roster[open] summary{margin-bottom:16px}
/* Club operations: results as a compact work list, ranking as a readable table. */
.round-pills{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.round-pills .selected{background:#e8eddf;border-color:#bac7a5}.round-match-list{display:grid;gap:0}.round-match{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid #e7eae2}.round-match:last-child{border-bottom:0}.round-match p{margin:5px 0;font-size:15px}.round-match small{color:#757b6e;font-size:12px}.round-match>.btn{flex-shrink:0}.season-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:12px 0 20px}.season-archive{font-size:13px;min-width:150px}.season-archive summary,.historical-results>summary{cursor:pointer;padding:10px 0}.season-archive .field{margin-top:8px}.history-year-links{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 24px}.historical-results{margin-top:30px}.competition-ranking.rank-compact{padding:16px}.rank-compact .section-heading{margin-bottom:12px}.rank-compact h2{font-size:18px}.rank-compact .competition-updated{font-size:12px;margin:4px 0}.rank-compact .competition-rank-filters{gap:12px;margin:12px 0}.rank-compact .competition-rank-filters .field{margin:0}.rank-compact .data-table td,.rank-compact .data-table th{padding:9px 10px}.rank-compact .data-table td small{font-size:11px;margin-top:2px}.rank-compact:not(.show-point-details) .rank-detail-column{display:none}.rank-compact .table-scroll{min-width:0}.rank-compact table{min-width:0}.rank-detail-toggle{font-size:12px}.defending-point{font-size:10px;color:#747b69}.rank-compact .directory-pagination{padding:12px 0 0}
@media(max-width:600px){.round-match{align-items:flex-start;gap:12px}.round-match>.btn{min-width:0;max-width:115px;padding:9px;font-size:12px}.round-match p{font-size:14px}.round-pills{gap:4px}.round-pills button{font-size:12px;padding:8px}.competition-ranking.rank-compact{padding:12px}.rank-compact .data-table td,.rank-compact .data-table th{padding:9px 7px}.rank-compact .competition-rank-filters{grid-template-columns:minmax(0,1fr) 112px}.rank-compact .field input,.rank-compact .field select{padding:10px;min-width:0}.rank-compact.show-point-details table{min-width:660px}.history-year-links .btn{min-width:72px}}
.competition-preparation{font-size:13px;max-width:650px;text-align:right}.competition-preparation>summary{cursor:pointer;padding:8px 0}.competition-preparation .competition-actions{padding-top:10px;justify-content:flex-end}.round-match .muted{margin:0 4px}@media(max-width:600px){.competition-preparation{max-width:100%;text-align:left}.competition-preparation .competition-actions{justify-content:flex-start}.competition-toolbar{margin-bottom:12px}}
/* A single page title, two inline filters, and rows sized for phone reading. */
.rank-compact>.section-heading{display:none}.rank-compact .competition-rank-filters{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:end}.rank-compact .competition-rank-filters .field{min-width:0;max-width:none}.rank-compact .competition-rank-table td:nth-child(2){min-width:0}.rank-compact .data-table td:last-child,.rank-compact .data-table th:last-child{width:74px;white-space:nowrap}.rank-compact .data-table td:last-child small{white-space:nowrap;font-size:10px}.rank-compact .data-table td{font-size:13px}.rank-compact .competition-rank-table td:last-child strong{font-size:16px}
@media(max-width:600px){.rank-compact .competition-rank-filters{grid-template-columns:minmax(0,1fr) 112px;gap:10px}.rank-compact .data-table td,.rank-compact .data-table th{padding:8px 5px}.rank-compact .data-table td:last-child,.rank-compact .data-table th:last-child{width:66px}.rank-compact .competition-rank-table td:nth-child(2){min-width:0}.rank-compact .field span{font-size:12px}}
/* Official Oleana crest and emblem, preserving the artwork's proportions. */
:root{--club-blue:#0011af;--club-gold:#ffd400;--accent:var(--club-gold)}
.brand .official-crest,.brand .official-symbol{display:block;object-fit:contain;flex-shrink:0}.sidebar .brand{justify-content:center;margin:0 0 18px;min-height:96px;flex-shrink:0}.sidebar .brand .official-crest{width:72px;height:96px}.login-panel .brand{justify-content:flex-start;margin:0 0 24px}.login-panel .brand .official-crest{width:84px;height:112px}.mobile-bar .brand .official-symbol{width:30px;height:38px}.mobile-bar .brand>.club-brand-name{font-size:22px;line-height:1;letter-spacing:-.6px;font-weight:700}.install-app-preview img{object-fit:contain}.install-app-preview strong{font-size:21px}
@media(max-width:600px){.login-panel{padding:28px}.login-panel .brand .official-crest{width:66px;height:88px}.login-panel .brand{margin-bottom:20px}.login-panel h1{font-size:25px}}
