*{box-sizing:border-box} :root{--bg:#0a1023;--panel:#121a36;--text:#ecf1ff;--muted:#9fb0e8;--line:#2b3b73;--blue:#4e83ff;--green:#22c55e;--orange:#f59e0b;--red:#ef4444}
body[data-theme='light']{--bg:#f4f7ff;--panel:#ffffff;--text:#0f172a;--muted:#60709f;--line:#d9e2ff;--blue:#3f6ff0}
body{margin:0;color:var(--text);background:var(--bg);font-family:Inter,Arial,sans-serif;padding:16px 16px 24px;min-height:100vh;transition:.2s}
.bg-blur{position:fixed;inset:-80px;background:radial-gradient(circle at 10% 10%,#2046c04f 0,transparent 45%),radial-gradient(circle at 90% 10%,#1ea67229 0,transparent 35%),radial-gradient(circle at 50% 100%,#8b5cf61f 0,transparent 40%);pointer-events:none;z-index:0}
.glass{backdrop-filter:blur(8px)}
.panel,.cards,.table-wrap{content-visibility:auto;contain-intrinsic-size:300px}
.topbar,.panel,.modal-card{position:relative;z-index:1;background:var(--panel);border:1px solid var(--line);border-radius:16px}
.topbar{padding:14px;display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:12px}
.topbar h1{margin:0;font-size:24px}.sub{margin:6px 0 0;color:var(--muted);font-size:13px}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions input{height:38px;min-width:220px;padding:0 12px;background:transparent;border:1px solid var(--line);border-radius:10px;color:var(--text)}
.btn{height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:#eef3ff;color:#22314f;cursor:pointer;transition:.15s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600}.btn:hover{transform:translateY(-1px);filter:brightness(1.02)}
.btn.primary{background:#4f74d8;border-color:#6f8ee0;color:#fff}.btn.ghost{background:transparent;color:var(--text)}.btn.small{height:30px;padding:0 9px;font-size:12px}
.btn.premium{background:linear-gradient(135deg,#4f74d8,#6366f1);border:none;box-shadow:0 0 12px rgba(79,116,216,0.3);animation:pulse-glow 3s infinite;height:32px;font-size:13px;padding:0 12px;color:#fff}
.btn.premium:hover{filter:brightness(1.1);box-shadow:0 0-18px rgba(79,116,216,0.5);transform:translateY(-1px)}
@keyframes pulse-glow{0%{box-shadow:0 0 5px rgba(79,116,216,0.3)}50%{box-shadow:0 0 15px rgba(79,116,216,0.5)}100%{box-shadow:0 0 5px rgba(79,116,216,0.3)}}
#safeModeBtn{min-width:96px}
#safeModeBtn.safe-on{background:#16a34a;border-color:#22c55e;color:#fff}
#safeModeBtn.safe-off{background:#111827;border-color:#1f2937;color:#fff}
.btn.action{width:84px;height:30px;padding:0 8px;font-size:12px;border-radius:9px}
.op-row{display:flex;align-items:center;gap:6px;min-width:520px}
.btn.policy-on{background:#16a34a;border-color:#22c55e;color:#fff;width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btn.policy-off{width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.icon-btn{height:18px;width:18px;margin-left:4px;border:none;background:transparent;color:#111;cursor:pointer;line-height:1;font-size:15px;transform:skewX(-12deg);padding:0}
.icon-btn:hover{opacity:.75}
.name-wrap{display:inline-block;vertical-align:middle}
.btn.snapshot{background:#5f7fd1;border-color:#7f9be0;color:#fff}
.btn.loading{pointer-events:none;opacity:.75}
.cards{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:10px;margin-bottom:12px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px}
.card .k{font-size:12px;color:var(--muted)}.card .v{font-size:24px;font-weight:700;margin-top:4px}
.panel{padding:12px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.panel-title{font-weight:700}.hint{font-size:12px;color:var(--muted)}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;font-size:13px;white-space:nowrap}th{color:var(--muted)}
.copy-ip{cursor:pointer;text-decoration:underline dotted;color:var(--text)}
.copy-ip:hover{color:var(--blue)}
.badge{padding:3px 8px;border-radius:999px;font-size:12px}.running{background:#123d27;color:#8df4b2}.other{background:#3b2d12;color:#f9ca7a}
.progress{height:8px;background:#1b2850;border-radius:999px;overflow:hidden}.bar{height:100%;background:var(--blue)}.bar.warn{background:var(--red)}.progress.progress-mini{width:120px;height:7px}.ratio-text{font-weight:700}
.btn-danger{background:#c93f49;border:1px solid #de7279;color:#fff}
.daily-stats{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:8px}.daily-item{padding:10px;border:1px solid var(--line);border-radius:10px}.daily-mini{font-size:12px;color:var(--muted);margin-top:4px}
.qb-line{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;align-items:center}
.qb-col{display:block;text-align:left;font-variant-numeric:tabular-nums}
.spark{display:flex;gap:4px;align-items:flex-end;height:30px;margin-top:6px;overflow:visible}.spark i{position:relative;display:block;width:8px;background:#6f8ee0;border-radius:4px 4px 2px 2px;opacity:.9;cursor:pointer}.spark i.hot{background:#f59e0b}.spark i.crit{background:#ef4444}
.spark i:hover::after{content:attr(data-tip);position:absolute;left:calc(100% + 8px);bottom:0;white-space:nowrap;background:#111b3f;color:#fff;border:1px solid #3d56a7;border-radius:6px;padding:4px 8px;font-size:12px;line-height:1.2;z-index:5;pointer-events:none}
.spark i:hover::before{content:'';position:absolute;left:calc(100% + 2px);bottom:8px;border:5px solid transparent;border-right-color:#3d56a7;z-index:5;pointer-events:none}
.badge-traffic{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;font-size:11px;margin-left:6px}.badge-warn{background:#3b2d12;color:#f9ca7a}.badge-crit{background:#4a1f27;color:#ff9cab}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:12px;z-index:20;overflow:auto;-webkit-overflow-scrolling:touch}.hidden{display:none}
.modal-card{width:min(760px,96vw);padding:14px;max-height:calc(100vh - 24px);overflow:auto;-webkit-overflow-scrolling:touch}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:13px}.grid input:not([type="checkbox"]),.grid select{height:40px;width:100%;padding:0 10px;background:transparent;border:1px solid var(--line);border-radius:10px;color:var(--text)}
.grid input[type="checkbox"]{width:14px;height:14px;padding:0;accent-color:var(--blue)}
.grid select option{background:#0f1736;color:#ecf1ff}
body[data-theme='light'] .grid select option{background:#ffffff;color:#0f172a}
.delete-grid .checkline{flex-direction:row;align-items:center;gap:8px}
.delete-grid .checkline input[type="checkbox"]{width:14px;height:14px;padding:0;border:1px solid var(--line);border-radius:4px;accent-color:var(--blue);flex:0 0 auto}
.delete-grid .option-chip{display:inline-flex;justify-self:start;width:auto;max-width:max-content;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(78,131,255,.06);font-weight:500}
body[data-theme='light'] .delete-grid .option-chip{background:#f6f8ff}
.modal-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.stock-ok{color:var(--green)}.stock-warn{color:var(--orange)}.stock-bad{color:var(--red)}
.toast{position:fixed;right:16px;bottom:16px;padding:12px 14px;border-radius:10px;background:#111b3f;border:1px solid #3d56a7;color:#fff;z-index:30;box-shadow:0 8px 30px #00000052}
@media(max-width:980px){.cards{grid-template-columns:repeat(2,minmax(140px,1fr))}.topbar{flex-direction:column;align-items:flex-start}.grid{grid-template-columns:1fr}.daily-stats{grid-template-columns:1fr}.actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.actions .btn{width:100%;min-width:0}.actions input{grid-column:1/-1;min-width:unset;width:100%}#createServerBtn{grid-column:1/-1}.glass{backdrop-filter:none}.modal{align-items:flex-start;padding:8px}.modal-card{width:100%;max-height:calc(100vh - 16px)}.modal-actions{position:sticky;bottom:0;background:var(--panel);padding-top:8px;border-top:1px solid var(--line)}}
@media (prefers-reduced-motion: reduce){*{transition:none !important;animation:none !important}}