*{box-sizing:border-box;margin:0;padding:0}
:root{
  --p:#22C55E;--ps:#DCFCE7;--pd:#16A34A;--ph:#15803D;
  --bg:#F8FAFC;--sur:#fff;--brd:#E5E7EB;
  --t1:#111827;--t2:#6B7280;--t3:#9CA3AF;
  --red:#EF4444;--reds:#FEE2E2;
  --amber:#F59E0B;--ambers:#FEF3C7;
  --blue:#3B82F6;--blues:#DBEAFE;
}
body{font-family:'Manrope',sans-serif;background:var(--bg);color:var(--t1);font-size:14px;line-height:1.5;overflow:hidden;height:100vh}
.app{display:flex;height:100vh;overflow:hidden}
/* ── SIDEBAR ── */
.sb{width:240px;min-width:240px;background:#fff;border-right:1px solid var(--brd);display:flex;flex-direction:column;overflow-y:auto}
.sb-logo{padding:18px 14px 12px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--brd)}
.sb-logo-ic{width:36px;height:36px;background:var(--ps);border-radius:10px;display:flex;align-items:center;justify-content:center}
.sb-logo-t{font-size:15px;font-weight:800;color:var(--p)}
.sb-logo-s{font-size:10px;color:var(--t3)}
.sb-nav{flex:1;padding:10px 8px}
.nav-grp{font-size:10px;font-weight:700;color:var(--t3);letter-spacing:.08em;text-transform:uppercase;padding:8px 8px 4px}
.ni{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;cursor:pointer;transition:all .15s;color:var(--t2);font-size:13px;font-weight:500;margin-bottom:2px;user-select:none}
.ni:hover{background:#F0FDF4;color:var(--pd)}
.ni.active{background:var(--ps);color:var(--pd);font-weight:600}
.ni svg{width:15px;height:15px;flex-shrink:0}
.sb-demo{margin:8px;padding:11px;background:var(--ps);border-radius:12px;border:1px solid #BBF7D0}
.sb-profile{padding:10px 12px;border-top:1px solid var(--brd);display:flex;align-items:center;gap:10px}
.av{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
/* ── MAIN ── */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.ph{padding:18px 24px 0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.pt{font-size:20px;font-weight:800;color:var(--t1);display:flex;align-items:center;gap:8px}
.pc{flex:1;overflow-y:auto;padding:18px 24px 24px}
/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 15px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .15s;font-family:inherit}
.btn-p{background:var(--p);color:#fff}.btn-p:hover{background:var(--pd)}
.btn-s{background:#fff;color:var(--t1);border:1px solid var(--brd)}.btn-s:hover{background:var(--bg)}
.btn-g{background:transparent;color:var(--t2);border:1px solid var(--brd)}.btn-g:hover{background:var(--bg)}
.btn-r{background:transparent;color:var(--red);border:1px solid #FECACA}
.btn-sm{padding:5px 11px;font-size:12px;border-radius:8px}
.btn-xs{padding:3px 8px;font-size:11px;border-radius:6px}
/* ── CARDS ── */
.card{background:#fff;border:1px solid var(--brd);border-radius:16px;padding:20px}
/* ── BADGES ── */
.bdg{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700}
.bdg-ok{background:var(--ps);color:var(--pd);border:1px solid #BBF7D0}
.bdg-sch{background:var(--blues);color:#1D4ED8}
.bdg-conf{background:#ECFDF5;color:#047857}
.bdg-can{background:#F3F4F6;color:var(--t2)}
.bdg-pay{background:var(--ps);color:var(--pd);border:1px solid #BBF7D0}
/* ── FORM INPUTS ── */
.fi{padding:8px 10px;border:1px solid var(--brd);border-radius:8px;font-size:13px;background:#fff;outline:none;font-family:inherit;width:100%}
.fi:focus{border-color:var(--p);box-shadow:0 0 0 2px rgba(34,197,94,.12)}
select.fi{cursor:pointer}
textarea.fi{resize:vertical;min-height:80px}
.fl{font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;display:block}
.fg{margin-bottom:14px}
/* ── TABLE ── */
.tbl{width:100%;border-collapse:collapse}
.tbl th{font-size:12px;font-weight:700;color:var(--t2);text-align:left;padding:10px 14px;border-bottom:1px solid var(--brd);background:var(--bg);white-space:nowrap}
.tbl td{padding:11px 14px;border-bottom:1px solid var(--brd);font-size:13px;vertical-align:middle}
.tbl tr:hover td{background:var(--bg)}
/* ── METRICS ── */
.mtr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.mtr{background:#fff;border:1px solid var(--brd);border-radius:16px;padding:18px 22px}
.mtr-lbl{font-size:12px;color:var(--t2);font-weight:500;margin-bottom:5px;display:flex;align-items:center;gap:5px}
.mtr-val{font-size:26px;font-weight:800;color:var(--t1);line-height:1}
.mtr-tr{font-size:11px;color:#22C55E;font-weight:600;margin-top:5px}
/* ── PATIENT SIDEBAR ── */
.psb{width:230px;min-width:230px;border-right:1px solid var(--brd);overflow-y:auto;padding:18px 14px;background:#fff}
.pav{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;margin:0 auto 10px}
/* ── CHAT ── */
.chat-w{display:flex;flex-direction:column;height:100%;overflow:hidden}
.chat-msgs{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:10px}
.msg-u{align-self:flex-end;background:var(--ps);border-radius:12px 12px 4px 12px;padding:10px 14px;max-width:70%;font-size:13px;color:var(--pd)}
.msg-a{align-self:flex-start;background:#fff;border:1px solid var(--brd);border-radius:4px 12px 12px 12px;padding:10px 14px;max-width:80%;font-size:13px;line-height:1.6}
.chat-in-wrap{padding:14px 20px;border-top:1px solid var(--brd);display:flex;gap:10px;background:#fff;flex-shrink:0}
.chat-in{flex:1;padding:10px 14px;border:1px solid var(--brd);border-radius:10px;font-size:13px;font-family:inherit;outline:none;resize:none}
.chat-in:focus{border-color:var(--p)}
/* ── ACCORDION ── */
.acc{border:1px solid var(--brd);border-radius:10px;overflow:hidden;margin-bottom:6px}
.acc-h{padding:9px 13px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:12px;font-weight:600;color:var(--t1);background:#fff}
.acc-h:hover{background:var(--bg)}
.acc-b{padding:10px 13px;border-top:1px solid var(--brd);background:var(--bg);font-size:12px;color:var(--t2)}
/* ── TABS ── */
.tabs{display:flex;border-bottom:1px solid var(--brd);flex-shrink:0}
.tab{padding:10px 16px;font-size:13px;font-weight:600;color:var(--t2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:all .15s}
.tab.active{color:var(--p);border-bottom-color:var(--p)}
/* ── EDITOR ── */
.etb{display:flex;align-items:center;gap:3px;padding:7px 10px;background:var(--bg);border:1px solid var(--brd);border-radius:8px 8px 0 0;flex-wrap:wrap}
.tb{background:none;border:1px solid transparent;border-radius:5px;padding:3px 6px;font-size:12px;cursor:pointer;color:var(--t2);font-weight:600;font-family:inherit}
.tb:hover{background:#fff;border-color:var(--brd)}
.ebody{border:1px solid var(--brd);border-top:none;border-radius:0 0 8px 8px;padding:12px;background:#fff;min-height:160px;font-size:13px;line-height:1.7;outline:none}
/* ── MODAL/SLIDE ── */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:200;display:flex;justify-content:flex-end}
.slide{background:#fff;width:500px;height:100%;overflow-y:auto;box-shadow:-4px 0 20px rgba(0,0,0,.1)}
.slide-h{padding:16px 18px;border-bottom:1px solid var(--brd);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
/* ── DOC PREVIEW ── */
.doc-lay{display:flex;height:100%;overflow:hidden}
.doc-pan{width:260px;min-width:260px;background:#064E3B;color:#fff;overflow-y:auto;padding:18px}
.doc-pan-c{background:#065F46;border:1px solid #10B981;border-radius:12px;padding:14px;margin-bottom:12px}
.doc-pan-l{font-size:10px;font-weight:700;color:#6EE7B7;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}
.tog{width:38px;height:21px;border-radius:11px;position:relative;cursor:pointer;transition:.2s;flex-shrink:0}
.tog.on{background:#10B981}.tog.off{background:#374151}
.tog::after{content:'';width:17px;height:17px;background:#fff;border-radius:50%;position:absolute;top:2px;transition:.2s}
.tog.on::after{right:2px}.tog.off::after{left:2px}
.doc-area{flex:1;overflow-y:auto;padding:24px;background:#94A3B8;display:flex;justify-content:center}
.doc-paper{background:#fff;width:600px;min-height:800px;border-radius:4px;box-shadow:0 4px 24px rgba(0,0,0,.15);padding:40px;position:relative}
/* ── MISC ── */
.tag{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:20px;font-size:11px;font-weight:600;margin:2px;cursor:pointer}
.tag-red{background:#FEE2E2;color:#991B1B}
.tag-yellow{background:var(--ambers);color:#92400E}
.tag-green{background:var(--ps);color:var(--pd)}
.tag-blue{background:var(--blues);color:#1D4ED8}
.sw{display:flex;gap:0;background:var(--bg);border:1px solid var(--brd);border-radius:10px;padding:3px}
.sw-opt{padding:6px 14px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;color:var(--t2);transition:all .15s}
.sw-opt.active{background:#fff;color:var(--t1);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.srch{position:relative}.srch svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--t3)}
.srch input{padding:8px 10px 8px 30px;border:1px solid var(--brd);border-radius:9px;font-size:13px;background:#fff;outline:none;font-family:inherit}
.srch input:focus{border-color:var(--p)}
.sep{height:1px;background:var(--brd);margin:14px 0}
.empty{text-align:center;padding:48px 20px;color:var(--t2)}
.empty svg{width:48px;height:48px;opacity:.25;margin:0 auto 12px;display:block}
.spinner{width:20px;height:20px;border:2px solid var(--brd);border-top-color:var(--p);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.toast-c{position:fixed;bottom:24px;right:24px;z-index:999;display:flex;flex-direction:column;gap:8px}
.toast{background:#1F2937;color:#fff;padding:11px 16px;border-radius:10px;font-size:13px;font-weight:500;animation:tin .3s ease;display:flex;align-items:center;gap:8px;max-width:320px}
.toast.success::before{content:'✓';color:#22C55E}
.toast.error::before{content:'✗';color:#EF4444}
.toast.info::before{content:'i';color:#60A5FA;font-style:italic;font-weight:700}
@keyframes tin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-thumb{background:var(--brd);border-radius:4px}
.grp2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grp3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.grp4{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px}
@media(max-width:900px){.sb{display:none}.grp3{grid-template-columns:1fr 1fr}.mtr-grid{grid-template-columns:1fr}}

/* === Calendar Styles === */
.cal-grid{background:#fff;border:1px solid var(--brd);border-radius:12px;overflow:auto}
  .cal-hrow{display:grid;grid-template-columns:60px repeat(7,1fr);background:var(--bg);border-bottom:1px solid var(--brd)}
  .cal-hcell{padding:8px 6px;font-size:11px;font-weight:700;color:var(--t2);text-align:center;border-right:1px solid var(--brd)}
  .cal-brow{display:grid;grid-template-columns:60px repeat(7,1fr);border-bottom:1px solid var(--brd);min-height:52px}
  .cal-tc{padding:6px 4px;font-size:11px;color:var(--t3);text-align:right;border-right:1px solid var(--brd);line-height:40px}
  .cal-dc{border-right:1px solid var(--brd);padding:3px;min-height:52px}
  .cal-ev{border-radius:5px;padding:3px 5px;margin-bottom:2px;font-size:11px;font-weight:600;cursor:pointer;border-left:3px solid}
  .cal-ev-green{background:#DCFCE7;border-left-color:#22C55E;color:#166534}
  .cal-ev-blue{background:#DBEAFE;border-left-color:#3B82F6;color:#1D4ED8}
  .cal-ev-gray{background:#F3F4F6;border-left-color:#9CA3AF;color:#6B7280}
  .cal-today{background:#22C55E;color:#fff;border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center}