:root{
  --bg:#f0f7ff;--surface:#ffffff;--surface2:#e8f4ff;--surface3:#dbeafe;
  --border:rgba(59,130,246,0.1);--border2:rgba(59,130,246,0.2);
  --gold:#0ea5e9;--gold2:#0284c7;--gold-glow:rgba(14,165,233,0.1);
  --text:#0f172a;--text2:#475569;--text3:#94a3b8;
  --green:#10b981;--red:#ef4444;--blue:#0ea5e9;--purple:#8b5cf6;--radius:10px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{max-width:100%;overflow-x:hidden;}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;}
/* ── AUTH ── */
#auth-overlay{position:fixed;inset:0;z-index:1000;background:var(--bg);display:flex;align-items:center;justify-content:center;background-image:radial-gradient(ellipse 80% 60% at 50% -20%,rgba(14,165,233,0.15),transparent);}
.auth-card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--border2);border-radius:20px;padding:36px;box-shadow:0 20px 60px rgba(0,0,0,0.08);margin:16px;max-height:95vh;overflow-y:auto;}
.auth-logo-title{font-family:'DM Serif Display',serif;font-size:28px;color:var(--gold2);}
.auth-tabs{display:flex;gap:3px;background:var(--surface2);padding:4px;border-radius:10px;margin:20px 0;}
.auth-tab{flex:1;text-align:center;padding:8px 4px;border-radius:8px;font-size:12px;font-weight:600;color:var(--text3);cursor:pointer;transition:all .2s;}
.auth-tab.active{background:var(--surface);color:var(--gold);box-shadow:0 2px 8px rgba(0,0,0,0.05);}
.auth-inp{width:100%;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:11px 14px;border-radius:var(--radius);font-family:inherit;font-size:13px;outline:none;transition:border .2s;margin-bottom:12px;}
.auth-inp:focus{border-color:var(--gold);}
.auth-inp::placeholder{color:var(--text3);}
.auth-btn{width:100%;padding:12px;border-radius:var(--radius);border:none;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;margin-bottom:10px;}
.auth-btn-gold{background:var(--gold);color:#fff;}
.auth-btn-gold:hover{background:var(--gold2);}
.auth-btn-google{background:var(--surface2);color:var(--text);border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;gap:10px;}
.auth-divider{display:flex;align-items:center;gap:10px;margin:10px 0;font-size:11px;color:var(--text3);}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}
#auth-msg{padding:10px 14px;border-radius:8px;font-size:12px;margin-bottom:12px;display:none;}
.msg-err{background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.3);color:var(--red);}
.msg-ok{background:rgba(16,185,129,0.1);border:1px solid rgba(16,185,129,0.3);color:var(--green);}
.pw-wrap{position:relative;}
.pw-eye{position:absolute;right:12px;top:50%;transform:translateY(-50%);cursor:pointer;color:var(--text3);}
.otp-row{display:flex;gap:8px;justify-content:center;margin:14px 0;}
.otp-box{width:46px;height:52px;text-align:center;font-size:20px;font-weight:700;background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:10px;outline:none;}
.otp-box:focus{border-color:var(--gold);}
/* ── LOADING ── */
.loading-overlay{position:fixed;inset:0;background:var(--bg);z-index:2000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;}
.spinner{width:38px;height:38px;border:3px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
/* ── APP SHELL ── */
.app{display:flex;min-height:100vh;}
/* ── SIDEBAR ── */
.sidebar{width:224px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:0;position:sticky;top:0;height:100vh;overflow-y:auto;}
.sb-logo{padding:20px 16px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;}
.sb-logo-title{font-family:'DM Serif Display',serif;font-size:17px;color:var(--gold2);}
.sb-logo-sub{font-size:9px;color:var(--text3);letter-spacing:2px;text-transform:uppercase;margin-top:1px;}
.sidebar-toggle{display:none;flex-direction:column;justify-content:center;gap:4px;width:42px;height:42px;border-radius:12px;border:1px solid var(--border2);background:var(--surface2);cursor:pointer;padding:0 10px;flex-shrink:0;}
.sidebar-toggle span{display:block;height:2px;border-radius:999px;background:var(--gold2);transition:transform .2s,opacity .2s;}
.sidebar-menu{display:flex;flex-direction:column;min-height:0;flex:1;}
.sb-biz{margin:10px 8px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;cursor:pointer;transition:border .2s;}
.sb-biz:hover{border-color:var(--border2);}
.sb-biz-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sb-biz-switch{font-size:10px;color:var(--text3);margin-top:2px;}
.sb-user{display:flex;align-items:center;gap:9px;padding:8px 14px;margin-bottom:4px;}
.u-av{width:32px;height:32px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden;}
.u-av img{width:100%;height:100%;object-fit:cover;}
.u-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.u-email{font-size:10px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nav-section{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:1.2px;padding:12px 16px 4px;margin-top:4px;}
.nav-item{display:flex;align-items:center;gap:10px;padding:8px 14px;color:var(--text2);cursor:pointer;transition:all .15s;font-size:13px;font-weight:500;border-left:2px solid transparent;margin:1px 0;}
.nav-item:hover{color:var(--text);background:var(--surface2);}
.nav-item.active{color:var(--gold2);background:var(--gold-glow);border-left-color:var(--gold);}
.nav-icon{font-size:13px;width:17px;text-align:center;}
.nav-badge{margin-left:auto;background:var(--red);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:20px;}
.sync-bar{display:flex;align-items:center;gap:6px;padding:6px 14px;font-size:10px;color:var(--text3);}
.sync-dot{width:5px;height:5px;border-radius:50%;background:var(--green);}
.sync-dot.spinning{background:var(--gold);animation:pulse 1s infinite;}
.sync-dot.err{background:var(--red);}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.3;}}
/* ── MAIN ── */
.main{flex:1;overflow-y:auto;min-width:0;}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:13px 22px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:10;gap:10px;flex-wrap:wrap;}
.page-title{font-family:'DM Serif Display',serif;font-size:18px;white-space:nowrap;}
.topbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:var(--radius);border:none;cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s;white-space:nowrap;}
.btn-gold{background:var(--gold);color:#fff;}
.btn-gold:hover{background:var(--gold2);transform:translateY(-1px);box-shadow:0 4px 16px rgba(14,165,233,.3);}
.btn-outline{background:transparent;border:1px solid var(--border2);color:var(--text2);}
.btn-outline:hover{border-color:var(--gold);color:var(--gold);}
.btn-ghost{background:var(--surface3);color:var(--text2);}
.btn-ghost:hover{color:var(--text);}
.btn-danger{background:rgba(239,68,68,.1);color:var(--red);border:1px solid rgba(239,68,68,.2);}
.btn-danger:hover{background:rgba(239,68,68,.15);}
.btn-green{background:rgba(16,185,129,.15);color:var(--green);border:1px solid rgba(16,185,129,.25);}
.btn-green:hover{background:rgba(16,185,129,.25);}
.btn-purple{background:rgba(139,92,246,.15);color:var(--purple);border:1px solid rgba(139,92,246,.25);}
.btn-whatsapp{background:#25d366;color:#fff;}
.btn-whatsapp:hover{background:#20c25a;}
.btn-voice{background:rgba(239,68,68,.15);color:var(--red);border:1px solid rgba(239,68,68,.25);}
.btn-voice.recording{background:var(--red);color:#fff;animation:pulse-red 1s infinite;}
@keyframes pulse-red{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.4);}50%{box-shadow:0 0 0 8px rgba(239,68,68,0);}}
.content{padding:20px 22px;}
