/* ===========================
   INOVE CFC — OPÇÃO B (clean + profissional)
   - Topo azul petróleo
   - Cards: borda petróleo + fundo azul bebê
   - Sem glow / sem glass
   - Tabs active: azul petróleo
   - Header Inove (logo + chips) + barra azul + linha amarela
   - Inputs monetários SEM prefixo "R$" (removido)
   - Input-group com ícone editável (arredondamento corrigido)
   - Alinhamento à direita APENAS para moeda e number (mais seguro)
   =========================== */

:root{
  /* Cores principais */
  --petrolio: #0A4D79;
  --petrolio-2: #052E36;
  --petrolio-soft: rgba(6,59,69,.18);

  --baby: #EAF6FF;
  --baby-2: #D7EEFF;

  --white: #ffffff;
  --text: #0E1B22;
  --muted: rgba(14,27,34,.72);

  --stroke: rgba(6,59,69,.35);
  --stroke-2: rgba(6,59,69,.55);

  --shadow-sm: 0 6px 14px rgba(0,0,0,.10);
  --shadow-md: 0 14px 34px rgba(0,0,0,.14);

  /* Simples Nacional (modal / elementos) */
  --accent: #FECC00;

  --sn-border: rgba(10, 20, 35, .14);
  --sn-text: #0e1b22;
  --sn-muted: rgba(14, 27, 34, .70);
  --sn-primary: #0A4D79;
  --sn-accent: #FECC00;

  --sn-bg: #ffffff;
  --sn-line: rgba(10, 20, 35, .14);
  --sn-line-2: rgba(10, 20, 35, .22);
  --sn-soft: rgba(10, 77, 121, .06);
  --sn-soft-2: rgba(10, 77, 121, .10);
}

*{
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body{
  background: linear-gradient(180deg, var(--baby) 0%, #0A4D79 55%, #0A4D79 100%);
  color: var(--white);
  min-height: 100vh;
}

.page-shell{
  max-width: 1150px;
  margin: 0 auto;
  padding: 28px 16px 46px;
}

/* ===========================
   “GLASS” -> vira container claro (sem glass)
   =========================== */
.glass{
  background: var(--white);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 18px;
  box-shadow: var(--shadow-md);
  backdrop-filter: none;
  color: var(--text);
}

/* ===========================
   BADGE “Calculadora”
   =========================== */
.brand-badge{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.92);
  color: var(--petrolio);
  font-weight: 900;
  letter-spacing: .2px;
  font-size: .90rem;
  box-shadow: var(--shadow-sm);
}

.brand-badge i{ color: var(--petrolio); }

h1.h3{
  color: var(--white);
  font-weight: 950;
  letter-spacing: -.2px;
  margin-top: 2px;
}

/* ===========================
   CHIPS
   =========================== */
.chip{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.92);
  color: var(--petrolio);
  font-weight: 900;
  font-size: .90rem;
  white-space: nowrap;
  box-shadow: var(--shadow-sm);
}

.chip i{ color: var(--petrolio); }

/* ===========================
   NAV PILLS (tabs)
   =========================== */
.nav-pills{
  align-items: center;
  gap: 10px;
}

.nav-pills .nav-link{
  border-radius: 999px;
  border: 2px solid var(--petrolio);
  color: var(--petrolio);
  font-weight: 950;
  background: var(--baby);
  box-shadow: 0 8px 18px rgba(0,0,0,.12);
  white-space: nowrap;
}

.nav-pills .nav-link i{ color: var(--petrolio); }

.nav-pills .nav-link:hover{ background: var(--baby-2); }

.nav-pills .nav-link.active{
  background: #0A4D79;
  color: #fff;
  border-color: var(--petrolio);
  box-shadow: 0 10px 22px rgba(0,0,0,.16);
}

.nav-pills .nav-link.active i{ color: #fff; }

/* ===========================
   KPI / CARDS
   =========================== */
.kpi{
  border-radius: 16px;
  border: 2px solid var(--petrolio);
  background: var(--baby);
  padding: 14px 14px 12px;
  height: 100%;
  box-shadow: 0 10px 18px rgba(0,0,0,.12);
  color: var(--text);
}

.kpi .label{
  color: rgba(14,27,34,.70);
  font-weight: 950;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .10em;
}

.kpi .value{
  font-size: 1.32rem;
  font-weight: 950;
  margin-top: 6px;
  line-height: 1.12;
  color: #0B1A22;
}

.kpi .sub{
  color: rgba(14,27,34,.72);
  margin-top: 8px;
  font-size: .92rem;
}

.section-title{
  font-weight: 950;
  letter-spacing: .2px;
  color: #0B1A22;
}

.muted{ color: var(--muted); }

/* ===========================
   LINHAS / HR
   =========================== */
.hr-soft{
  border-top: 1px solid rgba(6,59,69,.22);
  opacity: 1;
}

/* ===========================
   RESULTADOS (linhas)
   =========================== */
.result-row{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px dashed rgba(6,59,69,.28);
}

.result-row:last-child{ border-bottom: none; }

.result-row .name{
  color: rgba(14,27,34,.78);
  font-weight: 950;
}

.result-row .val{
  font-weight: 950;
  color: #0B1A22;
}

.note{
  color: rgba(14,27,34,.65);
  font-size: .92rem;
}

/* ===========================
   INPUTS (sem glow) — BASE
   =========================== */
.form-label{
  color: rgba(14,27,34,.85);
  font-weight: 800;
}

.input-hint{
  color: rgba(14,27,34,.58);
  font-size: .88rem;
}

/* Base principal do input (arredondado) */
.form-control{
  border-radius: 14px !important;
  border: 2px solid rgba(6,59,69,.28);
  background: #ffffff;
  color: #0B1A22;
  font-weight: 800;
  box-shadow: none;
  padding: 10px 12px;
}

.form-control:focus{
  border-color: rgba(6,59,69,.70);
  outline: none;
  box-shadow: 0 0 0 3px rgba(6,59,69,.12);
  background: #ffffff;
  color: #0B1A22;
}

/* Readonly/disabled: elegante */
.form-control[readonly],
.form-control:disabled{
  background: rgba(245,247,250,1) !important;
  color: rgba(0,0,0,.6) !important;
  cursor: not-allowed;
}

/* ===========================
   INPUT-GROUP + ÍCONE EDITÁVEL
   (corrige “quadrado/cortado”)
   - SEM prefixo R$ (removido)
   =========================== */

/* 1) o input do grupo mantém raio perfeito (bootstrap costuma zerar) */
.input-group > .form-control{
  border-radius: 14px !important;
}

/* 2) se tiver addon à direita (ícone), o input perde os cantos da direita */
.input-group > .form-control:not(:last-child){
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  border-right: 0;
}

/* 3) addon do ícone: garante cantos da direita SEMPRE arredondados */
.input-group > .editable-icon{
  cursor: default;
  user-select: none;

  background: #ffffff;
  border: 2px solid rgba(6,59,69,.28);
  border-left: 0;

  border-top-right-radius: 14px !important;
  border-bottom-right-radius: 14px !important;

  color: var(--petrolio);
  padding-inline: 12px;

  display: flex;
  align-items: center;
  justify-content: center;
}

/* Estado de foco no grupo (borda consistente nos 2 lados) */
.input-group:focus-within > .form-control,
.input-group:focus-within > .editable-icon{
  border-color: rgba(6,59,69,.70);
}

/* ===========================
   ALINHAMENTO À DIREITA — APENAS MOEDA E NUMBER (AJUSTE FINAL)
   =========================== */
input.money.form-control,
input[type="number"].form-control{
  text-align: right !important;
}

input.money.form-control::placeholder,
input[type="number"].form-control::placeholder{
  text-align: right !important;
}

/* Se você quiser forçar algum campo a ficar à esquerda:
   adicione class="text-left" nele */
.text-left.form-control,
.text-left.form-select,
textarea.text-left{
  text-align: left !important;
}

/* ===========================
   BOTÕES
   =========================== */
.btn-soft{
  border-radius: 12px;
  border: 2px solid rgba(6,59,69,.35);
  background: var(--baby);
  color: var(--petrolio);
  font-weight: 950;
  box-shadow: 0 8px 16px rgba(0,0,0,.10);
}

.btn-soft:hover{
  border-color: rgba(6,59,69,.55);
  background: var(--baby-2);
  color: var(--petrolio);
}

/* ===========================
   RESPONSIVO geral
   =========================== */
@media (max-width: 991.98px){
  h1.h3{ font-size: 1.45rem; }
  .chip{ font-size: .86rem; padding: 9px 12px; }
  .nav-pills .nav-link{ width: 100%; justify-content: center; }
}

@media (max-width: 576px){
  .form-control{
    padding: 11px 12px;
    font-size: 1rem;
  }
  .input-group > .editable-icon{
    padding-inline: 10px;
  }
}

/* =========================
   HEADER estilo Inove (somente header)
   ========================= */
.inove-header{
  width: 100%;
  background: #fff;
}

.inove-container{
  width: min(1150px, calc(100% - 32px));
  margin: 0 auto;
}

/* topo branco */
.inove-top{
  background: #ffffff;
  border-bottom: 1px solid rgba(0,0,0,.06);
}

.inove-top-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 0;
}

.inove-left{
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.inove-right{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.inove-top .inove-container{
  height: 64px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.inove-brand{
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.inove-brand-logo{
  height: 70px;
  width: auto;
  display: block;
}

/* barra azul */
.inove-restrict{
  background: #0a4d79;
}

.inove-restrict .inove-container{
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  padding: 8px 0;
}

.inove-restrict-title{
  color: #ffffff;
  font-weight: 800;
  font-size: 14px;
  letter-spacing: .2px;
}

/* linha amarela */
.inove-accent-line{
  height: 5px;
  background: #ffcc00;
}

/* responsivo header */
@media (max-width: 576px){
  .inove-restrict .inove-container{
    justify-content: flex-start;
  }
}

@media (max-width: 575.98px){
  .inove-brand-logo{ height: 44px; }
}

/* =========================
   LEMBRETE IMPORTANTE (banner)
   ========================= */
.reminder-wrap{
  margin-bottom: 14px;
  margin-top: -14px;
}

.reminder-banner{
  display: flex;
  gap: 12px;
  align-items: flex-start;

  padding: 14px 16px;
  border-radius: 14px;

  background: rgba(255, 250, 230, .85);
  border: 1px solid rgba(254, 204, 0, .55);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);

  border-left: 6px solid #FECC00;
  position: relative;
}

.reminder-banner .reminder-ico{
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 12px;

  display: grid;
  place-items: center;

  background: rgba(254, 204, 0, .22);
  color: #6b5600;
  font-size: 18px;
}

.reminder-banner .reminder-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
}

.reminder-banner .reminder-title{
  font-weight: 800;
  line-height: 1.2;
  margin: 0;
  color: #2b2b2b;
}

.reminder-banner .reminder-sub{
  margin: 2px 0 0 0;
  color: rgba(0,0,0,.70);
  line-height: 1.35;
  font-size: 13.5px;
}

.reminder-banner .reminder-btn{
  flex: 0 0 auto;
  white-space: nowrap;
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 700;
}

.reminder-banner .reminder-list{
  margin: 10px 0 0 0;
  padding-left: 18px;
  color: rgba(0,0,0,.76);
  line-height: 1.45;
  font-size: 14.5px;
}

.reminder-banner .reminder-list li{ margin-bottom: 6px; }
.reminder-banner .reminder-list li:last-child{ margin-bottom: 0; }

.reminder-banner.is-collapsed{
  background: rgba(255, 250, 230, .60);
}

@media (max-width: 576px){
  .reminder-banner{
    padding: 12px 14px;
  }
  .reminder-banner .reminder-ico{
    width: 38px;
    height: 38px;
  }
  .reminder-banner .reminder-list{
    font-size: 14px;
  }
}

/* =========================
   Sugestão (Folha)
   ========================= */
.sheet-suggestion{
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(13,110,253,.06);
  border: 1px solid rgba(13,110,253,.20);
}

.sheet-suggestion-ico{
  width: 32px;
  height: 32px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: rgba(13,110,253,.12);
  color: rgba(13,110,253,.95);
  flex: 0 0 auto;
}

.sheet-suggestion-title{
  font-weight: 800;
  color: rgba(0,0,0,.82);
  line-height: 1.1;
  margin-bottom: 2px;
  font-size: 13.5px;
}

.sheet-suggestion-body{
  color: rgba(0,0,0,.68);
  font-size: 13.5px;
  line-height: 1.35;
}

@media (max-width: 576px){
  .sheet-suggestion-body{
    font-size: 13px;
  }
}

/* =========================
   Help Icon (Tooltip)
   ========================= */
.help-ico{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 22px;
  height: 22px;
  border-radius: 999px;

  background: rgba(13,110,253,.10);
  border: 1px solid rgba(13,110,253,.18);
  color: rgba(13,110,253,.95);

  cursor: help;
  transition: transform .12s ease, background .12s ease;
  user-select: none;
}

.help-ico i{
  font-size: 14px;
  line-height: 1;
}

.help-ico:hover{
  transform: translateY(-1px);
  background: rgba(13,110,253,.14);
}

.tooltip .tooltip-inner{
  max-width: 640px;
  padding: 10px 12px;
  border-radius: 12px;

  font-size: 13.5px;
  line-height: 1.35;

  background: rgba(17, 24, 39, .96);
  color: #fff;

  box-shadow: 0 12px 30px rgba(0,0,0,.18);
}

/* =========================
   Observações Finais (Fase 1)
   ========================= */
.final-notes{
  border-radius: 16px;
  padding: 14px 16px;

  background: rgba(255,255,255,.72);
  border: 1px solid rgba(0,0,0,.07);
  box-shadow: 0 12px 30px rgba(0,0,0,.06);
}

.final-notes-head{
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.final-notes-ico{
  width: 40px;
  height: 40px;
  border-radius: 14px;
  display: grid;
  place-items: center;

  background: rgba(13,110,253,.10);
  border: 1px solid rgba(13,110,253,.18);
  color: rgba(13,110,253,.95);
  flex: 0 0 auto;
}

.final-notes-title{
  font-weight: 900;
  color: rgba(0,0,0,.85);
  line-height: 1.1;
  font-size: 14.5px;
}

.final-notes-sub{
  color: rgba(0,0,0,.60);
  font-size: 13px;
  margin-top: 2px;
}

.final-notes-body{
  color: rgba(0,0,0,.72);
  font-size: 14px;
  line-height: 1.45;
}

@media (max-width: 576px){
  .final-notes{
    padding: 12px 14px;
  }
  .final-notes-body{
    font-size: 13.5px;
  }
}

/* =========================
   Proteção de legibilidade do Modal
   ========================= */
#modalCiente .modal-content{ color: #111827; }
#modalCiente .modal-header,
#modalCiente .modal-body,
#modalCiente .modal-footer{ color: #111827; }

#modalCiente .text-muted{ color: #6b7280 !important; }
#modalCiente .small{ color: #374151 !important; }
#modalCiente .bg-light,
#modalCiente .bg-warning-subtle,
#modalCiente .bg-white{ color: #111827 !important; }
#modalCiente .form-check-label{ color: #111827 !important; }

/* =========================
   Simples Nacional — lupa à esquerda (input-group) + modal
   (VERSÃO ESTÁVEL: sem .sn-wrap / sem position:absolute)
   ========================= */

/* Grupo (botão lupa + input) */
.sn-group{
  display: flex;
  align-items: stretch;
  width: 100%;
}

/* Botão lupa (lado esquerdo) */
.sn-group .sn-lupa{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  border: 2px solid rgba(6,59,69,.28);
  border-right: 0;

  background: #fff;
  color: var(--petrolio);
  font-weight: 900;

  border-radius: 14px 0 0 14px;
  padding: 0 12px;
  line-height: 1;

  cursor: pointer;
  outline: none;

  transition: transform .08s ease, box-shadow .12s ease, background-color .12s ease;
}

.sn-group .sn-lupa:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(10,20,35,.10);
  background: rgba(10,77,121,.06);
}

.sn-group .sn-lupa:active{
  transform: translateY(0);
  box-shadow: none;
}

.sn-group .sn-lupa:focus-visible{
  box-shadow: 0 0 0 3px rgba(6,59,69,.14);
}

/* Input do grupo: mantém padrão e arredonda só a direita */
.sn-group > .form-control{
  border-radius: 0 14px 14px 0 !important;
}

/* Foco consistente nos dois lados */
.sn-group:focus-within .sn-lupa,
.sn-group:focus-within > .form-control{
  border-color: rgba(6,59,69,.70);
}

/* Texto de dica */
.sn-hint{
  color: rgba(14, 27, 34, .70) !important;
}

/* Modal (estrutura) */
.sn-modal{
  border: 1px solid rgba(10, 20, 35, .14);
  border-radius: 18px;
  overflow: hidden;
}

.sn-modal-header{
  border-bottom: 1px solid rgba(10, 20, 35, .14);
  background: linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%);
  padding: 14px 16px;
}

.sn-badge{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 800;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(10, 20, 35, .14);
  background: #fff;
  color: #0e1b22;
}

.sn-frame-wrap{
  height: min(78vh, 720px);
  background: #fff;
}

#snIframe{
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: #fff;
}

.sn-modal-footer{
  border-top: 1px solid rgba(10, 20, 35, .14);
  background: #fff;
  padding: 12px 16px;
}

/* =========================================================
   MODAL SIMPLES NACIONAL — Header azul do tema + tabela bonita
   Tema: petrolio (#0A4D79) / amarelo (#FECC00)
   ========================================================= */

/* =========================
   HEADER DO POPUP (MODAL)
   ========================= */
#modalSimplesConsulta .sn-modal-header{
  background: linear-gradient(180deg, var(--petrolio) 0%, #083f64 100%) !important;
  border-bottom: 1px solid rgba(255,255,255,.14) !important;
  color: #fff !important;
}

#modalSimplesConsulta .sn-modal-header .sn-badge{
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
}

#modalSimplesConsulta .sn-modal-header .text-muted{
  color: rgba(255,255,255,.78) !important;
}

/* botão X branco (Bootstrap) */
#modalSimplesConsulta .sn-modal-header .btn-close{
  filter: invert(1) grayscale(1);
  opacity: .85;
}
#modalSimplesConsulta .sn-modal-header .btn-close:hover{
  opacity: 1;
}

/* =========================
   ÁREA DO IFRAME / BODY
   ========================= */
#modalSimplesConsulta .sn-frame-wrap{
  background: #fff;
}

/* =========================
   TABELA DO SIMPLES (classe sugerida)
   Se você conseguir, coloque class="sn-table" na <table>
   ========================= */
.sn-table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--sn-bg);
  color: var(--sn-text);
  font-size: 14px;
  border: 1px solid var(--sn-line);
  border-radius: 14px;
  overflow: hidden;
}

/* cabeçalho */
.sn-table thead th{
  background: linear-gradient(180deg, rgba(10,77,121,.10) 0%, rgba(10,77,121,.06) 100%);
  color: rgba(14,27,34,.88);
  font-weight: 900;
  letter-spacing: .2px;
  text-transform: none;
  padding: 12px 14px;
  border-bottom: 1px solid var(--sn-line);
  position: sticky;
  top: 0;
  z-index: 2;
}

/* linhas */
.sn-table tbody td{
  padding: 11px 14px;
  border-bottom: 1px solid rgba(10,20,35,.10);
  vertical-align: middle;
}

/* zebra */
.sn-table tbody tr:nth-child(odd){
  background: rgba(10,77,121,.035);
}

/* hover */
.sn-table tbody tr:hover{
  background: rgba(254,204,0,.10);
}

/* última linha sem borda */
.sn-table tbody tr:last-child td{
  border-bottom: 0;
}

/* colunas numéricas alinhadas */
.sn-table td:nth-child(3),
.sn-table td:nth-child(4){
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* “Faixa” com badge */
.sn-table td:first-child{
  font-weight: 900;
  color: rgba(14,27,34,.82);
  width: 70px;
  white-space: nowrap;
}

/* =========================
   RESPONSIVO: tabela vira "cards" por linha
   ========================= */
@media (max-width: 768px){
  .sn-table thead{ display: none; }

  .sn-table,
  .sn-table tbody,
  .sn-table tr,
  .sn-table td{
    display: block;
    width: 100%;
  }

  .sn-table{
    border-radius: 16px;
  }

  .sn-table tr{
    border-bottom: 1px solid var(--sn-line);
    padding: 10px 12px;
  }

  .sn-table tr:last-child{
    border-bottom: 0;
  }

  .sn-table td{
    border: 0;
    padding: 6px 0;
  }

  /* labels via data-label="" no td (recomendado) */
  .sn-table td::before{
    content: attr(data-label);
    display: block;
    font-size: 12px;
    font-weight: 900;
    color: rgba(14,27,34,.60);
    margin-bottom: 2px;
  }

  .sn-table td:nth-child(3),
  .sn-table td:nth-child(4){
    text-align: left;
    white-space: normal;
  }
}
