html,body,#root{width:100%;min-height:100%}body{margin:0;font-family:Arial,sans-serif;overflow-x:hidden}:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}*,:before,:after{box-sizing:border-box}.container,.container-fluid{width:100%;margin-left:auto;margin-right:auto;padding-left:12px;padding-right:12px}@media (width>=576px){.container{max-width:540px}}@media (width>=768px){.container{max-width:720px}}@media (width>=992px){.container{max-width:960px}}@media (width>=1200px){.container{max-width:1140px}}@media (width>=1400px){.container{max-width:1320px}}.row{--gutter-x:24px;--gutter-y:0px;margin-top:calc(var(--gutter-y) * -1);margin-right:calc(var(--gutter-x) / -2);margin-left:calc(var(--gutter-x) / -2);flex-wrap:wrap;display:flex}.row>*{width:100%;max-width:100%;padding-right:calc(var(--gutter-x) / 2);padding-left:calc(var(--gutter-x) / 2);margin-top:var(--gutter-y);flex-shrink:0}.col{flex:1 0}.col-1{flex:none;width:8.33333%}.col-2{flex:none;width:16.6667%}.col-3{flex:none;width:25%}.col-4{flex:none;width:33.3333%}.col-5{flex:none;width:41.6667%}.col-6{flex:none;width:50%}.col-7{flex:none;width:58.3333%}.col-8{flex:none;width:66.6667%}.col-9{flex:none;width:75%}.col-10{flex:none;width:83.3333%}.col-11{flex:none;width:91.6667%}.col-12{flex:none;width:100%}@media (width>=576px){.col-sm{flex:1 0}.col-sm-1{width:8.33333%}.col-sm-2{width:16.6667%}.col-sm-3{width:25%}.col-sm-4{width:33.3333%}.col-sm-5{width:41.6667%}.col-sm-6{width:50%}.col-sm-7{width:58.3333%}.col-sm-8{width:66.6667%}.col-sm-9{width:75%}.col-sm-10{width:83.3333%}.col-sm-11{width:91.6667%}.col-sm-12{width:100%}}@media (width>=768px){.col-md{flex:1 0}.col-md-1{width:8.33333%}.col-md-2{width:16.6667%}.col-md-3{width:25%}.col-md-4{width:33.3333%}.col-md-5{width:41.6667%}.col-md-6{width:50%}.col-md-7{width:58.3333%}.col-md-8{width:66.6667%}.col-md-9{width:75%}.col-md-10{width:83.3333%}.col-md-11{width:91.6667%}.col-md-12{width:100%}}@media (width>=992px){.col-lg{flex:1 0}.col-lg-1{width:8.33333%}.col-lg-2{width:16.6667%}.col-lg-3{width:25%}.col-lg-4{width:33.3333%}.col-lg-5{width:41.6667%}.col-lg-6{width:50%}.col-lg-7{width:58.3333%}.col-lg-8{width:66.6667%}.col-lg-9{width:75%}.col-lg-10{width:83.3333%}.col-lg-11{width:91.6667%}.col-lg-12{width:100%}}@media (width>=1200px){.col-xl{flex:1 0}.col-xl-1{width:8.33333%}.col-xl-2{width:16.6667%}.col-xl-3{width:25%}.col-xl-4{width:33.3333%}.col-xl-5{width:41.6667%}.col-xl-6{width:50%}.col-xl-7{width:58.3333%}.col-xl-8{width:66.6667%}.col-xl-9{width:75%}.col-xl-10{width:83.3333%}.col-xl-11{width:91.6667%}.col-xl-12{width:100%}}@media (width>=1400px){.col-xxl{flex:1 0}.col-xxl-1{width:8.33333%}.col-xxl-2{width:16.6667%}.col-xxl-3{width:25%}.col-xxl-4{width:33.3333%}.col-xxl-5{width:41.6667%}.col-xxl-6{width:50%}.col-xxl-7{width:58.3333%}.col-xxl-8{width:66.6667%}.col-xxl-9{width:75%}.col-xxl-10{width:83.3333%}.col-xxl-11{width:91.6667%}.col-xxl-12{width:100%}}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.6667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333%}.offset-5{margin-left:41.6667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333%}.offset-8{margin-left:66.6667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333%}.offset-11{margin-left:91.6667%}@media (width>=576px){.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.6667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333%}.offset-sm-5{margin-left:41.6667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333%}.offset-sm-8{margin-left:66.6667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333%}.offset-sm-11{margin-left:91.6667%}}@media (width>=768px){.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.6667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333%}.offset-md-5{margin-left:41.6667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333%}.offset-md-8{margin-left:66.6667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333%}.offset-md-11{margin-left:91.6667%}}@media (width>=992px){.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.6667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333%}.offset-lg-5{margin-left:41.6667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333%}.offset-lg-8{margin-left:66.6667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333%}.offset-lg-11{margin-left:91.6667%}}.g-0{--gutter-x:0;--gutter-y:0}.g-1{--gutter-x:4px;--gutter-y:4px}.g-2{--gutter-x:8px;--gutter-y:8px}.g-3{--gutter-x:16px;--gutter-y:16px}.g-4{--gutter-x:24px;--gutter-y:24px}.g-5{--gutter-x:48px;--gutter-y:48px}.gx-0{--gutter-x:0}.gx-1{--gutter-x:4px}.gx-2{--gutter-x:8px}.gx-3{--gutter-x:16px}.gx-4{--gutter-x:24px}.gx-5{--gutter-x:48px}.gy-0{--gutter-y:0}.gy-1{--gutter-y:4px}.gy-2{--gutter-y:8px}.gy-3{--gutter-y:16px}.gy-4{--gutter-y:24px}.gy-5{--gutter-y:48px}.navbar{color:#fff;background-color:#111;justify-content:space-between;align-items:center;padding:20px 40px;animation:.6s ease-out slideDown;display:flex}.nav-links{gap:30px;list-style:none;display:flex}.nav-links a{color:#fff;text-decoration:none;position:relative}.nav-links a:after{content:"";background-color:#0f8;width:0;height:2px;transition:width .3s;position:absolute;bottom:-5px;left:0}.nav-links a:hover:after{width:100%}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.app-layout{width:100%;min-height:100vh}.main-content{width:100%;max-width:1400px;margin:0 auto;padding:20px}.card-container{background-color:#fff;border:1px solid #e5e5e5;border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;width:100%;min-width:0;transition:transform .2s,box-shadow .2s;display:grid;overflow:hidden;box-shadow:0 4px 15px #00000014}.card:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0000001f}.card-image{object-fit:contain;background:#f5f5f5;width:100%;height:180px;padding:20px;display:block}.card-content h2{color:#111;margin:0 0 10px;font-size:20px}.card-content p{color:#666;margin:0 0 20px;line-height:1.5}.card-button{color:#fff;cursor:pointer;background-color:#111;border:none;border-radius:6px;padding:10px 18px;font-size:14px}.card-button:hover{background-color:#333}.card{background:#fff;border-radius:12px;width:100%;transition:all .3s;overflow:hidden;box-shadow:0 4px 12px #00000026}.card:hover{transform:translateY(-5px)}.card-content{padding:20px}.card-content h2{margin-top:0}.card-image{object-fit:cover;width:100%;height:200px}.data-card{min-height:250px}.image-card{min-height:350px}.data-content{color:#555;margin-top:15px}.card-button{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;margin-top:20px;padding:10px 18px}.login-page{background:linear-gradient(135deg,#111827,#1f2937);place-items:center;min-height:100vh;padding:2rem;display:grid}.login-card{color:#111827;background:#fff;border-radius:16px;width:min(100%,420px);padding:2rem;box-shadow:0 20px 50px #00000040}.login-card h1{margin:0 0 .5rem;font-size:1.8rem}.login-subtitle{color:#6b7280;margin:0 0 1.5rem}.login-form{flex-direction:column;gap:1rem;display:flex}.login-field{flex-direction:column;gap:.4rem;font-weight:600;display:flex}.login-field input{border:1px solid #d1d5db;border-radius:10px;padding:.8rem 1rem;font-size:1rem}.login-form button{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:10px;margin-top:.5rem;padding:.9rem 1rem;font-size:1rem}.login-success{color:#15803d;margin-top:1rem;font-weight:600}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;min-width:100%;min-height:100%}body{color:#111;background-color:#fff;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}#root{min-height:100vh}.home-page{background-color:#f8f9fa;justify-content:center;align-items:flex-start;gap:30px;width:100%;min-height:calc(100vh - 70px);padding:40px;display:flex}.app{background-image:url(/assets/sports-background-home-CNWON2Nz.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;min-height:100vh}.badminton-page{color:#1f2937;background:#f8fafc;min-height:100vh;padding:50px 20px}.court-header{text-align:center;margin-bottom:40px}.court-header h1{margin-bottom:8px;font-size:36px}.court-header p{color:#64748b}.court-wrapper{justify-content:center;align-items:center;display:flex}.court{aspect-ratio:2;background:#15803d;border:5px solid #fff;width:min(850px,90vw);position:relative;overflow:hidden;box-shadow:0 15px 35px #00000026}.court:before{content:"";pointer-events:none;border:3px solid #fff;position:absolute;inset:25px}.short-service-line{background:#fff;width:3px;position:absolute;top:25px;bottom:25px;left:32%}.short-service-line:after{content:"";background:#fff;width:3px;position:absolute;top:0;bottom:0;left:calc(200% - 3px)}.long-service-line{background:#fff;width:3px;position:absolute;top:25px;bottom:25px;left:16%}.long-service-line:after{content:"";background:#fff;width:3px;position:absolute;top:0;bottom:0;left:calc(425% - 3px)}.singles-line{background:#fff;width:3px;position:absolute;top:25px;bottom:25px}.left-single-line{left:8%}.right-single-line{right:8%}.net{z-index:5;background:repeating-linear-gradient(#111827 0 4px,#e5e7eb 4px 8px);justify-content:center;align-items:center;width:7px;display:flex;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.net span{color:#fff;writing-mode:vertical-rl;background:#111827;border-radius:4px;padding:5px 8px;font-size:11px;font-weight:700;position:absolute}.net-post{z-index:10;background:#111827;border-radius:50%;width:14px;height:14px;position:absolute;top:50%;transform:translateY(-50%)}.court-area{color:#0000;cursor:pointer;z-index:2;background:0 0;border:none;width:25%;transition:background .2s;position:absolute;top:29px;bottom:29px}.court-area:hover{color:#fff;background:#ffffff1f}.court-area span{background:#0000008c;border-radius:6px;padding:8px 15px;font-size:14px}.left-area{left:8%}.right-area{right:8%}.court-info{text-align:center;color:#475569;margin-top:30px;font-size:16px}.court-info strong{color:#111827}@media (width<=700px){.badminton-page{padding:30px 10px}.court-header h1{font-size:28px}.court{width:95vw}.court:before{inset:15px}.center-line,.short-service-line,.long-service-line,.singles-line{top:15px;bottom:15px}}.table-tennis-page{color:#1f2937;background:#f8fafc;min-height:100vh;padding:50px 20px}.table-tennis-header{text-align:center;margin-bottom:45px}.table-tennis-badge{color:#1d4ed8;background:#dbeafe;border-radius:999px;margin-bottom:12px;padding:7px 15px;font-size:13px;font-weight:700;display:inline-block}.table-tennis-header h1{margin:0 0 10px;font-size:38px}.table-tennis-header p{color:#64748b;margin:0}.table-wrapper{justify-content:center;align-items:center;display:flex}.table-tennis-table{aspect-ratio:2;background:#1d4ed8;border:8px solid #111827;border-radius:8px;width:min(850px,92vw);position:relative;overflow:visible;box-shadow:0 20px 40px #0000002e}.table-border{pointer-events:none;border:3px solid #fff;position:absolute;inset:3%}.table-center-line{background:#fff;width:3px;position:absolute;top:3%;bottom:3%;left:50%;transform:translate(-50%)}.table-net{z-index:10;background:repeating-linear-gradient(#111827 0 3px,#e5e7eb 3px 7px);justify-content:center;align-items:center;width:7px;display:flex;position:absolute;top:-18px;bottom:-18px;left:50%;transform:translate(-50%)}.table-net span{color:#fff;writing-mode:vertical-rl;background:#111827;border-radius:4px;padding:5px 7px;font-size:10px;font-weight:700;position:absolute}.table-net-post{z-index:20;background:#111827;border-radius:50%;width:16px;height:16px;position:absolute;top:50%;transform:translateY(-50%)}.left-net-post{left:calc(50% - 16px)}.right-net-post{right:calc(50% - 16px)}.table-area{color:#0000;cursor:pointer;z-index:5;background:0 0;border:none;width:40%;transition:background .2s,color .2s;position:absolute;top:8%;bottom:8%}.table-area:hover{color:#fff;background:#ffffff1f}.table-area span{background:#00000080;border-radius:6px;padding:8px 14px;font-size:14px;font-weight:600}.player-one{left:5%}.player-two{right:5%}.center-mark{background:#fff;width:4px;height:25px;position:absolute;left:50%;transform:translate(-50%)}.top-mark{top:3%}.bottom-mark{bottom:3%}.table-info{text-align:center;color:#64748b;margin-top:35px}.table-info strong{color:#111827}.game-info{background:#fff;border:1px solid #e5e7eb;border-radius:12px;grid-template-columns:repeat(3,1fr);width:min(700px,90%);margin:35px auto 0;padding:20px;display:grid;box-shadow:0 8px 25px #0000000d}.game-info div{flex-direction:column;align-items:center;gap:6px;display:flex}.game-info span{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-size:12px}.game-info strong{font-size:15px}.game-info .available{color:#16a34a}@media (width<=700px){.table-tennis-page{padding:30px 10px}.table-tennis-header h1{font-size:30px}.table-tennis-table{border-width:5px;width:96vw}.table-area span{padding:6px 9px;font-size:11px}.game-info{grid-template-columns:1fr;gap:18px}}.tennis-page{color:#1f2937;background:#f8fafc;min-height:100vh;padding:50px 20px}.tennis-header{text-align:center;margin-bottom:40px}.tennis-badge{color:#166534;background:#dcfce7;border-radius:999px;margin-bottom:12px;padding:7px 15px;font-size:13px;font-weight:700;display:inline-block}.tennis-header h1{margin:0 0 10px;font-size:38px}.tennis-header p{color:#64748b;margin:0}.tennis-court-wrapper{justify-content:center;display:flex}.tennis-court{aspect-ratio:2;background:#16803c;border:5px solid #fff;width:min(900px,92vw);position:relative;overflow:hidden;box-shadow:0 20px 45px #00000026}.court-boundary{pointer-events:none;border:3px solid #fff;position:absolute;inset:6% 5%}.singles-left,.singles-right{background:#fff;width:3px;position:absolute;top:6%;bottom:6%}.singles-left{left:15%}.singles-right{right:15%}.service-line-left,.service-line-right{background:#fff;width:3px;position:absolute;top:6%;bottom:6%}.service-line-left{left:36%}.service-line-right{right:36%}.service-center-line{background:#fff;width:3px;position:absolute;top:6%;bottom:6%;left:50%;transform:translate(-50%)}.tennis-net{z-index:10;background:repeating-linear-gradient(#111827 0 3px,#e5e7eb 3px 7px);justify-content:center;align-items:center;width:8px;display:flex;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.tennis-net span{color:#fff;writing-mode:vertical-rl;background:#111827;border-radius:4px;padding:6px 8px;font-size:10px;font-weight:700;position:absolute}.tennis-post{z-index:20;background:#111827;border-radius:50%;width:15px;height:15px;position:absolute;top:50%;transform:translateY(-50%)}.left-post{left:calc(50% - 15px)}.right-post{right:calc(50% - 15px)}.tennis-area{color:#0000;cursor:pointer;z-index:5;background:0 0;border:0;border-radius:8px;width:28%;height:38%;font-size:13px;font-weight:600;transition:background .2s,color .2s;position:absolute}.tennis-area:hover{color:#fff;background:#ffffff1f}.tennis-area:active{background:#fff3}.top-left{top:8%;left:8%}.top-right{top:8%;right:8%}.bottom-left{bottom:8%;left:8%}.bottom-right{bottom:8%;right:8%}.tennis-info{text-align:center;color:#64748b;margin-top:30px;font-size:16px}.tennis-info strong{color:#111827}@media (width<=700px){.tennis-page{padding:30px 10px}.tennis-header h1{font-size:30px}.tennis-court{width:96vw}.tennis-area{font-size:11px}}.basketball-wrapper{text-align:center;width:100%;max-width:1100px;margin:30px auto}.basketball-wrapper h2{margin-bottom:20px}.basketball-court{aspect-ratio:2;background:#d99a5b;border:5px solid #fff;outline:4px solid #222;width:100%;position:relative;overflow:hidden}.center-line{background:#fff;width:4px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.center-circle{aspect-ratio:1;border:4px solid #fff;border-radius:50%;width:18%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.center-dot{background:#fff;border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.key{border:4px solid #fff;width:18%;height:50%;position:absolute;top:25%}.left-key{border-left:none;left:0}.right-key{border-right:none;right:0}.free-throw-circle{aspect-ratio:1;border:4px solid #fff;border-radius:50%;width:45%;position:absolute;top:50%;transform:translateY(-50%)}.left-key .free-throw-circle{right:-22.5%}.right-key .free-throw-circle{left:-22.5%}.three-point{border:4px solid #fff;border-radius:50%;width:30%;height:80%;position:absolute;top:10%}.left-three{left:-17%}.right-three{right:-17%}.basket-hoop{width:70px;height:100px;position:absolute;top:50%;transform:translateY(-50%)}.backboard{background:#fff;width:8px;height:75px;position:absolute;top:50%;transform:translateY(-50%)}.rim{border:4px solid #fff;border-radius:50%;width:30px;height:30px;position:absolute;top:50%;transform:translateY(-50%)}.left-hoop{left:0}.left-hoop .backboard{left:20px}.left-hoop .rim{left:25px}.right-hoop{right:0}.right-hoop .backboard{right:20px}.right-hoop .rim{right:25px}.court-zone{color:#fff;cursor:pointer;opacity:0;background:#00000026;border:none;border-radius:6px;padding:10px 16px;font-weight:600;transition:all .2s;position:absolute;top:50%;transform:translateY(-50%)}.basketball-court:hover .court-zone{opacity:1}.court-zone:hover{background:#00000059}.left-zone{left:15%}.center-zone{left:50%;transform:translate(-50%,-50%)}.right-zone{right:15%}.selected-zone{background:#f5f5f5;border-radius:8px;margin-top:20px;padding:12px}@media (width<=700px){.basketball-wrapper{padding:10px}.basketball-court{border-width:3px}.basket-hoop{width:45px}.court-zone{padding:6px 8px;font-size:10px}}.swimming-page{box-sizing:border-box;width:100%;max-width:1400px;margin:30px auto;padding:20px;font-family:Arial,sans-serif}.pool-header{justify-content:space-between;align-items:center;margin-bottom:25px;display:flex}.pool-header h2{margin:0;font-size:28px}.pool-header p{color:#777;margin:6px 0 0}.selected-lane{color:#1769aa;background:#e8f5ff;border-radius:8px;padding:12px 20px}.pool-container{box-sizing:border-box;background:#eee;border-radius:16px;width:100%;padding:70px 60px 80px;position:relative;overflow:hidden}.swimming-pool{aspect-ratio:2;background:#16a9df;border:12px solid #fff;border-radius:8px;width:100%;position:relative;overflow:visible;box-shadow:0 0 0 2px #bdbdbd,0 8px 20px #00000026}.lanes{flex-direction:column;display:flex;position:absolute;inset:0}.swim-lane{cursor:pointer;background:#00aeef8c;border:none;border-bottom:2px dashed #fffc;flex:1;align-items:center;padding:0;transition:all .2s;display:flex;position:relative;overflow:hidden}.swim-lane:last-child{border-bottom:none}.swim-lane:hover{background:#ffffff38}.swim-lane.selected{background:#ffc10773;box-shadow:inset 0 0 0 4px #ffc107}.lane-number{color:#1769aa;z-index:10;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:flex;position:absolute;left:15px}.lane-water{position:absolute;inset:0 15px 0 50px}.racing-line{opacity:.8;background:#075b8d;height:5px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.lane-rope{opacity:.95;background:repeating-linear-gradient(90deg,#fff 0 7px,#f4c400 7px 14px);border-radius:10px;height:8px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.marker{background:#ffffffe6;width:3px;position:absolute;top:0;bottom:0}.marker-left{left:10%}.marker-center{left:50%}.marker-right{right:10%}.pool-end-wall{z-index:20;background:#fff;width:10px;position:absolute;top:0;bottom:0}.pool-left-wall{left:0}.pool-right-wall{right:0}.pool-label{color:#555;z-index:30;font-size:12px;font-weight:700;position:absolute;top:-32px}.starting-blocks{z-index:50;flex-direction:column;justify-content:space-around;width:40px;display:flex;position:absolute;top:70px;bottom:80px;left:18px}.starting-block{color:#333;background:#e5e5e5;border:2px solid #777;border-radius:4px;justify-content:center;align-items:center;width:34px;height:28px;font-size:12px;font-weight:700;display:flex;box-shadow:0 2px 4px #0003}.length-dimension{text-align:center;border-bottom:2px solid #555;height:25px;position:absolute;bottom:-45px;left:10%;right:10%}.length-dimension:before,.length-dimension:after{content:"";border-bottom:2px solid #555;width:10px;height:10px;position:absolute;bottom:-5px}.length-dimension:before{border-left:2px solid #555;left:0;transform:rotate(45deg)}.length-dimension:after{border-right:2px solid #555;right:0;transform:rotate(-45deg)}.length-dimension span{background:#eee;padding:0 10px;font-size:13px;font-weight:700;position:relative;top:12px}.width-dimension{border-right:2px solid #555;justify-content:center;align-items:center;width:25px;display:flex;position:absolute;top:20%;bottom:20%;right:-45px}.width-dimension span{writing-mode:vertical-rl;background:#eee;padding:5px;font-size:13px;font-weight:700}.pool-info{justify-content:center;gap:50px;display:flex;position:absolute;bottom:20px;left:60px;right:60px}.pool-info div{flex-direction:column;align-items:center;display:flex}.info-title{color:#777;font-size:12px}.pool-info strong{color:#222;margin-top:3px;font-size:15px}.lane-booking{background:#f7f7f7;border:1px solid #ddd;border-radius:10px;justify-content:space-between;align-items:center;margin-top:25px;padding:18px 22px;display:flex}.lane-booking div{flex-direction:column;display:flex}.lane-booking span{color:#777;font-size:12px}.lane-booking strong{margin-top:3px;font-size:18px}.lane-booking button{color:#fff;cursor:pointer;background:#1769aa;border:none;border-radius:6px;padding:10px 24px;font-weight:700}.lane-booking button:hover{background:#0d4f82}@media (width<=900px){.swimming-page{padding:10px}.pool-container{padding:50px 35px 70px}.starting-blocks{top:50px;bottom:70px;left:5px}.starting-block{width:25px;height:22px;font-size:9px}.lane-number{width:24px;height:24px;font-size:11px;left:8px}.lane-water{left:38px}.pool-info{gap:20px;left:30px;right:30px}}@media (width<=600px){.pool-header{flex-direction:column;align-items:flex-start;gap:10px}.pool-container{overflow-x:auto}.swimming-pool,.pool-info{min-width:850px}}.volleyball-page{box-sizing:border-box;width:100%;max-width:1200px;margin:30px auto;padding:20px;font-family:Arial,sans-serif}.volleyball-header{justify-content:space-between;align-items:center;margin-bottom:25px;display:flex}.volleyball-header h2{margin:0;font-size:28px}.volleyball-header p{color:#777;margin:6px 0 0}.selected-zone{color:#1769aa;background:#e8f5ff;border-radius:8px;padding:12px 20px}.volleyball-court{box-sizing:border-box;background:#eee;border-radius:16px;justify-content:center;width:100%;padding:60px 50px;display:flex;position:relative}.court-boundary{aspect-ratio:2;background:#d89b5b;border:5px solid #fff;outline:3px solid #333;width:100%;position:relative;overflow:visible}.court-half{cursor:pointer;background:0 0;border:none;width:50%;padding:0;transition:background .2s;position:absolute;top:0;bottom:0}.team-a{left:0}.team-b{right:0}.court-half:hover{background:#ffffff26}.court-half.selected{background:#ffc10747;box-shadow:inset 0 0 0 4px #ffc107}.team-label{color:#fffc;letter-spacing:2px;pointer-events:none;font-size:22px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.net{z-index:20;background:repeating-linear-gradient(#222 0 5px,#fff 5px 9px);border:2px solid #222;justify-content:center;align-items:center;width:8px;display:flex;position:absolute;top:-7px;bottom:-7px;left:50%;transform:translate(-50%)}.net span{color:#fff;background:#222;border-radius:4px;padding:4px 8px;font-size:10px;font-weight:700;position:absolute;transform:rotate(-90deg)}.center-line{z-index:5;background:#fff;width:3px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.attack-line{opacity:.9;background:#fff;width:3px;position:absolute;top:33.33%;bottom:33.33%}.team-a .attack-line{right:0}.team-b .attack-line{left:0}.service-zone{color:#555;z-index:30;background:#fff;border-radius:5px;padding:5px 10px;font-size:11px;font-weight:700;position:absolute;bottom:-35px}.service-a{left:5%}.service-b{right:5%}.net-post{z-index:50;background:#222;border-radius:50%;width:12px;height:12px;position:absolute;top:50%}.left-post{left:calc(50% - 6px);transform:translate(-50%)}.right-post{right:calc(50% - 6px);transform:translate(50%)}.dimension-length{text-align:center;border-top:2px solid #555;height:20px;position:absolute;top:-45px;left:0;right:0}.dimension-length span{background:#eee;padding:0 12px;font-size:13px;font-weight:700;position:relative;top:-10px}.dimension-width{border-right:2px solid #555;justify-content:center;align-items:center;width:25px;display:flex;position:absolute;top:0;bottom:0;right:-45px}.dimension-width span{writing-mode:vertical-rl;background:#eee;padding:5px;font-size:13px;font-weight:700}.court-info{justify-content:center;gap:30px;margin-top:25px;display:flex}.info-card{text-align:center;background:#f7f7f7;border:1px solid #ddd;border-radius:8px;min-width:130px;padding:15px}.info-card span{color:#777;margin-bottom:5px;font-size:12px;display:block}.info-card strong{font-size:17px}.volleyball-booking{background:#f7f7f7;border:1px solid #ddd;border-radius:10px;justify-content:space-between;align-items:center;margin-top:25px;padding:18px 22px;display:flex}.volleyball-booking div{flex-direction:column;display:flex}.volleyball-booking span{color:#777;font-size:12px}.volleyball-booking strong{margin-top:4px;font-size:18px}.volleyball-booking button{color:#fff;cursor:pointer;background:#1769aa;border:none;border-radius:6px;padding:11px 25px;font-weight:700}.volleyball-booking button:hover{background:#0d4f82}@media (width<=900px){.volleyball-page{padding:15px}.volleyball-court{padding:50px 35px}.team-label{font-size:17px}.court-info{gap:15px}.info-card{min-width:100px}}@media (width<=600px){.volleyball-page{padding:10px}.volleyball-header{flex-direction:column;align-items:flex-start;gap:12px}.volleyball-header h2{font-size:23px}.volleyball-court{align-items:center;min-height:700px;padding:45px 35px}.court-boundary{aspect-ratio:1/2;width:100%}.court-half{width:100%;height:50%}.team-a{top:0;left:0}.team-b{bottom:0;right:auto}.net{background:repeating-linear-gradient(90deg,#222 0 5px,#fff 5px 9px);width:auto;height:8px;inset:50% -7px auto;transform:translateY(-50%)}.net span{white-space:nowrap;transform:none}.center-line{width:auto;height:3px;inset:50% 0 auto;transform:translateY(-50%)}.attack-line{width:auto;height:3px;inset:auto 33.33% 0}.team-a .attack-line{right:33.33%}.team-b .attack-line{top:0;bottom:auto;left:33.33%}.team-label{font-size:18px}.service-zone{writing-mode:horizontal-tb;bottom:auto;right:auto}.service-a{top:3%;left:-90px}.service-b{bottom:3%;left:-90px}.dimension-length{border-top:none;border-left:2px solid #555;justify-content:center;align-items:center;width:25px;height:auto;display:flex;inset:0 auto 0 -45px}.dimension-length span{writing-mode:vertical-rl;background:#eee;top:auto}.dimension-width{border-top:2px solid #555;border-right:none;justify-content:center;width:100%;height:20px;display:flex;top:-35px;bottom:auto;right:0}.dimension-width span{writing-mode:horizontal-tb;padding:0 10px}.left-post{top:calc(50% - 6px);left:50%;transform:translate(-50%)}.right-post{top:calc(50% + 6px);left:50%;right:auto;transform:translate(-50%)}.court-info{grid-template-columns:1fr 1fr;gap:10px;display:grid}.info-card{min-width:0}.volleyball-booking{flex-direction:column;align-items:stretch;gap:15px}.volleyball-booking button{width:100%}}.football-page{box-sizing:border-box;width:100%;max-width:1400px;margin:30px auto;padding:20px;font-family:Arial,sans-serif}.football-header{justify-content:space-between;align-items:center;margin-bottom:25px;display:flex}.football-header h2{margin:0;font-size:28px}.football-header p{color:#777;margin:6px 0 0}.football-selected{color:#26733a;background:#e8f5e9;border-radius:8px;padding:12px 20px}.football-container{box-sizing:border-box;background:#eee;border-radius:16px;justify-content:center;width:100%;padding:70px 60px;display:flex}.football-field{aspect-ratio:105/68;background:repeating-linear-gradient(90deg,#3b9d42 0 60px,#35923b 60px 120px);border:4px solid #fff;outline:3px solid #333;width:100%;position:relative;overflow:visible;box-shadow:0 8px 20px #0003}.football-half{cursor:pointer;z-index:2;background:0 0;border:none;width:50%;transition:background .2s;position:absolute;top:0;bottom:0}.left-half{left:0}.right-half{right:0}.football-half:hover{background:#ffffff14}.football-half.selected{background:#ffc1072e;box-shadow:inset 0 0 0 4px #ffc107}.half-label{color:#ffffff40;letter-spacing:3px;pointer-events:none;font-size:22px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.halfway-line{z-index:5;background:#fff;width:3px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.center-circle{aspect-ratio:1;z-index:5;border:3px solid #fff;border-radius:50%;width:20%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.center-spot{background:#fff;border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.penalty-area{z-index:5;border:3px solid #fff;width:16%;height:50%;position:absolute;top:25%}.left-penalty{border-left:none;left:0}.right-penalty{border-right:none;right:0}.goal-area{border:3px solid #fff;width:40%;height:50%;position:absolute;top:25%}.left-penalty .goal-area{border-left:none;left:0}.right-penalty .goal-area{border-right:none;right:0}.penalty-spot{background:#fff;border-radius:50%;width:9px;height:9px;position:absolute;top:50%;transform:translateY(-50%)}.left-penalty .penalty-spot{left:65%}.right-penalty .penalty-spot{right:65%}.penalty-arc{aspect-ratio:1;z-index:-1;border:3px solid #fff;border-radius:50%;width:35%;position:absolute;top:50%;transform:translateY(-50%)}.left-penalty .penalty-arc{right:-20%}.right-penalty .penalty-arc{left:-20%}.football-goal{z-index:10;background:#ffffff26;border:3px solid #fff;width:5%;height:16%;position:absolute;top:42%}.left-goal{left:-5%}.right-goal{right:-5%}.goal-net{background:repeating-linear-gradient(45deg,#0000 0 5px,#ffffff80 5px 6px);width:100%;height:100%}.corner{aspect-ratio:1;z-index:5;border:3px solid #fff;border-radius:50%;width:4%;position:absolute}.corner-tl{border-bottom-color:#0000;border-right-color:#0000;top:-2%;left:-2%}.corner-tr{border-bottom-color:#0000;border-left-color:#0000;top:-2%;right:-2%}.corner-bl{border-top-color:#0000;border-right-color:#0000;bottom:-2%;left:-2%}.corner-br{border-top-color:#0000;border-left-color:#0000;bottom:-2%;right:-2%}.field-label{color:#fff;letter-spacing:1px;z-index:20;font-size:10px;font-weight:700;position:absolute;top:50%;transform:translateY(-50%)}.left-label{left:-55px}.right-label{right:-55px}.field-length{text-align:center;border-top:2px solid #555;height:20px;position:absolute;top:-45px;left:0;right:0}.field-length span{background:#eee;padding:0 12px;font-size:13px;font-weight:700;position:relative;top:-10px}.field-width{border-right:2px solid #555;justify-content:center;align-items:center;width:25px;display:flex;position:absolute;top:0;bottom:0;right:-45px}.field-width span{writing-mode:vertical-rl;background:#eee;padding:5px;font-size:13px;font-weight:700}.football-info{justify-content:center;gap:25px;margin-top:25px;display:flex}.football-info-card{text-align:center;background:#f7f7f7;border:1px solid #ddd;border-radius:8px;min-width:150px;padding:15px}.football-info-card span{color:#777;margin-bottom:5px;font-size:12px;display:block}.football-info-card strong{font-size:17px}.football-booking{background:#f7f7f7;border:1px solid #ddd;border-radius:10px;justify-content:space-between;align-items:center;margin-top:25px;padding:18px 22px;display:flex}.football-booking div{flex-direction:column;display:flex}.football-booking span{color:#777;font-size:12px}.football-booking strong{margin-top:4px;font-size:18px}.football-booking button{color:#fff;cursor:pointer;background:#1769aa;border:none;border-radius:6px;padding:11px 25px;font-weight:700}.football-booking button:hover{background:#0d4f82}@media (width<=900px){.football-page{padding:15px}.football-container{padding:55px 40px}.half-label{font-size:16px}.football-info{gap:12px}.football-info-card{min-width:110px}}@media (width<=600px){.football-page{padding:10px}.football-header{flex-direction:column;align-items:flex-start;gap:12px}.football-header h2{font-size:23px}.football-container{align-items:center;min-height:750px;padding:50px 35px}.football-field{aspect-ratio:68/105;width:100%}.football-half{width:100%;height:50%}.left-half{top:0;left:0}.right-half{top:auto;bottom:0;right:auto}.halfway-line{width:auto;height:3px;inset:50% 0 auto;transform:translateY(-50%)}.center-circle{width:20%;top:50%;left:50%}.penalty-area{width:50%;height:16%;top:auto}.left-penalty{border-top:none;border-left:3px solid #fff;top:0;left:25%}.right-penalty{border-bottom:none;border-right:3px solid #fff;bottom:0;right:25%}.goal-area{width:50%;height:40%;top:0}.left-penalty .goal-area{border-top:none;border-left:3px solid #fff;left:25%}.right-penalty .goal-area{border-bottom:none;border-right:3px solid #fff;top:auto;bottom:0;right:25%}.football-goal{width:16%;height:5%;top:auto;left:42%}.left-goal{top:-5%;left:42%}.right-goal{bottom:-5%;right:42%}.left-penalty .penalty-spot{top:65%;left:50%}.right-penalty .penalty-spot{top:35%;right:50%}.penalty-arc{width:35%}.corner{width:4%}.field-label{writing-mode:vertical-rl;font-size:9px;left:auto;right:auto}.left-label{top:-35px;left:50%;transform:translate(-50%)}.right-label{top:auto;bottom:-35px;right:50%;transform:translate(50%)}.field-length{border-top:none;border-left:2px solid #555;justify-content:center;align-items:center;width:25px;height:auto;display:flex;inset:0 auto 0 -45px}.field-length span{writing-mode:vertical-rl;background:#eee;top:auto}.field-width{border-top:2px solid #555;border-right:none;justify-content:center;width:100%;height:20px;display:flex;top:-35px;bottom:auto;right:0}.field-width span{writing-mode:horizontal-tb;padding:0 10px}.football-info{grid-template-columns:1fr 1fr;gap:10px;display:grid}.football-info-card{min-width:0}.football-booking{flex-direction:column;align-items:stretch;gap:15px}.football-booking button{width:100%}}
