/* ============================================================
   NextGen Smile — Admin & CRM portal styles
   ============================================================ */
:root{
  --navy:#0d3b52;
  --navy-900:#092b3d;
  --teal:#12857f;
  --teal-400:#1aa79f;
  --mint:#7fe7d4;
  --mint-50:#eefaf7;
  --coral:#ff6b5b;
  --amber:#ffb020;
  --ink:#1b2a38;
  --body:#485a6b;
  --muted:#8194a5;
  --line:#e5eaf0;
  --bg:#f3f6fa;
  --shadow-sm:0 1px 3px rgba(13,59,82,.07);
  --shadow:0 6px 22px rgba(13,59,82,.09);
  --sidebar:248px;
}
*,*::before,*::after{box-sizing:border-box;}
body{
  margin:0;background:var(--bg);color:var(--body);
  font-family:'Segoe UI',system-ui,-apple-system,Arial,sans-serif;font-size:14.5px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--teal);text-decoration:none;}
h1,h2,h3,h4{color:var(--ink);margin:0 0 .55em;font-weight:800;letter-spacing:-.01em;line-height:1.25;}
h1{font-size:1.5rem;} h2{font-size:1.15rem;} h3{font-size:1rem;}
table{border-collapse:collapse;width:100%;}

/* ---------- Login ---------- */
.login-body{display:grid;place-items:center;min-height:100vh;padding:24px;
  background:radial-gradient(900px 500px at 20% 10%,rgba(26,167,159,.35),transparent 60%),
             linear-gradient(150deg,#0b3145,#0d3b52 55%,#0a4f52);}
.login-card{width:100%;max-width:398px;background:#fff;border-radius:20px;padding:36px 32px;
  box-shadow:0 28px 70px rgba(0,0,0,.32);}
.login-head{text-align:center;margin-bottom:26px;}
.login-head h1{font-size:1.4rem;margin:.7rem 0 .1rem;}
.login-head p{margin:0;color:var(--muted);font-size:.85rem;}
.brand-mark{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin:0 auto;
  background:linear-gradient(135deg,var(--mint),var(--teal-400));color:var(--navy-900);
  font-size:1.5rem;font-weight:900;}
.login-foot{text-align:center;margin:1.5rem 0 0;font-size:.85rem;}

/* ---------- Layout ---------- */
.a-wrap{display:flex;min-height:100vh;}
.a-side{
  width:var(--sidebar);flex:0 0 var(--sidebar);background:var(--navy-900);color:#8fb3c4;
  padding:22px 0;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;z-index:50;
}
.a-side .logo{display:flex;align-items:center;gap:.65rem;padding:0 20px 22px;color:#fff;font-weight:800;}
.a-side .logo .brand-mark{width:36px;height:36px;border-radius:11px;font-size:1.1rem;margin:0;}
.a-side .logo small{display:block;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mint);font-weight:700;}
.a-nav{list-style:none;margin:0;padding:0;}
.a-nav .grp{padding:16px 20px 6px;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:#5b7f92;font-weight:800;}
.a-nav a{display:flex;align-items:center;gap:.7rem;padding:.68rem 20px;color:#a9c8d6;font-weight:600;font-size:.9rem;border-left:3px solid transparent;transition:.18s;}
.a-nav a:hover{background:rgba(255,255,255,.05);color:#fff;}
.a-nav a.on{background:rgba(127,231,212,.1);color:#fff;border-left-color:var(--mint);}
.a-nav .ic{width:18px;text-align:center;opacity:.9;}

.a-main{flex:1;margin-left:var(--sidebar);min-width:0;display:flex;flex-direction:column;}
.a-top{
  background:#fff;border-bottom:1px solid var(--line);padding:0 26px;height:62px;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;z-index:40;
}
.a-top .who{display:flex;align-items:center;gap:.7rem;font-size:.86rem;}
.a-top .avatar{width:34px;height:34px;border-radius:50%;background:var(--mint-50);color:var(--teal);
  display:grid;place-items:center;font-weight:800;}
.a-top .who .nm{font-weight:700;color:var(--ink);line-height:1.2;}
.a-top .who .rl{font-size:.74rem;color:var(--muted);}
.a-burger{display:none;background:none;border:0;font-size:1.5rem;color:var(--ink);cursor:pointer;}
.a-body{padding:26px;flex:1;}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:22px;}
.page-head p{margin:0;color:var(--muted);font-size:.9rem;}

/* ---------- Cards / KPIs ---------- */
.a-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm);}
.a-card-pad{padding:20px;}
.a-card-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;}
.a-card-head h2,.a-card-head h3{margin:0;}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(184px,1fr));gap:14px;margin-bottom:22px;}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px 18px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--teal);}
.kpi.k-blue::before{background:#2f80ed;}
.kpi.k-amber::before{background:var(--amber);}
.kpi.k-purple::before{background:#7a5af5;}
.kpi.k-green::before{background:#12a06a;}
.kpi.k-coral::before{background:var(--coral);}
.kpi .lab{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:800;}
.kpi .val{font-size:1.75rem;font-weight:900;color:var(--ink);line-height:1.15;margin-top:.15rem;}
.kpi .sub{font-size:.78rem;color:var(--muted);}

.grid-2{display:grid;grid-template-columns:1.35fr .65fr;gap:18px;margin-bottom:18px;}
.grid-2-even{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;}

/* ---------- Charts (pure CSS) ---------- */
.bars{display:flex;align-items:flex-end;gap:10px;height:210px;padding:10px 4px 0;}
.bar-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:.5rem;min-width:0;}
.bar{width:100%;max-width:52px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,var(--teal-400),var(--teal));
  min-height:4px;transition:height .4s ease;position:relative;}
.bar span{position:absolute;top:-20px;left:50%;transform:translateX(-50%);font-size:.74rem;font-weight:800;color:var(--ink);}
.bar-lab{font-size:.7rem;color:var(--muted);text-align:center;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}

.funnel{display:flex;flex-direction:column;gap:9px;}
.fn-row{display:flex;align-items:center;gap:.8rem;}
.fn-lab{flex:0 0 132px;font-size:.8rem;font-weight:700;color:var(--ink);}
.fn-track{flex:1;background:#f0f4f8;border-radius:999px;height:26px;overflow:hidden;}
.fn-fill{height:100%;border-radius:999px;display:flex;align-items:center;justify-content:flex-end;
  padding-right:.6rem;color:#fff;font-size:.76rem;font-weight:800;min-width:34px;
  background:linear-gradient(90deg,var(--teal),var(--teal-400));transition:width .5s ease;}
.fn-row:nth-child(2) .fn-fill{background:linear-gradient(90deg,#2f80ed,#5aa2f5);}
.fn-row:nth-child(3) .fn-fill{background:linear-gradient(90deg,#b57d09,var(--amber));}
.fn-row:nth-child(4) .fn-fill{background:linear-gradient(90deg,#5b46c4,#8b76f0);}
.fn-row:nth-child(5) .fn-fill{background:linear-gradient(90deg,#0f7a55,#2bbd85);}

.ring-wrap{display:flex;align-items:center;gap:1.2rem;}
.ring{width:126px;height:126px;border-radius:50%;flex:0 0 126px;display:grid;place-items:center;position:relative;}
.ring::after{content:"";position:absolute;inset:13px;border-radius:50%;background:#fff;}
.ring .rv{position:relative;z-index:2;font-size:1.5rem;font-weight:900;color:var(--ink);}

/* ---------- Tables ---------- */
.a-table-wrap{overflow-x:auto;}
.a-table{font-size:.87rem;min-width:760px;}
.a-table th{
  text-align:left;padding:.75rem 1rem;background:#f7fafc;color:var(--muted);
  font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;font-weight:800;
  border-bottom:1px solid var(--line);white-space:nowrap;
}
.a-table td{padding:.8rem 1rem;border-bottom:1px solid var(--line);vertical-align:middle;}
.a-table tbody tr:hover{background:#fafcfe;}
.a-table .nm{font-weight:700;color:var(--ink);}
.a-table .sm{font-size:.78rem;color:var(--muted);}
.a-table .mono{font-family:'Consolas','SF Mono',monospace;font-size:.82rem;color:var(--navy);font-weight:700;}
.empty{padding:44px 20px;text-align:center;color:var(--muted);}
.empty .big{font-size:2rem;margin-bottom:.4rem;}

/* ---------- Badges ---------- */
.bdg{display:inline-block;padding:.24rem .68rem;border-radius:999px;font-size:.71rem;font-weight:800;white-space:nowrap;}
.bdg.registered{background:#eef2f7;color:#5b6b7c;}
.bdg.qualified{background:#e7f2ff;color:#1d6fc4;}
.bdg.appointment-booked{background:#fff3dc;color:#b47607;}
.bdg.attended{background:#ece7ff;color:#5b46c4;}
.bdg.converted{background:#e6f8f0;color:#0f7a55;}
.bdg.not-converted{background:#ffeceb;color:#c0392b;}
.bdg.on{background:#e6f8f0;color:#0f7a55;}
.bdg.off{background:#eef2f7;color:#8194a5;}

/* ---------- Forms & buttons ---------- */
.a-field{margin-bottom:14px;}
.a-field label{display:block;font-size:.8rem;font-weight:700;color:var(--ink);margin-bottom:.34rem;}
.a-field input,.a-field select,.a-field textarea{
  width:100%;padding:.62rem .8rem;border:1.5px solid var(--line);border-radius:9px;
  font-size:.9rem;font-family:inherit;color:var(--ink);background:#fbfdff;
}
.a-field textarea{resize:vertical;min-height:80px;}
.a-field input:focus,.a-field select:focus,.a-field textarea:focus{
  outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px rgba(18,133,127,.12);
}
.a-field .hint{font-size:.75rem;color:var(--muted);margin-top:.25rem;}
.a-field input::placeholder,.a-field textarea::placeholder{text-transform:none;color:#9aa9b7;}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;}
.f-row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 14px;}

.a-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.6rem 1.15rem;
  border-radius:9px;font-weight:700;font-size:.86rem;border:1.5px solid transparent;cursor:pointer;
  font-family:inherit;transition:.18s;white-space:nowrap;}
.a-btn-primary{background:var(--teal);color:#fff;}
.a-btn-primary:hover{background:var(--teal-400);}
.a-btn-ghost{background:#fff;color:var(--body);border-color:var(--line);}
.a-btn-ghost:hover{border-color:var(--teal);color:var(--teal);}
.a-btn-danger{background:#fff;color:#c0392b;border-color:#f5c6c0;}
.a-btn-danger:hover{background:#fff5f4;}
.a-btn-sm{padding:.36rem .75rem;font-size:.78rem;border-radius:7px;}
.a-btn-block{width:100%;}

/* filters */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;}
.filters .a-field{margin:0;min-width:150px;flex:1;}
.filters .a-field.grow{flex:2;min-width:210px;}

/* alerts */
.a-alert{padding:.8rem 1rem;border-radius:10px;font-size:.87rem;margin-bottom:16px;}
.a-ok{background:#e9f9f3;color:#0f6b4f;border:1px solid #a9e5cd;}
.a-err{background:#fff1ef;color:#b23a2b;border:1px solid #ffc9c1;}
.a-warn{background:#fff8e6;color:#8a6108;border:1px solid #ffe2a3;}

/* pagination */
.pager{display:flex;gap:.35rem;justify-content:center;padding:16px;flex-wrap:wrap;}
.pager a,.pager span{padding:.42rem .8rem;border-radius:8px;font-size:.83rem;font-weight:700;
  border:1px solid var(--line);background:#fff;color:var(--body);}
.pager .cur{background:var(--teal);color:#fff;border-color:var(--teal);}

/* detail view */
.dl{display:grid;grid-template-columns:180px 1fr;gap:.1rem 1rem;font-size:.9rem;}
.dl dt{color:var(--muted);padding:.55rem 0;border-bottom:1px solid var(--line);}
.dl dd{margin:0;padding:.55rem 0;color:var(--ink);font-weight:600;border-bottom:1px solid var(--line);}

/* pipeline */
.pipe{display:flex;gap:.3rem;flex-wrap:wrap;margin:.6rem 0 0;}
.pipe .p{flex:1;min-width:78px;text-align:center;padding:.45rem .3rem;border-radius:8px;background:#f0f4f8;
  font-size:.66rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.pipe .p.done{background:var(--mint-50);color:var(--teal);}
.pipe .p.cur{background:var(--teal);color:#fff;}

/* responsive */
@media(max-width:960px){
  .grid-2,.grid-2-even{grid-template-columns:1fr;}
  .dl{grid-template-columns:1fr;}
  .dl dt{padding-bottom:0;border-bottom:0;}
}
@media(max-width:820px){
  .a-side{transform:translateX(-100%);transition:transform .25s ease;}
  .a-side.open{transform:translateX(0);box-shadow:0 0 40px rgba(0,0,0,.35);}
  .a-main{margin-left:0;}
  .a-burger{display:block;}
  .f-row,.f-row-3{grid-template-columns:1fr;}
  .a-body{padding:18px 14px;}
}
