:root {
  --bg: #f0ede8;
  --surface: #faf9f7;
  --surface2: #f2f0ec;
  --border: #ddd9d2;
  --border2: #ccc8c0;
  --text: #1a1916;
  --text2: #5c584f;
  --text3: #9c9890;
  --accent: #1a3a5c;
  --accent-light: #e8f0f8;
  --green: #1e6b3c;
  --green-bg: #e6f4ec;
  --amber: #7a4a00;
  --amber-bg: #fef3e2;
  --red: #8b1a1a;
  --red-bg: #fdeaea;
  --blue: #0d3a6b;
  --blue-bg: #e6f0fb;
  --shadow: 0 1px 3px rgba(0,0,0,.08), 0 4px 12px rgba(0,0,0,.04);
  --shadow-md: 0 4px 16px rgba(0,0,0,.10), 0 1px 4px rgba(0,0,0,.06);
  --radius: 10px;
  --radius-sm: 6px;
  --radius-lg: 16px;
  --font: 'DM Sans', sans-serif;
  --mono: 'DM Mono', monospace;
  --sidebar-w: 248px;
  --transition: .18s cubic-bezier(.4,0,.2,1);
}

[data-theme="dark"] {
  --bg: #1a1a1f;
  --surface: #242429;
  --surface2: #2e2e34;
  --border: #3a3a42;
  --border2: #4a4a52;
  --text: #e8e6e3;
  --text2: #a09c94;
  --text3: #6c6860;
  --accent: #6ba3d6;
  --accent-light: #1e2a3a;
  --green: #4ade80;
  --green-bg: #1a2e1a;
  --amber: #fbbf24;
  --amber-bg: #2e2a1a;
  --red: #f87171;
  --red-bg: #2e1a1a;
  --blue: #60a5fa;
  --blue-bg: #1a2a3e;
  --shadow: 0 1px 3px rgba(0,0,0,.3), 0 4px 12px rgba(0,0,0,.2);
  --shadow-md: 0 4px 16px rgba(0,0,0,.4), 0 1px 4px rgba(0,0,0,.3);
}

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

html { font-size: 14px; -webkit-font-smoothing: antialiased; }

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* ── LAYOUT ────────────────────────────────── */
.app-shell {
  display: flex;
  min-height: 100vh;
}

/* ── SIDEBAR ───────────────────────────────── */
.sidebar {
  width: var(--sidebar-w);
  background: var(--surface);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  position: fixed;
  top: 0; left: 0; bottom: 0;
  z-index: 50;
  overflow-y: auto;
}

.sidebar-header {
  padding: 1.25rem 1rem 1rem;
  border-bottom: 1px solid var(--border);
}

.logo-mark {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: .5rem;
}

.logo-icon {
  width: 38px; height: 38px;
  background: var(--accent);
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  object-fit: contain;
}

.logo-icon svg { width: 18px; height: 18px; fill: #fff; }

.logo-text { font-size: 13px; font-weight: 600; color: var(--text); line-height: 1.2; }
.logo-sub  { font-size: 10.5px; color: var(--text3); font-weight: 400; }

.badge-lei {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--accent-light);
  color: var(--blue);
  font-size: 10px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 20px;
  margin-top: 4px;
  letter-spacing: .02em;
}

.nav-section { padding: .75rem .75rem .25rem; }
.nav-label { font-size: 10px; font-weight: 600; color: var(--text3); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 4px; }

.nav-item {
  display: flex; align-items: center; gap: 9px;
  padding: 7px 10px;
  border-radius: var(--radius-sm);
  font-size: 13px; font-weight: 400;
  color: var(--text2);
  cursor: pointer;
  transition: background var(--transition), color var(--transition);
  user-select: none;
  position: relative;
}
.nav-item:hover { background: var(--surface2); color: var(--text); }
.nav-item.active { background: var(--accent); color: #fff; font-weight: 500; }
.nav-item svg { width: 16px; height: 16px; flex-shrink: 0; opacity: .75; }
.nav-item.active svg { opacity: 1; }
.nav-badge {
  margin-left: auto;
  font-size: 10px; font-family: var(--mono);
  background: rgba(0,0,0,.08);
  color: inherit;
  padding: 1px 7px; border-radius: 20px;
  font-weight: 500;
}
.nav-item.active .nav-badge { background: rgba(255,255,255,.25); }

.sidebar-footer {
  margin-top: auto;
  padding: .75rem;
  border-top: 1px solid var(--border);
}

.lei-box {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: .75rem;
  font-size: 10.5px;
  color: var(--text2);
  line-height: 1.55;
}
.lei-box strong { font-weight: 600; color: var(--text); }

.sidebar-footer .dev-info {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--border);
  font-size: 9.5px;
  color: var(--text3);
  line-height: 1.4;
}
.sidebar-footer .dev-info strong { color: var(--text2); font-weight: 600; }

/* ── MAIN ──────────────────────────────────── */
.main {
  margin-left: var(--sidebar-w);
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.topbar {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  padding: .875rem 1.5rem;
  display: flex;
  align-items: center;
  gap: 12px;
  position: sticky; top: 0; z-index: 40;
}

.topbar-title { font-size: 15px; font-weight: 600; flex: 1; }

.page-content { padding: 1.25rem 1.5rem; flex: 1; min-height:0; overflow-y:auto; }

/* ── TABS (views) ──────────────────────────── */
.view { display: none !important; }
.view.active { display: block !important; }

/* ── CARDS ─────────────────────────────────── */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.1rem 1.25rem;
  box-shadow: var(--shadow);
}

.card + .card { margin-top: .875rem; }

.card-title {
  font-size: 13px; font-weight: 600;
  color: var(--text);
  margin-bottom: .875rem;
  display: flex; align-items: center; gap: 7px;
}
.card-title svg { width: 15px; height: 15px; color: var(--text3); }

/* ── FORM ──────────────────────────────────── */
.search-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 10px;
  align-items: end;
}
.search-grid .full { grid-column: 1 / -1; }
.search-grid .span2 { grid-column: span 2; }

.field { display: flex; flex-direction: column; gap: 4px; }
.field label { font-size: 11px; font-weight: 600; color: var(--text2); text-transform: uppercase; letter-spacing: .04em; }

input[type=text], input[type=number], input[type=date], select, textarea {
  font-family: var(--font);
  font-size: 13px;
  color: var(--text);
  background: var(--bg);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  padding: 7px 10px;
  outline: none;
  transition: border-color var(--transition), box-shadow var(--transition);
  width: 100%;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(26,58,92,.12);
}

textarea { resize: vertical; min-height: 60px; line-height: 1.5; }

/* ── BUTTONS ───────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font); font-size: 13px; font-weight: 500;
  padding: 7px 14px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
  background: var(--surface);
  color: var(--text);
  cursor: pointer;
  transition: all var(--transition);
  white-space: nowrap;
  user-select: none;
}
.btn:hover { background: var(--surface2); border-color: var(--border2); }
.btn:active { transform: scale(.98); }

.btn svg { width: 15px; height: 15px; }

.btn-primary { background: var(--accent); color: #fff; border-color: transparent; }
.btn-primary:hover { background: color-mix(in srgb, var(--accent) 80%, #000); border-color: transparent; }

.btn-success { background: var(--green); color: #fff; border-color: transparent; }
.btn-success:hover { background: #155a30; }
.btn-outline { background: transparent; color: var(--accent); border-color: var(--accent); }
.btn-outline:hover { background: var(--accent); color: #fff; }

.btn-danger  { background: var(--red-bg); color: var(--red); border-color: transparent; }
.btn-danger:hover { background: #f8d5d5; }

.btn-sm { padding: 4px 10px; font-size: 12px; }
.btn-xs { padding: 3px 8px; font-size: 11px; }

.btn-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* ── STATS ─────────────────────────────────── */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: .875rem;
}

.stat-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: .875rem 1rem;
  box-shadow: var(--shadow);
}
.stat-label { font-size: 10.5px; font-weight: 600; color: var(--text3); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 5px; }
.stat-value { font-size: 22px; font-weight: 600; color: var(--text); font-family: var(--mono); line-height: 1; }
.stat-value.green { color: var(--green); }
.stat-value.blue  { color: var(--accent); }
.stat-meta { font-size: 10.5px; color: var(--text3); margin-top: 3px; }

/* ── TABLE ─────────────────────────────────── */
.table-wrap { overflow-x: auto; }

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
}
thead th {
  font-size: 10.5px; font-weight: 700;
  color: var(--text3);
  text-transform: uppercase; letter-spacing: .05em;
  text-align: left;
  padding: 7px 10px;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
  background: var(--surface2);
}
thead th:first-child { border-radius: var(--radius-sm) 0 0 0; }
thead th:last-child  { border-radius: 0 var(--radius-sm) 0 0; }

tbody td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}
tbody tr:hover td { background: var(--surface2); }
tbody tr:last-child td { border-bottom: none; }

tfoot td {
  padding: 8px 10px;
  font-weight: 600;
  background: var(--accent-light);
  border-top: 2px solid var(--accent);
  font-size: 12.5px;
  color: var(--accent);
}

.th-chk, .td-chk { width: 36px; text-align: center; }

input[type=checkbox] {
  width: 14px; height: 14px;
  accent-color: var(--accent);
  cursor: pointer;
}

/* ── TAGS / BADGES ─────────────────────────── */
.tag {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 10.5px; font-weight: 700;
  letter-spacing: .02em;
  white-space: nowrap;
}
.tag-ata    { background: var(--green-bg);  color: var(--green); }
.tag-cont   { background: var(--blue-bg);   color: var(--blue); }
.tag-edital { background: var(--amber-bg);  color: var(--amber); }
.tag-outro  { background: var(--surface2);  color: var(--text2); }

/* ── STATUS RADIO (PNCP) ──────────────────── */
.status-radio:has(input:checked) {
  background: var(--accent-light) !important;
  border-color: var(--accent) !important;
  color: var(--accent) !important;
  font-weight: 600;
}
.status-radio:hover {
  border-color: var(--accent);
  background: var(--accent-light);
}
.status-radio input[type="radio"]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* ── MODALS ────────────────────────────────── */
.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(10,8,6,.45);
  display: none; align-items: center; justify-content: center;
  z-index: 200;
  backdrop-filter: blur(2px);
}
.modal-overlay.open { display: flex; }

.modal {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  width: 460px; max-width: 96vw;
  box-shadow: var(--shadow-md);
  animation: slideUp .2s ease;
}
@keyframes slideUp {
  from { opacity:0; transform: translateY(14px); }
  to   { opacity:1; transform: translateY(0); }
}

.modal-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1.1rem;
}
.modal-title { font-size: 15px; font-weight: 600; }
.modal-close {
  width: 28px; height: 28px; border-radius: 50%;
  border: 1px solid var(--border);
  background: transparent;
  cursor: pointer; font-size: 16px;
  display: flex; align-items: center; justify-content: center;
  color: var(--text2); transition: background var(--transition);
}
.modal-close:hover { background: var(--surface2); }
.modal-footer { display: flex; gap: 8px; justify-content: flex-end; margin-top: 1.25rem; }

/* ── TOAST ─────────────────────────────────── */
#toast {
  position: fixed; bottom: 1.25rem; right: 1.25rem;
  background: var(--text);
  color: #fff;
  font-size: 12.5px; font-weight: 500;
  padding: .65rem 1.1rem;
  border-radius: var(--radius);
  display: flex; align-items: center; gap: 8px;
  box-shadow: var(--shadow-md);
  z-index: 999;
  transform: translateY(120%);
  transition: transform .3s cubic-bezier(.4,0,.2,1);
  max-width: 320px;
}
#toast.show { transform: translateY(0); }
#toast svg { width: 16px; height: 16px; flex-shrink: 0; }
#toast.error { background: var(--red); }
#toast.success { background: var(--green); }

/* ── FAB: SELEÇÃO AUTOMÁTICA DE 3 FONTES (PLANO_SELECAO_3_FONTES.md) ── */
/* Canto inferior direito, acima do toast (bottom 1.25rem). Aparece só na
   Pesquisa de Preços quando há resultados — display controlado pelo JS. */
.fab-selecao {
  position: fixed;
  right: 1.5rem;
  bottom: 4.5rem;
  z-index: 150; /* abaixo do modal (200) e do toast (999) */
  display: none;
  align-items: center;
  gap: 7px;
  padding: 11px 18px;
  border: none;
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  font-family: var(--font);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(26,58,92,.35);
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}
.fab-selecao svg { width: 16px; height: 16px; flex-shrink: 0; }
.fab-selecao:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(26,58,92,.42); }
.fab-selecao:active { transform: translateY(0) scale(.98); }
@media (max-width: 768px) {
  .fab-selecao { right: 1rem; bottom: 4rem; padding: 10px 14px; font-size: 12px; }
}

/* ── EMPTY / LOADING ───────────────────────── */
.empty-state {
  text-align: center; padding: 3rem 1rem;
  color: var(--text3);
  display: flex; flex-direction: column; align-items: center; gap: .75rem;
}
.empty-state svg { width: 40px; height: 40px; opacity: .35; }
.empty-state p { font-size: 13px; }

.loading-state {
  text-align: center; padding: 2.5rem 1rem;
  color: var(--text2);
  display: flex; flex-direction: column; align-items: center; gap: .75rem;
}

.loading-bar {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 12px; margin-bottom: 8px;
  background: var(--surface2); border-radius: 8px;
  border: 1px solid var(--border);
  animation: fadeIn .2s ease;
}

.spinner {
  width: 28px; height: 28px;
  border: 2.5px solid var(--border);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes fadeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

/* ── LISTA ITEM ────────────────────────────── */
.lista-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  margin-bottom: .875rem;
  overflow: hidden;
}
.lista-card-header {
  padding: .875rem 1.1rem;
  border-bottom: 1px solid var(--border);
  display: flex; align-items: center; gap: 10px;
  background: var(--surface2);
}
.lista-nome { font-size: 14px; font-weight: 600; flex: 1; }
.lista-meta { font-size: 11px; color: var(--text3); margin-top: 1px; }
.lista-body { padding: .75rem 1.1rem; }

.item-row {
  display: grid;
  grid-template-columns: 30px 1fr auto auto auto;
  align-items: center; gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid var(--border);
  font-size: 12.5px;
}
.item-row:last-child { border-bottom: none; }

.item-num {
  width: 26px; height: 26px;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 10.5px; font-weight: 700; font-family: var(--mono);
  color: var(--text2);
  flex-shrink: 0;
}
.item-desc { min-width: 0; }
.item-desc-name { font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.item-desc-sub  { font-size: 10.5px; color: var(--text3); margin-top: 1px; }
.item-price { font-family: var(--mono); font-weight: 600; color: var(--green); white-space: nowrap; }
.item-qty   { font-size: 11px; color: var(--text3); white-space: nowrap; }

.lista-footer {
  padding: .65rem 1.1rem;
  border-top: 1px solid var(--border);
  display: flex; align-items: center; justify-content: space-between;
  background: var(--surface2);
  font-size: 12px;
}
.lista-total { font-family: var(--mono); font-weight: 700; color: var(--accent); }

/* ── RELATORIO ─────────────────────────────── */
.rel-header {
  text-align: center;
  padding: 1.25rem;
  border-bottom: 1px solid var(--border);
  margin-bottom: 1rem;
}
.rel-title { font-size: 17px; font-weight: 700; }
.rel-sub   { font-size: 12px; color: var(--text2); margin-top: 4px; }
.rel-lei   {
  background: var(--accent-light);
  border: 1px solid #b8cfe4;
  border-radius: var(--radius-sm);
  padding: .75rem 1rem;
  font-size: 11.5px; color: var(--blue);
  line-height: 1.55; margin-top: .875rem;
}
.rel-lei strong { font-weight: 700; }

/* ── SEARCH HIGHLIGHT ──────────────────────── */
.link-ext {
  font-size: 11px; color: var(--accent);
  text-decoration: none;
  display: inline-flex; align-items: center; gap: 3px;
  padding: 3px 7px; border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--surface);
  transition: background var(--transition);
}
.link-ext:hover { background: var(--accent-light); }
.link-ext svg { width: 11px; height: 11px; }

/* ── MENU "VER NA PLATAFORMA DE JULGAMENTO" (rodapé da ficha de licitação) ── */
.lic-plat-menu {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 0;
  min-width: 265px;
  padding: 6px;
  background: var(--surface);
  border: 1px solid var(--border2);
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(10,8,6,.18);
  z-index: 30;
}
.lic-plat-item {
  display: block;
  padding: 7px 9px;
  border-radius: 6px;
  color: var(--text);
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
}
.lic-plat-item:hover { background: var(--bg); }
.lic-plat-item.atual { background: rgba(22,163,74,.10); font-weight: 700; }
.lic-plat-item.atual:hover { background: rgba(22,163,74,.16); }

/* ── ADD ITEM CARD ────────────────────────── */
.add-item-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  margin-bottom: 8px;
}
.add-item-card:last-child { margin-bottom: 0; }
.add-item-desc {
  font-size: 12.5px;
  font-weight: 500;
  color: var(--text);
  margin-bottom: 4px;
  line-height: 1.3;
}
.add-item-meta {
  font-size: 10.5px;
  color: var(--text3);
  margin-bottom: 6px;
}
.add-item-admin-wrap {
  position: relative;
  margin-bottom: 6px;
}
.add-item-admin-sel {
  font-size: 11.5px;
  padding: 5px 8px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
  background: var(--bg);
  color: var(--text);
  width: 100%;
  max-width: 100%;
  cursor: pointer;
}
.add-item-admin-sel option {
  white-space: normal;
  word-wrap: break-word;
}
.add-item-links {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}
.add-item-links a {
  font-size: 10px;
  color: var(--accent);
  text-decoration: none;
  padding: 2px 6px;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface);
  display: inline-flex;
  align-items: center;
  gap: 3px;
  transition: background var(--transition);
}
.add-item-links a:hover { background: var(--accent-light); }
.add-item-links a svg { width: 9px; height: 9px; }

/* ── FILTER BAR ────────────────────────────── */
.filter-bar {
  display: flex; gap: 6px; align-items: center;
  flex-wrap: wrap;
  margin-bottom: .875rem;
}
.filter-btn {
  font-size: 11.5px; font-weight: 600;
  padding: 4px 12px;
  border-radius: 20px;
  border: 1px solid var(--border2);
  background: transparent;
  color: var(--text2);
  cursor: pointer;
  transition: all var(--transition);
}
.filter-btn.on { background: var(--accent); color: #fff; border-color: transparent; }

/* ── DIVIDER ───────────────────────────────── */
.divider { height: 1px; background: var(--border); margin: .875rem 0; }

/* ── TRUNCATE ──────────────────────────────── */
.truncate { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.notif-item:hover { background: var(--accent-light) !important; }
.dropdown-item:hover { background: var(--accent-light) !important; }


.mono { font-family: var(--mono); }

/* ── CRITERIO RADIO ──────────────────────── */
.criterio-option:has(input:checked) {
  background: var(--accent-light) !important;
  border-color: var(--accent) !important;
  color: var(--accent) !important;
}
.criterio-option:has(input:checked) div { color: var(--text) !important; }
.criterio-option:has(input:checked) div div { color: var(--text2) !important; }

/* ── HIGHLIGHT MÉDIAS ─────────────────────── */
.med-highlight {
  background: var(--green-bg);
  color: var(--green);
  font-weight: 700;
  padding: 2px 8px;
  border-radius: var(--radius-sm);
  font-family: var(--mono);
}

/* ═══ LANDING PAGE (extraído de inline) ═══ */
/* ── LANDING PAGE ───────────────────────── */
.landing-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;background:var(--bg);overflow-y:auto;transition:opacity .5s ease,transform .5s ease}
.landing-overlay.hidden{opacity:0;transform:scale(1.02);pointer-events:none}

/* NAVBAR */
.landing-nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1rem 2.5rem;display:flex;align-items:center;justify-content:space-between;background:rgba(240,237,232,.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(221,217,210,.5)}
.landing-nav-logo{display:flex;align-items:center;gap:10px}
.landing-nav-logo-text{font-size:16px;font-weight:700;color:var(--accent);letter-spacing:-.02em}
.landing-nav-links{display:flex;gap:2rem;align-items:center}
.landing-nav-links a{font-size:13px;font-weight:500;color:var(--text2);text-decoration:none;transition:color var(--transition)}
.landing-nav-links a:hover{color:var(--accent)}
.landing-nav-cta{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;border:none;border-radius:10px;padding:10px 20px;font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px rgba(26,58,92,.2)}
.landing-nav-cta:hover{background:color-mix(in srgb, var(--accent) 80%, #000);transform:translateY(-1px);box-shadow:0 4px 12px rgba(26,58,92,.3)}

/* HERO */
.landing-hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8rem 2rem 4rem;position:relative;overflow:hidden}
.landing-hero::before{content:'';position:absolute;top:-200px;left:50%;transform:translateX(-50%);width:800px;height:800px;background:radial-gradient(circle,rgba(26,58,92,.06) 0%,transparent 70%);pointer-events:none}
.landing-hero-badge{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:6px 14px;font-size:11.5px;font-weight:500;color:var(--text2);margin-bottom:2rem;box-shadow:var(--shadow)}
.landing-hero-badge .pulse{width:6px;height:6px;background:var(--green);border-radius:50%;animation:pulse-dot 2s infinite}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.4}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.landing-hero h1{font-size:clamp(36px,5vw,64px);font-weight:700;color:var(--text);line-height:1.1;margin-bottom:1.5rem;max-width:700px;animation:fadeUp .6s ease both}
.landing-hero h1 .accent{color:var(--accent)}
.landing-hero-subtitle{font-size:clamp(15px,1.8vw,18px);color:var(--text2);max-width:560px;line-height:1.65;margin-bottom:2.5rem;animation:fadeUp .6s ease .1s both}
.landing-hero-actions{display:flex;gap:12px;align-items:center;animation:fadeUp .6s ease .2s both}
.landing-btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;border:none;border-radius:10px;padding:14px 28px;font-size:14px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .2s ease;box-shadow:0 4px 14px rgba(26,58,92,.25)}
.landing-btn-primary:hover{background:color-mix(in srgb, var(--accent) 80%, #000);transform:translateY(-1px);box-shadow:0 6px 20px rgba(26,58,92,.3)}
.landing-btn-primary svg{width:16px;height:16px}
.landing-btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}
.landing-btn-secondary{display:inline-flex;align-items:center;gap:8px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:13px 24px;font-size:14px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all .2s ease}
.landing-btn-secondary:hover{background:var(--surface2);border-color:var(--border2)}

/* TRUST BAR */
.landing-trust-bar{display:flex;align-items:center;justify-content:center;gap:2rem;padding:1.5rem 2rem;flex-wrap:wrap;animation:fadeUp .6s ease .3s both}
.landing-trust-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text3);font-weight:500}
.landing-trust-item svg{width:14px;height:14px;color:var(--green)}

/* DASHBOARD PREVIEW */
.landing-hero-visual{margin-top:4rem;width:100%;max-width:1000px;position:relative;animation:fadeUp .8s ease .4s both}
.landing-dash-preview{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.08),0 1px 3px rgba(0,0,0,.05);overflow:hidden;transform:perspective(1200px) rotateX(2deg);transition:transform .4s ease}
.landing-dash-preview:hover{transform:perspective(1200px) rotateX(0deg)}
.l-preview-bar{height:40px;background:var(--surface2);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:8px}
.l-preview-dot{width:10px;height:10px;border-radius:50%}
.l-preview-dot.r{background:#ff5f57}.l-preview-dot.y{background:#febc2e}.l-preview-dot.g{background:#28c840}
.l-preview-body{display:flex;min-height:340px}
.l-preview-side{width:180px;background:var(--surface);border-right:1px solid var(--border);padding:16px 12px;flex-shrink:0}
.l-preview-side-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;font-size:11px;color:var(--text3);margin-bottom:4px}
.l-preview-side-item.on{background:var(--accent);color:#fff}
.l-preview-side-item .ico{width:14px;height:14px;border-radius:4px;background:currentColor;opacity:.2}
.l-preview-side-item.on .ico{opacity:.3}
.l-preview-main{flex:1;padding:20px}
.l-preview-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.l-preview-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px}
.l-preview-card-lbl{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);margin-bottom:4px}
.l-preview-card-val{font-size:18px;font-weight:700;color:var(--text);font-family:var(--mono)}
.l-preview-card-val.grn{color:var(--green)}.l-preview-card-val.bl{color:var(--accent)}
.l-preview-chart{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:16px;height:140px;display:flex;align-items:flex-end;gap:6px}
.l-preview-bar-col{flex:1;background:var(--accent);border-radius:4px 4px 0 0;opacity:.5;transition:opacity .2s}
.l-preview-bar-col:nth-child(odd){opacity:.3}
.l-preview-bar-col:hover{opacity:1}

/* QUEM SOMOS */
.landing-quem-somos{padding:5rem 2.5rem;max-width:1100px;margin:0 auto}
.landing-quem-somos-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.landing-quem-somos-logo{display:flex;align-items:center;justify-content:center}
.landing-quem-somos-logo img{max-width:320px;width:100%;border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.12)}
.landing-quem-somos-content h2{font-size:clamp(24px,3vw,34px);font-weight:700;color:var(--text);margin-bottom:1.25rem;line-height:1.2}
.landing-quem-somos-content p{font-size:14px;color:var(--text2);line-height:1.7;margin-bottom:1rem}
.landing-quem-somos-content strong{color:var(--text);font-weight:600}
.landing-quem-somos-subtitle{font-size:13px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.5rem}
.landing-quem-somos-blocks{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem}
.landing-quem-somos-block{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.5rem;transition:all .25s ease}
.landing-quem-somos-block:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.06)}
.landing-quem-somos-block-icon{width:36px;height:36px;background:var(--accent-light);border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:.75rem}
.landing-quem-somos-block-icon svg{width:18px;height:18px;color:var(--accent)}
.landing-quem-somos-block h3{font-size:13.5px;font-weight:600;color:var(--text);margin-bottom:.4rem}
.landing-quem-somos-block p{font-size:12px;color:var(--text2);line-height:1.55;margin-bottom:0}
.landing-quem-somos-footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border);text-align:center}
.landing-quem-somos-footer p{font-size:14px;color:var(--text2);line-height:1.7;max-width:700px;margin:0 auto}
.landing-quem-somos-footer strong{color:var(--accent);font-weight:700}
.landing-quem-somos-tagline{margin-top:1.25rem;display:inline-flex;align-items:center;gap:8px;background:var(--accent-light);border:1px solid #b8cfe4;border-radius:20px;padding:8px 18px;font-size:13px;font-weight:600;color:var(--accent);letter-spacing:.01em}
@media(max-width:768px){
  .landing-quem-somos-grid{grid-template-columns:1fr;text-align:center}
  .landing-quem-somos-blocks{grid-template-columns:1fr}
  .landing-quem-somos-logo img{max-width:220px}
}

/* SOCIAL PROOF */
.landing-social-proof{padding:3rem 2.5rem;text-align:center;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface)}
.landing-social-proof-text{font-size:14px;color:var(--text2);line-height:1.6;max-width:800px;margin:0 auto}
.landing-social-proof-text strong{color:var(--text);font-weight:600}

/* SECTIONS */
.landing-section{padding:6rem 2.5rem;max-width:1200px;margin:0 auto}
.landing-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:.75rem;text-align:center}
.landing-section-title{font-size:clamp(24px,3vw,36px);font-weight:700;color:var(--text);text-align:center;margin-bottom:.75rem}
.landing-section-sub{font-size:15px;color:var(--text2);text-align:center;max-width:520px;margin:0 auto 3rem;line-height:1.6}

/* FEATURES */
.landing-features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.landing-feature-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.5rem;transition:all .25s ease;position:relative;overflow:hidden}
.landing-feature-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--blue));opacity:0;transition:opacity .25s}
.landing-feature-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.06)}
.landing-feature-card:hover::before{opacity:1}
.landing-feature-icon{width:42px;height:42px;background:var(--accent-light);border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}
.landing-feature-icon svg{width:20px;height:20px;color:var(--accent)}
.landing-feature-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:.5rem}
.landing-feature-desc{font-size:12.5px;color:var(--text2);line-height:1.55}

/* HOW IT WORKS */
.landing-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:1000px;margin:0 auto}
.landing-step{text-align:center}
.landing-step-num{width:48px;height:48px;background:var(--accent);color:#fff;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;font-family:var(--mono);margin-bottom:1rem;transition:all .3s ease}
.landing-step:hover .landing-step-num{transform:scale(1.1);box-shadow:0 4px 12px rgba(26,58,92,.3)}
.landing-step:last-child .landing-step-num{background:var(--green)}
.landing-step-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:.5rem}
.landing-step-desc{font-size:12px;color:var(--text2);line-height:1.5}

/* TCU CAROUSEL */
.landing-tcu{padding:6rem 2.5rem;max-width:1200px;margin:0 auto}
.landing-tcu-filters{display:flex;gap:8px;justify-content:center;margin-bottom:2rem;flex-wrap:wrap}
.landing-tcu-chip{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:20px;font-size:12px;font-weight:500;border:1px solid var(--border);background:var(--surface);color:var(--text2);cursor:pointer;transition:all .2s ease;user-select:none;font-family:var(--font)}
.landing-tcu-chip:hover{border-color:var(--accent);color:var(--accent)}
.landing-tcu-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.landing-tcu-chip .count{background:rgba(0,0,0,.08);border-radius:10px;padding:1px 7px;font-size:10px;font-weight:600}
.landing-tcu-chip.active .count{background:rgba(255,255,255,.25)}
.landing-tcu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.landing-tcu-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.25rem;transition:all .25s ease;position:relative;overflow:hidden;cursor:default}
.landing-tcu-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;transition:opacity .25s}
.landing-tcu-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.06)}
.landing-tcu-card:hover::before{opacity:1!important}
.landing-tcu-card[data-cat="pesquisa"]::before{background:var(--red);opacity:.6}
.landing-tcu-card[data-cat="juris"]::before{background:var(--blue);opacity:.6}
.landing-tcu-card[data-cat="sobrepreco"]::before{background:var(--amber);opacity:.6}
.landing-tcu-card[data-cat="planejamento"]::before{background:var(--green);opacity:.6}
.landing-tcu-card[data-cat="termo"]::before{background:var(--accent);opacity:.6}
.landing-tcu-card.hidden-card{display:none}
.landing-tcu-card-tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:4px;margin-bottom:.75rem}
.landing-tcu-card-tag.pesquisa{background:var(--red-bg);color:var(--red)}
.landing-tcu-card-tag.juris{background:var(--blue-bg);color:var(--blue)}
.landing-tcu-card-tag.sobrepreco{background:var(--amber-bg);color:var(--amber)}
.landing-tcu-card-tag.planejamento{background:var(--green-bg);color:var(--green)}
.landing-tcu-card-tag.termo{background:var(--accent-light);color:var(--accent)}
.landing-tcu-card-title{font-size:13.5px;font-weight:600;color:var(--text);margin-bottom:.5rem;line-height:1.4}
.landing-tcu-card-desc{font-size:12px;color:var(--text2);line-height:1.55;margin-bottom:.75rem}
.landing-tcu-card-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text3);flex-wrap:wrap}
.landing-tcu-card-meta svg{width:12px;height:12px;flex-shrink:0}
.landing-tcu-card-aco{font-family:var(--mono);font-size:11px;color:var(--accent);font-weight:500}

/* STATS BAR REMOVED */

/* CTA */
.landing-cta{text-align:center;padding:5rem 2rem;background:linear-gradient(180deg,var(--bg) 0%,var(--surface) 100%)}
.landing-cta h2{font-size:clamp(24px,3vw,36px);font-weight:700;color:var(--text);margin-bottom:1rem}
.landing-cta p{font-size:15px;color:var(--text2);margin-bottom:2rem;max-width:480px;margin-left:auto;margin-right:auto;line-height:1.6}

/* FOOTER */
.landing-footer{padding:2rem 2.5rem;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:11.5px;color:var(--text3)}
.landing-footer a{color:var(--text2);text-decoration:none}
.landing-footer a:hover{color:var(--accent)}

/* RESPONSIVE */
@media(max-width:768px){
  .landing-features-grid{grid-template-columns:1fr}
  .l-preview-cards{grid-template-columns:repeat(2,1fr)}
  .landing-nav-links a:not(.landing-nav-cta){display:none}
  .landing-steps{grid-template-columns:repeat(2,1fr)}
  .landing-tcu-grid{grid-template-columns:1fr}
  .landing-trust-bar{gap:1rem}
  .landing-footer{flex-direction:column;gap:1rem;text-align:center}
}

/* ═══════════ VIEW: COTAMED (módulo do CotaPrime) ═══════════ */
/* ═══════════════════════════════════════════════════════════════
   COTAMED — estilos específicos da view-cotamed.
   Só variáveis do tema do CotaPrime; nenhum seletor vaza para fora
   de #view-cotamed (todas as classes novas têm prefixo cm-).
   ═══════════════════════════════════════════════════════════════ */

#view-cotamed .cm-oculto { display: none !important; }

/* ── indicador de passos ── */
#view-cotamed .cm-passos {
  display: flex; gap: 4px; list-style: none;
  margin: 0 0 1rem; padding: 0; flex-wrap: wrap;
}
#view-cotamed .cm-passos li {
  padding: 4px 12px; border-radius: 99px; font-size: 12.5px;
  color: var(--text3); background: var(--surface);
  border: 1px solid var(--border); user-select: none;
}
#view-cotamed .cm-passos li b {
  display: inline-block; min-width: 17px; text-align: center; border-radius: 99px;
  background: var(--border); color: var(--text3); font-size: 11px; margin-right: 4px; padding: 1px 3px;
}
#view-cotamed .cm-passos li.ativo {
  background: var(--accent-light); border-color: var(--accent);
  color: var(--accent); font-weight: 600;
}
#view-cotamed .cm-passos li.ativo b { background: var(--accent); color: #fff; }
#view-cotamed .cm-passos li.feito { color: var(--accent); cursor: pointer; }
#view-cotamed .cm-passos li.feito b { background: var(--accent); color: #fff; }

/* ── passo 1: busca ── */
#view-cotamed .cm-busca-topo {
  display: flex; justify-content: space-between; align-items: center;
  gap: 8px; margin-bottom: 10px;
}
#view-cotamed .cm-busca-caixa { display: flex; gap: 10px; align-items: flex-end; }
#view-cotamed #cm-termo { font-size: 15px; }
#view-cotamed .cm-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
#view-cotamed .cm-chip {
  border: 1px solid var(--border2); background: var(--surface); color: var(--text2);
  padding: 3px 11px; border-radius: 99px; font-size: 12px;
  user-select: none; cursor: pointer; transition: border-color var(--transition);
}
#view-cotamed .cm-chip:hover { border-color: var(--accent); }
#view-cotamed .cm-chip.on {
  background: var(--accent-light); border-color: var(--accent);
  color: var(--accent); font-weight: 600;
}
#view-cotamed .cm-chip.cm-chip-off { opacity: .45; cursor: not-allowed; }
#view-cotamed .cm-dica { color: var(--text3); font-size: 12.5px; margin: 8px 0; }
#view-cotamed .cm-dica b { color: var(--text2); }
#view-cotamed .cm-contagem { font-size: 11px; font-weight: 500; color: var(--text3); }

#view-cotamed .cm-bloco { margin-bottom: 1rem; }

/* ── sugestões CMED e cards ── */
#view-cotamed .cm-sugestao {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 12px; margin-bottom: 8px;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
  cursor: pointer; transition: border-color var(--transition), background var(--transition);
}
#view-cotamed .cm-sugestao:hover { border-color: var(--accent); background: var(--accent-light); }
#view-cotamed .cm-sug-nome { font-weight: 600; font-size: 13.5px; color: var(--text); }
#view-cotamed .cm-sug-meta { font-size: 12px; color: var(--text3); white-space: nowrap; }
#view-cotamed .cm-corrigido { color: var(--accent); font-size: 12px; margin-left: 8px; font-weight: 400; }
#view-cotamed .cm-grade-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; }
#view-cotamed .cm-card { cursor: pointer; transition: transform var(--transition), border-color var(--transition); }
#view-cotamed .cm-card:hover { border-color: var(--accent); transform: translateY(-1px); }
#view-cotamed .cm-card-nome { font-weight: 600; font-size: 13.5px; margin-bottom: 5px; color: var(--text); }
#view-cotamed .cm-card-meta { font-size: 11.5px; color: var(--text3); margin-top: 5px; }
#view-cotamed .cm-teto-mini { color: var(--accent); font-weight: 600; }

/* ── etiquetas (selos, CATMAT, categoria, preços guardados) ── */
#view-cotamed .cm-tag {
  display: inline-block; font-size: 10.5px; font-weight: 700;
  padding: 2px 8px; border-radius: 20px; white-space: nowrap;
  margin: 1px 3px 1px 0; letter-spacing: .02em;
  background: var(--surface2); color: var(--text2); border: 1px solid var(--border);
}
#view-cotamed .cm-tag-cat { background: var(--accent-light); color: var(--accent); border-color: transparent; }
#view-cotamed .cm-tag-catmat { background: var(--surface2); color: var(--text3); font-weight: 500; border-color: var(--border); }
#view-cotamed .cm-tag-precos { background: var(--green-bg); color: var(--green); border-color: transparent; }
#view-cotamed .cm-selo-rename { background: var(--accent-light); color: var(--accent); border-color: transparent; }
#view-cotamed .cm-selo-fpop { background: var(--blue-bg); color: var(--blue); border-color: transparent; }

/* ── passo 3: título e linha de selos ── */
#view-cotamed .cm-titulo-linha {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 12px; margin-bottom: 12px; flex-wrap: wrap;
}
#view-cotamed .cm-titulo-preco { font-size: 16px; font-weight: 600; color: var(--text); }
#view-cotamed .cm-selos { margin-top: 4px; }

/* ── caixa do teto CMED ── */
#view-cotamed .cm-caixa-teto {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 10px 14px; margin-bottom: 12px;
  display: flex; flex-wrap: wrap; gap: 6px 24px; align-items: baseline; font-size: 13px;
}
#view-cotamed .cm-teto-valor { font-weight: 700; color: var(--accent); font-family: var(--mono); }
#view-cotamed .cm-teto-rotulo { color: var(--text3); font-size: 12px; }
#view-cotamed .cm-nota { font-size: 12px; color: var(--text3); flex-basis: 100%; line-height: 1.5; }

/* ── medidor de cobertura ── */
#view-cotamed .cm-medidor { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
#view-cotamed .cm-medidor-barra {
  flex: 1; min-width: 200px; height: 10px;
  background: var(--border); border-radius: 99px; overflow: hidden;
}
#view-cotamed .cm-medidor-fill {
  height: 100%; width: 0; border-radius: 99px; transition: width .5s;
  background: linear-gradient(90deg, var(--accent), var(--green));
}
#view-cotamed .cm-medidor-fill.fraco { background: linear-gradient(90deg, var(--amber), var(--red)); }
#view-cotamed .cm-medidor-texto { font-size: 13px; color: var(--text); font-weight: 600; }
#view-cotamed .cm-texto-fraco { color: var(--amber); }

/* ── filtros ── */
#view-cotamed .cm-filtros {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 9px 12px; margin-bottom: 12px; font-size: 13px;
}
#view-cotamed .cm-filtros label { display: flex; align-items: center; gap: 6px; color: var(--text2); }
#view-cotamed .cm-filtros select,
#view-cotamed .cm-filtros input[type="date"] {
  border: 1px solid var(--border2); border-radius: var(--radius-sm);
  padding: 4px 8px; background: var(--bg); color: var(--text); font-size: 12.5px;
}
#view-cotamed .cm-filtros .cm-check { color: var(--text); white-space: nowrap; }
#view-cotamed .cm-filtros .cm-chips { margin-top: 0; }

/* ── faixas de aviso ── */
#view-cotamed .cm-faixa {
  border-radius: var(--radius-sm); padding: 8px 12px; margin-bottom: 10px;
  font-size: 12.5px; line-height: 1.5;
}
#view-cotamed .cm-faixa-aviso { background: var(--amber-bg); border: 1px solid var(--border2); color: var(--amber); }
#view-cotamed .cm-faixa-info { background: var(--accent-light); border: 1px solid var(--border); color: var(--accent); }

/* ── tabela de preços ── */
#view-cotamed .cm-vazio { text-align: center; color: var(--text3); padding: 26px 12px; }
#view-cotamed .cm-col-lista { width: 70px; }
#view-cotamed .cm-col-eq { width: 110px; }
#view-cotamed .cm-col-teto { width: 130px; }
#view-cotamed .cm-preco {
  font-weight: 700; white-space: nowrap;
  font-family: var(--mono); font-size: 12.5px;
}
#view-cotamed .cm-preco.cm-preco-acima { color: var(--red); }
#view-cotamed .cm-eq { font-size: 11px; color: var(--text3); white-space: nowrap; }
#view-cotamed .cm-qtd { white-space: nowrap; color: var(--text2); }
#view-cotamed .cm-orgao { max-width: 230px; }
#view-cotamed .cm-municipio { white-space: nowrap; color: var(--text2); font-size: 12px; }
#view-cotamed .cm-data { white-space: nowrap; color: var(--text2); font-size: 12px; }
#view-cotamed .cm-teto-cel { font-size: 12px; white-space: nowrap; font-family: var(--mono); }
#view-cotamed .cm-acima-badge { color: var(--red); font-weight: 700; font-family: var(--font); }
#view-cotamed .cm-ok { color: var(--text3); font-family: var(--font); }
#view-cotamed .cm-fonte-cel { font-size: 11.5px; }
#view-cotamed .cm-tag-fonte {
  display: inline-block; border-radius: 5px; padding: 1px 7px;
  font-size: 11px; font-weight: 600; border: 1px solid var(--border2);
  white-space: nowrap; margin: 1px 2px 1px 0; text-decoration: none; cursor: pointer;
}
#view-cotamed a.cm-tag-fonte:hover { text-decoration: underline; filter: brightness(.9); }
#view-cotamed .cm-tag-pncp { background: var(--blue-bg); color: var(--blue); border-color: transparent; }
#view-cotamed .cm-tag-compras { background: var(--green-bg); color: var(--green); border-color: transparent; }
#view-cotamed .cm-tag-outros { background: var(--surface2); color: var(--text2); }
#view-cotamed tbody tr.cm-tr-acima td { background: var(--red-bg); }
#view-cotamed .cm-btn-lista { padding: 2px 8px; font-size: 11px; white-space: nowrap; }
#view-cotamed .cm-link {
  background: none; border: 0; color: var(--accent); cursor: pointer;
  font-size: 12px; padding: 0 4px; text-decoration: underline;
}

/* ── painel de fontes (modal do admin) ── */
#view-cotamed .cm-fonte-linha {
  display: flex; align-items: center; gap: 10px; padding: 8px 0;
  border-bottom: 1px solid var(--border); flex-wrap: wrap; font-size: 13px;
}
#view-cotamed .cm-fonte-linha .cm-nome { flex: 1; min-width: 180px; font-weight: 600; }
#view-cotamed .cm-badge-tipo {
  font-size: 10.5px; border-radius: 99px; padding: 1px 8px;
  border: 1px solid var(--border2); color: var(--text3);
}
#view-cotamed .cm-status { font-size: 12px; color: var(--text3); }
#view-cotamed .cm-status-atrasada { color: var(--amber); font-weight: 700; }
#view-cotamed .cm-btn-atualizar { color: var(--accent); border-color: var(--accent); }

#view-cotamed .cm-job {
  background: var(--surface2); color: var(--text2);
  font-family: var(--mono); font-size: 11.5px; line-height: 1.55;
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: 10px 12px; margin-top: 10px;
  white-space: pre-wrap; max-height: 240px; overflow: auto;
}
