/* Trang quản trị c2b-vps: màu, chữ và bố cục theo demo đã duyệt (_bmad-output/design-demo/vps-admin-demo.html). */
:root{
  --bg:#06121a;--bg2:#0b2230;--ink:#f6f0e2;--muted:#9fb6c1;--line:#25495b;--card:#0f2a38;--card2:#143546;
  --red:#da251d;--gold:#ffcd00;--amber:#ff9d00;--green:#35d07f;--teal:#23a095;--blue:#8ab4f8;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%}
body{font-family:"Segoe UI",Roboto,"Helvetica Neue",Arial,system-ui,sans-serif;color:var(--ink);font-size:15px;
  background:radial-gradient(1100px 700px at 62% -10%,#10384d 0%,#06121a 62%) fixed;background-color:var(--bg);line-height:1.45}
button,input,select{font:inherit;color:inherit}
button{border:0;background:none;cursor:pointer}
code,.mono{font-family:Consolas,Menlo,monospace}
a{color:var(--gold)}
h1{font-size:22px;margin-bottom:4px}
.sub{color:var(--muted);margin-bottom:16px}
.muted{color:var(--muted)}
.small{font-size:13px}
.mt{margin-top:12px}
.mt0{margin-top:0}
.nowrap{white-space:nowrap}

/* khung */
.admin{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.side{border-right:1px solid #12313f;padding:16px 12px;background:#071822}
.side .logo{font-weight:800;font-size:16px;padding:4px 8px 14px}
.side .logo small{display:block;color:var(--muted);font-weight:400;font-size:12.5px}
.nav{display:grid;gap:4px}
.nav a{text-align:left;padding:10px 12px;border-radius:10px;color:#cfe0e8;display:flex;justify-content:space-between;align-items:center;gap:6px;text-decoration:none}
.nav a:hover{background:#0f2a38}
.nav a.on{background:#143546;color:var(--gold);font-weight:700}
.nav a.soon{color:#5f7b88}
.nav .sep{height:1px;background:#12313f;margin:8px 4px}
.who{margin-top:18px;padding:10px 12px;border:1px solid #17394a;border-radius:12px;font-size:13px;color:var(--muted)}
.who form{margin-top:8px}
.main{padding:20px 22px;min-width:0}
.menu-toggle{display:none}
.btn.burger{display:none}

/* thẻ, nút, ô */
.card{background:var(--card);border:1px solid #1b4256;border-radius:16px;padding:16px 18px}
.card h2{font-size:18px;margin-bottom:10px}
.card h3,.h3{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 0 8px}
.card.tight{padding:6px 8px;overflow-x:auto}
.card.narrow{max-width:720px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.grid2.mt0{margin-top:0}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.stat{background:var(--card);border:1px solid #1b4256;border-radius:14px;padding:12px 14px}
.stat .n{font-size:26px;font-weight:800}
.stat .l{color:var(--muted);font-size:13px}
.ok{color:var(--green)}.bad{color:#ff8a80}.wait{color:var(--gold)}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.btn{display:inline-block;padding:9px 16px;border-radius:10px;background:var(--card2);border:1px solid #2d6a86;font-weight:600;color:var(--ink);text-decoration:none;cursor:pointer}
.btn:hover{border-color:var(--gold)}
.btn.gold{background:linear-gradient(180deg,#ffd84a,#ffb300);color:#2b1b00;border-color:#ffd84a}
.btn.sm{padding:5px 10px;font-size:13px;border-radius:8px}
.btn.full{width:100%}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.field{display:grid;gap:6px;margin-bottom:12px}
.field label{font-size:13px;color:var(--muted)}
.field input{background:#0a1d28;border:1px solid #2d6a86;border-radius:10px;padding:10px 12px;width:100%}
.big{font-family:Consolas,Menlo,monospace;font-size:20px;background:#0a1d28;border:2px dashed var(--gold);border-radius:12px;padding:12px 14px;word-break:break-all}
.big.masked{border-style:solid;border-color:#2d6a86;color:var(--muted)}
.pill{display:inline-block;font-size:12px;border-radius:999px;padding:2px 9px;font-weight:700;margin:2px 4px 2px 0}
.p-ok{background:#35d07f22;color:var(--green)}.p-gold{background:#ffcd0022;color:var(--gold)}.p-red{background:#da251d33;color:#ff8a80}.p-grey{background:#9fb6c122;color:var(--muted)}
.warn{background:#3a2a06;border:1px solid #a98a12;border-radius:12px;padding:10px 12px;color:#ffe9a8;font-size:13.5px}
.flash{border-radius:12px;padding:10px 12px;margin-bottom:12px;font-size:14px}
.flash.ok{background:#103a2a;border:1px solid var(--green);color:#bff3d6}
.flash.bad{background:#3a1210;border:1px solid #ff6a5f;color:#ffd3cf}
.soonbox{border:1px dashed #2d6a86;border-radius:14px;padding:18px;color:var(--muted)}
.steps{margin-left:18px;color:#cfe0e8;display:grid;gap:6px}
.text{color:#cfe0e8;font-size:13.5px}

/* bảng */
table.kv{width:100%;border-collapse:collapse;font-size:13.5px}
table.kv td{padding:6px 8px;border-bottom:1px solid #1b4256;vertical-align:top}
table.kv td:first-child{white-space:nowrap;color:var(--gold);font-family:Consolas,Menlo,monospace}
table.kv.plain td:first-child{font-family:inherit;color:var(--muted)}
table.kv td.keep{white-space:pre-wrap;overflow-wrap:anywhere}
table.kv td.mono{font-size:12px;word-break:break-all}
table.list{width:100%;border-collapse:collapse;font-size:14px}
table.list th{text-align:left;color:var(--muted);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;padding:8px;border-bottom:1px solid #1b4256}
table.list td{padding:10px 8px;border-bottom:1px solid #15384a;vertical-align:middle}
table.list tr.del td{opacity:.6}
table.list tr.go{cursor:pointer}
table.list tr:hover td{background:#0f2a3888}
table.list td.code{font-family:Consolas,Menlo,monospace;font-weight:700;width:56px}
table.list td.when{white-space:nowrap;width:120px}
table.list td.act{font-family:Consolas,Menlo,monospace;font-size:13px;white-space:nowrap}
.cellsub{color:var(--muted);font-size:12.5px}
a.rowlink{color:inherit;text-decoration:none}
a.rowlink:hover{color:var(--gold)}
.empty{padding:14px 8px;color:var(--muted)}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.filters select{background:#0a1d28;border:1px solid #2d6a86;border-radius:10px;padding:8px 10px}

/* chi tiết chuyện (ngăn kéo bên phải) */
.backdrop{position:fixed;inset:0;background:#0009;z-index:19}
.drawer{position:fixed;right:0;top:0;bottom:0;width:min(480px,100%);background:#0a1d28;border-left:1px solid #2d6a86;padding:18px;overflow:auto;z-index:20}
.drawer h2{font-size:18px;margin:12px 0 4px}
.drawer .warn{margin:8px 0}
.player{background:var(--card2);border:1px solid #2d6a86;border-radius:12px;padding:8px 10px;margin:8px 0}
.player .cap{font-size:13px;margin-bottom:6px;display:flex;justify-content:space-between;gap:8px;align-items:center}
.player audio{width:100%;display:block}

/* đăng nhập */
.login{max-width:380px;margin:60px auto;text-align:center;padding:0 16px}
.login .icon{font-size:40px}
.login .card{text-align:left}
.login .hint{color:var(--muted);font-size:12.5px;margin-top:10px}

.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#103a2a;border:1px solid var(--green);color:#bff3d6;padding:10px 16px;border-radius:12px;display:none;z-index:30}
.toast.on{display:block}
.offscreen{position:fixed;left:-9999px;top:0;opacity:0}

@media (max-width:860px){
  .admin{grid-template-columns:1fr}
  .side{display:none;border-right:0;border-bottom:1px solid #12313f}
  .menu-toggle:checked + .side{display:block}
  .btn.burger{display:inline-block;margin-bottom:10px}
  .grid2{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .main{padding:14px 16px}
  table.list .hide-sm{display:none}
  table.list td.act{white-space:normal;word-break:break-all}
}
@media (max-width:520px){
  table.list .hide-xs{display:none}
  table.list td,table.list th{padding:9px 6px}
}
