/* Phone-first application shell. The same screens are used on every device. */
:root{--ink:#183d31;--green:#24533f;--lime:#dcf391;--bg:#f6f7f2;--muted:#7e877c;--line:#e6e9df}body{background:#dce3d9;font-size:14px;-webkit-font-smoothing:antialiased;overscroll-behavior:none}.shell{position:relative;width:100%;max-width:440px;height:calc(100dvh - 32px);min-height:0;margin:16px auto;background:var(--bg);border:5px solid #254336;border-radius:35px;overflow:auto;scrollbar-width:none;box-shadow:0 22px 80px #183a3420;isolation:isolate}.shell::-webkit-scrollbar{display:none}.app-header{position:sticky;top:0;z-index:15;height:76px;padding:19px 21px 13px;background:#f6f7f2f5;backdrop-filter:blur(14px);border:0;display:flex;justify-content:space-between;align-items:center}.app-brand{font-size:21px;font-weight:800;letter-spacing:-1.1px;display:flex;align-items:center;gap:3px}.mini-logo{font-size:35px;line-height:1;position:relative;margin-right:7px}.mini-logo span{font-size:19px;color:#8fae55;position:absolute;top:-8px;right:-3px}.light-word{font-weight:500}.app-header-actions{display:flex;align-items:center;gap:12px}.preview-dot{font-size:7px;letter-spacing:1px;color:#89947c;border:1px solid #dfe5d6;border-radius:4px;padding:4px}.cart-button{position:relative;width:25px;height:29px;padding:0}.cart-button svg{width:21px;height:21px;stroke-width:1.6}.cart-button span{position:absolute;right:-4px;top:-4px;font-size:8px;padding:1px 4px;min-width:13px;line-height:13px}.header-avatar{width:32px;height:32px;border-radius:50%;background:#e2eacd;color:#5c7144;font-size:13px;font-weight:700;display:grid;place-items:center;border:2px solid #fff}main{max-width:none;min-height:0;padding:10px 20px 12px;margin:0}h1{font-size:27px;letter-spacing:-1px;font-weight:800;line-height:1.2}h2{font-size:18px;letter-spacing:-.5px}h3{font-size:14px;letter-spacing:-.3px}.sub{font-size:12px;line-height:1.65;margin-top:8px}.mobile-greeting{margin:3px 0 23px}.location-chip{color:#87927d;font-size:10px;margin-bottom:12px}.location-chip span{margin:0 5px;color:#b4beaa}.greeting-dot{color:#9ab65b;font-weight:500;vertical-align:top;font-size:24px;margin-left:4px}.next-game{display:flex;align-items:center;gap:12px;border-radius:14px;background:#ebefe1;padding:14px 13px;margin-bottom:18px}.next-icon{width:36px;height:36px;background:#dfe8cf;border-radius:10px;display:grid;place-items:center;flex-shrink:0}.next-icon svg{width:19px;height:19px;stroke-width:1.7}.next-game small{display:block;font-size:7px;letter-spacing:1.1px;color:#859172;font-weight:700}.next-game b{display:block;font-size:11px;margin-top:5px}.next-game em{display:block;font-size:10px;font-style:normal;color:#6f7d62;margin-top:4px}.next-game .arrow{font-size:24px}.play-card{position:relative;overflow:hidden;background:#244f3c;color:#fff;border-radius:20px;padding:23px 20px 17px;min-height:238px}.play-copy{position:relative;z-index:2}.play-copy .eyebrow{font-size:8px;letter-spacing:1.5px;color:#cbdf9e}.play-copy h2{font-size:31px;line-height:1.15;letter-spacing:-1.2px;margin:12px 0 8px;font-weight:600}.play-copy p{font-size:10px;color:#c0d1bf}.play-art{position:absolute;width:240px;right:-67px;top:4px;height:202px;opacity:.8;transform:rotate(-7deg)}.play-art svg{width:100%;height:100%}.play-card>.btn{position:relative;z-index:3;margin-top:20px;justify-content:space-between;font-size:12px;height:46px;border-radius:10px}.btn{min-height:46px;padding:12px 16px;font-size:12px;border-radius:11px}.btn.small{min-height:40px;padding:9px 13px;font-size:11px}.app-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0 26px}.app-actions a{position:relative;display:flex;flex-direction:column;background:white;border:1px solid var(--line);border-radius:16px;padding:15px 13px;min-height:116px}.action-symbol{height:29px}.action-symbol svg{width:23px;height:23px;stroke-width:1.5}.app-actions b{font-size:12px;margin-top:8px}.app-actions small{font-size:8px;margin-top:5px;color:#89917e}.action-arrow{position:absolute;top:16px;right:13px;color:#899679;font-size:15px}.section-heading{margin-bottom:14px}.text-link{font-size:10px;color:#738a55;padding:8px 0;white-space:nowrap}.mobile-game-list{display:grid;gap:12px}.mobile-match{padding:17px;background:white;border:1px solid var(--line);border-radius:17px}.match-top{display:flex;justify-content:space-between;gap:9px;align-items:center;margin-bottom:11px}.match-top .tag{font-size:8px;padding:5px 8px;background:#eef3e5;font-weight:600}.match-when{font-size:9px;color:#839078}.mobile-match h3{font-size:13px;letter-spacing:-.25px}.mobile-match .meta{font-size:9px;margin-top:6px}.match-bottom{display:flex;align-items:center;gap:12px;margin-top:15px}.match-bottom .avatars{margin:0;flex:1;min-width:96px}.avatars .avatar,.avatars .avatar:last-child{width:28px;height:28px;font-size:9px;margin-left:-5px;border:2px solid white;color:#58704b}.avatars .avatar:first-child{margin-left:0}.avatars .empty-player{background:white;color:#90a577;border:1px dashed #b9c8a5}.match-price{font-size:15px;font-weight:800;white-space:nowrap}.match-price small{font-size:8px;font-weight:400;color:#8a947e;display:block;margin-top:2px}.match-spots{font-size:8px;color:#87967b;margin-top:11px}.cards{grid-template-columns:1fr;gap:13px}.card{border-radius:17px}.mobile-court{padding:13px;background:white}.court-overview{display:flex;gap:13px}.mobile-court .court-image{width:96px;height:104px;border-radius:10px;flex-shrink:0}.mobile-court .court-image svg{height:100%;width:100%}.court-info{flex:1;min-width:0;padding-top:3px}.court-kicker{font-size:7px;letter-spacing:.9px;color:#8c967e;display:flex;justify-content:space-between;gap:5px}.court-kicker span{font-size:9px;color:#6e8054;letter-spacing:0}.court-info h3{font-size:13px;margin-top:9px;line-height:1.3}.court-info .meta{font-size:9px;margin-top:5px}.court-price{margin-top:10px;font-size:10px;color:#839075}.court-price b{font-size:17px;color:var(--ink)}.court-bottom{margin-top:12px;border-top:1px solid #eff1e9;padding-top:10px}.court-share{font-size:8px;color:#849274}.slots{gap:7px;margin-top:9px;display:flex;overflow:auto;flex-wrap:nowrap;padding-bottom:2px;scrollbar-width:none}.slot{font-size:11px;min-height:38px;min-width:64px;border-radius:8px;padding:8px 10px}.guide-link{display:flex;justify-content:space-between;width:100%;background:#eaf0e0;border:0;border-radius:12px;color:#6b7e55;padding:17px 13px;font-size:10px;margin-top:20px}.guide-link b{color:#32533d}.app-footnote{text-align:center;font-size:8px;color:#9ba58f;padding:16px 20px 104px;line-height:1.7}.bottom-nav{position:fixed;z-index:25;bottom:21px;left:50%;transform:translateX(-50%);width:430px;height:79px;background:#fffffff5;backdrop-filter:blur(14px);border-top:1px solid #e8ecdf;border-radius:0 0 29px 29px;display:grid;grid-template-columns:repeat(5,1fr);gap:0;padding:8px 10px 13px;margin:0}.bottom-nav a{padding:6px 1px;display:flex!important;flex-direction:column;justify-content:center;align-items:center;gap:6px;border-radius:12px;font-size:8px;color:#9aa48e;min-width:0;font-weight:600;min-height:50px}.bottom-nav a span{display:block!important}.bottom-nav a svg{width:21px;height:21px;stroke-width:1.65}.bottom-nav a.active{background:#eff4e7;color:#355c40}.bottom-nav a.active svg{stroke-width:2}.bottom-nav a:hover{background:#f1f5eb}.page-heading{display:block;margin:6px 0 22px}.page-heading h1{font-size:25px}.page-heading>.btn,.page-heading>.text-link{margin-top:15px}.page-heading .sub{font-size:11px;max-width:300px}.back-link{background:none;border:0;padding:0 0 14px;font-size:11px;color:#7c8e69;min-height:32px}.date-strip{gap:7px;margin:0 -20px 16px;padding:0 20px 5px}.date-button{min-width:54px;padding:10px 7px;border-radius:12px}.date-button span{font-size:8px;margin-bottom:7px}.date-button b{font-size:18px}.filter-bar{margin:15px 0;gap:8px;display:grid;grid-template-columns:1fr 1fr}.filter-bar input{grid-column:1/-1;width:100%}.input,select,input,textarea{font-size:14px;min-height:44px;border-radius:10px}.filter-bar select{font-size:10px;max-width:100%;min-width:0;padding:10px}.input[type=search]{font-size:12px}.pill-tabs{flex-wrap:nowrap;overflow:auto;margin:0 -20px 20px;padding:0 20px 4px;gap:7px;scrollbar-width:none}.pill-tabs button{flex-shrink:0;font-size:10px;min-height:38px;padding:9px 13px}.notice{font-size:9px;padding:11px 13px;margin-bottom:17px;line-height:1.6}.panel{padding:17px;border-radius:16px}.quiet-note{font-size:9px;color:#929c87;line-height:1.75;margin:20px 3px}.coach-head{padding:18px;gap:12px}.coach-head .avatar{width:48px;height:48px;font-size:18px}.card-body{padding:18px}.coach-head .eyebrow{font-size:8px}.training .cards{gap:14px}.price-row{margin-top:15px}.price{font-size:22px}.price small{font-size:10px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.product-image{height:153px}.product-image svg{height:128px;width:128px}.product-image .tag{font-size:6px;top:9px;left:8px;padding:5px}.product-grid .card-body{padding:12px}.product-grid h3{font-size:12px}.product-grid .meta{font-size:8px;line-height:1.5}.product-name{min-height:66px}.product-grid .price-row{display:block;margin-top:5px}.product-grid .price{font-size:19px}.product-grid .price-row .btn{width:100%;margin-top:11px;min-height:40px;font-size:10px}.profile-cover{text-align:center;padding:10px 0 22px}.big-avatar{display:grid;place-items:center;margin:0 auto 15px;width:78px;height:78px;background:#e2ebd2;border:5px solid white;border-radius:50%;box-shadow:0 3px 12px #36513d10;font-size:29px;font-weight:700;color:#6b8750}.profile-cover h1{font-size:25px}.profile-cover p{font-size:11px;color:#849379;margin:8px 0}.edit-profile{border:0;background:none;color:#5d7e49;font-size:11px;text-decoration:underline;text-underline-offset:4px;padding:7px}.profile-role{background:#eaf0e0;border-radius:15px;padding:15px;margin-bottom:19px}.profile-role>.eyebrow{font-size:8px;letter-spacing:1.3px;color:#859675}.role-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:10px}.role-choices button{background:transparent;color:#7b8c69;border:0;border-radius:9px;font-size:11px;min-height:41px}.role-choices button.active{background:white;color:#35533b;box-shadow:0 3px 7px #193e2010;font-weight:700}.settings-list{background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden}.settings-list>a,.settings-list>button{display:flex;gap:13px;align-items:center;padding:17px 15px;width:100%;background:none;border:0;border-bottom:1px solid #edf0e6;text-align:left;color:var(--ink)}.settings-list>a:last-child,.settings-list>button:last-child{border-bottom:0}.settings-list b{font-size:12px;display:block}.settings-list small{display:block;color:#8e9984;font-size:9px;margin-top:5px}.settings-icon{width:28px;display:grid;place-items:center;font-size:23px}.settings-icon svg{width:23px;height:23px;stroke-width:1.5}.settings-list .arrow{font-size:21px}.app-version{text-align:center;color:#6f8559;font-size:9px;font-weight:700;letter-spacing:1.2px;padding:10px}.app-version span{display:block;font-size:7px;font-weight:400;margin-top:6px;color:#a3ad97}.stats{gap:8px;margin-bottom:17px}.stat{padding:16px 10px;border-radius:13px;text-align:center}.stat span{font-size:8px}.stat b{font-size:23px;margin:9px 0 0}.request-card{border:1px solid var(--line);border-radius:15px;background:white;padding:16px}.request-person{display:flex;align-items:center;gap:12px;margin-bottom:15px}.request-person h3{font-size:13px}.request-person .meta{font-size:9px}.request-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.request-actions .btn{min-height:40px;font-size:11px}.schedule-date{display:flex;align-items:center;justify-content:space-between;font-size:12px}.schedule-date input{width:155px;font-size:12px}.owner-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.owner-slots button{border:1px solid #dbe7ce;background:#f2f7e9;color:#537340;border-radius:9px;padding:9px 3px;min-height:53px}.owner-slots button b{display:block;font-size:12px}.owner-slots button span{display:block;font-size:7px;margin-top:5px}.owner-slots .blocked{background:#f0eade;border-color:#e4d6b9;color:#9a7947}.owner-slots .booked{background:#d7e8bd;color:#44642d}.owner-court h3{font-size:12px}.owner-court .tag{font-size:8px}.booking{padding:16px;gap:12px;flex-wrap:wrap;border-radius:15px;margin-bottom:10px}.booking .grow{min-width:190px;flex:1}.booking h3{font-size:12px}.booking .sub{font-size:10px}.booking .meta{font-size:8px}.booking>.btn{margin-left:auto}.booking .match-day{min-width:39px;font-size:8px;padding:9px}.booking .status{font-size:8px}.empty{padding:30px 16px}.empty h2{font-size:18px}.empty p{font-size:11px;line-height:1.7}.federation-hero{display:block;padding:24px;border-radius:18px;margin-bottom:18px}.federation-hero h2{font-size:25px;line-height:1.25;letter-spacing:-.8px}.federation-hero p{font-size:11px;line-height:1.9}.federation-hero .eyebrow{font-size:7px;letter-spacing:1.2px}.federation-seal{display:none}.bottom-grid{grid-template-columns:1fr;gap:16px}.prose{font-size:12px}.help-step h3{font-size:12px}.help-step p{font-size:11px}.help-step b.number{width:27px;height:27px;font-size:11px}.form-row{grid-template-columns:1fr 1fr;gap:10px}.form-grid label{font-size:11px}.form-grid textarea{font-size:13px}.form-grid input,.form-grid select{font-size:14px;min-width:0}.form-grid{gap:14px}.summary{padding:15px;margin:15px 0}.summary-line{font-size:11px;gap:10px}.summary-line.total{font-size:18px}.cart-row h3{font-size:12px}.quantity button{width:33px;height:33px}.cart-row .grow{flex:1}.modal-head{padding:25px 22px 18px;position:sticky;top:0;background:white;z-index:2}.modal-head h2{font-size:20px}.modal-body{padding:0 22px 27px}.close{width:36px;height:36px;flex-shrink:0}dialog{position:fixed;top:auto;bottom:21px;margin:0 auto;width:430px;max-width:calc(100% - 10px);max-height:calc(100dvh - 90px);border-radius:24px 24px 29px 29px;animation:sheet-up .22s ease-out}dialog::backdrop{background:#122d2869;backdrop-filter:blur(3px)}#toast{max-width:370px;width:max-content;bottom:112px;padding:13px 17px;font-size:11px;line-height:1.5;border-radius:12px;z-index:50}.modal-body .notice{font-size:10px}.modal-body .sub{font-size:11px}.modal-body .eyebrow{font-size:8px}.modal-body .tag{font-size:8px}.success h2{font-size:21px}.success p{font-size:12px}.success{padding-top:5px}@keyframes sheet-up{from{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:500px){body{background:var(--bg)}.shell{border:0;border-radius:0;margin:0;max-width:none;width:100%;height:100dvh;box-shadow:none}.app-header{padding-top:calc(19px + env(safe-area-inset-top));height:calc(76px + env(safe-area-inset-top))}.bottom-nav{width:100%;max-width:none;bottom:0;height:calc(74px + env(safe-area-inset-bottom));padding-bottom:calc(8px + env(safe-area-inset-bottom));border-radius:0}.app-footnote{padding-bottom:calc(95px + env(safe-area-inset-bottom))}dialog{bottom:0;width:100%;max-width:100%;border-radius:24px 24px 0 0;max-height:90dvh}.modal-body{padding-bottom:calc(25px + env(safe-area-inset-bottom))}#toast{bottom:calc(93px + env(safe-area-inset-bottom));max-width:calc(100vw - 36px)}input,select,textarea{font-size:16px}.form-grid input,.form-grid select,.form-grid textarea{font-size:16px}}@media(max-width:360px){main{padding-left:16px;padding-right:16px}.app-header{padding-left:16px;padding-right:16px}.preview-dot{display:none}.app-actions small{font-size:7px}.match-bottom{gap:8px}.match-bottom .btn{padding:8px 10px}.court-overview{gap:10px}.mobile-court .court-image{width:83px}.court-info h3{font-size:12px}.greeting-dot{font-size:20px}.form-row{grid-template-columns:1fr}.product-image svg{width:105px}.bottom-nav a{font-size:7px}}
/* Readable secondary text and touch targets. */
.date-strip{scrollbar-width:none}.date-strip::-webkit-scrollbar{display:none}.bottom-nav a{font-size:10px}.slot{min-height:44px}.app-actions small{font-size:10px;line-height:1.5}.app-actions a{min-height:126px}.court-kicker{font-size:8px}.court-info .meta,.court-share,.mobile-match .meta,.match-when,.match-spots{font-size:10px}.next-game small{font-size:8px}.next-game b{font-size:12px}.profile-cover p,.settings-list small{font-size:11px}.quiet-note{font-size:10px}.modal-body .sub,.summary-line{font-size:12px}.summary-line.total{font-size:19px}.product-grid .meta{font-size:10px}.product-name{min-height:78px}.owner-slots button span{font-size:9px}.owner-slots button{min-height:60px}.form-grid label{font-size:12px}.date-button span{font-size:9px}.tag{font-size:10px}.match-top .tag{font-size:9px}.filter-bar select{font-size:12px}.input[type=search]{font-size:14px}.guide-link{font-size:11px}.app-footnote{font-size:9px}.booking .sub{font-size:11px}.request-person .meta{font-size:10px}.stats .stat span{font-size:10px}.product-grid .btn{font-size:11px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* One decision at a time; secondary information opens on demand. */
.simple-greeting{margin:8px 0 25px}.simple-greeting>span{display:block;color:#859077;font-size:11px;margin-bottom:10px}.simple-greeting h1{font-size:27px}.home-primary{display:grid;gap:12px;margin:0 0 22px}.home-primary .btn{justify-content:space-between;min-height:57px;font-size:14px;padding:15px 19px;border-radius:14px}.home-primary .btn.light{border:1px solid #ced9c1;background:white}.simple-next{margin-bottom:18px}.simple-next b{font-size:13px}.simple-next em{font-size:10px}.home-links{background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-top:20px}.home-links a{display:flex;align-items:center;gap:12px;padding:15px 17px;min-height:61px;border-bottom:1px solid var(--line)}.home-links a:last-child{border-bottom:0}.home-links svg{width:21px;height:21px;stroke-width:1.6}.home-links a>span{width:23px;height:23px;color:#6a8255}.home-links b{font-size:13px;font-weight:600}.home-links i{font-style:normal;margin-left:auto;color:#8d9c7b;font-size:23px}.search-resume{display:flex;width:100%;justify-content:space-between;align-items:center;background:#edf3e2;border:1px solid #dce7cc;border-radius:12px;padding:14px;margin-bottom:18px;font-size:12px;color:#3b5e36}.search-resume span{font-size:11px;color:#7a8f62}.booking-details{width:100%;border-top:1px solid var(--line);padding-top:3px;margin-top:0}.booking-details summary,.profile-role summary,.op-management summary,.sports-kings>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;min-height:46px;font-size:12px;color:#5b7650;font-weight:600}.booking-details summary::-webkit-details-marker,.profile-role summary::-webkit-details-marker,.op-management summary::-webkit-details-marker,.sports-kings>summary::-webkit-details-marker{display:none}.booking-details[open]>summary,.profile-role[open]>summary{margin-bottom:8px}.booking-details .btn{margin:5px 0}.booking-result{padding:10px 12px;font-size:14px}.profile-role{padding:7px 16px;margin-bottom:15px}.profile-cover{padding:7px 0 17px}.big-avatar{width:58px;height:58px;font-size:22px;margin-bottom:12px}.profile-cover h1{font-size:23px}.profile-cover p{margin-top:7px;font-size:11px}.app-footnote{padding-top:10px}.app-version{display:none}.coach-list{display:grid;gap:12px;margin-bottom:25px}.coach-choice{display:flex;align-items:center;gap:13px;background:white;border:1px solid var(--line);border-radius:15px;padding:17px 14px;text-align:left;color:var(--ink);min-height:88px;width:100%}.coach-choice .avatar{height:43px;width:43px;font-size:14px}.coach-choice>span:nth-child(2){flex:1;min-width:0}.coach-choice b{display:block;font-size:13px;font-weight:700}.coach-choice small{display:block;font-size:11px;color:#819170;margin-top:7px}.coach-choice i{font-style:normal;font-size:25px;color:#8b9b79}.op-management{background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px 13px;margin:16px 0}.op-management .op-links{margin:0 0 8px}.settings-list small{display:none}.settings-list>a,.settings-list>button{min-height:61px}.profile-cover .edit-profile{min-height:38px}.booking .grow{min-width:150px}.booking .status{font-size:9px;padding:6px 8px}.booking .meta{font-size:10px}.booking .sub{font-size:11px}.court-detail-art{height:130px}.court-facilities span{font-size:10px;padding:6px 8px}.federation-mini p{font-size:13px;line-height:1.8;margin:12px 0 20px}.federation-mini .btn{margin-top:10px}.federation-mini .quiet-note{font-size:10px;margin-bottom:0}
