/* Robô Solix CRM — base + solix.html + login.html */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --navy: #16243a;
  --navy2: #1e3050;
  --green: #1a6b40;
  --green2: #22894f;
  --teal: #0a6b72;
  --teal2: #0d8a93;
  --amber: #c97b10;
  --amber2: #e08c15;
  --slate: #4b5c70;
  --slate2: #637588;
  --indigo: #2d4fa0;
  --indigo2: #3b63c8;
  --purple: #5a3e8a;
  --purple2: #7253b0;
  --bg: #f2f0ec;
  --bg2: #ffffff;
  --border: #ddd9d1;
  --text: #1c2a3a;
  --muted: #7a8898;
  --tag-green: #d4ede2;
  --tag-green-t: #1a6b40;
  --tag-amber: #fdeacf;
  --tag-amber-t: #8a5200;
  --tag-indigo: #dae4f8;
  --tag-indigo-t: #1e3a80;
  --tag-teal: #cde9ec;
  --tag-teal-t: #0a5a60;
  --tag-purple: #e9e2f7;
  --tag-purple-t: #4a2f80;
  --tag-gray: #e2e4e8;
  --tag-gray-t: #3d4a58;
}

body {
  font-family: 'Sora', sans-serif;
  background: var(--bg);
  color: var(--text);
  font-size: 13px;
  line-height: 1.5;
}

.page {
  max-width: 1160px;
  margin: 0 auto;
  padding: 26px 30px 44px;
}

/* Toolbar */
.app-toolbar {
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  background: rgba(242, 240, 236, 0.95);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(8px);
}

.app-toolbar .toolbar-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--navy);
  margin-right: 8px;
}

.app-toolbar button,
.app-toolbar a.toolbar-link {
  font-family: 'Sora', sans-serif;
  font-size: 11px;
  font-weight: 600;
  padding: 7px 14px;
  border-radius: 8px;
  border: 1.5px solid var(--border);
  background: var(--bg2);
  color: var(--text);
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  text-decoration: none;
  display: inline-block;
  line-height: 1.2;
}

.app-toolbar button:hover,
.app-toolbar a.toolbar-link:hover {
  background: #fafaf8;
  border-color: #c8c4bc;
  color: var(--text);
}

.app-toolbar button.primary {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
}

.app-toolbar button.primary:hover {
  background: var(--navy2);
  border-color: var(--navy2);
}

.app-toolbar .status {
  font-size: 11px;
  color: var(--muted);
  margin-left: auto;
}

.app-toolbar .status.ok {
  color: var(--green);
  font-weight: 600;
}

.app-toolbar .status.err {
  color: #b00020;
  font-weight: 600;
}

.export-wrapper {
  position: relative;
  display: inline-flex;
}

.export-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 1000;
  min-width: 190px;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(22, 36, 58, 0.16);
}

.export-dropdown button {
  width: 100%;
  display: block;
  text-align: left;
  border: none;
  background: transparent;
  padding: 8px 10px;
}

.export-dropdown button:hover {
  background: #f9fafb;
}

/* Header */
.header {
  background: var(--navy);
  border-radius: 14px;
  padding: 24px 34px;
  margin-bottom: 22px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.header-left h1 {
  font-size: 23px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.4px;
}

.header-left p {
  font-size: 11.5px;
  color: #8aa5c4;
  margin-top: 5px;
}

.header-right {
  text-align: right;
}

.week-label {
  font-size: 10px;
  font-weight: 700;
  color: #8aa5c4;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.week-date {
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  font-family: 'DM Mono', monospace;
  margin-top: 3px;
}

.badge-live {
  display: inline-block;
  margin-top: 7px;
  background: #22894f;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 3px 10px;
  border-radius: 20px;
  text-transform: uppercase;
}

.badge-live::before {
  content: '● ';
}

.header .scenario-label {
  display: inline-block;
  margin-top: 8px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #7fc8d4;
}

.section-title {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 10px;
}

/* Panels e tabela */
.panel {
  background: var(--bg2);
  border-radius: 12px;
  border: 1.5px solid var(--border);
  overflow: hidden;
}

.panel-header {
  background: var(--navy);
  padding: 12px 18px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}

.panel-header > div:first-child {
  flex: 1;
  min-width: 0;
}

.panel-header h2 {
  font-size: 12.5px;
  font-weight: 700;
  color: #fff;
}

.panel-header .panel-total {
  font-family: 'DM Mono', monospace;
  font-size: 13px;
  font-weight: 500;
  color: #7fc8d4;
  flex-shrink: 0;
}

.panel-hint {
  font-size: 10px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.72);
  margin-top: 4px;
  line-height: 1.4;
}

table {
  width: 100%;
  border-collapse: collapse;
}

thead th {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 9px 14px 7px;
  text-align: left;
  border-bottom: 1.5px solid var(--border);
  background: #fafaf8;
}

thead th.right {
  text-align: right;
}

tbody tr {
  border-bottom: 1px solid var(--border);
}

tbody tr:last-child {
  border-bottom: none;
}

tbody tr:hover {
  background: #f8f7f3;
}

tbody td {
  padding: 8px 14px;
  font-size: 12px;
  color: var(--text);
  vertical-align: middle;
}

tbody td.right {
  text-align: right;
}

tbody td.mono {
  font-family: 'DM Mono', monospace;
  font-size: 11.5px;
}

tbody td.bold {
  font-weight: 700;
}

.badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
}

.badge-green {
  background: var(--tag-green);
  color: var(--tag-green-t);
}

.badge-amber {
  background: var(--tag-amber);
  color: var(--tag-amber-t);
}

.badge-indigo {
  background: var(--tag-indigo);
  color: var(--tag-indigo-t);
}

.badge-teal {
  background: var(--tag-teal);
  color: var(--tag-teal-t);
}

.badge-purple {
  background: var(--tag-purple);
  color: var(--tag-purple-t);
}

.badge-gray {
  background: var(--tag-gray);
  color: var(--tag-gray-t);
}

.badge-orange {
  background: #ffe8d4;
  color: #9a4500;
}

.footer {
  margin-top: 20px;
  border-top: 1px solid var(--border);
  padding-top: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}

.footer p {
  font-size: 10px;
  color: var(--muted);
  white-space: nowrap;
}

.footer .note {
  font-size: 10.5px;
  color: var(--muted);
  background: #f0ede6;
  padding: 7px 12px;
  border-radius: 6px;
  line-height: 1.5;
}

/* Modal */
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(22, 36, 58, 0.45);
  z-index: 200;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.modal-overlay.open {
  display: flex;
}

.modal-box {
  background: var(--bg2);
  border-radius: 12px;
  border: 1.5px solid var(--border);
  max-width: 900px;
  width: 100%;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.12);
}

.modal-head,
.modal-header {
  flex-shrink: 0;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--navy);
  border-radius: 12px 12px 0 0;
}

.modal-head h3 {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
}

.modal-close {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
}

.modal-body {
  flex: 1;
  overflow-y: auto;
  padding: 20px 24px;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.modal-body p.hint {
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 10px;
  line-height: 1.45;
}

.modal-foot,
.modal-footer {
  flex-shrink: 0;
  padding: 16px 24px;
  border-top: 1px solid #f3f4f6;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  background: white;
}

.modal-foot button {
  font-family: 'Sora', sans-serif;
  font-size: 12px;
  font-weight: 600;
  padding: 8px 18px;
  border-radius: 8px;
  border: 1.5px solid var(--border);
  background: var(--bg2);
  cursor: pointer;
}

.modal-foot button.primary,
.modal-foot .btn-primary {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
}

.modal-foot .btn-secondary {
  background: var(--bg2);
  color: var(--text);
  border: 1.5px solid var(--border);
}

.app-toolbar .toolbar-btn {
  font-family: 'Sora', sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg2);
  cursor: pointer;
  color: var(--text);
}

.app-toolbar .toolbar-btn:hover {
  background: #fafaf8;
  border-color: #c8c4bc;
}

/* Configurações */
.config-section {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 16px;
}

.config-section--creds {
  margin-top: 20px;
}

.config-section-title {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #9ca3af;
  font-weight: 600;
  margin-bottom: 12px;
}

.config-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.config-item-label {
  font-size: 0.9rem;
  font-weight: 600;
  color: #111827;
  margin-bottom: 4px;
}

.config-item-desc {
  font-size: 0.78rem;
  color: #6b7280;
  line-height: 1.4;
}

.config-creds {
  font-size: 0.8rem;
}

.toggle-switch {
  position: relative;
  display: inline-block;
  width: 48px;
  height: 26px;
  flex-shrink: 0;
}

.toggle-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.toggle-slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background: #d1d5db;
  border-radius: 26px;
  transition: 0.3s;
}

.toggle-slider:before {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  left: 3px;
  bottom: 3px;
  background: white;
  border-radius: 50%;
  transition: 0.3s;
}

.toggle-switch input:checked + .toggle-slider {
  background: var(--navy);
}

.toggle-switch input:checked + .toggle-slider:before {
  transform: translateX(22px);
}

.crm-pager {
  display: flex;
  align-items: center;
  gap: 12px;
}

.crm-pager button {
  font-family: inherit;
  font-size: 0.8125rem;
  padding: 6px 12px;
  border: 0.5px solid #e5e5e0;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
}

.crm-pager button:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.page.solix-page {
  max-width: 100%;
  width: 100%;
  margin: 0 auto;
  padding: 0 20px 32px;
  box-sizing: border-box;
}

/* Header Solix — fundo mais leve, data em verde */
.solix-page .header,
.solix-page #solix-header {
  width: 100%;
  max-width: 100%;
}

.solix-page .header {
  background: linear-gradient(145deg, rgba(30, 48, 80, 0.92) 0%, rgba(30, 80, 90, 0.88) 55%, rgba(22, 36, 58, 0.9) 100%);
}

.solix-page .header .scenario-label,
.solix-page .header #header-atualizado {
  color: var(--green2) !important;
}

.solix-page .header-left p {
  color: rgba(255, 255, 255, 0.72);
}

/* Divisórias entre blocos principais */
.solix-funnel-wrap.solix-section {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  width: 100%;
  max-width: 100%;
}

.solix-page .solix-funnel-wrap,
.solix-page #funnel-container,
.solix-page .funil-grafico {
  width: 100%;
  max-width: 100%;
}

.solix-page-inner {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
}

.solix-page .solix-section-title,
.solix-page .section-title.solix-section-title {
  font-size: 0.65rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(22, 36, 58, 0.5);
  margin-bottom: 12px;
  margin-top: 0;
  padding-left: 4px;
  font-weight: 700;
}

.solix-page .exec-dashboard .solix-section-title {
  margin-bottom: 16px;
}

.solix-section {
  margin-bottom: 24px;
}

/* Status Report */
.status-report {
  margin-bottom: 22px;
  overflow: hidden;
}

.status-report-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  background: var(--navy);
  color: #fff;
  border: none;
  cursor: pointer;
  font-family: 'Sora', sans-serif;
  font-size: 13px;
  font-weight: 700;
  text-align: left;
}

.status-report-toggle:hover {
  background: var(--navy2);
}

.status-report-chevron {
  font-size: 11px;
  transition: transform 0.2s;
}

.status-report-toggle.is-open .status-report-chevron {
  transform: rotate(180deg);
}

.status-report-body {
  padding: 16px 18px 20px;
  background: var(--bg2);
  border: 1.5px solid var(--border);
  border-top: none;
  border-radius: 0 0 12px 12px;
}

.status-report-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.status-tab {
  font-family: 'Sora', sans-serif;
  font-size: 11px;
  font-weight: 600;
  padding: 7px 14px;
  border-radius: 8px;
  border: 1.5px solid var(--border);
  background: #fff;
  color: var(--muted);
  cursor: pointer;
}

.status-tab:hover {
  border-color: var(--navy);
  color: var(--text);
}

.status-tab.active {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
}

.sr-period-hint {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 14px;
}

.sr-view-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 12px;
}

.sr-block {
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}

.sr-block:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.sr-block-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 8px;
}

.sr-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sr-list li {
  font-size: 12px;
  color: var(--text);
  padding: 6px 0;
  border-bottom: 1px solid #f0efe8;
  line-height: 1.45;
}

.sr-list li:last-child {
  border-bottom: none;
}

.sr-empty {
  font-size: 12px;
  color: var(--muted);
  font-style: italic;
  margin: 0;
}

.sr-tag-warn {
  color: #b00020;
  font-weight: 600;
  font-size: 10px;
}

.sr-tag-today {
  color: var(--green);
  font-weight: 600;
  font-size: 10px;
}

.sr-metrics-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  margin-bottom: 16px;
  padding: 12px 14px;
  background: #f7f7f5;
  border-radius: 8px;
}

.sr-metric {
  font-size: 12px;
  color: var(--text);
}

.sr-metric strong {
  color: var(--navy);
  font-family: 'DM Mono', monospace;
}

.sr-kpi-mini-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 16px;
}

@media (max-width: 800px) {
  .sr-kpi-mini-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.sr-kpi-mini {
  background: #f7f7f5;
  border-radius: 8px;
  padding: 10px 12px;
  border: 1px solid var(--border);
}

.sr-kpi-mini span {
  display: block;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin-bottom: 4px;
}

.sr-kpi-mini strong {
  font-size: 18px;
  font-family: 'DM Mono', monospace;
  color: var(--navy);
}

.status-report-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}

.status-report-actions .primary {
  font-family: 'Sora', sans-serif;
  font-size: 11px;
  font-weight: 600;
  padding: 8px 16px;
  border-radius: 8px;
  border: 1.5px solid var(--navy);
  background: var(--navy);
  color: #fff;
  cursor: pointer;
}

.status-report-actions .primary:hover {
  background: var(--navy2);
}

.status-report-actions .primary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.status-report-loading {
  font-size: 12px;
  color: var(--indigo);
}

.status-resumo-card {
  margin-top: 16px;
  padding: 16px 18px;
  background: linear-gradient(135deg, #eef4fb 0%, #e6f5ee 100%);
  border: 1.5px solid var(--indigo);
  border-radius: 10px;
}

.status-resumo-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--indigo);
  margin-bottom: 10px;
}

.status-resumo-card p {
  font-size: 13px;
  line-height: 1.6;
  color: var(--text);
  margin: 0;
  white-space: pre-wrap;
}

/* —— Visão executiva —— */
#exec-dashboard.exec-dashboard {
  margin-bottom: 0;
  width: 100%;
  max-width: 100%;
}

.exec-hero-row,
.exec-fase-row,
.exec-owner-row,
.exec-alerts-row {
  margin-bottom: 24px;
}

.exec-alerts-row:last-child {
  margin-bottom: 0;
}

/* Linha 1 — Hero */
.exec-hero-row,
.exec-hero-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.exec-hero {
  position: relative;
  min-height: 160px;
  padding: 28px;
  border-radius: 16px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
  overflow: hidden;
  display: flex;
  align-items: stretch;
  color: #fff;
}

.exec-hero--navy {
  background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
}

.exec-hero--green {
  background: linear-gradient(145deg, #2a9d5c 0%, var(--green2) 48%, #1f7a47 100%);
}

.exec-hero--teal {
  background: linear-gradient(145deg, #12a0ab 0%, var(--teal2) 48%, #0a6b72 100%);
}

.exec-hero-deco {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 5rem;
  line-height: 1;
  opacity: 0.08;
  pointer-events: none;
  user-select: none;
}

.exec-hero-body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}

.exec-hero-label {
  font-family: 'Sora', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.75;
  margin-bottom: 8px;
}

.exec-hero-value {
  font-family: 'Sora', sans-serif;
  font-size: 3.2rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.03em;
}

.exec-hero-sub {
  font-family: 'Sora', sans-serif;
  font-size: 0.8rem;
  margin-top: 10px;
  opacity: 0.6;
  line-height: 1.4;
}

/* Linha 2 — Fases */
.exec-fase-row,
.exec-fases-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
  width: 100%;
  max-width: 100%;
}

.exec-fase-card {
  height: 120px;
  padding: 16px;
  border-radius: 14px;
  background: #fff;
  border: none;
  border-top: 4px solid var(--fase-accent, var(--slate));
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 2px;
  min-width: 0;
  overflow: hidden;
}

.exec-fase-label {
  font-family: 'Sora', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1.2;
  max-width: 100%;
}

.exec-fase-robos {
  font-family: 'Sora', sans-serif;
  font-size: 2.8rem;
  font-weight: 800;
  color: var(--navy);
  line-height: 1;
  margin: 2px 0;
}

.exec-fase-clientes {
  font-size: 0.72rem;
  color: var(--muted);
  line-height: 1.2;
}

.exec-fase-arr {
  font-family: 'Sora', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.2;
  margin-top: 2px;
}

.exec-fase-arr--won {
  color: var(--green2);
  font-weight: 800;
}

/* Linha 3 — Responsáveis */
.exec-owner-row.exec-owners-grid,
.exec-owners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  width: 100%;
  max-width: 100%;
}

.exec-owner-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 160px;
  padding: 18px 20px;
  box-sizing: border-box;
  overflow: hidden;
  background: white;
  border-radius: 14px;
  border-top: 4px solid var(--navy);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

.exec-owner-head {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  min-width: 0;
}

.exec-owner-card .exec-owner-avatar {
  background: #1a3a5c !important;
  color: white !important;
  border-radius: 50% !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  flex-shrink: 0;
  font-family: 'Sora', sans-serif;
  line-height: 1;
}

.exec-owner-initials {
  display: block;
  pointer-events: none;
  user-select: none;
}

.exec-owner-head-text {
  overflow: hidden;
  flex: 1;
  min-width: 0;
}

.exec-owner-name {
  font-family: 'Sora', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.exec-owner-meta {
  font-size: 0.78rem;
  color: #6b7280;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.exec-owner-arr-block {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4px 0;
}

.exec-owner-arr-label {
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #9ca3af;
  margin-bottom: 2px;
  font-family: 'Sora', sans-serif;
  font-weight: 700;
}

.exec-owner-arr-value {
  font-size: 1.8rem;
  font-weight: 800;
  font-family: 'Sora', sans-serif;
  color: var(--green);
  line-height: 1;
}

.exec-owner-footer {
  flex-shrink: 0;
}

.exec-owner-bar {
  height: 6px;
  background: #f3f4f6;
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 6px;
}

.exec-owner-bar-inner {
  display: flex;
  height: 100%;
  border-radius: 3px;
  overflow: hidden;
  width: 100%;
}

.exec-owner-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  min-height: 2.4em;
  align-content: flex-start;
}

.exec-owner-leg-item {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.68rem;
  color: #6b7280;
}

.exec-owner-leg-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* Linha 4 — Alertas */
.exec-alerts-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 16px;
}

.exec-alerts-row[hidden] {
  display: none !important;
}

.exec-alert {
  min-height: 90px;
  padding: 20px 24px;
  border-radius: 12px;
  border-left: 5px solid;
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.exec-alert--danger {
  border-left-color: #c53030;
  background: rgba(197, 48, 48, 0.05);
}

.exec-alert--warn {
  border-left-color: var(--amber);
  background: rgba(201, 123, 16, 0.05);
}

.exec-alert--orange {
  border-left-color: #e86a2c;
  background: rgba(232, 106, 44, 0.05);
}

.exec-alert-icon {
  font-size: 2rem;
  line-height: 1;
  flex-shrink: 0;
}

.exec-alert-sub {
  font-size: 0.8rem;
  color: #6b7280;
  margin-bottom: 6px;
}

.exec-alert-body {
  flex: 1;
  min-width: 0;
}

.exec-alert-title {
  font-family: 'Sora', sans-serif;
  font-size: 0.8rem;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 6px;
  line-height: 1.3;
}

.exec-alert-items {
  font-size: 0.75rem;
  line-height: 1.45;
  color: var(--text);
}

.exec-alert-items .exec-alert-meta {
  color: var(--muted);
}

.compromisso-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid #f3f4f6;
}

.compromisso-item:last-child {
  border-bottom: none;
}

.compromisso-data {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--navy);
  min-width: 36px;
}

.compromisso-info {
  flex: 1;
  min-width: 0;
}

.compromisso-cliente {
  font-size: 0.85rem;
  font-weight: 600;
  display: block;
  color: var(--navy);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.compromisso-resp {
  font-size: 0.72rem;
  color: #6b7280;
}

.compromisso-tipo-badge {
  font-size: 0.68rem;
  padding: 3px 8px;
  border-radius: 4px;
  background: #dbeafe;
  color: #1d4ed8;
  white-space: nowrap;
}

.compromisso-tipo-badge.fechamento {
  background: #fef3c7;
  color: #d97706;
}

.compromisso-tipo-badge.followup {
  background: rgba(124, 58, 237, 0.12);
  color: #7c3aed;
}

.exec-alert-more {
  font-style: italic;
  color: var(--muted);
}

@media (max-width: 1100px) {
  .exec-fase-row,
  .exec-fases-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .page.solix-page {
    padding: 0 16px 24px;
  }

  .solix-funnel-wrap.solix-section {
    margin-top: 24px;
    padding-top: 20px;
  }

  .exec-hero-row,
  .exec-hero-grid {
    grid-template-columns: 1fr;
  }

  .exec-fase-row,
  .exec-fases-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .exec-fase-robos {
    font-size: 2.2rem;
  }

  .exec-owner-row.exec-owners-grid,
  .exec-owners-grid {
    grid-template-columns: 1fr;
  }

  .exec-owner-arr-value {
    font-size: 1.65rem;
  }

  .exec-alerts-row {
    grid-template-columns: 1fr;
  }

  .exec-hero-value {
    font-size: 2.4rem;
  }
}

.solix-global-filters {
  position: sticky;
  top: 48px;
  z-index: 95;
  background: var(--bg, #f8fafc);
  padding: 12px 0 4px;
  margin-bottom: 8px;
  border-bottom: 1px solid var(--border, #e5e7eb);
}

.solix-vertical-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  padding: 12px 16px;
  background: #fff;
  border: 1.5px solid var(--border, #e5e7eb);
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.solix-vertical-bar-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted, #6b7280);
  white-space: nowrap;
}

.solix-vertical-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  flex: 1;
}

.solix-vertical-pill {
  font-family: 'Sora', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 8px 16px;
  border-radius: 999px;
  border: 1.5px solid #e5e7eb;
  background: #f8fafc;
  color: #374151;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.solix-vertical-pill:hover {
  border-color: #1e3a5f;
  color: #1e3a5f;
}

.solix-vertical-pill.active {
  background: #1e3a5f;
  border-color: #1e3a5f;
  color: #fff;
}

.solix-vertical-pill--cana.active {
  background: #047857;
  border-color: #047857;
}

.solix-vertical-pill--perenes.active {
  background: #1d4ed8;
  border-color: #1d4ed8;
}

.solix-vertical-pill--graos.active {
  background: #b45309;
  border-color: #b45309;
}

.solix-vertical-pill--latam.active {
  background: #6d28d9;
  border-color: #6d28d9;
}

.solix-vertical-pill--vazio.active {
  background: #b91c1c;
  border-color: #b91c1c;
}

.solix-global-filters .solix-filters {
  margin-bottom: 0;
  border: none;
  background: transparent;
  padding: 0 4px 8px;
}

.solix-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
  margin-bottom: 16px;
  padding: 14px 16px;
  background: var(--bg2);
  border: 1.5px solid var(--border);
  border-radius: 12px;
}

.solix-filters label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.solix-filters select,
.solix-filters input[type="search"] {
  font-family: 'Sora', sans-serif;
  font-size: 12px;
  padding: 7px 10px;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  background: #fff;
  min-width: 140px;
}

.solix-filters input[type="search"] {
  min-width: 220px;
}

.solix-funnel-wrap {
  margin-bottom: 22px;
}

/* Funil por fase */
.funil-section {
  margin-bottom: 32px;
}

.funil-section:last-child {
  margin-bottom: 0;
}

.funil-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.funil-row:last-child {
  margin-bottom: 0;
}

.funil-label {
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #6b7280;
  width: 110px;
  flex-shrink: 0;
  font-weight: 700;
}

.funil-bar-wrap {
  flex: 1;
  height: 10px;
  background: #f3f4f6;
  border-radius: 5px;
  overflow: hidden;
  min-width: 0;
}

.funil-bar-fill {
  height: 100%;
  border-radius: 5px;
  transition: width 0.4s ease;
  min-width: 0;
}

.funil-pct {
  font-size: 0.72rem;
  color: #6b7280;
  width: 36px;
  text-align: right;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}

.funil-count {
  font-size: 0.72rem;
  color: #9ca3af;
  width: 70px;
  flex-shrink: 0;
  white-space: nowrap;
}

.solix-table-panel {
  margin-bottom: 20px;
  width: 100%;
  max-width: 100%;
}

#clientes-table,
.clientes-table {
  width: 100%;
}

#clientes-tbody {
  width: 100%;
}

.solix-table-panel thead th.sortable {
  cursor: pointer;
  user-select: none;
}

.solix-table-panel thead th.sortable:hover {
  color: var(--navy);
}

.solix-table-panel thead th.sort-asc::after {
  content: ' ▲';
  font-size: 8px;
}

.solix-table-panel thead th.sort-desc::after {
  content: ' ▼';
  font-size: 8px;
}

.solix-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.solix-actions button {
  font-family: 'Sora', sans-serif;
  font-size: 10px;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--bg2);
  cursor: pointer;
  color: var(--text);
}

.solix-actions button:hover {
  border-color: var(--navy);
  color: var(--navy);
}

.solix-actions button.primary-sm {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
}

.solix-actions button.btn-danger {
  color: #b00020;
  border-color: #e8c4c8;
}

.solix-actions button.btn-danger:hover {
  background: #fdf0f2;
  border-color: #b00020;
}

.solix-pagination {
  padding: 12px 18px;
  border-top: 1px solid var(--border);
  background: #fafaf8;
}

.solix-page-info {
  font-size: 12px;
  color: var(--muted);
}

.cliente-cell-sub {
  font-size: 10px;
  color: var(--muted);
  font-weight: 500;
  margin-top: 2px;
}

.fase-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
}

.modal-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 16px;
}

.modal-form .full {
  grid-column: 1 / -1;
}

.modal-form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.form-group-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
}

.form-hint {
  font-size: 0.65rem;
  color: #9ca3af;
  margin-top: 3px;
  display: block;
  font-weight: 400;
  text-transform: none;
  letter-spacing: normal;
}

.form-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
}

.form-input {
  width: 100%;
  font-family: 'Sora', sans-serif;
  font-size: 0.85rem;
  padding: 8px 10px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  color: var(--text);
}

.followup-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.nivel-selector {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

.nivel-btn {
  padding: 10px 8px;
  border: 2px solid #e5e7eb;
  border-radius: 10px;
  background: white;
  cursor: pointer;
  text-align: center;
  font-size: 0.8rem;
  font-weight: 600;
  transition: all 0.15s;
  font-family: 'Sora', sans-serif;
}

.nivel-btn span {
  display: block;
  font-size: 0.65rem;
  font-weight: 400;
  color: #6b7280;
  margin-top: 3px;
}

.nivel-btn[data-nivel="1"].active {
  border-color: #ef4444;
  background: #fef2f2;
  color: #ef4444;
}

.nivel-btn[data-nivel="2"].active {
  border-color: #d97706;
  background: #fffbeb;
  color: #d97706;
}

.nivel-btn[data-nivel="3"].active {
  border-color: #2563eb;
  background: #eff6ff;
  color: #2563eb;
}

.nivel-btn:hover {
  border-color: #9ca3af;
}

.nivel-badge {
  font-size: 0.65rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 4px;
  display: inline-block;
  white-space: nowrap;
}

.nivel-badge-1 {
  background: #fef2f2;
  color: #ef4444;
}

.nivel-badge-2 {
  background: #fffbeb;
  color: #d97706;
}

.nivel-badge-3 {
  background: #eff6ff;
  color: #2563eb;
}

.modal-form label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
}

.modal-form input,
.modal-form select,
.modal-form textarea {
  font-family: 'Sora', sans-serif;
  font-size: 12px;
  padding: 8px 10px;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  background: #fff;
}

.modal-form textarea {
  min-height: 72px;
  resize: vertical;
}

.modal-box--sm {
  max-width: 520px;
}

.modal-box--md {
  max-width: 640px;
}

.modal-box--lg {
  max-width: 720px;
}

.historico-list {
  list-style: none;
  max-height: 400px;
  overflow-y: auto;
}

.historico-list li {
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
  font-size: 12px;
}

.historico-list li:last-child {
  border-bottom: none;
}

.historico-list .hist-data {
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  color: var(--muted);
  margin-bottom: 4px;
}

.historico-list .hist-tipo {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--navy);
  letter-spacing: 0.06em;
}

.ia-dropzone {
  border: 2px dashed var(--border);
  border-radius: 12px;
  padding: 32px 20px;
  text-align: center;
  background: #fafaf8;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}

.ia-dropzone.dragover {
  border-color: var(--teal);
  background: #eef9fa;
}

.ia-dropzone p {
  font-size: 12px;
  color: var(--muted);
  margin-top: 8px;
}

.ia-preview {
  margin-top: 12px;
  text-align: center;
}

.ia-preview img {
  max-width: 100%;
  max-height: 200px;
  border-radius: 8px;
  border: 1px solid var(--border);
}

.ia-loading {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  margin-top: 12px;
  background: #eef4fb;
  border-radius: 10px;
  color: var(--indigo);
  font-size: 13px;
}

.ia-loading[hidden],
.ia-error[hidden] {
  display: none !important;
}

.ia-spinner {
  width: 22px;
  height: 22px;
  border: 2px solid rgba(45, 79, 160, 0.2);
  border-top-color: var(--indigo);
  border-radius: 50%;
  animation: ia-spin 0.7s linear infinite;
  flex-shrink: 0;
}

@keyframes ia-spin {
  to {
    transform: rotate(360deg);
  }
}

.ia-error {
  margin-top: 12px;
  padding: 12px 14px;
  background: #fdf0f2;
  border: 1px solid #e8c4c8;
  border-radius: 8px;
  color: #b00020;
  font-size: 12px;
  line-height: 1.45;
}

.ia-import-toolbar {
  margin: 12px 0 8px;
  font-size: 12px;
}

.ia-import-toolbar label {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-weight: 600;
  color: var(--text);
}

.ia-import-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 360px;
  overflow-y: auto;
  padding-right: 4px;
}

.ia-import-card {
  border: 1.5px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  background: #fff;
}

.ia-import-card.is-selected {
  border-color: var(--indigo);
  box-shadow: 0 0 0 1px rgba(45, 79, 160, 0.15);
}

.ia-import-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
}

.ia-import-card-head input[type="checkbox"] {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.ia-import-card-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--navy);
}

.ia-import-card .modal-form {
  grid-template-columns: 1fr 1fr;
  gap: 10px 12px;
}

.ia-import-card .modal-form label {
  font-size: 9px;
}

.ia-import-card .modal-form input,
.ia-import-card .modal-form select,
.ia-import-card .modal-form textarea {
  font-size: 11px;
  padding: 6px 8px;
}

.ia-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.empty-table-msg {
  text-align: center;
  padding: 32px;
  color: var(--muted);
  font-size: 13px;
}

/* —— Login (login.html) —— */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.login-page {
  min-height: 100vh;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  font-family: 'Sora', sans-serif;
  background: linear-gradient(135deg, #f0f4f8 0%, #e8edf2 100%);
  box-sizing: border-box;
}

.login-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}

.login-card {
  width: 100%;
  max-width: 420px;
  background: #fff;
  border-radius: 20px;
  padding: 48px;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.12);
  box-sizing: border-box;
  animation: fadeInUp 0.4s ease-out;
}

.login-logo {
  font-size: 3rem;
  text-align: center;
  line-height: 1;
  margin-bottom: 8px;
}

.login-title {
  margin: 0;
  font-family: 'Sora', sans-serif;
  font-size: 1.8rem;
  font-weight: 800;
  color: var(--navy);
  text-align: center;
  line-height: 1.2;
}

.login-subtitle {
  margin: 6px 0 24px;
  font-size: 0.9rem;
  color: #6b7280;
  text-align: center;
  letter-spacing: 0.1em;
}

.login-divider {
  border: none;
  border-top: 1px solid #e5e7eb;
  margin: 0 0 24px;
}

.login-form {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.login-label {
  display: block;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6b7280;
  margin-bottom: 6px;
  margin-top: 14px;
}

.login-form .login-label:first-of-type {
  margin-top: 0;
}

.login-input {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.95rem;
  font-family: 'Sora', sans-serif;
  color: var(--text);
  background: #fff;
  margin-bottom: 16px;
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.2s, box-shadow 0.15s;
}

.login-input:focus {
  outline: none;
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(22, 36, 58, 0.12);
}

.login-btn {
  width: 100%;
  margin-top: 4px;
  padding: 14px;
  border: none;
  border-radius: 8px;
  background: var(--navy);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  font-family: 'Sora', sans-serif;
  cursor: pointer;
  transition: background 0.2s;
}

.login-btn:hover:not(:disabled) {
  background: #2d5a8e;
}

.login-btn:disabled {
  background: #9ca3af;
  cursor: not-allowed;
}

.login-error {
  color: #ef4444;
  font-size: 0.85rem;
  text-align: center;
  margin-top: 12px;
  display: none;
}

.login-hint {
  font-size: 0.7rem;
  color: #9ca3af;
  text-align: center;
  margin-top: 16px;
}

.login-footer {
  font-size: 0.7rem;
  color: #d1d5db;
  text-align: center;
  margin-top: 20px;
}

/* Toolbar — botão Sair */
.app-toolbar .toolbar-end {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 12px;
}

.app-toolbar .toolbar-logout {
  font-family: 'Sora', sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  color: #6b7280;
  background: none;
  border: none;
  padding: 4px 8px;
  cursor: pointer;
  transition: color 0.15s;
}

.app-toolbar .toolbar-logout:hover {
  color: var(--navy);
  background: none;
  border: none;
}

.toolbar-user-greeting {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.82rem;
  color: #374151;
}

#toolbar-user-nome {
  font-weight: 600;
  color: var(--navy);
}

.role-hidden {
  display: none !important;
}

.app-toolbar .toolbar-end .status {
  margin-left: 0;
}

/* —— Alternância Lista / Kanban —— */
.panel-header-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}

.view-toggle {
  display: flex;
  gap: 6px;
}

.view-toggle-btn {
  font-family: 'Sora', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 6px;
  border: 1.5px solid #9ca3af;
  background: transparent;
  color: #9ca3af;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  line-height: 1.2;
}

.view-toggle-btn:hover {
  border-color: var(--navy);
  color: var(--navy);
}

.view-toggle-btn.active {
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
}

.crm-view--kanban {
  padding: 16px 18px 18px;
}

/* —— Kanban board —— */
.kanban-board {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
  overflow-x: auto;
  align-items: flex-start;
  padding-bottom: 16px;
  min-width: 0;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  width: 100%;
  max-width: 100%;
}

.kanban-col {
  min-width: 180px;
  max-width: 100%;
  background: #f8f9fa;
  border-radius: 12px;
  padding: 10px;
}

.kanban-col-header {
  background: #fff;
  border-radius: 8px;
  padding: 8px 10px;
  margin-bottom: 8px;
  border-top: 3px solid var(--slate);
}

.kanban-col--ganho .kanban-col-header {
  background: #f0fdf4;
  border-top-color: #16a34a;
}

.kanban-col-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
}

.kanban-col-title .fase-badge {
  font-size: 0.65rem;
  letter-spacing: 0.06em;
}

.kanban-col-meta {
  font-size: 0.68rem;
  color: #6b7280;
  margin-top: 2px;
  line-height: 1.35;
}

.kanban-col-meta strong {
  color: var(--navy);
  font-weight: 700;
}

.kanban-col-cards {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.kanban-empty {
  font-size: 0.72rem;
  color: #9ca3af;
  font-style: italic;
  text-align: center;
  padding: 12px 6px;
  margin: 0;
}

.kanban-empty-board {
  width: 100%;
  margin: 0;
  grid-column: 1 / -1;
}

/* —— Kanban card —— */
.kanban-card {
  position: relative;
  background: #fff;
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 0.82rem;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
  border-left: 3px solid var(--slate);
  cursor: pointer;
  transition: box-shadow 0.15s ease, transform 0.15s ease;
  min-width: 0;
}

.kanban-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  transform: translateY(-1px);
}

.kanban-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}

.kanban-card-ganho-icon {
  color: #16a34a;
  font-size: 0.8rem;
  line-height: 1;
  flex-shrink: 0;
}

.kanban-card-name {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 4px;
  line-height: 1.25;
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  word-break: break-word;
}

.kanban-card-line {
  font-size: 0.72rem;
  margin-bottom: 2px;
  color: #6b7280;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.kanban-card-line--visita {
  color: #2563eb;
}

.prox-contato--vencido {
  color: #ef4444;
  font-weight: 600;
}

.prox-contato--urgente {
  color: #d97706;
  font-weight: 600;
}

.prox-contato--normal {
  color: inherit;
}

.kanban-followup {
  font-size: 0.68rem;
  color: #7c3aed;
  background: rgba(124, 58, 237, 0.08);
  border-radius: 4px;
  padding: 2px 6px;
  margin-top: 3px;
  line-height: 1.35;
  word-break: break-word;
}

.kanban-card-line--fechamento {
  color: #16a34a;
}

.kanban-robos-proj-em,
.kanban-robos-proj {
  font-size: 0.65rem;
  color: #9ca3af;
  font-style: italic;
  font-weight: 500;
}

.robos-proj-cell {
  cursor: help;
  border-bottom: 1px dotted #9ca3af;
}

.kanban-card-status {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 100%;
  font-size: 0.68rem;
  color: #9ca3af;
  font-style: italic;
  margin-top: 2px;
}

.kanban-card-status--fechado {
  font-style: normal;
  font-weight: 700;
  color: #16a34a;
}

.kanban-proximo-passo {
  font-size: 0.72rem;
  color: #1e3a5f;
  font-weight: 600;
  background: #eff6ff;
  border-radius: 4px;
  padding: 3px 8px;
  margin-top: 4px;
  border-left: 2px solid #2563eb;
}

.proximo-passo-aviso {
  font-size: 0.7rem;
  color: #ef4444;
  font-weight: 600;
  margin-top: 4px;
}

@keyframes pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

.td-proximo-passo {
  color: #1e3a5f;
  font-size: 0.8rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.35;
  max-width: 180px;
}

.badge-proximo-passo {
  animation: pulse 2s infinite;
  background: #fef2f2;
  color: #ef4444;
  border: 1px solid #fecaca;
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 0.7rem;
  white-space: nowrap;
}

.kanban-card-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #f3f4f6;
}

.kanban-card-footer button {
  font-family: 'Sora', sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
  line-height: 1.2;
  white-space: nowrap;
}

.kanban-card-footer .kanban-btn--ver {
  border: 1px solid var(--teal);
  color: var(--teal);
}

.kanban-card-footer .kanban-btn--ver:hover {
  background: rgba(13, 148, 136, 0.08);
}

.kanban-card-footer .kanban-btn--edit {
  border: 1px solid var(--navy);
  color: var(--navy);
}

.kanban-card-footer .kanban-btn--edit:hover {
  background: rgba(22, 36, 58, 0.06);
}

.kanban-card-footer .kanban-btn--proposta {
  border: 1px solid #7c3aed;
  color: #7c3aed;
}

.kanban-card-footer .kanban-btn--proposta:hover {
  background: rgba(124, 58, 237, 0.08);
}

.kanban-card-footer .kanban-btn--visita {
  border: 1px solid var(--green2);
  color: var(--green2);
}

.kanban-card-footer .kanban-btn--visita:hover {
  background: rgba(34, 137, 79, 0.08);
}

.kanban-ver-mais {
  width: 100%;
  padding: 8px;
  margin-top: 6px;
  background: none;
  border: 1px dashed #d1d5db;
  border-radius: 8px;
  color: #6b7280;
  font-size: 0.75rem;
  cursor: pointer;
  text-align: center;
}

.kanban-ver-mais:hover {
  background: #f9fafb;
  border-color: #9ca3af;
}

.kanban-scroll-hint {
  text-align: center;
  font-size: 0.75rem;
  color: #9ca3af;
  margin: 0;
  padding-top: 4px;
}

@media (max-width: 1200px) {
  .kanban-board {
    grid-template-columns: repeat(6, minmax(180px, 1fr));
  }
}

@media (max-width: 768px) {
  .panel-header {
    flex-wrap: wrap;
  }

  .panel-header-actions {
    width: 100%;
    justify-content: space-between;
    margin-top: 4px;
  }

  .kanban-board {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* —— Notificações —— */
.notif-wrapper {
  position: relative;
}

.app-toolbar .notif-btn {
  background: none;
  border: none;
  font-size: 1.2rem;
  cursor: pointer;
  padding: 4px 8px;
  position: relative;
  line-height: 1;
}

.app-toolbar .notif-btn:hover {
  background: none;
  border: none;
}

.notif-badge {
  position: absolute;
  top: 0;
  right: 0;
  background: #ef4444;
  color: white;
  font-size: 0.6rem;
  font-weight: 700;
  border-radius: 50%;
  width: 16px;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.notif-dropdown {
  position: absolute;
  right: 0;
  top: 36px;
  width: 320px;
  background: white;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  z-index: 1000;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e5e7eb;
}

.notif-header {
  padding: 12px 14px;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--navy);
  border-bottom: 1px solid #f3f4f6;
}

.notif-list {
  max-height: 320px;
  overflow-y: auto;
}

.notif-row {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid #f3f4f6;
}

.notif-row:last-child {
  border-bottom: none;
}

.notif-row--visita .notif-item {
  border-left-color: #ef4444;
}

.notif-row--inativo .notif-item {
  border-left-color: #d97706;
}

.notif-row--fechamento .notif-item {
  border-left-color: #16a34a;
}

.notif-row--followup .notif-item {
  border-left-color: #7c3aed;
}

.notif-item {
  flex: 1;
  min-width: 0;
  border: none;
  border-left: 4px solid #6b7280;
  padding: 10px 12px 10px 14px;
  font-size: 0.82rem;
  cursor: pointer;
  line-height: 1.4;
  color: var(--text);
  background: transparent;
  text-align: left;
  font-family: 'Sora', sans-serif;
}

.notif-item:hover {
  background: #f9fafb;
}

.notif-dismiss {
  flex-shrink: 0;
  align-self: center;
  margin-right: 10px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1.5px solid #d1d5db;
  background: #fff;
  color: #6b7280;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  transition: all 0.15s;
}

.notif-dismiss:hover {
  background: #16a34a;
  border-color: #16a34a;
  color: #fff;
}

.notif-item--visita {
  border-left-color: #ef4444;
}

.notif-item--inativo {
  border-left-color: #d97706;
}

.notif-item--fechamento {
  border-left-color: #16a34a;
}

.notif-item--followup {
  border-left-color: #7c3aed;
}

.notif-empty {
  padding: 24px 14px;
  text-align: center;
  font-size: 0.85rem;
  color: var(--muted);
}

.notif-footer {
  padding: 10px 14px;
  border-top: 1px solid #f3f4f6;
  text-align: center;
}

.notif-footer button {
  font-family: 'Sora', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--navy);
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px 8px;
}

.notif-footer button:hover {
  text-decoration: underline;
}

.notif-footer--hint {
  padding-top: 0;
  border-top: none;
}

.notif-footer-hint {
  font-size: 0.7rem;
  color: #9ca3af;
}

.app-toolbar #btn-calendario {
  font-size: 11px;
}

/* —— Calendário —— */
.modal-calendario {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.modal-calendario[hidden] {
  display: none !important;
}

.cal-container {
  background: white;
  border-radius: 16px;
  width: 90vw;
  max-width: 1100px;
  max-height: 90vh;
  overflow-y: auto;
  padding: 32px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);
}

.cal-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.cal-title {
  flex: 1;
  text-align: center;
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--navy);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0;
  min-width: 140px;
}

.cal-nav-btn,
.cal-today-btn,
.cal-close-btn {
  font-family: 'Sora', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 8px;
  border: 1.5px solid var(--border);
  background: #fff;
  cursor: pointer;
  color: var(--text);
}

.cal-nav-btn {
  font-size: 1.1rem;
  padding: 4px 14px;
}

.cal-close-btn {
  margin-left: auto;
  font-size: 1.25rem;
  line-height: 1;
  padding: 4px 10px;
}

.cal-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 6px;
}

.cal-weekday {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #9ca3af;
  text-align: center;
  padding: 4px;
}

.cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.cal-day {
  min-height: 100px;
  border: 1px solid #f3f4f6;
  padding: 6px;
  border-radius: 6px;
  background: #fff;
}

.cal-day--empty {
  background: #fafafa;
  border-color: transparent;
}

.cal-day--today {
  background: #eff6ff;
}

.cal-day-num {
  font-size: 0.75rem;
  color: #9ca3af;
  text-align: right;
  margin-bottom: 4px;
}

.cal-day--today .cal-day-num {
  color: var(--navy);
  font-weight: 700;
}

.cal-event {
  font-size: 0.65rem;
  padding: 2px 6px;
  border-radius: 4px;
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  border: none;
  width: 100%;
  text-align: left;
  font-family: 'Sora', sans-serif;
}

.cal-event--agendada {
  background: #dbeafe;
  color: #1d4ed8;
}

.cal-event--realizada {
  background: #dcfce7;
  color: #15803d;
}

.cal-event--fechamento {
  background: #ffedd5;
  color: #c2410c;
}

.cal-event--followup {
  background: rgba(124, 58, 237, 0.1);
  color: #7c3aed;
}

.cal-more {
  font-size: 0.62rem;
  color: var(--navy);
  font-weight: 600;
  cursor: pointer;
  padding: 2px 4px;
  background: none;
  border: none;
  font-family: 'Sora', sans-serif;
}

.cal-more:hover {
  text-decoration: underline;
}

/* —— Drawer —— */
.drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0);
  z-index: 1499;
  transition: opacity 0.3s ease, background 0.3s ease;
  pointer-events: none;
}

.drawer-overlay.open {
  background: rgba(0, 0, 0, 0.3);
  pointer-events: auto;
}

.drawer-overlay[hidden] {
  display: none !important;
}

.drawer {
  position: fixed;
  top: 0;
  right: -480px;
  width: 460px;
  height: 100vh;
  background: white;
  z-index: 1500;
  box-shadow: -8px 0 32px rgba(0, 0, 0, 0.15);
  transition: right 0.3s ease;
  overflow-y: auto;
  padding: 28px;
}

.drawer.open {
  right: 0;
}

/* —— Drawer de fase —— */
#drawer-fase-content .drawer-header,
#drawer-resp-content .drawer-header {
  padding: 20px 24px;
  border-bottom: 1px solid #f3f4f6;
}

.drawer-header-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

#drawer-fase-content .drawer-header .drawer-close,
#drawer-resp-content .drawer-header .drawer-close {
  background: none;
  border: none;
  font-size: 1.2rem;
  cursor: pointer;
  color: #6b7280;
  padding: 4px;
  width: auto;
  height: auto;
  border-radius: 0;
}

.drawer-header-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 14px;
}

.drawer-stat {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 10px 12px;
}

.drawer-stat-val {
  display: block;
  font-size: 1.1rem;
  font-weight: 700;
  font-family: 'Sora', sans-serif;
  color: var(--navy);
}

.drawer-stat-label {
  display: block;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #9ca3af;
  margin-top: 2px;
}

.drawer-fase-list {
  padding: 8px 0 24px;
}

.drawer-fase-empty {
  padding: 24px;
}

#drawer-fase-content .drawer-fase-cli-card,
#drawer-resp-content .drawer-fase-cli-card {
  background: white;
  border-radius: 10px;
  padding: 14px;
  margin: 8px 16px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  border-left: 3px solid var(--navy);
}

.drawer-cli-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 8px;
}

.drawer-cli-nome {
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--navy);
}

.drawer-cli-resp {
  font-size: 0.72rem;
  color: #6b7280;
  text-align: right;
  flex-shrink: 0;
}

.drawer-cli-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 0.75rem;
  color: #374151;
  margin-bottom: 6px;
}

.drawer-cli-status {
  font-size: 0.72rem;
  color: #9ca3af;
  font-style: italic;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.drawer-cli-footer {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid #f3f4f6;
}

.drawer-cli-footer button {
  font-family: 'Sora', sans-serif;
  font-size: 0.72rem;
  padding: 4px 10px;
  border-radius: 6px;
  cursor: pointer;
  border: 1px solid var(--navy);
  background: none;
  color: var(--navy);
}

.drawer-cli-footer button[data-drawer-action='visita'] {
  border-color: var(--green);
  color: var(--green);
}

.drawer-fase-grupo {
  margin: 0 16px 16px;
}

.drawer-fase-grupo-label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  padding: 4px 0;
  font-size: 0.72rem;
  color: #6b7280;
  border-bottom: 1px solid #f3f4f6;
}

.drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.drawer-close {
  background: #f3f4f6;
  border: none;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 1.2rem;
  line-height: 1;
  flex-shrink: 0;
}

.drawer-meta {
  font-size: 0.8rem;
  color: #6b7280;
  margin-top: 8px;
  line-height: 1.45;
}

.drawer-section-title {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #9ca3af;
  margin: 16px 0 8px;
}

.drawer-cliente-card {
  background: #f9fafb;
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 8px;
  border-left: 3px solid var(--navy);
}

.drawer-cliente-card-name {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 4px;
}

.drawer-cliente-card-line {
  font-size: 0.75rem;
  color: #6b7280;
  margin-bottom: 2px;
}

.drawer-cliente-card-foot {
  margin-top: 8px;
  display: flex;
  gap: 8px;
}

.drawer-cliente-card-foot button {
  font-family: 'Sora', sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid var(--navy);
  background: transparent;
  color: var(--navy);
  cursor: pointer;
}

.drawer-footer {
  margin-top: 20px;
  padding-top: 14px;
  border-top: 1px solid #f3f4f6;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--navy);
}

.drawer-owner-head {
  display: flex;
  align-items: center;
  gap: 12px;
}

.drawer-owner-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.9rem;
  flex-shrink: 0;
}

.drawer-detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
  margin-bottom: 16px;
}

.drawer-detail-item {
  font-size: 0.75rem;
}

.drawer-detail-item span {
  display: block;
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #9ca3af;
  margin-bottom: 2px;
}

.drawer-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  border-left: 2px solid #e5e7eb;
  margin-left: 8px;
}

.drawer-timeline li {
  padding: 8px 0 8px 14px;
  font-size: 0.75rem;
  position: relative;
}

.drawer-timeline li::before {
  content: '';
  position: absolute;
  left: -5px;
  top: 12px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--navy);
}

.drawer-actions {
  display: flex;
  gap: 8px;
  margin-top: 16px;
  flex-wrap: wrap;
}

.drawer-actions button {
  font-family: 'Sora', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 8px;
  cursor: pointer;
}

.drawer-actions .primary-sm {
  background: var(--navy);
  color: #fff;
  border: 1px solid var(--navy);
}

.drawer-actions .outline {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text);
}

.exec-fase-card--clickable,
.exec-owner-card--clickable {
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.exec-fase-card--clickable:hover,
.exec-owner-card--clickable:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.cliente-nome-link {
  font-family: inherit;
  font-size: inherit;
  font-weight: 700;
  color: var(--navy);
  cursor: pointer;
  text-decoration: underline dotted;
  text-underline-offset: 3px;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  text-align: left;
  display: inline;
}

.cliente-nome-link:hover {
  color: var(--navy);
  opacity: 0.85;
}

/* —— Drawer de cliente (detalhe) —— */
#drawer-cliente {
  position: fixed;
  top: 0;
  right: -600px;
  width: 560px !important;
  height: 100vh;
  background: white;
  z-index: 1500;
  box-shadow: -8px 0 32px rgba(0, 0, 0, 0.15);
  transition: right 0.3s ease;
  overflow-y: auto;
  display: none;
  padding: 0;
}

#drawer-cliente.open {
  right: 0 !important;
  display: block !important;
}

#drawer-cliente-content .drawer-section {
  padding: 14px 20px;
  border-bottom: 1px solid #f3f4f6;
}

#drawer-cliente-content .drawer-section-label {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #9ca3af;
  margin-bottom: 8px;
}

.drawer-proximo-passo--ok {
  background: #eff6ff;
  border-left: 3px solid #2563eb;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 0.85rem;
  color: #1e3a5f;
  font-weight: 600;
  line-height: 1.45;
}

.drawer-proximo-passo--warn {
  background: #fef2f2;
  border-left: 3px solid #ef4444;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 0.85rem;
  color: #ef4444;
  font-weight: 600;
}

#drawer-cliente-content .drawer-cli-header {
  padding: 20px 24px;
  border-bottom: 1px solid #f3f4f6;
}

.drawer-cli-header-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.drawer-cli-titulo {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--navy);
  margin: 0;
  flex: 1;
  min-width: 120px;
  font-family: 'Sora', sans-serif;
}

#drawer-cliente-content .drawer-header .drawer-close,
#drawer-cliente-content .drawer-cli-header .drawer-close {
  background: none;
  border: none;
  font-size: 1.2rem;
  cursor: pointer;
  color: #6b7280;
  padding: 4px;
  width: auto;
  height: auto;
  border-radius: 0;
  flex-shrink: 0;
}

.drawer-cli-section {
  padding: 16px 20px;
  border-bottom: 1px solid #f3f4f6;
}

.drawer-cli-section-label {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #9ca3af;
  margin-bottom: 10px;
}

.drawer-cli-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.drawer-cli-metric {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 0.82rem;
  color: #6b7280;
}

.drawer-cli-metric strong {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  font-family: 'Sora', sans-serif;
  color: var(--navy);
  margin-top: 4px;
}

.drawer-cli-status-card {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 12px 14px;
  font-size: 0.85rem;
  color: #374151;
  line-height: 1.45;
}

.drawer-followup-card {
  background: rgba(124, 58, 237, 0.06);
  border-radius: 8px;
  padding: 12px 14px;
  border-left: 3px solid #7c3aed;
}

.drawer-followup-card--vencido {
  background: #fef2f2;
  border-left-color: #ef4444;
}

.drawer-followup-card--hoje {
  background: #fffbeb;
  border-left-color: #d97706;
}

.drawer-followup-data {
  margin: 0 0 6px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--navy);
}

.drawer-followup-obs {
  margin: 0;
  font-size: 0.82rem;
  color: #374151;
  line-height: 1.45;
}

.drawer-followup-tag {
  font-size: 0.72rem;
  font-weight: 700;
}

.drawer-followup-tag--vencido {
  color: #ef4444;
}

.drawer-followup-tag--hoje {
  color: #d97706;
}

.drawer-cli-passos p {
  margin: 0 0 8px;
  font-size: 0.82rem;
  color: #374151;
}

.drawer-cli-passos p:last-child {
  margin-bottom: 0;
}

.drawer-cli-empty {
  margin: 0;
  font-size: 0.8rem;
  color: #9ca3af;
  font-style: italic;
}

.drawer-visita-item {
  padding: 8px 0;
  border-bottom: 1px solid #f9fafb;
  font-size: 0.8rem;
}

.drawer-visita-item:last-child {
  border-bottom: none;
}

.visita-tipo-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.68rem;
  font-weight: 600;
  margin-bottom: 4px;
}

.visita-tipo-badge.agendada {
  background: #dbeafe;
  color: #1d4ed8;
}

.visita-tipo-badge.realizada {
  background: #dcfce7;
  color: #15803d;
}

.visita-data {
  font-size: 0.75rem;
  color: #6b7280;
  margin-left: 8px;
}

.visita-obs {
  color: #374151;
  margin: 4px 0 0;
  font-size: 0.78rem;
  line-height: 1.4;
}

.drawer-rodape {
  padding: 16px 20px;
  display: flex;
  gap: 10px;
  position: sticky;
  bottom: 0;
  background: white;
  border-top: 1px solid #f3f4f6;
}

.drawer-rodape button {
  flex: 1;
  padding: 10px;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  font-family: 'Sora', sans-serif;
}

.drawer-rodape button:first-child {
  border: 1px solid var(--navy);
  color: var(--navy);
  background: none;
}

.drawer-rodape button:last-child {
  background: var(--green);
  color: white;
  border: none;
}

/* —— Abas do drawer de cliente —— */
.drawer-tabs {
  display: flex;
  border-bottom: 2px solid #f3f4f6;
  padding: 0 20px;
}

.drawer-tab {
  padding: 10px 16px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #6b7280;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
  font-family: 'Sora', sans-serif;
}

.drawer-tab.active {
  color: var(--navy);
  border-bottom-color: var(--navy);
}

.drawer-tab-panels {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.drawer-tab-panel[hidden] {
  display: none !important;
}

#drawer-cliente-content .drawer-tab-panel .drawer-section:last-of-type {
  border-bottom: none;
}

/* —— Aba Proposta Comercial —— */
.drawer-proposta {
  padding-bottom: 0;
}

.proposta-secao {
  padding: 16px 20px;
  border-bottom: 1px solid #f3f4f6;
}

.proposta-secao-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6b7280;
}

.proposta-secao-total {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--navy);
  font-family: 'Sora', sans-serif;
  letter-spacing: 0;
  text-transform: none;
}

.proposta-grid {
  width: 100%;
  font-size: 0.78rem;
}

.proposta-grid--capex .proposta-grid-header,
.proposta-grid--capex .proposta-grid-row {
  display: grid;
  grid-template-columns: 140px 90px 130px 100px;
  gap: 10px;
  align-items: center;
  padding: 8px 0;
}

.proposta-grid--saas .proposta-grid-header,
.proposta-grid--saas .proposta-grid-row {
  display: grid;
  grid-template-columns: 140px 90px 130px 120px;
  gap: 10px;
  align-items: center;
  padding: 8px 0;
}

.proposta-grid-header {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #9ca3af;
  font-weight: 600;
  border-bottom: 1px solid #e5e7eb;
  padding-bottom: 8px;
}

.proposta-grid-label {
  color: #374151;
}

.proposta-grid-row {
  border-bottom: 1px solid #f3f4f6;
}

.proposta-grid-row:last-child {
  border-bottom: none;
}

/* Inputs da proposta: estilo definido inline em solix-app.js (PROPOSTA_INPUT_*) */

.proposta-unit {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}

.proposta-unit,
.proposta-val {
  font-size: 0.76rem;
  color: #4b5563;
}

.proposta-val {
  font-weight: 600;
  color: var(--navy);
  text-align: right;
}

.proposta-total-row {
  border-bottom: none;
  padding-top: 10px;
  font-size: 0.8rem;
}

.proposta-total-row .proposta-total-label {
  grid-column: 1 / span 3;
}

.proposta-total-row strong {
  color: var(--navy);
}

.proposta-prazo-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 10px 0;
  border-bottom: 1px solid #f3f4f6;
  margin-bottom: 8px;
}

.proposta-prazo-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: #374151;
  flex-shrink: 0;
}

.proposta-prazo-btns {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.btn-prazo {
  padding: 4px 12px;
  border-radius: 6px;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  border: 2px solid #e5e7eb;
  background: white;
  color: #6b7280;
  font-family: 'Sora', sans-serif;
}

.btn-prazo.is-active {
  border-color: var(--navy);
  background: var(--navy);
  color: #fff;
}

/* #prazo-custom: estilo inline em solix-app.js */

.proposta-resumo-contrato {
  background: #1e3a5f;
  border-radius: 12px;
  padding: 16px 20px;
  margin: 16px 20px 0;
  color: white;
}

.proposta-resumo-contrato-linha {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  gap: 12px;
}

.proposta-resumo-contrato-linha > span:first-child {
  font-size: 0.75rem;
  opacity: 0.7;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.proposta-resumo-contrato-linha > span:last-child {
  font-weight: 700;
  font-family: 'Sora', sans-serif;
  white-space: nowrap;
}

.proposta-resumo-contrato-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0 2px;
  margin-top: 4px;
  border-top: 2px solid rgba(255, 255, 255, 0.2);
  gap: 12px;
}

.proposta-resumo-contrato-total > span:first-child {
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.proposta-resumo-contrato-total > span:last-child {
  font-size: 1.1rem;
  font-weight: 800;
  color: #4ade80;
  font-family: 'Sora', sans-serif;
  white-space: nowrap;
}

.kanban-proposta-totais {
  font-size: 0.7rem;
  color: #374151;
  margin-top: 4px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.proposta-obs {
  padding: 0 20px 8px;
}

.proposta-obs-textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: 0.82rem;
  font-family: inherit;
  resize: vertical;
  min-height: 80px;
  line-height: 1.45;
}

.proposta-obs-textarea:focus {
  outline: none;
  border-color: var(--navy);
  box-shadow: 0 0 0 2px rgba(30, 58, 95, 0.12);
}

.drawer-rodape--proposta {
  padding-top: 12px;
}

.proposta-salvar-btn {
  flex: 1;
  width: 100%;
  padding: 12px;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  font-family: 'Sora', sans-serif;
  background: var(--navy) !important;
  color: #fff !important;
  border: none !important;
}

.proposta-salvar-btn:hover {
  opacity: 0.92;
}

@media (max-width: 768px) {
  .drawer {
    width: 100%;
    right: -100%;
  }

  #drawer-cliente {
    width: 100% !important;
    right: -100%;
  }

  #drawer-cliente.open {
    right: 0 !important;
  }

  .cal-container {
    padding: 16px;
  }
}

/* —— Relatórios (página dedicada) —— */
.relatorios-page {
  background: #f8fafc;
  min-height: 100vh;
}

.relatorios-toolbar {
  justify-content: space-between;
}

.toolbar-brand {
  font-family: 'Sora', sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text);
}

.toolbar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.rel-toolbar-user {
  font-size: 0.82rem;
  color: #6b7280;
}

.rel-page-header {
  background: #1e3a5f;
  padding: 24px 32px;
}

.rel-page-header-inner {
  max-width: 1280px;
  margin: 0 auto;
}

.rel-page-title {
  font-size: 1.4rem;
  font-weight: 800;
  color: white;
  font-family: 'Sora', sans-serif;
}

.rel-page-subtitle {
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.6);
  margin-top: 4px;
}

.rel-page-tabs {
  background: white;
  border-bottom: 2px solid #f3f4f6;
  position: sticky;
  top: 48px;
  z-index: 100;
}

.rel-page-tabs-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  overflow-x: auto;
}

.rel-page-content {
  max-width: 1280px;
  margin: 0 auto;
  padding: 32px;
}

.rel-tab {
  padding: 12px 20px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #6b7280;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  white-space: nowrap;
  transition: all 0.15s;
  font-family: 'Sora', sans-serif;
}

.rel-tab.active {
  color: #1e3a5f;
  border-bottom-color: #1e3a5f;
}

.rel-tab:hover {
  color: #1e3a5f;
}

.rel-kpi-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 28px;
}

.rel-kpi {
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px 18px;
}

.rel-kpi-label {
  font-size: 0.72rem;
  font-weight: 600;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 6px;
}

.rel-kpi-value {
  font-size: 1.15rem;
  font-weight: 800;
  color: #1e3a5f;
  font-family: 'Sora', sans-serif;
}

.rel-kpi-hint {
  font-size: 0.65rem;
  color: #9ca3af;
  margin-top: 6px;
  line-height: 1.35;
  font-weight: 500;
}

.rel-previsao-aviso {
  margin: 0 0 16px;
  padding: 10px 14px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  color: #1e40af;
  font-size: 0.78rem;
  line-height: 1.45;
}

.rel-section-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: #1e3a5f;
  margin: 24px 0 12px;
  font-family: 'Sora', sans-serif;
}

.rel-month-header {
  font-size: 0.95rem;
  font-weight: 800;
  color: #1e3a5f;
  padding: 10px 0 8px;
  border-bottom: 2px solid #e5e7eb;
  margin-top: 20px;
  font-family: 'Sora', sans-serif;
}

.rel-table-wrap {
  overflow-x: auto;
  margin-bottom: 8px;
}

.rel-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
}

.rel-table th {
  text-align: left;
  padding: 8px 10px;
  background: #f9fafb;
  color: #6b7280;
  font-weight: 600;
  border-bottom: 1px solid #e5e7eb;
  white-space: nowrap;
}

.rel-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #f3f4f6;
  vertical-align: middle;
}

.rel-table tr.rel-subtotal td {
  font-weight: 700;
  background: #f0f4f8;
  color: #1e3a5f;
  border-bottom: 2px solid #d1d5db;
}

.rel-bar-chart {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid #e5e7eb;
}

.rel-bar-row {
  margin-bottom: 12px;
}

.rel-bar-labels {
  display: flex;
  justify-content: space-between;
  font-size: 0.78rem;
  margin-bottom: 4px;
}

.rel-bar-track {
  height: 10px;
  background: #f3f4f6;
  border-radius: 5px;
  overflow: hidden;
}

.rel-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #1e3a5f, #2563eb);
  border-radius: 5px;
  min-width: 2px;
  transition: width 0.3s ease;
}

.rel-pipeline-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
}

.rel-pipeline-card {
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px;
  background: #fafafa;
}

.rel-pipeline-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 10px;
  gap: 8px;
}

.rel-pipeline-stats {
  font-size: 0.78rem;
  color: #4b5563;
  margin-bottom: 10px;
  line-height: 1.6;
}

.rel-pipeline-cli {
  font-size: 0.74rem;
  color: #374151;
  padding: 6px 0;
  border-top: 1px dashed #e5e7eb;
  line-height: 1.45;
}

.rel-resp-card {
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  margin-bottom: 24px;
  overflow: hidden;
}

.rel-resp-head {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  background: linear-gradient(135deg, #f8fafc, #eef2f7);
  border-bottom: 1px solid #e5e7eb;
}

.rel-resp-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #1e3a5f;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.85rem;
  flex-shrink: 0;
}

.rel-resp-name {
  font-size: 1rem;
  font-weight: 800;
  color: #1e3a5f;
}

.rel-resp-meta {
  font-size: 0.78rem;
  color: #6b7280;
  margin-top: 2px;
}

.rel-resp-body {
  padding: 16px 20px;
}

.rel-resp-subtotal {
  font-size: 0.78rem;
  font-weight: 700;
  color: #1e3a5f;
  margin: 12px 0;
  padding: 10px 12px;
  background: #f0f4f8;
  border-radius: 8px;
}

.rel-mini-funil {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #e5e7eb;
}

.rel-mini-funil-title {
  font-size: 0.7rem;
  font-weight: 700;
  color: #9ca3af;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 8px;
}

.rel-mini-funil-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 0.7rem;
}

.rel-mini-funil-label {
  width: 88px;
  flex-shrink: 0;
  color: #6b7280;
}

.rel-mini-funil-track {
  flex: 1;
  height: 8px;
  background: #f3f4f6;
  border-radius: 4px;
  overflow: hidden;
}

.rel-mini-funil-fill {
  height: 100%;
  border-radius: 4px;
}

.rel-mini-funil-count {
  width: 24px;
  text-align: right;
  font-weight: 700;
  color: #374151;
}

.rel-nivel-section {
  margin-bottom: 32px;
}

.rel-nivel-header {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1rem;
  font-weight: 800;
  color: #1e3a5f;
  margin-bottom: 8px;
  font-family: 'Sora', sans-serif;
}

.rel-nivel-stats {
  font-size: 0.78rem;
  color: #6b7280;
  margin-bottom: 12px;
}

.rel-prox-trunc {
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: inline-block;
  vertical-align: bottom;
}

@media (max-width: 900px) {
  .rel-kpi-row {
    grid-template-columns: repeat(2, 1fr);
  }

  .rel-page-tabs-inner {
    padding: 0 12px;
  }

  .rel-page-content {
    padding: 16px;
  }

  .rel-page-header {
    padding: 20px 16px;
  }
}

@media print {
  .app-toolbar {
    display: none !important;
  }

  .rel-page-header {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .rel-tab {
    display: none !important;
  }

  .rel-tab.active {
    display: block !important;
  }

  .rel-page-tabs {
    position: static;
    border-bottom: none;
  }

  .rel-page-content,
  #rel-content {
    padding: 0 !important;
    max-width: none;
  }

  .rel-table {
    font-size: 9pt;
  }

  .rel-pipeline-grid {
    grid-template-columns: 1fr;
  }
}

/* —— Compromissos (página dedicada) —— */
.compromissos-page {
  background: #f8fafc;
  min-height: 100vh;
}

.compromissos-toolbar {
  justify-content: space-between;
}

.comp-toolbar-user {
  font-size: 0.82rem;
  color: #6b7280;
}

.comp-page-header {
  background: #1e3a5f;
  padding: 24px 32px;
}

.comp-page-header-inner {
  max-width: 1280px;
  margin: 0 auto;
}

.comp-page-title {
  font-size: 1.4rem;
  font-weight: 800;
  color: white;
  font-family: 'Sora', sans-serif;
}

.comp-page-subtitle {
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.6);
  margin-top: 4px;
}

.compromissos-filters-wrap {
  background: white;
  border-bottom: 1px solid #e5e7eb;
  position: sticky;
  top: 48px;
  z-index: 110;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.compromissos-filters {
  max-width: 1280px;
  margin: 0 auto;
  padding: 14px 32px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px 16px;
  align-items: end;
}

.comp-filter {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.72rem;
  font-weight: 600;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.comp-filter select,
.comp-filter input {
  font-family: 'Sora', sans-serif;
  font-size: 0.85rem;
  padding: 8px 10px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  color: var(--text);
}

.comp-filter--busca {
  grid-column: span 2;
}

.comp-filter-clear {
  align-self: end;
  justify-self: start;
}

.comp-page-tabs {
  background: white;
  border-bottom: 2px solid #f3f4f6;
  position: sticky;
  top: calc(48px + 72px);
  z-index: 100;
}

.comp-page-tabs-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  overflow-x: auto;
}

.comp-page-content {
  max-width: 1280px;
  margin: 0 auto;
  padding: 32px;
}

.comp-section-title {
  font-size: 1rem;
  font-weight: 700;
  color: #1e3a5f;
  margin: 0 0 16px;
  font-family: 'Sora', sans-serif;
}

.comp-count {
  font-weight: 500;
  color: #6b7280;
  font-size: 0.9em;
}

.comp-status {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.comp-status--vencido {
  background: #fef2f2;
  color: #dc2626;
  border: 1px solid #fecaca;
}

.comp-status--urgente {
  background: #fffbeb;
  color: #d97706;
  border: 1px solid #fde68a;
}

.comp-status--normal {
  background: #ecfdf5;
  color: #059669;
  border: 1px solid #a7f3d0;
}

.comp-status--sem_data {
  background: #f3f4f6;
  color: #6b7280;
  border: 1px solid #e5e7eb;
}

.comp-desc {
  max-width: 280px;
  font-size: 0.82rem;
  color: #374151;
  line-height: 1.4;
}

.comp-usina {
  font-size: 0.75rem;
  color: #9ca3af;
  font-weight: 400;
}

.comp-row-click {
  cursor: pointer;
}

.comp-row-click:hover td {
  background: #f0f9ff;
}

.compromissos-page .rel-kpi-row {
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}

@media (max-width: 768px) {
  .compromissos-filters {
    padding: 12px 16px;
    grid-template-columns: 1fr 1fr;
  }

  .comp-filter--busca {
    grid-column: span 2;
  }

  .comp-page-tabs-inner {
    padding: 0 12px;
  }

  .comp-page-content {
    padding: 16px;
  }

  .comp-page-header {
    padding: 20px 16px;
  }

  .comp-page-tabs {
    top: calc(48px + 120px);
  }
}

@media print {
  .compromissos-filters-wrap,
  .compromissos-toolbar {
    display: none !important;
  }

  .comp-page-header {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .comp-page-tabs {
    position: static;
    border-bottom: none;
  }

  .comp-page-tabs .rel-tab {
    display: none !important;
  }

  .comp-page-tabs .rel-tab.active {
    display: block !important;
  }

  .comp-page-content,
  #compromissos-content {
    padding: 0 !important;
    max-width: none;
  }

  .comp-status {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/* —— Segmento (badges globais) —— */
.seg-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.02em;
  white-space: nowrap;
  line-height: 1.4;
}

.seg-badge--cana {
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
}

.seg-badge--perenes {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}

.seg-badge--graos {
  background: #fffbeb;
  color: #b45309;
  border: 1px solid #fde68a;
}

.seg-badge--latam {
  background: #f5f3ff;
  color: #6d28d9;
  border: 1px solid #ddd6fe;
}

.seg-badge--vazio {
  background: #fef2f2;
  color: #b91c1c;
  border: 1px solid #fecaca;
}

.kanban-card-top .seg-badge {
  margin-left: auto;
  font-size: 0.62rem;
}

.proposta-secao--segmento {
  margin-bottom: 8px;
}

.proposta-segmento-label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #374151;
}

.proposta-segmento-select {
  font-family: 'Sora', sans-serif;
  font-size: 0.9rem;
  padding: 10px 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  max-width: 280px;
}

.rel-sticky-bar {
  position: sticky;
  top: 48px;
  z-index: 110;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}

.rel-sticky-bar .rel-filters-wrap {
  position: static;
  top: auto;
  z-index: auto;
  border-bottom: none;
  box-shadow: none;
}

.rel-sticky-bar .rel-page-tabs {
  position: static;
  top: auto;
  z-index: auto;
}

.rel-vertical-bar {
  width: 100%;
  margin: 0;
}

.rel-filters-wrap .rel-filters {
  padding: 12px 32px 8px;
}

.rel-filters-wrap {
  background: white;
  border-bottom: 1px solid #e5e7eb;
  position: sticky;
  top: 48px;
  z-index: 105;
}

.rel-filters {
  max-width: 1280px;
  margin: 0 auto;
  padding: 12px 32px;
  display: flex;
  gap: 16px;
  align-items: end;
}

.rel-filter {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.72rem;
  font-weight: 600;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.rel-filter select {
  font-family: 'Sora', sans-serif;
  font-size: 0.85rem;
  padding: 8px 10px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  min-width: 160px;
}

@media print {
  .rel-sticky-bar,
  .rel-filters-wrap {
    display: none !important;
  }
}

/* —— Página Proposta Comercial —— */
.proposta-page {
  background: #f8fafc;
  min-height: 100vh;
}

.proposta-toolbar {
  justify-content: space-between;
}

.proposta-toolbar-user {
  font-size: 0.82rem;
  color: #6b7280;
}

.app-toolbar .toolbar-primary {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
  font-weight: 600;
}

.app-toolbar .toolbar-primary:hover {
  opacity: 0.92;
}

.app-toolbar .toolbar-primary--saved {
  background: #16a34a !important;
  border-color: #16a34a !important;
}

.proposta-page-header {
  background: #1e3a5f;
  padding: 20px 32px;
}

.proposta-page-header-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}

.proposta-page-cliente-nome {
  font-size: 1.4rem;
  font-weight: 800;
  color: white;
  font-family: 'Sora', sans-serif;
}

.proposta-page-cliente-meta {
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.6);
  margin-top: 4px;
}

.proposta-page-grid {
  max-width: 1100px;
  margin: 0 auto;
  padding: 32px;
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 32px;
  align-items: start;
}

.proposta-page .proposta-secao {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 20px 24px;
}

.proposta-page .proposta-secao--spaced {
  margin-top: 24px;
}

.proposta-page .proposta-secao-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid #f3f4f6;
}

.proposta-page .proposta-secao-titulo {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 700;
  color: #6b7280;
}

.proposta-page .proposta-secao-titulo--block {
  margin-bottom: 12px;
  display: block;
}

.proposta-page .proposta-secao-total {
  font-size: 1rem;
  font-weight: 800;
  color: #1e3a5f;
  font-family: 'Sora', sans-serif;
  letter-spacing: 0;
  text-transform: none;
}

.proposta-page .proposta-secao-total--green {
  color: #16a34a;
}

.proposta-col-item {
  flex: 2;
  min-width: 0;
}

.proposta-col-qtd {
  width: 100px;
  display: flex;
  justify-content: center;
}

.proposta-col-unit {
  width: 140px;
  display: flex;
  justify-content: flex-end;
}

.proposta-col-unit--saas {
  align-items: center;
  gap: 6px;
}

.proposta-col-total {
  width: 130px;
  text-align: right;
}

.proposta-page .proposta-table-header {
  display: flex;
  gap: 0;
  padding: 6px 0;
  border-bottom: 1px solid #f3f4f6;
  margin-bottom: 4px;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #9ca3af;
}

.proposta-page .proposta-table-row {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 10px 0;
  border-bottom: 1px solid #f9fafb;
}

.proposta-page .proposta-item-nome {
  font-size: 0.88rem;
  color: #374151;
}

.proposta-row-total {
  font-weight: 700;
  color: #111827;
}

.proposta-page .proposta-total-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0 4px;
  margin-top: 4px;
  border-top: 2px solid #f3f4f6;
  font-size: 0.85rem;
  font-weight: 700;
  color: #111827;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.proposta-total-capex {
  color: #1e3a5f;
  font-size: 1rem;
}

.proposta-total-arr {
  color: #16a34a;
  font-size: 1rem;
}

.proposta-page .proposta-prazo-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid #f3f4f6;
  margin-bottom: 12px;
  flex-wrap: wrap;
}

.proposta-page .proposta-prazo-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: #374151;
  white-space: nowrap;
}

.proposta-page .proposta-prazo-btns {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

.proposta-page .proposta-input {
  padding: 6px 10px;
  border: 1.5px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.85rem;
  font-family: 'Sora', sans-serif;
  color: #111827;
  background: white;
  box-sizing: border-box;
  outline: none;
  width: 85px;
  text-align: center;
}

.proposta-page .proposta-input:focus {
  border-color: #1e3a5f;
}

.proposta-page .proposta-valor-unit {
  text-align: right;
  width: 120px;
}

.proposta-page .proposta-prazo-custom {
  width: 70px;
}

.proposta-saas-suffix {
  font-size: 0.72rem;
  color: #9ca3af;
  white-space: nowrap;
}

.proposta-page .proposta-obs-textarea {
  width: 100%;
  min-height: 120px;
  padding: 12px;
  border: 1.5px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.85rem;
  font-family: 'Sora', sans-serif;
  resize: vertical;
  outline: none;
  box-sizing: border-box;
}

.proposta-page .proposta-obs-textarea:focus {
  border-color: #1e3a5f;
}

.proposta-sidebar-sticky {
  position: sticky;
  top: 80px;
}

.proposta-resumo-card {
  background: #1e3a5f;
  border-radius: 16px;
  padding: 24px;
  color: white;
}

.proposta-resumo-label {
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 16px;
}

.proposta-page .resumo-linha {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.8);
}

.proposta-resumo-contrato-block {
  border-top: 2px solid rgba(255, 255, 255, 0.15);
  margin-top: 16px;
  padding-top: 16px;
}

.proposta-resumo-contrato-label {
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 6px;
}

.proposta-resumo-contrato-valor {
  font-size: 2rem;
  font-weight: 800;
  color: #4ade80;
  font-family: 'Sora', sans-serif;
}

.proposta-resumo-cliente {
  background: #f8f9fa;
  border-radius: 12px;
  padding: 16px;
  margin-top: 16px;
  font-size: 0.82rem;
}

.proposta-resumo-cliente-nome {
  font-weight: 700;
  color: #111827;
  margin-bottom: 8px;
}

.proposta-resumo-cliente-info {
  color: #6b7280;
  line-height: 1.8;
}

.proposta-page .btn-prazo.active {
  background: #1e3a5f;
  color: #fff;
  border-color: #1e3a5f;
}

@media (max-width: 960px) {
  .proposta-page-grid {
    grid-template-columns: 1fr;
    padding: 16px;
  }

  .proposta-page-header {
    padding: 16px;
  }

  .proposta-sidebar-sticky {
    position: static;
  }
}

@media print {
  .proposta-page .app-toolbar {
    display: none !important;
  }

  .proposta-page-header {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .proposta-page-grid {
    grid-template-columns: 1fr;
    padding: 0;
    max-width: none;
  }

  .proposta-sidebar-sticky {
    position: static;
    page-break-inside: avoid;
  }
}

