body{
  margin:0;
  background:linear-gradient(135deg,#f4f7ff 0%,#fff4f6 40%,#f4fff8 100%);
  font-family:'Inter','Hind Siliguri',sans-serif;
  color:#1f2937;
}
a{text-decoration:none}
.app-shell{display:flex;min-height:100vh}
.sidebar{
  width:280px;background:linear-gradient(180deg,#1e1b4b 0%,#312e81 35%,#0f766e 100%);
  color:#fff;padding:24px 18px;position:sticky;top:0;height:100vh;overflow:auto
}
.brand-block{display:flex;gap:14px;align-items:center;margin-bottom:22px}
.brand-logo{
  width:54px;height:54px;border-radius:18px;background:linear-gradient(135deg,#f59e0b,#ef4444,#8b5cf6);
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;box-shadow:0 10px 25px rgba(0,0,0,.18)
}
.brand-block h1{font-size:1.2rem;margin:0;font-weight:800}
.brand-block p{margin:0;color:#dbeafe;font-size:.86rem}
.menu{display:flex;flex-direction:column;gap:8px}
.menu a{
  color:#eef2ff;padding:12px 14px;border-radius:16px;font-weight:600;display:flex;gap:12px;align-items:center;
  transition:.2s;background:rgba(255,255,255,.06)
}
.menu a:hover,.menu a.active{background:#fff;color:#1e1b4b;transform:translateX(2px)}
.sidebar-card{
  margin-top:24px;padding:16px;border-radius:20px;background:rgba(255,255,255,.1);backdrop-filter:blur(10px)
}
.sidebar-card h6{margin-bottom:12px;font-weight:700}
.quick-btn{
  display:block;background:#fff;color:#111827;border-radius:14px;padding:10px 12px;margin-bottom:10px;font-weight:700
}
.main-content{flex:1;padding:24px 24px 14px}
.topbar{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  background:rgba(255,255,255,.8);backdrop-filter:blur(8px);padding:18px 22px;border-radius:24px;
  box-shadow:0 12px 35px rgba(148,163,184,.15);margin-bottom:22px
}
.topbar h2{font-size:1.5rem;font-weight:800;margin:0}
.user-pill{
  background:#fff;padding:10px 16px;border-radius:999px;font-weight:700;box-shadow:0 8px 18px rgba(15,23,42,.08)
}
.stat-card,.soft-card{
  border:none;border-radius:26px;box-shadow:0 16px 35px rgba(15,23,42,.08);overflow:hidden
}
.stat-card .card-body,.soft-card .card-body{padding:24px}
.grad-1{background:linear-gradient(135deg,#2563eb,#06b6d4);color:#fff}
.grad-2{background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff}
.grad-3{background:linear-gradient(135deg,#f97316,#ef4444);color:#fff}
.grad-4{background:linear-gradient(135deg,#7c3aed,#ec4899);color:#fff}
.icon-ball{
  width:54px;height:54px;border-radius:18px;background:rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;font-size:1.45rem
}
.table-wrap{
  background:#fff;border-radius:24px;padding:18px;box-shadow:0 16px 35px rgba(15,23,42,.08)
}
.table thead th{white-space:nowrap}
.table{--bs-table-bg:transparent}
.dataTables_wrapper .dataTables_filter input,.form-control,.form-select{
  border-radius:14px!important;padding:.72rem .9rem;border:1px solid #dbe3f0
}
.btn{border-radius:14px;font-weight:700}
.form-card{
  background:#fff;padding:24px;border-radius:24px;box-shadow:0 16px 35px rgba(15,23,42,.08)
}
.section-title{font-size:1.15rem;font-weight:800;margin-bottom:16px}
.badge-active,.badge-paid{background:#dcfce7;color:#166534;padding:.5rem .75rem;border-radius:999px}
.badge-hold{background:#fee2e2;color:#991b1b;padding:.5rem .75rem;border-radius:999px}
.badge-inactive{background:#e5e7eb;color:#374151;padding:.5rem .75rem;border-radius:999px}
.badge-due{background:#ffedd5;color:#c2410c;padding:.5rem .75rem;border-radius:999px}
.badge-soft{background:#ede9fe;color:#5b21b6;padding:.5rem .75rem;border-radius:999px}
.footer-note{padding:18px 0 8px;color:#6b7280;text-align:center}
.chart-box{
  background:#fff;border-radius:24px;padding:22px;box-shadow:0 16px 35px rgba(15,23,42,.08)
}
.filter-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.mini-note{color:#6b7280;font-size:.9rem}
.login-page{
  min-height:100vh;display:grid;place-items:center;
  background:linear-gradient(135deg,#0f172a,#1d4ed8,#0f766e)
}
.login-card{
  width:min(920px,94vw);display:grid;grid-template-columns:1.1fr .9fr;background:#fff;border-radius:30px;overflow:hidden;
  box-shadow:0 25px 70px rgba(0,0,0,.3)
}
.login-left{padding:42px;background:linear-gradient(135deg,#312e81,#0f766e);color:#fff}
.login-right{padding:38px}
.login-badges span{
  display:inline-block;background:rgba(255,255,255,.13);padding:9px 14px;border-radius:999px;margin:6px 6px 0 0;font-weight:600
}
.report-link{
  display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:#fff;border-radius:18px;
  color:#111827;box-shadow:0 12px 25px rgba(15,23,42,.08);margin-bottom:12px
}
@media(max-width:992px){
  .sidebar{position:relative;height:auto;width:100%}
  .app-shell{display:block}
  .login-card{grid-template-columns:1fr}
}
