/*
  DIGITAKA SaaS — Design System
  Front-end puro: HTML5 + CSS3 + JavaScript vanilla.
  Paleta: verde-esmeralda, verde-escuro, branco e cinza claro.
*/
:root{
  --primary:#1D9E75;
  --secondary:#0F6E56;
  --danger:#E24B4A;
  --warning:#EF9F27;
  --bg:#F8FAFB;
  --surface:#FFFFFF;
  --muted:#6B7280;
  --ink:#12201C;
  --line:#E5ECE9;
  --soft:#EDF8F4;
  --shadow:0 14px 40px rgba(15,110,86,.08);
  --radius:12px;
  --font:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:var(--font);background:var(--bg);color:var(--ink);min-height:100vh;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
.hidden{display:none!important}
.mobile-only{display:none!important}

/* ---------- Componentes base ---------- */
.btn{border:0;border-radius:10px;padding:.78rem 1rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:.2s ease;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--primary);color:#fff;box-shadow:0 10px 22px rgba(29,158,117,.24)}
.btn.secondary{background:var(--soft);color:var(--secondary)}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--secondary)}
.btn.danger{background:#FEF2F2;color:var(--danger)}
.btn.warning{background:#FFF7E8;color:#9A5E0D}
.btn.full{width:100%}
.icon-btn{width:42px;height:42px;border:1px solid var(--line);background:var(--surface);border-radius:12px;display:grid;place-items:center;color:var(--secondary)}
.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .7rem;border-radius:999px;font-size:.78rem;font-weight:800;background:#EEF2F7;color:#425466}
.pill.success{background:#E8F8F1;color:var(--secondary)}
.pill.danger{background:#FDECEC;color:var(--danger)}
.pill.warning{background:#FFF4DE;color:#A76205}
.pill.locked{background:#F1F5F9;color:#64748B}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card.pad{padding:1.1rem}
.section-title{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1rem}
.section-title h2{font-size:1.05rem}
.grid{display:grid;gap:1rem}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
label{display:flex;flex-direction:column;gap:.38rem;font-weight:700;font-size:.85rem;color:#34413E}
input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:.75rem .85rem;color:var(--ink);outline:none;transition:.2s ease}
textarea{min-height:92px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:rgba(29,158,117,.6);box-shadow:0 0 0 4px rgba(29,158,117,.08)}
small,.muted{color:var(--muted);font-size:.82rem}.danger-text{color:var(--danger)}.warning-text{color:#A76205}.success-text{color:var(--secondary)}

/* ---------- Login / onboarding ---------- */
.auth-view{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;background:
  radial-gradient(circle at 15% 10%,rgba(29,158,117,.14),transparent 28%),
  linear-gradient(135deg,#0F6E56 0%,#123A31 50%,#F8FAFB 50%,#F8FAFB 100%)}
.auth-brand{padding:4rem 6vw;color:#fff;display:flex;flex-direction:column;justify-content:center;gap:1.25rem;max-width:820px}
.brand-logo{display:flex;align-items:center;gap:.7rem;font-weight:900;letter-spacing:.02em;color:var(--secondary)}
.auth-brand .brand-logo{color:#fff}.brand-logo.big{font-size:1.35rem}.mark{display:inline-flex;align-items:end;gap:4px;height:24px}.mark i{display:block;width:4px;border-radius:4px;background:currentColor}.mark i:nth-child(1){height:9px;opacity:.65}.mark i:nth-child(2){height:16px;opacity:.82}.mark i:nth-child(3){height:24px}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.77rem;font-weight:900;color:#BCEBDD}.auth-brand h1{font-size:clamp(2.4rem,5vw,4.9rem);line-height:1.02;letter-spacing:-.05em;max-width:820px}.auth-brand p{font-size:1.1rem;line-height:1.7;color:#DAF7EE;max-width:640px}
.auth-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem;margin-top:1rem;max-width:640px}.auth-highlights div{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:16px;padding:1rem}.auth-highlights b{display:block;font-size:1.65rem}.auth-highlights span{color:#D6F3EA;font-size:.86rem}
.auth-card{align-self:center;justify-self:center;width:min(92%,460px);background:#fff;border:1px solid var(--line);border-radius:24px;padding:1.2rem;box-shadow:0 30px 80px rgba(15,110,86,.16)}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:#F1F7F5;border-radius:14px;padding:.3rem;margin-bottom:1rem}.auth-tabs button{border:0;background:transparent;border-radius:11px;padding:.75rem;font-weight:900;color:var(--muted)}.auth-tabs button.active{background:#fff;color:var(--secondary);box-shadow:0 4px 14px rgba(15,110,86,.08)}
.auth-form{display:flex;flex-direction:column;gap:.92rem}.auth-form h2{font-size:1.35rem}.auth-form small{text-align:center;margin-top:.25rem}

/* ---------- Layout app ---------- */
.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);padding:1.15rem;display:flex;flex-direction:column;z-index:50}.sidebar .brand-logo{padding:.65rem .6rem;margin-bottom:1rem}.side-nav{display:flex;flex-direction:column;gap:.35rem;flex:1}.side-nav button{border:0;background:transparent;border-radius:12px;padding:.85rem .9rem;text-align:left;display:flex;gap:.72rem;align-items:center;font-weight:800;color:#52615D;transition:.18s ease}.side-nav button:hover,.side-nav button.active{background:var(--soft);color:var(--secondary)}.side-footer{border-top:1px solid var(--line);padding-top:1rem;display:flex;gap:.75rem;align-items:center}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--secondary);color:#fff;font-weight:900}.side-footer div:last-child{min-width:0}.side-footer strong,.side-footer span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-footer span{font-size:.8rem;color:var(--muted)}
.main-area{min-width:0}.topbar{position:sticky;top:0;background:rgba(248,250,251,.86);backdrop-filter:blur(18px);z-index:30;border-bottom:1px solid var(--line);padding:1rem 1.4rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.topbar h1{font-size:1.35rem}.topbar p{font-size:.86rem;color:var(--muted);margin-top:.1rem}.top-actions{display:flex;align-items:center;gap:.6rem}.view-root{padding:1.4rem;max-width:1600px;margin:0 auto}

/* ---------- Skeleton loaders ---------- */
.skeleton{position:relative;overflow:hidden;background:#EEF3F1;border-radius:10px}.skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);animation:shimmer 1.1s infinite}@keyframes shimmer{100%{transform:translateX(100%)}}
.metric-card{padding:1.15rem}.metric-card .icon{width:42px;height:42px;border-radius:12px;background:var(--soft);display:grid;place-items:center;margin-bottom:1rem}.metric-card b{display:block;font-size:1.75rem;letter-spacing:-.04em}.metric-card span{color:var(--muted);font-size:.86rem}.metric-trend{margin-top:.7rem;font-size:.8rem;color:var(--secondary);font-weight:800}

/* ---------- Dashboard ---------- */
.message-list,.module-list,.charge-list,.patient-list,.wait-list{display:flex;flex-direction:column;gap:.72rem}.message-item,.module-item,.charge-item,.patient-row,.wait-item{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.8rem;border:1px solid var(--line);border-radius:12px;background:#fff}.message-item strong,.patient-row strong{display:block}.message-item span,.module-item span,.patient-row span,.wait-item span{font-size:.82rem;color:var(--muted)}.shortcut-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.shortcut{border:1px solid var(--line);background:#fff;border-radius:14px;padding:1rem;text-align:left;font-weight:900;color:var(--secondary);transition:.2s}.shortcut:hover{border-color:rgba(29,158,117,.55);transform:translateY(-2px);box-shadow:var(--shadow)}

/* ---------- Agenda ---------- */
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.segmented{display:inline-flex;background:#EDF5F2;border-radius:12px;padding:.25rem}.segmented button{border:0;background:transparent;padding:.65rem .9rem;border-radius:10px;font-weight:900;color:var(--muted)}.segmented button.active{background:#fff;color:var(--secondary);box-shadow:0 4px 12px rgba(15,110,86,.08)}
.calendar-week{display:grid;grid-template-columns:78px repeat(7,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.cal-head,.time-cell,.slot{border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.cal-head{padding:.8rem;text-align:center;background:#F4F8F6;font-weight:900;position:sticky;top:74px;z-index:4}.cal-head small{display:block;font-weight:600;color:var(--muted)}.time-cell{padding:.7rem;font-size:.78rem;color:var(--muted);background:#FAFCFB}.slot{min-height:86px;padding:.35rem;background:#fff;transition:.15s}.slot:hover,.slot.dragover{background:#F2FBF7}.appointment{border:1px solid rgba(29,158,117,.22);background:#EAF8F2;border-left:4px solid var(--primary);border-radius:10px;padding:.45rem .5rem;margin-bottom:.35rem;font-size:.78rem;box-shadow:0 6px 14px rgba(15,110,86,.06);cursor:grab}.appointment b{display:block;font-size:.82rem}.appointment.high-risk{background:#FFF4DE;border-color:rgba(239,159,39,.25);border-left-color:var(--warning)}.appointment .meta{display:flex;justify-content:space-between;gap:.5rem;color:#64746F;margin-top:.18rem}.calendar-month{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem}.month-cell{min-height:138px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.7rem}.month-cell.other{opacity:.45}.month-cell strong{font-size:.86rem}.month-appt{margin-top:.35rem;padding:.35rem .45rem;border-radius:8px;background:var(--soft);font-size:.75rem;color:var(--secondary);font-weight:800}.agenda-layout{display:grid;grid-template-columns:1fr 330px;gap:1rem}.risk-dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--primary)}.risk-dot.high{background:var(--warning)}

/* ---------- WhatsApp ---------- */
.tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.tabs button{border:1px solid var(--line);background:#fff;color:#52615D;border-radius:999px;padding:.62rem .9rem;font-weight:900}.tabs button.active{background:var(--secondary);color:#fff;border-color:var(--secondary)}.inbox{display:grid;grid-template-columns:310px 1fr;min-height:650px;overflow:hidden}.contact-list{border-right:1px solid var(--line);background:#FAFCFB;overflow:auto}.contact{padding:1rem;border-bottom:1px solid var(--line);cursor:pointer}.contact.active,.contact:hover{background:#fff}.contact strong{display:flex;justify-content:space-between;gap:.5rem}.contact p{font-size:.84rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.25rem}.chat-panel{display:flex;flex-direction:column;min-width:0}.chat-head{padding:1rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.chat-body{flex:1;padding:1rem;background:#F5FBF8;overflow:auto}.bubble{max-width:72%;padding:.75rem .9rem;border-radius:16px;margin-bottom:.75rem;box-shadow:0 4px 12px rgba(0,0,0,.04);font-size:.92rem}.bubble.in{background:#fff;border-top-left-radius:4px}.bubble.out{background:#DDF7EC;margin-left:auto;border-top-right-radius:4px}.chat-compose{display:flex;gap:.6rem;padding:1rem;border-top:1px solid var(--line);background:#fff}.chat-compose input{flex:1}.flow-card,.template-card{padding:1rem;border:1px solid var(--line);border-radius:14px;background:#fff}.flow-card h3,.template-card h3{margin-bottom:.6rem}.report-kpi{padding:1rem;background:#fff;border:1px solid var(--line);border-radius:14px}.report-kpi b{font-size:1.6rem;display:block;color:var(--secondary)}

/* ---------- CRM / Kanban ---------- */
.kanban{display:grid;grid-template-columns:repeat(5,minmax(230px,1fr));gap:.9rem;overflow:auto;padding-bottom:.4rem}.kanban-col{background:#F3F8F6;border:1px solid var(--line);border-radius:16px;padding:.75rem;min-height:560px}.kanban-col h3{font-size:.92rem;margin:.15rem .25rem .75rem;display:flex;justify-content:space-between}.deal-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:.85rem;margin-bottom:.7rem;box-shadow:0 8px 22px rgba(15,110,86,.05);cursor:grab}.deal-card strong{display:block}.deal-card .value{font-weight:900;color:var(--secondary);margin-top:.45rem}.deal-card footer{display:flex;justify-content:space-between;align-items:center;margin-top:.7rem}.kanban-col.dragover{outline:2px dashed var(--primary);outline-offset:3px}.patient-profile{display:grid;grid-template-columns:1fr 310px;gap:1rem}.timeline{display:flex;flex-direction:column;gap:.7rem}.timeline div{padding:.75rem;border:1px solid var(--line);border-radius:12px;background:#fff}

/* ---------- Reativação / Analytics ---------- */
.campaign-builder{display:grid;grid-template-columns:1fr 330px;gap:1rem}.seasonal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.seasonal-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:.9rem}.chart-card{padding:1rem;min-height:320px}.bars{display:flex;align-items:end;gap:.65rem;height:220px;border-bottom:1px solid var(--line);padding:1rem 0}.bar{flex:1;background:var(--primary);border-radius:10px 10px 0 0;min-height:18px;position:relative}.bar span{position:absolute;bottom:-1.7rem;left:50%;transform:translateX(-50%);font-size:.75rem;color:var(--muted)}.pie{width:210px;height:210px;border-radius:50%;background:conic-gradient(var(--primary) 0 42%, var(--secondary) 42% 66%, var(--warning) 66% 82%, #8CD9BF 82% 100%);margin:1rem auto}.gauge{width:240px;height:120px;border-radius:240px 240px 0 0;background:conic-gradient(from 180deg,var(--danger) 0 18%,var(--warning) 18% 35%,var(--primary) 35% 76%,#E5ECE9 76% 100%);margin:2rem auto 1rem;position:relative}.gauge::after{content:"76%";position:absolute;left:50%;bottom:-18px;transform:translateX(-50%);width:145px;height:72px;border-radius:145px 145px 0 0;background:#fff;display:flex;align-items:flex-end;justify-content:center;font-size:2rem;font-weight:900;color:var(--secondary)}.line-chart{width:100%;height:240px}.line-chart path{fill:none;stroke:var(--primary);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.line-chart circle{fill:var(--secondary)}

/* ---------- Bloqueio de plano ---------- */
.locked-preview{min-height:620px;border:1px dashed #CAD7D2;border-radius:22px;background:linear-gradient(135deg,#fff,rgba(237,248,244,.72));display:grid;place-items:center;padding:2rem;text-align:center;position:relative;overflow:hidden}.locked-preview::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(29,158,117,.12),transparent 35%)}.locked-preview .inner{position:relative;max-width:640px}.locked-preview h2{font-size:2rem;margin:.6rem 0}.preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin:1.5rem 0}.preview-card{height:110px;border-radius:16px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);opacity:.75}

/* ---------- Cobranças ---------- */
.charge-status{font-weight:900}.charge-status.pendente,.charge-status.vencido{color:var(--danger)}.charge-status.pago{color:var(--secondary)}.billing-history table,.data-table{width:100%;border-collapse:collapse}.billing-history th,.billing-history td,.data-table th,.data-table td{padding:.85rem;border-bottom:1px solid var(--line);text-align:left;font-size:.9rem}.billing-history th,.data-table th{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}

/* ---------- Modal e Toast ---------- */
.modal-backdrop{position:fixed;inset:0;background:rgba(18,32,28,.42);z-index:100;display:grid;place-items:center;padding:1rem}.modal{width:min(920px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.24);position:relative;padding:1.25rem}.modal-close{position:sticky;top:0;margin-left:auto;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#F4F7F6;color:var(--secondary);font-size:1.35rem;z-index:2}.toast-stack{position:fixed;right:1rem;bottom:1rem;z-index:200;display:flex;flex-direction:column;gap:.6rem}.toast{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-left:4px solid var(--primary);border-radius:12px;padding:.85rem 1rem;min-width:280px;animation:toastIn .25s ease}.toast.error{border-left-color:var(--danger)}.toast.warn{border-left-color:var(--warning)}@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- Impressão PDF fallback ---------- */
.print-doc{font-family:var(--font);padding:2rem;color:#111}.print-doc h1{color:var(--secondary)}@media print{body>*:not(.print-area){display:none!important}.print-area{display:block!important}}

/* ---------- Responsivo ---------- */
@media(max-width:1180px){.grid.four{grid-template-columns:repeat(2,1fr)}.grid.three,.agenda-layout,.campaign-builder,.patient-profile{grid-template-columns:1fr}.shortcut-grid{grid-template-columns:repeat(2,1fr)}.kanban{grid-template-columns:repeat(5,260px)}.inbox{grid-template-columns:260px 1fr}}
@media(max-width:860px){.mobile-only{display:grid!important}.auth-view{grid-template-columns:1fr;background:#F8FAFB}.auth-brand{padding:2rem;color:var(--secondary)}.auth-brand p{color:#36554D}.auth-highlights{grid-template-columns:1fr}.auth-highlights div{background:#fff;color:var(--ink);border:1px solid var(--line)}.auth-card{margin:0 auto 2rem}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;transform:translateX(-105%);transition:.25s ease;width:280px;box-shadow:0 30px 80px rgba(0,0,0,.18)}.sidebar.open{transform:none}.topbar{align-items:flex-start}.top-actions{flex-wrap:wrap;justify-content:flex-end}.calendar-week{grid-template-columns:62px repeat(7,180px);overflow:auto}.calendar-wrap{overflow:auto}.grid.two,.grid.four,.form-grid{grid-template-columns:1fr}.inbox{grid-template-columns:1fr}.contact-list{max-height:220px;border-right:0;border-bottom:1px solid var(--line)}.seasonal-grid,.preview-grid{grid-template-columns:1fr}.view-root{padding:1rem}.modal{padding:1rem}}
