/* Central de Operações Lua Doce V3 - design tokens e shell (padrão visual aprovado).
   Sem frameworks de CSS; CSP-friendly (nenhum estilo inline). */

:root {
  --brand-ink: #030708;
  --brand-orange: #f8981d;
  --brand-orange-deep: #c86c08;
  --green-950: #002b25;
  --green-900: #003c32;
  --green-800: #005a4c;
  --green-700: #167360;
  --green-100: #e4f4eb;
  --green-50: #f1faf5;
  --ink: #123b35;
  --ink-soft: #52635f;
  --ink-muted: #5c6a65;
  --surface: #fffefa;
  --surface-raised: #ffffff;
  --canvas: #f6f6f2;
  --line: #e3e8e3;
  --line-strong: #d5dfd9;
  --warning: #a45c00;
  --warning-bg: #fff4e3;
  --danger: #c53f2d;
  --danger-bg: #fff0ec;
  --info: #25647a;
  --info-bg: #ebf6fa;
  --shadow: 0 10px 28px rgba(18, 59, 53, .07);
  --radius-panel: 16px;
  --radius-control: 10px;
  --focus: rgba(248, 152, 29, .66);
  accent-color: var(--green-800);
  scrollbar-color: var(--line-strong) transparent;
  font-family: "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--canvas); }
body { margin: 0; color: var(--ink); background: var(--canvas); font-size: 16px; line-height: 1.5; }
button { font: inherit; cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
button:focus-visible, a:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
  border-radius: 6px;
}
::selection { color: var(--brand-ink); background: rgba(248, 152, 29, .32); }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; left: 12px; top: -60px; z-index: 50;
  padding: 10px 16px; border-radius: var(--radius-control);
  background: var(--green-900); color: #fff; text-decoration: none; font-weight: 600;
  transition: top 160ms ease;
}
.skip-link:focus { top: 12px; }

.icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round; flex: none; }

/* Layout ------------------------------------------------------------------ */
.layout { display: grid; grid-template-columns: 236px minmax(0, 1fr); min-height: 100vh; }

.sidebar {
  position: sticky; top: 0; display: flex; flex-direction: column; height: 100vh;
  padding: 22px 14px 16px; color: #cbdfd8; background: var(--green-900);
}
.brand { display: grid; place-items: center; margin-bottom: 26px; }
.brand-logo {
  display: block; width: 100%; max-width: 180px; height: 88px; object-fit: contain;
  background: #fff; border: 1px solid rgba(248, 152, 29, .32); border-radius: 16px;
  padding: 10px; box-shadow: 0 10px 22px rgba(0, 0, 0, .14);
}
.nav { display: grid; gap: 4px; }
.nav-caption {
  margin: 10px 12px 2px; font-size: .72rem; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: #8fb8ab; grid-column: 1 / -1;
}
.nav-caption:first-of-type { margin-top: 2px; }
.nav-num {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 18px; height: 18px; border-radius: 50%; font-size: .72rem; font-weight: 700;
  color: #0e2a24; background: rgba(203, 223, 216, .55);
}
.nav-item.active .nav-num { background: #cdeee2; }
.nav-item {
  display: flex; align-items: center; gap: 10px; min-height: 44px; width: 100%;
  padding: 9px 12px; border-radius: var(--radius-control); color: #cbdfd8;
  font-size: .95rem;
}
.nav-item.active { color: #fff; background: rgba(43, 144, 113, .5); font-weight: 600; }
.nav-item.disabled { color: #93bab0; }
.nav-item .icon { color: currentColor; }

.sidebar-footer { margin-top: auto; padding-top: 14px; border-top: 1px solid rgba(203, 223, 216, .18);
  font-size: .8rem; color: #9dbfb6; display: grid; gap: 4px; }
.sidebar-status { display: flex; align-items: center; gap: 8px; color: #d9efe7; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #35c48d; }

.main { padding: 26px 30px 48px; min-width: 0; }

/* Topbar ------------------------------------------------------------------ */
.topbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 14px; margin-bottom: 22px; }
.topbar h1 { margin: 0; font-size: 1.55rem; letter-spacing: -.01em; }
.subtitle { margin: 4px 0 0; color: var(--ink-soft); max-width: 62ch; }

.primary {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  padding: 10px 18px; border: 0; border-radius: var(--radius-control);
  background: var(--green-800); color: #fff; font-weight: 600;
  box-shadow: var(--shadow);
}
.primary:hover:not(:disabled) { background: var(--green-700); }
.button-icon { display: inline-flex; }
.button-icon .icon { width: 16px; height: 16px; }

/* Painéis e cartões -------------------------------------------------------- */
.card { background: var(--surface-raised); border: 1px solid var(--line);
  border-radius: var(--radius-panel); box-shadow: var(--shadow); }

.panel { padding: 20px 22px; }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between;
  gap: 12px; margin-bottom: 14px; }
.panel-heading h2 { margin: 0; font-size: 1.08rem; }
.heading-with-meta { display: flex; align-items: center; gap: 10px; }
.task-count { color: var(--ink-muted); font-size: .85rem; }
.muted { color: var(--ink-muted); font-size: .88rem; }

.workspace-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; }
.workspace-main { display: grid; gap: 18px; min-width: 0; }
/* Itens de grid têm min-width: auto por padrão; sem isto o min-content da tabela
   infla a track e anula o overflow-x do .table-wrap em telas estreitas. */
.workspace-main > * { min-width: 0; }

.summary-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; }
.summary-card { display: flex; gap: 12px; padding: 16px; align-items: flex-start; }
.metric-icon {
  display: grid; place-items: center; width: 42px; height: 42px; flex: none;
  border-radius: 12px; color: var(--green-800); background: var(--green-50);
  border: 1px solid var(--green-100);
}
.metric-icon.blue { color: var(--info); background: var(--info-bg); border-color: #cfe7ef; }
.metric-icon.orange { color: var(--warning); background: var(--warning-bg); border-color: #f3ddba; }
.metric-label { color: var(--ink-soft); font-size: .82rem; }
.metric-value { font-size: 1.4rem; font-weight: 700; letter-spacing: -.01em; }
.metric-note { color: var(--ink-muted); font-size: .76rem; }

/* Fila vazia --------------------------------------------------------------- */
.queue-empty { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px;
  align-items: center; padding: 18px; border-radius: 12px;
  border: 1px dashed var(--line-strong); background: var(--surface); }
.queue-empty strong { display: block; margin-bottom: 4px; }
.queue-empty p { margin: 0; color: var(--ink-soft); font-size: .92rem; }
.empty-icon { display: grid; place-items: center; width: 46px; height: 46px;
  border-radius: 14px; color: var(--green-800); background: var(--green-50); }

/* Tabela ------------------------------------------------------------------- */
.table-wrap { overflow-x: auto; }
.journey-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.journey-table th { text-align: left; padding: 10px 12px; color: var(--ink-soft);
  font-size: .78rem; text-transform: uppercase; letter-spacing: .04em;
  border-bottom: 1px solid var(--line-strong); }
.journey-table td { padding: 12px; border-bottom: 1px solid var(--line); }
.empty-row td { padding: 26px 12px; }
.table-empty { display: grid; justify-items: center; gap: 4px; color: var(--ink-soft);
  text-align: center; }
.table-empty .icon { width: 26px; height: 26px; color: var(--ink-muted); }
.table-empty span { color: var(--ink-muted); font-size: .85rem; max-width: 46ch; }

/* Próxima ação / processo --------------------------------------------------- */
.next-panel { display: flex; flex-direction: column; gap: 14px; padding: 20px;
  align-self: start; }
.next-context { display: flex; gap: 12px; align-items: center; }
.next-context p { margin: 2px 0 0; color: var(--ink-soft); font-size: .88rem; }
.next-icon { display: grid; place-items: center; width: 44px; height: 44px; flex: none;
  border-radius: 14px; color: var(--green-800); background: var(--green-50); }

.process { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.process-step { position: relative; display: flex; align-items: center; gap: 12px;
  padding: 10px 10px 10px 14px; border-radius: 10px; }
.process-step + .process-step { margin-top: 2px; }
.process-step .process-marker { width: 10px; height: 10px; border-radius: 50%;
  border: 2px solid var(--line-strong); background: var(--surface-raised); flex: none; }
.process-step.active { background: var(--green-50); }
.process-step.active .process-marker { border-color: var(--green-800);
  background: var(--brand-orange); }
.process-step.done .process-marker { border-color: var(--green-800); background: var(--green-800); }
.process-label { font-weight: 600; font-size: .9rem; }
.process-detail { color: var(--ink-muted); font-size: .78rem; }
.process-step { justify-content: flex-start; }
.process-step .status-chip { margin-left: auto; }

.next-footnote { margin: auto 0 0; color: var(--ink-muted); font-size: .78rem; }

/* Chips --------------------------------------------------------------------- */
.status-chip { display: inline-flex; align-items: center; padding: 3px 10px;
  border-radius: 999px; font-size: .78rem; font-weight: 600;
  background: var(--green-50); color: var(--green-800); border: 1px solid var(--green-100); }
.status-chip.info { background: var(--info-bg); color: var(--info); border-color: #cfe7ef; }
.status-chip.warning { background: var(--warning-bg); color: var(--warning); border-color: #f3ddba; }
.status-chip.danger { background: var(--danger-bg); color: var(--danger); border-color: #f2cfc7; }

/* Responsivo ---------------------------------------------------------------- */
@media (max-width: 1100px) {
  .workspace-grid { grid-template-columns: minmax(0, 1fr); }
  .next-panel { order: -1; }
}
@media (max-width: 880px) {
  .layout { grid-template-columns: minmax(0, 1fr); }
  .sidebar { position: static; height: auto; }
  .nav { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
  .main { padding: 20px 16px 40px; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* Autenticação (Marco 2) ----------------------------------------------------- */
.auth-body { margin: 0; background: var(--canvas); color: var(--ink); }
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px 16px 48px; }
.auth-card { width: min(420px, 100%); padding: 36px 32px; text-align: center;
  display: flex; flex-direction: column; gap: 14px; align-items: center; }
.auth-logo { height: 88px; width: 88px; object-fit: contain; }
.auth-card h1 { margin: 0; font-size: 1.35rem; color: var(--brand-ink); }
.auth-subtitle { margin: 0; color: var(--ink-muted); font-size: .9rem; }

.btn-google { display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 44px; padding: 0 22px; width: 100%; text-decoration: none; }
.btn-google .icon { width: 20px; height: 20px; fill: currentColor; }

.auth-divider { width: 100%; display: flex; align-items: center; gap: 12px;
  color: var(--ink-muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.auth-divider::before, .auth-divider::after { content: ""; flex: 1; height: 1px; background: var(--line-strong); }

.auth-form { width: 100%; display: flex; flex-direction: column; gap: 8px; text-align: left; }
.auth-form label { font-size: .82rem; font-weight: 600; color: var(--ink-soft); }
.auth-form input { min-height: 44px; padding: 0 12px; border: 1px solid var(--line-strong);
  border-radius: var(--radius-control); background: var(--surface-raised); color: var(--ink);
  font: inherit; }
.auth-form input:focus-visible { outline: 3px solid var(--focus); outline-offset: 1px; }
.auth-form .secondary-btn { margin-top: 10px; }

.auth-warning { margin: 0; color: var(--warning); background: var(--warning-bg);
  border: 1px solid #f3ddba; border-radius: var(--radius-control); padding: 10px 14px; font-size: .85rem; }

.secondary-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 0 18px; border: 1px solid var(--line-strong);
  border-radius: var(--radius-control); background: var(--surface-raised); color: var(--ink);
  font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; }
.secondary-btn:hover { border-color: var(--green-700); color: var(--green-800); }

.user-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  padding: 0 14px; border: 1px solid var(--line); border-radius: 999px;
  background: var(--surface-raised); }
.user-chip .icon { width: 18px; height: 18px; fill: none; stroke: var(--ink-soft); stroke-width: 1.8; }
.user-name { font-weight: 600; font-size: .88rem; }
.user-email { color: var(--ink-muted); font-size: .78rem; }
.logout-form { display: inline-flex; margin: 0; }

@media (max-width: 880px) {
  .top-actions { flex-wrap: wrap; gap: 10px; }
  .user-chip { order: -1; }
}

/* Financeiro e fiscal assistido (Marco 7) ---------------------------------- */
.eyebrow { display: block; margin-bottom: 5px; color: var(--green-700); font-size: .72rem;
  font-weight: 800; letter-spacing: .12em; }
.finance-note { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; padding: 14px 16px;
  border: 1px solid #f0d9ae; border-radius: var(--radius-panel); background: linear-gradient(90deg, #fff8e9, #fffefa); }
.finance-note > div:nth-child(2) { flex: 1; }
.finance-note p { margin: 3px 0 0; color: var(--ink-soft); font-size: .86rem; }
.finance-note-icon { display: grid; place-items: center; width: 38px; height: 38px; flex: none;
  border-radius: 12px; color: var(--warning); background: #ffedc5; font-size: 1.2rem; }
.finance-note .btn-link { flex: none; }
.finance-note.danger { border-color: #f2cfc7; background: var(--danger-bg); }
.finance-filters { display: grid; gap: 14px; margin-bottom: 18px; }
.finance-filters .panel-heading { margin-bottom: 0; }
.finance-filter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 14px; }
.finance-filter-grid label { display: grid; gap: 6px; color: var(--ink-soft); font-size: .8rem; font-weight: 600; }
.finance-filter-grid input, .finance-filter-grid select { min-height: 40px; width: 100%; padding: 7px 9px; border: 1px solid var(--line-strong); border-radius: var(--radius-control); background: var(--surface-raised); color: var(--ink); font: inherit; }
.finance-filter-grid input:focus-visible, .finance-filter-grid select:focus-visible { outline: 3px solid var(--focus); outline-offset: 1px; }
.filter-actions { display: flex; justify-content: flex-end; gap: 8px; }
.finance-breakdown { display: grid; gap: 12px; margin-bottom: 18px; }
.finance-breakdown .panel-heading { margin-bottom: 0; }
.finance-breakdown > .muted { margin: 0; }
.finance-dashboard-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.finance-dashboard-strip .summary-card { border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.period-form { display: inline-flex; align-items: center; gap: 6px; }
.period-form label { color: var(--ink-soft); font-size: .8rem; font-weight: 600; }
.period-form input { min-height: 40px; padding: 6px 9px; border: 1px solid var(--line-strong);
  border-radius: var(--radius-control); background: var(--surface-raised); color: var(--ink); font: inherit; }
.period-form .secondary-btn { min-height: 40px; padding: 0 12px; }
.finance-grid { align-items: start; }
.finance-metric .metric-value { font-size: 1.22rem; }
.table-action { color: var(--green-800); font-weight: 700; text-decoration: none; white-space: nowrap; }
.table-action:hover { color: var(--green-700); text-decoration: underline; }
.finance-status-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.finance-status-list li { display: flex; justify-content: space-between; gap: 12px; padding: 11px 12px;
  border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.finance-status-list span { color: var(--ink-soft); font-size: .88rem; }
.finance-status-list strong { color: var(--green-900); }
.finance-callout { display: grid; gap: 3px; margin-top: auto; padding: 13px 14px; border: 1px solid var(--green-100);
  border-radius: 12px; background: var(--green-50); }
.finance-callout span { color: var(--ink-soft); font-size: .8rem; }
.finance-divider { height: 1px; margin: 4px 0; background: var(--line); }
.fiscal-history { display: grid; gap: 8px; }
.fiscal-history-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px;
  border: 1px solid var(--line); border-radius: 10px; }
.fiscal-history-row div { display: grid; gap: 2px; }
.fiscal-history-row div span { color: var(--ink-soft); font-size: .84rem; }
.danger-callout { border-color: #f2cfc7; background: var(--danger-bg); }
.expense-form { display: grid; gap: 16px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.form-grid > div, .form-grid-wide { display: grid; gap: 6px; }
.expense-form label, .compact-form label { color: var(--ink-soft); font-size: .82rem; font-weight: 600; }
.expense-form input, .expense-form select, .compact-form input, .compact-form select {
  min-height: 42px; width: 100%; padding: 8px 10px; border: 1px solid var(--line-strong);
  border-radius: var(--radius-control); background: var(--surface-raised); color: var(--ink); font: inherit;
}
.expense-form input:focus-visible, .expense-form select:focus-visible, .compact-form input:focus-visible,
.compact-form select:focus-visible { outline: 3px solid var(--focus); outline-offset: 1px; }
.compact-form { display: grid; grid-template-columns: repeat(2, minmax(80px, 1fr)); gap: 6px; min-width: 260px; }
.compact-form select, .compact-form button, .compact-form input[name="source_key"] { grid-column: 1 / -1; }
.compact-form .secondary-btn { min-height: 38px; }
.config-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.config-form { display: grid; align-content: start; gap: 7px; padding: 14px; border: 1px solid var(--line);
  border-radius: 12px; background: var(--canvas); }
.config-form strong { margin-bottom: 3px; color: var(--green-900); }
.config-form label { color: var(--ink-soft); font-size: .78rem; font-weight: 600; }
.config-form input, .config-form select { min-height: 40px; padding: 7px 9px; border: 1px solid var(--line-strong);
  border-radius: var(--radius-control); background: var(--surface-raised); color: var(--ink); font: inherit; }
.config-list { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.config-list > span { display: inline-flex; flex-wrap: wrap; gap: 5px; }

@media (max-width: 680px) {
  .finance-note { align-items: flex-start; flex-wrap: wrap; }
  .finance-note .btn-link { width: 100%; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .config-grid { grid-template-columns: minmax(0, 1fr); }
  .finance-filter-grid, .finance-dashboard-strip { grid-template-columns: minmax(0, 1fr); }
  .filter-actions { justify-content: stretch; }
  .filter-actions > * { flex: 1; }
}

/* Importações (Marco 3) ------------------------------------------------------ */
.import-form { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.import-form label, .import-form .file-label { font-size: .82rem; font-weight: 600; color: var(--ink-soft); }
.import-form input[type="file"], .import-form textarea { min-height: 44px; width: 100%;
  padding: 10px 12px; border: 1px solid var(--line-strong); border-radius: var(--radius-control);
  background: var(--surface-raised); color: var(--ink); font: inherit; }
.import-form textarea { resize: vertical; }
.import-form input:focus-visible, .import-form textarea:focus-visible { outline: 3px solid var(--focus); outline-offset: 1px; }
.import-form .primary { align-self: flex-start; }

.import-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.import-item { display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--radius-control);
  background: var(--surface-raised); }
.import-item a { color: var(--green-800); font-weight: 600; text-decoration: none; min-height: 44px;
  display: inline-flex; align-items: center; }
.import-item a:hover { text-decoration: underline; }

.import-table select { min-height: 44px; padding: 0 8px; border: 1px solid var(--line-strong);
  border-radius: var(--radius-control); background: var(--surface-raised); color: var(--ink);
  font: inherit; }
.import-table .status-chip { margin: 1px 2px 1px 0; }
.import-table td { vertical-align: top; }
.decision-form { display: flex; flex-direction: column; gap: 6px; min-width: 190px; }

/* Viagens (Marco 4) --------------------------------------------------------- */
.trip-form { max-width: 520px; }
.filter-form { flex-direction: row; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.filter-form select, .filter-form input { width: auto; min-width: 160px; }
.btn-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px;
  text-decoration: none; }
.find-form { border-top: 1px solid var(--line); padding-top: 14px; margin-top: 14px;
  flex-direction: row; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.find-form label, .filter-form label { width: 100%; margin-bottom: -4px; }
.find-form input, .find-form button { width: auto; min-width: 170px; }
.timeline { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column;
  gap: 10px; }
.timeline-heading { margin-top: 18px; }

/* CRM administrativo (Marco 8) -------------------------------------------- */
.crm-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.crm-tabs a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px;
  border: 1px solid var(--line); border-radius: 999px; background: var(--surface-raised);
  color: var(--ink-soft); font-size: .88rem; font-weight: 600; text-decoration: none; }
.crm-tabs a:hover, .crm-tabs a.active { border-color: var(--green-700); color: var(--green-900); background: var(--green-50); }
.crm-layout { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.5fr); gap: 18px; align-items: start; }
.crm-create { position: sticky; top: 20px; }
.crm-form { display: grid; gap: 12px; }
.form-field { display: grid; gap: 6px; }
.crm-form label { color: var(--ink-soft); font-size: .82rem; font-weight: 600; }
.crm-form input[type="text"], .crm-form select { min-height: 42px; width: 100%; padding: 8px 10px;
  border: 1px solid var(--line-strong); border-radius: var(--radius-control); background: var(--surface-raised);
  color: var(--ink); font: inherit; }
.crm-form input:focus-visible, .crm-form select:focus-visible { outline: 3px solid var(--focus); outline-offset: 1px; }
.check-field { display: flex; align-items: center; gap: 8px; }
.check-field input { width: 18px; height: 18px; }
.crm-table td { vertical-align: top; }
.crm-actions { min-width: 170px; }
.crm-actions details { margin-bottom: 8px; }
.crm-actions summary { cursor: pointer; list-style-position: inside; }
.crm-actions details[open] { min-width: 260px; padding: 10px; border: 1px solid var(--line);
  border-radius: var(--radius-control); background: var(--canvas); }
.crm-actions details[open] summary { margin-bottom: 10px; }
.inline-form { display: inline-flex; margin: 0; }
.danger-btn { min-height: 36px; padding: 5px 11px; border: 1px solid #f2cfc7; border-radius: var(--radius-control);
  background: var(--danger-bg); color: var(--danger); font-size: .8rem; font-weight: 700; }
.danger-btn:hover { border-color: var(--danger); }

/* Passageiros (Marco 03A.3b) ---------------------------------------------- */
.people-filters { margin-bottom: 18px; }
.people-filters .filter-form { align-items: flex-end; }
.people-filters .filter-form input { min-width: min(320px, 100%); }
.people-filters .filter-form select { min-width: 210px; }
.people-table td { vertical-align: middle; }
.people-table .table-btn, .table-btn { min-height: 36px; padding: 0 12px; font-size: .8rem; }
.quality-stack { display: flex; flex-wrap: wrap; gap: 4px; min-width: 220px; }
.status-chip.success { color: var(--green-800); background: var(--green-100); border-color: #b8dfc9; }
.people-identity { display: flex; align-items: center; gap: 14px; padding: 18px 22px; margin-bottom: 18px; }
.identity-monogram { display: grid; place-items: center; width: 52px; height: 52px; flex: none; border-radius: 16px;
  color: var(--green-900); background: var(--green-100); font-size: 1.3rem; font-weight: 800; }
.people-identity h2 { margin: 0; font-size: 1.14rem; }
.people-identity .eyebrow { margin-bottom: 1px; }
.people-identity p { margin: 2px 0 0; }
.people-review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.review-card { display: grid; gap: 10px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.review-card.review-confirmed { border-color: #b8dfc9; background: var(--green-50); }
.review-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.review-card-heading h3 { margin: 0 0 6px; font-size: .95rem; }
.review-card-heading > .muted { text-align: right; font-size: .75rem; }
.review-value { min-height: 27px; margin: 0; color: var(--green-900); font-weight: 700; }
.sensitive-value span { color: var(--ink-muted); font-size: .75rem; font-weight: 400; }
.review-meta { min-height: 20px; margin: 0; color: var(--ink-muted); font-size: .75rem; }
.review-form { display: grid; gap: 6px; }
.review-form label { color: var(--ink-soft); font-size: .78rem; font-weight: 600; }
.review-form input { min-height: 40px; width: 100%; padding: 7px 9px; border: 1px solid var(--line-strong); border-radius: var(--radius-control);
  background: var(--surface-raised); color: var(--ink); font: inherit; }
.review-form input:focus-visible { outline: 3px solid var(--focus); outline-offset: 1px; }
.review-actions { display: flex; flex-wrap: wrap; gap: 7px; padding-top: 3px; }
.review-actions .primary, .review-actions .secondary-btn { min-height: 38px; padding: 0 11px; font-size: .8rem; }

/* Catálogo comercial (Marco 03B.1) ---------------------------------------- */
.catalog-empty { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.catalog-empty h2 { margin: 0; font-size: 1.08rem; }
.catalog-empty p { margin: 3px 0 0; }
.catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; align-items: start; }
.catalog-create { display: grid; gap: 18px; }
.catalog-create > .panel-heading { margin-bottom: -4px; }
.catalog-form { display: grid; gap: 10px; padding-top: 14px; border-top: 1px solid var(--line); }
.catalog-form:first-of-type { padding-top: 0; border-top: 0; }
.catalog-form .form-field { display: grid; gap: 6px; }
.catalog-form label { color: var(--ink-soft); font-size: .82rem; font-weight: 600; }
.catalog-form input, .catalog-form select, .catalog-form textarea { min-height: 40px; width: 100%; padding: 7px 9px; border: 1px solid var(--line-strong); border-radius: var(--radius-control); background: var(--surface-raised); color: var(--ink); font: inherit; }
.catalog-form textarea { resize: vertical; }
.catalog-form input:focus-visible, .catalog-form select:focus-visible, .catalog-form textarea:focus-visible { outline: 3px solid var(--focus); outline-offset: 1px; }
.catalog-form .primary { justify-self: start; min-height: 40px; padding: 0 14px; font-size: .84rem; }
.catalog-records { margin-bottom: 18px; }
.catalog-record-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.catalog-card { min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.catalog-card h3 { margin: 0 0 12px; font-size: .98rem; }
.catalog-table { font-size: .84rem; }
.catalog-table th { padding: 8px; font-size: .72rem; }
.catalog-table td { padding: 10px 8px; }
.catalog-table td strong, .catalog-table td small { display: block; }
.catalog-table td small, .catalog-links small { color: var(--ink-muted); font-size: .75rem; }
.catalog-table .danger-btn { white-space: nowrap; }
.catalog-pills { display: grid; gap: 12px; }
.catalog-pills > div { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.catalog-pills strong { width: 100%; font-size: .8rem; }
.catalog-links { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.catalog-links li { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 6px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-raised); font-size: .82rem; }
.catalog-links li small { grid-column: 1 / -1; }

@media (max-width: 1000px) {
  .catalog-grid, .catalog-record-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Tarifas versionadas (Marco 03B.2) --------------------------------------- */
.tariff-create { margin-bottom: 18px; }
.tariff-version-form { max-width: 760px; }
.tariff-table td strong, .tariff-table td small { display: block; }
.tariff-table td small { color: var(--ink-muted); font-size: .75rem; }
.tariff-layout { margin-bottom: 18px; }
.tariff-inline-form { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.tariff-inline-form h3 { margin: 0; font-size: .96rem; }
.tariff-two-col { display: grid; grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr); gap: 18px; align-items: start; }
.tariff-highlight { display: grid; gap: 2px; padding: 12px 14px; border-radius: 10px; background: var(--green-50); border: 1px solid var(--green-100); }
.tariff-highlight span, .tariff-disclaimer { color: var(--ink-soft); font-size: .82rem; }
.tariff-disclaimer { margin: 14px 0 0; }
.tariff-actions { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin-top: 18px; }
.tariff-actions .panel-heading { width: 100%; margin-bottom: 0; }
.tariff-actions form { display: grid; gap: 6px; }
.reject-form { min-width: min(360px, 100%); }
.reject-form label { color: var(--ink-soft); font-size: .8rem; font-weight: 600; }
.reject-form input { min-height: 40px; padding: 7px 9px; border: 1px solid var(--line-strong); border-radius: var(--radius-control); background: var(--surface-raised); color: var(--ink); font: inherit; }

@media (max-width: 900px) {
  .tariff-two-col { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 1050px) {
  .people-review-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 900px) {
  .crm-layout { grid-template-columns: minmax(0, 1fr); }
  .crm-create { position: static; }
}
