:root{--bg:#0a0e1a;--bg2:#0e1424;--card:#141b2e;--card2:#1a2338;--fg:#eef2fb;--mut:#8a97b4;--line:#232d47;--acc:#2e7dff;--acc2:#7ac8ff;--steel:#8b95a5;--ok:#2fd67f;--warn:#ffb020;--danger:#ff5d5d;--gold:#ffd23f;--radius:14px;--shadow:0 8px 30px rgba(0,0,0,.35);--shadow-lg:0 16px 50px rgba(0,0,0,.45);--ease:cubic-bezier(.2,.7,.3,1)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;scroll-behavior:smooth}body{background-image:radial-gradient(900px 400px at 100% -10%,rgba(91,140,255,.12),transparent),radial-gradient(700px 350px at -10% 0,rgba(47,214,127,.08),transparent),radial-gradient(600px 300px at 50% 110%,rgba(91,140,255,.06),transparent);background-attachment:fixed}a{color:var(--acc2);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:6px}.wrap{max-width:1040px;margin:0 auto;padding:26px 20px 60px}::selection{background:rgba(91,140,255,.35);color:var(--fg)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--acc)}.topbar{justify-content:space-between;margin-bottom:22px;gap:12px;flex-wrap:wrap}.brand,.topbar{display:flex;align-items:center}.brand{gap:11px}.logo{width:34px;height:34px;border-radius:9px;overflow:hidden;display:grid;place-items:center;box-shadow:var(--shadow),0 0 0 1px hsla(0,0%,100%,.06) inset}.logo img{width:100%;height:100%;object-fit:cover;display:block}.brand h1{font-size:18px;margin:0;font-weight:800;letter-spacing:.2px}.brand .sub{font-size:12px;color:var(--mut);margin-top:1px}.card{background:linear-gradient(180deg,var(--card),var(--bg2));border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:var(--shadow);transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.card:hover{border-color:#2c3859}.card h3{margin:0 0 12px;font-size:15px;display:flex;align-items:center;gap:8px}.live-dot{position:relative;width:8px;height:8px;border-radius:50%;background:var(--ok);display:inline-block;flex:none}.live-dot:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid var(--ok);opacity:.55;animation:livepulse 1.8s ease-out infinite}.live-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--ok);text-transform:uppercase;letter-spacing:.5px}@keyframes livepulse{0%{transform:scale(.7);opacity:.6}to{transform:scale(2.1);opacity:0}}.head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.muted{color:var(--mut)}.small{font-size:12px}.badge{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;background:#232d47;color:var(--mut);text-transform:uppercase;letter-spacing:.4px;display:inline-flex;align-items:center;gap:5px}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.waiting{background:rgba(255,176,32,.14);color:var(--warn)}.badge.running{background:rgba(47,214,127,.15);color:var(--ok)}.badge.paused{background:rgba(138,151,180,.18);color:var(--mut)}.badge.ended{background:rgba(91,140,255,.15);color:var(--acc2)}.badge.archived{background:rgba(90,100,130,.18);color:#6b7794}label{display:block;font-size:12px;color:var(--mut);margin:12px 0 5px;font-weight:600}input,select{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:#0c1220;color:var(--fg);font:inherit;outline:none;transition:border .15s}input:focus,select:focus{border-color:var(--acc)}button{font:inherit;cursor:pointer;border:0;border-radius:10px;padding:10px 16px;font-weight:700;background:var(--acc);color:#fff;transition:filter .15s var(--ease),transform .05s,box-shadow .2s var(--ease);display:inline-flex;align-items:center;gap:7px}button:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 4px 14px rgba(91,140,255,.28)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:default;filter:none}button.sec{background:#26314e}button.ghost{background:transparent;border:1px solid var(--line);color:var(--fg)}button.ok{background:var(--ok);color:#06210f}button.warn{background:var(--warn);color:#201400}button.danger{background:var(--danger);color:#2a0606}button.sm{padding:7px 12px;font-size:13px;border-radius:9px}.actions{display:flex;gap:8px;flex-wrap:wrap}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:640px){.grid2{grid-template-columns:1fr}}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:12px;border-bottom:1px solid var(--line)}th{color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.5px;font-weight:700}tbody tr{transition:background .15s var(--ease)}tbody tr:hover{background:rgba(91,140,255,.06)}tr:last-child td{border-bottom:0}td.rank{font-weight:800;width:54px}td.score{font-weight:800;color:var(--acc2);text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}tr.top1{background:linear-gradient(90deg,rgba(255,210,63,.08),transparent 70%)}tr.top1 td.rank{color:var(--gold);text-shadow:0 0 12px rgba(255,210,63,.5)}tr.score-row{cursor:pointer}.detail-caret{display:inline-block;margin-left:8px;font-size:10px;color:var(--mut);vertical-align:1px}tr.detail-row td{background:var(--bg2);border-radius:0 0 12px 12px;padding:14px 16px}tr.detail-row:hover{background:transparent}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:6px 14px;gap:6px 14px}.detail-item{display:flex;align-items:center;gap:8px;font-size:13px;padding:5px 0}.detail-item.pass{color:var(--fg)}.detail-item.fail{color:var(--mut)}.detail-item .detail-icon{width:16px;text-align:center;font-weight:800}.detail-item.pass .detail-icon{color:var(--ok)}.detail-item.fail .detail-icon{color:var(--mut)}.code{font-family:ui-monospace,SF Mono,monospace;background:#0c1220;border:1px solid var(--line);padding:3px 9px;border-radius:7px;font-size:13px;letter-spacing:.5px}.timer{font-size:30px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:1px;transition:color .3s var(--ease)}.empty{padding:34px 16px;text-align:center;color:var(--mut)}.spinner{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--acc);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}