/* ============================================================
   BBM Connect — theme (aligned to BBM shared design system:
   shop.bigbrandmarketing.in / finance.bigbrandmarketing.in)
   ============================================================ */
:root{
  /* Fonts */
  --font-heading:'Space Grotesk', sans-serif;
  --font-body:'Inter', sans-serif;

  /* Brand / accent */
  --accent:#4F46E5;
  --accent-hover:#4338CA;
  --accent-soft:#EEF0FF;

  /* Status */
  --success:#0E9F6E;
  --success-soft:#E1F5EE;
  --warning:#B45309;
  --warning-soft:#FEF6E7;
  --danger:#C0392B;
  --danger-soft:#FDEDEC;
  --partial:#4F46E5;

  /* Text */
  --text:#2B2B38;
  --text-secondary:#54566B;
  --text-muted:#9092A3;

  /* Surfaces */
  --bg:#F7F8FC;
  --surface:#FFFFFF;
  --surface-2:#F7F8FC;
  --border:#ECEDF3;
  --border-strong:#DDDFE8;

  /* Shadows */
  --shadow:0 1px 2px rgba(20,22,43,0.04), 0 4px 16px rgba(20,22,43,0.04);
  --shadow-hover:0 4px 20px rgba(20,22,43,0.08);

  --radius:12px;

  /* Legacy aliases so older markup (green/danger/muted) keeps working */
  --green:var(--accent);
  --green-deep:var(--accent-hover);
  --purple:#7C3AED;
  --muted:var(--text-muted);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}

h1,h2,h3,h4,.heading,.price{ font-family:var(--font-heading); font-weight:700; color:var(--text); }

/* NAV (marketing pages) */
nav{position:sticky; top:0; z-index:50; background:rgba(255,255,255,0.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--border);}
.nav-inner{display:flex; align-items:center; justify-content:space-between; padding:16px 28px; max-width:1180px; margin:0 auto;}
.brand img{height:34px; width:auto;}
.nav-links{display:flex; align-items:center; gap:32px;}
.nav-links a{font-size:14.5px; color:var(--text-secondary); font-weight:500; transition:color .15s;}
.nav-links a:hover{color:var(--text);}
.nav-cta{display:flex; align-items:center; gap:14px;}

/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 22px; border-radius:8px; font-weight:600; font-size:14.5px; border:1px solid transparent; cursor:pointer; transition:background .15s, border-color .15s, color .15s; font-family:var(--font-body);}
.btn:active{transform:scale(0.98);}
.btn-primary{background:var(--accent); color:#fff;}
.btn-primary:hover{background:var(--accent-hover);}
.btn-ghost{background:transparent; color:var(--text); border-color:var(--border-strong);}
.btn-ghost:hover{border-color:var(--accent); color:var(--accent);}
.btn-lg{padding:15px 30px; font-size:15.5px; border-radius:10px;}
.btn-danger{background:var(--danger); color:#fff;}
.btn-block{width:100%;}

/* Marketing page hero */
.page-hero{padding:64px 0 40px; border-bottom:1px solid var(--border);}
.page-hero .eyebrow{font-size:13px; font-weight:700; color:var(--accent); text-transform:uppercase; letter-spacing:.06em; margin-bottom:12px;}
.page-hero h1{font-size:36px; letter-spacing:-0.02em;}
.page-hero p{color:var(--text-secondary); margin-top:10px; font-size:14.5px;}

.legal{padding:52px 0 90px; max-width:820px; margin:0 auto;}
.legal h2{font-size:20px; margin:34px 0 12px;}
.legal p,.legal li{color:var(--text-secondary); font-size:14.5px; line-height:1.75; margin-bottom:10px;}
.legal ul{padding-left:20px; margin-bottom:14px;}
.legal strong{color:var(--text);}
.legal .updated{color:var(--text-muted); font-size:13px; margin-top:6px;}

/* Footer */
footer{border-top:1px solid var(--border); padding:44px 0 30px;}
.footer-inner{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px;}
.footer-links{display:flex; gap:26px; font-size:13.5px; color:var(--text-secondary); flex-wrap:wrap;}
.footer-links a:hover{color:var(--text);}
.footer-brand img{height:26px;}
.footer-copy{font-size:12.5px; color:var(--text-muted); margin-top:18px;}

/* AUTH PAGES */
.auth-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; background:var(--bg);}
.auth-card{width:100%; max-width:400px; background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:40px 34px; box-shadow:var(--shadow);}
.auth-card img{height:32px; margin-bottom:26px;}
.auth-card h1{font-size:22px; margin-bottom:6px;}
.auth-card p.sub{color:var(--text-secondary); font-size:13.5px; margin-bottom:28px;}
.field{margin-bottom:16px;}
.field label{display:block; font-size:13px; font-weight:600; margin-bottom:7px; color:var(--text-secondary);}
.field input,.field select{
  width:100%; background:var(--surface); border:1px solid var(--border-strong); border-radius:8px;
  padding:12px 14px; color:var(--text); font-size:14px; font-family:var(--font-body); outline:none; transition:border-color .15s;
}
.field input:focus,.field select:focus{border-color:var(--accent);}
.auth-foot{margin-top:20px; text-align:center; font-size:13.5px; color:var(--text-secondary);}
.auth-foot a{color:var(--accent); font-weight:600;}
.alert{padding:11px 14px; border-radius:8px; font-size:13.5px; margin-bottom:18px;}
.alert-error{background:var(--danger-soft); border:1px solid rgba(192,57,43,0.25); color:var(--danger);}
.alert-success{background:var(--success-soft); border:1px solid rgba(14,159,110,0.25); color:var(--success);}

/* ============================================================
   DASHBOARD SHELL
   ============================================================ */
.dash-shell{display:flex; min-height:100vh; background:var(--bg);}

.sidebar{width:248px; background:var(--surface); border-right:1px solid var(--border); padding:22px 16px; flex-shrink:0; display:flex; flex-direction:column;}
.sidebar img{height:26px; margin-bottom:26px; margin-left:8px;}
.side-group-label{font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--text-muted); margin:18px 10px 6px;}
.side-link{display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:8px; font-size:14px; font-weight:500; color:var(--text-secondary); margin-bottom:2px; transition:background .15s,color .15s;}
.side-link .ic{width:18px; text-align:center; flex-shrink:0; opacity:.8;}
.side-link:hover{background:var(--bg); color:var(--text);}
.side-link.active{background:var(--accent-soft); color:var(--accent); font-weight:600;}
.side-link.active .ic{opacity:1;}
.side-link.soon{opacity:.55; cursor:default;}
.side-link.soon:hover{background:transparent; color:var(--text-secondary);}
.side-foot{margin-top:auto; padding-top:14px; border-top:1px solid var(--border);}

.dash-main{flex:1; padding:32px 40px; max-width:1240px;}
.dash-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:28px; gap:16px; flex-wrap:wrap;}
.dash-top h1{font-size:24px;}
.dash-top p{color:var(--text-secondary); font-size:13.5px; margin-top:4px;}

.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:28px;}
.stat-card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px; box-shadow:var(--shadow);}
.stat-card .lab{font-size:12.5px; color:var(--text-secondary); margin-bottom:8px;}
.stat-card .val{font-family:var(--font-heading); font-size:24px; font-weight:700; color:var(--text);}
.stat-card .val.green{color:var(--success);}
.stat-card .val.accent{color:var(--accent);}

.panel{background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:26px; margin-bottom:24px; box-shadow:var(--shadow);}
.panel-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; gap:12px; flex-wrap:wrap;}
.panel h2{font-size:16px; margin-bottom:0;}
.panel .panel-sub{color:var(--text-secondary); font-size:13.5px; margin-top:4px;}

table{width:100%; border-collapse:collapse;}
th{text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--text-muted); padding:10px 12px; border-bottom:1px solid var(--border);}
td{padding:13px 12px; font-size:13.5px; border-bottom:1px solid var(--border); color:var(--text);}
tr:last-child td{border-bottom:none;}

.badge{display:inline-block; padding:4px 10px; border-radius:999px; font-size:11.5px; font-weight:600;}
.badge-green,.badge-paid{background:var(--success-soft); color:var(--success);}
.badge-muted,.badge-pending{background:var(--warning-soft); color:var(--warning);}
.badge-danger{background:var(--danger-soft); color:var(--danger);}
.badge-accent,.badge-partial{background:var(--accent-soft); color:var(--accent);}

.empty-state{text-align:center; padding:50px 20px; color:var(--text-secondary); font-size:14px;}

/* Coming soon page */
.soon-wrap{display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:60px 10px;}
.soon-tag{display:inline-block; background:var(--accent-soft); color:var(--accent); font-size:12px; font-weight:700; padding:5px 12px; border-radius:999px; margin-bottom:6px;}
.soon-wrap h2{font-size:22px;}
.soon-wrap p{color:var(--text-secondary); font-size:14.5px; max-width:520px; line-height:1.65;}

@media(max-width:900px){
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .sidebar{display:none;}
  .dash-main{padding:22px;}
}
