/* Kehadiran NextGen v2 - Modern Glassmorphism + Bento Design */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;700&display=swap');
:root{
  --bg: #0a0f1e;
  --bg-2:#0f172a;
  --card: rgba(255,255,255,0.06);
  --card-border: rgba(255,255,255,0.08);
  --primary:#06b6d4;
  --primary-2:#0ea5e9;
  --accent:#f59e0b;
  --success:#10b981;
  --danger:#ef4444;
  --text:#e2e8f0;
  --muted:#94a3b8;
  --radius:16px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background: radial-gradient(1200px 600px at 20% -10%, rgba(6,182,214,0.15), transparent), radial-gradient(900px 500px at 90% 10%, rgba(245,158,11,0.12), transparent), var(--bg); color:var(--text); font-family:'Plus Jakarta Sans', system-ui, -apple-system, Segoe UI, Roboto, sans-serif; min-height:100vh}
a{color:inherit}
.glass{ background: var(--card); backdrop-filter: blur(16px) saturate(140%); -webkit-backdrop-filter: blur(16px) saturate(140%); border:1px solid var(--card-border); border-radius: var(--radius); }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 18px; border-radius:999px; border:0; font-weight:600; cursor:pointer; transition: all .2s; text-decoration:none; font-size:14px; letter-spacing:.2px }
.btn-primary{ background: linear-gradient(135deg, var(--primary), var(--primary-2)); color:#001018; box-shadow: 0 8px 24px rgba(6,182,214,.3)}
.btn-primary:hover{ transform: translateY(-1px); box-shadow:0 12px 28px rgba(6,182,214,.4)}
.btn-ghost{ background: rgba(255,255,255,.06); color:var(--text); border:1px solid var(--card-border)}
.btn-ghost:hover{ background: rgba(255,255,255,.1)}
.btn-danger{ background: linear-gradient(135deg, #ef4444, #dc2626); color:white}
.input, select, textarea{ width:100%; padding:12px 14px; border-radius:12px; border:1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.06); color:var(--text); outline:none; transition:.2s}
.input::placeholder{ color:#64748b; opacity:1; }
select{ color-scheme: dark; cursor:pointer; }
select option{ background:#0f172a; color:#e2e8f0; }
select option:checked, select option:hover{ background:#1e293b; color:#ffffff; }
select:invalid{ color:var(--muted); }
.input:focus, select:focus{ border-color: var(--primary); box-shadow:0 0 0 3px rgba(6,182,214,.15); background: rgba(255,255,255,.08)}
.layout{ display:flex; min-height:100vh}
.sidebar{ width:280px; padding:24px 16px; position:sticky; top:0; height:100vh; display:flex; flex-direction:column; gap:16px; background: rgba(10,15,30,.6); backdrop-filter: blur(20px); border-right:1px solid var(--card-border)}
.sidebar-brand{ display:flex; align-items:center; gap:12px; padding:8px 8px 16px; border-bottom:1px solid var(--card-border)}
.sidebar-logo{ width:44px; height:44px; border-radius:12px; background: linear-gradient(135deg, var(--primary), var(--accent)); display:grid; place-items:center; font-weight:800; color:#001018; font-family:'Space Grotesk'}
.nav{ display:flex; flex-direction:column; gap:6px; margin-top:8px}
.nav a{ display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:12px; text-decoration:none; color:var(--muted); font-weight:500; transition:.2s; border:1px solid transparent}
.nav a.active, .nav a:hover{ background: rgba(6,182,214,.12); color:var(--text); border-color: rgba(6,182,214,.18)}
.nav a.active{ box-shadow: inset 0 0 0 1px rgba(6,182,214,.15)}
.content{ flex:1; padding:28px; max-width:1400px; margin:0 auto; width:100%}
.topbar{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; flex-wrap:wrap}
.bento{ display:grid; grid-template-columns: repeat(12, 1fr); gap:16px}
.bento-4{ grid-column: span 4}
.bento-5{ grid-column: span 5}
.bento-6{ grid-column: span 6}
.bento-7{ grid-column: span 7}
.bento-8{ grid-column: span 8}
.bento-12{ grid-column: span 12}
.stat{ padding:20px; position:relative; overflow:hidden}
.stat::after{ content:""; position:absolute; inset:auto -20% -40% auto; width:180px; height:180px; background: radial-gradient(circle, rgba(6,182,214,.15), transparent 70%); pointer-events:none}
.stat-value{ font-family:'Space Grotesk'; font-size:2.2rem; font-weight:700; line-height:1}
.card{ padding:20px}
.table-wrap{ overflow:auto; border-radius:16px; border:1px solid var(--card-border)}
table{ width:100%; border-collapse:separate; border-spacing:0; background: rgba(255,255,255,.02)}
th, td{ padding:14px 12px; text-align:left; border-bottom:1px solid rgba(255,255,255,.06)}
th{ font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); background: rgba(255,255,255,.04); position:sticky; top:0}
tr:hover td{ background: rgba(255,255,255,.03)}
.badge{ display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius:999px; font-size:12px; font-weight:600; border:1px solid rgba(255,255,255,.1)}
.badge-success{ background: rgba(16,185,129,.15); color:#6ee7b7; border-color: rgba(16,185,129,.25)}
.badge-warn{ background: rgba(245,158,11,.15); color:#fcd34d; border-color: rgba(245,158,11,.25)}
.badge-danger{ background: rgba(239,68,68,.15); color:#fca5a5; border-color: rgba(239,68,68,.25)}
.qr-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap:16px}
.qr-card{ text-align:center; padding:16px; background: white; color:#0f172a; border-radius:16px}
.qr-card .qr-box{ display:flex; justify-content:center; margin:10px 0}
.toast{ position:fixed; inset:auto 16px 16px auto; padding:14px 18px; border-radius:12px; background:#0f172a; color:white; border:1px solid rgba(255,255,255,.1); box-shadow:0 10px 30px rgba(0,0,0,.4); z-index:9999; display:none}
.progress{ height:8px; border-radius:999px; background: rgba(255,255,255,.08); overflow:hidden}
.progress > div{ height:100%; background: linear-gradient(90deg, var(--primary), var(--success)); border-radius:999px; transition: width .6s}
@media (max-width: 900px){
  .layout{ flex-direction:column}
  .sidebar{ width:100%; height:auto; position:relative; flex-direction:row; flex-wrap:wrap; align-items:center; padding:12px 16px}
  .sidebar nav{ flex:1}
  .nav{ flex-direction:row; overflow:auto; white-space:nowrap}
  .content{ padding:16px}
  .bento-4,.bento-5,.bento-6,.bento-7,.bento-8{ grid-column: span 12}
}
@media (max-width: 640px){
  .sidebar-brand p{ display:none}
  .topbar{ flex-direction:column; align-items:stretch}
}

/* ===== Commercial landing (public) ===== */
.lp-nav{display:flex;gap:4px;align-items:center}
.lp-nav a{color:var(--muted);text-decoration:none;font-size:13px;font-weight:600;padding:8px 12px;border-radius:999px}
.lp-nav a:hover{color:var(--text);background:rgba(255,255,255,.06)}
.lp-sec{width:100%;max-width:1080px;margin:0 auto;padding:34px 14px 6px}
.lp-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:2px;color:var(--primary);border:1px solid rgba(6,182,214,.3);background:rgba(6,182,214,.07);padding:6px 14px;border-radius:999px}
.lp-h2{font-family:'Space Grotesk';font-size:clamp(20px,5vw,28px);margin:12px 0 6px;text-align:center}
.lp-sub{color:var(--muted);font-size:14px;text-align:center;max-width:640px;margin:0 auto;line-height:1.6}
.lp-stats{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.lp-stat{background:var(--card);border:1px solid var(--card-border);border-radius:14px;padding:10px 20px;text-align:center;backdrop-filter:blur(8px)}
.lp-stat b{display:block;font-family:'Space Grotesk';font-size:1.25rem}
.lp-stat span{font-size:11px;letter-spacing:1px;color:var(--muted);text-transform:uppercase}
.lp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}
.lp-feat{padding:20px;border-radius:16px}
.lp-feat .fi{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:1.3rem;background:rgba(6,182,214,.12);border:1px solid rgba(6,182,214,.25);margin-bottom:12px}
.lp-feat h3{margin:0 0 6px;font-size:15px;font-family:'Space Grotesk'}
.lp-feat p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}
.lp-price{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px;align-items:stretch}
.lp-plan{padding:22px;border-radius:18px;display:flex;flex-direction:column;gap:12px;position:relative}
.lp-plan.pop{border-color:rgba(6,182,214,.5);box-shadow:0 0 32px rgba(6,182,214,.15)}
.lp-plan .tag{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#001018;font-size:11px;font-weight:800;letter-spacing:1px;padding:4px 14px;border-radius:999px;white-space:nowrap}
.lp-plan h3{margin:0;font-size:15px;font-family:'Space Grotesk'}
.lp-plan .rm{font-family:'Space Grotesk';font-size:2rem;font-weight:700}
.lp-plan .rm small{font-size:12px;color:var(--muted);font-weight:400}
.lp-plan ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--muted)}
.lp-plan ul li::before{content:"✓ ";color:var(--success);font-weight:700}
.lp-cta{text-align:center;padding:36px 14px 8px}
.lp-foot{text-align:center;color:var(--muted);font-size:12px;padding:22px 14px calc(22px + env(safe-area-inset-bottom));border-top:1px solid var(--card-border);margin-top:26px}
.lp-foot b{color:var(--text)}
.lp-foot nav{display:flex;gap:16px;justify-content:center;margin-bottom:10px;flex-wrap:wrap}
.lp-foot nav a{color:var(--muted);text-decoration:none;font-size:12px}
.lp-foot nav a:hover{color:var(--text)}
@media(max-width:820px){.lp-grid,.lp-price{grid-template-columns:1fr;max-width:480px;margin-left:auto;margin-right:auto}}
@media(max-width:560px){.lp-nav{display:none}}
