/* CIESP 2026-08-20 (v2, noite) — modernização visual dos formulários de autocadastro
   (front/autocadastro/cadastro-user2.php e cadastro-empresa.php).
   Só aparência: NÃO altera máscaras, select2, modal, validação ou JS de CNPJ/CPF.
   Novidades v2: hero verde com stepper, card flutuante sobreposto, campos em
   coluna única (rótulo acima do campo), controles e botões refinados.
   Backups: /var/backups/autocadastro-modern-20260820/ */

:root {
  --ci-verde:#0c9239; --ci-verde-esc:#0a6e2b; --ci-verde-2:#12a83f;
  --ci-verde-light:#f0faf2; --ci-txt:#111827; --ci-muted:#6b7280;
  --ci-border:#e5e7eb; --ci-erro:#b02a37; --ci-ambar:#997404;
}

body.vertical-layout {
  background:#eef7f0;
  background-image:
    radial-gradient(circle at 0% 100%, rgba(12,146,57,.10) 0, rgba(12,146,57,0) 40%),
    radial-gradient(circle at 100% 0%, rgba(12,146,57,.08) 0, rgba(12,146,57,0) 42%);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  color:var(--ci-txt); min-height:100vh;
}
.page-wrapper { padding:28px 14px 56px; }
.page-body.container-fluid,
.page-body.container-fluid.col-md-7 { width:100%; max-width:680px; margin:0 auto; padding:0; flex:none; }
#page.legacy { animation:ci-up .5s ease both; }
@keyframes ci-up { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }

/* ===== HERO ===== */
.ci-hero {
  position:relative; overflow:hidden; border-radius:20px;
  background:linear-gradient(135deg, var(--ci-verde) 0%, var(--ci-verde-esc) 100%);
  color:#fff; padding:24px 26px 60px;
  box-shadow:0 18px 40px rgba(12,146,57,.28);
}
.ci-hero::after {
  content:""; position:absolute; right:-60px; top:-70px; width:240px; height:240px;
  background:radial-gradient(circle, rgba(255,255,255,.16) 0, rgba(255,255,255,0) 70%);
}
.ci-hero-top { display:flex; align-items:center; justify-content:space-between; gap:12px; position:relative; z-index:1; }
.ci-hero-logo { display:inline-flex; align-items:center; justify-content:center; background:#fff; border-radius:12px; padding:8px 12px; box-shadow:0 4px 12px rgba(0,0,0,.12); }
.ci-hero-logo img { height:34px; width:auto; display:block; }
.ci-hero-back { color:#eafff0 !important; font-weight:600; font-size:.85rem; text-decoration:none !important; display:inline-flex; align-items:center; gap:6px; padding:8px 12px; border-radius:10px; background:rgba(255,255,255,.14); transition:background .2s; }
.ci-hero-back:hover { background:rgba(255,255,255,.26); }
.ci-hero-body { position:relative; z-index:1; margin-top:18px; }
.ci-hero-eyebrow { font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; opacity:.9; font-weight:600; display:flex; align-items:center; gap:8px; }
.ci-hero-eyebrow i { font-size:1rem; }
.ci-hero h1 { margin:6px 0 4px; font-size:1.7rem; font-weight:800; letter-spacing:-.02em; }
.ci-hero .ci-hero-sub { margin:0; font-size:.92rem; opacity:.92; }
/* stepper */
.ci-steps { position:relative; z-index:1; display:flex; gap:8px; margin-top:20px; flex-wrap:wrap; }
.ci-step { display:flex; align-items:center; gap:8px; font-size:.8rem; font-weight:600; padding:7px 12px; border-radius:999px; background:rgba(255,255,255,.14); color:#eafff0; }
.ci-step .n { width:20px; height:20px; border-radius:50%; background:rgba(255,255,255,.25); display:inline-flex; align-items:center; justify-content:center; font-size:.72rem; }
.ci-step.done { background:rgba(255,255,255,.22); }
.ci-step.done .n { background:#eafff0; color:var(--ci-verde-esc); }
.ci-step.active { background:#fff; color:var(--ci-verde-esc); box-shadow:0 6px 16px rgba(0,0,0,.14); }
.ci-step.active .n { background:var(--ci-verde); color:#fff; }

/* ===== CARD (sobrepõe o hero) ===== */
#page.legacy > .d-flex.flex-column { margin-top:-40px; position:relative; z-index:2; }
.tab-content.card, .card-tabs .card {
  min-width:0 !important; border:1px solid rgba(12,146,57,.12) !important; border-radius:18px !important;
  box-shadow:0 12px 34px rgba(17,24,39,.10), 0 1px 3px rgba(0,0,0,.04) !important;
  background:#fff; padding:26px 30px 20px !important;
}
/* cabeçalho interno do card vira rótulo de seção discreto */
.card-header.main-header { border:0; background:transparent; padding:0 0 .85rem; margin:0 0 1.1rem !important; border-bottom:1px solid var(--ci-border); }
.card-header.main-header .card-title { font-weight:700; font-size:1.02rem; color:var(--ci-txt); padding-left:0 !important; }
.card-header.main-header .ribbon { position:static; background:var(--ci-verde-light) !important; color:var(--ci-verde); border-radius:11px; width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; margin-right:12px; box-shadow:none; }
.card-header.main-header .ribbon i { font-size:20px; }

/* ===== CAMPOS: tabela legada → coluna única, rótulo acima ===== */
table.tab_cadre_fixe, table.tab_cadre_fixe tbody, table.tab_cadre_fixe tr, table.tab_cadre_fixe td {
  display:block; width:100%; border:0; background:transparent !important;
}
table.tab_cadre_fixe { border-spacing:0; }
table.tab_cadre_fixe tr { margin-bottom:2px; }
table.tab_cadre_fixe td { padding:3px 0; vertical-align:top; }
table.tab_cadre_fixe td[rowspan], table.tab_cadre_fixe td:empty { display:none; }
table.tab_cadre_fixe td.d-flex { display:flex !important; align-items:center; gap:8px; }
table.tab_cadre_fixe td label {
  font-size:.74rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ci-muted);
  font-weight:700; display:block; padding:14px 0 5px; white-space:normal;
}
table.tab_cadre_fixe .form-control, .modal .form-control {
  height:48px; width:100%; border:1.5px solid var(--ci-border); border-radius:12px;
  font-size:.95rem; padding:0 14px; background:#fff; min-width:0; transition:border-color .18s, box-shadow .18s;
}
table.tab_cadre_fixe .form-control::placeholder { color:#9ca3af; }
table.tab_cadre_fixe .form-control:focus, .modal .form-control:focus {
  border-color:var(--ci-verde); box-shadow:0 0 0 4px rgba(12,146,57,.12); outline:none;
}
table.tab_cadre_fixe .form-control.is-valid { border-color:var(--ci-verde); }
table.tab_cadre_fixe .form-control.is-invalid { border-color:var(--ci-erro); }

/* select2 alinhado aos inputs */
.select2-container { width:100% !important; }
.select2-container .select2-selection--single { height:48px !important; border:1.5px solid var(--ci-border) !important; border-radius:12px !important; }
.select2-container .select2-selection--single .select2-selection__rendered { line-height:46px !important; padding-left:14px !important; color:var(--ci-txt); }
.select2-container .select2-selection--single .select2-selection__arrow { height:46px !important; }
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single { border-color:var(--ci-verde) !important; box-shadow:0 0 0 4px rgba(12,146,57,.12); }
.select2-dropdown { border:1.5px solid var(--ci-verde) !important; border-radius:12px !important; overflow:hidden; }
.select2-results__option--highlighted { background:var(--ci-verde) !important; }
td.d-flex .btn { height:48px; border-radius:12px; border:1.5px solid var(--ci-border); color:var(--ci-verde); background:#fff; flex:0 0 auto; }
td.d-flex .btn:hover { border-color:var(--ci-verde); background:var(--ci-verde-light); }

/* mensagens de status (CPF/CNPJ) e validação */
.invalid-feedback { font-size:.78rem; }
.ci-cpf-status, .ci-cnpj-status { font-weight:600; }

/* rodapé: declaração + barra de ações */
.card-body.mx-n2 { margin:0 !important; padding:1rem 0 .25rem; }
.card-body.mx-n2 label { font-size:.86rem; color:var(--ci-muted); }
.card-body.border-top { border-top:1px solid var(--ci-border) !important; margin-top:.75rem !important; padding-top:1rem !important; gap:10px; }
.btn-primary { background:var(--ci-verde) !important; border-color:var(--ci-verde) !important; border-radius:12px; height:48px; padding:0 24px; font-weight:700; box-shadow:0 8px 20px rgba(12,146,57,.24); transition:transform .12s, background .2s, box-shadow .2s; }
.btn-primary:hover { background:var(--ci-verde-esc) !important; border-color:var(--ci-verde-esc) !important; transform:translateY(-1px); box-shadow:0 10px 26px rgba(12,146,57,.30); }
.btn-primary:active { transform:translateY(0); }
.btn-danger { background:#fff !important; border:1.5px solid var(--ci-border) !important; color:var(--ci-muted) !important; border-radius:12px; height:48px; padding:0 20px; font-weight:600; }
.btn-danger:hover { border-color:var(--ci-erro) !important; color:var(--ci-erro) !important; }

/* modal "Nova cidade" */
.modal-content { border-radius:18px; border:0; box-shadow:0 24px 60px rgba(17,24,39,.22); }
.modal-header { border:0; padding:1.25rem 1.5rem 0; }
.modal-header .card-header.main-header { width:100%; }
.modal-body { padding:1rem 1.5rem 1.5rem; }

/* destaque de campo recém-preenchido (fluxo do "+") */
.ci-flash td { animation:ci-flash 2.5s ease; }
@keyframes ci-flash { 0%{background:#d7f5df} 100%{background:transparent} }

/* ===== responsivo ===== */
@media (max-width:560px) {
  .page-wrapper { padding:16px 10px 40px; }
  .ci-hero { padding:20px 18px 56px; border-radius:16px; }
  .ci-hero h1 { font-size:1.4rem; }
  .tab-content.card, .card-tabs .card { padding:20px 18px 16px !important; border-radius:14px !important; }
  .card-body.border-top { flex-direction:column; }
  .card-body.border-top .btn { width:100%; margin:0 !important; }
}

/* CIESP 2026-08-21: guard de envio — select2 inválido + caixa de erros */
.ci-s2-invalid .select2-selection{border-color:#d63939!important;box-shadow:0 0 0 .2rem rgba(214,57,57,.15)}
.ci-form-erros{margin:0 8px 12px;font-size:.9rem}
.ci-form-erros ul{padding-left:1.2em}
.was-validated #declaracao:invalid + label{color:#d63939}
