:root{
  --tim-dam:#5b21b6;
  --tim:#7c3aed;
  --tim-nhat:#ede9fe;
  --trang:#ffffff;
  --xam-chu:#1f2937;
  --xam-vien:#e5e7eb;
  --do:#dc2626;
  --xanh:#16a34a;
  --nen:#f6f5fb;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--xam-chu);
  background:var(--nen);
  line-height:1.5;
}
a{color:var(--tim);text-decoration:none}
a:hover{text-decoration:underline}

/* ===== Trang đăng nhập ===== */
.trang-giua{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--tim-nhat),var(--nen));
}
.the-dang-nhap{
  background:var(--trang);border:1px solid var(--xam-vien);border-radius:14px;
  padding:32px;width:360px;max-width:92vw;box-shadow:0 8px 30px rgba(91,33,182,.12);
}
.tieu-de{margin:0 0 4px;color:var(--tim-dam);font-size:22px}
.phu-de{margin:0 0 18px;color:#6b7280;font-size:14px}
form label{display:block;font-size:13px;margin:12px 0 6px;color:#374151}
form input,form select{
  width:100%;padding:11px 12px;border:1px solid var(--xam-vien);border-radius:9px;
  font-size:15px;outline:none;background:#fff;
}
form input:focus,form select:focus{border-color:var(--tim);box-shadow:0 0 0 3px var(--tim-nhat)}
.nut-chinh{
  width:100%;margin-top:18px;padding:12px;background:var(--tim-dam);color:#fff;border:0;
  border-radius:9px;font-size:15px;font-weight:600;cursor:pointer;
}
.nut-chinh:hover{background:var(--tim)}
.loi{color:var(--do);font-size:13px;margin-top:10px;min-height:18px}
.ok{color:var(--xanh);font-size:13px;margin-top:10px;min-height:18px}

/* ===== Bố cục ứng dụng ===== */
.thanh-tren{
  display:flex;align-items:center;justify-content:space-between;
  background:var(--tim-dam);color:#fff;padding:14px 22px;
}
.thanh-tren .logo{font-weight:700;font-size:17px}
.dieu-huong a{color:#e9d5ff;margin-left:18px;font-size:15px}
.dieu-huong a.dang-chon,.dieu-huong a:hover{color:#fff;text-decoration:none}
.noi-dung{max-width:1000px;margin:26px auto;padding:0 18px}
.noi-dung h1{color:var(--tim-dam);font-size:22px;margin:0 0 18px}

.luoi{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.khoi{background:var(--trang);border:1px solid var(--xam-vien);border-radius:12px;padding:18px}
.khoi .nhan{font-size:13px;color:#6b7280}
.khoi .gia-tri{font-size:20px;font-weight:700;color:var(--tim-dam);margin-top:6px}
.ghi-chu{color:#6b7280;font-size:14px;margin-top:22px}

.bang{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--xam-vien);
  border-radius:12px;overflow:hidden;margin-top:8px}
.bang th,.bang td{padding:11px 13px;text-align:left;border-bottom:1px solid var(--xam-vien);font-size:14px}
.bang th{background:var(--tim-nhat);color:var(--tim-dam);font-weight:600}
.bang tr:last-child td{border-bottom:0}

.nut{padding:8px 14px;border-radius:8px;border:1px solid var(--tim);background:#fff;
  color:var(--tim);cursor:pointer;font-size:14px}
.nut:hover{background:var(--tim-nhat)}
.nut-dac{background:var(--tim-dam);color:#fff;border-color:var(--tim-dam)}
.nut-dac:hover{background:var(--tim);color:#fff}

/* Header trái: hamburger + logo */
.thanh-tren .trai{display:flex;align-items:center;gap:12px}
.nut-icon{display:inline-flex;align-items:center;justify-content:center;background:transparent;
  border:0;color:#fff;cursor:pointer;padding:4px;border-radius:8px}
.nut-icon:hover{background:rgba(255,255,255,.15)}
/* Hamburger luôn hiện (PC + mobile), bấm mới mở drawer */
#nut-menu{display:inline-flex}
.nut-icon-tim{color:var(--tim);border:1px solid var(--xam-vien);background:#fff;vertical-align:middle}
.nut-icon-tim:hover{background:var(--tim-nhat)}

/* Drawer menu (ẩn mặc định mọi màn hình, bấm hamburger mới trượt ra) */
.dieu-huong{position:fixed;top:0;left:0;height:100%;width:250px;max-width:82vw;
  background:var(--tim-dam);transform:translateX(-100%);transition:transform .25s ease;
  z-index:200;display:flex;flex-direction:column;padding-top:6px;box-shadow:2px 0 18px rgba(0,0,0,.25)}
.dieu-huong.mo{transform:translateX(0)}
.dieu-huong .tieude-menu{color:#fff;font-weight:700;font-size:16px;padding:14px 20px;
  border-bottom:1px solid rgba(255,255,255,.15)}
.dieu-huong a{color:#e9d5ff;margin:0;padding:13px 20px;font-size:15px;display:block;border-bottom:1px solid rgba(255,255,255,.06)}
.dieu-huong a:hover,.dieu-huong a.dang-chon{background:rgba(255,255,255,.12);color:#fff;text-decoration:none}
.dieu-huong a.muc-admin{color:#fde68a}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:150;display:none}
.overlay.mo{display:block}

/* Nút copy */
.nut-copy{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:7px;
  border:1px solid var(--tim);background:#fff;color:var(--tim);cursor:pointer;font-size:13px}
.nut-copy:hover{background:var(--tim-nhat)}
.ket-noi-copy{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Modal quản lý */
.modal-nen{position:fixed;inset:0;background:rgba(31,41,55,.5);display:flex;align-items:center;
  justify-content:center;z-index:100;padding:16px}
.modal-hop{background:#fff;border-radius:14px;padding:26px;width:480px;max-width:94vw;
  max-height:88vh;overflow:auto;box-shadow:0 16px 50px rgba(91,33,182,.25)}
.modal-hop h2{color:var(--tim-dam);margin:0 0 8px;font-size:20px}
.modal-hop h3{color:var(--tim-dam);font-size:15px;margin:14px 0 6px}
.hang{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.hang input{flex:1;padding:10px 12px;border:1px solid var(--xam-vien);border-radius:9px;font-size:15px}
.hang input:focus{border-color:var(--tim);box-shadow:0 0 0 3px var(--tim-nhat);outline:none}

/* ============ NÂNG CẤP GIAO DIỆN (đẹp, hiện đại) ============ */
.noi-dung section{animation:fadeIn .28s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.khoi{transition:transform .2s, box-shadow .2s}
.khoi:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(91,33,182,.12)}
.gia-tri{font-size:24px!important}
.nut-chinh{background:linear-gradient(135deg,#7c3aed,#5b21b6)!important}
.nut-chinh:hover{filter:brightness(1.08)}
.bang tr:hover td{background:var(--tim-nhat)}
form input:focus,form select:focus{box-shadow:0 0 0 4px var(--tim-nhat)}

/* Hero giới thiệu */
.hero{background:linear-gradient(135deg,#7c3aed,#5b21b6);color:#fff;border-radius:18px;
  padding:34px 28px;margin-bottom:22px;box-shadow:0 16px 42px rgba(91,33,182,.28)}
.hero h2{margin:0 0 8px;font-size:26px;line-height:1.25}
.hero p{margin:0 0 18px;opacity:.92;font-size:15px;max-width:680px}
.hero-stats{display:flex;gap:10px;flex-wrap:wrap}
.stat-chip{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);
  border-radius:999px;padding:8px 15px;font-size:13.5px;font-weight:600}

/* Lưới tính năng */
.tinh-nang{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:6px 0 28px}
.tn-o{background:#fff;border:1px solid var(--xam-vien);border-radius:14px;padding:20px;transition:.2s}
.tn-o:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(91,33,182,.1);border-color:var(--tim-nhat)}
.tn-icon{width:44px;height:44px;border-radius:11px;background:var(--tim-nhat);color:var(--tim-dam);
  display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.tn-o h4{margin:0 0 6px;color:var(--tim-dam);font-size:16px}
.tn-o p{margin:0;color:#6b7280;font-size:13px;line-height:1.55}

/* Thẻ giá (pricing cards) */
.bang-gia{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-top:6px}
.the-gia{background:#fff;border:1px solid var(--xam-vien);border-radius:18px;padding:28px 22px;
  text-align:center;position:relative;transition:.22s;display:flex;flex-direction:column}
.the-gia:hover{transform:translateY(-6px);box-shadow:0 20px 46px rgba(91,33,182,.16)}
.the-gia.noi-bat{border:2px solid var(--tim);box-shadow:0 20px 46px rgba(124,58,237,.2)}
.the-gia .ten-goi{font-size:14px;color:#6b7280;font-weight:700;text-transform:uppercase;letter-spacing:.6px}
.the-gia .gia{font-size:32px;font-weight:800;color:var(--tim-dam);margin:10px 0 2px}
.the-gia .gia small{font-size:14px;color:#9ca3af;font-weight:500}
.gia-gach{color:#9ca3af;font-size:20px;font-weight:600;text-decoration:line-through}
.mien-phi{display:inline-block;background:#dcfce7;color:#15803d;font-size:14px;font-weight:700;
  padding:2px 10px;border-radius:999px;margin-left:6px;vertical-align:middle}

/* Bảng tự cuộn ngang trong khung (không kéo cả trang) */
#bang-server,#bang-donhang-ls,#bang-lichsu,#bang-users,#bang-servers,#bang-tx{overflow-x:auto}

/* Danh sách server dạng thẻ (thay bảng — gọn, responsive) */
.ds-server{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.the-server{background:#fff;border:1px solid var(--xam-vien);border-radius:14px;padding:16px 18px;transition:.2s}
.the-server:hover{box-shadow:0 10px 28px rgba(91,33,182,.1);transform:translateY(-2px)}
.ts-dau{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.ts-ketnoi{font-weight:700;color:var(--tim-dam);font-size:15px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;word-break:break-all}
.ts-han{background:var(--tim-nhat);color:var(--tim-dam);padding:4px 11px;border-radius:999px;font-size:12.5px;font-weight:700;white-space:nowrap}
.ts-han.het{background:#fee2e2;color:#dc2626}
.ts-ip{color:#6b7280;font-size:14px;margin:9px 0 14px;word-break:break-all}
.ts-nut{display:flex;gap:8px;flex-wrap:wrap}
.ts-nut .nut,.ts-nut .nut-dac{flex:1;min-width:78px;text-align:center}

/* Bảng dstat (PPS + băng thông live) */
.dstat{font-family:ui-monospace,Menlo,Consolas,monospace;overflow-x:auto}
.dstat-head{color:var(--tim-dam);font-weight:600;margin-bottom:8px;font-family:system-ui,sans-serif}
.dstat-bang{width:100%;border-collapse:collapse;font-size:13.5px;background:#fff;border:1px solid var(--xam-vien);border-radius:10px;overflow:hidden}
.dstat-bang th{background:var(--tim-dam);color:#fff;padding:9px 12px;text-align:right;font-weight:600}
.dstat-bang th:first-child{text-align:left}
.dstat-bang td{padding:6px 12px;text-align:right;border-bottom:1px solid #f0eef8;font-variant-numeric:tabular-nums}
.dstat-bang td:first-child{text-align:left;color:#6b7280}
.dstat-bang tr:nth-child(2) td{font-weight:700;color:var(--tim-dam);background:var(--tim-nhat)}

/* Biểu đồ thanh (live, kiểu dstat) */
.bieu-do{width:100%;height:230px;display:block;background:#141a35;border:1px solid #141a35;border-radius:10px}
.bd-chu{font-size:12.5px;color:#6b7280;margin-bottom:7px}
.bd-recv{color:#7c3aed;font-size:15px}
.bd-send{color:#c4b5fd;font-size:15px}
.the-gia .badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);white-space:nowrap;
  background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-size:12px;font-weight:700;
  padding:5px 14px;border-radius:999px;box-shadow:0 5px 14px rgba(245,158,11,.45)}
.the-gia ul{list-style:none;padding:0;margin:16px 0;text-align:left;flex:1}
.the-gia li{padding:7px 0;font-size:14px;color:#374151;display:flex;align-items:center;gap:8px}
.the-gia li svg{color:var(--xanh);flex-shrink:0}
.the-gia .nut-mua{width:100%;padding:12px;border:0;border-radius:10px;font-size:15px;font-weight:700;
  cursor:pointer;background:linear-gradient(135deg,#7c3aed,#5b21b6);color:#fff;transition:.2s}
.the-gia .nut-mua:hover{filter:brightness(1.1);transform:translateY(-2px)}
.modal-hop label{display:block;font-size:13px;margin:12px 0 6px;color:#374151}
.modal-hop input{width:100%;padding:11px 12px;border:1px solid var(--xam-vien);border-radius:9px;font-size:15px;outline:none}
.modal-hop input:focus{border-color:var(--tim);box-shadow:0 0 0 3px var(--tim-nhat)}

/* Toast thông báo */
#toast-area{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:500;
  display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none}
.toast{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;padding:14px 22px;border-radius:12px;
  font-size:15px;font-weight:600;box-shadow:0 12px 34px rgba(22,163,74,.35);opacity:0;
  transform:translateY(20px);transition:opacity .3s, transform .3s;max-width:90vw;text-align:center}
.toast.hien{opacity:1;transform:none}

/* Trang giới thiệu (landing) */
.canh-giua{text-align:center}
.landing-top{background:linear-gradient(135deg,#7c3aed,#5b21b6);color:#fff;padding-bottom:8px}
.landing-nav{display:flex;align-items:center;justify-content:space-between;padding:16px 26px;max-width:1100px;margin:0 auto}
.landing-nav .logo{font-weight:800;font-size:19px;color:#fff}
.landing-nav-nut{display:flex;gap:10px}
.nut-header{color:#fff;border:1px solid rgba(255,255,255,.45);padding:9px 18px;border-radius:9px;font-size:14px;font-weight:600}
.nut-header:hover{background:rgba(255,255,255,.15);text-decoration:none}
.nut-header-dac{background:#fff;color:var(--tim-dam);border-color:#fff}
.nut-header-dac:hover{background:var(--tim-nhat);text-decoration:none}
.hero-lon{text-align:center;padding:54px 24px 64px;max-width:760px;margin:0 auto}
.hero-lon h1{font-size:34px;margin:0 0 14px;color:#fff;line-height:1.2}
.hero-lon p{margin:0 auto 22px;max-width:620px;opacity:.93;font-size:16px}
.hero-lon .hero-stats{justify-content:center;margin-bottom:28px}
.nut-kham-pha{display:inline-block;background:#fff;color:var(--tim-dam);font-weight:800;font-size:16px;
  padding:15px 36px;border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.22);transition:.2s}
.nut-kham-pha:hover{transform:translateY(-3px);text-decoration:none;box-shadow:0 16px 40px rgba(0,0,0,.3)}
@media (max-width:560px){ .hero-lon h1{font-size:26px} }
