/* ============================================================
   Agenda CRM — Design System Livel v2
   Cores por andar: 1º Studio ROXO #632465 · 2º Pilates DOURADO #D4A017 · 3º Funcional LARANJA #FF914D
   Regra "roxo lidera": CTA primário é sempre roxo em qualquer andar;
   a cor do andar tinge fundo, badges e navegação — nunca o botão de ação.
   ============================================================ */

/* --- Tema por andar (data-sector é definido pelo JS no elemento .crm-module) --- */
.crm-module{--floor:#632465;--floor-ink:#632465;--floor-dim:rgba(99,36,101,.10);--floor-bg:#F7F3F7}
.crm-module[data-sector="pilates"]{--floor:#D4A017;--floor-ink:#7D5B0C;--floor-dim:rgba(212,160,23,.16);--floor-bg:#FAF5E7}
.crm-module[data-sector="funcional"]{--floor:#FF914D;--floor-ink:#B04A0E;--floor-dim:rgba(255,145,77,.16);--floor-bg:#FBF2EA}

.crm-module{display:none;min-height:calc(100vh - 54px);max-width:100%;overflow-x:clip;background:var(--floor-bg);padding:22px 24px 76px;color:var(--txt);transition:background-color .4s}
.crm-module.show{display:block}
.crm-shell{width:100%;max-width:1440px;min-width:0;margin:0 auto}

/* --- Cabeçalho da página: hierarquia editorial Livel --- */
.crm-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}
.crm-eyebrow{font-size:11px;font-weight:800;letter-spacing:.28em;text-transform:uppercase;color:var(--floor-ink)}
.crm-page-head h1{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:34px;line-height:.95;letter-spacing:.02em;text-transform:uppercase;margin-top:6px;color:var(--txt)}
.crm-page-head h1::after{content:'.';color:var(--floor)}
.crm-page-sub{font-size:13px;color:var(--txt2);margin-top:6px}
.crm-page-sub::first-letter{text-transform:uppercase}
.crm-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* --- Botões: 1 primário roxo por contexto; o resto é claramente secundário --- */
.crm-btn{min-height:44px;border-radius:var(--r3);border:1.5px solid var(--brd2);background:#fff;color:var(--txt);padding:10px 18px;font-size:12.5px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s}
.crm-btn:hover{border-color:var(--p);color:var(--p);background:#fff}
.crm-btn:focus-visible,.crm-sector:focus-visible,.crm-icon-btn:focus-visible,.crm-platform:focus-visible,.crm-time-link:focus-visible{outline:3px solid #632465;outline-offset:2px;box-shadow:0 0 0 5px #fff}
.crm-btn.primary{background:var(--p);border-color:var(--p);color:#fff;box-shadow:0 2px 10px rgba(99,36,101,.22)}
.crm-btn.primary:hover{background:var(--p2);border-color:var(--p2);color:#fff;box-shadow:0 4px 18px rgba(99,36,101,.4)}
.crm-btn.success{background:var(--grn);border-color:var(--grn);color:#fff}
.crm-btn.success:hover{background:#256428;border-color:#256428;color:#fff}
.crm-btn.warn{border-color:#E8C878;color:#8A5700;background:#FDF6DC}
.crm-btn.warn:hover{border-color:#8A5700;color:#8A5700;background:#FDF6DC}
.crm-btn.danger{border-color:#EFC0B4;color:var(--red);background:#fff}
.crm-btn.danger:hover{border-color:var(--red);color:var(--red)}
/* Estado "aguardando" NÃO parece ação: neutro, sem sombra, sem roxo */
.crm-btn.waiting,.crm-btn.waiting:hover,.crm-btn.primary:disabled{background:var(--gl);border-color:transparent;color:var(--txt3);box-shadow:none;cursor:not-allowed}
/* WhatsApp: canal de conversão (cor oficial #25D366 do playbook) — verde ≠ compete com o roxo "ação principal" */
.crm-btn.whatsapp{background:#25D366;border-color:#25D366;color:#fff}
.crm-btn.whatsapp:hover{background:#1EAE54;border-color:#1EAE54;color:#fff}
.crm-btn.whatsapp svg{flex:none}
.crm-btn:disabled{opacity:.9;cursor:not-allowed;box-shadow:none}
.crm-btn.loading{pointer-events:none;opacity:.68}

/* --- Seletor de andar: cada andar mostra a própria cor do playbook --- */
.crm-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0;background:transparent;border:0;margin-bottom:12px}
.crm-sector-tabs{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:8px;flex:1}
.crm-sector{--sector-accent:#632465;--sector-ink:#632465;min-height:64px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;border:1.5px solid var(--brd);border-left:5px solid var(--sector-accent);background:#fff;color:var(--txt);padding:8px 12px;border-radius:14px;font-family:inherit;cursor:pointer;text-align:left;transition:border-color .16s,background-color .16s,box-shadow .16s}
.crm-sector[data-sector="studio"]{--sector-accent:#632465;--sector-ink:#632465}
.crm-sector[data-sector="pilates"]{--sector-accent:#D4A017;--sector-ink:#7D5B0C}
.crm-sector[data-sector="funcional"]{--sector-accent:#FF914D;--sector-ink:#B04A0E}
.crm-sector span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.18em;color:var(--sector-ink)}
.crm-sector strong{font-size:14px;line-height:1.2}.crm-sector small{font-size:10.5px;line-height:1.35;color:var(--txt2);font-weight:600}
.crm-sector:hover{border-color:var(--sector-accent);box-shadow:0 4px 13px rgba(42,38,34,.07)}
.crm-sector.active{background:color-mix(in srgb,var(--sector-accent) 9%,white);border-color:var(--sector-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--sector-accent) 16%,transparent)}
.crm-sector.single{cursor:default}
.crm-sector.single:hover{box-shadow:0 0 0 2px color-mix(in srgb,var(--sector-accent) 16%,transparent)}

/* --- Navegação de semana e dia: sem moldura de card, só conteúdo --- */
.crm-week-nav{display:grid;gap:10px;padding:0;margin-bottom:0;border:0;background:transparent}
.crm-week-controls{display:flex;align-items:center;justify-content:space-between;gap:14px}
.crm-period-control{display:flex;align-items:center;gap:9px}.crm-period-control>div{min-width:130px;text-align:center}.crm-period-control span,.crm-date-jump span{display:block;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--txt2);margin-bottom:2px}.crm-period-control strong{display:block;font-size:13.5px;color:var(--txt)}
.crm-date-jump{display:flex;align-items:center;gap:9px}.crm-date-jump span{margin:0;white-space:nowrap}.crm-date-jump input,.crm-filter input,.crm-filter select{height:44px;border:1.5px solid var(--brd2);border-radius:10px;background:#fff;color:var(--txt);padding:0 10px;font:600 12px/1 inherit;font-family:inherit}
.crm-icon-btn{width:44px;height:44px;border:1.5px solid var(--brd2);border-radius:50%;background:#fff;color:var(--p);font-size:18px;cursor:pointer;transition:border-color .16s}
.crm-icon-btn:hover{border-color:var(--p)}
.crm-day-nav{display:flex;max-width:100%;gap:8px;padding:2px 0 6px;border-top:0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-color:#c7bfb4 transparent;scrollbar-width:thin}.crm-day-nav::-webkit-scrollbar{height:6px}.crm-day-nav::-webkit-scrollbar-track{background:transparent}.crm-day-nav::-webkit-scrollbar-thumb{background:#c7bfb4;border-radius:99px}
.crm-day-nav-btn{position:relative;flex:1 0 104px;min-height:52px;display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:7px;padding:7px 11px;border:1.5px solid var(--brd);border-radius:var(--r3);background:#fff;color:var(--txt);font-family:inherit;text-align:left;cursor:pointer;scroll-snap-align:start;transition:border-color .16s,background-color .16s}
.crm-day-nav-btn span{font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--txt2)}
.crm-day-nav-btn strong{grid-column:1;font-size:12px;text-transform:capitalize}
.crm-day-nav-btn em{grid-column:2;grid-row:1/3;min-width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--gl);color:var(--txt2);font-size:11.5px;font-style:normal;font-weight:800}
.crm-day-nav-btn:hover{border-color:var(--floor)}
.crm-day-nav-btn.today span{color:var(--floor-ink)}
.crm-day-nav-btn.selected{border-color:var(--floor);background:#fff;box-shadow:0 0 0 2px var(--floor-dim)}
.crm-day-nav-btn.selected em{background:var(--floor-ink);color:#fff}
.crm-day-nav-btn:focus-visible{outline:3px solid #632465;outline-offset:2px;box-shadow:0 0 0 5px #fff}
.crm-day-nav-btn.error{border-color:#EFC0B4}.crm-day-nav-btn.error em{background:var(--redl);color:var(--red)}

/* --- Funil da semana: chips leves, número colorido por estado --- */
.crm-flow-strip{display:flex;align-items:center;gap:8px;margin:12px 0 0;padding:0;border:0;background:transparent;overflow-x:auto;scrollbar-width:none}
.crm-flow-strip::-webkit-scrollbar{display:none}
.crm-flow-step{min-width:118px;min-height:46px;display:flex;align-items:center;gap:8px;padding:6px 15px 6px 8px;border:1.5px solid var(--brd);border-radius:var(--r3);background:#fff;color:var(--txt2);font-family:inherit;text-align:left;cursor:pointer;transition:border-color .18s,box-shadow .18s,background-color .18s}
.crm-flow-step strong{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--gl);color:var(--txt);font-size:13px;font-weight:800}
.crm-flow-step span{font-size:11px;font-weight:700;white-space:nowrap}
.crm-flow-step.scheduled strong{background:var(--ambl);color:#8A5700}
.crm-flow-step.progress strong{background:var(--blul);color:var(--blu)}
.crm-flow-step.done strong{background:var(--grnl);color:var(--grn)}
.crm-flow-step.missed strong{background:var(--redl);color:var(--red)}
.crm-flow-step:hover{border-color:var(--floor)}
.crm-flow-step.active{border-color:var(--floor);background:#fff;color:var(--txt);box-shadow:0 0 0 2px var(--floor-dim)}
.crm-flow-step:focus-visible,.crm-pending-action:focus-visible{outline:3px solid #632465;outline-offset:2px}
.crm-flow-arrow{color:#b8b1a6;font-size:13px;flex:none}

/* --- Grade da agenda: a coluna do dia é o ÚNICO nível de card --- */
.crm-agenda-grid{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;gap:16px;align-items:start}
.crm-card{background:#fff;border:1px solid var(--brd);border-radius:var(--r2);box-shadow:0 1px 3px rgba(42,38,34,.04)}
.crm-timeline{min-width:0;background:#fff;border:1px solid var(--brd);border-radius:var(--r2);box-shadow:0 1px 3px rgba(42,38,34,.05);overflow:hidden}
/* Cluster de navegação (semana + dias + funil) integrado como cabeçalho do card, tingido pela cor do andar */
.crm-timeline-toolbar{padding:14px 16px;background:var(--floor-dim);border-bottom:1px solid var(--brd)}
.crm-timeline-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px 4px;border-bottom:0;background:transparent}
.crm-timeline-head strong{display:block;font-size:15px}.crm-timeline-head small{display:block;margin-top:3px;color:var(--txt2);font-size:12px;font-weight:600}
.crm-capacity-note{font-size:11.5px;color:var(--txt2)}
.crm-week-viewport{width:100%;overflow-x:auto;padding:12px 12px 14px;scroll-snap-type:x mandatory;scrollbar-gutter:stable;scrollbar-color:#c7bfb4 transparent;scrollbar-width:thin;overscroll-behavior-x:contain}
.crm-week-viewport::-webkit-scrollbar{height:9px}.crm-week-viewport::-webkit-scrollbar-track{background:transparent}.crm-week-viewport::-webkit-scrollbar-thumb{background:#c7bfb4;border-radius:99px}
.crm-day-track{display:flex;align-items:flex-start;gap:12px;min-width:100%;padding-bottom:4px}
.crm-day-column{flex:0 0 calc((100% - 24px)/3);min-width:280px;border:1px solid var(--brd);border-radius:16px;background:#fff;overflow:hidden;scroll-snap-align:start;box-shadow:0 1px 3px rgba(42,38,34,.05)}
.crm-day-column.selected{border-color:var(--floor);box-shadow:0 0 0 2px var(--floor-dim)}
.crm-day-column.today .crm-day-head{background:var(--floor-dim)}
.crm-day-head{width:100%;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border:0;border-bottom:1px solid var(--brd);background:#fff;color:var(--txt);font-family:inherit;text-align:left;cursor:pointer}
.crm-day-head:hover{background:var(--floor-dim)}.crm-day-head:focus-visible,.crm-day-footer .crm-btn:focus-visible{outline:3px solid #632465;outline-offset:-3px}
.crm-day-head>span:first-child small{display:block;color:var(--floor-ink);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.14em}
.crm-day-head>span:first-child strong{display:block;margin-top:2px;font-size:17px;text-transform:capitalize}
.crm-day-count{min-width:58px;text-align:right;color:var(--floor-ink);font-size:22px;font-weight:800}
.crm-day-count small{display:block;color:var(--txt2);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.crm-day-content{display:block;min-height:180px;padding:2px 12px 8px;background:#fff}
/* Horários: linhas planas separadas por régua — sem card dentro de card */
.crm-day-slot{border:0;border-radius:0;background:transparent;padding:10px 0;border-top:1px solid var(--brd)}
.crm-day-slot:first-child{border-top:0}
.crm-day-slot-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:7px}
.crm-day-slot-head strong{font-size:14px;color:var(--txt);font-weight:800}
.crm-day-slot-head span{font-size:10.5px;color:var(--txt3);font-weight:600;text-align:right}
.crm-day-bookings{display:grid;gap:8px}.crm-day-bookings .crm-booking{min-width:0}
.crm-free-line{min-height:42px;display:grid;place-items:center;border:1.5px dashed var(--brd2);border-radius:10px;color:var(--txt3);font-size:11px;font-weight:600}
/* Medidor de ocupação por horário — barra tinge com a cor do andar ativo */
.crm-slot-meter{height:4px;border-radius:99px;background:var(--gl);overflow:hidden;margin:1px 0 9px}
.crm-slot-meter i{display:block;height:100%;border-radius:inherit;background:var(--floor);transition:width .3s}
/* Horário lotado: sem vaga — sinaliza que não cabe mais aluno */
.crm-day-slot.full .crm-slot-meter i{background:var(--floor-ink)}
.crm-day-slot.full .crm-day-slot-head span{color:var(--floor-ink);font-weight:800}
/* Horário já encerrado e vazio: espaço morto — atenua para o olho ir ao próximo */
.crm-day-slot.past{opacity:.55}
.crm-day-slot.past .crm-free-line{border-style:solid;border-color:var(--brd)}
.crm-day-empty{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px;color:var(--txt2)}
.crm-day-empty strong{color:var(--txt2);font-size:12.5px}.crm-day-empty span{max-width:200px;margin-top:4px;font-size:11px;line-height:1.5}
.crm-day-column.error{border-color:#EFC0B4}
.crm-day-error{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px;background:var(--redl);color:var(--red)}
.crm-day-error strong{font-size:12px}.crm-day-error span{max-width:210px;margin-top:4px;font-size:10px;line-height:1.5}
.crm-day-footer{display:flex;gap:8px;padding:9px 12px;border-top:1px solid var(--brd);background:#fff}
.crm-day-footer .crm-btn{flex:1;padding:8px 10px;font-size:11px;min-height:40px}
.crm-day-footer .crm-btn:not(.primary){border-color:transparent;background:transparent;color:var(--floor-ink);font-weight:700}
.crm-day-footer .crm-btn:not(.primary):hover{background:var(--floor-dim);color:var(--floor-ink)}
/* CTA secundário ghost (playbook §9.3): o roxo sólido fica reservado à ação principal do ecrã */
.crm-day-footer .crm-btn.primary{background:transparent;border:2px solid var(--p);color:var(--p);box-shadow:none}
.crm-day-footer .crm-btn.primary:hover{background:var(--pl);color:var(--p)}

/* --- Card de agendamento: o elemento que importa --- */
.crm-booking{position:relative;min-height:58px;border:1px solid var(--brd);background:#fff;border-radius:12px;padding:10px 12px;min-width:140px;scroll-snap-align:start;box-shadow:0 1px 2px rgba(42,38,34,.05)}
.crm-booking[data-platform="wellhub"]{border-left:3px solid #242424}
.crm-booking[data-platform="totalpass"]{border-left:3px solid #2169cc}
.crm-booking[data-platform="classpass"]{border-left:3px solid #6c3ba1}
.crm-booking-top{display:flex;align-items:center;justify-content:space-between;gap:6px 8px;flex-wrap:wrap}
.crm-booking-tags{display:inline-flex;align-items:center;gap:8px;flex:none;margin-left:auto}
/* Logo da plataforma (recortado) para identificação rápida — Wellhub/TotalPass/ClassPass */
.crm-platform-logo{display:inline-flex;align-items:center;flex:none}
.crm-platform-logo img{height:13px;width:auto;display:block}
.crm-platform-logo[data-platform="totalpass"] img{height:11px}
.crm-time-link{min-width:44px;min-height:44px;display:inline-flex;align-items:center;padding:0 4px;border:0;background:none;color:var(--p);font:700 11px/1.2 inherit;font-family:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.crm-time-plain{font-size:10px;font-weight:800;color:var(--txt3)}
.crm-status{display:inline-flex;align-items:center;border-radius:99px;padding:4px 9px;font-size:9.5px;font-weight:800;white-space:nowrap}
.crm-status.agendada{background:var(--ambl);color:#8A5700}
.crm-status.confirmada_cliente{background:var(--pl);color:var(--p)}
.crm-status.em_atendimento{background:var(--blul);color:var(--blu)}
.crm-status.experimental_realizada{background:var(--grnl);color:var(--grn)}
.crm-status.faltou_automatico{background:var(--redl);color:var(--red)}
.crm-status.cancelada,.crm-status.reagendada{background:#ECE9E4;color:var(--txt2)}
.crm-booking-name{font-size:13.5px;font-weight:800;margin:6px 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crm-booking-meta{font-size:11px;color:var(--txt2);line-height:1.45;min-height:15px}
.crm-booking-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px;padding-top:9px;border-top:1px dashed var(--brd)}
.crm-booking-actions .crm-btn{min-height:44px;padding:8px 10px;font-size:11px;flex:1}
.crm-conversion-state{min-height:44px;flex:1;display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid #A9D6AE;border-radius:var(--r3);background:var(--grnl);color:var(--grn);font-size:11px;font-weight:800;text-align:center}

/* --- Pendências --- */
.crm-side{padding:16px;position:static}
.crm-side h2{font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--txt2);margin-bottom:10px}
.crm-pending{padding:10px 0;border-top:1px solid var(--brd)}
.crm-pending:first-of-type{border-top:0}
.crm-pending strong{display:block;font-size:12.5px}.crm-pending span{display:block;font-size:11px;color:var(--txt2);line-height:1.45;margin-top:2px}
#crm-pending-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}#crm-pending-list .crm-pending{border:1px solid var(--brd);border-radius:12px;padding:11px 12px}
.crm-pending-action{width:100%;min-height:64px;background:#fff;color:var(--txt);font-family:inherit;text-align:left;cursor:pointer;transition:border-color .18s,background-color .18s}.crm-pending-action:hover{border-color:var(--p)!important;background:var(--pl)}
.crm-empty{padding:38px 20px;text-align:center;color:var(--txt3);font-size:12.5px}
.crm-error{margin:14px 0;padding:12px 14px;border-radius:12px;background:var(--redl);color:var(--red);font-size:12px;line-height:1.45}
.crm-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* --- Painel "Agendados de hoje" (vive nas telas de avaliação) --- */
.prof-today{margin:10px 0 12px;padding:12px;border:1px solid var(--brd);border-radius:14px;background:#fff}
.prof-today[hidden]{display:none}.prof-today-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.prof-today-title{font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--p)}.prof-today-sector{font-size:8.5px;font-weight:700;color:var(--txt3)}
.prof-today-open{min-height:44px;min-width:72px;border:0;background:transparent;color:var(--p);font:700 10px inherit;font-family:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.prof-today-list{display:grid;gap:5px}.prof-today-row{width:100%;min-height:44px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 8px;border:1px solid var(--brd);border-radius:10px;background:#fff;color:var(--txt);font-family:inherit;text-align:left;cursor:pointer}
.prof-today-row:hover{border-color:var(--p);background:var(--pl)}.prof-today-time{font-size:11px;font-weight:800;color:var(--p)}.prof-today-name{font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prof-today-meta{display:block;font-size:8.5px;color:var(--txt3);margin-top:1px}
.prof-today-status{max-width:76px;padding:3px 6px;border-radius:99px;background:var(--ambl);color:#8A5700;font-size:7.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prof-today-status.done{background:var(--grnl);color:var(--grn)}.prof-today-status.progress{background:var(--blul);color:var(--blu)}.prof-today-status.missed{background:var(--redl);color:var(--red)}
.prof-today-empty{padding:8px 4px;color:var(--txt3);font-size:10px;line-height:1.4}.prof-today-more{margin-top:6px;color:var(--txt3);font-size:8.5px;text-align:center}

/* --- Modais --- */
.crm-modal-ov{position:fixed;inset:0;z-index:350;background:rgba(42,38,34,.5);display:none;align-items:center;justify-content:center;padding:20px}
.crm-modal-ov.open{display:flex}
.crm-modal{width:min(620px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;padding:24px;box-shadow:0 24px 70px rgba(42,38,34,.28)}
.crm-modal.small{width:min(450px,100%)}
.crm-modal h2{font-size:20px;letter-spacing:-.3px}.crm-modal-sub{font-size:12px;color:var(--txt2);margin:5px 0 18px}
.crm-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.crm-field.full{grid-column:1/-1}
.crm-field label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--txt2);font-weight:800;margin-bottom:5px}
.crm-field input,.crm-field select,.crm-field textarea{width:100%;border:1.5px solid var(--brd2);border-radius:10px;background:#fff;color:var(--txt);padding:0 11px;font:600 13px inherit;font-family:inherit}
.crm-field input,.crm-field select{height:44px}.crm-field textarea{min-height:76px;padding-top:10px;resize:vertical}
.crm-field input:focus,.crm-field select:focus,.crm-field textarea:focus{outline:3px solid rgba(99,36,101,.14);border-color:var(--p)}
.crm-field-help{font-size:10px;color:var(--txt3);margin-top:4px;line-height:1.4}
.crm-platforms{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.crm-platform{min-height:74px;border:1.5px solid var(--brd);border-radius:12px;background:#fff;color:var(--txt);font:800 11px inherit;font-family:inherit;cursor:pointer;position:relative;padding:9px 7px;overflow:hidden}
.crm-platform img{display:block;width:100%;height:27px;object-fit:contain;margin:0 auto}
.crm-platform.totalpass img{transform:scale(1.23)}.crm-platform.classpass img{transform:scale(1.2)}
.crm-platform small{display:block;color:var(--txt3);font-size:8px;margin-top:3px;font-weight:600}
.crm-platform.selected{border-color:var(--p);background:var(--pl);box-shadow:0 0 0 2px rgba(99,36,101,.08)}
.crm-platform.totalpass{color:#2169cc}.crm-platform.classpass{color:#543080}
.crm-platform.selected:after{content:'✓';position:absolute;right:5px;top:5px;width:15px;height:15px;border-radius:50%;background:var(--p);color:#fff;display:grid;place-items:center;font-size:8px}
.crm-platform-status{grid-column:1/-1;min-height:18px;color:var(--txt3);font-size:9.5px;line-height:1.4;padding:1px 3px}
.crm-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid var(--brd)}
.crm-modal-actions.split{justify-content:flex-start;flex-wrap:wrap}
.crm-modal-actions-spacer{flex:1 1 auto;min-width:18px}
.crm-modal-error{display:none;margin-top:10px;padding:9px 11px;background:var(--redl);color:var(--red);border-radius:8px;font-size:10.5px}.crm-modal-error.show{display:block}

/* --- Dashboard / KPIs (painel coordenação) --- */
.crm-filters{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;padding:12px 14px;margin-bottom:14px}
.crm-filter label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--txt3);font-weight:800;margin-bottom:4px}
.crm-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}
.crm-kpi{padding:15px}.crm-kpi-label{font-size:9px;color:var(--txt2);text-transform:uppercase;letter-spacing:.08em;font-weight:800}.crm-kpi-num{font-size:28px;font-weight:800;letter-spacing:-.7px;color:var(--p);margin-top:3px}.crm-kpi-foot{font-size:9.5px;color:var(--txt3);margin-top:3px;line-height:1.4}
.crm-dashboard-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}
.crm-dash-card{padding:17px}.crm-dash-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.crm-dash-title h2{font-size:13px}.crm-dash-title span{font-size:9.5px;color:var(--txt3)}
.crm-funnel-row{display:grid;grid-template-columns:140px 1fr 70px;align-items:center;gap:10px;margin:11px 0}.crm-funnel-label{font-size:10.5px;font-weight:700}.crm-funnel-bar{height:8px;background:var(--gl);border-radius:99px;overflow:hidden}.crm-funnel-bar i{display:block;height:100%;border-radius:inherit;background:var(--p)}.crm-funnel-value{text-align:right;font-size:12.5px;font-weight:800}.crm-funnel-value small{display:block;font-size:8px;color:var(--txt3);font-weight:600}
.crm-table{width:100%;border-collapse:collapse}.crm-table th,.crm-table td{text-align:left;padding:9px 7px;border-bottom:1px solid var(--brd);font-size:10.5px}.crm-table th{font-size:8.5px;color:var(--txt3);text-transform:uppercase;letter-spacing:.06em}.crm-table tr:last-child td{border-bottom:0}
.crm-retention{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.crm-risk{border:1px solid var(--brd);border-radius:12px;padding:11px}.crm-risk.high{background:var(--redl);border-color:#EFC0B4}.crm-risk.attention{background:var(--ambl);border-color:#EFD8A9}.crm-risk strong{display:block;font-size:16px}.crm-risk span{display:block;font-size:9px;color:var(--txt2);line-height:1.4;margin-top:2px}
.student-benefit{display:inline-flex;margin-left:5px;padding:2px 6px;border-radius:99px;background:var(--pl);color:var(--p);font-size:7.5px;font-weight:800;vertical-align:1px;text-transform:lowercase}.student-benefit.totalpass{color:#2169cc;background:#edf4ff}.student-benefit.classpass{color:#543080;background:#f4edfb}.student-benefit.wellhub{color:#222;background:#efefef}

/* --- Responsivo --- */
@media(max-width:980px){
  .crm-agenda-grid{grid-template-columns:1fr}.crm-side{position:static}.crm-day-column{flex-basis:calc((100% - 12px)/2)}.crm-kpis{grid-template-columns:repeat(3,1fr)}.crm-dashboard-grid{grid-template-columns:1fr}
}
@media(max-width:780px){
  .nav-tabs{overflow-x:auto;scrollbar-width:none}.nav-tabs::-webkit-scrollbar{display:none}
  .crm-module{padding:14px 12px 78px;min-height:calc(100vh - 52px)}.crm-page-head{align-items:flex-start;flex-direction:column}.crm-page-head h1{font-size:27px}.crm-page-sub{max-width:320px}.crm-head-actions{width:100%}.crm-head-actions [data-agenda-action="today"]{display:none}.crm-head-actions .crm-btn{flex:1}
  .crm-toolbar{margin-bottom:10px}.crm-sector-tabs{display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;overflow:visible}.crm-sector{min-width:0;min-height:58px;padding:7px 9px;border-left-width:4px;scroll-snap-align:none}.crm-sector small{display:none}.crm-sector span{font-size:8.5px;letter-spacing:.12em}.crm-sector strong{font-size:12px}
  .crm-week-nav{gap:8px}.crm-week-controls{align-items:stretch;flex-direction:column;gap:8px}.crm-period-control{justify-content:space-between}.crm-period-control>div{flex:1;text-align:center}.crm-date-jump{justify-content:space-between}.crm-date-jump input{flex:1;min-width:0}.crm-day-nav{gap:7px;padding-bottom:7px}.crm-day-nav-btn{flex:0 0 calc((100% - 14px)/3);min-width:0;padding:7px 10px}.crm-day-nav-btn strong{font-size:11px}
  .crm-flow-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:14px;overflow:visible}.crm-flow-step{width:100%;min-width:0}.crm-flow-arrow{display:none}
  .crm-timeline-toolbar{padding:10px}.crm-timeline-head{align-items:flex-start;flex-direction:column;padding:10px 12px 4px}.crm-timeline-head small{display:none}.crm-capacity-note{line-height:1.5}
  .crm-week-viewport{overflow:visible;padding:8px 10px 10px}.crm-week-viewport::-webkit-scrollbar{display:none}.crm-day-track{display:block;padding:0}.crm-day-column{display:none;width:100%;min-width:0;border:1px solid var(--brd)}.crm-day-column.selected{display:block}.crm-day-column .crm-day-head{display:none}.crm-day-content{min-height:0;padding:2px 12px 8px}.crm-day-empty,.crm-day-error{min-height:132px}
  .crm-form-grid{grid-template-columns:1fr}.crm-field.full{grid-column:auto}.crm-platforms{grid-template-columns:1fr}.crm-platform{min-height:62px}.crm-modal{padding:20px 16px;border-radius:16px}
  #crm-pending-list{grid-template-columns:1fr}.crm-kpis{grid-template-columns:repeat(2,1fr)}.crm-funnel-row{grid-template-columns:100px 1fr 58px}.crm-retention{grid-template-columns:1fr}.crm-filters{align-items:stretch}.crm-filter{flex:1;min-width:130px}.crm-filter input,.crm-filter select{width:100%}
}
@media(max-width:600px){.crm-day-column{width:100%}}
@media(max-width:430px){.crm-kpis{grid-template-columns:1fr 1fr}.crm-page-head{gap:8px}.crm-page-head .crm-btn.primary{padding:8px 12px}.crm-sector{padding:7px 9px}}
@media(prefers-reduced-motion:reduce){.crm-btn,.crm-module,.crm-sector,.crm-day-nav-btn,.crm-flow-step{transition:none!important}}
