:root{
  --bg:#0b0f17;
  --panel:#0f1623;
  --panel2:#111b2b;
  --border:rgba(255,255,255,.08);
  --text:rgba(255,255,255,.92);
  --muted:rgba(255,255,255,.60);
  --accent:#7c3aed;
  --accentSoft:rgba(124,58,237,.18);
  --shadow:0 14px 46px rgba(0,0,0,.40);
  --radius:18px;
  --radius2:24px;
  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:var(--font);background:radial-gradient(1000px 600px at 20% -10%, rgba(124,58,237,.18), transparent 55%), radial-gradient(900px 520px at 90% 10%, rgba(59,130,246,.10), transparent 55%), var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}
.app{display:flex;min-height:100vh}
.sidebar{
  width:270px; padding:18px; border-right:1px solid var(--border);
  background:rgba(15,22,35,.75); backdrop-filter: blur(14px);
  position:sticky; top:0; height:100vh;
}
.brand{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.logo{
  width:44px;height:44px;border-radius:14px;
  background:linear-gradient(135deg, rgba(124,58,237,.9), rgba(236,72,153,.35));
  display:grid;place-items:center;font-weight:800;box-shadow:var(--shadow)
}
.brandText .name{font-weight:700}
.muted{color:var(--muted)}
.small{font-size:12px}
.nav{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.navItem{
  padding:10px 12px;border-radius:12px;border:1px solid transparent;
  color:rgba(255,255,255,.86); background:rgba(0,0,0,.10)
}
.navItem:hover{border-color:rgba(124,58,237,.35); background:rgba(0,0,0,.18)}
.navItem.active{border-color:rgba(124,58,237,.55); background:rgba(124,58,237,.12)}
.navSection{margin-top:12px;font-size:12px;color:rgba(255,255,255,.55);padding:6px 8px}
.sidebarFooter{position:absolute;left:18px;right:18px;bottom:18px}
.main{flex:1; padding:20px}
.topbar{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:14px}
h1{margin:0;font-size:22px}
.crumbs{margin-top:4px;font-size:12px;color:var(--muted)}
.content{display:flex;flex-direction:column;gap:14px}

.card{
  background:rgba(255,255,255,.035);
  border:1px solid var(--border);
  border-radius:var(--radius2);
  padding:16px;
  box-shadow:var(--shadow)
}
.cardTitle{font-weight:700;margin-bottom:10px}
.grid{display:grid;gap:14px;grid-template-columns:repeat(12,1fr)}
.grid .card:nth-child(1){grid-column:span 12}
.grid .card:nth-child(2){grid-column:span 6}
.grid .card:nth-child(3){grid-column:span 6}
@media (max-width: 900px){
  .sidebar{display:none}
  .grid .card:nth-child(2), .grid .card:nth-child(3){grid-column:span 12}
}
.btnRow{display:flex;flex-wrap:wrap;gap:10px}
.btn, .btnPrimary, .btnGhost{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 12px;border-radius:14px;border:1px solid var(--border);
  background:rgba(0,0,0,.15); color:var(--text); cursor:pointer
}
.btn:hover{border-color:rgba(124,58,237,.35)}
.btnPrimary{
  border-color:rgba(124,58,237,.45);
  background:linear-gradient(135deg, rgba(124,58,237,.95), rgba(124,58,237,.35));
  font-weight:700
}
.btnPrimary:hover{filter:brightness(1.05)}
.btnGhost{background:transparent}
.form{display:flex;flex-direction:column;gap:10px}
.formRow{display:flex;gap:10px;flex-wrap:wrap}
input, select{
  width:100%;
  padding:10px 12px;border-radius:14px;border:1px solid var(--border);
  background:rgba(5,8,12,.55); color:var(--text); outline:none
}
input:focus, select:focus{border-color:rgba(124,58,237,.55)}
label{font-size:12px;color:rgba(255,255,255,.70)}
.alert{
  padding:10px 12px;border-radius:14px;border:1px solid rgba(239,68,68,.35);
  background:rgba(239,68,68,.10); color:rgba(255,255,255,.9); margin-bottom:10px
}
.authWrap{min-height:100vh;display:grid;place-items:center;padding:18px}
.authCard{
  width:min(520px, 100%);
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border:1px solid var(--border);
  border-radius:24px;padding:18px;box-shadow:var(--shadow)
}
.authHeader{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.authLogo{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg, rgba(124,58,237,.9), rgba(236,72,153,.35));display:grid;place-items:center;font-weight:800}
.authTitle{font-weight:800;font-size:18px}
.pillRow{display:flex;gap:8px;flex-wrap:wrap}
.pill{font-size:12px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:rgba(0,0,0,.14)}
.table{display:flex;flex-direction:column;gap:8px}
.tHead,.tRow{display:grid;grid-template-columns:2fr 2fr .7fr .7fr .8fr 1.2fr;gap:10px;align-items:center}
.tHead{font-size:12px;color:var(--muted);padding:0 6px}
.tRow{padding:10px 6px;border:1px solid var(--border);border-radius:14px;background:rgba(0,0,0,.10)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}
.ok{color:#22c55e;font-weight:800}
.bad{color:#ef4444;font-weight:800}
.spacer{height:8px}


/* Page loader overlay */
.pageLoader{
  position:fixed; inset:0; z-index:999999;
  display:flex; flex-direction:column; gap:14px;
  align-items:center; justify-content:center;
  background:rgba(7,10,16,.72);
  backdrop-filter: blur(10px);
  opacity:0; pointer-events:none;
  transition: opacity .18s ease;
}
.pageLoader.show{opacity:1; pointer-events:auto;}
.spinner{
  width:56px; height:56px; border-radius:999px;
  border:3px solid rgba(255,255,255,.15);
  border-top-color: rgba(255,255,255,.85);
  animation: spin .8s linear infinite;
}
.loaderText{color:rgba(255,255,255,.78); font-size:13px;}
@keyframes spin { to { transform: rotate(360deg);} }

/* Idle modal */
.modal{position:fixed;inset:0;z-index:999998;display:flex;align-items:center;justify-content:center;
  background:rgba(7,10,16,.65);backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:opacity .18s ease}
.modal.show{opacity:1;pointer-events:auto}
.modalCard{width:min(520px,92vw);border-radius:24px;padding:18px;border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));box-shadow:0 18px 60px rgba(0,0,0,.45)}
.modalTitle{font-weight:800;font-size:18px;margin-bottom:8px}
textarea{width:100%;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:rgba(5,8,12,.55);color:rgba(255,255,255,.92);outline:none}

.grid2{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.grid2 .card:nth-child(1){grid-column:span 6}
.grid2 .card:nth-child(2){grid-column:span 6}
@media (max-width: 900px){.grid2 .card:nth-child(1),.grid2 .card:nth-child(2){grid-column:span 12}}
