:root{--bg: #0b0d10;--panel: #12161b;--panel-2: #171c22;--line: #28313b;--text: #e7edf3;--muted: #91a0ae;--accent: #ff5a36;--accent-2: #ffb347;--ok: #35c48b;--warn: #f0b45c;--err: #ff6b6b;--mono: "SFMono-Regular", "Cascadia Code", "Roboto Mono", Menlo, monospace;--sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(1200px 600px at 80% -10%,rgba(255,90,54,.08),transparent 60%),var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.5}h1,h2,h3{margin:0 0 .5rem;line-height:1.2}h1{font-size:1.5rem;letter-spacing:-.02em}h2{font-size:1.15rem}h3{margin-top:1.25rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}code{font-family:var(--mono);font-size:.85rem;color:var(--accent-2);word-break:break-all}a{color:var(--accent-2)}button,input{font:inherit}.app{max-width:1500px;margin:0 auto;padding:1.25rem clamp(.75rem,2vw,2rem) 4rem}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line);margin-bottom:1.25rem}.topbar-user{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.eyebrow{margin:0 0 .25rem;color:var(--accent);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}.muted{color:var(--muted)}.hint{color:var(--muted);font-size:.82rem}.alert{border:1px solid rgba(255,107,107,.45);background:#ff6b6b14;color:#ffd7d7;padding:.6rem .8rem;border-radius:8px}.alert.success{border-color:#35c48b73;background:#35c48b14;color:#c9ffe9}.card{background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;margin-bottom:1rem}.success-card{border-color:#35c48b66}.actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--line);background:#1b222a;color:var(--text);border-radius:8px;padding:.55rem .9rem;cursor:pointer;text-decoration:none;transition:border-color .15s ease,background .15s ease}.button:hover:not(:disabled){border-color:var(--accent)}.button:disabled{opacity:.5;cursor:not-allowed}.button.primary{background:linear-gradient(180deg,#ff6a45,#e84a26);border-color:transparent;color:#180904;font-weight:650}.button.danger{border-color:#ff6b6b80;color:#ffc9c9}.button.small{padding:.35rem .6rem;font-size:.8rem}.status-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.tabs{display:flex;gap:.35rem;border-bottom:1px solid var(--line);margin-bottom:1rem;overflow-x:auto}.tab{border:none;background:transparent;color:var(--muted);padding:.65rem .8rem;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.research-layout{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(260px,.9fr);gap:1rem;align-items:start}.research-main,.research-side{min-width:0}.plain-list{margin:.25rem 0 .75rem;padding-left:1.2rem}.marker-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem}.vnc-wrap{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#050607}.vnc-toolbar{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap}.vnc-input-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.55rem .7rem;border-bottom:1px solid var(--line);background:#0e1318}.vnc-input-label{color:var(--muted);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.vnc-input{flex:1 1 220px;min-width:0;background:#080b0e;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:.55rem .7rem;font-size:16px}.vnc-input:focus{border-color:var(--accent);outline:none}.vnc-stage{position:relative;min-height:420px;background:#050607}.vnc-screen{width:100%;min-height:420px;outline:none}.vnc-screen canvas{max-width:100%}.vnc-overlay{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:.35rem;padding:1rem;background:#050607d1}.vnc-placeholder{border:1px dashed var(--line);border-radius:12px;padding:3rem 1rem;text-align:center;color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.online{background:var(--ok);box-shadow:0 0 8px var(--ok)}.dot.offline{background:var(--err)}.candidate-list,.request-list,.frame-list{list-style:none;margin:0;padding:0}.candidate-list li{border-top:1px solid var(--line);padding:.6rem 0}.candidate-head,.detail-head,.frame-head{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;margin-bottom:.35rem}.confidence{color:var(--accent-2);font-family:var(--mono);font-size:.8rem}.badge{display:inline-block;padding:.12rem .45rem;border-radius:999px;border:1px solid var(--line);background:#0e1318;font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.badge.new{border-color:#ffb3478c;color:var(--accent-2)}.badge.source,.badge.in{color:#9ecbff}.badge.out{color:#ffc59e}.category-balance,.category-bonus_balance{color:#8ef0c0;border-color:#35c48b73}.category-open_bets,.category-bet_history,.category-bet_details{color:#ffd08a;border-color:#ffb34773}.category-transactions{color:#9ecbff;border-color:#9ecbff73}.category-auth,.category-session{color:#ff9f8a;border-color:#ff5a3673}.explorer-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:1rem;align-items:start}.explorer-head{display:flex;justify-content:space-between;gap:.75rem;align-items:center;flex-wrap:wrap}.search{background:#0b0f13;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:.45rem .7rem;min-width:220px}.filter-row{display:flex;gap:.35rem;flex-wrap:wrap;margin:.75rem 0}.chip{border:1px solid var(--line);background:#0e1318;color:var(--muted);border-radius:999px;padding:.28rem .65rem;cursor:pointer;font-size:.78rem}.chip.active{color:#180904;background:var(--accent-2);border-color:transparent;font-weight:650}.request-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:.5rem;align-items:center;width:100%;text-align:left;border:none;border-top:1px solid var(--line);background:transparent;color:var(--text);padding:.55rem .35rem;cursor:pointer}.request-row:hover,.request-row.active{background:#ff5a360f}.request-method{font-family:var(--mono);font-size:.72rem;color:var(--accent-2)}.request-url{font-family:var(--mono);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.request-status{font-family:var(--mono);font-size:.75rem;color:var(--muted)}.detail-card{min-width:0}.detail-title{font-family:var(--mono);font-size:.95rem;word-break:break-all}.headers-table{width:100%;border-collapse:collapse;font-size:.8rem}.headers-table th,.headers-table td{border-top:1px solid var(--line);padding:.35rem .45rem;text-align:left;vertical-align:top;word-break:break-all}.headers-table th{color:var(--muted);font-weight:500;width:34%;font-family:var(--mono)}.json-block,.report-pre{margin:.35rem 0 .75rem;padding:.75rem;border:1px solid var(--line);border-radius:8px;background:#080b0e;color:#cfe3f3;font-family:var(--mono);font-size:.78rem;white-space:pre-wrap;word-break:break-word;max-height:440px;overflow:auto}.report-pre{max-height:70vh}.frame-list li{border-top:1px solid var(--line);padding:.6rem 0}.stack{display:grid;gap:1rem}.center-screen{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.login-screen{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(460px,100%);background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line);border-radius:16px;padding:1.5rem;display:grid;gap:.8rem}.login-card h1{font-size:2rem}.toast{position:fixed;right:1rem;bottom:1rem;background:#1c242d;border:1px solid var(--accent);color:var(--text);padding:.65rem .9rem;border-radius:8px;box-shadow:0 10px 30px #00000073;max-width:90vw}@media(max-width:980px){.research-layout,.explorer-layout{grid-template-columns:1fr}.vnc-stage,.vnc-screen{min-height:300px}}@media(max-width:640px){.app{padding:.75rem .75rem 3rem}.request-row{grid-template-columns:auto minmax(0,1fr) auto}.request-row .request-status{display:none}.topbar{align-items:flex-start}.search{min-width:0;width:100%}}
