:root{--bg:#0b1620;--bg-soft:#10202e;--card:#142838;--line:#1e3a4f;--text:#e6f0f6;--muted:#7fa0b3;--accent:#2fa4c7;--accent-soft:#1d6b83;--ok:#5aa64c;--err:#dd5757;--warn:#fca800}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:1000px;margin:0 auto;padding:0 20px}header.site{border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--bg-soft),var(--bg));position:-webkit-sticky;position:sticky;top:0;z-index:10}header.site .wrap{display:flex;align-items:center;gap:24px;height:62px}header.site .brand{font-weight:700;font-size:20px;letter-spacing:1px;color:var(--text)}header.site .brand span{color:var(--accent)}header.site nav{display:flex;gap:20px;margin-left:auto}header.site nav a{color:var(--muted);font-size:15px}header.site nav a:hover{color:var(--text);text-decoration:none}h1{font-size:28px;margin:28px 0 6px}h2{font-size:20px;margin:28px 0 12px;color:var(--text)}.sub{color:var(--muted);margin:0 0 20px}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.3px;background:var(--accent-soft);color:#d8f2fb}.badge.state-REGISTRATION{background:#2b6a2b;color:#d6f5d6}.badge.state-CHECKIN{background:#7a5a00;color:#ffe9b0}.badge.state-RUNNING{background:var(--accent-soft);color:#d8f2fb}.badge.state-COMPLETED,.badge.state-DRAFT,.badge.state-PAUSED,.badge.state-SEEDED{background:#3a3f45;color:#cfd6dc}.grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px}.card .team-name{font-weight:700;font-size:16px;display:flex;align-items:center;gap:8px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--accent);flex:none}.card ul{margin:10px 0 0;padding-left:18px;color:var(--muted);font-size:14px}.card .cap{color:var(--text)}.meta{color:var(--muted);font-size:13px;margin-top:8px}.btn{display:inline-block;padding:10px 18px;border-radius:8px;border:none;background:var(--accent);color:#04222c;font-weight:700;font-size:15px;cursor:pointer}.btn:hover{filter:brightness(1.08);text-decoration:none}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--text)}.btn.danger{background:var(--err);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}input.code{width:100%;padding:14px;font-size:20px;letter-spacing:4px;text-align:center;text-transform:uppercase;background:var(--bg-soft);border:1px solid var(--line);border-radius:8px;color:var(--text);font-family:Consolas,monospace}.notice{padding:12px 14px;border-radius:8px;margin:14px 0;font-size:14px}.notice.ok{background:#16351a;color:#cdeecd;border:1px solid #2b6a2b}.notice.err{background:#3a1a1a;color:#f2cccc;border:1px solid #7a2b2b}table.bracket{width:100%;border-collapse:collapse}.round-col{vertical-align:top;padding:0 10px;min-width:180px}.round-col h3{color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:1px}.match{background:var(--card);border:1px solid var(--line);border-radius:8px;margin:10px 0;overflow:hidden;font-size:14px}.match .side{padding:8px 12px;display:flex;justify-content:space-between}.match .side.win{background:rgba(90,166,76,.12);font-weight:700}.match .side+.side{border-top:1px solid var(--line)}.bracket-scroll{overflow-x:auto;padding-bottom:20px}footer.site{border-top:1px solid var(--line);color:var(--muted);font-size:13px;padding:24px 0;margin-top:40px}