:root{color-scheme:dark;--bg:#07101f;--card:#101a2e;--line:#22304a;--text:#f5f7fb;--muted:#8ea0bd;--accent:#5b4bff;--ok:#10b981;--danger:#ef4444}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}
a{color:inherit}.topbar{position:sticky;top:0;z-index:10;display:flex;gap:24px;align-items:center;justify-content:space-between;padding:16px 28px;background:#07101fe8;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.brand{font-weight:800}.topbar nav{display:flex;gap:16px;flex-wrap:wrap}.topbar nav a{text-decoration:none;color:var(--muted);font-size:14px}.topbar nav a.active,.topbar nav a:hover{color:white}
.container{max-width:1180px;margin:auto;padding:28px}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px}.metric{font-size:34px;font-weight:800}.muted{color:var(--muted)}h1,h2,h3{margin-top:0}
label{display:block;font-size:13px;color:var(--muted);margin:12px 0 6px}input,select,textarea{width:100%;background:#07101f;border:1px solid #33415f;color:white;border-radius:10px;padding:11px 12px}
button,.btn{border:0;border-radius:10px;padding:10px 14px;background:var(--accent);color:white;font-weight:700;text-decoration:none;display:inline-block;cursor:pointer}.btn.secondary,button.secondary{background:#1a2740}.btn.danger,button.danger{background:var(--danger)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.space{display:flex;justify-content:space-between;gap:12px;align-items:center}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}.table th{color:var(--muted);font-weight:600}
.badge{display:inline-block;padding:4px 9px;border-radius:99px;font-size:12px;background:#23304a}.badge.ok{background:#073d31;color:#54e0b5}.badge.bad{background:#4b1820;color:#ff939e}.badge.warn{background:#493810;color:#ffd36b}
.alert{padding:12px 14px;border-radius:10px;background:#16314b;margin-bottom:16px}.alert.error{background:#4b1820}.login-wrap,.portal-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(440px,100%)}.portal{width:min(760px,100%)}.service-card{display:flex;justify-content:space-between;gap:18px;align-items:center}
.code-box{font-size:38px;letter-spacing:8px;font-weight:900;text-align:center;background:#050b16;border:1px solid var(--line);border-radius:14px;padding:18px;margin:14px 0}.hidden{display:none}
code{word-break:break-all}.small{font-size:12px}
@media(max-width:800px){.grid.two,.grid.three{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}.container{padding:18px}}


/* Admin AJAX */
.ajax-toast-host{position:fixed;right:22px;bottom:22px;z-index:9999;display:grid;gap:10px;width:min(390px,calc(100vw - 36px))}
.ajax-toast{opacity:0;transform:translateY(8px);transition:.2s ease;padding:13px 15px;border-radius:12px;border:1px solid var(--line);background:#142139;box-shadow:0 14px 40px #0008;font-weight:700}
.ajax-toast.show{opacity:1;transform:none}.ajax-toast.ok{border-color:#17684f}.ajax-toast.error{background:#401721;border-color:#813040}
form.ajax-busy{opacity:.78}button:disabled{opacity:.62;cursor:wait}
.table tr.ajax-flash{animation:ajaxFlash 1.2s ease}@keyframes ajaxFlash{0%{background:#24406a66}100%{background:transparent}}
