Загрузка данных
// ============================================================
// Route Bot — RAGE MP Client Script
// F5 → старт / стоп
// F6 → выгрузить скрипт
// ============================================================
var ROUTES = {
1: {
0: [
{x:32.2841, y:-375.8669, z:45.5035},
{x:35.3826, y:-382.2754, z:45.5011},
{x:51.9633, y:-388.209, z:45.5537},
{x:47.8488, y:-397.3483, z:45.5545},
{x:46.1522, y:-403.499, z:45.5595},
{x:46.1493, y:-409.9039, z:45.5581},
{x:45.8323, y:-410.9276, z:45.5589},
],
1: [
{x:32.5587, y:-375.5934, z:45.5574},
{x:34.736, y:-381.7086, z:45.5574},
{x:49.9655, y:-387.5345, z:45.5594},
{x:54.5514, y:-384.3559, z:45.5517},
{x:57.8387, y:-377.4317, z:45.5591},
{x:57.3149, y:-377.4927, z:45.5592},
],
2: [
{x:33.1002, y:-375.2019, z:45.5574},
{x:33.1366, y:-381.7099, z:45.5574},
{x:31.2809, y:-386.848, z:45.5574},
{x:31.1013, y:-391.8215, z:45.5555},
{x:27.6911, y:-397.2025, z:45.5574},
{x:22.8541, y:-408.4094, z:45.5589},
{x:21.5217, y:-408.2098, z:45.7391},
],
3: [
{x:32.9671, y:-374.9251, z:45.5574},
{x:33.6029, y:-380.8379, z:45.5574},
{x:31.0079, y:-387.7186, z:45.5533},
{x:27.4708, y:-398.3781, z:45.5522},
{x:27.3931, y:-408.1246, z:45.5912},
{x:33.6353, y:-411.08, z:45.5705},
{x:38.0326, y:-413.3642, z:45.5603},
{x:34.4947, y:-421.1559, z:45.5562},
{x:31.4005, y:-430.14, z:45.5589},
{x:31.8532, y:-433.2453, z:45.558},
{x:33.3348, y:-437.3776, z:45.5382},
{x:32.7062, y:-444.8352, z:45.5577},
{x:32.7728, y:-445.3491, z:45.5577},
],
},
2: {
0: [
{x:44.7781, y:-410.7978, z:45.559},
{x:40.7621, y:-412.7346, z:45.6014},
{x:33.861, y:-410.8508, z:45.5787},
{x:25.7788, y:-408.0394, z:45.5758},
{x:22.6847, y:-407.9226, z:45.5618},
{x:21.5217, y:-408.2098, z:45.7391},
],
1: [
{x:45.156, y:-410.9401, z:45.559},
{x:45.2104, y:-408.1404, z:45.559},
{x:46.4074, y:-402.8054, z:45.5565},
{x:48.9048, y:-395.3026, z:45.5595},
{x:52.3795, y:-386.1622, z:45.5592},
{x:54.782, y:-382.5772, z:45.5429},
{x:57.4387, y:-377.983, z:45.5592},
{x:57.3149, y:-377.4927, z:45.5592},
],
2: [
{x:44.906, y:-411.0331, z:45.5589},
{x:41.123, y:-412.3185, z:45.5864},
{x:32.032, y:-409.6026, z:45.5795},
{x:34.6916, y:-395.7976, z:45.5625},
{x:39.066, y:-383.7132, z:45.5574},
{x:34.0252, y:-381.5273, z:45.5503},
{x:32.9633, y:-375.7962, z:45.5499},
{x:33.1549, y:-374.8468, z:45.5787},
],
3: [
{x:45.8248, y:-411.0248, z:45.5589},
{x:46.6564, y:-412.077, z:45.5589},
{x:42.9137, y:-422.9731, z:45.5589},
{x:39.57, y:-432.9532, z:45.5588},
{x:34.9304, y:-437.5059, z:45.5578},
{x:32.7311, y:-440.9721, z:45.5521},
{x:32.7183, y:-445.6103, z:45.5578},
{x:32.7728, y:-445.3491, z:45.5577},
],
},
3: {
0: [
{x:23.134, y:-407.7122, z:45.559},
{x:27.7593, y:-399.0741, z:45.559},
{x:31.9114, y:-385.9053, z:45.547},
{x:34.2217, y:-379.0975, z:45.5574},
{x:32.897, y:-375.0428, z:45.5574},
{x:33.1549, y:-374.8468, z:45.5787},
],
1: [
{x:21.9889, y:-407.9803, z:45.5589},
{x:25.5522, y:-407.288, z:45.5595},
{x:32.156, y:-409.6479, z:45.559},
{x:40.4673, y:-412.4851, z:45.559},
{x:42.4196, y:-413.2013, z:45.6017},
{x:43.1321, y:-411.13, z:45.559},
{x:44.2762, y:-410.7969, z:45.559},
{x:45.8323, y:-410.9276, z:45.5589},
],
2: [
{x:22.4608, y:-407.8726, z:45.559},
{x:29.3851, y:-407.8447, z:45.5621},
{x:34.0036, y:-396.2793, z:45.5665},
{x:37.663, y:-386.0164, z:45.5568},
{x:44.9877, y:-387.3763, z:45.5934},
{x:50.444, y:-387.5557, z:45.5591},
{x:54.1239, y:-384.7965, z:45.5569},
{x:57.1771, y:-377.9745, z:45.5591},
{x:57.3149, y:-377.4927, z:45.5592},
],
3: [
{x:22.1909, y:-407.7144, z:45.559},
{x:28.6324, y:-409.0053, z:45.5621},
{x:28.916, y:-414.9081, z:45.559},
{x:25.8197, y:-422.5333, z:45.5575},
{x:23.9429, y:-428.0728, z:45.5589},
{x:27.2655, y:-429.9239, z:45.5553},
{x:33.3011, y:-432.942, z:45.5578},
{x:34.6333, y:-436.2155, z:45.5578},
{x:32.9281, y:-444.8118, z:45.5576},
{x:32.7728, y:-445.3491, z:45.5577},
],
},
4: {
0: [
{x:32.6047, y:-445.2284, z:45.5578},
{x:31.6222, y:-432.2799, z:45.5565},
{x:32.3965, y:-425.0526, z:45.5585},
{x:27.4159, y:-422.0144, z:45.5568},
{x:21.1062, y:-419.4166, z:45.5421},
{x:24.0253, y:-410.2018, z:45.5586},
{x:21.877, y:-407.1364, z:46.2502},
{x:21.5217, y:-408.2098, z:45.7391},
],
1: [
{x:32.7729, y:-444.9617, z:45.5578},
{x:34.1838, y:-438.7247, z:45.5527},
{x:37.1812, y:-435.9959, z:45.5568},
{x:41.3294, y:-430.6939, z:45.5588},
{x:43.5927, y:-423.3674, z:45.5421},
{x:45.9407, y:-415.0227, z:45.5589},
{x:47.1827, y:-411.1861, z:45.5589},
{x:45.0491, y:-411.0327, z:45.5589},
{x:45.8323, y:-410.9276, z:45.5589},
],
2: [
{x:32.4134, y:-444.9808, z:45.5577},
{x:34.9718, y:-436.6453, z:45.5403},
{x:38.0665, y:-434.5031, z:45.5574},
{x:41.3904, y:-428.6102, z:45.5586},
{x:44.0488, y:-420.7016, z:45.5509},
{x:43.3052, y:-416.1138, z:45.5589},
{x:41.1252, y:-411.558, z:45.5983},
{x:40.0312, y:-407.7891, z:45.559},
{x:41.0608, y:-404.5442, z:45.559},
{x:43.0204, y:-401.3647, z:45.5573},
{x:44.2828, y:-398.0523, z:45.5589},
{x:45.3925, y:-394.358, z:45.5589},
{x:46.4771, y:-390.8939, z:45.5569},
{x:47.5157, y:-388.4531, z:45.5585},
{x:49.4491, y:-386.8575, z:45.5587},
{x:53.9896, y:-384.2942, z:45.5446},
{x:57.2264, y:-377.9604, z:45.5592},
{x:57.3149, y:-377.4927, z:45.5592},
],
3: [
{x:32.8475, y:-445.4446, z:45.5578},
{x:32.1761, y:-438.2084, z:45.5356},
{x:31.1655, y:-429.6941, z:45.5582},
{x:31.7801, y:-424.0309, z:45.5582},
{x:36.028, y:-413.0981, z:45.5589},
{x:32.6175, y:-410.3799, z:45.5899},
{x:30.1674, y:-407.9261, z:45.5599},
{x:33.4748, y:-398.7068, z:45.6103},
{x:35.9359, y:-392.0994, z:45.5576},
{x:38.6277, y:-384.3639, z:45.5574},
{x:39.3063, y:-383.3952, z:45.5574},
{x:35.2548, y:-381.9677, z:45.512},
{x:33.6591, y:-378.789, z:45.5574},
{x:32.8906, y:-375.2994, z:45.5357},
{x:33.1549, y:-374.8468, z:45.5787},
],
},
0: {
0: [
{x:57.9287, y:-377.5237, z:45.5592},
{x:54.3429, y:-386.3213, z:45.5591},
{x:46.0359, y:-388.5314, z:45.5587},
{x:39.5772, y:-383.7882, z:45.5581},
{x:34.2828, y:-381.6545, z:45.5528},
{x:33.1089, y:-375.8275, z:45.5397},
{x:33.1549, y:-374.8468, z:45.5787},
],
1: [
{x:57.9142, y:-376.5194, z:45.5592},
{x:51.3774, y:-387.223, z:45.5592},
{x:45.9547, y:-403.1076, z:45.5595},
{x:42.5719, y:-402.2737, z:45.5563},
{x:40.4407, y:-406.2863, z:45.5589},
{x:35.2963, y:-420.1089, z:45.5589},
{x:31.3263, y:-430.9757, z:45.5579},
{x:32.3693, y:-437.4427, z:45.5541},
{x:32.7698, y:-444.7742, z:45.5592},
{x:32.7728, y:-445.3491, z:45.5577},
],
2: [
{x:58.6036, y:-377.2091, z:45.5592},
{x:52.1034, y:-386.5851, z:45.5561},
{x:47.5997, y:-398.1274, z:45.5578},
{x:45.7473, y:-406.8396, z:45.5555},
{x:45.4473, y:-411.601, z:45.5639},
{x:45.8323, y:-410.9276, z:45.5589},
],
3: [
{x:58.4105, y:-377.1164, z:45.5592},
{x:53.3934, y:-386.3329, z:45.5587},
{x:46.4446, y:-388.8817, z:45.5571},
{x:43.0399, y:-393.2126, z:45.555},
{x:37.9822, y:-395.6814, z:45.6323},
{x:33.2956, y:-398.9085, z:45.5575},
{x:30.5384, y:-407.3081, z:45.5599},
{x:26.402, y:-408.74, z:45.5971},
{x:22.3563, y:-407.7971, z:45.5616},
{x:21.5217, y:-408.2098, z:45.7391},
],
},
};
function dist2D(a, b) {
var dx = a.x - b.x, dy = a.y - b.y;
return Math.sqrt(dx*dx + dy*dy);
}
function dist3D(a, b) {
var dx = a.x - b.x, dy = a.y - b.y, dz = a.z - b.z;
return Math.sqrt(dx*dx + dy*dy + dz*dz);
}
// в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
// РЎРћРЎРўРћРЇРќРР• БОТА
// в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
var botActive = false;
var currentMain = null;
var currentPoint = null;
var routeStep = 0;
var blipPos = null;
var botStatus = 'Стоит';
var playerCoords = {x:0,y:0,z:0};
var stuckTimer = 0;
var onBlipTimer = 0; // когда встали на блип
var STUCK_TIMEOUT = 6000;
var ONBLIP_RERUN = 5000; // через 5с бежим к блипу заново
var onBlip = false;
var adminNearby = false;
var adminPaused = false;
var ADMIN_CHECK_DIST = 40.0;
// в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
// РђР’РўРћ-РљРђР—РРќРћ
// в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
var casinoActive = false;
var casinoInterval = null;
var casinoAdminPause = false;
var CASINO_INTERVAL = 10000;
function doCasinoSpin() {
try {
mp.events.callRemote('__rpc:process', JSON.stringify({
req:1, id:'922u27', name:'server_casino_site_spin',
env:'client', args:null, fenv:'cef', noRet:null
}));
mp.console.logInfo('[Casino] Spin!');
} catch(e) {}
}
function startCasino() {
if (casinoInterval) clearInterval(casinoInterval);
casinoInterval = setInterval(function() {
if (casinoAdminPause) return;
doCasinoSpin();
}, CASINO_INTERVAL);
casinoActive = true;
if (guiBrowser) { try { guiBrowser.execute('setCasinoBtn(true)'); } catch(e) {} }
mp.gui.chat.push('!{00FF00}[Casino]: !{FFFFFF}Автопрокрут запущен.');
}
function stopCasino() {
if (casinoInterval) { clearInterval(casinoInterval); casinoInterval = null; }
casinoActive = false; casinoAdminPause = false;
if (guiBrowser) { try { guiBrowser.execute('setCasinoBtn(false)'); } catch(e) {} }
mp.gui.chat.push('!{FF0000}[Casino]: !{FFFFFF}Автопрокрут остановлен.');
}
// в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
// ОБЕЗБОЛ
// в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
var PK_HASH = 3538502018;
var pkCountBase = 0, pkCountLast = 0, pkGained = 0, lastPkCheck = 0;
function getPKCount() {
try {
var inv = mp.players.local.getVariable('inventory');
if (!inv) return 0;
if (Array.isArray(inv)) {
for (var i = 0; i < inv.length; i++) {
if (inv[i].hash === PK_HASH || inv[i].hash === String(PK_HASH) ||
inv[i].itemHash === PK_HASH || inv[i].id === PK_HASH) {
return parseInt(inv[i].count || inv[i].amount || inv[i].quantity || 1);
}
}
return 0;
}
if (typeof inv === 'object') {
var v = inv[PK_HASH] || inv[String(PK_HASH)];
if (v !== undefined) return parseInt(v.count || v.amount || v || 0);
}
} catch(e) {}
return 0;
}
function checkPKDiff() {
var now = Date.now();
if (now - lastPkCheck < 500) return;
lastPkCheck = now;
var cur = getPKCount();
if (cur > pkCountLast) {
var diff = cur - pkCountLast;
pkGained += diff; pkCountLast = cur;
if (guiBrowser) { try { guiBrowser.execute('addPK('+diff+')'); } catch(e) {} }
mp.console.logInfo('[Bot] Обезбол +'+diff+' (всего: '+pkGained+')');
} else if (cur < pkCountLast) {
pkCountLast = cur;
}
}
// в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
// РђР’РўРћРљР›РРљР•Р
// в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
var _autoClickerInjected = false;
var AUTO_CLICKER_CODE = [
"(function() {",
" if (window.__autoClickerActive) return;",
" window.__autoClickerActive = true;",
" var PRESS_INTERVAL = 10;",
" function isGameVisible() {",
" var panel = document.getElementById('builderGameContent');",
" return panel && panel.style.display !== 'none';",
" }",
" function getCurrentKey() {",
" var keyEl = document.getElementById('builderGameKey');",
" return keyEl ? keyEl.textContent.trim() : null;",
" }",
" function emulateKeyPress(key) {",
" ['keydown','keypress','keyup'].forEach(function(t) {",
" var e = new KeyboardEvent(t, {key:key,bubbles:true,cancelable:true,view:window});",
" document.body.dispatchEvent(e); document.dispatchEvent(e);",
" });",
" }",
" setInterval(function() {",
" if (!window.__autoClickerActive) return;",
" if (!isGameVisible()) return;",
" var key = getCurrentKey();",
" if (!key) return;",
" emulateKeyPress(key);",
" }, PRESS_INTERVAL);",
"})();"
].join("\n");
function tryInjectAutoClicker() {
if (_autoClickerInjected) return;
try {
if (!mp || !mp.browsers) return;
var arr = [];
if (typeof mp.browsers.toArray === 'function') arr = mp.browsers.toArray();
else if (typeof mp.browsers.length === 'number' && typeof mp.browsers.at === 'function') {
for (var i = 0; i < mp.browsers.length; i++) arr.push(mp.browsers.at(i));
}
for (var j = 0; j < arr.length; j++) {
try {
var url = String(arr[j].url || '');
if (url.indexOf('__menu.html') !== -1 || url.indexOf('package/Menu') !== -1) {
arr[j].execute(AUTO_CLICKER_CODE);
_autoClickerInjected = true;
mp.gui.chat.push('!{00FF00}[Bot]: !{FFFFFF}Автокликер активирован');
return;
}
} catch(e2) {}
}
} catch(e) {}
}
// в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
// GUI
// в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
var guiBrowser = null;
var guiHTML = `<!DOCTYPE html>
<html><head><meta charset="utf-8"><style>
*{margin:0;padding:0;box-sizing:border-box;}
html,body{background:transparent;overflow:hidden;font-family:'Segoe UI',sans-serif;user-select:none;}
#panel{position:absolute;left:15px;top:15px;width:270px;
background:linear-gradient(160deg,rgba(15,15,25,0.95),rgba(8,8,18,0.97));
border-radius:12px;border:1px solid rgba(255,255,255,0.08);
box-shadow:0 8px 32px rgba(0,0,0,0.6);overflow:hidden;cursor:move;}
.title{background:linear-gradient(90deg,rgba(0,180,80,0.25),rgba(80,0,200,0.25));
padding:9px 12px;font-size:11px;font-weight:700;text-transform:uppercase;
letter-spacing:1.5px;color:#fff;border-bottom:1px solid rgba(255,255,255,0.07);text-align:center;}
.tabs{display:flex;border-bottom:1px solid rgba(255,255,255,0.06);}
.tab{flex:1;padding:7px 4px;font-size:9px;font-weight:700;text-align:center;
color:rgba(255,255,255,0.35);cursor:pointer;letter-spacing:.5px;text-transform:uppercase;
transition:all .2s;border-bottom:2px solid transparent;}
.tab.active{color:#fff;border-bottom:2px solid #a78bfa;}
.tab:hover{color:rgba(255,255,255,0.7);}
.page{display:none;padding:10px 12px;}.page.active{display:block;}
.row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
.row:last-child{margin-bottom:0;}
.lbl{font-size:10px;color:rgba(255,255,255,0.45);font-weight:600;text-transform:uppercase;letter-spacing:.4px;}
.val{font-size:11px;font-weight:700;color:#fff;text-align:right;
background:rgba(255,255,255,0.07);padding:2px 8px;border-radius:5px;
max-width:155px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.val.green{background:rgba(0,220,80,0.2);color:#00ff55;}
.val.blue{background:rgba(0,120,255,0.2);color:#4db8ff;}
.val.yellow{background:rgba(255,200,0,0.15);color:#ffe066;}
.val.red{background:rgba(255,50,50,0.2);color:#ff6666;}
.val.orange{background:rgba(255,140,0,0.2);color:#ffaa33;}
.val.purple{background:rgba(167,139,250,0.15);color:#a78bfa;}
.divider{height:1px;background:rgba(255,255,255,0.05);margin:6px 0;}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px;}
.stat-cell{background:rgba(255,255,255,0.04);border-radius:7px;padding:7px 8px;text-align:center;}
.stat-cell .n{font-size:15px;font-weight:800;color:#00ff55;}
.stat-cell .l{font-size:8px;color:rgba(255,255,255,0.35);text-transform:uppercase;margin-top:2px;}
.inp-row{margin-bottom:8px;}
.inp-lbl{font-size:9px;color:rgba(255,255,255,0.45);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;}
input[type=number],input[type=text]{width:100%;background:rgba(255,255,255,0.06);
border:1px solid rgba(255,255,255,0.1);border-radius:5px;padding:5px 8px;color:#fff;font