/* =========================================================
   Simulador da Reforma Tributária — IBS/CBS — CLM Controller
   v3.0.0 — estende o CSS anterior com abas, layout de duas
   colunas (formulário + resultado fixo) e selo de veredito,
   no mesmo padrão visual das calculadoras já publicadas.
   ========================================================= */

.ibs-container{
  font-family: system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,Helvetica,Arial,sans-serif;
  max-width: 1080px;
  margin: 0 auto;
  padding: 16px;
  color: #111827;
}
.ibs-container h2{ margin: 8px 0 4px; font-size: 22px; }
.ibs-container .ibs-subtitle{ margin: 0 0 20px; color: #6b7280; font-size: 14px; }

.ibs-container .grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
}
.ibs-container .grid .full{ grid-column: 1 / -1; }

.ibs-container label{
  display: flex;
  flex-direction: column;
  font-size: 14px;
  font-weight: 600;
  gap: 6px;
}
.ibs-container label .ibs-help{
  font-weight: 400;
  color: #6b7280;
  font-size: 12px;
  margin-top: -2px;
}

.ibs-container input,
.ibs-container select,
.ibs-container button{
  padding: 10px 12px !important;
  border: 1px solid #d0d7de !important;
  border-radius: 8px !important;
  font-size: 14px !important;
  font-family: inherit;
}
.ibs-container input,
.ibs-container select{ height: 44px; background: #fff; }

.ibs-container select{
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555b62' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-size: 16px !important;
  padding-right: 38px !important;
}

.ibs-container button.primary{ background:#111; color:#fff; border-color:#111; cursor:pointer; font-weight:600; }
.ibs-container button.primary:hover{ background:#000; }
.ibs-container button.ghost{ background:transparent; cursor:pointer; color:#3d4546; }
.ibs-container button.ghost:hover{ background:#f3f4f6; }

.ibs-container .actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top: 8px; }
.ibs-container .ibs-global-actions{ margin-top: 24px; border-top: 1px solid #e5e7eb; padding-top: 16px; }

.ibs-container .card{
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px;
  margin-top: 16px;
}
.ibs-container .card h3{ margin: 0 0 10px; font-size: 16px; }
.ibs-container .card.ibs-shared{ margin-top: 12px; background: #fafafa; }

.ibs-container .row-group{ display:flex; justify-content:space-between; gap:12px; flex-wrap: wrap; }
.ibs-container .row-group + .row-group{ margin-top: 10px; }
.ibs-container hr{ border: none; border-top: 1px solid #e5e7eb; margin: 14px 0; }

.ibs-container .line{ width: 100%; margin-top: 5px; margin-bottom: 5px; }
.ibs-container .line span:not(.muted){ display:block; }
.ibs-container .line span:first-of-type{ font-weight:600; font-size: 13px; }
.ibs-container .line span:last-of-type{ font-size: 15px; white-space: nowrap; }
.ibs-container .line.total{ font-size: 17px; }
.ibs-container .line.up span:last-of-type{ color:#b42318; }
.ibs-container .line.down span:last-of-type{ color:#0a7a3c; }
.ibs-container .line.destaque span:first-of-type{ font-weight:700; }
.ibs-container .line.destaque span:last-of-type{ font-weight:700; font-size:16px; }

.muted{ color:#6b7280; font-size:12px; }

.ibs-container .ibs-subsection{
  border-top: 1px dashed #d0d7de;
  border-bottom: 1px dashed #d0d7de;
  padding: 12px 0;
  margin: 4px 0 12px;
}
.ibs-container .ibs-subsection-title{ font-weight:600; font-size:13px; margin:0 0 8px; }
.ibs-container .ibs-subsection .grid{ margin-bottom: 10px; }

.ibs-container .ibs-evolucao-table{ width:100%; border-collapse:collapse; font-size:13px; }
.ibs-container .ibs-evolucao-table th,
.ibs-container .ibs-evolucao-table td{ padding:6px 8px; border-bottom:1px solid #e5e7eb; text-align:right; }
.ibs-container .ibs-evolucao-table th:first-child,
.ibs-container .ibs-evolucao-table td:first-child{ text-align:left; }
.ibs-container .ibs-evolucao-table tr.destaque{ background:#f0fdf4; font-weight:600; }
.ibs-container .hidden{ display:none !important; }
.ibs-container .ibs-msg{
  background:#fff7e6; border:1px solid #f5c451; border-radius:8px;
  padding:10px 12px; font-size:13px; color:#7a5b00; margin-top:12px;
}
.ibs-container .ibs-footnote{ margin-top:16px; font-size:12px; color:#6b7280; line-height:1.5; }
.ibs-container .ibs-footnote strong{ color:#b42318; }
.ibs-container .ibs-cta{ margin-top:6px; font-size:13px; }
.ibs-container .ibs-cta a{ color:#111; font-weight:600; text-decoration:underline; }

/* ---- Abas ---- */
.ibs-container .ibs-tabs{
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 20px;
  border-bottom: 2px solid #e5e7eb;
}
.ibs-container .ibs-tab-btn{
  border: none !important;
  border-radius: 8px 8px 0 0 !important;
  background: transparent;
  padding: 10px 14px !important;
  font-size: 13px !important;
  font-weight: 600;
  color: #6b7280;
  cursor: pointer;
  margin-bottom: -2px;
}
.ibs-container .ibs-tab-btn:hover{ background: #f3f4f6; color: #111; }
.ibs-container .ibs-tab-btn.active{
  color: #111;
  border-bottom: 2px solid #111 !important;
  background: #f7f7f7;
}
.ibs-container .ibs-tab-panel{ padding-top: 20px; }

/* ---- Cores por regime — mesmo padrão de "abas coloridas" usado na
   calculadora Simples Híbrido x Puro do próprio site da CLM. Cada aba
   ganha uma cor de destaque (--tab-accent), usada no ponto da aba, nos
   selos numerados, no valor principal do resultado e nos links. Tons
   escolhidos a partir da paleta oficial CLM (azuis) + tons de apoio
   para diferenciar visualmente os 6 regimes. */
.ibs-tab-btn[data-tab="simples-padrao"] .ibs-tab-dot{ background:#0B2E4E; }
.ibs-tab-btn[data-tab="simples-hibrido"] .ibs-tab-dot{ background:#0F9488; }
.ibs-tab-btn[data-tab="presumido"] .ibs-tab-dot{ background:#7C3AED; }
.ibs-tab-btn[data-tab="real"] .ibs-tab-dot{ background:#C2410C; }
.ibs-tab-btn[data-tab="comparativo"] .ibs-tab-dot{ background:#BE185D; }
.ibs-tab-btn[data-tab="sobre"] .ibs-tab-dot{ background:#B45309; }
.ibs-container .ibs-tab-dot{
  display:inline-block; width:8px; height:8px; border-radius:50%;
  margin-right:7px; vertical-align:middle;
}

.ibs-tab-panel[data-tab="simples-padrao"]{ --tab-accent:#0B2E4E; --tab-accent-soft:#eaf0f5; }
.ibs-tab-panel[data-tab="simples-hibrido"]{ --tab-accent:#0F9488; --tab-accent-soft:#e6f6f4; }
.ibs-tab-panel[data-tab="presumido"]{ --tab-accent:#7C3AED; --tab-accent-soft:#f2ecfe; }
.ibs-tab-panel[data-tab="real"]{ --tab-accent:#C2410C; --tab-accent-soft:#fdece2; }
.ibs-tab-panel[data-tab="comparativo"]{ --tab-accent:#BE185D; --tab-accent-soft:#fce8f0; }
.ibs-tab-panel[data-tab="sobre"]{ --tab-accent:#B45309; --tab-accent-soft:#fdf0dd; }

/* ---- Selos numerados de seção (1, 2, 3...) ---- */
.ibs-container .ibs-step-title{
  display:flex; align-items:center; gap:10px;
  font-weight:700; font-size:14px; margin: 4px 0 12px;
}
.ibs-container .ibs-step-badge{
  flex: 0 0 auto;
  width:24px; height:24px; border-radius:50%;
  border:2px solid var(--tab-accent, #111);
  color: var(--tab-accent, #111);
  display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:800;
}

/* ---- Card de resultado: valor principal ("hero") + mini-stats ---- */
.ibs-container .ibs-result-card{ border-top: 3px solid var(--tab-accent, #111); }
.ibs-container .ibs-hero-label{
  text-transform: uppercase; letter-spacing:.04em;
  font-size:11px; font-weight:700; color:#6b7280; margin:0 0 4px;
}
.ibs-container .ibs-hero-value{
  font-size: 30px; font-weight:800; color: var(--tab-accent, #111);
  margin: 0 0 12px; line-height:1.15;
}
.ibs-container .ibs-ministat-grid{
  display:grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap:8px; margin-top: 10px;
}
.ibs-container .ibs-ministat{
  background: var(--tab-accent-soft, #f7f7f7);
  border-radius:8px; padding:8px 10px;
  display:flex; flex-direction:column; gap:2px;
}
.ibs-container .ibs-ministat-label{ font-size:11px; color:#4b5563; font-weight:600; }
.ibs-container .ibs-ministat-value{ font-size:14px; font-weight:700; color:#111; }
@media (max-width: 480px){
  .ibs-container .ibs-ministat-grid{ grid-template-columns: 1fr 1fr; }
}

/* ---- Card de dados compartilhados: barra colorida no topo ---- */
.ibs-container .card.ibs-shared{ border-top: 3px solid #1F6FAE; }

/* ---- Abas "planas" (Comparativo / Sobre a Reforma): sem layout de
   duas colunas, mas ainda com a cor de destaque nos títulos/links. */
.ibs-container .ibs-tab-panel-plain .ibs-subsection-title{ color: var(--tab-accent, #111); }

/* ---- Layout de duas colunas: formulário + resultado fixo ---- */
.ibs-container .ibs-tab-layout{
  display: grid;
  grid-template-columns: minmax(0,1fr);
  gap: 16px;
  align-items: start;
}
@media (min-width: 900px){
  .ibs-container .ibs-tab-layout{ grid-template-columns: minmax(0,1.3fr) minmax(280px,1fr); }
  .ibs-container .ibs-tab-sidebar{ position: sticky; top: 12px; }
}
/* A sidebar de resultado é estreita (280-380px) — a régua de 3 colunas
   pensada para o card largo de antes (960px) faz o texto (com
   white-space:nowrap) vazar por cima da coluna vizinha. Dentro da
   sidebar, cada linha ocupa a largura toda, uma por vez. */
.ibs-container .ibs-tab-sidebar .line{ width: 100% !important; }
.ibs-container .ibs-tab-sidebar .line span:last-of-type{ white-space: normal; }

/* ---- Selo de veredito ---- */
.ibs-container .ibs-verdict{
  font-weight: 700;
  font-size: 14px;
  padding: 10px 12px;
  border-radius: 8px;
  margin-bottom: 10px;
}
.ibs-container .ibs-verdict.positivo{ background:#f0fdf4; color:#0a7a3c; border:1px solid #bbf0d0; }
.ibs-container .ibs-verdict.negativo{ background:#fff1f0; color:#b42318; border:1px solid #fecaca; }
.ibs-container .ibs-verdict.neutro{ background:#f3f4f6; color:#374151; border:1px solid #e5e7eb; }
.ibs-container .ibs-verdict:empty{ display:none; margin:0; }

/* ---- Memória de cálculo / FAQ (details colapsáveis) ---- */
.ibs-container .ibs-memoria{ margin-top: 10px; border: 1px solid #e5e7eb; border-radius: 8px; padding: 8px 12px; }
.ibs-container .ibs-memoria summary{ font-size: 13px; font-weight: 600; cursor: pointer; color: var(--tab-accent, #111); }
.ibs-container .ibs-memoria p{ margin: 8px 0 0; color: #374151; }
#sobre-faq .ibs-memoria + .ibs-memoria{ margin-top: 8px; }

/* ---- Tabela de cronograma / comparativo com cabeçalho colorido ---- */
.ibs-tab-panel-plain .ibs-evolucao-table thead th{
  background: var(--tab-accent-soft, #f3f4f6);
  color: var(--tab-accent, #111);
  border-bottom: 2px solid var(--tab-accent, #e5e7eb);
}
.ibs-container .ibs-evolucao-table tr.destaque{ background: var(--tab-accent-soft, #f0fdf4); }
.ibs-container .ibs-evolucao-table tr.destaque td:first-child{ color: var(--tab-accent, #0a7a3c); }

@media (min-width: 900px){
  .ibs-container .line{ width: calc(33.333% - 8px); }
  .ibs-container .line.line-50{ width: calc(50% - 6px); }
}
@media (max-width: 767px){
  .ibs-container .grid{ grid-template-columns: 1fr; }
  .ibs-container .ibs-tabs{ overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; }
  .ibs-container .ibs-tab-btn{ flex: 0 0 auto; white-space: nowrap; }
}

@media print{
  body > *:not(#ibs-print-copy){ display: none !important; }
  #ibs-print-copy{ display: block !important; }
  #ibs-print-copy, #ibs-print-copy *{ visibility: visible !important; }
}
#ibs-print-copy{ display: none; }
#ibs-print-copy{
  font-family: system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,Helvetica,Arial,sans-serif;
  color: #111827;
  padding: 24px;
}
#ibs-print-copy .ibs-print-logo{ display:block; max-width: 200px; height:auto; margin-bottom: 16px; }
#ibs-print-copy h2{ margin: 0 0 4px; font-size: 20px; }
#ibs-print-copy .ibs-print-subtitle{ margin: 0 0 18px; color:#6b7280; font-size: 13px; }
#ibs-print-copy .card{ border: 1px solid #e5e7eb; border-radius: 12px; padding: 16px; margin-top: 0; }
#ibs-print-copy .card h3{ margin: 0 0 10px; font-size: 16px; }
#ibs-print-copy .row-group{ display:flex; justify-content:space-between; gap:12px; flex-wrap: wrap; }
#ibs-print-copy .row-group + .row-group{ margin-top: 10px; }
#ibs-print-copy hr{ border: none; border-top: 1px solid #e5e7eb; margin: 14px 0; }
#ibs-print-copy .line{ width: calc(33.333% - 8px); margin-top: 5px; margin-bottom: 5px; }
#ibs-print-copy .line.line-50{ width: calc(50% - 6px); }
#ibs-print-copy .line span:not(.muted){ display:block; }
#ibs-print-copy .line span:first-of-type{ font-weight:600; font-size: 12px; }
#ibs-print-copy .line span:last-of-type{ font-size: 14px; white-space: nowrap; }
#ibs-print-copy .line.total{ font-size: 16px; margin-top: 10px; }
#ibs-print-copy .muted{ color:#6b7280; font-size:12px; }
#ibs-print-copy .hidden{ display:none !important; }
#ibs-print-copy .ibs-print-empty{ font-size: 14px; color:#6b7280; }
