:root{
  --bg-base:#070b14;--bg-card:#0d1424;--bg-card2:#111827;--bg-input:#0a1020;
  --primary:#6366f1;--primary-glow:rgba(99,102,241,.25);--accent:#06b6d4;
  --success:#10b981;--warning:#f59e0b;--danger:#ef4444;--purple:#8b5cf6;
  --text:#e2e8f0;--text-muted:#64748b;--text-dim:#94a3b8;
  --border:#1e2d3d;--border2:#1a2535;
  --radius:14px;--radius-lg:22px;
  --font-mono:'JetBrains Mono',monospace;
  /* ── Hyper UI bubble tokens (dashboard/menu area only — login tetap pakai style lama) ── */
  --bubble-radius:999px;
  --bubble-primary-a:#818cf8;--bubble-primary-b:#4f46e5;
  --bubble-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 -6px 12px rgba(0,0,0,.25) inset,0 10px 22px rgba(99,102,241,.35);
  --bubble-shadow-press:0 1px 0 rgba(255,255,255,.2) inset,0 -3px 6px rgba(0,0,0,.3) inset,0 3px 8px rgba(99,102,241,.25);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:var(--bg-base);color:var(--text);font-family:'Inter',sans-serif;font-size:14px;line-height:1.6}
a{color:var(--primary);text-decoration:none}
button{cursor:pointer;font-family:inherit}
input,select{font-family:inherit}

/* ── LAYOUT ── */
.app{display:flex;min-height:100vh}
.sidebar{
  width:240px;min-height:100vh;background:var(--bg-card);border-right:1px solid var(--border);
  display:flex;flex-direction:column;padding:24px 0;position:fixed;left:0;top:0;bottom:0;z-index:100
}
.main{margin-left:240px;flex:1;min-height:100vh}
.page{display:none;padding:32px}
.page.active{display:block}

/* ── SIDEBAR ── */
.sidebar-logo{padding:0 20px 28px;border-bottom:1px solid var(--border)}
.logo-mark{font-size:22px;font-weight:900;letter-spacing:-0.5px;color:#fff}
.logo-mark span{color:var(--primary)}
.nav{padding:20px 12px;flex:1}
.nav-item{
  display:flex;align-items:center;gap:10px;padding:9px 14px 9px 9px;border-radius:var(--bubble-radius);
  color:var(--text-muted);font-weight:600;font-size:13px;margin-bottom:5px;
  transition:transform .15s ease,background .18s,color .18s,box-shadow .18s,border-color .18s;
  cursor:pointer;border:1px solid rgba(255,255,255,.05);
  background:rgba(255,255,255,.03);width:100%;text-align:left;
  box-shadow:0 1px 3px rgba(0,0,0,.2)
}
.nav-item:hover{
  background:rgba(99,102,241,.1);color:var(--text);transform:translateX(3px);
  border-color:rgba(99,102,241,.22);box-shadow:0 2px 10px rgba(99,102,241,.15)
}
.nav-item.active{
  background:linear-gradient(180deg,var(--bubble-primary-a),var(--bubble-primary-b));
  color:#fff;box-shadow:var(--bubble-shadow);border-color:transparent
}
.nav-item:active{transform:scale(.97)}
.nav-item svg{
  width:17px;height:17px;flex-shrink:0;padding:7px;box-sizing:content-box;
  border-radius:50%;background:rgba(255,255,255,.07);
  transition:background .18s,color .18s;
  box-shadow:0 1px 4px rgba(0,0,0,.25)
}
.nav-item.active svg{background:rgba(255,255,255,.25);box-shadow:none}
/* Per-item icon accent — sidebar */
#nav-dashboard svg{background:rgba(99,102,241,.22);color:#818cf8}
#nav-order svg{background:rgba(16,185,129,.2);color:#34d399}
#nav-history svg{background:rgba(6,182,212,.18);color:#22d3ee}
#nav-wallet svg{background:rgba(245,158,11,.18);color:#fbbf24}
#nav-docs svg{background:rgba(139,92,246,.2);color:#c4b5fd}
#nav-support svg{background:rgba(249,115,22,.18);color:#fb923c}
#nav-admin svg{background:rgba(239,68,68,.18);color:#f87171}
.nav-item.active svg,
#nav-dashboard.active svg,
#nav-order.active svg,
#nav-history.active svg,
#nav-wallet.active svg,
#nav-docs.active svg,
#nav-support.active svg,
#nav-admin.active svg{background:rgba(255,255,255,.25);color:#fff;box-shadow:none}
.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border)}
.sidebar-footer-top{border-top:none;border-bottom:1px solid var(--border);padding-top:16px}
.balance-chip{
  background:linear-gradient(135deg,rgba(99,102,241,.18),rgba(139,92,246,.12));
  border:1px solid rgba(99,102,241,.3);border-radius:var(--radius-lg);padding:14px 16px;
  margin-bottom:10px;box-shadow:0 1px 0 rgba(255,255,255,.05) inset
}
.balance-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.balance-value{font-size:18px;font-weight:800;color:#fff;font-family:var(--font-mono)}
.btn-profile{
  width:100%;display:flex;align-items:center;gap:9px;padding:10px 14px;
  background:rgba(99,102,241,.08);border:1px solid rgba(99,102,241,.2);
  border-radius:var(--bubble-radius);color:var(--text-dim);font-size:12px;font-weight:700;
  cursor:pointer;margin-top:10px;transition:transform .12s ease,background .15s,color .15s
}
.btn-profile:hover{background:rgba(99,102,241,.18);color:var(--primary);border-color:rgba(99,102,241,.4)}
.btn-profile:active{transform:scale(.97)}
.btn-profile svg{width:15px;height:15px;flex-shrink:0}

/* ── PROFILE MODAL ── */
#profile-modal{
  position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:8000;
  display:none;align-items:center;justify-content:center;padding:20px
}
#profile-modal.open{display:flex}
.profile-box{
  width:100%;max-width:600px;background:var(--bg-card);border:1px solid var(--border);
  border-radius:20px;padding:32px;max-height:90vh;overflow-y:auto;
  box-shadow:0 24px 64px rgba(0,0,0,.6)
}
.profile-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.profile-avatar{
  width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--purple));
  display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:#fff;flex-shrink:0
}
.profile-name{font-size:18px;font-weight:700;color:#fff}
.profile-email{font-size:12px;color:var(--text-muted);margin-top:2px}
.profile-close{margin-left:auto;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:20px;line-height:1;padding:4px}
.profile-close:hover{color:var(--text)}
.profile-key-box{
  background:var(--bg-input);border:1px solid var(--border);border-radius:10px;
  padding:14px 16px;display:flex;align-items:center;gap:10px;margin-bottom:20px
}
.profile-key-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.profile-key-val{font-family:var(--font-mono);font-size:12px;color:var(--accent);word-break:break-all;flex:1}
.profile-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}
.profile-stat{background:var(--bg-card2);border:1px solid var(--border2);border-radius:12px;padding:14px 12px;text-align:center}
.profile-stat-val{font-size:22px;font-weight:900;font-family:var(--font-mono);letter-spacing:-.5px}
.profile-stat-val.success{color:var(--success)}
.profile-stat-val.danger{color:var(--danger)}
.profile-stat-val.accent{color:var(--accent)}
.profile-stat-val.blue{color:var(--primary)}
.profile-stat-label{font-size:10px;font-weight:600;color:var(--text-muted);margin-top:6px;text-transform:uppercase;letter-spacing:.5px}
.chart-wrap{background:var(--bg-card2);border:1px solid var(--border2);border-radius:12px;padding:20px}
.chart-title{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px;font-weight:600}
canvas#profile-chart{width:100%!important;height:180px!important;display:block}

/* ── LOCK NOTICE BANNER ── */
#lock-notice{
  display:none;position:fixed;top:76px;left:50%;transform:translateX(-50%);
  z-index:7500;width:92%;max-width:440px;
  background:linear-gradient(135deg,rgba(99,102,241,.18),rgba(6,182,212,.1));
  border:1px solid rgba(99,102,241,.4);border-radius:16px;
  padding:18px 20px 14px;box-shadow:0 12px 40px rgba(0,0,0,.55);
  backdrop-filter:blur(10px);animation:fadeSlideDown .3s ease;
}
@keyframes fadeSlideDown{from{opacity:0;transform:translateX(-50%) translateY(-12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
#lock-notice.open{display:block}
.lock-notice-title{font-size:11px;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px}
.lock-notice-msg{font-size:13px;color:var(--text);line-height:1.55;margin-bottom:10px}
.lock-notice-code{
  font-size:36px;font-weight:900;letter-spacing:12px;padding-left:8px;
  color:#fff;font-family:var(--font-mono);text-align:center;
  margin:8px 0 14px;text-shadow:0 0 24px rgba(99,102,241,.5);
}
.lock-notice-btns{display:flex;gap:8px;justify-content:flex-end}

/* ── LOCK SECTION (profile modal) ── */
.lock-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}
.lock-section-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;font-weight:600}
.lock-digits-wrap{
  background:var(--bg-input);border:1px solid var(--border);border-radius:12px;
  padding:22px 16px 14px;text-align:center;margin-bottom:12px;
}
.lock-digits{
  display:block;font-size:54px;font-weight:900;letter-spacing:14px;
  color:#fff;font-family:var(--font-mono);margin-bottom:14px;padding-left:12px;
  text-shadow:0 0 24px rgba(99,102,241,.35);
}
.lock-regen{
  display:inline-flex;align-items:center;gap:6px;
  background:none;border:none;cursor:pointer;
  color:var(--success);font-size:13px;font-weight:600;font-family:inherit;
  padding:5px 10px;border-radius:6px;transition:all .15s;
}
.lock-regen:hover{background:rgba(16,185,129,.1)}
.lock-regen svg{width:14px;height:14px}
.lock-input-row{display:flex;gap:8px}
.lock-input-row input{flex:1;min-width:0}

/* ── TOPBAR ── */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 32px;border-bottom:1px solid var(--border);
  background:rgba(7,11,20,.8);backdrop-filter:blur(10px);
  position:sticky;top:0;z-index:50
}
.page-title{font-size:20px;font-weight:700;letter-spacing:-.3px}
.topbar-actions{display:flex;gap:10px}

/* ── CARDS ── */
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}
.card-sm{padding:16px 20px}
.card-title{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.7px;margin-bottom:16px;font-weight:600}

/* ── STAT CARDS ── */
.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:24px}
.stat-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;
  position:relative;overflow:hidden;
}
.stat-card::before{
  content:'';position:absolute;top:0;right:0;width:80px;height:80px;
  border-radius:50%;filter:blur(30px);opacity:.3
}
.stat-card.blue::before{background:var(--primary)}
.stat-card.teal::before{background:var(--accent)}
.stat-card.green::before{background:var(--success)}
.stat-card.purple::before{background:var(--purple)}
.stat-icon{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:14px;box-shadow:0 1px 0 rgba(255,255,255,.08) inset}
.stat-icon.blue{background:rgba(99,102,241,.15)}
.stat-icon.teal{background:rgba(6,182,212,.15)}
.stat-icon.green{background:rgba(16,185,129,.15)}
.stat-icon.purple{background:rgba(139,92,246,.15)}
.stat-val{font-size:26px;font-weight:800;color:#fff;font-family:var(--font-mono);line-height:1}
.stat-label{font-size:12px;color:var(--text-muted);margin-top:6px}

/* ── BUTTONS — "gelembung" / iOS bubble style (dashboard area; #login-overlay tetap dengan style aslinya karena override-nya lebih spesifik) ── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:10px 20px;border-radius:var(--bubble-radius);font-weight:700;font-size:13px;border:none;
  transition:transform .12s ease,box-shadow .12s ease,background .15s;letter-spacing:.1px;
  position:relative;-webkit-tap-highlight-color:transparent
}
.btn:active{transform:scale(.96)}
.btn-primary{
  background:linear-gradient(180deg,var(--bubble-primary-a),var(--bubble-primary-b));
  color:#fff;box-shadow:var(--bubble-shadow)
}
.btn-primary:hover{transform:translateY(-1px)}
.btn-primary:active{box-shadow:var(--bubble-shadow-press);transform:scale(.96)}
.btn-outline{
  background:rgba(255,255,255,.03);color:var(--text);border:1px solid var(--border);
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 4px 10px rgba(0,0,0,.25)
}
.btn-outline:hover{border-color:var(--primary);color:var(--primary);background:rgba(99,102,241,.08)}
.btn-danger{
  background:linear-gradient(180deg,#f87171,#dc2626);color:#fff;border:none;
  box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 -5px 10px rgba(0,0,0,.2) inset,0 8px 18px rgba(220,38,38,.35)
}
.btn-danger:hover{transform:translateY(-1px)}
.btn-success{
  background:linear-gradient(180deg,#34d399,#059669);color:#fff;border:none;
  box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 -5px 10px rgba(0,0,0,.2) inset,0 8px 18px rgba(5,150,105,.35)
}
.btn-success:hover{transform:translateY(-1px)}
.btn-sm{padding:7px 14px;font-size:12px}
.btn-lg{padding:13px 30px;font-size:15px}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important;box-shadow:none!important}

/* ── BADGES ── */
.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;box-shadow:0 1px 0 rgba(255,255,255,.08) inset}
.badge::before{content:'';width:6px;height:6px;border-radius:50%}
.badge-pending{background:rgba(245,158,11,.12);color:var(--warning)}
.badge-pending::before{background:var(--warning)}
.badge-received{background:rgba(16,185,129,.12);color:var(--success)}
.badge-received::before{background:var(--success);box-shadow:0 0 6px var(--success)}
.badge-cancelled{background:rgba(239,68,68,.12);color:var(--danger)}
.badge-cancelled::before{background:var(--danger)}
.badge-expired{background:rgba(100,116,139,.12);color:var(--text-muted)}
.badge-expired::before{background:var(--text-muted)}

/* ── FORM ── */
.form-group{margin-bottom:18px}
.form-label{display:block;font-size:12px;font-weight:600;color:var(--text-dim);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}
.form-control{
  width:100%;padding:11px 16px;background:var(--bg-input);border:1px solid var(--border);
  border-radius:var(--bubble-radius);color:var(--text);font-size:13px;font-family:inherit;
  transition:border-color .15s;outline:none
}
.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}
.form-select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}

/* ── TABLE ── */
.table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border)}
table{width:100%;border-collapse:collapse}
thead{background:rgba(99,102,241,.06)}
th{padding:12px 16px;text-align:left;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;white-space:nowrap;border-bottom:1px solid var(--border)}
td{padding:13px 16px;font-size:13px;border-bottom:1px solid rgba(30,45,61,.5);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:rgba(99,102,241,.03)}
.mono{font-family:var(--font-mono);font-size:12px}

/* ── OTP DISPLAY ── */
.otp-display{
  background:linear-gradient(135deg,rgba(99,102,241,.1),rgba(139,92,246,.08));
  border:1px solid rgba(99,102,241,.3);border-radius:16px;padding:32px;text-align:center
}
.otp-code{font-family:var(--font-mono);font-size:48px;font-weight:800;letter-spacing:12px;color:var(--primary);text-shadow:0 0 30px rgba(99,102,241,.5)}
.otp-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}

/* ── COUNTDOWN ── */
.countdown{
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-mono);font-size:28px;font-weight:700;color:var(--warning)
}
.countdown.urgent{color:var(--danger);animation:pulse 1s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}

/* ── PHONE NUMBER CARD ── */
.phone-card{
  background:rgba(6,182,212,.05);border:1px solid rgba(6,182,212,.2);
  border-radius:12px;padding:20px;text-align:center;margin:16px 0
}
.phone-number{font-family:var(--font-mono);font-size:32px;font-weight:700;color:var(--accent);letter-spacing:3px}

/* ── SERVICE CARDS ── */
.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.service-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;
  cursor:pointer;transition:transform .15s,border-color .15s,background .15s
}
.service-card:hover{border-color:var(--primary);background:rgba(99,102,241,.05);transform:translateY(-2px)}
.service-name{font-weight:700;font-size:14px;margin-bottom:6px}
.service-price{font-family:var(--font-mono);font-size:13px;color:var(--primary);font-weight:600}
.service-stock{font-size:11px;padding:2px 8px;border-radius:999px;margin-top:8px;display:inline-block}
.stock-high{background:rgba(16,185,129,.15);color:var(--success)}
.stock-low{background:rgba(245,158,11,.15);color:var(--warning)}
.stock-empty{background:rgba(239,68,68,.15);color:var(--danger)}

/* ── TABS ── */
.tabs{display:flex;gap:5px;padding:5px;background:var(--bg-card);border-radius:var(--bubble-radius);border:1px solid var(--border);width:fit-content;margin-bottom:20px}
.tab{padding:8px 20px;border-radius:var(--bubble-radius);font-size:13px;font-weight:700;color:var(--text-muted);background:none;border:none;transition:transform .12s ease,background .15s;cursor:pointer}
.tab.active{background:linear-gradient(180deg,var(--bubble-primary-a),var(--bubble-primary-b));color:#fff;box-shadow:var(--bubble-shadow)}
.tab:active{transform:scale(.96)}

/* ── ALERTS ── */
.alert{padding:12px 16px;border-radius:8px;font-size:13px;margin-bottom:16px;display:flex;align-items:flex-start;gap:10px}
.alert-error{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.25);color:#fca5a5}
.alert-success{background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.25);color:#6ee7b7}
.alert-info{background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.25);color:#a5b4fc}
.alert-warning{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.25);color:#fcd34d}

/* ── TOAST ── */
#toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:10px}
.toast{
  padding:12px 18px;border-radius:10px;font-size:13px;font-weight:600;max-width:320px;
  animation:slideIn .3s ease;display:flex;align-items:center;gap:10px;
  box-shadow:0 8px 32px rgba(0,0,0,.4);min-width:240px
}
.toast-success{background:#065f46;border:1px solid #059669;color:#6ee7b7}
.toast-error{background:#7f1d1d;border:1px solid #dc2626;color:#fca5a5}
.toast-info{background:#1e1b4b;border:1px solid #4f46e5;color:#a5b4fc}
@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:none;opacity:1}}

/* ── DOCS ── */
.docs-layout{display:grid;grid-template-columns:220px 1fr;gap:32px;align-items:start}
.docs-nav{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px;position:sticky;top:90px}
.docs-nav-item{display:block;padding:8px 14px;border-radius:var(--bubble-radius);font-size:13px;color:var(--text-muted);transition:transform .12s ease,background .15s,color .15s;cursor:pointer;border:none;background:none;width:100%;text-align:left;font-weight:600;margin-bottom:2px}
.docs-nav-item:hover{background:rgba(99,102,241,.1);color:var(--primary)}
.docs-nav-item.active{background:linear-gradient(180deg,var(--bubble-primary-a),var(--bubble-primary-b));color:#fff;box-shadow:var(--bubble-shadow)}
.docs-nav-item:active{transform:scale(.97)}
.docs-section{margin-bottom:40px}
.docs-section-title{font-size:20px;font-weight:800;margin-bottom:8px;color:#fff;padding-bottom:12px;border-bottom:1px solid var(--border)}
.docs-endpoint{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}
.method-badge{display:inline-block;padding:3px 10px;border-radius:6px;font-family:var(--font-mono);font-size:11px;font-weight:700;margin-right:8px}
.method-get{background:rgba(16,185,129,.15);color:var(--success)}
.method-post{background:rgba(99,102,241,.15);color:var(--primary)}
.endpoint-path{font-family:var(--font-mono);font-size:15px;color:#fff;font-weight:600}
.code-block{
  background:#020408;border:1px solid var(--border2);border-radius:8px;
  padding:16px;margin:12px 0;font-family:var(--font-mono);font-size:12px;
  color:#94a3b8;overflow-x:auto;line-height:1.7;position:relative
}
.code-block .cmd{color:#e2e8f0}
.copy-btn{
  position:absolute;top:8px;right:8px;padding:4px 10px;font-size:11px;border-radius:5px;
  background:rgba(99,102,241,.2);border:1px solid rgba(99,102,241,.3);color:var(--primary);
  cursor:pointer;font-family:var(--font-mono);transition:all .15s
}
.copy-btn:hover{background:rgba(99,102,241,.4)}
.param-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:12.5px}
.param-table th{background:rgba(99,102,241,.08);padding:8px 12px;text-align:left;color:var(--text-muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.param-table td{padding:8px 12px;border-top:1px solid rgba(30,45,61,.5);vertical-align:top}
.param-name{font-family:var(--font-mono);color:var(--accent);font-size:12px}

/* ── SPINNER ── */
.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── POLLING STATUS ── */
.polling-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:28px}
.order-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.order-info-item{background:var(--bg-input);border-radius:8px;padding:14px}
.order-info-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.order-info-value{font-family:var(--font-mono);font-size:14px;font-weight:600}

/* ── EMPTY ── */
.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}
.empty-icon{font-size:48px;margin-bottom:16px;opacity:.3}
.empty-title{font-size:16px;font-weight:600;color:var(--text-dim);margin-bottom:8px}
.empty-sub{font-size:13px}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  /* Sembunyikan sidebar asli — digantikan drawer mobile */
  .sidebar{display:none}
  .main{margin-left:0}
  .stats-grid{grid-template-columns:1fr 1fr}
  .docs-layout{grid-template-columns:1fr}
  .docs-nav{display:none}
  /* Beri ruang di topbar untuk tombol hamburger */
  .topbar{padding-left:58px}
}
@media(max-width:600px){
  .page{padding:16px}
  .stats-grid{grid-template-columns:1fr}
  .order-grid{grid-template-columns:1fr}
  .topbar{padding:14px 16px 14px 58px}
}

/* ═══════════════════════════════════════════════
   MOBILE DRAWER MENU
   ─ Hamburger button (≡) di pojok kiri topbar
   ─ Drawer slide dari kiri + backdrop overlay
   ═══════════════════════════════════════════════ */

/* Hamburger button — default tersembunyi, tampil setelah login via JS */
#mob-burger{
  display:none;
  position:fixed;top:0;left:0;
  width:54px;height:62px;
  z-index:6000;
  background:transparent;
  border:none;
  cursor:pointer;
  align-items:center;justify-content:center;
  flex-direction:column;gap:5px;
  padding:0;
}
#mob-burger span{
  display:block;width:22px;height:2px;
  background:var(--text);border-radius:2px;
  transition:all .25s;
}
#mob-burger:hover span{background:var(--primary)}
@media(max-width:900px){
  /* Hamburger hanya tampil di mobile setelah JS set display:flex */
  #mob-burger.mob-visible{display:flex}
}

/* Backdrop overlay */
#mob-backdrop{
  display:none;
  position:fixed;inset:0;
  background:rgba(0,0,0,.55);
  z-index:6001;
  backdrop-filter:blur(2px);
}
#mob-backdrop.mob-open{display:block}

/* Drawer panel */
#mob-drawer{
  position:fixed;top:0;left:0;bottom:0;
  width:260px;max-width:80vw;
  background:var(--bg-card);
  border-right:1px solid var(--border);
  z-index:6002;
  display:flex;flex-direction:column;
  transform:translateX(-100%);
  transition:transform .28s cubic-bezier(.4,0,.2,1);
  box-shadow:8px 0 40px rgba(0,0,0,.5);
}
#mob-drawer.mob-open{transform:translateX(0)}

/* Header drawer: logo + tombol X */
.mob-drawer-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 18px 18px;
  border-bottom:1px solid var(--border);
}
.mob-drawer-logo{font-size:18px;font-weight:900;letter-spacing:-.4px;color:#fff}
.mob-drawer-logo span{color:var(--primary)}
.mob-drawer-close{
  background:none;border:none;cursor:pointer;
  color:var(--text-muted);padding:4px;
  border-radius:6px;transition:all .15s;line-height:1;
}
.mob-drawer-close:hover{background:rgba(255,255,255,.08);color:var(--text)}
.mob-drawer-close svg{width:18px;height:18px;display:block}

/* Nav items dalam drawer */
.mob-drawer-nav{flex:1;padding:12px 8px;overflow-y:auto}
.mob-ditem{
  display:flex;align-items:center;gap:12px;
  width:100%;padding:11px 14px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.05);
  border-radius:var(--bubble-radius);
  color:var(--text-muted);font-size:13px;font-weight:600;
  font-family:inherit;cursor:pointer;text-align:left;
  margin-bottom:6px;
  transition:transform .15s ease,background .18s,color .18s,box-shadow .18s,border-color .18s;
  box-shadow:0 1px 3px rgba(0,0,0,.2)
}
.mob-ditem:hover{
  background:rgba(99,102,241,.1);color:var(--text);
  border-color:rgba(99,102,241,.22);box-shadow:0 2px 10px rgba(99,102,241,.15)
}
.mob-ditem.mob-active{
  background:linear-gradient(180deg,var(--bubble-primary-a),var(--bubble-primary-b));
  color:#fff;box-shadow:var(--bubble-shadow);border-color:transparent
}
.mob-ditem:active{transform:scale(.97)}
.mob-ditem svg{
  width:17px;height:17px;flex-shrink:0;padding:7px;box-sizing:content-box;
  border-radius:50%;background:rgba(255,255,255,.07);
  transition:background .18s,color .18s;
  box-shadow:0 1px 4px rgba(0,0,0,.25)
}
.mob-ditem.mob-active svg{background:rgba(255,255,255,.25);box-shadow:none}
/* Per-item icon accent — mobile drawer */
#mob-d-dashboard svg{background:rgba(99,102,241,.22);color:#818cf8}
#mob-d-order svg{background:rgba(16,185,129,.2);color:#34d399}
#mob-d-history svg{background:rgba(6,182,212,.18);color:#22d3ee}
#mob-d-wallet svg{background:rgba(245,158,11,.18);color:#fbbf24}
#mob-d-docs svg{background:rgba(139,92,246,.2);color:#c4b5fd}
#mob-d-support svg{background:rgba(249,115,22,.18);color:#fb923c}
#mob-d-admin svg{background:rgba(239,68,68,.18);color:#f87171}
.mob-ditem.mob-active svg,
#mob-d-dashboard.mob-active svg,
#mob-d-order.mob-active svg,
#mob-d-history.mob-active svg,
#mob-d-wallet.mob-active svg,
#mob-d-docs.mob-active svg,
#mob-d-support.mob-active svg,
#mob-d-admin.mob-active svg{background:rgba(255,255,255,.25);color:#fff;box-shadow:none}

/* Subtitle logo di drawer */
/* Saldo + profil di dalam drawer */
.mob-drawer-info{
  padding:14px 16px;
  border-bottom:1px solid var(--border);
  background:rgba(255,255,255,.03);
}
.mob-info-balance{
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:10px;
  padding:10px 14px 12px;
  margin-bottom:10px;
}
.mob-info-balance .balance-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.mob-info-balance .balance-value{font-size:20px;font-weight:800;color:#fff;font-family:var(--font-mono)}
.mob-info-profile{
  display:flex;align-items:center;gap:8px;
  width:100%;padding:9px 12px;
  background:rgba(255,255,255,.05);
  border:1px solid var(--border);
  border-radius:8px;
  color:var(--text-muted);font-size:13px;font-weight:500;
  font-family:inherit;cursor:pointer;text-align:left;
  transition:all .14s;
}
.mob-info-profile:hover{background:rgba(99,102,241,.1);color:var(--primary);border-color:rgba(99,102,241,.3)}

/* ── SCROLLBAR ── */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--bg-base)}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}

/* ── UTILS ── */
.divider{height:1px;background:var(--border);margin:20px 0}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.section-title{font-size:16px;font-weight:700}
.flex{display:flex}.items-center{align-items:center}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}
.ml-auto{margin-left:auto}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}
.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}
.text-sm{font-size:12px}.text-muted{color:var(--text-muted)}.text-dim{color:var(--text-dim)}
.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-primary{color:var(--primary)}
.font-bold{font-weight:700}.font-mono{font-family:var(--font-mono)}
.w-full{width:100%}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hidden{display:none}.text-center{text-align:center}.flex-1{flex:1}

/* ── SPLASH SCREEN (intro chat bubble) ── */
#splash-screen{
  position:fixed;inset:0;background:var(--bg-base);z-index:9999;
  display:flex;align-items:center;justify-content:center;padding:20px;
  transition:opacity .5s ease
}
#splash-screen.fade-out{opacity:0;pointer-events:none}
.splash-chat{display:flex;flex-direction:column;align-items:flex-start;max-width:340px;width:100%;gap:10px}
.splash-brand{font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;font-weight:700}
.splash-brand span{color:var(--primary)}
.splash-typing{
  background:var(--bg-card);border:1px solid var(--border);border-radius:18px 18px 18px 4px;
  padding:14px 18px;display:inline-flex;gap:5px;align-items:center;
  box-shadow:0 8px 24px rgba(0,0,0,.4)
}
.splash-typing.hidden{display:none}
.splash-typing span{width:8px;height:8px;border-radius:50%;background:var(--text-muted);animation:splashBounce 1.2s infinite ease-in-out}
.splash-typing span:nth-child(2){animation-delay:.15s}
.splash-typing span:nth-child(3){animation-delay:.3s}
@keyframes splashBounce{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}
.splash-bubble{
  background:linear-gradient(135deg,var(--primary),var(--purple));color:#fff;
  border-radius:18px 18px 18px 4px;padding:14px 18px;font-size:15px;font-weight:600;
  box-shadow:0 8px 24px rgba(99,102,241,.35);min-height:20px;display:none
}
.splash-bubble.show{display:inline-block}
.splash-cursor{display:inline-block;animation:splashBlink 1s step-end infinite;margin-left:1px}
@keyframes splashBlink{50%{opacity:0}}

/* ── MATA KEDIP-KEDIP (login) ── */
.login-eyes{display:flex;justify-content:center;gap:20px;margin-bottom:18px}
.login-eye{
  width:54px;height:54px;background:#fff;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 22px rgba(99,102,241,.75),0 0 50px rgba(99,102,241,.3);
  animation:eyeFloat 3s ease-in-out infinite;overflow:hidden;
  position:relative;flex-shrink:0;transition:box-shadow .3s
}
.login-eye:nth-child(2){animation-delay:.22s}
.login-box.mode-register .login-eye{
  box-shadow:0 0 22px rgba(236,72,153,.8),0 0 50px rgba(168,85,247,.38)
}
.login-pupil{
  width:22px;height:22px;background:#08091a;border-radius:50%;
  position:relative;transition:transform .2s ease;flex-shrink:0
}
.login-pupil::after{
  content:'';width:8px;height:8px;background:#fff;border-radius:50%;
  position:absolute;top:3px;left:5px
}
.login-eye::after{
  content:'';position:absolute;inset:0;background:#fff;border-radius:50%;
  transform:scaleY(0);transform-origin:top center;
  animation:eyeBlink 4s ease-in-out infinite;z-index:2;transition:transform .22s ease
}
.login-eye:nth-child(2)::after{animation-delay:.09s}
@keyframes eyeBlink{0%,85%,100%{transform:scaleY(0)}89%,94%{transform:scaleY(1)}}
@keyframes eyeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* Mata menutup saat ngetik — kelopak turun dari atas */
.login-eyes.eyes-typing .login-eye{animation:none}
.login-eyes.eyes-typing .login-eye::after{
  animation:none !important;
  transform:scaleY(0.65) !important;
  transform-origin:top center !important;
  transition:transform .22s ease !important
}
.login-eyes.eyes-typing .login-pupil{
  transform:translateY(6px);transition:transform .22s ease
}

/* Mata MERAH saat tombol ditekan lama */
.login-eyes.eyes-angry .login-eye{
  background:#ff1818;
  box-shadow:0 0 28px rgba(255,0,0,.95),0 0 60px rgba(255,0,0,.55);
  animation:none;transition:background .12s,box-shadow .12s
}
.login-eyes.eyes-angry .login-eye::after{
  animation:none !important;
  transform:scaleY(0.42) !important;
  transform-origin:top center !important;
  background:#ff1818;
  transition:transform .12s ease !important
}
.login-eyes.eyes-angry .login-pupil{
  background:#1a0000;transform:translateY(-3px);transition:transform .12s ease
}
.login-eyes.eyes-angry .login-pupil::after{background:rgba(255,80,80,.6)}
@keyframes eyeRedPulse{0%,100%{box-shadow:0 0 28px rgba(255,0,0,.95),0 0 60px rgba(255,0,0,.55)}50%{box-shadow:0 0 38px rgba(255,0,0,1),0 0 80px rgba(255,0,0,.7)}}
.login-eyes.eyes-angry .login-eye{animation:eyeRedPulse .5s ease-in-out infinite}

/* ── LOGIN OVERLAY ── */
#login-overlay{
  position:fixed;inset:0;background:#060810;
  z-index:9000;display:flex;align-items:center;justify-content:center
}
/* ── Glow ikut posisi mouse/sentuhan ── */
#login-overlay::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 55% 65% at var(--gx,50%) var(--gy,50%), var(--gc,rgba(0,0,0,0)) 0%, transparent 70%);
  transition:background .12s ease
}

/* ── ZONA WARNA KLIK — kiri, kanan, atas, bawah ── */
.login-side-zone{position:absolute;cursor:pointer;z-index:1;overflow:hidden}

/* Kiri & Kanan */
.login-side-left,.login-side-right{top:0;bottom:0;width:calc(50% - 210px);display:flex;align-items:center}
.login-side-left{left:0;justify-content:flex-end}
.login-side-right{right:0;justify-content:flex-start}

/* Atas & Bawah */
.login-side-top,.login-side-bottom{left:0;right:0;height:calc(50% - 240px)}
.login-side-top{top:0}
.login-side-bottom{bottom:0}

/* Tidak ada label dan garis — sisi invisible, hanya area klik */
.login-side-zone::before,.login-side-zone::after{content:none !important}

/* (burst dan ripple dihapus — glow sekarang ikut posisi mouse via CSS var --gx/--gy/--gc) */

/* Mata lirik */
.login-eyes.eyes-look-left  .login-pupil{transform:translateX(-5px);transition:transform .18s ease}
.login-eyes.eyes-look-right .login-pupil{transform:translateX(5px); transition:transform .18s ease}
.login-eyes.eyes-look-up    .login-pupil{transform:translateY(-5px);transition:transform .18s ease}
.login-eyes.eyes-look-down  .login-pupil{transform:translateY(5px); transition:transform .18s ease}

/* ── LOGIN BOX — default = LOGIN mode (biru) ── */
.login-box{
  width:100%;max-width:400px;
  background:#0b0d1f;
  border:1px solid rgba(99,102,241,.35);
  border-radius:22px;padding:36px 34px;
  box-shadow:
    0 28px 64px rgba(0,0,0,.85),
    -18px 0 55px rgba(99,102,241,.18),
    18px 0 55px rgba(99,102,241,.18),
    0 0 0 1px rgba(99,102,241,.1);
  position:relative;transition:box-shadow .35s,border-color .35s
}
.login-box::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  border-radius:22px 22px 0 0;
  background:linear-gradient(90deg,transparent,rgba(99,102,241,1),rgba(138,141,255,.6),transparent);
  pointer-events:none
}
/* garis sisi kiri & kanan berwarna */
.login-box::after{
  content:"";position:absolute;inset:0;border-radius:22px;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(99,102,241,.18) 0%,transparent 18%,transparent 82%,rgba(99,102,241,.18) 100%);
}

/* ── REGISTER MODE — pink/magenta ── */
.login-box.mode-register{
  border-color:rgba(236,72,153,.4);
  box-shadow:
    0 28px 64px rgba(0,0,0,.85),
    -18px 0 55px rgba(236,72,153,.2),
    18px 0 55px rgba(168,85,247,.2),
    0 0 0 1px rgba(236,72,153,.1)
}
.login-box.mode-register::before{
  background:linear-gradient(90deg,transparent,rgba(236,72,153,1),rgba(168,85,247,.7),transparent)
}
.login-box.mode-register::after{
  background:
    linear-gradient(90deg,rgba(236,72,153,.2) 0%,transparent 18%,transparent 82%,rgba(168,85,247,.2) 100%)
}

/* ── LOGO ── */
.login-logo{text-align:center;margin-bottom:20px}
.login-logo .logo-mark{
  font-size:27px;font-weight:900;letter-spacing:3px;color:#fff;text-transform:uppercase
}
.login-logo .logo-mark span{color:#6366f1}
.login-box.mode-register .login-logo .logo-mark span{color:#ec4899}

/* ── TITLE ── */
.login-title{
  font-size:13px;font-weight:800;letter-spacing:3.5px;text-transform:uppercase;
  color:#c7d0e8;margin-bottom:20px;text-align:center
}
.login-box.mode-register .login-title{color:#ec4899}

/* ── SWITCH LINK ── */
.login-switch{text-align:center;margin-top:16px;font-size:12px;color:#4b5880}
.login-switch a{color:#6366f1;font-weight:700;cursor:pointer;transition:color .15s}
.login-switch a:hover{color:#818cf8}
.login-box.mode-register .login-switch a{color:#ec4899}
.login-box.mode-register .login-switch a:hover{color:#f472b6}

/* ── FORM INSIDE LOGIN BOX ── */
.login-box .form-label{
  font-size:9px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;
  color:#4b5880;margin-bottom:7px;display:block
}
.login-box .form-control{
  background:#06070f;border:1px solid rgba(99,102,241,.22);color:#d8dff0;
  border-radius:10px;width:100%;padding:10px 14px;font-size:14px
}
.login-box .form-control:focus{
  border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.2);outline:none
}
.login-box .form-control::placeholder{color:#2a3150}
.login-box .btn-primary{
  background:#4f52d8;
  border:none;font-size:12px;font-weight:800;letter-spacing:2.5px;
  text-transform:uppercase;border-radius:10px;width:100%;padding:12px;
  box-shadow:0 4px 18px rgba(79,82,216,.4);transition:background .2s,box-shadow .2s,transform .15s
}
.login-box .btn-primary:hover{
  background:#5c5ff0;transform:translateY(-2px);
  box-shadow:0 8px 26px rgba(79,82,216,.55)
}

/* Register pink overrides */
.login-box.mode-register .form-label{color:rgba(236,72,153,.7)}
.login-box.mode-register .form-control{border-color:rgba(236,72,153,.22)}
.login-box.mode-register .form-control:focus{
  border-color:#ec4899;box-shadow:0 0 0 3px rgba(236,72,153,.2)
}
.login-box.mode-register .btn-primary{
  background:linear-gradient(135deg,#e8007a 0%,#9333ea 100%);
  box-shadow:0 4px 20px rgba(232,0,122,.4)
}
.login-box.mode-register .btn-primary:hover{
  background:linear-gradient(135deg,#d10070 0%,#7c3aed 100%);
  box-shadow:0 8px 28px rgba(232,0,122,.55)
}

/* ── BUTTON SHAKE ANIMASI ── */
@keyframes authBtnShake{
  0%  {transform:translate(0,0)}
  16% {transform:translate(-4px,0)}
  33% {transform:translate(0,-4px)}
  50% {transform:translate(4px,0)}
  66% {transform:translate(0,4px)}
  83% {transform:translate(-2px,0)}
  100%{transform:translate(0,0)}
}
.auth-shake{animation:authBtnShake .38s ease !important;transform:translate(0,0) !important}

/* ── ADMIN KEY TABLE ── */
.key-row{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--border2)}
.key-row:last-child{border-bottom:none}
.key-name{font-weight:600;font-size:13px;flex:0 0 110px}
.key-val{font-family:var(--font-mono);font-size:11px;color:var(--accent);flex:1;word-break:break-all}
.key-status{font-size:11px;padding:2px 8px;border-radius:999px;font-weight:600;white-space:nowrap}
.key-active{background:rgba(16,185,129,.12);color:var(--success)}
.key-inactive{background:rgba(239,68,68,.12);color:var(--danger)}

/* ── WALLET PAGE ── */
.wallet-balance-card{background:linear-gradient(135deg,rgba(99,102,241,.15),rgba(6,182,212,.1));border:1px solid rgba(99,102,241,.3);border-radius:20px;padding:28px 32px;text-align:center;margin-bottom:24px}
.wallet-balance-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px}
.wallet-balance-amount{font-size:36px;font-weight:900;font-family:var(--font-mono);color:#fff;letter-spacing:-1px}
.wallet-amount-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}
.amount-preset{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--bubble-radius);padding:11px;font-size:13px;font-weight:700;color:var(--text-dim);cursor:pointer;transition:transform .12s ease,background .15s,color .15s;font-family:inherit}
.amount-preset:hover{border-color:var(--primary);color:var(--primary);background:rgba(99,102,241,.08)}
.amount-preset.selected{border-color:var(--primary);color:#fff;background:linear-gradient(180deg,var(--bubble-primary-a),var(--bubble-primary-b));box-shadow:var(--bubble-shadow)}
.amount-preset:active{transform:scale(.96)}
.qris-card{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:28px;text-align:center;display:none}
.qris-card.show{display:block}
.qris-img-wrap{background:#fff;border-radius:16px;padding:16px;display:inline-block;margin:16px 0}
.qris-img-wrap img{width:220px;height:220px;display:block}
.qris-amount-label{font-size:13px;color:var(--text-muted);margin-bottom:4px}
.qris-amount-val{font-size:24px;font-weight:800;font-family:var(--font-mono);color:var(--primary);margin-bottom:4px}
.qris-expire{font-size:11px;color:var(--text-muted)}
.qris-status-paid{color:var(--success);font-size:18px;font-weight:700;margin:12px 0}
.qris-actions{display:flex;gap:10px;justify-content:center;margin-top:20px}
.topup-history-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border2)}
.topup-history-row:last-child{border-bottom:none}
.th-amount{font-family:var(--font-mono);font-weight:700;font-size:14px;flex:1}
.th-date{font-size:11px;color:var(--text-muted)}

/* ── SALDO WARNING ── */
.saldo-warning{
  background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.25);
  border-radius:10px;padding:12px 16px;margin-bottom:16px;
  font-size:13px;color:#fca5a5;display:none;align-items:center;gap:10px
}
.saldo-warning.show{display:flex}

/* ── NEW ORDER PAGE ── */
.new-order-wrap{padding:20px 24px;max-width:680px}
.new-order-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:14px}
.order-section{margin-bottom:20px}
.order-section:last-child{margin-bottom:0}
.order-section-title{font-size:11px;font-weight:800;letter-spacing:1.2px;color:var(--text-muted);text-transform:uppercase;margin-bottom:10px}
.order-search-wrap{position:relative;margin-bottom:12px}
.order-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}
.order-search-input{width:100%;background:var(--bg-card2);border:1px solid var(--border);border-radius:10px;padding:10px 12px 10px 36px;color:var(--text);font-size:13px;font-family:inherit;outline:none;box-sizing:border-box}
.order-search-input:focus{border-color:var(--primary)}

/* ── SERVER TABS ── */
.ord-server-tabs{display:flex;gap:8px;margin-bottom:14px}
.ord-server-tab{padding:9px 22px;border-radius:var(--bubble-radius);border:1.5px solid var(--border);background:var(--bg-card2);color:var(--text-muted);font-weight:700;font-size:13px;cursor:pointer;transition:transform .12s ease,border-color .15s,background .15s,color .15s;font-family:inherit}
.ord-server-tab:hover{border-color:var(--primary);color:var(--primary)}
.ord-server-tab.active{background:linear-gradient(180deg,var(--bubble-primary-a),var(--bubble-primary-b));border-color:var(--primary);color:#fff;box-shadow:var(--bubble-shadow)}
.ord-server-tab:active{transform:scale(.96)}

/* ── SERVICE SCROLL WRAP ── */
.svc-scroll-wrap{max-height:300px;overflow-y:auto;overflow-x:hidden;border-radius:10px;padding-right:2px}
.svc-scroll-wrap::-webkit-scrollbar{width:3px}
.svc-scroll-wrap::-webkit-scrollbar-track{background:transparent}
.svc-scroll-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}

/* ── COUNTRY SCROLL WRAP ── */
.cty-scroll-wrap{max-height:280px;overflow-y:auto;overflow-x:hidden;border-radius:10px;padding-right:2px}
.cty-scroll-wrap::-webkit-scrollbar{width:3px}
.cty-scroll-wrap::-webkit-scrollbar-track{background:transparent}
.cty-scroll-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}

/* ── SERVICE GRID — satu wadah menyatu, ukuran tombol menyesuaikan nama
   (packed/wrap), bukan grid kolom kaku — supaya tampilannya "acak" seperti
   referensi, dan tidak ada garis pemisah antara layanan preset & API. ── */
.svc-btn-grid{display:flex;flex-wrap:wrap;gap:8px}
.svc-btn{background:var(--bg-card2);border:1.5px solid var(--border);border-radius:var(--bubble-radius);padding:9px 14px 9px 10px;cursor:pointer;transition:transform .12s ease,border-color .15s,background .15s;display:inline-flex;align-items:center;gap:8px;font-family:inherit;color:var(--text);text-align:left;width:auto;flex:0 0 auto;box-sizing:border-box}
.svc-btn:hover{border-color:var(--primary);background:rgba(99,102,241,.07)}
.svc-btn.selected{border-color:var(--primary);background:linear-gradient(180deg,var(--bubble-primary-a),var(--bubble-primary-b));color:#fff;box-shadow:var(--bubble-shadow)}
.svc-btn:active{transform:scale(.97)}
.svc-icon-wrap{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px;font-weight:800;color:#fff}
.svc-icon-wrap svg{width:16px;height:16px}
.svc-name{font-size:13px;font-weight:600;line-height:1.3;white-space:nowrap}

/* ── COUNTRY GRID — sama, packed/wrap dengan bendera asli ── */
.cty-btn-grid{display:flex;flex-wrap:wrap;gap:8px}
.cty-btn{background:var(--bg-card2);border:1.5px solid var(--border);border-radius:var(--bubble-radius);padding:8px 13px 8px 10px;cursor:pointer;transition:transform .12s ease,border-color .15s,background .15s;display:inline-flex;align-items:center;gap:7px;font-family:inherit;color:var(--text);width:auto;flex:0 0 auto}
.cty-btn:hover{border-color:var(--primary);background:rgba(99,102,241,.07)}
.cty-btn.selected{border-color:var(--primary);background:linear-gradient(180deg,var(--bubble-primary-a),var(--bubble-primary-b));color:#fff;box-shadow:var(--bubble-shadow)}
.cty-btn:active{transform:scale(.97)}
.cty-flag{font-size:17px;flex-shrink:0;line-height:1;display:flex;align-items:center;justify-content:center}
.cty-flag-badge{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;flex-shrink:0;letter-spacing:0}
.cty-name{font-size:13px;font-weight:600;white-space:nowrap}

/* ── OPERATOR GRID (S4 only, 2 columns) ── */
.opr-btn-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.opr-btn{background:var(--bg-card2);border:1.5px solid var(--border);border-radius:var(--bubble-radius);padding:10px 14px;cursor:pointer;transition:transform .12s ease,border-color .15s,background .15s;display:flex;align-items:center;gap:8px;font-family:inherit;color:var(--text);text-align:left;width:100%;box-sizing:border-box}
.opr-btn:hover{border-color:#ec4899;background:rgba(236,72,153,.07)}
.opr-btn.selected{border-color:#ec4899;background:linear-gradient(180deg,#f472b6,#db2777);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 -6px 12px rgba(0,0,0,.25) inset,0 10px 22px rgba(219,39,119,.35)}
.opr-btn:active{transform:scale(.97)}
.opr-icon{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;font-weight:800;background:rgba(236,72,153,.15);color:#ec4899}
.opr-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── PRICE GRID (2 columns) ── */
.price-btn-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px}
.price-btn{background:var(--bg-card2);border:1.5px solid var(--border);border-radius:var(--bubble-radius);padding:13px 18px;cursor:pointer;transition:transform .12s ease,border-color .15s,background .15s;font-family:inherit;color:var(--text);text-align:left}
.price-btn:hover{border-color:var(--primary);background:rgba(99,102,241,.07)}
.price-btn.selected{border-color:var(--primary);background:linear-gradient(180deg,var(--bubble-primary-a),var(--bubble-primary-b));box-shadow:var(--bubble-shadow)}
.price-btn:active{transform:scale(.97)}
.price-btn-name{font-size:12px;font-weight:700;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.price-btn-row{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}
.price-btn-amount{font-family:var(--font-mono);font-size:14px;font-weight:800;color:var(--primary)}
.price-btn-avail{font-size:11px;color:var(--text-muted)}
.price-btn-provider{font-size:11px;color:var(--text-muted);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.price-server-badge{font-size:10px;padding:2px 7px;border-radius:999px;border:1px solid;font-weight:700}
.price-server-s1{background:rgba(16,185,129,.12);color:#10b981;border-color:rgba(16,185,129,.3)}
.price-server-s2{background:rgba(99,102,241,.12);color:var(--primary);border-color:rgba(99,102,241,.3)}
.price-server-s5{background:rgba(245,158,11,.12);color:var(--warning);border-color:rgba(245,158,11,.3)}
.price-server-s4{background:rgba(236,72,153,.12);color:#ec4899;border-color:rgba(236,72,153,.3)}
.price-server-srumah{background:rgba(14,165,233,.12);color:#0ea5e9;border-color:rgba(14,165,233,.3)}
.price-server-s2{background:rgba(34,197,94,.12);color:#22c55e;border-color:rgba(34,197,94,.3)}
.price-server-s5{background:rgba(168,85,247,.12);color:#a855f7;border-color:rgba(168,85,247,.3)}
.price-server-s2{background:rgba(16,185,129,.12);color:#10b981;border-color:rgba(16,185,129,.3)}
.price-server-s5{background:rgba(245,158,11,.12);color:#f59e0b;border-color:rgba(245,158,11,.3)}

/* ── ACTIVE ORDERS SECTION ── */
.active-orders-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.active-orders-title{font-size:18px;font-weight:800;color:var(--text)}
.active-orders-badge{background:var(--primary);color:#fff;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px}
.ao-card{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;margin-bottom:10px}
.ao-card-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.ao-order-id{font-family:var(--font-mono);font-size:14px;font-weight:800;color:#00e5c0}
.ao-status-badge{padding:3px 8px;border-radius:5px;font-size:11px;font-weight:800;letter-spacing:.3px}
.ao-status-active{background:rgba(0,229,192,.15);color:#00e5c0;border:1px solid rgba(0,229,192,.3)}
.ao-status-received{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ao-status-cancelled{background:rgba(239,68,68,.12);color:#f87171;border:1px solid rgba(239,68,68,.25)}
.ao-status-expired{background:rgba(156,163,175,.12);color:var(--text-muted);border:1px solid var(--border)}
.ao-countdown{margin-left:auto;font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--text-muted)}
.ao-countdown.urgent{color:#f87171}
.ao-field{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ao-field-label{font-size:10px;font-weight:700;letter-spacing:.8px;color:var(--text-muted);text-transform:uppercase;min-width:48px}
.ao-field-value{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text);flex:1}
.ao-otp-value{font-family:var(--font-mono);font-size:16px;font-weight:800;color:#00e5c0;letter-spacing:2px}
.ao-otp-waiting{font-size:13px;color:var(--text-muted);font-style:italic}
.ao-copy-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:2px 4px;border-radius:4px;transition:color .15s}
.ao-copy-btn:hover{color:var(--primary)}
.ao-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.ao-action-btn{flex:1;min-width:60px;padding:8px 12px;border-radius:var(--bubble-radius);border:1.5px solid var(--border);background:none;color:var(--text-muted);font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:4px;transition:transform .12s ease,border-color .15s,color .15s}
.ao-action-btn:hover{border-color:var(--text-muted);color:var(--text)}
.ao-action-btn:active{transform:scale(.95)}
.ao-action-btn.done:hover{border-color:var(--success);color:var(--success)}
.ao-action-btn.cancel:hover{border-color:#f87171;color:#f87171}
.ao-action-btn.copy-otp-full{background:linear-gradient(180deg,var(--bubble-primary-a),var(--bubble-primary-b));border-color:var(--primary);color:#fff;flex:2;box-shadow:var(--bubble-shadow)}
.ao-action-btn.copy-otp-full:hover{opacity:.9}

#nav-katalog,#nav-katalog.active{display:none!important;visibility:hidden!important;width:0!important;height:0!important;overflow:hidden!important;position:absolute!important;pointer-events:none!important}

/* ── SUPPORT CHAT PAGE ── */
.support-chat-wrap{
  display:flex;flex-direction:column;height:calc(100vh - 0px);
  max-width:520px;margin:0 auto;background:#111B21;
  border-radius:16px;overflow:hidden;
  box-shadow:0 8px 40px rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.06)
}
.support-chat-header{
  display:flex;align-items:center;gap:12px;
  padding:10px 16px;background:#202C33;
  border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0
}
.support-chat-back{
  background:none;border:none;color:#aebac1;cursor:pointer;
  display:flex;align-items:center;padding:4px;margin-right:2px;border-radius:50%
}
.support-chat-back:hover{color:#fff;background:rgba(255,255,255,.08)}
.support-chat-avatar{
  width:40px;height:40px;border-radius:50%;
  background:linear-gradient(135deg,#6366f1,#8b5cf6);
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:16px;color:#fff;flex-shrink:0
}
.support-chat-info{flex:1}
.support-chat-name{font-size:15px;font-weight:700;color:#e9edef;line-height:1.2}
.support-chat-status{font-size:12px;color:#8696a0}
.support-chat-actions{display:flex;gap:4px}
.support-chat-actions button{
  background:none;border:none;color:#aebac1;cursor:pointer;
  padding:7px;border-radius:50%;transition:color .15s,background .15s
}
.support-chat-actions button:hover{color:#fff;background:rgba(255,255,255,.08)}
.support-chat-body{
  flex:1;overflow-y:auto;padding:16px 12px;
  background:#111B21;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cpath d='M30 5 Q35 10 30 15 Q25 10 30 5Z' fill='rgba(255,255,255,.015)'/%3E%3C/svg%3E");
  display:flex;flex-direction:column;gap:3px
}
.support-chat-body::-webkit-scrollbar{width:4px}
.support-chat-body::-webkit-scrollbar-track{background:transparent}
.support-chat-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:4px}
.chat-date-badge{
  text-align:center;margin:8px 0 12px;
}
.chat-date-badge span{
  background:#182229;color:#8696a0;font-size:11.5px;
  padding:4px 12px;border-radius:8px;
  box-shadow:0 1px 2px rgba(0,0,0,.4)
}
.chat-msg{display:flex;margin-bottom:2px}
.chat-msg.recv{justify-content:flex-start}
.chat-msg.sent{justify-content:flex-end}
.chat-bubble{
  max-width:75%;padding:7px 10px 8px 10px;
  border-radius:8px;font-size:14px;line-height:1.5;
  position:relative;word-break:break-word
}
.chat-msg.recv .chat-bubble{
  background:#202C33;color:#e9edef;
  border-top-left-radius:0
}
.chat-msg.sent .chat-bubble{
  background:#005C4B;color:#e9edef;
  border-top-right-radius:0
}
.chat-bubble-tail-recv{
  width:0;height:0;flex-shrink:0;margin-top:0;
  border-top:8px solid #202C33;
  border-left:8px solid transparent;
  align-self:flex-start
}
.chat-bubble-tail-sent{
  width:0;height:0;flex-shrink:0;margin-top:0;
  border-top:8px solid #005C4B;
  border-right:8px solid transparent;
  align-self:flex-start
}
.chat-time-row{
  display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:2px
}
.chat-time{font-size:11px;color:rgba(233,237,239,.55)}
.chat-tick{color:#53bdeb}
.chat-link{
  color:#53bdeb;text-decoration:none;word-break:break-all;display:inline
}
.chat-link:hover{text-decoration:underline}
.support-info-cards{
  display:flex;flex-direction:column;gap:10px;margin-top:20px
}
.support-info-card{
  background:#202C33;border-radius:12px;padding:14px 16px;
  display:flex;align-items:center;gap:14px;
  border:1px solid rgba(255,255,255,.06);
  text-decoration:none;color:inherit;
  transition:background .15s,transform .12s
}
.support-info-card:hover{background:#2a3942;transform:translateY(-1px)}
.support-info-card-icon{
  width:44px;height:44px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex-shrink:0
}
.support-info-card-icon.wa{background:rgba(37,211,102,.15)}
.support-info-card-icon.tg{background:rgba(41,182,246,.15)}
.support-info-card-icon.web{background:rgba(99,102,241,.15)}
.support-info-card-text{flex:1}
.support-info-card-label{font-size:11px;color:#8696a0;text-transform:uppercase;letter-spacing:.6px;margin-bottom:2px;font-weight:700}
.support-info-card-url{font-size:13px;color:#53bdeb;font-weight:600}
.support-info-card-arrow{color:#8696a0}
@media(max-width:600px){.support-chat-wrap{border-radius:0;max-width:100%;height:calc(100vh - 56px)}}
