:root{
  --primary:#7C3AED;
  --primary-dark:#5B21B6;
  --primary-light:#A78BFA;
  --orange:#F97316;
  --red:#E53935;
  --yellow:#FDBB11;
  --green:#1E9E4E;
  --blue:#1E7FE0;
  --navy:#1E1B4B;
  --navy-2:#4C1D95;
  --ink:#1B2534;
  --muted:#5B6577;
  --bg:#FAFAFC;
  --card:#FFFFFF;
  --line:#E7E9F0;
  --radius:16px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{overflow-x:hidden;}
body{
  font-family:'Inter','Noto Sans Devanagari',sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
  min-height:100vh;
}
h1,h2,h3,h4{font-family:'Poppins','Noto Sans Devanagari',sans-serif;color:var(--navy);line-height:1.3;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}

/* ===== AUTH PAGES (login / register) ===== */
.auth-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
  background:
    radial-gradient(700px 400px at 85% -10%, rgba(124,58,237,.14), transparent),
    radial-gradient(600px 400px at -10% 110%, rgba(76,29,149,.10), transparent),
    var(--bg);
}
.auth-card{
  width:100%;max-width:440px;background:var(--card);border:1px solid var(--line);
  border-radius:20px;padding:36px 32px;box-shadow:0 30px 60px -30px rgba(11,37,69,.25);
}
.auth-logo{display:flex;justify-content:center;margin-bottom:18px;}
.auth-logo img{height:52px;width:auto;}
.auth-card h1{font-size:24px;text-align:center;margin-bottom:6px;}
.auth-sub{text-align:center;color:var(--muted);font-size:14px;margin-bottom:26px;}
.form-group{margin-bottom:16px;}
.form-group label{display:block;font-size:13.5px;font-weight:600;color:var(--navy);margin-bottom:6px;}
.form-control{
  width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;
  font-size:14.5px;font-family:inherit;color:var(--ink);background:#fff;transition:border-color .15s ease;
}
.form-control:focus{outline:none;border-color:var(--primary);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.type-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.type-choice label{
  border:1.5px solid var(--line);border-radius:10px;padding:12px;text-align:center;
  font-size:13.5px;font-weight:600;cursor:pointer;color:var(--muted);transition:all .15s ease;
}
.type-choice input{display:none;}
.type-choice input:checked + span{color:var(--primary);}
.type-choice label:has(input:checked){border-color:var(--primary);background:#F1E8FE;color:var(--primary);}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;
  padding:13px 20px;border-radius:10px;font-weight:700;font-size:15px;cursor:pointer;
  border:none;transition:transform .15s ease;
}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 8px 20px rgba(124,58,237,.32);}
.btn-primary:hover{transform:translateY(-2px);}
.auth-foot{text-align:center;font-size:14px;color:var(--muted);margin-top:20px;}
.auth-foot a{color:var(--primary);font-weight:700;}
.alert{padding:12px 16px;border-radius:10px;font-size:13.5px;margin-bottom:18px;}
.alert-error{background:#FFF1F1;color:#B42318;border:1px solid #FCA5A5;}
.alert-success{background:#F0FDF4;color:#0F7B3D;border:1px solid #86EFAC;}
.back-home{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13.5px;margin-bottom:14px;}
.back-home:hover{color:var(--primary);}

/* ===== DASHBOARD LAYOUT ===== */
.dash-body{background:var(--bg);}
.dash-header{
  position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;padding:12px 22px;
}
.dash-brand{display:flex;align-items:center;gap:10px;}
.dash-brand img{height:38px;}
.dash-brand span{font-family:'Poppins',sans-serif;font-weight:700;color:var(--navy);font-size:16px;}
.dash-user{display:flex;align-items:center;gap:12px;}
.dash-badge{
  font-size:12px;font-weight:700;padding:5px 12px;border-radius:20px;background:#F1E8FE;color:var(--primary);
}
.dash-logout{
  background:var(--red);color:#fff;padding:9px 16px;border-radius:9px;font-size:13.5px;font-weight:700;
}
.dash-logout:hover{opacity:.9;}
.dash-shell{display:flex;min-height:calc(100vh - 62px);}
.dash-sidebar{
  width:230px;flex-shrink:0;background:var(--navy);color:#c7d6ee;padding:22px 14px;
}
.dash-sidebar a{
  display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:9px;font-size:14px;font-weight:600;
  color:#c7d6ee;margin-bottom:4px;
}
.dash-sidebar a:hover, .dash-sidebar a.active{background:rgba(255,255,255,.08);color:#fff;}
.dash-main{flex:1;padding:28px;min-width:0;}
.dash-welcome{margin-bottom:22px;}
.dash-welcome h2{font-size:24px;margin-bottom:4px;}
.dash-welcome p{color:var(--muted);font-size:14.5px;}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px;}
.stat-card{
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;
}
.stat-card .ic{font-size:22px;margin-bottom:8px;}
.stat-card strong{display:block;font-family:'Poppins',sans-serif;font-size:24px;color:var(--navy);}
.stat-card span{font-size:13px;color:var(--muted);}
.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:22px;}
.panel h3{font-size:17px;margin-bottom:14px;}
.data-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.data-table th,.data-table td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);}
.data-table th{color:var(--muted);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.03em;}
.badge{padding:4px 10px;border-radius:20px;font-size:12px;font-weight:700;}
.badge-admin{background:#FFF1F1;color:#B42318;}
.badge-user{background:#EFF6FF;color:#1E7FE0;}
.badge-service{background:#F0FDF4;color:#0F7B3D;}
.badge-active{background:#F0FDF4;color:#0F7B3D;}
.badge-inactive{background:#F5F5F5;color:#777;}
.hamburger-dash{display:none;background:var(--navy);color:#fff;border:none;width:36px;height:36px;border-radius:8px;font-size:16px;}

@media(max-width:900px){
  .dash-shell{position:relative;}
  .dash-sidebar{
    position:fixed;left:-240px;top:62px;bottom:0;z-index:45;transition:left .2s ease;
  }
  .dash-sidebar.open{left:0;}
  .hamburger-dash{display:block;}
  .stat-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:600px){
  .auth-card{padding:26px 20px;}
  .form-row{grid-template-columns:1fr;}
  .type-choice{grid-template-columns:1fr;}
  .dash-main{padding:18px;}
  .stat-grid{grid-template-columns:1fr;}
  .dash-header{padding:10px 14px;}
  .dash-brand span{font-size:14px;}
}
