:root {
  --cob-purple: #3a01bd;
  --cob-purple-dark: #270087;
  --cob-purple-soft: #f1edff;
  --cob-blue: #4055dc;
  --cob-blue-soft: #edf0ff;
  --cob-mint: #11e5b3;
  --cob-mint-dark: #087f68;
  --cob-mint-soft: #e7fbf6;
  --ink: #202033;
  --ink-soft: #5f6272;
  --surface: #ffffff;
  --background: #f6f7fb;
  --border: #e8e9f0;
  --danger: #c33652;
  --danger-soft: #fff0f3;
  --warning: #b66a08;
  --warning-soft: #fff7e8;
  --shadow: 0 12px 35px rgba(32, 32, 51, 0.07);
  --shadow-soft: 0 4px 14px rgba(32, 32, 51, 0.055);
  --radius: 18px;
  --radius-small: 12px;
  --sidebar: 252px;
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body { min-height: 100vh; margin: 0; background: var(--background); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 15px; line-height: 1.5; }
button, input, select, textarea { max-width: 100%; min-width: 0; font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
svg { flex: 0 0 auto; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 8px; font-size: clamp(27px, 3vw, 38px); line-height: 1.12; letter-spacing: -0.035em; }
h2 { margin-bottom: 4px; font-size: 20px; line-height: 1.25; letter-spacing: -0.02em; }
h3 { margin-bottom: 4px; }
p { color: var(--ink-soft); }

:focus-visible { outline: 3px solid rgba(64, 85, 220, 0.28); outline-offset: 2px; }
.skip-link { position: fixed; left: 16px; top: -60px; z-index: 1000; padding: 10px 14px; border-radius: 8px; background: var(--ink); color: white; transition: top .2s ease; }
.skip-link:focus { top: 16px; }
.muted { color: var(--ink-soft); }
.eyebrow { display: block; margin-bottom: 6px; color: var(--cob-purple); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid transparent; border-radius: 11px; padding: 9px 16px; cursor: pointer; font-weight: 750; transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { background: var(--cob-purple); color: white; box-shadow: 0 8px 18px rgba(58, 1, 189, .18); }
.button-primary:hover { background: var(--cob-purple-dark); }
.button-secondary { border-color: var(--border); background: white; color: var(--ink); box-shadow: var(--shadow-soft); }
.button-secondary:hover { border-color: #d1d3df; }
.button-reschedule { border-color: #f1c67f; background: #fff6e7; color: #9a5900; box-shadow: none; }
.button-reschedule:hover { border-color: #dfa548; background: #ffefd2; }
.button-dark { background: var(--ink); color: white; }
.button-dark:hover { background: #10101c; }
.button-ghost { background: transparent; color: var(--ink-soft); }
.button-ghost:hover { background: #f0f1f6; color: var(--ink); }
.button-large { min-height: 48px; padding-inline: 21px; }
.button-small { min-height: 34px; padding: 6px 11px; font-size: 13px; }
.button-full { width: 100%; }
.icon-button { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 10px; background: transparent; color: var(--ink-soft); cursor: pointer; }
.icon-button:hover { background: #f0f1f6; color: var(--cob-purple); }
.text-link { display: inline-flex; align-items: center; gap: 5px; color: var(--cob-purple); font-size: 13px; font-weight: 750; }

.field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.field label, .note-options > label { color: #404251; font-size: 13px; font-weight: 750; }
.field input, .field select, .field textarea, .filter-bar select, .search-field, .appointment-action select, .appointment-action input, .note-options select { width: 100%; border: 1px solid #dfe1e9; border-radius: 10px; background: white; color: var(--ink); transition: border .15s ease, box-shadow .15s ease; }
.field input, .field select, .filter-bar select, .appointment-action select, .appointment-action input, .note-options select { height: 43px; padding: 8px 11px; }
.field textarea { min-height: 92px; padding: 11px 12px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus, .filter-bar select:focus, .search-field:focus-within, .appointment-action input:focus, .appointment-action select:focus { border-color: var(--cob-blue); outline: 0; box-shadow: 0 0 0 3px rgba(64, 85, 220, .11); }
.field input:disabled { background: #f2f3f7; color: #9093a1; }
.field small { color: #7b7e8d; font-size: 11px; line-height: 1.4; }
.inline-check, .check-row { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 8px; color: var(--ink-soft) !important; font-size: 12px !important; font-weight: 600 !important; }
.inline-check input, .check-row input { width: 16px !important; height: 16px !important; accent-color: var(--cob-purple); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
.field-span-2 { grid-column: 1 / -1; }
.stack-form { display: flex; flex-direction: column; gap: 16px; }
.form-divider { display: flex; align-items: center; gap: 12px; margin-block: 4px; color: var(--cob-purple); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.form-divider::before, .form-divider::after { height: 1px; flex: 1; background: var(--border); content: ""; }
.form-section-title { margin-top: 5px; padding-bottom: 8px; border-bottom: 1px solid var(--border); color: var(--cob-purple); font-size: 12px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; padding-top: 6px; }

.alert { margin-bottom: 14px; padding: 11px 14px; border: 1px solid transparent; border-radius: 11px; font-size: 13px; font-weight: 650; }
.alert-success { border-color: #b8f0e2; background: var(--cob-mint-soft); color: #076a57; }
.alert-error { border-color: #ffd1da; background: var(--danger-soft); color: var(--danger); }
.alert-warning { border-color: #f5d59f; background: var(--warning-soft); color: var(--warning); }
.alert-info { border-color: #d9defc; background: var(--cob-blue-soft); color: #3347b8; }

.app-shell { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 40; width: var(--sidebar); display: flex; flex-direction: column; padding: 22px 16px 16px; border-right: 1px solid #ededf3; background: rgba(255,255,255,.97); }
.brand { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; margin: 0 9px 30px; }
.brand img { width: 130px; height: 31px; object-fit: contain; object-position: left center; }
.brand span { color: #797c8b; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.nav-list { display: flex; flex-direction: column; gap: 5px; }
.nav-item { min-height: 45px; display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 11px; color: #656878; font-weight: 700; }
.nav-item:hover { background: #f6f5fb; color: var(--ink); }
.nav-item.is-active { background: var(--cob-purple-soft); color: var(--cob-purple); }
.sidebar-user { display: grid; grid-template-columns: 38px minmax(0, 1fr) 38px; align-items: center; gap: 10px; margin-top: auto; padding: 12px 3px 0; border-top: 1px solid var(--border); }
.sidebar-user-copy { min-width: 0; display: flex; flex-direction: column; }
.sidebar-user-copy strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-user-copy span { color: #7c7f8d; font-size: 11px; }
.avatar { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 12px; background: var(--cob-purple); color: white; font-weight: 850; }
.avatar-soft { background: var(--cob-purple-soft); color: var(--cob-purple); }
.avatar-large { width: 58px; height: 58px; border-radius: 17px; font-size: 22px; }
.app-main { min-height: 100vh; margin-left: var(--sidebar); }
.topbar { position: sticky; top: 0; z-index: 30; height: 74px; display: flex; align-items: center; gap: 16px; padding: 0 28px; border-bottom: 1px solid rgba(232,233,240,.86); background: rgba(246,247,251,.88); backdrop-filter: blur(16px); }
.topbar-title { display: flex; flex-direction: column; }
.topbar-title span { color: #898c99; font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.topbar-title strong { font-size: 15px; }
.topbar-new { margin-left: auto; }
.mobile-menu { display: none; }
.page-content { max-width: 1550px; margin: 0 auto; padding: 31px 30px 52px; }
.page-heading-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-bottom: 24px; }
.page-heading-row h1 { margin-bottom: 6px; }
.page-heading-row p { max-width: 690px; margin-bottom: 0; }
.heading-actions { display: flex; align-items: center; gap: 10px; }
.compact-heading { align-items: center; }

.panel { min-width: 0; padding: 22px; border: 1px solid rgba(232,233,240,.95); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.panel-heading h2 { margin-bottom: 0; }
.panel-heading .eyebrow { margin-bottom: 4px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
.dashboard-total-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.dashboard-total-grid .metric-card { min-height: 158px; border-color: rgba(58,1,189,.13); background: linear-gradient(145deg, #fff 55%, rgba(239,235,255,.72)); }
.metric-card { position: relative; overflow: hidden; min-height: 145px; display: flex; flex-direction: column; padding: 21px; border: 1px solid var(--border); border-radius: var(--radius); background: white; box-shadow: var(--shadow-soft); }
.metric-card::after { position: absolute; width: 95px; height: 95px; right: -25px; top: -28px; border-radius: 50%; background: currentColor; opacity: .08; content: ""; }
.metric-card span { color: var(--ink-soft); font-size: 12px; font-weight: 750; }
.metric-card strong { margin-top: auto; color: currentColor; font-size: 38px; line-height: 1; letter-spacing: -.04em; }
.metric-card small { margin-top: 7px; color: #858896; }
.metric-purple { color: var(--cob-purple); }
.metric-blue { color: var(--cob-blue); }
.metric-mint { color: var(--cob-mint-dark); }
.metric-alert { color: var(--danger); }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, .8fr); gap: 18px; }
.panel-wide { min-width: 0; }
.funnel-bars { display: flex; flex-direction: column; gap: 12px; }
.funnel-row { display: grid; grid-template-columns: 145px minmax(80px, 1fr) 62px; align-items: center; gap: 12px; font-size: 12px; }
.funnel-row > span { color: #555867; }
.funnel-value { display: flex; align-items: flex-end; flex-direction: column; line-height: 1.05; }
.funnel-value strong { color: var(--ink); font-size: 13px; }
.funnel-value small { color: #888b98; font-size: 9px; }
.bar-progress { width: 100%; height: 9px; overflow: hidden; border: 0; border-radius: 99px; background: #f0f1f5; color: var(--cob-purple); }
.bar-progress::-webkit-progress-bar { border-radius: 99px; background: #f0f1f5; }
.bar-progress::-webkit-progress-value { border-radius: 99px; background: currentColor; }
.bar-progress::-moz-progress-bar { border-radius: 99px; background: currentColor; }
.bar-progress.stage-visita_realizada, .bar-progress.stage-matriculado { color: var(--cob-mint-dark); }
.bar-progress.stage-visita_agendada, .bar-progress.stage-qualificado { color: var(--cob-blue); }
.bar-progress.stage-visita_nao_realizada { color: #ad650c; }
.bar-progress.stage-perdido { color: #a3a5af; }
.unit-stats { display: flex; flex-direction: column; gap: 8px; }
.unit-stat { display: grid; grid-template-columns: 10px 1fr auto; align-items: center; gap: 11px; padding: 13px 0; border-bottom: 1px solid #f0f1f5; }
.unit-stat:last-child { border-bottom: 0; }
.unit-stat > div { display: flex; flex-direction: column; }
.unit-stat small { color: #8a8d99; }
.unit-stat b { font-size: 19px; }
.unit-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--cob-purple); }
.unit-dot-mint { background: var(--cob-mint); }
.compact-list { display: flex; flex-direction: column; }
.compact-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto 20px; align-items: center; gap: 11px; padding: 11px 5px; border-bottom: 1px solid #f0f1f5; }
.compact-row:last-child { border-bottom: 0; }
.compact-row:hover .compact-main strong { color: var(--cob-purple); }
.compact-main { min-width: 0; display: flex; flex-direction: column; }
.compact-main strong, .compact-main span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.compact-main span { color: #818492; font-size: 12px; }
.timeline-list { display: flex; flex-direction: column; gap: 9px; }
.timeline-item { padding: 11px 12px; border-left: 3px solid var(--cob-mint); border-radius: 0 10px 10px 0; background: #f8fafb; }
.timeline-item time, .timeline-item span { display: block; color: #7b7e8c; font-size: 11px; }
.timeline-item strong { display: block; margin-block: 3px; }
.panel-placeholder { margin: 34px 0; text-align: center; }

.status-chip, .unit-pill { display: inline-flex; align-items: center; width: fit-content; min-height: 25px; border-radius: 99px; padding: 4px 9px; background: #f0f1f5; color: #636675; font-size: 10px; font-weight: 800; white-space: nowrap; }
.stage-novo { background: #f1f2f6; color: #606372; }
.stage-em_atendimento { background: var(--cob-purple-soft); color: var(--cob-purple); }
.stage-qualificado { background: #eef1ff; color: #3b50d0; }
.stage-visita_agendada { background: #e9f0ff; color: #2558a7; }
.stage-visita_nao_realizada { background: #fff0d8; color: #945207; }
.stage-visita_realizada { background: var(--cob-mint-soft); color: #08705c; }
.stage-em_negociacao { background: #fff5df; color: #9b5b05; }
.stage-sem_retorno { background: #fff4e6; color: #a15c05; }
.stage-matriculado { background: #dcf9ef; color: #056451; }
.stage-perdido { background: #f2f2f4; color: #80828d; }
.appointment-agendada { background: #e9f0ff; color: #2558a7; }
.appointment-realizada { background: var(--cob-mint-soft); color: #08705c; }
.appointment-nao_realizada { background: #fff0d8; color: #945207; }
.appointment-nao_compareceu { background: var(--danger-soft); color: var(--danger); }
.appointment-reagendada { background: #fff5df; color: #9b5b05; }
.appointment-cancelada { background: #f2f2f4; color: #80828d; }
.unit-pill { background: #f4f1ff; color: var(--cob-purple); }
.status-active { background: var(--cob-mint-soft); color: #08705c; }
.status-inactive { background: #f1f1f3; color: #7c7e88; }
.contest-badge { display: inline-flex !important; align-items: center; width: fit-content; min-height: 23px; padding: 3px 8px; border: 1px solid #d9d2fb; border-radius: 99px; background: #f5f2ff; color: var(--cob-purple) !important; font-size: 9px !important; font-weight: 850; letter-spacing: .02em; white-space: nowrap; }
.contest-badge.is-winner { border-color: #e7c662; background: #fff8d7; color: #795300 !important; }
.partner-badge { display: inline-flex !important; align-items: center; width: fit-content; min-height: 23px; padding: 3px 8px; border: 1px solid #aee5d8; border-radius: 99px; background: #eafff9; color: #08705c !important; font-size: 9px !important; font-weight: 850; letter-spacing: .02em; white-space: nowrap; }

.new-lead-layout { display: grid; grid-template-columns: minmax(300px, .72fr) minmax(500px, 1.35fr); align-items: start; gap: 19px; }
.smart-panel { position: sticky; top: 96px; overflow: hidden; background: linear-gradient(160deg, #ffffff 0%, #f6f2ff 100%); }
.smart-panel::before { position: absolute; width: 170px; height: 170px; right: -75px; top: -70px; border-radius: 50%; background: var(--cob-mint); opacity: .12; content: ""; }
.smart-heading { position: relative; display: flex; gap: 13px; margin-bottom: 20px; }
.smart-heading p { margin: 4px 0 0; font-size: 13px; }
.smart-icon { width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 13px; background: var(--cob-purple); color: white; box-shadow: 0 8px 20px rgba(58,1,189,.2); }
.smart-result { display: flex; flex-direction: column; gap: 3px; margin-top: 13px; padding: 12px; border: 1px solid #d8d2f7; border-radius: 11px; background: rgba(255,255,255,.72); font-size: 12px; }
.smart-result strong { color: var(--cob-purple); }
.smart-result span { color: var(--ink-soft); }
.smart-result ul { margin: 5px 0 0; padding-left: 18px; color: var(--warning); }
.smart-confirm-dock { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 9px; margin-top: 15px; padding-top: 15px; border-top: 1px solid #dfd9f5; }
.smart-confirm-dock small { color: #747786; font-size: 10px; line-height: 1.45; text-align: center; }
.required-hint { color: #8a8d99; font-size: 11px; }
.quick-mode { display: flex; align-items: flex-start; gap: 11px; padding: 14px; border: 1px solid #d8d2f7; border-radius: 13px; background: #f8f6ff; cursor: pointer; }
.quick-mode input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--cob-purple); }
.quick-mode span { display: flex; flex-direction: column; }
.quick-mode strong { font-size: 13px; }
.quick-mode small { color: #747786; font-size: 11px; }
.lead-form.is-phone-only .form-section-title { color: #8a8d99; }
.lead-form.is-phone-only [data-full-required] { border-style: dashed; }
.contest-toggle { border-color: #d7d0f5; background: linear-gradient(135deg, #faf8ff, #f5fffc); }
.contest-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; padding: 15px; border: 1px solid #e0dcf2; border-radius: 13px; background: #fbfaff; }
.contest-fields[hidden], [data-contest-percentage-field][hidden] { display: none !important; }
.partner-toggle { border-color: #bdeade; background: linear-gradient(135deg, #f6fffc, #faf8ff); }
.partner-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; padding: 15px; border: 1px solid #ccece4; border-radius: 13px; background: #f7fffc; }
.partner-fields[hidden] { display: none !important; }
.percentage-input { display: grid; grid-template-columns: minmax(0, 1fr) 42px; }
.percentage-input input { border-radius: 11px 0 0 11px; }
.percentage-input span { display: flex; align-items: center; justify-content: center; border: 1px solid var(--border); border-left: 0; border-radius: 0 11px 11px 0; background: #f4f3f8; color: var(--ink-soft); font-weight: 800; }
.family-mode-note { display: flex; flex-direction: column; gap: 2px; padding: 13px 15px; border: 1px solid #bdeade; border-radius: 13px; background: var(--cob-mint-soft); color: #096b59; }
.family-mode-note strong { font-size: 13px; }
.family-mode-note span { color: var(--ink); font-size: 12px; font-weight: 700; }
.family-mode-note small { color: #55726c; font-size: 10px; }
.family-edit-warning { display: flex; flex-direction: column; gap: 2px; padding: 11px 13px; border: 1px solid #f0d59f; border-radius: 11px; background: #fff9ed; color: #80510d; font-size: 11px; }
.family-edit-warning span { color: #6c604f; font-size: 10px; }
.multiple-students-section { display: flex; flex-direction: column; gap: 14px; margin-top: 5px; padding-top: 18px; border-top: 2px solid #e6e0fa; }
.multiple-students-section[hidden] { display: none !important; }
.multiple-students-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; }
.multiple-students-heading h3 { margin: 2px 0 3px; font-size: 20px; }
.multiple-students-heading p { margin: 0; color: var(--ink-soft); font-size: 11px; }
.additional-students-list { display: flex; flex-direction: column; gap: 15px; }
.additional-student-card { overflow: hidden; border: 1px solid #dcd6f4; border-radius: 15px; background: #fbfaff; }
.additional-student-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 15px; border-bottom: 1px solid #e5e0f5; background: linear-gradient(135deg, #f4f0ff, #f2fffb); }
.additional-student-heading > div:first-child { min-width: 0; display: flex; flex-direction: column; }
.additional-student-heading strong { font-size: 13px; }
.additional-student-heading small { color: #717482; font-size: 10px; }
.additional-student-number { color: var(--cob-purple); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.additional-student-actions { display: flex; align-items: center; gap: 6px; }
.additional-student-remove { color: var(--danger); }
.additional-student-grid { padding: 15px; }
.multiple-students-limit { color: #7b7e8d; font-size: 10px; }

.filter-bar { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 10px; }
.filter-bar > select { width: auto; min-width: 170px; }
.leads-filter .search-field { min-width: 280px; }
.leads-results-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 16px 0 8px; padding: 12px 14px; border: 1px solid #e5e3ee; border-radius: 12px; background: #faf9fd; }
.leads-results-toolbar > span { color: var(--ink-soft); font-size: 12px; }
.leads-results-toolbar > span strong { color: var(--ink); }
.leads-export-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.button-excel { border-color: #bfe5d7; color: #08705c; }
.button-excel:hover { border-color: #89cfb9; background: #f0fbf7; }
.search-field { height: 43px; min-width: 240px; flex: 1; display: flex; align-items: center; gap: 8px; padding: 0 11px; }
.search-field svg { color: #9a9ca8; }
.search-field input { width: 100%; border: 0; outline: 0; background: transparent; }
.table-wrap { overflow-x: auto; margin: 5px -4px -4px; }
.data-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.data-table th { padding: 10px 12px; border-bottom: 1px solid var(--border); color: #858894; text-align: left; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.data-table td { padding: 14px 12px; border-bottom: 1px solid #f0f1f5; vertical-align: middle; }
.data-table tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: #fafaff; }
.person-cell { min-width: 220px; display: flex; align-items: center; gap: 10px; }
.person-cell > div:last-child { min-width: 0; display: flex; flex-direction: column; }
.person-cell span, .cell-subtitle { display: block; color: #858894; font-size: 11px; }
.leads-table { min-width: 1240px; }
.leads-table th:nth-child(1) { width: 24%; }
.leads-table th:nth-child(3) { width: 22%; }
.incomplete-label { display: inline-flex !important; width: fit-content; margin-left: 5px; padding: 2px 6px; border-radius: 20px; background: var(--warning-soft); color: var(--warning) !important; font-size: 9px !important; font-weight: 800; text-transform: uppercase; }
.phone-line { display: flex !important; align-items: center; gap: 5px; margin-top: 2px; }
.whatsapp-mini { width: 23px; height: 23px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 7px; background: #effbf2; }
.whatsapp-mini:hover { background: #daf5e1; }
.whatsapp-icon { width: 72%; height: 72%; object-fit: contain; }
.whatsapp-button .whatsapp-icon { width: 19px; height: 19px; }
.person-cell small { margin-top: 3px; color: #a0a2ad; font-size: 9px; }
.visit-count-badge { display: inline-flex; align-items: center; width: fit-content; min-height: 25px; padding: 4px 9px; border-radius: 99px; background: var(--cob-blue-soft); color: #3348b6; font-size: 10px; font-weight: 800; white-space: nowrap; }
.table-note { max-width: 330px; display: -webkit-box; overflow: hidden; margin: 0 0 3px; color: #4f5260; font-size: 12px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.text-link-small { font-size: 10px; }
.inline-stage-form { min-width: 155px; }
.stage-select { width: 100%; height: 35px; border: 1px solid transparent; border-radius: 10px; padding: 5px 26px 5px 9px; font-size: 11px; font-weight: 750; cursor: pointer; }
.stage-select:focus { border-color: var(--cob-blue); outline: 0; box-shadow: 0 0 0 3px rgba(64,85,220,.11); }

.kanban-search-panel { margin-bottom: 16px; padding: 14px 16px; }
.kanban-search-form { display: flex; align-items: flex-end; gap: 8px; }
.kanban-search-field { min-width: 280px; flex: 1 1 560px; }
.kanban-search-field .search-field { width: 100%; }
.kanban-search-summary { display: flex; align-items: center; gap: 9px 16px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); color: #686b78; font-size: 11px; }
.kanban-search-summary strong { color: var(--cob-purple); font-size: 12px; white-space: nowrap; }
.kanban-search-empty { display: flex; align-items: center; flex-direction: column; padding: 52px 24px; text-align: center; }
.kanban-search-empty .empty-icon { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; margin-bottom: 12px; border-radius: 15px; background: var(--cob-blue-soft); color: var(--cob-blue); }
.kanban-search-empty h2 { margin-bottom: 6px; }
.kanban-search-empty p { max-width: 520px; margin: 0 0 18px; }
.kanban { display: grid; grid-auto-flow: column; grid-auto-columns: 245px; gap: 12px; overflow-x: auto; padding: 3px 2px 18px; scroll-snap-type: x proximity; }
.kanban[data-search-active="1"] .kanban-card { border-color: rgba(64,85,220,.32); box-shadow: 0 5px 15px rgba(64,85,220,.09); }
.kanban-fixed-scroll { position: fixed; right: 30px; bottom: 0; left: calc(var(--sidebar) + 30px); z-index: 36; display: none; height: 19px; overflow-x: scroll; overflow-y: hidden; border: 1px solid #dfe1e9; border-bottom: 0; border-radius: 9px 9px 0 0; background: rgba(255,255,255,.97); box-shadow: 0 -5px 16px rgba(32,32,51,.08); }
.kanban-fixed-scroll.is-visible { display: block; }
.kanban-fixed-scroll-track { width: max-content; height: 1px; padding: 0 2px; display: grid; grid-auto-flow: column; grid-auto-columns: 245px; gap: 12px; }
.kanban-column { min-height: 570px; padding: 12px; border: 1px solid var(--border); border-radius: 15px; background: #f0f1f6; scroll-snap-align: start; transition: background .15s ease, border .15s ease; }
.kanban-column.is-over { border-color: var(--cob-blue); background: #e9ecff; }
.kanban-column > header { display: grid; grid-template-columns: 9px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 3px 3px 12px; }
.kanban-column > header strong { font-size: 12px; }
.kanban-column > header b { min-width: 23px; padding: 2px 6px; border-radius: 20px; background: white; color: #777a87; text-align: center; font-size: 10px; }
.stage-dot { width: 8px; height: 8px; border-radius: 50%; background: #92949f; }
.stage-dot.stage-em_atendimento, .stage-dot.stage-novo { background: var(--cob-purple); }
.stage-dot.stage-qualificado, .stage-dot.stage-visita_agendada { background: var(--cob-blue); }
.stage-dot.stage-visita_nao_realizada { background: #ad650c; }
.stage-dot.stage-visita_realizada, .stage-dot.stage-matriculado { background: var(--cob-mint-dark); }
.stage-dot.stage-em_negociacao { background: #d88a1d; }
.stage-dot.stage-sem_retorno { background: #e49b36; }
.kanban-dropzone { min-height: 500px; display: flex; flex-direction: column; gap: 9px; }
.kanban-card { border: 1px solid #e5e6ed; border-radius: 12px; background: white; box-shadow: 0 3px 8px rgba(32,32,51,.04); cursor: grab; }
.kanban-card:active { cursor: grabbing; }
.kanban-card.is-dragging { opacity: .45; }
.kanban-card-link { display: block; padding: 13px; }
.kanban-card[draggable="false"] { cursor: default; }
.kanban-card.is-updating { opacity: .65; cursor: progress; }
.kanban-card h3 { margin: 7px 0 3px; font-size: 14px; }
.kanban-card p { margin-bottom: 10px; font-size: 11px; }
.kanban-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.kanban-visit-count { color: #858894; font-size: 9px; font-weight: 750; }
.kanban-note { display: flex; align-items: flex-start; gap: 6px; margin: 0 0 10px; padding: 8px; border-left: 2px solid var(--cob-mint); border-radius: 0 8px 8px 0; background: #f7fbfa; color: #565966; font-size: 10px; line-height: 1.35; }
.kanban-note span { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.kanban-unit { color: var(--cob-purple); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.kanban-card footer { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin: 0 13px; padding: 9px 0 11px; border-top: 1px solid #f0f1f5; color: #858894; font-size: 10px; }
.kanban-card footer span { display: flex; align-items: center; gap: 5px; }
.kanban-card footer b { font-weight: 650; }
.kanban-card-time { flex: 1 1 auto; min-width: 0; font-size: 9px; line-height: 1.35; }
.kanban-card-time b { min-width: 0; overflow-wrap: anywhere; }
.kanban-stage-form { flex: 0 0 90px; width: 90px; margin: 0; }
.stage-select.kanban-stage-select { height: 30px; width: 100%; max-width: 100%; padding: 4px 17px 4px 6px; border: 1px solid #dfe1e9; border-radius: 7px; font-size: 9px; }
.kanban-stage-select option { background: white; color: var(--ink); font-size: 12px; }
.kanban-stage-select:disabled { cursor: progress; }
.kanban-card-open { flex: 0 0 16px; display: flex; align-items: center; justify-content: center; min-height: 30px; color: #858894; }
.kanban-card-open:hover { color: var(--cob-purple); }
.kanban-stage-form noscript .button { width: 100%; margin-top: 5px; }
.kanban-empty { padding: 18px 4px; color: #a0a2ac; text-align: center; font-size: 11px; }

.agenda-filter { justify-content: flex-start; }
.agenda-search-field { min-width: min(340px, 100%); flex: 1 1 280px; }
.agenda-search-field .search-field { width: 100%; }
.agenda-filter-actions { display: flex; align-items: flex-end; gap: 7px; }
.compact-field { max-width: 185px; }
.attendant-filter { min-width: 230px; }
.agenda-toolbar { margin-bottom: 16px; }
.view-switch { display: inline-flex; padding: 3px; border: 1px solid var(--border); border-radius: 11px; background: white; box-shadow: var(--shadow-soft); }
.view-switch a { min-width: 82px; padding: 7px 11px; border-radius: 8px; color: #747785; text-align: center; font-size: 12px; font-weight: 750; }
.view-switch a.is-active { background: var(--cob-purple-soft); color: var(--cob-purple); }
.agenda-days { display: flex; flex-direction: column; gap: 16px; }
.agenda-day { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 18px; padding: 21px; border: 1px solid var(--border); border-radius: var(--radius); background: white; box-shadow: var(--shadow-soft); }
.agenda-day > header { display: flex; align-items: center; gap: 12px; }
.agenda-day > header h2 { margin-bottom: 2px; }
.agenda-day > header p { margin: 0; font-size: 12px; }
.agenda-date { width: 54px; height: 62px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 14px; background: var(--cob-purple-soft); color: var(--cob-purple); }
.agenda-date strong { font-size: 22px; line-height: 1; }
.agenda-date span { margin-top: 3px; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.agenda-list { display: flex; flex-direction: column; gap: 8px; }
.agenda-card { display: grid; grid-template-columns: 76px minmax(180px, 1fr) auto auto auto 18px; align-items: center; gap: 11px; padding: 12px 13px; border: 1px solid #ececf2; border-radius: 12px; }
.agenda-card:hover { border-color: #d8d4ef; background: #fcfbff; }
.agenda-card-when { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.agenda-card-when button, .calendar-event-when button { border: 0; padding: 0; background: transparent; color: var(--cob-purple); cursor: pointer; font-weight: 850; line-height: 1.2; }
.agenda-card-when button:first-child { color: #7d808d; font-size: 10px; }
.agenda-card-when button:last-child { border-bottom: 1px dashed rgba(58,1,189,.35); font-size: 16px; }
.agenda-card-when button:hover, .calendar-event-when button:hover { color: var(--cob-blue); }
.agenda-main { min-width: 0; display: flex; flex-direction: column; }
.agenda-main span { overflow: hidden; color: #858894; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.agenda-main b { margin-top: 3px; color: #4d5060; font-size: 10px; }
.agenda-note-button { min-height: 34px; gap: 6px; color: var(--cob-purple); white-space: nowrap; }
.agenda-open { display: inline-flex; color: #8b8e9b; }
.calendar-panel { padding: 0; overflow: hidden; }
.calendar-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 19px 21px; border-bottom: 1px solid var(--border); }
.calendar-heading h2 { font-size: 23px; }
.calendar-heading nav { display: flex; align-items: center; gap: 5px; }
.calendar-heading .icon-button { border: 1px solid var(--border); background: white; font-size: 24px; }
.month-calendar { display: grid; grid-template-columns: repeat(7, minmax(120px, 1fr)); min-width: 840px; }
.calendar-weekday { padding: 10px 12px; border-bottom: 1px solid var(--border); border-right: 1px solid var(--border); background: #fafafe; color: #7d808d; text-align: center; font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.calendar-day { min-height: 154px; padding: 9px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: white; }
.calendar-day:nth-child(7n) { border-right: 0; }
.calendar-day.is-outside { background: #fafafd; }
.calendar-day > header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 7px; }
.calendar-day > header time { width: 27px; height: 27px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #565966; font-size: 11px; font-weight: 800; }
.calendar-day.is-outside > header time { color: #b1b3bd; }
.calendar-day.is-today > header time { background: var(--cob-purple); color: white; }
.calendar-day > header span { min-width: 22px; padding: 2px 6px; border-radius: 99px; background: var(--cob-blue-soft); color: var(--cob-blue); text-align: center; font-size: 9px; font-weight: 800; }
.calendar-events { display: flex; flex-direction: column; gap: 4px; }
.calendar-event { min-width: 0; display: grid; grid-template-columns: 39px minmax(0, 1fr); column-gap: 5px; padding: 5px 6px; border-left: 3px solid var(--cob-blue); border-radius: 5px; background: #f5f7ff; }
.calendar-event:hover { background: #ecefff; }
.calendar-event-when { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 1px; }
.calendar-event-when button { color: #777a87; font-size: 7px; }
.calendar-event-when button:last-child { color: var(--cob-purple); font-size: 9px; }
.calendar-event > a { min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.calendar-event strong, .calendar-event small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event strong { font-size: 10px; }
.calendar-event small { color: #818491; font-size: 8px; }
.appointment-border-realizada { border-left-color: var(--cob-mint-dark); background: #f0fbf8; }
.appointment-border-nao_compareceu { border-left-color: var(--danger); background: #fff5f7; }
.appointment-border-nao_realizada { border-left-color: #ad650c; background: #fff8ed; }
.appointment-border-reagendada, .appointment-border-cancelada { border-left-color: #aaaab3; background: #f6f6f8; opacity: .75; }
.calendar-more { padding-left: 6px; color: var(--cob-purple); font-size: 9px; font-weight: 800; }
.agenda-edit-dialog { width: min(560px, calc(100% - 28px)); border: 0; border-radius: 18px; padding: 0; color: var(--ink); box-shadow: 0 28px 90px rgba(23,17,45,.26); }
.agenda-edit-dialog::backdrop { background: rgba(24,21,39,.52); backdrop-filter: blur(3px); }
.agenda-edit-form { padding: 23px; }
.agenda-edit-form > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.agenda-edit-form > header p { max-width: 410px; margin: 4px 0 0; font-size: 12px; }
.agenda-edit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.agenda-note-form textarea { min-height: 150px; resize: vertical; }
.agenda-note-options { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 14px; margin-top: 13px; }
.agenda-note-options > label { display: flex; align-items: center; gap: 8px; color: #404251; font-size: 12px; font-weight: 750; }
.agenda-note-options select { min-width: 150px; height: 39px; border: 1px solid #dfe1e9; border-radius: 9px; background: white; padding: 6px 10px; }

.detail-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.detail-identity, .detail-name-copy { min-width: 0; }
.detail-hero-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; }
.detail-stage-form { min-width: 190px; }
.detail-stage-form .stage-select { height: 43px; }
.back-link { display: inline-flex; margin-bottom: 15px; color: var(--ink-soft); font-size: 12px; font-weight: 700; }
.back-link:hover { color: var(--cob-purple); }
.detail-name { display: flex; align-items: center; gap: 14px; }
.detail-name h1 { margin: 5px 0 1px; }
.detail-name p { margin: 0; }
.detail-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.detail-title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.detail-title-row h1 { margin-right: 2px; }
.detail-edit-button { min-height: 34px; color: var(--cob-purple); }
.detail-family-add { min-height: 34px; color: #08705c; }
.detail-contact-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; }
.detail-contact-meta > div, .detail-contact-meta > a { min-width: 112px; display: flex; flex-direction: column; gap: 1px; padding: 7px 10px; border: 1px solid #e5e6ee; border-radius: 10px; background: rgba(255,255,255,.72); }
.detail-contact-meta > a:hover { border-color: #cbc4ee; background: white; }
.detail-contact-meta span { color: #858894; font-size: 9px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.detail-contact-meta strong { overflow-wrap: anywhere; color: #424553; font-size: 11px; }
.detail-contact-meta .enrollment-meta { border-color: #bcebdd; background: var(--cob-mint-soft); }
.detail-contact-meta .enrollment-meta span, .detail-contact-meta .enrollment-meta strong { color: #08705c; }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, .72fr); gap: 18px; align-items: start; }
.detail-main-column { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.detail-side-column { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.family-members-list { display: flex; flex-direction: column; gap: 8px; }
.family-member { min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 9px; border: 1px solid var(--border); border-radius: 11px; background: #fafafd; }
.family-member:hover { border-color: #d3cbed; background: #f7f4ff; }
.family-member.is-current { border-color: #bdeade; background: var(--cob-mint-soft); }
.family-member .avatar { width: 34px; height: 34px; border-radius: 10px; font-size: 12px; }
.family-member > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.family-member strong, .family-member small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.family-member strong { font-size: 12px; }
.family-member small { color: var(--ink-soft); font-size: 9px; }
.family-member .status-chip { max-width: 108px; font-size: 8px; text-align: center; white-space: normal; }
.sticky-panel { position: sticky; top: 82px; z-index: 8; box-shadow: 0 15px 38px rgba(32,32,51,.1); }
.quick-schedule { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: 10px; margin-bottom: 18px; padding: 14px; border-radius: 13px; background: #f7f6fc; }
.quick-schedule .field { align-self: end; }
.quick-schedule > .button { height: 43px; }
.manual-visit-box { margin: 0 0 18px; border: 1px solid #cfece6; border-radius: 13px; background: linear-gradient(145deg, #f5fffc, #faf9ff); }
.manual-visit-box > summary { display: flex; align-items: center; gap: 10px; padding: 14px; color: #08705c; cursor: pointer; list-style: none; }
.manual-visit-box > summary::-webkit-details-marker { display: none; }
.manual-visit-box > summary > span { display: flex; flex-direction: column; gap: 2px; }
.manual-visit-box > summary strong { font-size: 13px; }
.manual-visit-box > summary small { color: #686b78; font-size: 10px; font-weight: 550; }
.manual-visit-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 0 14px 14px; border-top: 1px solid #dceeea; }
.manual-visit-form > .field:first-of-type { margin-top: 14px; }
.manual-visit-form .field-span-2 { grid-column: 1 / -1; }
.manual-visit-note { display: flex; align-items: flex-start; gap: 6px; padding: 10px 11px; border-radius: 10px; background: rgba(64,85,220,.07); color: #555968; font-size: 10px; }
.manual-visit-note strong { color: var(--cob-blue); white-space: nowrap; }
.appointment-list { display: flex; flex-direction: column; gap: 10px; }
.appointment-card { min-width: 0; display: grid; grid-template-columns: 58px minmax(0, 1fr); align-items: start; gap: 13px; padding: 13px; border: 1px solid var(--border); border-radius: 13px; }
.appointment-card > * { min-width: 0; }
.appointment-card.is-rescheduled { background: #fafafa; opacity: .82; }
.appointment-date { width: 56px; height: 56px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 12px; background: var(--cob-blue-soft); color: var(--cob-blue); }
.appointment-date span { font-size: 11px; font-weight: 750; }
.appointment-date strong { font-size: 16px; }
.appointment-copy { display: flex; flex-direction: column; }
.appointment-title-line { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.manual-record-badge { display: inline-flex; padding: 3px 6px; border-radius: 99px; background: var(--cob-mint-soft); color: #08705c !important; font-size: 8px !important; font-weight: 800; text-transform: uppercase; }
.appointment-copy span { color: #858894; font-size: 10px; }
.appointment-copy small { margin-top: 3px; color: #9a9ca7; font-size: 9px; }
.appointment-copy p { margin: 5px 0 0; font-size: 12px; }
.appointment-controls { min-width: 0; grid-column: 1 / -1; display: flex; flex-direction: column; gap: 8px; }
.appointment-action { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.appointment-action label { min-width: 0; display: flex; flex-direction: column; gap: 4px; color: #676a78; font-size: 10px; font-weight: 750; }
.appointment-action label.is-required { color: var(--cob-purple); }
.appointment-action .button { grid-column: 1 / -1; justify-self: end; }
.appointment-reminder { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 10px; margin-top: 2px; padding: 13px; border: 1px solid #d8d2f7; border-radius: 12px; background: linear-gradient(145deg, #faf8ff, #f6fbff); }
.appointment-reminder-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.appointment-reminder-heading > div { display: flex; flex-direction: column; gap: 2px; }
.appointment-reminder-heading strong { color: var(--ink); font-size: 13px; }
.appointment-reminder textarea { width: 100%; min-height: 192px; padding: 12px 13px; border: 1px solid #e0dcef; border-radius: 10px; outline: 0; resize: vertical; background: rgba(255,255,255,.88); color: #303240; font: inherit; font-size: 12px; line-height: 1.55; }
.appointment-reminder textarea:focus { border-color: var(--cob-blue); box-shadow: 0 0 0 3px rgba(64,85,220,.1); }
.reschedule-box { border-top: 1px dashed #e8c894; padding-top: 8px; }
.reschedule-box > summary { width: fit-content; list-style: none; }
.reschedule-box > summary::-webkit-details-marker { display: none; }
.reschedule-form { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) auto; align-items: end; gap: 8px; margin-top: 9px; padding: 11px; border-radius: 11px; background: #fff9ef; }
.rescheduled-history { display: flex; align-items: flex-start; gap: 8px; padding: 11px; border-radius: 10px; background: #f1f1f4; color: #737581; font-size: 11px; }
.visit-outcome-dialog { width: min(520px, calc(100% - 28px)); border: 0; border-radius: 18px; padding: 0; color: var(--ink); box-shadow: 0 28px 90px rgba(23,17,45,.28); }
.visit-outcome-dialog::backdrop { background: rgba(24,21,39,.58); backdrop-filter: blur(3px); }
.visit-outcome-card { padding: 23px; }
.visit-outcome-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.visit-outcome-card h2 { margin-top: 4px; }
.visit-outcome-card > p { margin: 12px 0 20px; color: #626675; font-size: 13px; line-height: 1.55; }
.visit-outcome-actions { display: grid; gap: 9px; }
.visit-outcome-actions .button { width: 100%; }
.note-form { margin-bottom: 20px; padding: 15px; border: 1px solid #e7e2f8; border-radius: 14px; background: #faf8ff; }
.note-options { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 14px; margin-top: 10px; }
.note-options > label { display: flex; align-items: center; gap: 8px; }
.note-options select { width: 150px; }
.notes-timeline { position: relative; display: flex; flex-direction: column; gap: 12px; }
.notes-timeline::before { position: absolute; left: 15px; top: 18px; bottom: 18px; width: 1px; background: #e2e3e9; content: ""; }
.note-item { position: relative; display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 11px; }
.note-marker { z-index: 1; width: 31px; height: 31px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--border); border-radius: 10px; background: white; color: #858894; }
.note-item.is-pinned .note-marker { border-color: #d8cdf7; background: var(--cob-purple-soft); color: var(--cob-purple); }
.note-content { padding: 13px 14px; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
.note-content header { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 7px; }
.note-content header span { color: #898c98; font-size: 10px; }
.note-content header b { margin-left: auto; color: var(--cob-purple); font-size: 9px; text-transform: uppercase; }
.note-content p { margin: 0; color: #464957; white-space: normal; }
.info-list { margin: 0; }
.info-list > div { padding: 11px 0; border-bottom: 1px solid #f0f1f5; }
.info-list > div:last-child { border-bottom: 0; }
.info-list dt { margin-bottom: 3px; color: #8a8d99; font-size: 10px; font-weight: 750; text-transform: uppercase; }
.info-list dd { margin: 0; font-weight: 700; }
.info-list dd small { display: block; color: #858894; font-weight: 500; }
.registration-editor { margin-top: 15px; padding-top: 14px; border-top: 1px solid var(--border); }
.registration-editor summary { padding: 5px 0; color: var(--cob-purple); font-size: 12px; font-weight: 800; cursor: pointer; }
.registration-editor .stack-form { margin-top: 15px; }
.info-enrollment { margin-inline: -10px; padding-inline: 10px !important; border-radius: 10px; background: var(--cob-mint-soft); }
.info-enrollment dt, .info-enrollment dd { color: #08705c; }
.info-partner { margin-inline: -10px; padding-inline: 10px !important; border-radius: 10px; background: #eafff9; }
.info-partner dt, .info-partner dd { color: #08705c; }
.contact-edit-dialog { width: min(900px, calc(100% - 32px)); max-height: calc(100dvh - 32px); overflow: hidden; border: 0; border-radius: 20px; padding: 0; background: white; color: var(--ink); box-shadow: 0 28px 90px rgba(23,17,45,.28); }
.contact-edit-dialog::backdrop { background: rgba(24,21,39,.58); backdrop-filter: blur(3px); }
.contact-edit-card { max-height: calc(100dvh - 32px); display: flex; flex-direction: column; overflow: hidden; }
.contact-edit-card > header { z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 22px 24px 18px; border-bottom: 1px solid var(--border); background: white; }
.contact-edit-card > header h2 { font-size: 24px; }
.contact-edit-card > header p { margin: 5px 0 0; font-size: 12px; }
.contact-edit-grid { overflow-y: auto; padding: 22px 24px 24px; }
.contact-edit-card > footer { z-index: 2; display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 15px 24px; border-top: 1px solid var(--border); background: rgba(255,255,255,.97); box-shadow: 0 -8px 22px rgba(32,32,51,.045); }
.contest-records { display: flex; flex-direction: column; gap: 12px; }
.contest-record-card { padding: 15px; border: 1px solid #dfdaef; border-radius: 13px; background: linear-gradient(145deg, #fcfbff, #f8fffd); }
.contest-record-heading, .contest-record-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.contest-record-heading { margin-bottom: 13px; }
.contest-record-footer { margin-top: 13px; padding-top: 12px; border-top: 1px solid #ebe8f2; }
.contest-record-footer small { color: #858894; font-size: 9px; }
.contest-edit-grid { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 11px; }
.contest-new-entry { margin-top: 14px; }
.contest-new-entry > summary { padding: 8px 0; color: var(--cob-purple); font-size: 12px; font-weight: 800; cursor: pointer; }
.contest-new-form { margin-top: 8px; }
.contest-new-form > .button { margin-top: 13px; }
.audit-list { display: flex; flex-direction: column; }
.audit-list > div { display: grid; grid-template-columns: minmax(145px, 200px) minmax(0, 1fr) auto; gap: 12px; padding: 12px 0; border-bottom: 1px solid #f0f1f5; font-size: 11px; }
.audit-list > div:last-child { border-bottom: 0; }
.audit-list strong { font-weight: 700; overflow-wrap: anywhere; }
.audit-author { display: flex; flex-direction: column; gap: 3px; min-width: 0; overflow-wrap: anywhere; }
.audit-author > b { color: var(--cob-purple); font-size: 12px; }
.audit-author > small { color: #696c7b; font-size: 10px; }
.audit-list time { color: #888b98; }

.report-heading { align-items: center; }
.report-filter-grid { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); align-items: end; gap: 13px; }
.report-filter-actions { display: flex; gap: 8px; }
.print-report-header { display: none; }
.report-metric-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-bottom: 13px; }
.report-metric { min-height: 122px; display: flex; flex-direction: column; padding: 17px; border: 1px solid var(--border); border-radius: 15px; background: white; box-shadow: var(--shadow-soft); }
.report-metric span { color: #6f7280; font-size: 11px; font-weight: 750; }
.report-metric strong { margin-top: auto; color: var(--cob-purple); font-size: 29px; line-height: 1; }
.report-metric small { margin-top: 7px; color: #878a97; font-size: 10px; }
.contest-report-block { margin: 0 0 13px; padding: 17px; border: 1px solid #dcd6f4; border-radius: 15px; background: linear-gradient(135deg, #fbf9ff, #f3fffb); box-shadow: var(--shadow-soft); }
.partner-report-block { margin: 0 0 13px; padding: 17px; border: 1px solid #bfe9de; border-radius: 15px; background: linear-gradient(135deg, #f3fffb, #fbf9ff); box-shadow: var(--shadow-soft); }
.contest-report-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; margin-bottom: 13px; }
.contest-report-heading h2 { margin-top: 2px; }
.contest-report-heading > small { max-width: 480px; color: #757887; font-size: 10px; text-align: right; }
.contest-report-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
.contest-report-metrics article { min-height: 88px; display: flex; flex-direction: column; padding: 12px; border: 1px solid rgba(64,0,199,.1); border-radius: 11px; background: rgba(255,255,255,.78); }
.contest-report-metrics span, .contest-report-metrics small { color: #777a88; font-size: 10px; }
.contest-report-metrics strong { margin-top: auto; color: var(--cob-purple); font-size: 24px; }
.partner-report-block .contest-report-metrics strong { color: #08705c; }
.contest-report-table { min-width: 820px; }
.partner-report-table { min-width: 900px; }
.report-time-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 11px; }
.report-time-grid article { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 11px; background: white; }
.report-time-grid span { color: #737684; font-size: 10px; }
.report-time-grid strong { color: var(--cob-blue); font-size: 13px; white-space: nowrap; }
.report-method { margin: 0 0 16px; padding: 9px 12px; border-left: 3px solid var(--cob-mint); border-radius: 0 8px 8px 0; background: rgba(255,255,255,.7); font-size: 11px; }
.report-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.chart-panel canvas { width: 100%; height: 300px; display: block; max-width: 100%; margin: -4px auto 0; }
.chart-panel-wide { grid-column: 1 / -1; }
.chart-panel .panel-heading small { display: block; margin-top: 4px; color: #8a8d99; font-size: 9px; }
.report-tables { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 16px; }
.report-table { min-width: 610px; }
.report-panel-wide { grid-column: 1 / -1; }
.report-table-team { min-width: 980px; }
.report-table td:not(:first-child), .report-table th:not(:first-child) { text-align: right; }
.report-tables .panel-heading small { display: block; max-width: 460px; margin-top: 4px; color: #8a8d99; font-size: 9px; }

.users-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, .7fr); gap: 18px; align-items: start; }
.user-list { display: flex; flex-direction: column; }
.user-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto auto; align-items: center; gap: 11px; padding: 12px 0; border-bottom: 1px solid #f0f1f5; }
.user-row:last-child { border-bottom: 0; }
.user-row > div:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.user-row > div:nth-child(2) span { overflow: hidden; color: #858894; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.user-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.user-side-stack { position: sticky; top: 92px; display: flex; flex-direction: column; gap: 18px; }
.user-create-panel { position: static; }
.password-reset-panel .muted { margin: -3px 0 18px; }
.security-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 18px; }
.profile-panel { min-width: 0; }
.profile-summary { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid var(--border); }
.profile-summary h2 { margin-bottom: 3px; }
.profile-summary p { margin: 0; }
.security-back-link { display: block; margin-top: 18px; text-align: center; }
.security-success { display: flex; align-items: flex-start; gap: 12px; padding: 16px; border: 1px solid rgba(0, 153, 112, .18); border-radius: 13px; background: rgba(17, 229, 179, .08); color: #087257; }
.security-success strong { display: block; margin-bottom: 4px; }
.security-success p { margin: 0; color: #52736a; font-size: 12px; }
.setup-steps { margin: 0 0 18px; padding-left: 21px; color: #646775; font-size: 12px; line-height: 1.65; }
.setup-steps li + li { margin-top: 6px; }
.security-secret { display: block; overflow-wrap: anywhere; padding: 15px; border: 1px dashed rgba(58, 1, 189, .35); border-radius: 11px; background: var(--cob-purple-soft); color: var(--cob-purple); font-size: 15px; font-weight: 850; letter-spacing: .08em; text-align: center; }
.two-factor-form { margin-top: 20px; }
.recovery-panel { margin-bottom: 18px; border-color: rgba(246, 169, 34, .35); }
.recovery-code-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.recovery-code-grid code { padding: 11px; border: 1px solid var(--border); border-radius: 9px; background: #f8f8fb; color: var(--ink); font-weight: 800; text-align: center; }

.empty-state { min-height: 220px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 28px; text-align: center; }
.empty-icon { width: 45px; height: 45px; display: flex; align-items: center; justify-content: center; margin-bottom: 13px; border-radius: 14px; background: var(--cob-purple-soft); color: var(--cob-purple); }
.empty-state h3 { margin-bottom: 5px; }
.empty-state p { max-width: 430px; margin-bottom: 16px; }

.toast-region { position: fixed; right: 20px; bottom: 20px; z-index: 100; display: flex; flex-direction: column; gap: 8px; }
.toast { max-width: 360px; padding: 12px 15px; border-radius: 11px; background: var(--ink); color: white; box-shadow: var(--shadow); font-size: 13px; font-weight: 650; animation: toast-in .2s ease-out; }
.toast-error { background: var(--danger); }
.toast-info { background: var(--cob-blue); }
@keyframes toast-in { from { transform: translateY(10px); opacity: 0; } }

.login-body { overflow: hidden; background: #100b1d; }
.login-shell { min-height: 100svh; display: grid; grid-template-columns: minmax(390px, .72fr) minmax(600px, 1.45fr); gap: 14px; padding: 14px; background: radial-gradient(circle at 15% 15%, rgba(64,85,220,.16), transparent 28%), #f3f1f8; }
.login-card { position: relative; z-index: 3; width: 100%; min-height: calc(100svh - 28px); display: flex; flex-direction: column; justify-content: center; margin: 0; padding: 120px clamp(40px, 5vw, 84px) 54px; border: 1px solid rgba(255,255,255,.9); border-radius: 28px; background: rgba(255,255,255,.97); box-shadow: 0 26px 75px rgba(31,19,58,.14); }
.login-card-recovery { justify-content: flex-start; overflow-y: auto; }
.login-brand { position: absolute; left: clamp(40px, 5vw, 84px); top: 40px; display: flex; flex-direction: column; gap: 5px; }
.login-brand img { width: 142px; }
.login-brand span { color: #7c7f8d; font-size: 9px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.login-copy { margin-bottom: 27px; }
.login-copy h1 { margin-bottom: 10px; font-size: clamp(36px, 3vw, 46px); }
.login-copy p { max-width: 430px; margin: 0; font-size: 15px; }
.login-form { display: flex; flex-direction: column; gap: 16px; }
.login-form .field input { height: 50px; border-color: #e4e0ec; border-radius: 14px; background: #f8f7fb; padding-inline: 14px; box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.login-form .field input:focus { border-color: var(--cob-blue); background: white; box-shadow: 0 0 0 4px rgba(64,85,220,.12); }
.login-form .button-primary { min-height: 54px; border-radius: 15px; background: linear-gradient(135deg, var(--cob-purple), #5013d7); box-shadow: 0 14px 28px rgba(58,1,189,.28); }
.login-form .button-primary:hover { background: linear-gradient(135deg, var(--cob-purple-dark), var(--cob-purple)); box-shadow: 0 17px 33px rgba(58,1,189,.32); }
.login-footnote { margin: 19px 0 0; color: #7c7f8e; text-align: center; font-size: 10px; }
.login-recovery-help { margin: 17px 0 0; padding: 11px 13px; border-radius: 10px; background: #f5f3ff; color: #656879; text-align: center; font-size: 10px; line-height: 1.45; }
.login-visual { position: relative; isolation: isolate; overflow: hidden; min-height: calc(100svh - 28px); margin: 0; border-radius: 28px; background: #171124; box-shadow: 0 26px 75px rgba(18,10,39,.2); }
.login-visual::before { position: absolute; inset: 0; z-index: 0; background: url("login-cob.jpg") 48% center / cover no-repeat; filter: saturate(.72) brightness(.66) contrast(1.08); transform: scale(1.015); content: ""; }
.login-visual::after { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(13,8,25,.05) 0%, rgba(13,8,25,.18) 42%, rgba(13,8,25,.74) 100%), linear-gradient(115deg, rgba(58,1,189,.28), transparent 58%); content: ""; }

.install-body { background: linear-gradient(145deg, #f8f7ff, #f5faf9); }
.install-shell { width: min(1120px, calc(100% - 32px)); min-height: 100vh; display: grid; grid-template-columns: .78fr 1.22fr; align-items: center; gap: 55px; margin: 0 auto; padding: 45px 0; }
.install-logo { width: 160px; margin-bottom: 42px; }
.install-intro h1 { max-width: 440px; font-size: clamp(34px, 4vw, 52px); }
.install-intro > p { max-width: 440px; font-size: 16px; }
.security-note { max-width: 440px; margin-top: 24px; padding: 13px 15px; border-left: 3px solid var(--cob-mint); border-radius: 0 10px 10px 0; background: rgba(255,255,255,.7); color: #5f6271; font-size: 12px; }
.install-requirements { max-width: 440px; display: grid; gap: 7px; margin-top: 18px; }
.install-requirement { display: flex; align-items: center; gap: 8px; color: #6c6f7c; font-size: 11px; }
.install-requirement > span { width: 20px; height: 20px; display: inline-flex; flex: 0 0 20px; align-items: center; justify-content: center; border-radius: 50%; font-weight: 900; }
.install-requirement.is-ok > span { background: rgba(17,229,179,.16); color: #087257; }
.install-requirement.is-error > span { background: rgba(215,65,79,.12); color: var(--danger); }
.install-card { padding: 30px; border: 1px solid rgba(255,255,255,.95); border-radius: 22px; background: rgba(255,255,255,.92); box-shadow: 0 24px 70px rgba(38,20,89,.1); }

@media (max-width: 1180px) {
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .new-lead-layout { grid-template-columns: 1fr; }
  .smart-panel { position: relative; top: auto; }
  .detail-grid { grid-template-columns: 1fr; }
  .detail-side-column { display: grid; grid-template-columns: 1fr 1fr; }
  .sticky-panel { position: relative; top: auto; }
  .users-layout { grid-template-columns: 1fr; }
  .user-side-stack { position: relative; top: auto; }
  .user-create-panel { position: relative; top: auto; }
  .security-grid { grid-template-columns: 1fr; }
  .recovery-code-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .appointment-card { grid-template-columns: 58px minmax(0, 1fr); }
  .report-metric-grid { grid-template-columns: repeat(3, 1fr); }
  .report-filter-grid { grid-template-columns: repeat(3, 1fr); }
  .contest-report-metrics { grid-template-columns: repeat(3, 1fr); }
  .contest-edit-grid { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
}

@media (max-width: 900px) {
  :root { --sidebar: 242px; }
  .sidebar { transform: translateX(-105%); transition: transform .2s ease; box-shadow: var(--shadow); }
  .sidebar-open .sidebar { transform: translateX(0); }
  .sidebar-backdrop { position: fixed; inset: 0; z-index: 35; display: none; background: rgba(22,21,32,.42); }
  .sidebar-open .sidebar-backdrop { display: block; }
  .app-main { margin-left: 0; }
  .kanban-fixed-scroll { right: 16px; left: 16px; }
  .mobile-menu { display: inline-flex; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .agenda-day { grid-template-columns: 1fr; }
  .agenda-day > header { border-bottom: 1px solid var(--border); padding-bottom: 13px; }
  .login-body { overflow: auto; }
  .login-shell { position: relative; isolation: isolate; min-height: 100svh; display: flex; align-items: center; justify-content: center; padding: 20px; background: #151022; }
  .login-card { width: min(520px, 100%); min-height: 0; margin: auto; padding: 112px 36px 42px; border-radius: 25px; background: rgba(255,255,255,.94); backdrop-filter: blur(22px); }
  .login-brand { left: 36px; top: 34px; }
  .login-visual { position: fixed; inset: 0; z-index: 0; display: block; min-height: 100vh; border-radius: 0; box-shadow: none; }
  .install-shell { grid-template-columns: 1fr; gap: 25px; }
  .install-intro { text-align: center; }
  .install-logo, .install-intro > p, .security-note, .install-requirements { margin-inline: auto; }
  .install-logo { margin-bottom: 24px; }
  .report-chart-grid, .report-tables { grid-template-columns: 1fr; }
  .chart-panel-wide { grid-column: auto; }
  .calendar-panel { overflow-x: auto; }
}

@media (max-width: 700px) {
  .page-content { padding: 24px 16px 40px; }
  .topbar { height: 66px; padding: 0 14px; }
  .topbar-new { width: 42px; overflow: hidden; padding-inline: 11px; white-space: nowrap; }
  .recovery-code-grid { grid-template-columns: 1fr; }
  .page-heading-row { align-items: flex-start; flex-direction: column; }
  .heading-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .view-switch { width: 100%; }
  .view-switch a { flex: 1; }
  .metric-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .metric-card { min-height: 125px; padding: 16px; }
  .metric-card strong { font-size: 31px; }
  .panel { padding: 17px; border-radius: 15px; }
  .form-grid { grid-template-columns: 1fr; }
  .field-span-2 { grid-column: auto; }
  .filter-bar { align-items: stretch; flex-direction: column; }
  .filter-bar > select, .search-field, .compact-field { width: 100%; max-width: none; }
  .leads-results-toolbar { align-items: stretch; flex-direction: column; }
  .leads-export-actions { width: 100%; }
  .leads-export-actions .button { flex: 1; }
  .kanban-search-form { align-items: stretch; flex-direction: column; }
  .kanban-search-field { width: 100%; min-width: 0; }
  .kanban-search-form .button { width: 100%; }
  .kanban-search-summary { align-items: flex-start; flex-direction: column; }
  .agenda-search-field { width: 100%; min-width: 0; }
  .agenda-filter-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .agenda-filter-actions .button { width: 100%; }
  .funnel-row { grid-template-columns: 115px minmax(60px, 1fr) 24px; gap: 8px; }
  .status-chip { white-space: normal; }
  .agenda-card { grid-template-columns: 70px minmax(0, 1fr) 36px 18px; }
  .agenda-card .unit-pill, .agenda-card .status-chip { display: none; }
  .agenda-note-button { width: 34px; min-width: 34px; padding: 0; justify-content: center; }
  .agenda-note-button span { display: none; }
  .detail-hero { align-items: flex-start; flex-direction: column; }
  .detail-name { width: 100%; align-items: flex-start; }
  .detail-name-copy { flex: 1; }
  .detail-hero-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .detail-stage-form { width: 100%; }
  .detail-hero-actions .whatsapp-button { width: 100%; justify-content: center; }
  .detail-side-column { display: flex; }
  .quick-schedule { grid-template-columns: 1fr; }
  .manual-visit-form { grid-template-columns: 1fr; }
  .manual-visit-form .field-span-2 { grid-column: auto; }
  .manual-visit-note { flex-direction: column; }
  .contest-fields, .partner-fields, .contest-edit-grid, .contest-report-metrics { grid-template-columns: 1fr; }
  .multiple-students-heading, .additional-student-heading { align-items: stretch; flex-direction: column; }
  .multiple-students-heading .button { width: 100%; }
  .additional-student-actions { justify-content: space-between; }
  .contest-record-footer, .contest-report-heading { align-items: flex-start; flex-direction: column; }
  .contest-record-footer .button { width: 100%; }
  .contest-report-heading > small { text-align: left; }
  .appointment-card { grid-template-columns: 52px minmax(0, 1fr); align-items: start; }
  .appointment-action { grid-column: 1 / -1; grid-template-columns: 1fr; }
  .appointment-action .button { grid-column: auto; width: 100%; }
  .appointment-reminder-heading { align-items: stretch; flex-direction: column; }
  .appointment-reminder-heading .button { width: 100%; }
  .appointment-reminder textarea { min-height: 235px; }
  .reschedule-form { grid-template-columns: 1fr; }
  .contact-edit-dialog { width: calc(100% - 20px); max-width: 900px; max-height: calc(100dvh - 20px); border-radius: 16px; }
  .contact-edit-card { max-height: calc(100dvh - 20px); }
  .contact-edit-card > header, .contact-edit-grid, .contact-edit-card > footer { padding-inline: 17px; }
  .contact-edit-card > footer { align-items: stretch; flex-direction: column-reverse; }
  .contact-edit-card > footer .button { width: 100%; }
  .calendar-heading { align-items: flex-start; flex-direction: column; }
  .agenda-edit-grid { grid-template-columns: 1fr; }
  .agenda-edit-grid .field-span-2 { grid-column: auto; }
  .agenda-note-options { align-items: stretch; flex-direction: column; }
  .agenda-note-options select { width: 100%; }
  .note-options { align-items: stretch; flex-direction: column; }
  .note-options .button { width: 100%; }
  .audit-list > div { grid-template-columns: 1fr; gap: 2px; }
  .user-row { grid-template-columns: 38px minmax(0, 1fr) auto; }
  .user-actions { grid-column: 2 / -1; flex-wrap: wrap; }
  .install-card { padding: 21px 17px; }
  .report-metric-grid { grid-template-columns: 1fr 1fr; }
  .report-time-grid { grid-template-columns: 1fr 1fr; }
  .report-filter-grid { grid-template-columns: 1fr; }
  .report-filter-actions { flex-direction: column; }
}

@media (max-width: 430px) {
  .metric-grid { grid-template-columns: 1fr; }
  .login-shell { padding: 12px; }
  .login-card { padding: 100px 22px 32px; border-radius: 21px; }
  .login-brand { left: 22px; top: 28px; }
  .login-copy h1 { font-size: 34px; }
  .compact-row { grid-template-columns: 38px minmax(0, 1fr) 18px; }
  .detail-name { gap: 10px; }
  .detail-name .avatar-large { width: 48px; height: 48px; border-radius: 14px; font-size: 18px; }
  .detail-title-row { align-items: flex-start; flex-direction: column; }
  .detail-edit-button { width: 100%; }
  .detail-contact-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-contact-meta > div, .detail-contact-meta > a { min-width: 0; }
  .compact-row .status-chip { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

@media print {
  @page { size: A4 landscape; margin: 10mm; }
  body { min-height: auto; background: white; color: #171822; font-size: 10px; }
  .sidebar, .topbar, .sidebar-backdrop, .toast-region, .no-print, .report-heading .button, .kanban-fixed-scroll, .agenda-edit-dialog, .visit-outcome-dialog, .contact-edit-dialog { display: none !important; }
  .app-main { margin-left: 0; }
  .page-content { max-width: none; padding: 0; }
  .report-heading { margin-bottom: 8px; }
  .report-heading h1 { font-size: 23px; }
  .report-heading p { font-size: 10px; }
  .print-report-header { display: flex; align-items: center; gap: 14px; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 2px solid var(--cob-purple); }
  .print-report-header img { width: 95px; }
  .print-report-header div { display: flex; flex-direction: column; }
  .print-report-header strong { font-size: 14px; }
  .print-report-header span { color: #666978; }
  .report-metric-grid { grid-template-columns: repeat(6, 1fr); gap: 6px; }
  .report-time-grid { grid-template-columns: repeat(4, 1fr); gap: 5px; }
  .report-metric { min-height: 84px; padding: 10px; box-shadow: none; }
  .report-metric strong { font-size: 21px; }
  .report-method { margin-bottom: 8px; }
  .report-chart-grid, .report-tables { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .panel, .chart-panel, .report-tables .panel { break-inside: avoid; padding: 11px; box-shadow: none; }
  .chart-panel canvas { max-height: 225px; }
  .report-table { min-width: 0; font-size: 8px; }
  .data-table th, .data-table td { padding: 5px 6px; }
}

/* Histórico da agenda: situação da visita e etapa atual são independentes. */
.agenda-stage-form { grid-column: 2 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.agenda-stage-form label { font-size: 12px; font-weight: 700; }
.permission-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 20px 0; }
.permission-group { min-width: 0; margin: 0; }
.permission-group legend { font-size: 16px; font-weight: 800; padding: 0 8px; color: var(--cob-purple); }
.permission-option { display: flex; gap: 12px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid #ececf2; cursor: pointer; }
.permission-option:last-child { border-bottom: 0; }
.permission-option input { flex: 0 0 20px; width: 20px; height: 20px; margin-top: 2px; accent-color: var(--cob-purple); }
.permission-option span { min-width: 0; }
.permission-option strong { display: block; font-size: 14px; }
.permission-option small { display: block; color: #636778; line-height: 1.5; margin-top: 5px; }
.permission-option .permission-requires { color: #72539d; }
.permissions-save-bar { position: sticky; bottom: 10px; z-index: 20; display: flex; gap: 12px; flex-wrap: wrap; align-items: center; justify-content: flex-end; padding: 16px; background: #fff; border: 1px solid #dcd8e9; border-radius: 16px; box-shadow: 0 5px 24px #22183a20; }
.permissions-save-bar span { margin-right: auto; font-size: 12px; }
.permissions-audit { margin-top: 24px; }
.note-editor { margin-top: 12px; }
.note-editor form { padding-top: 12px; }
.delete-control { margin-top: 15px; }
.delete-control summary { cursor: pointer; }
.delete-control form { padding: 12px; background: #fff7f5; border: 1px solid #f3cfc9; border-radius: 10px; margin-top: 10px; }
.delete-control p { margin: 0; font-size: 12px; line-height: 1.5; }
.danger-text { color: #b42318; }
.button-danger { background: #b42318; color: white; }
.button-danger:hover { background: #912018; }
.agenda-card > .delete-control { grid-column: 2 / -1; margin-top: 0; }
.trash-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 0; border-bottom: 1px solid #ececf2; }
.trash-row p { margin: 6px 0; }
.trash-row small { color: #636778; }
.user-row .user-actions { flex-wrap: wrap; }
@media (max-width: 900px) {
  .permission-groups { grid-template-columns: 1fr; }
  .permissions-save-bar { bottom: 0; }
  .trash-row { align-items: flex-start; flex-direction: column; }
}
.agenda-card-when button:disabled, .calendar-event-when button:disabled { cursor: default; border-bottom: 0; }
@media (max-width: 760px) {
  .agenda-history-card .unit-pill, .agenda-history-card .status-chip { display: inline-flex; grid-column: 2; }
  .agenda-stage-form { grid-column: 1 / -1; }
}
