:root {
  --sidebar-w: 240px;
  --bg: #F6F5F1;
  --surface: #FFFFFF;
  --surface-soft: #FBFAF7;
  --sidebar-bg: #0B3540;
  --sidebar-hover: #123F4B;
  --sidebar-active: #157084;
  --accent: #0E5566;
  --accent-2: #0A424F;
  --accent-soft: #E4EEF0;
  --text: #1B2A2E;
  --muted: #6B7A7D;
  --border: #E5E1D8;
  --green: #10b981;
  --green-soft: #dcfce7;
  --yellow: #f59e0b;
  --yellow-soft: #fef3c7;
  --red: #ef4444;
  --red-soft: #fee2e2;
  --blue: #0ea5e9;
  --blue-soft: #e0f2fe;
  --radius: 16px;
  --radius-sm: 10px;
  --shadow: 0 8px 24px -8px rgba(11,53,64,.12);
  --shadow-sm: 0 2px 8px -2px rgba(11,53,64,.08);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text);height:100vh;overflow:hidden;display:flex}

/* Sidebar */
.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);display:flex;flex-direction:column;height:100vh;flex-shrink:0;z-index:10}
.brand{padding:1.4rem 1.1rem;display:flex;align-items:center;gap:.7rem;border-bottom:1px solid rgba(255,255,255,.08)}
.brand-icon{width:38px;height:38px;background:linear-gradient(135deg,var(--sidebar-active),var(--accent-2));border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);flex-shrink:0}
.brand-icon svg{width:20px;height:20px}
.brand-name{color:#fff;font-size:1rem;font-weight:700;letter-spacing:-.3px}
.brand-sub{color:rgba(255,255,255,.45);font-size:.7rem;font-weight:500}
nav{flex:1;padding:.85rem .65rem;display:flex;flex-direction:column;gap:.2rem}
.nav-item{display:flex;align-items:center;gap:.7rem;padding:.65rem .8rem;border-radius:12px;color:rgba(255,255,255,.6);cursor:pointer;font-size:.84rem;font-weight:500;transition:all .25s cubic-bezier(0.32,0.72,0,1);border:none;background:none;width:100%;text-align:left;font-family:inherit}
.nav-item:hover{background:var(--sidebar-hover);color:rgba(255,255,255,.9)}
.nav-item.active{background:var(--sidebar-active);color:#fff}
.nav-item .icon{font-size:1rem;width:18px;text-align:center}
.nav-badge{margin-left:auto;background:var(--red);color:#fff;border-radius:10px;font-size:.65rem;font-weight:700;padding:.1rem .45rem;min-width:18px;text-align:center}
.sidebar-footer{padding:.8rem;border-top:1px solid rgba(255,255,255,.08)}
.wa-chip{display:flex;align-items:center;gap:.55rem;padding:.55rem .8rem;border-radius:12px;background:rgba(255,255,255,.07);cursor:pointer;transition:background .2s}
.wa-chip:hover{background:rgba(255,255,255,.11)}
.wa-dot{width:8px;height:8px;border-radius:50%;background:var(--red);flex-shrink:0;transition:background .3s}
.wa-dot.ok{background:var(--green)}
.wa-dot.wait{background:var(--yellow);animation:pulse 1.2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.wa-info{flex:1}
.wa-label{color:rgba(255,255,255,.65);font-size:.75rem;font-weight:500}
.wa-num{color:rgba(255,255,255,.4);font-size:.68rem}

/* Main */
.main{flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden}
.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:.9rem 1.75rem;display:flex;align-items:center;gap:1rem;flex-shrink:0}
.page-title{font-size:1.05rem;font-weight:700;color:var(--text)}
.topbar-right{margin-left:auto;display:flex;gap:.5rem}
.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.05rem;border-radius:999px;font-size:.8rem;font-weight:600;cursor:pointer;border:none;transition:all .2s cubic-bezier(0.32,0.72,0,1);font-family:inherit}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-2)}
.btn-ghost{background:var(--surface);color:var(--muted);border:1px solid var(--border)}
.btn-ghost:hover{background:var(--bg)}
.btn-danger{background:var(--red);color:#fff}
.section{display:none;flex:1;overflow:hidden;flex-direction:column}
.section.active{display:flex}

/* Dashboard */
.dash-body{flex:1;overflow-y:auto;padding:1.75rem}
.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-bottom:1.75rem}
.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.3rem 1.4rem;box-shadow:var(--shadow-sm)}
.metric-icon{font-size:1.5rem;margin-bottom:.4rem}
.metric-value{font-size:1.7rem;font-weight:800;letter-spacing:-1px;color:var(--text)}
.metric-label{font-size:.76rem;color:var(--muted);font-weight:500;margin-top:.25rem}
.dash-grid{display:grid;grid-template-columns:1fr 360px;gap:1.1rem}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.card-header{padding:1rem 1.2rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.card-title{font-size:.86rem;font-weight:700}
.recent-row{display:flex;align-items:center;gap:.8rem;padding:.7rem 1.1rem;cursor:pointer;border-bottom:1px solid var(--border);transition:background .15s}
.recent-row:last-child{border-bottom:none}
.recent-row:hover{background:var(--bg)}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.8rem;font-weight:700;flex-shrink:0}
.recent-name{font-size:.84rem;font-weight:600}
.recent-msg{font-size:.77rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.recent-time{font-size:.71rem;color:var(--muted);margin-left:auto;flex-shrink:0}
.estado-chip{display:inline-flex;align-items:center;padding:.22rem .6rem;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase}
.chip-activa{background:var(--green-soft);color:#166534}
.chip-derivada{background:var(--yellow-soft);color:#854d0e}
.chip-resuelta{background:var(--bg);color:var(--muted)}

/* Conversaciones */
.chat-layout{display:flex;flex:1;overflow:hidden}
.chat-list-panel{width:320px;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--surface);flex-shrink:0}
.chat-search{padding:.7rem .8rem;border-bottom:1px solid var(--border)}
.chat-search input{width:100%;padding:.5rem .8rem;border:1px solid var(--border);border-radius:999px;font-size:.82rem;background:var(--bg);outline:none;font-family:inherit}
.chat-filters{display:flex;gap:.35rem;padding:.5rem .8rem;border-bottom:1px solid var(--border);flex-wrap:wrap}
.filter-btn{padding:.25rem .65rem;border-radius:999px;font-size:.71rem;font-weight:600;cursor:pointer;border:1px solid var(--border);background:none;color:var(--muted);transition:all .2s;font-family:inherit}
.filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.conv-list{flex:1;overflow-y:auto}
.conv-item{display:flex;align-items:center;gap:.7rem;padding:.8rem .95rem;cursor:pointer;border-bottom:1px solid var(--border);transition:background .15s;position:relative}
.conv-item:hover{background:var(--bg)}
.conv-item.active{background:var(--accent-soft)}
.conv-item .avatar{width:42px;height:42px;font-size:.85rem;flex-shrink:0}
.conv-meta{flex:1;min-width:0}
.conv-name{font-size:.85rem;font-weight:600}
.conv-preview{font-size:.76rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv-right{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;flex-shrink:0}
.conv-time{font-size:.69rem;color:var(--muted)}
.unread-badge{background:var(--green);color:#fff;border-radius:50%;width:18px;height:18px;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.estado-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;position:absolute;bottom:11px;left:53px}
.dot-activa{background:var(--green)}
.dot-derivada{background:var(--yellow)}
.dot-resuelta{background:var(--muted)}

/* Chat window */
.chat-window{flex:1;display:flex;flex-direction:column;background:var(--bg)}
.chat-header{background:var(--surface);padding:.75rem 1.1rem;display:flex;align-items:center;gap:.8rem;border-bottom:1px solid var(--border);flex-shrink:0}
.chat-header-name{font-size:.92rem;font-weight:700}
.chat-header-sub{font-size:.74rem;color:var(--muted)}
.chat-header-actions{margin-left:auto;display:flex;gap:.4rem}
.chat-messages{flex:1;overflow-y:auto;padding:1.1rem;display:flex;flex-direction:column;gap:.5rem}
.no-chat{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:.8rem}
.no-chat .big-icon{font-size:3.5rem;opacity:.18}
.msg-wrap{display:flex;flex-direction:column;max-width:62%}
.msg-wrap.out{align-self:flex-end;align-items:flex-end}
.msg-wrap.in{align-self:flex-start;align-items:flex-start}
.msg-wrap.agent{align-self:flex-end;align-items:flex-end}
.msg-role{font-size:.62rem;color:var(--muted);margin-bottom:.15rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.msg-bubble{padding:.6rem .9rem;border-radius:14px;font-size:.85rem;line-height:1.45;word-break:break-word;box-shadow:var(--shadow-sm)}
.msg-wrap.in .msg-bubble{background:var(--surface);border-top-left-radius:4px}
.msg-wrap.out .msg-bubble{background:var(--accent-soft);border-top-right-radius:4px}
.msg-wrap.agent .msg-bubble{background:var(--blue-soft);border-top-right-radius:4px}
.msg-time{font-size:.64rem;color:var(--muted);margin-top:.15rem;padding:0 .1rem}
.chat-input-area{background:var(--surface);padding:.75rem 1.1rem;display:flex;gap:.55rem;align-items:flex-end;flex-shrink:0;border-top:1px solid var(--border)}
.chat-input{flex:1;padding:.6rem .9rem;border:1px solid var(--border);border-radius:18px;font-size:.86rem;outline:none;resize:none;max-height:120px;font-family:inherit;line-height:1.4}
.chat-input:focus{border-color:var(--accent)}
.send-btn{background:var(--accent);color:#fff;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;font-size:1rem;transition:background .2s}
.send-btn:hover{background:var(--accent-2)}

/* Patient sidebar */
.patient-sidebar{width:280px;border-left:1px solid var(--border);background:var(--surface);overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column}
.ps-header{padding:1.4rem 1.1rem;text-align:center;border-bottom:1px solid var(--border)}
.ps-avatar{width:58px;height:58px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.2rem;font-weight:700;margin:0 auto .55rem}
.ps-name{font-size:.94rem;font-weight:700}
.ps-phone{font-size:.79rem;color:var(--muted);margin-top:.2rem}
.ps-section{padding:.75rem 1.1rem;border-bottom:1px solid var(--border)}
.ps-section-title{font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:.6rem}
.ps-row{display:flex;justify-content:space-between;align-items:center;padding:.3rem 0;font-size:.8rem}
.ps-row span:first-child{color:var(--muted)}
.ps-row span:last-child{font-weight:600;text-align:right;max-width:150px}

/* Tablas */
.table-section{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:1.4rem}
.toolbar{display:flex;gap:.75rem;margin-bottom:1.1rem;align-items:center}
.search-box{position:relative;flex:1;max-width:360px}
.search-box::before{content:'🔍';position:absolute;left:.7rem;top:50%;transform:translateY(-50%);font-size:.78rem;pointer-events:none}
.search-box input{width:100%;padding:.55rem .8rem .55rem 2.2rem;border:1px solid var(--border);border-radius:999px;font-size:.83rem;outline:none;background:var(--surface);font-family:inherit}
.table-wrap{flex:1;overflow-y:auto;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm)}
table{width:100%;border-collapse:collapse;background:var(--surface)}
thead tr{background:var(--surface-soft)}
th{text-align:left;padding:.7rem 1.1rem;font-size:.73rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border)}
td{padding:.75rem 1.1rem;font-size:.83rem;border-bottom:1px solid var(--border);vertical-align:middle}
tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--surface-soft)}
.cita-estado{display:inline-flex;padding:.22rem .6rem;border-radius:999px;font-size:.69rem;font-weight:700}
.estado-pendiente{background:var(--yellow-soft);color:#92400e}
.estado-confirmada{background:var(--green-soft);color:#166534}
.estado-cancelada{background:var(--red-soft);color:#991b1b}
.estado-completada{background:var(--blue-soft);color:#0c4a6e}
.estado-no_asistio{background:var(--bg);color:var(--muted)}

/* Configuración */
.config-body{flex:1;overflow-y:auto;padding:1.75rem}
.config-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}
.config-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.config-card-header{padding:.9rem 1.2rem;border-bottom:1px solid var(--border);font-size:.86rem;font-weight:700}
.config-card-body{padding:1.2rem}
.form-group{margin-bottom:.85rem}
.form-label{display:block;font-size:.72rem;font-weight:700;color:var(--muted);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.3px}
.form-input{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;outline:none;transition:border .2s;font-family:inherit}
.form-input:focus{border-color:var(--accent)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;min-height:28px}
.tag{display:inline-flex;align-items:center;gap:.3rem;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:.28rem .7rem;font-size:.78rem;font-weight:500}
.tag button{background:none;border:none;cursor:pointer;color:var(--muted);font-size:.8rem;padding:0;line-height:1;display:flex;align-items:center}
.tag button:hover{color:var(--red)}
.horario-item{display:flex;align-items:center;gap:.5rem;padding:.45rem .65rem;background:var(--bg);border-radius:var(--radius-sm);margin-bottom:.35rem;font-size:.82rem}
.horario-dia{font-weight:700;min-width:70px;color:var(--accent-2);font-size:.78rem}
.horario-hrs{flex:1;color:var(--muted);font-size:.8rem}
.item-del{background:none;border:none;cursor:pointer;color:var(--muted);font-size:.82rem;padding:.1rem .3rem;border-radius:4px;line-height:1}
.item-del:hover{background:var(--red-soft);color:var(--red)}
.servicio-item{display:flex;align-items:center;gap:.5rem;padding:.45rem .65rem;background:var(--bg);border-radius:var(--radius-sm);margin-bottom:.32rem;font-size:.82rem}
.servicio-nombre{flex:1;font-weight:500}
.servicio-precio{color:var(--green);font-weight:700;font-size:.79rem}
.inline-form{display:flex;gap:.4rem;margin-top:.6rem;flex-wrap:wrap}
.inline-form .form-input{flex:1;min-width:80px}

/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(11,53,64,.45);display:none;align-items:center;justify-content:center;z-index:100}
.modal-overlay.open{display:flex}
.modal{background:var(--surface);border-radius:20px;padding:2.1rem;text-align:center;max-width:360px;width:90%;box-shadow:0 25px 60px rgba(11,53,64,.25)}
.modal h3{font-size:1.05rem;margin-bottom:.4rem}
.modal p{font-size:.82rem;color:var(--muted);margin-bottom:1.25rem;line-height:1.5}
#wa-container code{display:block;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem .75rem;font-size:.78rem;word-break:break-all;margin-top:.5rem}

/* Toast */
#toast-area{position:fixed;bottom:1.25rem;right:1.25rem;display:flex;flex-direction:column;gap:.45rem;z-index:200}
.toast{background:var(--text);color:#fff;padding:.65rem 1.05rem;border-radius:12px;font-size:.82rem;box-shadow:var(--shadow);opacity:0;transform:translateY(8px);transition:all .25s cubic-bezier(0.32,0.72,0,1);max-width:280px}
.toast.show{opacity:1;transform:translateY(0)}
.toast.success{background:var(--green)}
.toast.error{background:var(--red)}
.toast.warn{background:var(--yellow);color:#1e293b}

/* Calendario */
.cal-nav{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}
.cal-nav h3{font-size:.95rem;font-weight:700;flex:1;text-align:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:var(--border);border-radius:var(--radius);overflow:hidden}
.cal-head{background:var(--surface-soft);text-align:center;padding:.5rem;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase}
.cal-day{background:var(--surface);min-height:90px;padding:.4rem;cursor:pointer;transition:background .15s;position:relative}
.cal-day:hover{background:var(--accent-soft)}
.cal-day.other-month{background:var(--surface-soft)}
.cal-day.other-month .cal-day-num{color:var(--border)}
.cal-day.today{background:var(--accent-soft)}
.cal-day.today .cal-day-num{background:var(--accent);color:#fff;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-weight:700}
.cal-day-num{font-size:.78rem;font-weight:600;margin-bottom:.3rem}
.cal-event{background:var(--accent);color:#fff;border-radius:6px;padding:.1rem .4rem;font-size:.68rem;margin-bottom:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.cal-event.estado-confirmada{background:var(--green)}
.cal-event.estado-cancelada{background:var(--red)}
.cal-event.estado-completada{background:var(--muted)}
.cal-event.estado-no_asistio{background:#94a3b8}
/* Recordatorios */
.rec-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.1rem 1.2rem;margin-bottom:.9rem}
.rec-tipo{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--accent-2);background:var(--accent-soft);padding:.18rem .55rem;border-radius:999px;margin-bottom:.5rem}
.rec-nombre{font-size:.9rem;font-weight:700}
.rec-tel{font-size:.76rem;color:var(--muted);margin-bottom:.5rem}
.rec-texto{font-size:.8rem;color:var(--text);background:var(--bg);border-radius:var(--radius-sm);padding:.6rem .75rem;white-space:pre-wrap;line-height:1.45;margin-bottom:.65rem}

/* Campañas */
.campana-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.3rem;margin-bottom:1rem}
.seg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-bottom:1.5rem}
.seg-btn{border:2px solid var(--border);border-radius:var(--radius);padding:1.05rem;text-align:center;cursor:pointer;transition:all .2s;background:var(--surface)}
.seg-btn:hover{border-color:var(--accent);background:var(--accent-soft)}
.seg-btn.selected{border-color:var(--accent);background:var(--accent-soft)}
.seg-num{font-size:1.5rem;font-weight:800;color:var(--accent)}
.seg-label{font-size:.75rem;color:var(--muted);margin-top:.2rem;font-weight:500}
.msg-editor{width:100%;min-height:120px;padding:.8rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem;font-family:inherit;resize:vertical;outline:none;line-height:1.5}
.msg-editor:focus{border-color:var(--accent)}
.preview-box{background:var(--accent-soft);border-radius:14px;padding:.8rem 1.05rem;font-size:.84rem;line-height:1.5;border-top-right-radius:4px;margin-top:.8rem;max-width:400px;box-shadow:var(--shadow-sm)}
/* WhatsApp / Envíos */
.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.3px;text-transform:uppercase}
.badge-green{background:var(--green-soft);color:#166534}
.badge-yellow{background:var(--yellow-soft);color:#92400e}
.badge-red{background:var(--red-soft);color:#991b1b}
.badge-unknown{background:var(--bg);color:var(--muted)}

/* Charts */
.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-top:1rem}
.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.2rem}
.chart-title{font-size:.82rem;font-weight:700;margin-bottom:.75rem;color:var(--muted)}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}

/* Login */
.login-bg{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:999;background:radial-gradient(circle at 15% 15%,var(--accent-2) 0%,var(--sidebar-bg) 45%,#051f26 100%);padding:1rem}
.login-card{background:var(--surface);border-radius:24px;padding:2.6rem 2.3rem;width:340px;max-width:100%;box-shadow:0 25px 60px rgba(11,53,64,.35);text-align:center}
.login-icon{width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,var(--sidebar-active),var(--accent-2));display:flex;align-items:center;justify-content:center;margin:0 auto 1.1rem;box-shadow:0 8px 20px rgba(14,85,102,.35)}
.login-icon svg{width:32px;height:32px}
.login-card h2{font-size:1.3rem;font-weight:800;margin-bottom:.2rem;letter-spacing:-.4px}
.login-card p{font-size:.8rem;color:var(--muted);margin-bottom:1.7rem}
.login-input{width:100%;padding:.7rem .95rem;border:1px solid var(--border);border-radius:12px;font-size:.88rem;outline:none;margin-bottom:.65rem;display:block;font-family:inherit;transition:border .2s,box-shadow .2s}
.login-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.login-btn{width:100%;padding:.75rem;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border:none;border-radius:12px;font-size:.9rem;font-weight:700;cursor:pointer;margin-top:.3rem;transition:filter .2s;font-family:inherit}
.login-btn:hover{filter:brightness(1.08)}

/* Responsive */
.menu-toggle{display:none}
.sidebar-overlay{display:none}
@media (max-width: 1100px){
  .patient-sidebar{display:none !important}
}
@media (max-width: 1024px){
  .dash-grid{grid-template-columns:1fr}
  .charts-grid{grid-template-columns:1fr}
  .config-grid{grid-template-columns:1fr}
  .metrics-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 768px){
  body{overflow:visible}
  .menu-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-size:1rem;cursor:pointer;flex-shrink:0}
  .sidebar{position:fixed;left:-260px;top:0;bottom:0;transition:left .22s ease;box-shadow:0 0 30px rgba(0,0,0,.25)}
  .sidebar.open{left:0}
  .sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:9}
  .sidebar-overlay.open{display:block}
  .seg-grid{grid-template-columns:repeat(2,1fr)}
  .form-row{grid-template-columns:1fr}
  .table-wrap{overflow-x:auto}
  table{min-width:560px}
  .chat-list-panel{width:100%;padding-top:2.6rem}
  .chat-layout.conv-open .chat-list-panel{display:none}
  .chat-layout:not(.conv-open) .chat-window{display:none}
  .chat-back{display:inline-flex !important}
  .topbar{padding-left:3.4rem}
}
@media (max-width: 480px){
  .metrics-grid{grid-template-columns:1fr}
}
