/* ============================================================
   MichigoVPS theme v2 — 100% 9drive design system
   Extracted from 9drive CSS: Manrope, glass, motion, easing
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{
  --bg:#090d16;
  --bg-gradient:
    radial-gradient(at 0% 0%, #6366f12e 0px, transparent 55%),
    radial-gradient(at 100% 0%, #f43f5e1f 0px, transparent 50%),
    radial-gradient(at 50% 100%, #10b9811a 0px, transparent 55%),
    #090d16;
  --text-primary:#f1f5f9; --text-secondary:#94a3b8; --text-bold:#f8fafc;
  --card-bg:#12182b8c; --card-border:#ffffff14;
  --sidebar-bg:#0a0f1ca6; --sidebar-border:#ffffff14;
  --input-bg:#ffffff0a; --input-border:#ffffff14; --input-focus-bg:#ffffff14;
  --shadow-color:#0000004d; --shadow-hover:#0006;
  --active-nav-bg:linear-gradient(135deg,#6366f126,#f43f5e0d);
  --active-nav-border:#6366f1;
  --button-shadow:#6366f159; --button-hover-shadow:#6366f180;
  --accent:#6366f1; --accent-2:#8b5cf6; --accent-deep:#4f46e5;
  --ok:#10b981; --ok-bg:#10b98126; --ok-tx:#6ee7b7;
  --warn:#f59e0b; --warn-bg:#f59e0b26; --warn-tx:#fcd34d;
  --bad:#f43f5e; --bad-bg:#ef444426; --bad-tx:#fca5a5;
  --info-bg:#3b82f626; --info-tx:#93c5fd;
  --ease:cubic-bezier(.21,1.02,.73,1);
  --r-md:.375rem; --r-lg:.5rem; --r-xl:.75rem; --r-2xl:1rem; --r-3xl:1.5rem;
  --font:'Manrope',ui-sans-serif,system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;font-family:var(--font);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html{scrollbar-width:thin;scrollbar-color:#cbd5e199 transparent}
body{background:var(--bg-gradient);background-attachment:fixed;color:var(--text-primary);
  min-height:100vh;font-size:15px;transition:background .5s,color .5s}
a{color:inherit;text-decoration:none}
::selection{background:#6366f14d}

/* ---------- motion ---------- */
@keyframes page-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes fade-up-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes scale-in{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:none}}
@keyframes modal-pop{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
@keyframes toast-in{from{opacity:0;transform:translate(-50%,-12px) scale(.96)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}
.page-enter{animation:page-enter .28s var(--ease) both}
.fade-up{animation:fade-up-in .35s var(--ease) both}
.stagger>*{animation:fade-up-in .5s var(--ease) both}
.stagger>*:nth-child(1){animation-delay:.02s}.stagger>*:nth-child(2){animation-delay:.06s}
.stagger>*:nth-child(3){animation-delay:.10s}.stagger>*:nth-child(4){animation-delay:.14s}
.stagger>*:nth-child(5){animation-delay:.18s}.stagger>*:nth-child(6){animation-delay:.22s}
.stagger>*:nth-child(7){animation-delay:.26s}.stagger>*:nth-child(8){animation-delay:.30s}
.stagger>*:nth-child(9){animation-delay:.34s}.stagger>*:nth-child(10){animation-delay:.38s}

/* ---------- topbar (public mini header) ---------- */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 26px;background:var(--sidebar-bg);backdrop-filter:blur(25px) saturate(180%);
  border-bottom:1px solid var(--sidebar-border);position:sticky;top:0;z-index:50}
.brand{font-weight:800;font-size:16.5px;display:flex;align-items:center;gap:9px;letter-spacing:.2px}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 12px var(--accent)}
.topnav{display:flex;align-items:center;gap:4px}
.topnav a{color:var(--text-secondary);font-size:13.5px;font-weight:600;padding:7px 13px;
  border-radius:var(--r-lg);transition:all .2s cubic-bezier(.4,0,.2,1)}
.topnav a:hover{color:var(--text-primary);background:#ffffff08;transform:translateX(3px)}
.topbar .right{display:flex;align-items:center;gap:9px}
.tbtn{color:var(--text-secondary);font-size:13px;font-weight:600;border:1px solid var(--card-border);
  padding:7px 14px;border-radius:var(--r-lg);transition:all .2s cubic-bezier(.4,0,.2,1);
  display:inline-flex;align-items:center;gap:6px;background:var(--input-bg)}
.tbtn:hover{color:var(--text-primary);border-color:var(--active-nav-border);transform:translateY(-1px)}

/* ---------- sidebar (admin) ---------- */
.layout{display:flex;min-height:100vh}
.sidebar{width:228px;flex-shrink:0;background:var(--sidebar-bg);
  backdrop-filter:blur(25px) saturate(180%);border-right:1px solid var(--sidebar-border);
  box-shadow:4px 0 30px var(--shadow-color);padding:20px 12px;position:sticky;top:0;
  height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:3px}
.sidebar .brand{padding:4px 10px 16px}
.snav{display:flex;align-items:center;gap:11px;color:var(--text-secondary);font-size:13.5px;
  font-weight:600;padding:10px 14px;border-radius:var(--r-lg);border-left:4px solid transparent;
  transition:all .2s cubic-bezier(.4,0,.2,1)}
.snav:hover{background:#ffffff08;transform:translateX(3px);color:var(--text-primary)}
.snav.active{background:var(--active-nav-bg);border-left-color:var(--active-nav-border);
  color:var(--active-nav-text,#f8fafc);font-weight:700;
  box-shadow:inset 2px 0 10px #6366f105}
.snav .ic{width:20px;text-align:center;font-size:15px}
.snav .cnt{margin-left:auto;background:var(--bad-bg);color:var(--bad-tx);font-size:10.5px;
  padding:2px 8px;border-radius:9999px;font-weight:700}
.sidebar .sep{height:1px;background:var(--sidebar-border);margin:9px 8px}

/* ---------- layout ---------- */
.wrap{max-width:1160px;margin:0 auto;padding:26px 20px 70px}
.adminmain{flex:1;padding:26px 30px 70px;min-width:0;animation:page-enter .28s var(--ease) both}
h1.page{font-size:21px;font-weight:800;display:flex;align-items:center;gap:10px;flex-wrap:wrap;letter-spacing:.2px}
.mut{color:var(--text-secondary);font-size:12.5px}

/* ---------- glass card ---------- */
.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-2xl);
  padding:20px;backdrop-filter:blur(20px) saturate(130%);
  box-shadow:0 10px 30px var(--shadow-color),0 1px 3px #0000000d;
  transition:all .3s cubic-bezier(.4,0,.2,1)}
.card.hover:hover{transform:translateY(-2px);filter:brightness(1.05);
  box-shadow:0 15px 35px var(--shadow-hover),0 1px 10px #00000014}
.card h3{font-size:11px;text-transform:uppercase;letter-spacing:1.6px;font-weight:700;
  color:var(--text-secondary);margin-bottom:14px;display:flex;align-items:center;gap:7px}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.kv{display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:8px 0;border-bottom:1px dashed rgba(255,255,255,.06);font-size:13.5px}
.kv:last-child{border-bottom:none}
.kv span:first-child{color:var(--text-secondary)}
.kv b{font-weight:700;text-align:right;word-break:break-all}

/* ---------- buttons ---------- */
.btn{padding:10px 18px;border:none;border-radius:var(--r-lg);font-size:13.5px;font-weight:700;
  cursor:pointer;color:#fff;transition:all .25s cubic-bezier(.4,0,.2,1);
  display:inline-flex;align-items:center;gap:7px;font-family:var(--font)}
.btn:hover:not(:disabled){transform:translateY(-1px)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.primary{background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%);
  box-shadow:0 4px 20px var(--button-shadow)}
.btn.primary:hover:not(:disabled){background:linear-gradient(135deg,#4f46e5 0%,#4338ca 100%);
  box-shadow:0 6px 25px var(--button-hover-shadow)}
.btn.ok{background:linear-gradient(135deg,#059669,#10b981)}
.btn.warnb{background:linear-gradient(135deg,#d97706,#f59e0b)}
.btn.badb{background:linear-gradient(135deg,#e11d48,#f43f5e)}
.btn.ghost{background:var(--input-bg);border:1px solid var(--card-border);color:var(--text-primary)}
.btn.ghost:hover{border-color:var(--active-nav-border)}
.btn.sm{padding:6px 12px;font-size:12px;border-radius:var(--r-md)}

/* ---------- badges & status ---------- */
.badge{font-size:10.5px;padding:3px 10px;border-radius:9999px;font-weight:800;letter-spacing:.4px;
  display:inline-flex;align-items:center;gap:5px}
.badge.ok{background:var(--ok-bg);color:var(--ok-tx)}
.badge.bad{background:var(--bad-bg);color:var(--bad-tx)}
.badge.warn{background:var(--warn-bg);color:var(--warn-tx)}
.badge.info{background:var(--info-bg);color:var(--info-tx)}
.dot-uptime{width:9px;height:9px;border-radius:50%;display:inline-block}
.dot-up{background:var(--ok);box-shadow:0 0 8px var(--ok);animation:pulse 2s infinite}
.dot-down{background:var(--bad);box-shadow:0 0 8px var(--bad)}

/* ---------- table ---------- */
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{color:var(--text-secondary);text-transform:uppercase;font-size:10.5px;letter-spacing:1px;
  font-weight:700;text-align:left;padding:10px 9px;border-bottom:1px solid var(--sidebar-border)}
.tbl td{padding:11px 9px;border-bottom:1px solid rgba(255,255,255,.05);vertical-align:top;
  transition:color .3s}
.tbl tr:hover td{background:rgba(255,255,255,.03)}
.card.tblwrap{padding:8px 14px;overflow-x:auto}

/* ---------- forms ---------- */
input.f,select.f,textarea.f{width:100%;padding:10px 13px;border-radius:var(--r-md);
  border:1px solid var(--input-border);background:var(--input-bg);color:var(--text-primary);
  font-size:13.5px;outline:none;backdrop-filter:blur(10px);
  transition:border-color .2s,background .2s;font-family:var(--font)}
input.f:focus,select.f:focus,textarea.f:focus{border-color:var(--active-nav-border);
  background:var(--input-focus-bg);box-shadow:0 0 0 4px #6366f126}
textarea.f{resize:vertical;min-height:80px}
label.lbl{display:block;font-size:10.5px;color:var(--text-secondary);margin-bottom:5px;
  text-transform:uppercase;letter-spacing:1px;font-weight:700}

/* ---------- flash / toast / modal ---------- */
.flash{padding:12px 16px;border-radius:var(--r-xl);font-size:13.5px;margin-bottom:12px;
  animation:fade-up-in .3s var(--ease) both}
.flash.success{background:var(--ok-bg);color:var(--ok-tx);border:1px solid rgba(16,185,129,.3)}
.flash.error{background:var(--bad-bg);color:var(--bad-tx);border:1px solid rgba(244,63,94,.3)}
#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:12px 24px;
  border-radius:var(--r-xl);font-size:13.5px;display:none;z-index:200;
  box-shadow:0 12px 40px rgba(0,0,0,.55);animation:toast-in .28s var(--ease) both}
#toast.ok{background:#064e3b;color:#a7f3d0;border:1px solid rgba(16,185,129,.4)}
#toast.err{background:#7f1d1d;color:#fecaca;border:1px solid rgba(244,63,94,.4)}

/* ---------- meters ---------- */
.meter{margin:9px 0 3px}
.meter .lbl{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:5px}
.meter .bar{height:7px;border-radius:9999px;background:rgba(255,255,255,.07);overflow:hidden}
.meter .fill{height:100%;border-radius:9999px;background:linear-gradient(90deg,#6366f1,#8b5cf6);transition:width .6s var(--ease)}
.meter .fill.hot{background:linear-gradient(90deg,#f59e0b,#f43f5e)}
canvas{width:100%}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--sidebar-border);background:var(--sidebar-bg);
  backdrop-filter:blur(25px);padding:18px 26px;display:flex;align-items:center;
  justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--text-secondary)}
.footer a{transition:color .2s}
.footer a:hover{color:var(--text-primary)}
.footer .links{display:flex;gap:16px}

/* ---------- hero & plan cards (public) ---------- */
.hero{padding:74px 20px 56px;text-align:center;animation:fade-up-in .4s var(--ease) both}
.hero h1{font-size:40px;font-weight:800;letter-spacing:-.5px;line-height:1.15;
  background:linear-gradient(135deg,#f8fafc 30%,#a5b4fc 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero p{color:var(--text-secondary);font-size:16.5px;margin-top:14px;max-width:560px;margin-left:auto;margin-right:auto}
.hero .cta{margin-top:28px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.plan{display:flex;flex-direction:column}
.plan .price{font-size:26px;font-weight:800;margin:12px 0 2px}
.plan .price small{font-size:12px;color:var(--text-secondary);font-weight:600}
.plan ul{list-style:none;margin:12px 0;display:flex;flex-direction:column;gap:7px;flex:1}
.plan ul li{font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:8px}
.plan ul li::before{content:'✓';color:var(--ok);font-weight:800}
.feat{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:26px 18px}
.feat .ic{font-size:30px}
.feat b{font-size:15px}
.feat span{font-size:13px;color:var(--text-secondary)}

/* ============================================================
   v2.1 — mobile-first responsive + premium polish
   ============================================================ */

/* ---------- mobile topbar ---------- */
.menubtn{display:none;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;
  border:1px solid var(--card-border);background:var(--input-bg);color:var(--text-primary);cursor:pointer;flex:none}
.topnav{transition:max-height .3s var(--ease),opacity .3s var(--ease);overflow:hidden}
.topbar .right{flex-wrap:nowrap}
@media (max-width:860px){
  .menubtn{display:inline-flex}
  .topbar{padding:10px 14px;gap:8px;flex-wrap:wrap}
  .topnav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:2px;
    background:rgba(10,14,26,.97);backdrop-filter:blur(25px);border-bottom:1px solid var(--sidebar-border);
    padding:8px 12px 12px;display:none}
  .topnav.open{display:flex;animation:fade-up-in .25s var(--ease)}
  .topnav a{padding:11px 14px;border-radius:10px;font-size:14px}
  .topnav a:hover{transform:none}
  .brand{font-size:15px}
  .wrap{padding:18px 12px 60px}
  h1.page{font-size:18px;gap:8px}
  .grid{gap:11px}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .hero{padding:40px 14px 20px !important}
  .hero h1{font-size:26px !important}
  .hero .cta{flex-direction:column;align-items:stretch;gap:10px}
  .hero-stats{gap:20px;margin-top:26px}
  .hero-stats>div{flex:1;min-width:70px}
  .secthead h2{font-size:19px}
  .provgrid{grid-template-columns:repeat(2,1fr) !important;gap:10px}
  .provcard{padding:14px}
  .provcard .provmeta{flex-direction:column;gap:4px}
  /* tables → cards */
  .tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tbl{min-width:520px}
  /* admin layout → drawer */
  .layout{display:block;position:relative}
  .sidebar{position:fixed;top:0;left:0;bottom:0;z-index:90;width:250px;max-width:82vw;
    transform:translateX(-105%);transition:transform .3s var(--ease);overflow-y:auto;padding:14px 10px}
  .sidebar.open{transform:none;box-shadow:0 0 60px #000c}
  .sideveil{display:none;position:fixed;inset:0;background:#0009;z-index:85;backdrop-filter:blur(2px)}
  .sideveil.show{display:block;animation:fade-up-in .2s var(--ease)}
  .adminmain{padding:14px 12px 50px !important}
  .adminmain h1.page{font-size:18px}
  .sidehead{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
  .kv{font-size:12.5px}
  .kv span{min-width:96px}
  dl.info{grid-template-columns:1fr auto}
  dl.info dt{font-size:12px}
  dl.info dd{font-size:12.5px}
  .itabs,.shoptabs{overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start;-webkit-overflow-scrolling:touch;padding-bottom:4px}
  .itab,.shoptab{white-space:nowrap;padding:8px 14px;font-size:12.5px}
  .actions{grid-template-columns:1fr 1fr !important}
  .trustbar{grid-template-columns:1fr 1fr !important}
  .navtiles{flex-direction:column}
  .tile{min-width:0}
  .modal-card{width:94vw !important;max-width:94vw !important}
  .flash{font-size:12.5px}
}
@media (max-width:480px){
  .provgrid{grid-template-columns:1fr !important}
  .hero-stats{gap:14px}
  .topbar .right .tbtn{padding:7px 10px;font-size:12px}
  .trustbar{grid-template-columns:1fr !important}
}

/* ---------- premium product card ---------- */
.plan{position:relative;overflow:hidden;transition:transform .3s var(--ease),border-color .3s,box-shadow .3s}
.plan::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .35s;pointer-events:none;
  background:radial-gradient(420px 200px at 50% -40px,rgba(99,102,241,.16),transparent 70%)}
.plan:hover{transform:translateY(-4px);border-color:#6366f166;box-shadow:0 14px 44px #0008}
.plan:hover::before{opacity:1}
.plan .ribbon{position:absolute;top:12px;right:-34px;transform:rotate(38deg);padding:4px 40px;
  font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;
  background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 3px 12px #6366f159}
.plan .price{font-size:24px;font-weight:800;letter-spacing:-.4px}
.plan .price small{font-size:12px;font-weight:600;color:var(--text-secondary)}
.plan ul{list-style:none;margin:10px 0 14px;flex:1}
.plan ul li{display:flex;align-items:center;gap:8px;padding:4.5px 0;font-size:12.5px;color:var(--text-secondary);
  border-bottom:1px dashed #ffffff0a}
.plan ul li:last-child{border-bottom:none}
.plan ul li svg{color:#a5b4fc;width:14px;height:14px}
.plan .osrow{display:flex;gap:6px;align-items:center;margin:8px 0 12px;flex-wrap:wrap}
.oslogo{width:26px;height:26px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--input-bg);border:1px solid var(--card-border)}
.oslogo svg{width:15px;height:15px}
.oslogo.win{color:#4cc2ff}
.oslogo.lin{color:#fbbf24}
.stockpill{position:absolute;top:12px;left:12px;font-size:10px;font-weight:800;padding:3px 9px;border-radius:9999px;
  background:var(--bad-bg);color:var(--bad-tx);border:1px solid #f43f5e44}
/* group card icon chip */
.gi-chip{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:23px;
  background:linear-gradient(135deg,rgba(99,102,241,.2),rgba(139,92,246,.08));border:1px solid rgba(99,102,241,.35)}

/* ---------- premium server card (vps_list) ---------- */
.vpscard{position:relative;overflow:hidden}
.vpscard .statusdot{width:9px;height:9px;border-radius:50%;background:#64748b;display:inline-block}
.vpscard .statusdot.up{background:var(--ok);box-shadow:0 0 8px var(--ok)}
.vpscard .expbar{height:5px;border-radius:99px;background:#ffffff10;overflow:hidden;margin-top:12px}
.vpscard .expbar>div{height:100%;border-radius:99px;background:linear-gradient(90deg,#6366f1,#8b5cf6);transition:width .5s var(--ease)}
.vpscard .expbar>div.warn{background:linear-gradient(90deg,#f59e0b,#f43f5e)}
.vpscard .quick{display:flex;gap:6px;margin-top:12px}
.vpscard .quick a{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 0;
  border-radius:9px;font-size:12px;font-weight:700;background:var(--input-bg);border:1px solid var(--card-border);
  color:var(--text-secondary);transition:.2s}
.vpscard .quick a:hover{color:var(--text-primary);border-color:#6366f166;transform:translateY(-1px)}

/* ---------- admin widgets ---------- */
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.stat{position:relative;overflow:hidden;padding:16px;border-radius:15px;background:var(--card-bg);
  border:1px solid var(--card-border);transition:.25s var(--ease)}
.stat:hover{transform:translateY(-2px);border-color:#6366f155}
.stat .si{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(99,102,241,.18),rgba(99,102,241,.05));border:1px solid rgba(99,102,241,.3);
  color:#a5b4fc;margin-bottom:10px}
.stat .si svg{width:18px;height:18px}
.stat b{font-size:20px;letter-spacing:-.3px;display:block}
.stat span{font-size:11.5px;color:var(--text-secondary)}
.stat .trend{position:absolute;top:14px;right:14px;font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:99px}
.stat .trend.up{background:var(--ok-bg);color:var(--ok-tx)}
.stat .trend.down{background:var(--bad-bg);color:var(--bad-tx)}
.donut{--p:0;width:92px;height:92px;border-radius:50%;flex:none;
  background:conic-gradient(var(--accent) calc(var(--p)*1%), #ffffff12 0);
  display:flex;align-items:center;justify-content:center}
.donut::after{content:attr(data-label);width:70px;height:70px;border-radius:50%;background:#101527;
  display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:800}
.alertrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--card-border);font-size:12.5px}
.alertrow:last-child{border-bottom:none}
.alertrow svg{flex:none}

/* sidebar count badges */
.sidebar .cnt{margin-left:auto;font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:99px;
  background:var(--info-bg);color:var(--info-tx)}
.sidebar .cnt.hot{background:var(--bad-bg);color:var(--bad-tx)}
.sidebar .sidehead{display:flex;align-items:center;justify-content:space-between;gap:8px}
.adminmain .menubtn{margin-bottom:10px}
@media (min-width:861px){.adminmain .menubtn{display:none}.sidebar .sidehead .menubtn{display:none}}
.topbar .right{margin-left:auto}
.oslogo.lin{background:linear-gradient(135deg,#fff2,#fff1);color:#e95420}
.oslogo img{display:block}


/* ---------- v2.2 product card: region + features + test IP ---------- */
.gi-chip{position:relative}
.regionflag{position:absolute;bottom:-5px;right:-6px;font-size:14px;line-height:1;
  filter:drop-shadow(0 1px 2px #000a)}
.gi-chip .gflag{position:absolute;bottom:-4px;right:-4px;font-size:13px;line-height:1;filter:drop-shadow(0 1px 2px #000a)}
.featpills{display:flex;gap:5px;flex-wrap:wrap;margin:2px 0 10px}
.feat{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:800;letter-spacing:.2px;
  padding:3px 8px;border-radius:9999px;border:1px solid transparent;white-space:nowrap}
.feat svg{width:10px;height:10px}
.feat.gold{background:linear-gradient(135deg,#f59e0b26,#f59e0b0d);color:#fcd34d;border-color:#f59e0b3d}
.feat.green{background:var(--ok-bg);color:var(--ok-tx);border-color:#10b9813d}
.feat.blue{background:var(--info-bg);color:var(--info-tx);border-color:#3b82f63d}
.testip{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary);
  background:var(--input-bg);border:1px dashed var(--card-border);border-radius:9px;padding:5px 9px;margin:2px 0 8px}
.testip b{color:#93c5fd;font-weight:700;letter-spacing:.2px}
.testip svg{width:12px;height:12px;flex:none;color:#93c5fd}
.copyip{margin-left:auto;background:none;border:1px solid var(--card-border);border-radius:6px;
  color:var(--text-secondary);width:20px;height:20px;font-size:10px;cursor:pointer;display:inline-flex;
  align-items:center;justify-content:center;transition:.2s}
.copyip:hover{color:var(--text-primary);border-color:#6366f166}
.grphead .gi-chip{width:50px;height:50px}

/* ── v2.3: dark native controls everywhere (dropdown panels were white) ── */
:root{color-scheme:dark}
select.f, select{background:var(--input-bg);color:var(--text-primary)}
select.f option, select option{background:#0d1526;color:#e2e8f0}

/* ── v2.3 premium header/footer ── */
.brand small{display:block;font-size:9px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--text-secondary);margin-top:1px}
.footerp{margin-top:64px;border-top:1px solid var(--card-border);
  background:linear-gradient(180deg, transparent, #0a0f1ecc)}
.fwrap{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:34px;padding:44px 24px 30px}
@media(max-width:840px){.fwrap{grid-template-columns:1fr 1fr}.fbrand{grid-column:1/-1}}
.fbrand p{font-size:12.5px;color:var(--text-secondary);line-height:1.7;margin:12px 0 14px;max-width:340px}
.fpay{display:flex;flex-direction:column;gap:7px}
.fpay span{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--text-secondary);font-weight:600}
.fpay svg{width:13px;height:13px;color:#6ee7b7}
.fcol h4{font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:#c7d2fe;margin-bottom:13px}
.fcol a{display:block;font-size:13px;color:var(--text-secondary);padding:4.5px 0;transition:.2s}
.fcol a:hover{color:var(--text-primary);transform:translateX(3px)}
.fcol p{margin-bottom:12px}
.fbase{text-align:center;font-size:12px;color:var(--text-secondary);padding:16px 20px;
  border-top:1px solid var(--card-border)}

/* ── v2.4 compact plan cards ── */
.plan{padding:15px 15px 14px;border-radius:16px}
.plan .price{font-size:19px;margin:8px 0 1px}
.plan .price small{font-size:10.5px}
.plan b{font-size:13px}
.plan ul{margin:8px 0;display:flex;flex-direction:column;gap:4px}
.plan ul li{font-size:11.8px;gap:6px}
.plan .gi-chip{width:36px !important;height:36px !important}
.plan .gi-chip svg{width:17px !important;height:17px !important}
.featpills{gap:4px;margin:6px 0 0}
.feat{font-size:9px !important;padding:2.5px 7px !important;gap:3.5px !important}
.feat svg{width:9px !important;height:9px !important}
.testip{font-size:10.5px;padding:5px 9px;margin-top:6px}
.plan .osrow{margin:6px 0 0;gap:5px}
.plan .btn.sm{padding:7px 12px;font-size:11.5px}
.g3{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.planflag b{font-size:13px}
/* mobile polish */
@media(max-width:860px){
  .g3{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:10px}
  .regbar{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;
    scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .regbar::-webkit-scrollbar{display:none}
  .regbtn{min-width:auto;flex:none}
  .regbtn .rbtxt small{white-space:nowrap}
  .hero33{padding:56px 16px 44px}
  .hero33 h1{font-size:27px}
  .hero33 p{font-size:13.5px}
  .hero-stats{gap:20px}
  .hero-stats b{font-size:19px}
  .secthead{margin:34px 0 16px}
  .secthead h2{font-size:20px}
  .locgrid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
  .loccard{padding:15px 14px}
  .trustbar{grid-template-columns:1fr 1fr;gap:12px;padding:16px}
  .trustbar b{font-size:12px}
  .gsec-title b{font-size:12px}
  .footerp .fwrap{padding:32px 18px 24px;gap:24px}
}
@media(max-width:480px){
  .trustbar{grid-template-columns:1fr}
  .hero-regions a{font-size:11px;padding:5px 10px}
}

/* ── v2.5 labeled spec rows, region/stock boxes, rectangular tags ── */
.speclist{list-style:none;margin:9px 0 0;display:flex;flex-direction:column;gap:0;flex:1}
.speclist li{display:flex;align-items:center;justify-content:space-between;gap:8px;
  font-size:11.5px;padding:4.5px 0;border-bottom:1px dashed #ffffff0f}
.speclist li:last-child{border-bottom:none}
.speclist .sl{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);
  font-weight:600;font-size:10.5px;text-transform:uppercase;letter-spacing:.35px}
.speclist .sl svg{width:12px;height:12px;color:#818cf8}
.speclist b{font-size:11.8px;color:var(--text-primary);text-align:right;font-weight:700}
.cardfoot{display:flex;align-items:center;gap:6px;margin:10px 0 8px;flex-wrap:wrap}
.regionbox{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;
  color:var(--text-secondary);background:var(--input-bg);border:1px solid var(--card-border);
  border-radius:7px;padding:5px 9px;min-width:0}
.regionbox b{color:#c7d2fe;font-weight:800}
.regionbox img{border-radius:2.5px}
.stockbox{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:800;
  border-radius:7px;padding:5px 9px;margin-left:auto;white-space:nowrap;flex:none}
.stockbox .sdot{width:6px;height:6px;border-radius:50%;flex:none}
.stockbox.ok{color:#6ee7b7;background:#10b9811a;border:1px solid #10b98140}
.stockbox.ok .sdot{background:#10b981;box-shadow:0 0 6px #10b981;animation:pulse 2s infinite}
.stockbox.bad{color:#fca5a5;background:#ef44441a;border:1px solid #ef444440}
.stockbox.bad .sdot{background:#ef4444}
/* tags/boxes rectangular — jgn bujur */
.feat{border-radius:7px !important}
.tag{border-radius:7px}
.osrow .oslogo{border-radius:7px}
.stockpill{border-radius:8px}
.ribbon{display:none}

/* ── v2.6 plan card kemas ── */
.planhead{display:flex;align-items:flex-start;gap:10px}
.planno{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:800;letter-spacing:.5px;
  color:var(--text-secondary);text-transform:uppercase;margin-top:3px}
.planno svg{width:9px;height:9px}
.stockbox.top{margin-left:auto;flex:none;margin-top:1px}
.speclist li{justify-content:flex-start}
.speclist .sl{flex:none;width:76px}
.speclist b{text-align:left;flex:1;min-width:0;font-weight:750}
.spetag{font-style:normal;font-size:8.5px;font-weight:800;letter-spacing:.2px;color:#6ee7b7;
  background:#10b9811a;border:1px solid #10b9813a;border-radius:5px;padding:1.5px 6px;margin-left:6px;
  white-space:nowrap;display:inline-block;vertical-align:1px}
.notechip{margin-left:auto;font-size:9px;font-weight:700;color:var(--text-secondary);
  background:var(--input-bg);border:1px solid var(--card-border);border-radius:6px;padding:4px 8px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}


/* ── v2.8 feature list vertical, price left ── */
.featpills{flex-direction:column;align-items:stretch;gap:3px;margin:7px 0 0}
.feat{width:100%;justify-content:flex-start;border-radius:6px !important;padding:3.5px 8px !important;
  border-left-width:2.5px;border-left-style:solid}
.feat.gold{border-left-color:#f59e0b}.feat.green{border-left-color:#10b981}.feat.blue{border-left-color:#6366f1}
.featpills .feat b, .featpills .feat svg{flex:none}
.price{text-align:left}
.osrow{margin-top:7px;padding-top:7px;border-top:1px dashed #ffffff12}

@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fade-up-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ── premium admin data pages (v3.0) ── */
.dash-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:11px;margin-bottom:14px}
.dcard{position:relative;background:var(--card-bg);border:1px solid var(--card-border);border-radius:15px;
  padding:13px 15px;transition:.25s var(--ease)}
.dcard:hover{transform:translateY(-2px);box-shadow:0 10px 26px #0006;border-color:#6366f140}
.dcard b{font-size:21px;display:block;letter-spacing:-.4px}
.dcard span{font-size:10px;color:var(--text-secondary);font-weight:700}
.dcard .wi{position:absolute;top:12px;right:12px;width:29px;height:29px;border-radius:9px;display:flex;
  align-items:center;justify-content:center;background:var(--input-bg);border:1px solid var(--card-border)}
.dcard .wi svg{width:14px;height:14px;color:#818cf8}
.dcard.g b{color:#6ee7b7}.dcard.w b{color:#fcd34d}.dcard.r b{color:#fca5a5}
.dcard a.jump{position:absolute;inset:0;border-radius:inherit}
.fbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:13px}
.fbar .f{padding:8px 11px;font-size:12px}
.fbar select.f{width:auto}
.fpill{font-size:10.5px;font-weight:800;padding:6px 13px;border-radius:99px;border:1px solid var(--card-border);
  background:var(--input-bg);color:var(--text-secondary);cursor:pointer;text-decoration:none;display:inline-flex;gap:5px;align-items:center;transition:.22s var(--ease)}
.fpill svg{width:11px;height:11px}
.fpill:hover{border-color:#6366f155;color:var(--text-primary);transform:translateY(-1px)}
.fpill.on{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-color:transparent;box-shadow:0 5px 16px #6366f145}
.fpill .cnt{font-size:9px;background:#ffffff26;padding:0 6px;border-radius:99px;font-weight:900}
.fpill.on .cnt{background:#ffffff30}
.pcard-t{display:flex;align-items:center;gap:11px;padding:11px 14px;margin-bottom:7px;border-radius:14px;
  background:var(--card-bg);border:1px solid var(--card-border);transition:.25s var(--ease);animation:rise-in .45s var(--ease) both;flex-wrap:wrap}
.pcard-t:hover{border-color:#6366f140;transform:translateY(-1px);box-shadow:0 8px 24px #0005}
.pcard-t .idx{width:36px;height:36px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:11px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}
.pcard-t .idx.g{background:linear-gradient(135deg,#10b981,#22d3ee)}
.pcard-t .idx.w{background:linear-gradient(135deg,#f59e0b,#f97316)}
.pcard-t .idx.r{background:linear-gradient(135deg,#ef4444,#ec4899)}
.pcard-t .idx.n{background:var(--input-bg);color:var(--text-secondary);border:1px solid var(--card-border)}
.pid{font-size:9px;font-weight:800;color:#a5b4fc;background:#6366f11a;border:1px solid #6366f133;
  border-radius:5px;padding:1px 6px;letter-spacing:.4px;vertical-align:2px}
.pmet{display:flex;gap:7px;flex-wrap:wrap;font-size:10px;color:var(--text-secondary)}
.pmet i{font-style:normal;display:inline-flex;align-items:center;gap:3px;background:var(--input-bg);
  border:1px solid var(--card-border);border-radius:6px;padding:2px 8px;font-weight:700}
.pmet svg{width:9px;height:9px}
.pacts{margin-left:auto;display:flex;gap:5px;flex-wrap:wrap;align-items:center;position:relative}
.empty-t{padding:46px 20px;text-align:center;color:var(--text-secondary)}
.empty-t svg{width:30px;height:30px;opacity:.4;display:block;margin:0 auto 10px}
@keyframes rise-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
/* premium toast */
.toast{position:fixed;bottom:22px;right:22px;z-index:90;max-width:340px;padding:13px 17px;border-radius:14px;
  background:#141a2ef2;border:1px solid var(--card-border);color:var(--text-primary);font-size:12.5px;font-weight:700;
  display:flex;gap:10px;align-items:flex-start;backdrop-filter:blur(14px);
  box-shadow:0 18px 50px #000a;opacity:0;transform:translateY(14px) scale(.97);pointer-events:none;transition:.38s var(--ease)}
.toast.show{opacity:1;transform:none;pointer-events:auto}
.toast svg{width:15px;height:15px;flex:none;margin-top:1px}
.toast.ok{border-color:#10b98155}.toast.ok svg{color:#6ee7b7}
.toast.bad{border-color:#ef444455}.toast.bad svg{color:#fca5a5}
.toast.info svg{color:#a5b4fc}
/* premium modal */
.modal-bg{position:fixed;inset:0;background:#04060fb0;backdrop-filter:blur(8px);display:none;z-index:70;
  align-items:center;justify-content:center;padding:18px;opacity:0;transition:opacity .26s var(--ease)}
.modal-bg.show{display:flex;opacity:1}
.modal{width:100%;max-width:520px;max-height:88vh;overflow:auto;background:#131828;border:1px solid #6366f12e;
  border-radius:20px;padding:24px;box-shadow:0 30px 80px #000c;transform:translateY(16px) scale(.97);
  transition:.34s cubic-bezier(.22,1,.36,1)}
.modal-bg.show .modal{transform:none}
.modal h2{margin:0 0 16px;font-size:16.5px;display:flex;align-items:center;gap:8px}
.modal h2 svg{width:17px;height:17px}

/* premium flash→toast */
.flash{position:relative;overflow:hidden;border-radius:13px;padding:12px 15px;font-size:12.5px;font-weight:700;
  display:flex;gap:9px;align-items:center;margin-bottom:10px;animation:toast-pop .45s cubic-bezier(.22,1,.36,1) both}
.flash::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:currentColor;opacity:.7}
.flash[data-flash]::after{content:"";position:absolute;left:0;bottom:0;height:2px;background:currentColor;
  opacity:.4;animation:flashbar 5.4s linear forwards}
.flash.success{background:linear-gradient(90deg,#10b98126,#10b9810d);color:#6ee7b7;border-color:#10b98133}
.flash.error{background:linear-gradient(90deg,#ef444426,#ef44440d);color:#fca5a5;border-color:#ef444433}
@keyframes flashbar{from{width:100%}to{width:0%}}
@keyframes toast-pop{from{opacity:0;transform:translateY(-10px) scale(.97)}to{opacity:1;transform:none}}
