:root{--font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius: 12px;--radius-sm: 8px;--radius-pill: 999px;--primary: #4f46e5;--primary-hover: #4338ca;--primary-fg: #ffffff;--success: #059669;--danger: #e11d48;--danger-hover: #be123c;--bg: #f4f5fb;--surface: #ffffff;--surface-2: #f8f9fc;--border: #e4e6ef;--border-strong: #d3d6e4;--text: #1a1c2b;--text-muted: #6b7086;--shadow: 0 1px 2px rgba(20, 22, 40, .05), 0 8px 24px rgba(20, 22, 40, .06);--shadow-sm: 0 1px 2px rgba(20, 22, 40, .06);--ring: rgba(79, 70, 229, .35);--pos: #047857;--neg: #be123c;--pos-bg: rgba(5, 150, 105, .12);--neg-bg: rgba(225, 29, 72, .12)}:root[data-theme=dark]{--bg: #0e1017;--surface: #171a24;--surface-2: #1f2330;--border: #2a2f3f;--border-strong: #3a4054;--text: #eef0f7;--text-muted: #9aa0b4;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 12px 30px rgba(0, 0, 0, .35);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--primary: #6366f1;--primary-hover: #7c7ff5;--ring: rgba(99, 102, 241, .45);--pos: #34d399;--neg: #fb7185;--pos-bg: rgba(52, 211, 153, .14);--neg-bg: rgba(251, 113, 133, .14)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;letter-spacing:-.01em}.app{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:1040px;margin:0 auto;padding:0 20px}.page{padding:28px 0 64px}.stack{display:flex;flex-direction:column;gap:20px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.grid{display:grid;gap:16px}.muted{color:var(--text-muted)}.center{text-align:center}.nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--surface) 85%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--border)}.nav-inner{display:flex;align-items:center;gap:8px;height:60px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.1rem;margin-right:8px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--primary),#8b5cf6);color:#fff;font-size:1.05rem}.nav-links{display:flex;gap:2px;flex-wrap:wrap}.nav-link{padding:8px 14px;border-radius:var(--radius-pill);color:var(--text-muted);font-weight:500;font-size:.92rem;transition:background .15s,color .15s}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link.active{background:var(--primary);color:var(--primary-fg)}.nav-spacer{flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.card-title{font-size:1.15rem;font-weight:650;margin-bottom:2px}.card-sub{color:var(--text-muted);font-size:.9rem;margin-bottom:18px}.hr{height:1px;background:var(--border);border:0;margin:20px 0}.btn{--btn-bg: var(--surface);--btn-fg: var(--text);--btn-bd: var(--border-strong);display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:600;font-size:.94rem;line-height:1;padding:0 18px;height:42px;border-radius:var(--radius-sm);border:1px solid var(--btn-bd);background:var(--btn-bg);color:var(--btn-fg);cursor:pointer;transition:transform .04s ease,background .15s,border-color .15s,box-shadow .15s;-webkit-user-select:none;user-select:none}.btn:hover{background:color-mix(in srgb,var(--btn-bg) 92%,var(--text))}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{--btn-bg: var(--primary);--btn-fg: var(--primary-fg);--btn-bd: transparent;box-shadow:0 1px 2px #1416281f}.btn-primary:hover{background:var(--primary-hover)}.btn-danger{--btn-bg: transparent;--btn-fg: var(--danger);--btn-bd: color-mix(in srgb, var(--danger) 45%, transparent)}.btn-danger:hover{background:var(--neg-bg)}.btn-ghost{--btn-bg: transparent;--btn-bd: transparent;color:var(--text-muted)}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-block{width:100%}.btn-sm{height:34px;padding:0 12px;font-size:.86rem}.icon-btn{width:40px;height:40px;padding:0;border-radius:var(--radius-sm)}.field{display:flex;flex-direction:column;gap:6px}.label{font-size:.83rem;font-weight:600;color:var(--text-muted)}.control,.input,.select{width:100%;height:42px;padding:0 14px;font:inherit;font-size:.95rem;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.control::placeholder,.input::placeholder{color:var(--text-muted)}.control:focus,.input:focus,.select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.select{cursor:pointer;padding-right:38px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7086' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 12px center}.select:disabled{opacity:.5;cursor:not-allowed}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.segmented{display:inline-flex;padding:3px;gap:3px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.seg{border:0;background:transparent;color:var(--text-muted);font:inherit;font-weight:600;font-size:.85rem;padding:6px 14px;border-radius:6px;cursor:pointer;transition:background .12s,color .12s}.seg:hover{color:var(--text)}.seg[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.seg.seg-attack[aria-pressed=true]{background:var(--success);color:#fff}.seg.seg-defense[aria-pressed=true]{background:var(--danger);color:#fff}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted)}.score{font-variant-numeric:tabular-nums;font-weight:700}.score.pos{color:var(--pos)}.score.neg{color:var(--neg)}.table-wrap{overflow-x:auto;border-radius:var(--radius)}table.tbl{width:100%;border-collapse:collapse;font-size:.94rem}.tbl th{text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600;padding:12px 14px;border-bottom:1px solid var(--border);white-space:nowrap}.tbl td{padding:13px 14px;border-bottom:1px solid var(--border);white-space:nowrap}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr:hover{background:var(--surface-2)}.tbl .num{text-align:right;font-variant-numeric:tabular-nums}.rank{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);font-size:.82rem;font-weight:700}.rank.gold{background:linear-gradient(135deg,#fde68a,#f59e0b);color:#4a2c00;border-color:transparent}.rank.silver{background:linear-gradient(135deg,#e5e7eb,#9ca3af);color:#1f2430;border-color:transparent}.rank.bronze{background:linear-gradient(135deg,#f0c090,#b45309);color:#fff;border-color:transparent}.podium{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-items:end;max-width:560px;margin:4px auto 0}.podium-col{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.podium-medal{font-size:1.8rem;line-height:1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}.podium-name{font-weight:700;font-size:.95rem;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.podium-total{font-variant-numeric:tabular-nums;font-weight:700;font-size:.9rem}.podium-plinth{width:100%;border-radius:10px 10px 0 0;display:grid;place-items:center;font-weight:800;font-size:1.35rem;color:#0000008c;box-shadow:var(--shadow-sm);transition:height .2s ease}.podium-plinth.p1{height:92px;background:linear-gradient(180deg,#fde68a,#f59e0b)}.podium-plinth.p2{height:68px;background:linear-gradient(180deg,#eef0f5,#9ca3af)}.podium-plinth.p3{height:50px;background:linear-gradient(180deg,#f0c090,#b45309);color:#ffffffd9}.podium-you{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}@media (max-width: 480px){.podium-medal{font-size:1.4rem}.podium-plinth.p1{height:70px}.podium-plinth.p2{height:54px}.podium-plinth.p3{height:42px}}.player-link{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:color .15s,text-decoration-color .15s}.player-link:hover,.player-link:focus-visible{color:var(--primary);text-decoration-color:currentColor}.search{position:relative}.search-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:10;margin:0;padding:4px;list-style:none;max-height:280px;overflow-y:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow)}.search-item{padding:8px 12px;border-radius:6px;cursor:pointer;font-size:.94rem}.search-item[aria-selected=true]{background:var(--surface-2);color:var(--primary)}.search-empty{padding:8px 12px;color:var(--text-muted);font-size:.9rem}.medal-icons{display:inline-flex;flex-wrap:wrap;gap:2px;margin-left:6px;vertical-align:middle}.medal-icon-btn{position:relative;border:0;background:transparent;padding:2px;border-radius:6px;font-size:.95rem;line-height:1;cursor:pointer}.medal-icon-btn:hover,.medal-icon-btn[aria-expanded=true]{background:var(--surface-2)}.medal-icon-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}.medal-strip{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:6px 0 4px}.medal-sep{align-self:stretch;width:1px;margin:4px 0;background:var(--border-strong)}.medal-icons-lg{margin-left:0;gap:4px}.medal-count{position:absolute;right:-2px;bottom:-2px;padding:0 4px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border);color:var(--text-muted);font-size:.62rem;font-weight:700;line-height:1.4;font-variant-numeric:tabular-nums}.medal-icons-lg .medal-icon-btn{font-size:1.5rem;padding:4px;border-radius:var(--radius-sm)}.medal-bubble{position:fixed;z-index:50;width:max-content;max-width:min(280px,calc(100vw - 24px));padding:10px 12px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow);white-space:normal;font-weight:400;text-align:left}.medal-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.medal-name{font-weight:650}.medal-value{font-size:.82rem;font-variant-numeric:tabular-nums;white-space:nowrap}.medal-tagline{font-style:italic;font-size:.9rem}.medal-detail{font-size:.82rem}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}.tile .k{font-size:.78rem;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.tile .v{font-size:1.55rem;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}.alert{padding:12px 16px;border-radius:var(--radius-sm);font-weight:500;border:1px solid transparent}.alert-success{background:var(--pos-bg);color:var(--pos);border-color:color-mix(in srgb,var(--success) 30%,transparent)}.alert-danger{background:var(--neg-bg);color:var(--neg);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0b148c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:50;padding:20px;overflow-y:auto;animation:overlay-in .15s ease-out}.modal{position:relative;width:100%;max-width:420px;max-height:calc(100vh - 40px);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 24px;animation:pop-in .2s cubic-bezier(.34,1.56,.64,1)}.modal-close{position:absolute;top:12px;right:12px}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{transform:scale(.88);opacity:0}to{transform:scale(1);opacity:1}}.roulette{display:flex;flex-direction:column;align-items:center;gap:22px}.wheel-outer{position:relative;width:250px;height:250px}.wheel{width:100%;height:100%;border-radius:50%;position:relative;border:6px solid var(--surface);box-shadow:var(--shadow),0 0 0 3px var(--border-strong);transition:transform 4.2s cubic-bezier(.17,.67,.12,1)}.wheel-spinning{animation:wheel-glow .9s ease-in-out infinite}.wheel-seg-icon{position:absolute;top:50%;left:50%;font-size:1.15rem;line-height:1;transform-origin:0 0}.wheel-pointer{position:absolute;top:-7px;left:50%;transform:translate(-50%);width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-top:18px solid var(--danger);z-index:2;filter:drop-shadow(0 2px 2px rgba(0,0,0,.3))}.wheel-hub{position:absolute;top:50%;left:50%;width:24px;height:24px;border-radius:50%;background:var(--surface);border:3px solid var(--border-strong);transform:translate(-50%,-50%);box-shadow:var(--shadow-sm)}@keyframes wheel-glow{0%,to{box-shadow:var(--shadow),0 0 0 3px var(--border-strong)}50%{box-shadow:var(--shadow),0 0 26px 6px var(--ring)}}.roulette-spin{max-width:340px}.roulette-result{position:relative;width:100%;max-width:360px}.roulette-result-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-align:center;animation:pop-in .4s cubic-bezier(.34,1.56,.64,1)}.roulette-result-emoji{font-size:2.3rem;line-height:1;margin-bottom:8px}.roulette-result-label{font-weight:700;font-size:1.08rem;margin-bottom:4px}.roulette-result-desc{font-size:.88rem}.confetti{position:absolute;inset:-24px 0 auto 0;height:0;overflow:visible;pointer-events:none}.confetti-piece{position:absolute;top:0;width:8px;height:8px;border-radius:2px;animation:confetti-fall 1.1s ease-out forwards}.confetti-emoji{width:auto;height:auto;border-radius:0;font-size:1.3rem;line-height:1;color:#dc2626}@keyframes confetti-fall{0%{transform:translate3d(0,-10px,0) rotate(0);opacity:1}to{transform:translate3d(var(--drift, 0px),220px,0) rotate(540deg);opacity:0}}.auth{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:400px}.divider{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:.82rem;margin:18px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.spinner{width:20px;height:20px;border:2.5px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.loading{display:grid;place-items:center;min-height:60vh}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;color:var(--text-muted);padding:40px 20px}@media (max-width: 640px){.card{padding:18px}.nav-link{padding:8px 10px}.nav-inner{height:auto;min-height:56px;flex-wrap:wrap;padding-block:8px;row-gap:6px}.nav-links{order:3;width:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.nav-links::-webkit-scrollbar{display:none}.nav-link{white-space:nowrap}}.btn{white-space:nowrap}@media (pointer: coarse){.input,.select{font-size:16px}}
