:root{--color-bg:#161826;--color-surface:#232532;--color-text:#e9e9ed;--color-accent:#9184d9;--color-accent-2:#a7a1db;--color-divider:#e9e9ed29;--color-neutral-100:#f3f5fe;--color-neutral-200:#e4e7f5;--color-neutral-300:#cfd3e5;--color-neutral-400:#b2b6ca;--color-neutral-500:#9397ab;--color-neutral-600:#9397ab;--color-neutral-700:#9397ab;--color-neutral-800:#3f424d;--color-neutral-900:#292b31;--color-accent-100:#f5f4ff;--color-accent-200:#e7e5fe;--color-accent-300:#d2cefd;--color-accent-400:#b5abfc;--color-accent-500:#968ae0;--color-accent-600:#796cbf;--color-accent-700:#5d5294;--color-accent-800:#423a6a;--color-accent-900:#2b2741;--color-accent-2-100:#f5f4ff;--color-accent-2-200:#e7e5fe;--color-accent-2-300:#d2cefd;--color-accent-2-400:#b5afe8;--color-accent-2-500:#9690c9;--color-accent-2-600:#7972a9;--color-accent-2-700:#5c5783;--color-accent-2-800:#423e5d;--color-accent-2-900:#2b293a;--color-section:#262a60;--color-section-glow:#353b80;--color-section-ghost:#4c5397;--font-heading:"Inter", system-ui, sans-serif;--font-heading-weight:500;--font-body:"Inter", system-ui, sans-serif;--space-1:2.8px;--space-2:5.6px;--space-3:8.4px;--space-4:11.2px;--space-6:16.8px;--space-8:22.4px;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--shadow-sm:0 0 0 1px #3f424d;--shadow-md:0 0 0 1px #595d6c, 0 6px 18px #0000008c;--shadow-lg:0 0 0 1px #9397ab, 0 16px 40px #000000a6}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg);color:var(--color-neutral-300);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.55}:focus-visible{outline:2px solid var(--color-accent-400);outline-offset:2px;border-radius:var(--radius-sm)}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input,textarea,select{font:inherit;color:inherit}h1,h2,h3{font-family:var(--font-heading);font-weight:var(--font-heading-weight)}.tnum{font-variant-numeric:tabular-nums}.shell{grid-template-columns:216px 1fr;min-height:100dvh;display:grid}.sidebar{border-right:1px solid var(--color-neutral-900);background:#12141f;flex-direction:column;gap:18px;height:100dvh;padding:14px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.nav-group-label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-neutral-600);margin-bottom:6px;padding:0 9px;font-size:10px}.nav-item{border-radius:var(--radius-sm);width:100%;color:var(--color-neutral-500);text-align:left;align-items:center;gap:9px;margin-bottom:2px;padding:7px 9px;font-size:12.5px;display:flex}.nav-item:hover{color:var(--color-neutral-300);background:#1b1d2b}.nav-item.on{background:var(--color-accent-900);color:var(--color-accent-300);box-shadow:inset 2px 0 0 var(--color-accent)}.nav-item .count{background:var(--color-accent-800);color:var(--color-accent-300);border-radius:99px;margin-left:auto;padding:1px 6px;font-size:9.5px}.main{flex-direction:column;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--color-neutral-900);background:var(--color-bg);z-index:20;align-items:center;gap:12px;padding:11px 20px;display:flex;position:sticky;top:0}.crumb{color:var(--color-neutral-500);font-size:12px}.page{flex-direction:column;gap:16px;padding:20px;display:flex}.card{border:1px solid var(--color-neutral-900);border-radius:var(--radius-md);background:#191b27}.section-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title h2{color:var(--color-neutral-300);font-size:13px}.badge{white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:10.5px;display:inline-block}.badge-done{background:var(--color-accent-900);color:var(--color-accent-300)}.badge-run{background:var(--color-surface);color:var(--color-neutral-300)}.badge-fail{color:#e2c4c4;background:#3a2830}.badge-wait{background:var(--color-surface);color:var(--color-neutral-500)}.badge-warn{color:#d8c4a0;background:#33302a}.chip{border:1px solid var(--color-neutral-800);color:var(--color-neutral-500);border-radius:99px;align-items:center;gap:5px;padding:5px 10px;font-size:11.5px;display:inline-flex}button.chip:hover{border-color:var(--color-neutral-600);color:var(--color-neutral-300)}.chip-on{border-color:var(--color-accent);color:var(--color-accent-300);background:#9184d924}.segmented{border-radius:var(--radius-sm);background:#1c1e2a;gap:2px;padding:3px;display:flex}.seg{text-align:center;min-width:0;color:var(--color-neutral-500);text-overflow:ellipsis;white-space:nowrap;border-radius:5px;flex:1;padding:6px 10px;font-size:11.5px;overflow:hidden}.seg:hover{color:var(--color-neutral-300)}.seg.on{background:var(--color-accent-900);color:var(--color-accent-300)}.meter{background:var(--color-neutral-900);border-radius:99px;height:5px;overflow:hidden}.meter-fill{border-radius:99px;height:100%;transition:width .3s ease-out;display:block}.meter-run,.meter-done{background:linear-gradient(90deg, var(--color-accent-700), var(--color-accent))}.meter-fail{background:#8a5f68}.meter-warn{background:#8a7f5f}.meter-wait{background:var(--color-neutral-800)}.btn{border-radius:var(--radius-sm);border:1px solid var(--color-neutral-800);color:var(--color-neutral-300);align-items:center;gap:6px;padding:7px 13px;font-size:12px;transition:border-color .15s ease-out,background-color .15s ease-out;display:inline-flex}.btn:hover{border-color:var(--color-neutral-600)}.btn-primary{border-color:var(--color-accent);color:var(--color-accent-300)}.btn-primary:hover{background:#9184d91f}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover{border-color:var(--color-neutral-800);background:0 0}.muted{color:var(--color-neutral-500)}.dim{color:var(--color-neutral-600)}.mono{font-family:ui-monospace,Menlo,monospace}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--color-neutral-500);font-size:11px}.field input,.field textarea,.field select{border:1px solid var(--color-neutral-800);border-radius:var(--radius-sm);color:var(--color-neutral-300);background:#1c1e2a;width:100%;padding:8px 10px;font-size:12.5px}.field input:focus,.field textarea:focus{border-color:var(--color-accent)}.shot-claim{border:1px solid var(--color-neutral-800);border-radius:var(--radius-sm);color:var(--color-neutral-300);background:#1c1e2a;width:100%;padding:4px 6px;font-size:11.5px}.toast{border:1px solid var(--color-accent-700);color:var(--color-accent-200);border-radius:var(--radius-md);z-index:100;box-shadow:var(--shadow-md);background:#1d1b2b;padding:9px 16px;font-size:12.5px;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.login{grid-template-columns:minmax(380px,44%) minmax(0,1fr);min-height:100dvh;display:grid}.login-rail{border-right:1px solid var(--color-neutral-900);background:#12141f;flex-direction:column;justify-content:center;gap:24px;padding:44px clamp(34px,3.5vw,56px) 44px clamp(46px,4.5vw,72px);display:flex;position:relative;overflow-y:auto}.login-rail>*{width:100%;max-width:500px;margin-inline:auto}.login-rail:before{content:"";background-image:radial-gradient(circle, var(--color-neutral-800) 2.5px, transparent 2.7px);pointer-events:none;background-position:9px 13px;background-size:18px 26px;width:18px;position:absolute;top:0;bottom:0;left:0}.login-mark{align-items:center;gap:9px;display:flex}.login-pitch{flex-direction:column;gap:9px;display:flex}.login-pitch h1{color:var(--color-neutral-200);font-size:23px;line-height:1.42}.login-pitch p{max-width:430px;font-size:12.5px}.login-line{flex-direction:column;list-style:none;display:flex}.login-step{border-top:1px solid var(--color-neutral-900);grid-template-columns:24px 1fr auto;align-items:baseline;gap:10px;padding:8px 0;display:grid}.login-step:last-child{border-bottom:1px solid var(--color-neutral-900)}.login-step-t{color:var(--color-neutral-300);font-size:12.5px}.login-step-d{color:var(--color-neutral-500);font-size:11.5px;display:block}.login-step-o{letter-spacing:.04em;color:var(--color-neutral-600);font-size:9.5px}.login-form-area{justify-content:center;align-items:center;padding:40px 24px;display:flex}.login-form{flex-direction:column;gap:15px;width:100%;max-width:316px;display:flex}.login-error{color:#e2c4c4;border-radius:var(--radius-sm);background:#3a2830;align-items:flex-start;gap:7px;padding:8px 10px;font-size:11.5px;display:flex}.btn.login-submit{justify-content:center;padding:9px 13px}@media (prefers-reduced-motion:no-preference){.login-step{animation:.34s ease-out both login-step-in}.login-spin{animation:.8s linear infinite login-spin}}@keyframes login-step-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes login-spin{to{transform:rotate(360deg)}}@media (width<=880px){.login{grid-template-columns:1fr;align-content:start}.login-rail{border-right:none;border-bottom:1px solid var(--color-neutral-900);justify-content:flex-start;gap:12px;padding:20px 20px 18px}.login-rail:before,.login-line{display:none}.login-pitch h1{font-size:18px}.login-form-area{align-items:flex-start;padding:32px 20px 48px}.login-rail>*,.login-form{max-width:380px;margin-inline:auto}}.boot-wait{min-height:100dvh;color:var(--color-neutral-500);place-items:center;font-size:12.5px;display:grid}.user-card{border-top:1px solid var(--color-neutral-900);flex-direction:column;gap:7px;margin-top:auto;padding-top:10px;display:flex}.user-card-head{border-radius:var(--radius-sm);text-align:left;align-items:center;gap:8px;width:100%;padding:4px 5px;display:flex}.user-card-head:hover{background:#1b1d2b}.user-avatar{background:var(--color-accent-800);width:24px;height:24px;color:var(--color-accent-200);border-radius:50%;flex:none;place-items:center;font-size:11px;display:grid}.user-id{flex-direction:column;flex:1;min-width:0;display:flex}.user-name{color:var(--color-neutral-300);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.user-scope{color:var(--color-neutral-600);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.user-meter-row{color:var(--color-neutral-400);align-items:baseline;gap:6px;padding:0 5px;font-size:11px;display:flex}.user-meter-row>:last-child{margin-left:auto}.user-pct{color:var(--color-accent-300)}.user-pct.over,.over{color:#e2a0a0}.user-card .meter{margin:0 5px}.meter-quota{background:linear-gradient(90deg, var(--color-accent-700), var(--color-accent))}.meter-over{background:#8a5f68}.user-logout{border-radius:var(--radius-sm);color:var(--color-neutral-500);align-items:center;gap:6px;padding:5px;font-size:11.5px;display:flex}.user-logout:hover{color:var(--color-neutral-300);background:#1b1d2b}.stat-row{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.admin-table{border-collapse:collapse;width:100%;font-size:12px}.admin-table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--color-neutral-600);border-bottom:1px solid var(--color-neutral-900);padding:9px 12px;font-size:10.5px;font-weight:400}.admin-table td{border-bottom:1px solid var(--color-neutral-900);color:var(--color-neutral-300);vertical-align:middle;padding:9px 12px}.admin-table tr:last-child td{border-bottom:none}.admin-table .num{text-align:right}.row-off td{opacity:.5}.row-editor{background:#15171f}.row-editor-actions{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;padding-top:4px;display:flex}.admin-form{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:10px 12px;display:grid}.admin-form .btn{justify-content:center}.icon-btn{border-radius:var(--radius-sm);color:var(--color-neutral-500);padding:5px}.icon-btn:hover{background:var(--color-surface);color:var(--color-neutral-300)}.btn-danger{color:#e2c4c4;border-color:#8a5f68}.btn-danger:hover{background:#8a5f6829;border-color:#a3707a}@media (width<=860px){.admin-table{min-width:640px}.card:has(>.admin-table){overflow-x:auto}}.crash{place-items:center;min-height:100dvh;padding:24px;display:grid}.crash-box{border:1px solid var(--color-neutral-800);border-radius:var(--radius-md);background:#191b27;flex-direction:column;gap:12px;max-width:520px;padding:22px;display:flex}.crash-box h1{color:var(--color-neutral-200);font-size:17px}.crash-box p{font-size:12.5px}.crash-detail{color:#e2c4c4;border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word;background:#3a2830;max-height:180px;padding:10px 12px;font-family:ui-monospace,Menlo,monospace;font-size:11.5px;overflow:auto}.crash-actions{gap:8px;display:flex}.login-panel{flex-direction:column;gap:15px;width:100%;max-width:316px;display:flex}.login-panel .login-form{max-width:none}.login-panel .segmented{align-self:stretch}.login-panel .seg{text-align:center;flex:1}.field-row{align-items:stretch;gap:6px;display:flex}.field-row input{flex:1;min-width:0}.field-row .btn{white-space:nowrap;flex:none;padding:8px 10px;font-size:11.5px}.login-notice{background:var(--color-accent-900);color:var(--color-accent-200);border-radius:var(--radius-sm);align-items:flex-start;gap:7px;padding:8px 10px;font-size:11.5px;display:flex}.captcha{flex-direction:column;gap:8px;display:flex}.captcha-blank{border:1px solid var(--color-neutral-800);border-radius:var(--radius-sm);background:#1c1e2a;flex-direction:row;align-items:center;gap:8px;padding:12px}.captcha-frame{border:1px solid var(--color-neutral-800);border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;touch-action:none;background:#12141f;width:100%;position:relative;overflow:hidden}.captcha-bg{object-fit:cover;width:100%;height:100%;display:block}.captcha-piece{filter:drop-shadow(0 2px 4px #0009);pointer-events:none;height:auto;position:absolute}.captcha-pass{color:var(--color-accent-300);background:#161826c7;justify-content:center;align-items:center;gap:6px;font-size:12.5px;display:flex;position:absolute;inset:0}.captcha-track{border:1px solid var(--color-neutral-800);border-radius:var(--radius-sm);touch-action:none;background:#1c1e2a;height:34px;position:relative;overflow:hidden}.captcha-fill{background:linear-gradient(90deg, var(--color-accent-800), var(--color-accent-700));position:absolute;top:0;bottom:0;left:0}.captcha-hint{color:var(--color-neutral-500);pointer-events:none;justify-content:center;align-items:center;font-size:11.5px;display:flex;position:absolute;inset:0}.captcha-handle{background:var(--color-surface);width:46px;color:var(--color-neutral-300);border:1px solid var(--color-neutral-700);border-radius:var(--radius-sm);cursor:grab;touch-action:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0}.captcha-handle[data-dragging]{cursor:grabbing}.captcha-handle:hover{border-color:var(--color-accent);color:var(--color-accent-300)}.captcha-handle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.captcha-handle[aria-disabled=true]{cursor:default;opacity:.6}@media (prefers-reduced-motion:no-preference){.captcha-miss .captcha-frame{animation:.32s ease-in-out captcha-shake}}@keyframes captcha-shake{0%,to{transform:none}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media (width<=880px){.login-panel{max-width:380px;margin-inline:auto}}.invite-code{letter-spacing:.14em;color:var(--color-accent-300);border:1px solid var(--color-accent-800);border-radius:var(--radius-sm);-webkit-user-select:all;user-select:all;background:#1c1e2a;padding:9px 12px;font-family:ui-monospace,Menlo,monospace;font-size:17px}.invite-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.role-tag{letter-spacing:.04em;border-radius:99px;padding:2px 7px;font-size:10.5px}.role-manager{background:var(--color-accent-900);color:var(--color-accent-300)}.role-staff{background:var(--color-surface);color:var(--color-neutral-500)}.login{isolation:isolate;min-height:100dvh;padding:72px 40px 88px;display:block;position:relative;overflow-x:clip}.login-bg{z-index:0;pointer-events:none;position:fixed;inset:0}.login-col{z-index:1;flex-direction:column;align-items:center;gap:52px;width:100%;max-width:1120px;margin-inline:auto;display:flex;position:relative}.login-col:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 50% 44%,#0a0b14eb 0%,#0a0b14d1 32%,#0a0b1485 58%,#0a0b1400 80%);position:absolute;inset:-14% -20%}.login-head{text-align:center;flex-direction:column;align-items:center;gap:18px;max-width:680px;display:flex}.login-mark{letter-spacing:.2em;color:var(--color-neutral-400);align-items:center;gap:10px;font-size:13px;display:inline-flex}.login-head h1{letter-spacing:.01em;color:var(--color-neutral-100);text-wrap:balance;text-shadow:0 2px 28px #080910eb,0 1px 3px #080910d9;font-size:40px;font-weight:600;line-height:1.3}.login-sub{color:var(--color-neutral-400);text-shadow:0 1px 14px #080910e6;max-width:46em;font-size:15px;line-height:1.75}.login-panel{-webkit-backdrop-filter:blur(22px)saturate(125%);background:linear-gradient(#1e2132d1 0%,#0f111be0 100%);border:1px solid #b5abfc29;border-radius:18px;flex-direction:column;gap:18px;width:100%;max-width:400px;padding:26px;display:flex;box-shadow:inset 0 1px #ffffff0f,0 24px 70px #0000008c}.login-panel .login-form{gap:16px;width:100%;max-width:none}.login-panel .segmented{background:#090a119e;border:1px solid #b5abfc1a;border-radius:11px;align-self:stretch;gap:3px;padding:4px}.login-panel .seg{text-align:center;border-radius:8px;flex:1;padding:8px 10px;font-size:13px}.login-panel .seg.on{background:var(--color-accent-800);color:var(--color-accent-200)}.login-panel .field{gap:7px}.login-panel .field label{color:var(--color-neutral-400);font-size:12px}.login-panel .field input{background:#090a11b8;border-color:#b5abfc2e;border-radius:9px;padding:11px 13px;font-size:14px}.login-panel .field input:focus{border-color:var(--color-accent-400)}.login-panel .field input::placeholder{color:var(--color-neutral-500)}.login-panel .field-row .btn{border-radius:9px;padding:10px 12px;font-size:12.5px}.login-panel .login-submit{color:var(--color-accent-200);border-color:var(--color-accent);background:linear-gradient(#9184d947,#9184d924);border-radius:9px;margin-top:2px;padding:12px 16px;font-size:14px}.login-panel .login-submit:hover:not(:disabled){background:linear-gradient(#9184d966,#9184d938)}.login-panel .login-error,.login-panel .login-notice{border-radius:9px;padding:10px 12px;font-size:12.5px}.login-pipeline{flex-direction:column;gap:26px;width:100%;display:flex}.login-eyebrow{letter-spacing:.24em;color:var(--color-neutral-400);align-items:center;gap:14px;font-size:12px;font-weight:500;display:flex}.login-eyebrow:after{content:"";background:linear-gradient(90deg, var(--color-neutral-800), transparent);flex:1;height:1px}.login-line{--pipe-gap:12px;gap:var(--pipe-gap);grid-template-columns:repeat(6,1fr);padding-top:26px;list-style:none;display:grid;position:relative}.login-line:before{content:"";top:4px;left:calc((100% - var(--pipe-gap) * 5) / 12);right:calc((100% - var(--pipe-gap) * 5) / 12);background:var(--color-neutral-800);height:1px;position:absolute}.login-step{-webkit-backdrop-filter:blur(14px)saturate(115%);background:linear-gradient(#171927ed,#0d0f18f0);border:1px solid #b5abfc1c;border-radius:12px;flex-direction:column;align-items:flex-start;gap:5px;padding:15px 14px;display:flex;position:relative}.login-step:after{content:"";background:var(--color-bg);border:1px solid var(--color-accent-500);border-radius:50%;width:7px;height:7px;position:absolute;top:-26px;left:50%;transform:translate(-50%)}.login-step-n{letter-spacing:.1em;color:var(--color-accent-400);font-size:11px}.login-step-t{color:var(--color-neutral-200);font-size:15px;font-weight:500}.login-step-d{color:var(--color-neutral-500);font-size:12.5px;line-height:1.65;display:block}.login-step-o{letter-spacing:.06em;color:var(--color-neutral-500);margin-top:2px;font-size:11px}@media (width<=980px){.login{padding:48px 24px 64px}.login-col{gap:40px}.login-head{gap:15px}.login-head h1{font-size:31px}.login-line{grid-template-columns:repeat(2,1fr);padding-top:0}.login-line:before,.login-step:after{display:none}}@media (width<=620px){.login-line{grid-template-columns:1fr}}@media (width<=560px){.login{padding:36px 18px 52px}.login-head h1{font-size:25px}.login-sub{font-size:14px}.login-panel{border-radius:15px;padding:20px 18px}.login-panel .field input{font-size:16px}}@media (prefers-reduced-motion:no-preference){.login-step{animation:.4s ease-out both login-step-in}}@media (prefers-reduced-motion:reduce){.login-bg{opacity:.55}}.light-tunnel-container{width:100%;height:100%;position:relative;overflow:hidden}
