/* ================================================================
   SusthaBhumi BD — Light, Colorful, Modern, Creative, Professional
   ================================================================ */

:root{
  /* Light airy palette with vibrant accent gradients */
  --bg: #f5f9ff;
  --bg-2: #ffffff;
  --surface: #ffffff;
  --surface-2: #f8fbff;
  --ink: #0f172a;
  --ink-soft: #334155;
  --muted: #64748b;
  --line: #e2e8f0;
  --line-strong: #cbd5e1;

  --teal:#0d9488;
  --teal-2:#14b8a6;
  --teal-soft:#ccfbf1;
  --orange:#f97316;
  --orange-soft:#ffedd5;
  --red:#ef4444;
  --red-soft:#fee2e2;
  --amber:#f59e0b;
  --amber-soft:#fef3c7;
  --green:#10b981;
  --green-soft:#d1fae5;
  --blue:#3b82f6;
  --blue-soft:#dbeafe;
  --violet:#8b5cf6;
  --violet-soft:#ede9fe;
  --pink:#ec4899;
  --pink-soft:#fce7f3;

  --grad-hero: linear-gradient(135deg,#14b8a6 0%, #0ea5e9 50%, #6366f1 100%);
  --grad-sun: linear-gradient(135deg,#f97316,#f59e0b);
  --grad-leaf: linear-gradient(135deg,#10b981,#14b8a6);
  --grad-fire: linear-gradient(135deg,#ef4444,#f97316);
  --grad-air: linear-gradient(135deg,#8b5cf6,#ec4899);

  --shadow-sm:0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.05);
  --shadow-md:0 4px 14px rgba(15,23,42,.08), 0 2px 4px rgba(15,23,42,.05);
  --shadow-lg:0 18px 40px rgba(15,23,42,.13), 0 4px 10px rgba(15,23,42,.06);
  --radius:14px;
  --radius-lg:20px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Inter','Hind Siliguri',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:
    radial-gradient(1000px 500px at 80% -10%, #ccfbf1 0%, transparent 60%),
    radial-gradient(900px 500px at -10% 10%, #dbeafe 0%, transparent 55%),
    radial-gradient(800px 400px at 90% 110%, #ede9fe 0%, transparent 55%),
    var(--bg);
  color:var(--ink);
  line-height:1.55;
  min-height:100vh;
}
a{color:var(--teal);text-decoration:none}
a:hover{color:#0f766e;text-decoration:underline}
img{max-width:100%}

/* ---------- TOP NAV ---------- */
.nav{
  position:sticky;top:0;z-index:50;
  backdrop-filter:blur(14px);
  background:rgba(255,255,255,.78);
  border-bottom:1px solid var(--line);
}
.nav-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:10px 20px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;color:var(--ink);letter-spacing:.2px}
.brand-logo{
  width:36px;height:36px;border-radius:12px;
  background:var(--grad-hero);
  display:grid;place-items:center;color:#fff;font-size:18px;
  box-shadow:0 6px 16px rgba(20,184,166,.35);
  position:relative;overflow:hidden;
}
.brand-logo::after{
  content:"";position:absolute;inset:2px;border-radius:10px;
  background:rgba(255,255,255,.16);
}
.brand-bn{font-family:'Hind Siliguri';font-weight:600;font-size:14px;color:var(--teal);margin-left:6px}
.brand-tag{font-size:12px;color:var(--muted);margin-left:12px;padding-left:12px;border-left:1px solid var(--line)}
.nav-links{display:flex;gap:6px;margin-left:18px;flex-wrap:wrap}
.nav-links a{
  padding:8px 12px;border-radius:10px;color:var(--ink-soft);font-size:13px;font-weight:500;
  transition:.15s;
}
.nav-links a:hover{background:var(--teal-soft);color:var(--teal);text-decoration:none}
.nav-right{margin-left:auto;display:flex;gap:8px;align-items:center}
.pill{
  padding:6px 12px;border-radius:999px;font-size:11px;font-weight:600;
  background:#fff;border:1px solid var(--line);color:var(--ink-soft);
  display:inline-flex;gap:6px;align-items:center;
}
.pill .dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.pill.lang{cursor:pointer}
.btn{
  appearance:none;border:0;cursor:pointer;padding:9px 14px;border-radius:10px;
  font-weight:600;font-size:13px;transition:.15s;display:inline-flex;gap:8px;align-items:center;
}
.btn-primary{background:var(--grad-hero);color:#fff;box-shadow:0 6px 16px rgba(20,184,166,.32)}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(20,184,166,.38);color:#fff;text-decoration:none}
.btn-ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn-ghost:hover{background:var(--surface-2);text-decoration:none;color:var(--ink)}
.btn-warn{background:var(--grad-sun);color:#fff}
.btn-danger{background:var(--grad-fire);color:#fff}

/* ---------- HERO ---------- */
.hero{
  max-width:1400px;margin:0 auto;padding:32px 20px 16px;
  display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:center;
}
.hero-card{
  background:var(--grad-hero);color:#fff;border-radius:var(--radius-lg);
  padding:30px;position:relative;overflow:hidden;box-shadow:var(--shadow-lg);
}
.hero-card::before{
  content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;border-radius:50%;
  background:rgba(255,255,255,.12);
}
.hero-card::after{
  content:"";position:absolute;right:-40px;bottom:-120px;width:260px;height:260px;border-radius:50%;
  background:rgba(255,255,255,.08);
}
.hero-card h1{margin:0 0 10px;font-size:32px;line-height:1.15;font-weight:800;letter-spacing:-.5px}
.hero-card .bn{font-family:'Hind Siliguri';font-weight:700;font-size:18px;color:#e0f2fe;margin:4px 0 14px}
.hero-card p{margin:0 0 18px;color:#e0f2fe;font-size:14px}
.hero-stats{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.hero-stat{background:rgba(255,255,255,.14);padding:10px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(8px)}
.hero-stat b{font-size:20px;display:block}
.hero-stat span{font-size:11px;color:#e0f2fe;text-transform:uppercase;letter-spacing:.08em}

.hero-side{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.minicard{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;
  box-shadow:var(--shadow-sm);transition:.2s;position:relative;overflow:hidden;
}
.minicard:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.minicard h4{margin:0 0 4px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.minicard .v{font-size:22px;font-weight:800}
.minicard .d{font-size:11px;color:var(--muted);margin-top:2px}
.minicard .emoji{position:absolute;right:10px;top:10px;font-size:22px;opacity:.9}
.minicard.danger{background:linear-gradient(180deg,#fff 0%,var(--red-soft) 100%);border-color:#fecaca}
.minicard.danger .v{color:var(--red)}
.minicard.warn{background:linear-gradient(180deg,#fff 0%,var(--amber-soft) 100%);border-color:#fde68a}
.minicard.warn .v{color:var(--amber)}
.minicard.ok{background:linear-gradient(180deg,#fff 0%,var(--green-soft) 100%);border-color:#a7f3d0}
.minicard.ok .v{color:var(--green)}
.minicard.accent{background:linear-gradient(180deg,#fff 0%,var(--teal-soft) 100%);border-color:#99f6e4}
.minicard.accent .v{color:var(--teal)}
.minicard.blue{background:linear-gradient(180deg,#fff 0%,var(--blue-soft) 100%);border-color:#bfdbfe}
.minicard.blue .v{color:var(--blue)}
.minicard.violet{background:linear-gradient(180deg,#fff 0%,var(--violet-soft) 100%);border-color:#ddd6fe}
.minicard.violet .v{color:var(--violet)}

/* ---------- MODULES GRID ---------- */
.section{max-width:1400px;margin:18px auto;padding:0 20px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:18px 0 10px}
.section-head h2{margin:0;font-size:18px;font-weight:800;letter-spacing:.2px}
.section-head p{margin:0;color:var(--muted);font-size:13px}
.modules{
  display:grid;grid-template-columns:repeat(6,1fr);gap:12px;
}
.mod{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:14px;display:flex;gap:10px;align-items:flex-start;cursor:pointer;
  transition:.2s;box-shadow:var(--shadow-sm);
  position:relative;overflow:hidden;
}
.mod:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:transparent}
.mod .ico{
  width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px;flex:0 0 40px;
}
.mod h3{margin:0 0 2px;font-size:13px;font-weight:700}
.mod p{margin:0;color:var(--muted);font-size:11px;line-height:1.35}
.mod.m1 .ico{background:var(--grad-hero);color:#fff}
.mod.m2 .ico{background:var(--grad-fire);color:#fff}
.mod.m3 .ico{background:var(--grad-sun);color:#fff}
.mod.m4 .ico{background:var(--grad-air);color:#fff}
.mod.m5 .ico{background:linear-gradient(135deg,#0ea5e9,#14b8a6);color:#fff}
.mod.m6 .ico{background:linear-gradient(135deg,#ec4899,#f43f5e);color:#fff}
.mod.m7 .ico{background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff}
.mod.m8 .ico{background:linear-gradient(135deg,#10b981,#0d9488);color:#fff}
.mod.m9 .ico{background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff}
.mod.m10 .ico{background:linear-gradient(135deg,#6366f1,#ec4899);color:#fff}
.mod.m11 .ico{background:linear-gradient(135deg,#0ea5e9,#22c55e);color:#fff}
.mod.m12 .ico{background:linear-gradient(135deg,#f97316,#eab308);color:#fff}

/* ---------- MAIN DASHBOARD GRID ---------- */
.dash{
  max-width:1400px;margin:18px auto;padding:0 20px 40px;
  display:grid;grid-template-columns:1fr 360px;gap:16px;
}
.panel{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);overflow:hidden;
}
.panel-head{
  padding:14px 18px;border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:10px;justify-content:space-between;
  background:linear-gradient(180deg,#ffffff, #f8fbff);
}
.panel-head h3{margin:0;font-size:14px;font-weight:700}
.panel-head .chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{
  padding:6px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);
  font-size:11px;color:var(--ink-soft);cursor:pointer;display:inline-flex;gap:6px;align-items:center;
  transition:.15s;user-select:none;
}
.chip:hover{border-color:var(--teal)}
.chip.active{background:var(--teal-soft);border-color:var(--teal);color:var(--teal);font-weight:600}
.chip .sw{width:8px;height:8px;border-radius:3px}
.chip.danger{background:var(--red-soft);border-color:#fecaca;color:var(--red)}
.chip.warn{background:var(--amber-soft);border-color:#fde68a;color:#b45309}
.chip.ok{background:var(--green-soft);border-color:#a7f3d0;color:#047857}

#map{
  width:100%;height:640px;background:linear-gradient(180deg,#e0f2fe,#f0fdfa);
}
.map-legend{
  position:absolute;bottom:14px;left:14px;background:rgba(255,255,255,.95);
  border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:11px;
  box-shadow:var(--shadow-md);max-width:240px;
}
.map-legend h4{margin:0 0 6px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.lg-scale{height:8px;border-radius:4px;background:linear-gradient(90deg,#bae6fd,#14b8a6,#facc15,#f97316,#ef4444);margin:6px 0}
.lg-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}
.map-wrap{position:relative}

.chart-box{padding:14px 18px 18px;background:#fff;border-radius:var(--radius);border:1px solid var(--line);margin-bottom:12px}
.chart-box h4{margin:0 0 8px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.chart-box canvas{width:100% !important;height:200px !important}

/* ---------- RIGHT ALERTS ---------- */
.alerts{padding:12px}
.alert{
  background:var(--surface-2);border:1px solid var(--line);border-left-width:4px;border-radius:12px;
  padding:10px 12px;margin-bottom:8px;font-size:12px;transition:.15s;
}
.alert:hover{box-shadow:var(--shadow-sm)}
.alert.h{border-left-color:var(--red);background:linear-gradient(180deg,#fff,#fff1f2)}
.alert.m{border-left-color:var(--amber);background:linear-gradient(180deg,#fff,#fffbeb)}
.alert.i{border-left-color:var(--blue);background:linear-gradient(180deg,#fff,#eff6ff)}
.alert .t{font-weight:700;margin-bottom:3px;display:flex;justify-content:space-between;align-items:center;gap:6px}
.alert .badge{padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase}
.alert.h .badge{background:var(--red-soft);color:var(--red)}
.alert.m .badge{background:var(--amber-soft);color:#b45309}
.alert.i .badge{background:var(--blue-soft);color:var(--blue)}
.alert .d{color:var(--ink-soft);font-size:11.5px;line-height:1.45}
.alert .bn{color:var(--muted);font-family:'Hind Siliguri';font-size:11px;margin-top:3px}

/* ---------- FOOTER ---------- */
footer{
  background:#0b3250;color:#cbd5e1;padding:26px 20px;margin-top:30px;
}
.foot{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:24px}
.foot h4{color:#fff;margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.foot p,.foot a{color:#94a3b8;font-size:13px;display:block;margin:3px 0}
.foot a:hover{color:#5eead4}
.foot .brand-bn{font-family:'Hind Siliguri';font-weight:700;color:#5eead4;font-size:18px;margin-bottom:6px}
.foot-bottom{max-width:1400px;margin:18px auto 0;padding-top:14px;border-top:1px solid #1d4a6e;
  font-size:11px;color:#64748b;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}

/* ---------- AUTH (login/signup) ---------- */
.auth-wrap{min-height:calc(100vh - 80px);display:grid;place-items:center;padding:40px 20px}
.auth-card{
  background:#fff;border-radius:var(--radius-lg);padding:32px;
  box-shadow:var(--shadow-lg);border:1px solid var(--line);
  width:100%;max-width:460px;position:relative;overflow:hidden;
}
.auth-card::before{
  content:"";position:absolute;top:-120px;right:-120px;width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,rgba(20,184,166,.18),transparent 70%);
}
.auth-card h2{margin:0 0 4px;font-size:24px;font-weight:800}
.auth-card .sub{color:var(--muted);margin:0 0 18px;font-size:13px}
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px;font-weight:600}
.form-group input{
  width:100%;padding:11px 13px;border-radius:10px;border:1px solid var(--line);
  background:var(--surface-2);font-size:14px;color:var(--ink);transition:.15s;font-family:inherit;
}
.form-group input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px rgba(20,184,166,.12);background:#fff}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.msg{padding:10px 12px;border-radius:10px;font-size:13px;margin-bottom:12px}
.msg.ok{background:var(--green-soft);color:#047857;border:1px solid #a7f3d0}
.msg.err{background:var(--red-soft);color:#b91c1c;border:1px solid #fecaca}
.msg.info{background:var(--blue-soft);color:#1d4ed8;border:1px solid #bfdbfe}
.help{font-size:12px;color:var(--muted);margin-top:8px}

/* ---------- ADMIN PANEL ---------- */
.admin-wrap{max-width:1400px;margin:20px auto;padding:0 20px;display:grid;grid-template-columns:240px 1fr;gap:18px}
.admin-side{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px;height:fit-content;box-shadow:var(--shadow-sm);position:sticky;top:80px}
.admin-side h4{margin:0 0 8px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding:0 8px}
.admin-side a{display:flex;gap:8px;align-items:center;padding:9px 12px;border-radius:10px;color:var(--ink-soft);font-size:13px;font-weight:500}
.admin-side a:hover{background:var(--teal-soft);color:var(--teal);text-decoration:none}
.admin-side a.active{background:var(--teal-soft);color:var(--teal);font-weight:700}
.admin-main{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-sm)}
.admin-main h2{margin:0 0 4px;font-size:22px;font-weight:800}
.admin-main .desc{color:var(--muted);margin:0 0 18px;font-size:13px}
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
table.tbl th,table.tbl td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}
table.tbl th{background:var(--surface-2);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
table.tbl tr:hover td{background:var(--surface-2)}
.badge-role{padding:3px 8px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase}
.badge-role.superadmin{background:linear-gradient(90deg,#14b8a6,#6366f1);color:#fff}
.badge-role.viewer{background:var(--blue-soft);color:var(--blue)}
.btn-sm{padding:5px 10px;font-size:11px;border-radius:8px;cursor:pointer}
.btn-sm.danger{background:var(--red-soft);color:var(--red);border:1px solid #fecaca}
.btn-sm.ok{background:var(--green-soft);color:var(--green);border:1px solid #a7f3d0}
.btn-sm.ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}

.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px}
.statcard{border:1px solid var(--line);border-radius:14px;padding:16px;background:linear-gradient(180deg,#fff,#f8fbff)}
.statcard .v{font-size:26px;font-weight:800}
.statcard .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.statcard.teal{background:linear-gradient(180deg,#fff,var(--teal-soft))} .statcard.teal .v{color:var(--teal)}
.statcard.orange{background:linear-gradient(180deg,#fff,var(--orange-soft))} .statcard.orange .v{color:var(--orange)}
.statcard.violet{background:linear-gradient(180deg,#fff,var(--violet-soft))} .statcard.violet .v{color:var(--violet)}

/* ---------- Responsive ---------- */
@media (max-width: 1100px){
  .modules{grid-template-columns:repeat(3,1fr)}
  .hero{grid-template-columns:1fr}
  .dash{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr 1fr}
  .admin-wrap{grid-template-columns:1fr}
}
@media (max-width: 640px){
  .modules{grid-template-columns:1fr 1fr}
  .hero-card h1{font-size:24px}
  .hero-side{grid-template-columns:1fr 1fr}
  .brand-tag{display:none}
  .form-row{grid-template-columns:1fr}
  .card-grid{grid-template-columns:1fr}
}
