@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@500;700;800&display=swap";
:root{--bg:#0a0612;--bg-2:#120a22;--panel:#160d2a;--panel-2:#1c1030;--line:#b585ff29;--line-strong:#b585ff66;--cyan:#5ad8ff;--violet:#b585ff;--pink:#ff6ad5;--text:#f4eeff;--muted:#9a8fc0;--muted-2:#6f6690;--ok:#5affc0;--mono:"JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}body{background:radial-gradient(900px 500px at 80% -10%, #5ad8ff1f, transparent 60%), radial-gradient(800px 600px at 0% 110%, #b585ff24, transparent 60%), var(--bg);background-attachment:fixed}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}.app{max-width:520px;min-height:100vh;margin:0 auto;padding:22px 18px 56px}.kicker{font-family:var(--mono);letter-spacing:3px;text-transform:uppercase;color:var(--cyan);font-size:11px}.h1{font-family:var(--mono);letter-spacing:1px;font-size:40px;font-weight:800;line-height:.96}.h2{letter-spacing:-.2px;font-size:22px;font-weight:800}.muted{color:var(--muted)}.tiny{color:var(--muted-2);font-size:12px}.topbar{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.brand{align-items:center;gap:10px;display:flex}.logo{background:linear-gradient(135deg, var(--violet), var(--cyan));color:#0a0612;width:34px;height:34px;font-weight:900;font-family:var(--mono);border-radius:9px;place-items:center;font-size:18px;display:grid}.brand b{font-family:var(--mono);letter-spacing:1px;font-size:15px}.back{font-family:var(--mono);color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.conn{color:var(--muted);font-size:11px;font-family:var(--mono);align-items:center;gap:7px;display:inline-flex}.dot{background:var(--muted-2);border-radius:50%;width:7px;height:7px}.dot.on{background:var(--ok);box-shadow:0 0 8px var(--ok)}.dot.off{background:var(--pink);box-shadow:0 0 8px var(--pink)}.panel{background:linear-gradient(180deg, var(--panel), var(--bg-2));border:1px solid var(--line);border-radius:18px;padding:18px}.panel+.panel{margin-top:14px}.hero{border:1px solid var(--line);background:radial-gradient(400px 200px at 90% 0%, #5ad8ff2e, transparent), linear-gradient(180deg, var(--panel-2), var(--bg-2));border-radius:22px;padding:26px 22px 22px;position:relative;overflow:hidden}.hero .h1{margin:12px 0 8px}.hero .badges{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.chip{font-family:var(--mono);letter-spacing:1px;border:1px solid var(--line-strong);color:var(--muted);border-radius:999px;padding:6px 10px;font-size:11px}.btn{width:100%;font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:#0a0612;background:linear-gradient(135deg, var(--cyan), var(--violet));border:none;border-radius:14px;justify-content:center;align-items:center;gap:9px;padding:15px 18px;font-size:14px;font-weight:800;transition:transform 80ms,opacity .2s;display:flex;box-shadow:0 8px 30px #5ad8ff40}.btn:active{transform:translateY(1px)scale(.995)}.btn[disabled]{opacity:.4;cursor:not-allowed;box-shadow:none}.btn.ghost{color:var(--text);border:1px solid var(--line-strong);box-shadow:none;background:0 0}.btn.violet{background:linear-gradient(135deg, var(--violet), var(--pink))}.btn.sm{letter-spacing:1px;width:auto;padding:10px 14px;font-size:12px}.field{margin-top:14px}.field>label{font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:7px;font-size:11px;display:block}.input,.select,.textarea{border:1px solid var(--line);width:100%;color:var(--text);background:#0a061299;border-radius:12px;outline:none;padding:13px 14px;font-size:16px;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #5ad8ff24}.textarea{resize:vertical;min-height:72px}.row{gap:10px;display:flex}.row>*{flex:1}.segmented{gap:8px;display:flex}.seg{text-align:center;border:1px solid var(--line);color:var(--muted);font-family:var(--mono);background:#0a061280;border-radius:12px;flex:1;padding:12px 0;font-size:14px;font-weight:700;transition:all .12s}.seg.active{color:#0a0612;background:linear-gradient(135deg, var(--cyan), var(--violet));border-color:#0000}.section-head{justify-content:space-between;align-items:baseline;margin:26px 4px 12px;display:flex}.section-head h3{font-size:16px;font-weight:800}.count-pill{font-family:var(--mono);color:var(--cyan);border:1px solid var(--line-strong);border-radius:999px;padding:3px 8px;font-size:11px}.tcard{border:1px solid var(--line);background:linear-gradient(180deg, var(--panel), var(--bg-2));border-radius:16px;padding:15px;transition:border-color .15s,transform 80ms;display:block}.tcard:active{transform:scale(.99)}.tcard .top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.tcard .name{font-size:17px;font-weight:800}.tcard .dist{font-family:var(--mono);color:var(--cyan);white-space:nowrap;font-size:12px}.tcard .meta{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:12px;display:flex}.tcard .desc{color:var(--muted);margin-top:8px;font-size:13px}.status-tag{font-family:var(--mono);letter-spacing:1px;text-transform:uppercase;border-radius:6px;padding:3px 7px;font-size:10px}.status-tag.lobby{color:var(--cyan);background:#5ad8ff1f}.status-tag.live{color:var(--ok);background:#5affc01f}.team-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 4px;display:flex}.team-row:last-child{border-bottom:none}.team-num{width:30px;height:30px;font-family:var(--mono);color:var(--violet);background:#b585ff24;border-radius:8px;flex-shrink:0;place-items:center;font-size:13px;font-weight:800;display:grid}.team-info{flex:1;min-width:0}.team-info .n{font-weight:700}.team-info .s{color:var(--muted);font-size:12px}.you-tag{font-family:var(--mono);letter-spacing:1px;color:#0a0612;background:var(--cyan);border-radius:5px;padding:2px 7px;font-size:10px;font-weight:800}.del-btn{border:1px solid var(--line-strong);width:28px;height:28px;color:var(--pink);background:0 0;border-radius:8px;flex-shrink:0;place-items:center;margin-left:8px;font-size:18px;line-height:1;transition:all .12s;display:grid}.del-btn:active{transform:scale(.92)}.del-btn:hover{border-color:var(--pink);background:#ff6ad51f}.link-danger{color:var(--pink);font-family:var(--mono);letter-spacing:1px;opacity:.85;background:0 0;border:none;font-size:13px;text-decoration:underline}.link-danger:active{opacity:.6}.empty{text-align:center;color:var(--muted);padding:28px 10px}.empty .big{color:var(--text);margin-bottom:6px;font-size:15px}.qrwrap{align-items:center;gap:16px;display:flex}.qrbox{background:#fff;border-radius:14px;padding:10px;line-height:0}.qrbox img{width:132px;height:132px;display:block}.share-code{font-family:var(--mono);letter-spacing:4px;color:var(--cyan);font-size:26px;font-weight:800}.share-link{font-family:var(--mono);color:var(--muted);word-break:break-all;font-size:12px}.tabs{gap:8px;margin:18px 0 14px;display:flex}.tab{text-align:center;font-family:var(--mono);letter-spacing:1px;border:1px solid var(--line);color:var(--muted);background:#0a061280;border-radius:11px;flex:1;padding:11px;font-size:13px;font-weight:700}.tab.active{color:#0a0612;background:linear-gradient(135deg, var(--cyan), var(--violet));border-color:#0000}.match{border:1px solid var(--line);background:linear-gradient(180deg, var(--panel), var(--bg-2));border-radius:14px;margin-top:10px;padding:14px}.match.ready{border-color:var(--line-strong)}.match .mhead{font-family:var(--mono);color:var(--muted);letter-spacing:1px;justify-content:space-between;margin-bottom:10px;font-size:11px;display:flex}.side{background:#0a061273;border:1px solid #0000;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px;padding:11px 12px;transition:all .12s;display:flex}.side .nm{font-weight:700}.side .sb{color:var(--muted);font-size:11px}.side.win{border-color:var(--ok);background:#5affc01a}.side.tap{cursor:pointer}.side.tap:active{transform:scale(.99)}.side.sel{border-color:var(--cyan);background:#5ad8ff1f}.vs{text-align:center;font-family:var(--mono);color:var(--muted-2);margin:2px 0;font-size:11px}.star{color:var(--ok)}.round-block{margin-top:22px}.round-block>h4{font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;color:var(--violet);margin-bottom:4px;font-size:12px}.banner{border:1px solid var(--line-strong);background:#5ad8ff14;border-radius:14px;align-items:center;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.banner .pulse{background:var(--ok);width:9px;height:9px;box-shadow:0 0 10px var(--ok);border-radius:50%;animation:1.4s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.banner .bk{font-family:var(--mono);letter-spacing:2px;color:var(--cyan);font-size:10px}.champ{text-align:center;padding:30px 16px}.champ .trophy{font-size:64px}.champ .ck{font-family:var(--mono);letter-spacing:4px;color:var(--cyan);margin:14px 0 6px}.champ .cn{font-family:var(--mono);font-size:32px;font-weight:800}.champ .cs{color:var(--muted);margin-top:6px}.countdown{font-family:var(--mono);color:var(--cyan);border:1px solid var(--line);background:#5ad8ff0f;border-radius:12px;align-items:center;gap:8px;margin-top:14px;padding:12px 14px;font-size:13px;display:flex}.toast{color:#ff8a80;z-index:9999;background:#2a1215;border:1px solid #5c2b2e;border-radius:10px;max-width:90vw;padding:11px 16px;font-size:13px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.spinner{text-align:center;color:var(--muted);font-family:var(--mono);padding:60px 0}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#05030cb3;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:linear-gradient(180deg, var(--panel-2), var(--bg-2));border:1px solid var(--line-strong);border-bottom:none;border-radius:22px 22px 0 0;width:100%;max-width:520px;padding:22px 18px 30px}.sheet h3{margin-bottom:4px;font-size:19px;font-weight:800}
