@font-face{font-family:Vortek;src:local('Arial')}*{box-sizing:border-box}html{color-scheme:dark;scroll-behavior:smooth}body{margin:0;background:#10120f;color:#f4f5ef;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.5}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button{border:0;background:none;color:inherit}a{color:inherit}button:disabled{opacity:.38;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #c6ff00;outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.15;letter-spacing:-.035em}h1{font-size:36px;font-weight:700}h2{font-size:23px}h3{font-size:18px}small{font-size:12px}.muted{color:#a0a69b}.eyebrow{font-size:10px;letter-spacing:.19em;font-weight:700;text-transform:uppercase;color:#9aa28f}.lime{color:#c6ff00}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:16px}.gap8{gap:8px}.mt{margin-top:24px}.hidden{display:none!important}.btn{min-height:44px;padding:11px 18px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:9px;font-size:13px;font-weight:700;background:#c6ff00;color:#171c0b;transition:transform .15s,background .15s;text-decoration:none;white-space:nowrap}.btn:hover{background:#d5ff50}.btn:active{transform:scale(.97)}.btn.secondary{background:#22271f;color:#edf1e7;border:1px solid #373e30}.btn.secondary:hover{background:#2d3428}.btn.ghost{background:transparent;color:#b8c0af;padding-inline:10px}.btn.danger{background:#4c2424;color:#ffb7b7}.btn.small{min-height:34px;padding:7px 11px;font-size:11px}.icon{width:19px;height:19px;vertical-align:middle;flex-shrink:0}.iconbtn{height:42px;min-width:42px;border-radius:8px;border:1px solid #353c2d;display:inline-flex;align-items:center;justify-content:center;background:#1e231b}.iconbtn:hover{border-color:#a4c35d}.app-shell{display:grid;grid-template-columns:222px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;padding:30px 20px;display:flex;flex-direction:column;background:#0a0c09;border-right:1px solid #262b21}.brand{display:block;width:164px;height:99px;object-fit:contain;margin:0 auto 35px}.nav{display:flex;flex-direction:column;gap:7px}.nav button{display:flex;align-items:center;gap:12px;min-height:46px;padding:12px 15px;text-align:left;color:#8e9883;border-radius:8px;font-size:13px}.nav button.active{background:#c6ff0014;color:#d1ff4e;border:1px solid #c6ff0020}.nav button:hover{color:#fff}.nav .navbadge{margin-left:auto;font-size:10px;background:#252d1e;border-radius:5px;padding:1px 6px}.sidebar-bottom{margin-top:auto;border-top:1px solid #262b21;padding:22px 8px 0}.sidebar-bottom p{font-size:11px;color:#818c75;margin:10px 0}.statusdot{display:inline-block;width:6px;height:6px;background:#c6ff00;border-radius:100%;margin-right:6px}.workspace{min-width:0}.topbar{height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 42px;border-bottom:1px solid #272c22}.topbar .crumb{font-size:12px;color:#858e7c}.topbar .crumb b{color:#d8ddd2;font-weight:400;margin-left:9px}.avatar{width:32px;height:32px;background:#c6ff0018;border:1px solid #c6ff0030;border-radius:50%;display:grid;place-items:center;color:#c6ff00;font-size:11px;font-weight:700}.main{padding:34px 42px 48px;max-width:1500px;margin:0 auto}.heading{margin-bottom:26px}.heading h1{margin-top:7px}.heading p{margin-top:10px;color:#9da792;font-size:13px}.hero{position:relative;overflow:hidden;border:1px solid #3d4c29;border-radius:15px;background:#192014;min-height:267px;display:grid;grid-template-columns:1.1fr 1fr;margin-bottom:28px}.hero-copy{position:relative;z-index:1;padding:34px}.hero .eyebrow{color:#c6ff00}.hero h1{font-size:clamp(34px,3.7vw,52px);line-height:1.07;margin:17px 0 14px;max-width:500px}.hero h1 em{color:#c6ff00;font-style:normal}.hero p{font-size:12px;color:#aab69b;margin-bottom:23px}.hero-art{display:grid;place-items:center;position:relative;background:radial-gradient(ellipse at 70% 40%,#84aa1521,transparent 70%);min-height:230px}.court{width:85%;max-width:380px;transform:perspective(650px) rotateX(30deg) rotateZ(-23deg);filter:drop-shadow(0 20px 26px #c6ff0010)}.court rect,.court path{fill:none;stroke:#a8cb493f;stroke-width:1.2}.court .net{stroke:#d0f58a;stroke-dasharray:2 2;stroke-width:2}.court .ball{fill:#c6ff00;stroke:none}.court .ring{stroke:#c6ff0030;stroke-width:15}.hero-vertical{position:absolute;right:17px;top:25px;writing-mode:vertical-rl;font-size:9px;letter-spacing:.27em;color:#81916c}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:32px}.stat{display:flex;justify-content:space-between;align-items:center;padding:19px 21px;background:#181c15;border:1px solid #2c3326;border-radius:11px}.stat strong{font-size:29px;line-height:1.1;font-weight:500}.stat p{color:#969f8d;font-size:11px;margin-top:5px}.stat .stat-icon{width:40px;height:40px;border:1px solid #3b472b;border-radius:10px;color:#b4d97b;display:grid;place-items:center}.section-title{margin-bottom:18px}.section-title h2{font-size:20px}.pills{display:flex;gap:6px;flex-wrap:wrap}.pill{border-radius:6px;padding:7px 12px;color:#919c85;font-size:11px;border:1px solid transparent;min-height:34px}.pill.active{color:#e2eccf;background:#293021;border-color:#3a452e}.pill:hover{color:#e8efd9}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.card{position:relative;border:1px solid #303728;background:#191e16;border-radius:12px;overflow:hidden;padding:21px;transition:border-color .2s}.card:hover{border-color:#53633f}.event-card{cursor:pointer;display:flex;flex-direction:column;min-height:215px;text-align:left;width:100%}.card h3{margin:19px 0 8px;line-height:1.3;font-size:18px}.card p{font-size:11px;color:#96a289}.card .bottom{margin-top:auto;padding-top:24px;display:flex;align-items:center;justify-content:space-between;color:#a4b48f;font-size:11px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:9px;font-weight:700;letter-spacing:.045em;text-transform:uppercase;padding:5px 8px;border-radius:5px;background:#2d3625;color:#c3d4ab}.badge.live{color:#d0fa7e;background:#c6ff0015}.badge.done{background:#27352b;color:#9cceb0}.badge.blue{background:#20343c;color:#8ac0d7}.badge.orange{background:#3b3020;color:#e9c18a}.badge.red{background:#3a2424;color:#eea9a9}.progress{height:3px;background:#31382a;border-radius:10px;overflow:hidden;margin-top:13px}.progress span{display:block;height:100%;background:#c6ff00}.empty{border:1px dashed #414b34;border-radius:13px;text-align:center;padding:38px 24px;background:#161b1280}.empty h3{margin:16px 0 8px;font-size:20px}.empty p{max-width:470px;color:#9aa98b;font-size:12px;margin:0 auto 20px}.mode-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:#c6ff0012;border:1px solid #c6ff0028;color:#c6ff00}.mode-card{min-height:174px;cursor:pointer;text-align:left}.mode-card:hover{background:#202819}.mode-card h3{margin:16px 0 9px}.tiny{font-size:10px;color:#819071}.footer-note{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#738167;margin-top:30px;padding-top:22px;border-top:1px solid #293022}.mobile-brand,.mobile-nav{display:none}.demo-strip{background:#c6ff00;color:#20280a;display:flex;justify-content:center;align-items:center;gap:18px;padding:9px;font-size:12px}.demo-strip button{text-decoration:underline;font-weight:bold}.notice{padding:13px 16px;border-radius:8px;background:#c6ff000b;border:1px solid #c6ff0028;color:#b8cb9a;font-size:12px;line-height:1.6}.notice.warn{background:#f8b3440b;border-color:#b68e4b40;color:#d3b586}.notice.error{color:#edb1a9;border-color:#b4524340;background:#b4524310}.page-tabs{display:flex;gap:22px;border-bottom:1px solid #353e2c;margin:25px 0}.page-tabs button{padding:12px 0;font-size:12px;color:#94a182;border-bottom:2px solid transparent;min-height:45px}.page-tabs button.active{color:#c6ff00;border-bottom-color:#c6ff00}.panel{background:#181e14;border:1px solid #303a26;border-radius:12px;padding:23px;margin-bottom:18px}.match-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.match-card{display:block;width:100%;text-align:left;background:#191f15;border:1px solid #343f29;border-radius:11px;padding:17px}.match-card:hover{border-color:#879e58}.match-card .vs{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:12px}.match-card .team-name{font-size:12px;line-height:1.5}.match-card .mini-score{font-size:18px;font-weight:700;color:#dfe9d2}.match-card .winner{color:#c6ff00}.match-card .time{font-size:10px;color:#91a37d;margin-top:10px}.match-card .score-sets{font-size:11px;color:#a6b496;margin-top:10px}.match-card .bye{font-size:11px;color:#81916f;margin-top:10px}.group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:11px}th{text-align:left;color:#83926f;font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;padding:14px 8px;border-bottom:1px solid #3a452f}td{padding:13px 8px;border-bottom:1px solid #2c3624}td.num,th.num{text-align:center}tbody tr:last-child td{border-bottom:0}.rank-name{min-width:120px;font-size:12px}.rank-pos{color:#a3b389;width:27px}.qualify{color:#c6ff00}.repechage{color:#deba88}.group-panel{padding:18px}.group-panel h3{font-size:16px}.table-help{margin-top:12px;font-size:10px;color:#849572}.bracket{display:flex;gap:16px;overflow-x:auto;padding-bottom:20px;scroll-snap-type:x proximity}.bracket-col{min-width:255px;width:255px;flex-shrink:0;scroll-snap-align:start}.bracket-col h3{font-size:13px;margin-bottom:14px;padding:10px 0;border-bottom:1px solid #465537}.bracket-col .match-card{margin-bottom:12px}.bracket-label{margin:24px 0 14px;color:#c6ff00;font-size:12px;letter-spacing:.14em}.champion{padding:25px;border:1px solid #a7d52366;border-radius:12px;background:linear-gradient(110deg,#354718,#192114);display:flex;gap:20px;align-items:center;margin:20px 0}.champion h2{color:#d1ff53;margin-top:8px}.players-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.player-card{display:flex;align-items:center;gap:12px;border:1px solid #323e27;background:#181f13;border-radius:9px;padding:15px}.player-card .name{flex:1;min-width:0;font-size:13px;overflow-wrap:anywhere}.player-avatar{width:36px;height:36px;border-radius:50%;background:#2c3a1e;color:#c6ff00;display:grid;place-items:center;font-size:11px;flex-shrink:0}.player-card button{color:#859773;font-size:16px}.search{position:relative;flex:1;max-width:350px}.search input{padding-left:39px}.search .icon{position:absolute;left:12px;top:12px;color:#859773}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-grid p{color:#97a787;font-size:12px;margin:12px 0 20px}.rules{font-size:12px;color:#b2bfa3;line-height:1.8}.rules h3{font-size:15px;color:#e2ecd6;margin:20px 0 8px}.rules h3:first-child{margin-top:0}.rules p{margin:8px 0}.rules a{color:#c6ff00}.rules li{margin:5px 0}.back{padding:5px 0;color:#8da077;display:inline-flex;align-items:center;gap:7px;font-size:11px;margin-bottom:20px}.event-heading{align-items:flex-start}.event-heading h1{font-size:29px;margin:9px 0}.event-heading p{font-size:12px;color:#95a883}.event-controls{margin-top:16px}.install-steps{font-size:13px;line-height:1.9;padding-left:22px;color:#b6c5a5}.install-steps li{margin:12px 0}dialog{padding:0;border:1px solid #485b32;border-radius:16px;background:#141b0f;color:#f3f6ed;box-shadow:0 30px 100px #0009;width:min(680px,calc(100% - 32px));max-height:90dvh;overflow:auto}dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:23px 25px;border-bottom:1px solid #344328;gap:12px}.modal-head h2{font-size:21px}.modal-body{padding:24px 25px}.modal-foot{padding:18px 25px;border-top:1px solid #344328;display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:0;background:#141b0ff5;backdrop-filter:blur(8px)}.close{font-size:24px;width:35px;height:35px;color:#9aae83}.field{display:block;margin-bottom:18px}.field>span,.field-label{display:block;font-size:11px;font-weight:600;color:#a7b896;margin-bottom:7px}.field small{display:block;font-size:10px;line-height:1.6;color:#7f9569;margin-top:7px}input,select{display:block;width:100%;height:44px;border:1px solid #435635;background:#1c2715;border-radius:7px;color:#f2f8e9;padding:10px 12px;min-width:0}input::placeholder{color:#708260}input[type=checkbox]{accent-color:#c6ff00;width:18px;height:18px;flex-shrink:0}input[type=date],input[type=time]{min-width:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.mode-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:22px}.mode-option{border:1px solid #3a4a2d;border-radius:8px;padding:14px 9px;text-align:center;font-size:11px;color:#a6b793;min-height:61px}.mode-option.active{border-color:#c6ff00;color:#c6ff00;background:#c6ff0010}.checks{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:210px;overflow:auto;margin-bottom:16px}.check{padding:10px;border:1px solid #34472a;border-radius:7px;display:flex;align-items:center;gap:9px;font-size:12px;cursor:pointer}.check.chosen{background:#c6ff0010;border-color:#778e4a}.pair-preview{padding:14px;background:#1c2813;border:1px solid #3c512c;border-radius:8px;font-size:11px}.pair-preview .row{margin:6px 0}.pair-preview .num{display:inline-grid;place-items:center;width:22px;height:22px;background:#344b1f;border-radius:5px;color:#c6ff00}.pair-preview .order-name{flex:1}.pair-preview button{font-size:13px;min-width:30px;min-height:30px;background:#344723;border-radius:5px}.inline-add{display:flex;gap:8px;margin-bottom:15px}.inline-add input{flex:1}.form-error{padding:10px;border-radius:6px;color:#ffc1b2;background:#6c2b1d55;font-size:12px;margin-bottom:16px}.score-modal{width:min(820px,calc(100% - 24px))}.score-banner{text-align:center;margin-bottom:16px;font-size:12px;color:#a2ba83}.score-banner.star{padding:12px;border:1px solid #c6ff0080;color:#c6ff00;background:#c6ff0015;border-radius:8px;font-weight:700}.scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:13px}.score-side{padding:20px 12px;text-align:center;background:#1b2913;border:1px solid #40592b;border-radius:12px;display:flex;flex-direction:column;align-items:center}.score-side .pair-name{min-height:48px;font-size:13px;line-height:1.6;overflow-wrap:anywhere}.score-number{font-size:80px;line-height:1.2;color:#d0ff50;letter-spacing:-.05em;font-weight:600;margin:7px 0 0}.games-number{font-size:12px;color:#b4c49f;margin:2px 0 19px}.point-btn{width:100%;min-height:60px;white-space:normal}.score-toolbar{display:flex;justify-content:center;gap:8px;margin:17px 0;flex-wrap:wrap}.set-results{display:flex;justify-content:center;gap:13px;margin:15px 0;color:#c6ff00;font-size:13px}.set-results span{padding:6px 12px;background:#283c19;border-radius:6px}.result-row{display:grid;grid-template-columns:70px 1fr 20px 1fr;gap:12px;align-items:center;margin:15px 0}.result-row input{text-align:center;font-size:20px;height:52px}.tie-list{list-style:none;margin:0;padding:0}.tie-list li{padding:13px 10px;border-bottom:1px solid #394d2b;display:flex;gap:10px;align-items:center;font-size:12px}.tie-list li span{flex:1}.tie-list button{min-width:36px;min-height:36px;border:1px solid #455e30;border-radius:7px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(100px);z-index:10000;background:#d1ff50;color:#1b240b;border:1px solid #a8d832;border-radius:9px;padding:12px 20px;font-size:12px;max-width:calc(100% - 32px);box-shadow:0 8px 40px #0008;transition:transform .2s;pointer-events:none}#toast.show{transform:translateX(-50%) translateY(0)}.loading{height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#c6ff00;font-size:30px;letter-spacing:.15em}.loading span{font-size:12px;letter-spacing:0;color:#839574;margin-top:15px}.error-screen{max-width:600px;margin:80px auto;padding:25px}.error-screen p{margin:20px 0;color:#c7d0bc}.print-only{display:none}
[hidden]{display:none!important}
.result-callout{margin:20px 0;padding:18px 21px;background:#c6ff000c;border:1px solid #c6ff003b;border-radius:11px;gap:14px}.result-callout strong{font-size:13px;color:#d2e7b0}.result-callout p{font-size:11px;color:#95a87d;margin-top:4px}.result-modal{width:min(610px,calc(100% - 24px))}.result-modal .modal-body{padding:20px}.result-preview{display:block;width:100%;height:auto;max-width:430px;margin:18px auto;border-radius:10px;border:1px solid #3b4c2b;background:#0b0e09}.result-selector .field{margin-bottom:10px}.result-help{font-size:11px}.result-modal .modal-foot{flex-wrap:wrap}.result-modal .modal-foot .btn{flex:1}.result-selector select{font-size:12px}
@media(min-width:1600px){.main{padding-top:45px}.hero{min-height:310px}.hero-copy{padding:40px}.hero h1{font-size:56px}}
@media(max-width:1180px){.app-shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:25px 13px}.brand{width:150px}.main{padding:28px}.topbar{padding:0 28px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.players-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-copy{padding:28px}.hero h1{font-size:39px}}
@media(max-width:850px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.topbar{height:72px;padding:0 22px}.topbar .crumb{display:none}.mobile-brand{display:block;width:108px;height:61px;object-fit:contain}.main{padding:24px 22px 105px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:10;justify-content:space-around;border-top:1px solid #3b4b2c;background:#0f150bf5;backdrop-filter:blur(10px);padding:8px 5px calc(8px + env(safe-area-inset-bottom))}.mobile-nav button{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;font-size:9px;color:#81936d;min-height:43px;min-width:64px}.mobile-nav button.active{color:#c6ff00}.mobile-nav .create-mobile{color:#c6ff00}.mobile-nav .create-mobile .icon{background:#c6ff00;color:#192408;border-radius:6px;width:28px;height:25px;padding:3px}#toast{bottom:95px}.hero h1{font-size:38px}.hero{min-height:250px}.hero-art{min-height:230px}.stats{gap:10px}.stat{padding:16px}.stat .stat-icon{width:33px;height:33px}.group-grid{gap:12px}.match-list{gap:11px}}
@media(max-width:580px){h1{font-size:29px}.topbar{padding:0 17px}.topbar .local-state{display:none}.main{padding:22px 16px 105px}.heading{margin-bottom:22px}.heading h1{font-size:28px}.heading p{font-size:12px;max-width:220px}.heading>.btn{padding:10px 12px}.hero{display:block;min-height:284px}.hero-copy{padding:25px;max-width:82%}.hero h1{font-size:39px;position:relative}.hero p{max-width:210px}.hero-art{position:absolute;right:-76px;top:57px;width:230px;height:220px;opacity:.7}.hero-vertical{top:19px;right:14px;font-size:8px}.hero .btn{font-size:11px}.stats{gap:8px;margin-bottom:28px}.stat{display:block;padding:15px 12px}.stat strong{font-size:26px}.stat p{font-size:10px;white-space:nowrap}.stat .stat-icon{display:none}.section-title{align-items:flex-start}.section-title h2{font-size:19px}.cards{grid-template-columns:1fr;gap:12px}.mode-cards{grid-template-columns:1fr}.mode-card{min-height:106px;padding-left:75px}.mode-card .mode-icon{position:absolute;left:18px;top:24px}.mode-card h3{margin:2px 0 7px;font-size:16px}.event-card{min-height:190px}.players-grid,.group-grid,.match-list,.settings-grid{grid-template-columns:1fr}.page-tabs{gap:21px;margin-top:18px}.page-tabs button{font-size:11px}.panel{padding:18px}.group-panel{padding:15px}.event-heading h1{font-size:25px}.event-heading{gap:9px}.event-heading .btn{padding-inline:10px}.footer-note{gap:15px;font-size:9px}.footer-note span:last-child{text-align:right}.checks{gap:6px}.check{font-size:11px;padding:9px 7px}.modal-head{padding:18px}.modal-body{padding:19px 16px}.modal-foot{padding:14px 16px}.modal-head h2{font-size:19px}.score-modal{width:calc(100% - 16px);max-height:95dvh}.score-side{padding:16px 9px}.score-number{font-size:65px}.score-side .pair-name{font-size:12px}.score-side .btn{font-size:12px;padding:10px 8px}.result-row{grid-template-columns:51px 1fr 15px 1fr;gap:8px}.empty{padding:29px 18px}.form-grid{gap:10px}.champion{padding:20px 16px;gap:14px}.champion h2{font-size:20px}dialog{max-height:94dvh}.form-grid .field small{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{html,body{background:white!important;color:black!important;color-scheme:light}.sidebar,.topbar,.mobile-nav,.heading .btn,.event-controls,.back,.page-tabs,.footer-note,.demo-strip,.btn,.iconbtn{display:none!important}.app-shell{display:block}.main{padding:10px}.card,.panel,.match-card{background:white!important;color:black!important;border:1px solid #aaa;break-inside:avoid}.match-list,.group-grid{display:block}.match-card,.panel{margin-bottom:12px}td,th,.muted,.team-name,.mini-score,.score-sets,.badge,.lime{color:black!important}.bracket{display:block}.bracket-col{display:inline-block;vertical-align:top}.print-only{display:block}}
.cloud-banner{margin-bottom:23px}.cloud-banner strong{font-size:12px;color:#d1f1ac}.cloud-banner p{font-size:11px;margin-top:5px;max-width:680px}.individual-table{min-width:820px}.individual-table td{white-space:nowrap}.individual-table .rank-name{white-space:normal;min-width:160px}.topbar .btn{font-size:10px}.cloud-banner .btn{font-size:10px}
@media(max-width:580px){.topbar .btn{font-size:9px;min-height:34px;padding:7px 9px}.topbar .avatar{display:none}.cloud-banner{padding:12px}.cloud-banner .row{gap:10px}.cloud-banner p{font-size:11px}.cloud-banner .btn{min-height:36px}.heading>.btn{font-size:11px}}

.registration-tabs{margin:0 0 24px}.registration-panel{max-width:620px}.registration-panel h2{margin:18px 0 8px}.registration-panel>p{font-size:13px;line-height:1.7;margin-bottom:25px}.registration-panel .btn{margin-top:4px}.player-card .name{min-width:0;overflow-wrap:anywhere}.player-card .name small{display:block;margin-top:6px;font-size:10px;line-height:1.5;color:#95a883;font-weight:400}.quick-registration{padding:14px;border:1px solid #34472a;border-radius:8px;margin-bottom:15px}.quick-registration .field{margin-bottom:12px}@media(max-width:580px){.registration-tabs{gap:16px}.registration-panel .btn{width:100%}.quick-registration .form-grid{grid-template-columns:1fr}}

.central-player-actions{margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.central-player-actions h3{font-size:15px}.central-player-actions p{color:#95a883;font-size:12px;margin-top:8px}.central-player-actions .btn{white-space:normal}@media(max-width:580px){.central-player-actions .btn{width:100%}}

/* Touch navigation stays reachable in portrait, landscape and installed iOS mode. */
.mobile-menu-toggle{display:none}.drawer-nav{gap:8px}.drawer-nav button{width:100%;min-height:48px;font-size:14px}.drawer-actions{display:grid;gap:12px;margin-top:24px}.drawer-actions .btn{min-height:46px;white-space:normal}.navigation-modal .modal-head h2{font-size:22px}
@media(max-width:1024px){
  .app-shell{grid-template-columns:minmax(0,1fr);min-height:100vh;min-height:100dvh}.sidebar{display:none}
  .topbar{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;height:calc(64px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(12px,env(safe-area-inset-right,0px)) 0 max(12px,env(safe-area-inset-left,0px));background:#10120ff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
  .topbar .crumb{display:none}.mobile-menu-toggle{display:inline-flex;width:44px;height:44px}.mobile-brand{display:block;width:98px;max-width:100%;height:52px;object-fit:contain}.topbar-actions{min-width:0}.topbar-actions .avatar,.topbar-actions .iconbtn,.topbar-actions .local-state{display:none}.topbar-actions .btn{min-height:44px;padding:9px 10px;font-size:11px;white-space:normal;max-width:155px;text-align:center}
  .main{padding:24px max(16px,env(safe-area-inset-right,0px)) calc(106px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
  .mobile-nav{display:grid;grid-template-columns:repeat(var(--mobile-nav-items,4),minmax(0,1fr));align-items:stretch;position:fixed;inset:auto 0 0;z-index:40;gap:2px;padding:7px max(4px,env(safe-area-inset-right,0px)) calc(7px + env(safe-area-inset-bottom,0px)) max(4px,env(safe-area-inset-left,0px));background:#0f150bf7;border-top:1px solid #3b4b2c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
  .mobile-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:52px;padding:5px 2px;border-radius:9px;font-size:10px;line-height:1.2;color:#a5b494}.mobile-nav button span{max-width:100%;text-align:center;overflow-wrap:anywhere}.mobile-nav button.active{background:#c6ff0012;color:#c6ff00}.mobile-nav .icon{width:22px;height:22px}.mobile-nav .create-mobile{color:#c6ff00}.mobile-nav .create-mobile .icon{width:26px;height:26px;background:#c6ff00;color:#192408;border-radius:7px;padding:3px}
  input,select,textarea{font-size:16px}input,select{min-height:46px}.page-tabs{gap:18px;overflow-x:auto}.page-tabs button{flex-shrink:0;min-height:46px}.cloud-banner .btn{min-height:44px}.heading{gap:12px}.heading.row{flex-wrap:wrap}.stat p{white-space:normal}
  #toast{bottom:calc(86px + env(safe-area-inset-bottom,0px))}
  dialog{max-height:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);overscroll-behavior:contain}.modal-foot{flex-wrap:wrap;gap:8px}.modal-foot .btn{flex:1 1 auto;white-space:normal;min-height:44px}
  .navigation-modal{inset:0 auto 0 0;margin:0;width:min(340px,90vw);height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0 16px 16px 0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.navigation-modal .modal-body{padding:22px 18px}.navigation-modal .modal-head{padding:20px 18px}.navigation-modal .close{width:44px;height:44px}
}
@media print{.mobile-menu-toggle,.navigation-modal{display:none!important}}

.usage-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.usage-stat{display:block;min-width:0}.usage-stat strong{display:block;color:#c6ff00}.usage-stat p{font-size:12px;margin:8px 0}.usage-stat small{display:block;line-height:1.5;color:#829271;font-size:10px}.usage-install-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.usage-install-grid strong{font-size:30px}.usage-install-grid p{font-size:12px;color:#a0af92}.usage-daily{min-width:520px}.sidebar{overflow-y:auto}@media(max-width:580px){.usage-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.usage-stat{padding:15px}.usage-stat p{white-space:normal}.usage-install-grid{grid-template-columns:1fr}.usage-stat strong{font-size:28px}}

.admin-login-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 4px;color:#7f8976;font-size:11px;text-decoration:none;line-height:1.4}.admin-login-link:hover{color:#bdc9b1;text-decoration:underline}.sidebar-bottom .admin-login-link{justify-content:flex-start}.drawer-actions .admin-login-link{margin-top:12px;font-size:11px}.administrative-access{display:flex;justify-content:flex-end;gap:16px;flex-wrap:wrap;margin-top:24px}
/* Personal athlete profiles and authorized ranking photos. */
.profile-panel{max-width:900px}.profile-panel fieldset{border:0;padding:0;margin:0;min-width:0}.profile-photo-editor{display:flex;align-items:center;gap:22px;margin:8px 0 30px}.profile-photo,.player-avatar{overflow:hidden;flex-shrink:0}.profile-photo{display:inline-flex;width:104px;height:104px;border-radius:50%;background:#263719;color:var(--lime,#c6ff00);align-items:center;justify-content:center;font-size:30px;font-weight:700;border:1px solid #526440}.profile-photo img,.player-avatar img{width:100%;height:100%;object-fit:cover;display:block}.photo-picker{position:relative;overflow:hidden;cursor:pointer}.photo-picker input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;font-size:16px}.profile-consent{display:flex;align-items:flex-start;gap:12px;line-height:1.6;padding:18px;background:#1a2514;border-radius:10px}.profile-consent input{width:19px;height:19px;flex-shrink:0;margin-top:3px;accent-color:#c6ff00}.profile-consent span{font-size:13px}.profile-panel textarea{width:100%;resize:vertical;background:#10150d;border:1px solid #3b4c2b;border-radius:8px;color:#f5f7ee;padding:12px;font:inherit;font-size:16px}.profile-directory{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}.profile-directory-card .profile-photo{margin-bottom:15px}.profile-directory-card h3{overflow-wrap:anywhere}.profile-directory-card p{font-size:13px;line-height:1.6}.profile-directory-card .btn{margin-top:14px}.profile-welcome{max-width:700px}.profile-welcome p{max-width:560px;line-height:1.7}.profile-welcome .btn{margin:15px 0}.ranking-athlete{display:flex;align-items:center;gap:12px}.ranking-athlete .player-avatar{width:38px;height:38px;font-size:13px}.profile-panel .form-grid{align-items:start}.profile-panel .tiny{line-height:1.6}.avatar[data-action]{cursor:pointer;border:1px solid #526440;color:#c6ff00}.profile-panel [disabled]{opacity:.65}.profile-panel .notice{margin-bottom:18px}
@media(max-width:600px){.profile-photo-editor{gap:16px;align-items:flex-start}.profile-photo{width:84px;height:84px}.profile-panel{padding:20px 16px}.profile-panel .form-grid{grid-template-columns:1fr}.profile-consent{padding:13px}.profile-panel .row .btn{width:100%;justify-content:center}.ranking-athlete{gap:8px}.ranking-athlete .player-avatar{width:30px;height:30px}.profile-photo-editor .tiny{font-size:10px}.profile-directory{grid-template-columns:1fr}}
 .profile-welcome .btn{max-width:100%;white-space:normal;text-align:center}.profile-photo-editor .tiny{font-size:12px}

/* Start page and arena reservation access. */
.brand-home{display:block;padding:0;max-width:100%;border-radius:8px}.sidebar>.brand-home{margin:0 auto 35px}.brand-home .brand{margin:0}.home-back{min-height:44px;margin-bottom:14px}.reservation-card{padding:20px;border:1px solid #c6ff003b;border-radius:12px;background:#c6ff0009;margin-bottom:22px}.reservation-card h3{font-size:17px}.reservation-card p{font-size:12px;color:#a4b492;line-height:1.6;margin:12px 0}.reservation-card .row p{margin:3px 0 0}.reservation-card .btn{margin:2px 0 10px}.reservation-card small{display:block;color:#95a883;font-size:11px;line-height:1.6}.home-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:28px}.home-shortcuts .reservation-card,.home-shortcuts .panel{margin-bottom:0}.home-history{display:flex;flex-direction:column;align-items:flex-start;gap:15px}.home-history p{font-size:12px;line-height:1.7;color:#a4b492}.home-history .row{margin-top:auto}.home-shortcuts .reservation-card .btn{margin-top:8px}
@media(max-width:580px){.home-shortcuts{grid-template-columns:1fr;gap:14px}.reservation-card{padding:17px}.reservation-card>.btn{width:100%;white-space:normal}.home-history .row{width:100%}.home-history .btn{flex:1;white-space:normal}.mobile-nav button{font-size:9px}.home-back{margin-bottom:10px}.sidebar>.brand-home{margin-bottom:35px}}

.mobile-home{display:none}@media(max-width:1024px){.mobile-home{display:block}}

/* Shared events and the athlete's own games. */
.community-home p{font-size:12px;max-width:480px;line-height:1.7}.registration-summary{display:flex;justify-content:space-between;align-items:center;gap:24px}.registration-summary h2{font-size:34px;margin-top:12px}.registration-summary>.stack{min-width:210px}.signup-list{list-style:none;padding:0;margin:0}.signup-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #344328;font-size:13px}.signup-list li:last-child{border-bottom:0}.signup-list li>span:first-child{min-width:0;overflow-wrap:anywhere}.signup-list .badge{flex-shrink:0}.shared-match-teams{display:grid;gap:12px;margin-top:19px;font-size:14px}.shared-match-teams strong{font-size:24px;letter-spacing:.04em}.enrollment-cards{align-items:stretch}.enrollment-card{margin-bottom:0;display:flex;flex-direction:column}.enrollment-card h3,.personal-event h3{margin:19px 0 10px;overflow-wrap:anywhere}.enrollment-card>p,.personal-event>p{font-size:12px;line-height:1.7}.enrollment-card>.stack{margin-top:auto;padding-top:22px}.personal-event{min-width:0}.personal-event summary{cursor:pointer;min-height:44px;padding:12px 0;color:#c6ff00;font-size:13px}.personal-match{border-top:1px solid #344328;padding:15px 0}.personal-match p{font-size:12px;line-height:1.8;margin-top:10px;overflow-wrap:anywhere}.personal-match .lime{font-size:17px}.community-home .row{flex-shrink:0}.registration-summary .btn{white-space:normal;text-align:center}
@media(max-width:580px){.registration-summary{display:block}.registration-summary>.stack{margin-top:22px}.registration-summary h2{font-size:30px}.community-home{display:block}.community-home>.row{margin-top:18px;width:100%}.community-home .btn{flex:1;white-space:normal}.signup-list li{font-size:12px;align-items:flex-start}.signup-list .badge{font-size:8px}.shared-match-teams{font-size:13px}.personal-event>.btn{width:100%}}

/* Public account access stays visible in desktop and mobile headers. */
.account-entry{flex-shrink:0}.admin-header-control{display:inline-flex}
@media(max-width:1024px){.topbar-actions .admin-header-control{display:none}}

.account-controls{display:flex;align-items:center;gap:6px}.account-logout{flex-shrink:0}.drawer-actions .account-controls{display:grid;grid-template-columns:1fr auto}

.pills[hidden]{display:none}
