:root{
  --sidebar-w: 286px;

  --bg: #eceff1;
  --bg-top: #f6f7f8;
  --bg-bottom: #e4e7ea;

  --surface: #ffffff;
  --surface-soft: #f4f6f7;
  --surface-muted: #eceff1;
  --surface-strong: #e1e5e8;

  --text: #2f363d;
  --text-soft: #6f7781;
  --title: #363c43;

  --border: #d8dde1;
  --border-soft: #e7ebee;
  --border-strong: #c8cfd6;

  --primary: #555d66;
  --primary-hover: #3f464d;
  --primary-soft: #edf0f2;
  --primary-soft-2: #e2e6ea;

  --success: #16a34a;
  --success-soft: #eaf8ef;

  --warning: #f59e0b;
  --warning-soft: #fff6e6;

  --danger: #dc2626;
  --danger-soft: #fff0f0;

  --dark-soft: #6a727c;

  --sidebar-bg: linear-gradient(180deg, #f8f9fa 0%, #eceff2 100%);
  --sidebar-border: #d7dde3;
  --sidebar-text: #58616b;
  --sidebar-text-active: #31373d;
  --sidebar-active-bg: linear-gradient(180deg, #eceff2 0%, #e2e6ea 100%);

  --shadow-xs: 0 1px 2px rgba(24, 24, 27, 0.05);
  --shadow-sm: 0 10px 24px rgba(24, 24, 27, 0.07);
  --shadow-md: 0 16px 38px rgba(24, 24, 27, 0.10);
  --shadow-lg: 0 24px 60px rgba(24, 24, 27, 0.12);

  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 18px;
  --radius-xl: 24px;
  --radius-2xl: 28px;
}

*{
  box-sizing: border-box;
}

html, body{
  margin: 0;
  padding: 0;
}

body{
  background: linear-gradient(180deg, var(--bg-top) 0%, var(--bg-bottom) 100%);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--text);
  font-size: 0.95rem;
  line-height: 1.45;
}

/* ========= TIPOGRAFIA ========= */
h1, h2, h3, h4, h5, h6,
.page-title,
.section-title,
.card-title,
.modal-title,
label,
th,
thead th{
  color: var(--title) !important;
}

h1, .page-title{
  font-size: 1.95rem;
  font-weight: 800;
  letter-spacing: -.03em;
  margin: 0;
}

h2, .section-title{
  font-size: 1.25rem;
  font-weight: 800;
  margin: 0 0 12px 0;
}

h3{
  font-size: 1.05rem;
  font-weight: 800;
}

small,
.text-muted,
.form-text,
.helper-text{
  color: var(--text-soft) !important;
}

a{
  text-decoration: none;
  color: inherit;
}

/* ========= BASE DE CONTEÚDO ========= */
.main-content{
  margin-left: var(--sidebar-w);
  padding: 28px;
  min-height: 100vh;
  transition: margin-left .25s ease;
}

.page-shell{
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.top-bar{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  margin-bottom: 6px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}

.top-bar-clean{
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 0;
  justify-content: flex-start;
}

.page-subtitle{
  color: var(--text-soft);
  margin-top: 4px;
  font-size: 0.92rem;
}

/* ========= SIDEBAR ========= */
.sidebar{
  width: var(--sidebar-w);
  min-height: 100vh;
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  background: var(--sidebar-bg);
  border-right: 1px solid var(--sidebar-border);
  box-shadow: var(--shadow-sm);
  overflow-x: hidden;
}

.sidebar-header{
  padding: 20px 18px 18px;
  border-bottom: 1px solid var(--sidebar-border);
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(12px);
}

.sidebar-head-top{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.brand-mini{
  font-size: 0.68rem;
  letter-spacing: .08em;
  font-weight: 600;
  color: var(--primary);
  text-transform: none;
  line-height: 1;
  margin-bottom: 6px;
}

.brand-main{
  margin: 0;
  font-weight: 700;
  color: var(--title);
  font-size: 1.38rem;
  letter-spacing: 0;
  line-height: 1.05;
}

.btn-collapse-sidebar{
  width: 40px;
  height: 40px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: .2s ease;
  box-shadow: var(--shadow-xs);
}

.btn-collapse-sidebar:hover{
  background: var(--primary-soft);
  border-color: var(--border-strong);
  color: var(--primary);
  transform: translateY(-1px);
}

.user-info{
  margin-top: 14px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: var(--shadow-xs);
}

.user-info .badge{
  background: var(--primary-soft) !important;
  color: var(--primary) !important;
  border: 1px solid #cfe0ff;
  font-weight: 800;
  padding: 6px 10px;
  border-radius: 999px;
}


.sidebar-user-clean{
  margin: 10px 12px 14px;
  padding: 12px 12px;
  border-top: 1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.sidebar-user-clean__name{
  flex:1;
  min-width:0;
  font-size: .82rem;
  font-weight: 800;
  color: var(--title);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-transform: none;
}

.sidebar-user-clean__logout{
  width: 38px;
  height: 38px;
  border: 1px solid #f2caca;
  background: #fff5f5;
  color: #b91c1c;
  border-radius: 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex: 0 0 38px;
  transition: .2s ease;
}

.sidebar-user-clean__logout:hover{
  background:#fee2e2;
  border-color:#efb1b1;
  color:#991b1b;
}

.sidebar nav{
  padding: 12px 10px 18px;
}

.nav-item{
  margin-bottom: 4px;
}

.nav-link{
  color: var(--sidebar-text);
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid transparent;
  transition: .2s ease;
  font-size: 0.93rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  margin-bottom: 4px;
  position: relative;
}

.nav-link i{
  width: 24px;
  margin-right: 12px;
  text-align: center;
  font-size: 1rem;
}

.nav-link:hover{
  background: #f3f8ff;
  color: var(--sidebar-text-active);
  border-color: #e2ebf8;
}

.nav-link.active{
  color: var(--sidebar-text-active);
  background: var(--sidebar-active-bg);
  border-color: #cfe0ff;
  box-shadow: inset 0 0 0 1px rgba(37,99,235,.04);
}

.nav-link.text-danger{
  color: #c62828 !important;
}

.nav-link.text-danger:hover{
  background: #fff3f3 !important;
  border-color: #ffd9d9 !important;
  color: #b91c1c !important;
}

.submenu{
  display: none;
  margin: 4px 0 10px;
  padding: 6px;
  background: linear-gradient(180deg, #fbfdff 0%, #f4f8fd 100%) !important;
  border: 1px solid #e2ebf7;
  border-radius: 18px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

.submenu .nav-link{
  padding-top: 10px;
  padding-bottom: 10px;
  padding-left: 16px !important;
  font-size: 0.84rem !important;
  border-radius: 12px;
  font-weight: 700;
}

.submenu .nav-link:hover{
  background: #f1f1f3 !important;
  border-color: transparent !important;
}

.fa-chevron-down{
  transition: transform .25s ease;
}

/* ========= CARDS / PAINÉIS ========= */
.card,
.box,
.panel,
.dashboard-card,
.metric-card,
.filters-panel,
.table-panel,
.form-panel,
.modal-content{
  background: rgba(255,255,255,.98);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}

.card,
.box,
.panel,
.dashboard-card,
.metric-card,
.filters-panel,
.table-panel,
.form-panel{
  padding: 18px;
}

.card-header-clean{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.card-title{
  font-size: 1rem;
  font-weight: 800;
  margin: 0;
}

.card-subtitle{
  color: var(--text-soft);
  font-size: 0.86rem;
  margin-top: 4px;
}

.card-soft{
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

/* ========= DASHBOARD ========= */
.dashboard-grid{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.metric-card{
  position: relative;
  overflow: hidden;
  min-height: 122px;
}

.metric-card::after{
  content: "";
  position: absolute;
  right: -18px;
  top: -18px;
  width: 84px;
  height: 84px;
  border-radius: 50%;
  background: rgba(37,99,235,.06);
}

.metric-card__label{
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text-soft);
  margin-bottom: 10px;
}

.metric-card__value{
  font-size: 2rem;
  line-height: 1;
  font-weight: 800;
  color: var(--title);
  margin-bottom: 8px;
}

.metric-card__meta{
  font-size: 0.85rem;
  color: var(--text-soft);
}

.metric-card.primary{
  background: linear-gradient(180deg, #ffffff 0%, var(--surface-soft) 100%);
  border-color: #d7e4ff;
}

.metric-card.success{
  background: linear-gradient(180deg, #ffffff 0%, #f2fcf5 100%);
  border-color: #d8f0df;
}

.metric-card.warning{
  background: linear-gradient(180deg, #ffffff 0%, #fffaf0 100%);
  border-color: #f6e4ba;
}

.metric-card.danger{
  background: linear-gradient(180deg, #ffffff 0%, #fff4f4 100%);
  border-color: #f1d3d3;
}

.col-span-3{ grid-column: span 3; }
.col-span-4{ grid-column: span 4; }
.col-span-5{ grid-column: span 5; }
.col-span-6{ grid-column: span 6; }
.col-span-7{ grid-column: span 7; }
.col-span-8{ grid-column: span 8; }
.col-span-12{ grid-column: span 12; }

/* ========= FILTROS ========= */
.filters-panel{
  padding: 18px;
}

.filters-grid{
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.filter-col-2{ grid-column: span 2; }
.filter-col-3{ grid-column: span 3; }
.filter-col-4{ grid-column: span 4; }
.filter-col-6{ grid-column: span 6; }
.filter-col-12{ grid-column: span 12; }

.filters-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

/* ========= FORMULÁRIOS ========= */
label{
  font-weight: 700;
  font-size: 0.83rem;
  margin-bottom: 6px;
  display: inline-block;
}

.form-control,
.form-select,
textarea.form-control{
  background: #fff;
  border: 1px solid var(--border-strong);
  border-radius: 14px;
  padding: 11px 14px;
  color: var(--text);
  min-height: 44px;
  box-shadow: none;
  transition: .18s ease;
}

textarea.form-control{
  min-height: 110px;
  resize: vertical;
}

.form-control::placeholder{
  color: #8c98ab;
}

.form-control:hover,
.form-select:hover{
  border-color: #b9cbe2;
}

.form-control:focus,
.form-select:focus{
  border-color: #8fb3ff;
  box-shadow: 0 0 0 4px rgba(37,99,235,.10);
  background: #fff;
}

.form-panel .row,
.form-grid{
  row-gap: 12px;
}

.input-group-text{
  border: 1px solid var(--border-strong);
  background: var(--surface-soft);
  color: var(--text-soft);
  border-radius: 14px;
}

/* ========= BOTÕES ========= */
.btn{
  border-radius: 14px;
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0;
  padding: 10px 16px;
  transition: .18s ease;
  text-transform: none;
}

.btn-black,
.btn-primary-premium{
  background: var(--primary);
  color: #fff;
  border: 1px solid #27272a;
  box-shadow: 0 10px 24px rgba(39,39,42,.18);
}

.btn-black:hover,
.btn-primary-premium:hover{
  background: linear-gradient(180deg, #27272a 0%, #18181b 100%);
  color: #fff;
  border-color: #18181b;
  transform: translateY(-1px);
}

.btn-outline-black,
.btn-light-premium{
  background: #fff;
  color: var(--title);
  border: 1px solid var(--border-strong);
}

.btn-outline-black:hover,
.btn-light-premium:hover{
  background: var(--primary-soft);
  color: var(--primary);
  border-color: #bdbdc6;
}

.btn-success-premium{
  background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%);
  color: #fff;
  border: 1px solid #16a34a;
  box-shadow: 0 10px 22px rgba(22,163,74,.16);
}

.btn-success-premium:hover{
  color: #fff;
  transform: translateY(-1px);
}

.btn-danger-premium{
  background: linear-gradient(180deg, #ef4444 0%, #dc2626 100%);
  color: #fff;
  border: 1px solid #dc2626;
  box-shadow: 0 10px 22px rgba(220,38,38,.16);
}

.btn-danger-premium:hover{
  color: #fff;
  transform: translateY(-1px);
}

.btn-icon{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.btn-sm-premium{
  padding: 8px 12px;
  font-size: 0.8rem;
  border-radius: 12px;
}

/* ========= TABELAS ========= */
.table-panel{
  padding: 0;
  overflow: hidden;
}

.table-titanium{
  width: 100%;
  background: #fff;
  border-collapse: separate;
  border-spacing: 0;
}

.table-titanium thead th{
  background: linear-gradient(180deg, #f2f7fd 0%, #edf3fa 100%);
  color: var(--title) !important;
  text-transform: uppercase;
  font-size: 0.73rem;
  font-weight: 800;
  padding: 14px 16px;
  letter-spacing: .05em;
  border-bottom: 1px solid var(--border);
}

.table-titanium tbody td{
  padding: 14px 16px;
  border-bottom: 1px solid #edf2f8;
  vertical-align: middle;
  color: var(--text);
}

.table-titanium tbody tr:last-child td{
  border-bottom: none;
}

.table-titanium tbody tr:hover{
  background: #f9fbff;
}

.table-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.table-empty{
  padding: 28px 20px;
  text-align: center;
  color: var(--text-soft);
}

/* ========= BADGES / STATUS ========= */
.status-badge,
.badge-soft{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  border-radius: 999px;
  letter-spacing: .03em;
}

.status-badge{
  border: 1px solid #d8e3f1;
  background: #f7faff;
  color: var(--text);
}

.badge-primary-soft{
  border: 1px solid #c8dbff;
  background: #f1f1f3;
  color: var(--primary);
}

.badge-success-soft{
  border: 1px solid #cdecd6;
  background: #edf9f1;
  color: var(--success);
}

.badge-warning-soft{
  border: 1px solid #f5e1b3;
  background: #fff7e8;
  color: #b7791f;
}

.badge-danger-soft{
  border: 1px solid #f0cccc;
  background: #fff1f1;
  color: var(--danger);
}

/* ========= MODAIS / POPUPS ========= */
.modal-content{
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}

.modal-header{
  border-bottom: 1px solid var(--border-soft);
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  padding: 16px 18px;
}

.modal-body{
  padding: 18px;
  background: #fff;
}

.modal-footer{
  border-top: 1px solid var(--border-soft);
  background: #fcfdff;
  padding: 14px 18px;
}

.modal-title{
  font-weight: 800;
  font-size: 1rem;
}

.alert-premium{
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 14px 16px;
  background: var(--surface-soft);
}

.alert-premium.success{
  background: var(--success-soft);
  border-color: #cdecd6;
}

.alert-premium.warning{
  background: var(--warning-soft);
  border-color: #f2e0b5;
}

.alert-premium.danger{
  background: var(--danger-soft);
  border-color: #f0cccc;
}

/* ========= LOGIN PREMIUM ========= */
.login-page{
  min-height: 100vh;
  background:
    radial-gradient(circle at top right, rgba(37,99,235,.10), transparent 26%),
    radial-gradient(circle at bottom left, rgba(37,99,235,.08), transparent 22%),
    linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.login-shell{
  width: 100%;
  max-width: 1100px;
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 22px;
  align-items: stretch;
}

.login-brand-panel,
.login-form-panel{
  background: rgba(255,255,255,.95);
  border: 1px solid var(--border);
  border-radius: 28px;
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}

.login-brand-panel{
  position: relative;
  padding: 36px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(244,248,255,.98) 100%);
}

.login-brand-panel::after{
  content: "";
  position: absolute;
  width: 280px;
  height: 280px;
  right: -90px;
  top: -90px;
  border-radius: 50%;
  background: rgba(37,99,235,.08);
}

.login-brand-mini{
  font-size: 0.75rem;
  letter-spacing: 4px;
  text-transform: uppercase;
  font-weight: 800;
  color: var(--primary);
  margin-bottom: 10px;
}

.login-brand-title{
  font-size: 2.4rem;
  font-weight: 800;
  color: var(--title);
  line-height: 1.04;
  margin-bottom: 12px;
}

.login-brand-text{
  max-width: 420px;
  font-size: 1rem;
  color: var(--text-soft);
}

.login-feature-list{
  margin-top: 28px;
  display: grid;
  gap: 12px;
}

.login-feature{
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: rgba(255,255,255,.7);
  border: 1px solid var(--border);
  border-radius: 18px;
}

.login-feature__icon{
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--primary-soft);
  color: var(--primary);
  font-size: 1rem;
  flex-shrink: 0;
}

.login-feature__title{
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--title);
  margin-bottom: 3px;
}

.login-feature__desc{
  font-size: 0.84rem;
  color: var(--text-soft);
}

.login-form-panel{
  padding: 36px 30px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.login-form-head{
  margin-bottom: 20px;
}

.login-form-title{
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--title);
  margin-bottom: 6px;
}

.login-form-subtitle{
  color: var(--text-soft);
  font-size: 0.92rem;
}

.login-logo-badge{
  width: 58px;
  height: 58px;
  border-radius: 18px;
  background: var(--primary);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  box-shadow: 0 14px 30px rgba(37,99,235,.20);
  margin-bottom: 16px;
}

.login-form-panel .form-control{
  min-height: 48px;
}

.login-form-panel .btn{
  min-height: 48px;
}

/* ========= LISTA PESSOAS ========= */
.people-grid{
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 360px){
  .people-grid{ grid-template-columns: 1fr; }
}

@media (min-width: 768px){
  .people-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1200px){
  .people-grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.person-card{
  position: relative;
  display: block;
  border-radius: 22px;
  overflow: hidden;
  background: #eef4fb;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-md);
  color: inherit;
  aspect-ratio: 3 / 4;
}

.person-card__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.person-card__overlay{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 12px;
  background: linear-gradient(to top, rgba(15,23,42,.86), rgba(15,23,42,.20), rgba(15,23,42,0));
  color: #fff;
}

.person-card__name{
  font-weight: 800;
  font-size: .95rem;
  line-height: 1.15;
}

.person-card__vulgo{
  margin-top: 4px;
  font-size: .78rem;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  opacity: .98;
}

.person-card__vulgo .label,
.person-card__vulgo .value{
  font-weight: 700;
}

/* ========= FLAGS FOTO ========= */
.coru-photo-wrap{ position:relative; display:inline-block; }
.coru-flags{ position:absolute; top:10px; left:10px; display:flex; gap:8px; z-index:5; }
.coru-flags--perfil{ top:12px; left:12px; }

.coru-flag{
  width:34px;
  height:34px;
  border-radius:50%;
  background: rgba(15,23,42,.88);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid rgba(255,255,255,.92);
  box-shadow:0 6px 14px rgba(15,23,42,.22);
}

.coru-flag i{ font-size:14px; }
.coru-photo-pb{ filter: grayscale(100%); }
.coru-blink{ animation: coruBlink 1.05s infinite; }

@keyframes coruBlink{
  0%,100%{ transform:scale(1); opacity:1; }
  50%{ transform:scale(1.08); opacity:.35; }
}

/* ========= TEIA ========= */
.teia-card{
  display:block;
  background:#fff;
  border:1px solid var(--border);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}

.teia-thumb{
  width:100%;
  height:110px;
  object-fit:cover;
  display:block;
  background:#f1f6fb;
}

.teia-thumb-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:28px;
  color:#64748b;
}

.teia-meta{
  padding:10px;
}

.teia-name{
  font-weight:800;
  font-size:12px;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-transform:uppercase;
  color: var(--title);
}

.teia-badges{
  margin-top:6px;
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}

.teia-obs{
  margin-top:6px;
  font-size:11px;
  color:var(--text-soft);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-transform:uppercase;
}

/* ========= ABAS ========= */
.perfil-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
  border-bottom:1px solid var(--border);
  padding-bottom:10px;
  margin-bottom:14px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

.tab-btn{
  flex:0 0 auto;
  background:#fff;
  border:1px solid var(--border-strong);
  color:var(--title);
  padding:8px 12px;
  cursor:pointer;
  border-radius:12px;
  font-size:12px;
  line-height:1.1;
  white-space:nowrap;
  font-weight:800;
  transition:.15s ease-in-out;
}

.tab-btn:hover{
  background:var(--primary-soft);
}

.tab-btn.active{
  background: var(--primary);
  border-color: #27272a;
  color:#fff;
}

.tab-content{
  display:none !important;
  background:transparent;
  padding:10px 6px;
  border-radius:12px;
}

.tab-content.active{
  display:block !important;
}

/* ========= GALERIA ========= */
.galeria-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:10px;
}

@media (min-width: 768px){
  .galeria-grid{ grid-template-columns: repeat(4, 1fr); }
}

@media (min-width: 1200px){
  .galeria-grid{ grid-template-columns: repeat(6, 1fr); }
}

.galeria-item{
  border: 1px solid var(--border);
  background: #fff;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  cursor: pointer;
  border-radius: 16px !important;
  box-shadow: var(--shadow-xs);
}

.galeria-item img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.perfil-galeria-flex{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.perfil-galeria-item{
  width: calc(50% - 10px);
  height: 100px;
  border: 1px solid var(--border);
  background:#fff;
  overflow:hidden;
  border-radius:16px !important;
  cursor:pointer;
  box-shadow: var(--shadow-xs);
}

@media (min-width: 768px){
  .perfil-galeria-item{ width: calc(16.666% - 10px); }
}

.perfil-galeria-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* ========= FOTO STICKY ========= */
@media (min-width: 768px){
  .foto-sticky{
    position: sticky;
    top: 90px;
    z-index: 10;
  }
}

/* ========= SWITCH ========= */
.form-check-input{
  background-color: #fff;
  border-color: #b9c7d8;
}

.form-check-input:focus{
  border-color: #90b4ff;
  box-shadow: 0 0 0 4px rgba(37,99,235,.10);
}

.form-check-input:checked{
  background-color: var(--primary);
  border-color: var(--primary);
}

/* ========= LOGIN / MENU RESPONSIVO ========= */
body.menu-open{ overflow: hidden; }

@media (min-width: 992px){
  .sidebar{
    transition: width .25s ease;
  }

  .main-content{
    transition: margin-left .25s ease;
  }

  body.sidebar-collapsed .sidebar{
    width: 92px;
  }

  body.sidebar-collapsed .main-content{
    margin-left: 92px;
  }

  body.sidebar-collapsed .sidebar-header{
    padding-left: 10px;
    padding-right: 10px;
  }

  body.sidebar-collapsed .brand-text,
  body.sidebar-collapsed .user-info,
  body.sidebar-collapsed .sidebar-user-clean__name,
  body.sidebar-collapsed .submenu,
  body.sidebar-collapsed .fa-chevron-down,
  body.sidebar-collapsed .menu-text{
    display: none !important;
  }

  body.sidebar-collapsed .sidebar-head-top{
    justify-content: center;
  }

  body.sidebar-collapsed .nav-link{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding-left:.85rem !important;
    padding-right:.85rem !important;
    white-space:nowrap;
  }

  body.sidebar-collapsed .nav-link i{
    margin-right:0 !important;
  }


  body.sidebar-collapsed .sidebar-user-clean{
    justify-content:center;
    padding-left:0;
    padding-right:0;
    margin-left:8px;
    margin-right:8px;
  }

  body.sidebar-collapsed .sidebar-user-clean__logout{
    width:42px;
    height:42px;
    flex-basis:42px;
  }

  body.sidebar-collapsed .nav-link[title]:hover::after{
    content: attr(title);
    position: absolute;
    left: calc(100% + 10px);
    top: 50%;
    transform: translateY(-50%);
    background: #0f172a;
    color: #fff;
    padding: 8px 10px;
    border-radius: 10px;
    font-size: .75rem;
    box-shadow: var(--shadow-lg);
    z-index: 3000;
    pointer-events: none;
  }
}

@media (max-width: 991px){
  .sidebar{
    left: 0 !important;
    width: 84vw !important;
    max-width: 330px !important;
    transform: translateX(-110%);
    transition: transform .22s ease;
  }

  .sidebar.show{
    transform: translateX(0);
  }

  .overlay{
    display:none;
    position:fixed;
    inset:0;
    background: rgba(15,23,42,.42);
    backdrop-filter: blur(2px);
    z-index:900;
  }

  .overlay.show{ display:block; }

  .main-content{
    margin-left:0 !important;
    padding:16px !important;
  }

  .top-bar{
    flex-direction:column;
    align-items:flex-start;
  }

  .page-title{
    font-size:1.45rem;
  }

  .dashboard-grid,
  .filters-grid{
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .col-span-3,
  .col-span-4,
  .col-span-5,
  .col-span-6,
  .col-span-7,
  .col-span-8,
  .col-span-12,
  .filter-col-2,
  .filter-col-3,
  .filter-col-4,
  .filter-col-6,
  .filter-col-12{
    grid-column: span 1;
  }

  .login-shell{
    grid-template-columns: 1fr;
  }

  .login-brand-panel{
    display: none;
  }
}
/* ========= CAMADA PREMIUM DE COMPATIBILIDADE ========= */
body{background-attachment:fixed;}
.container-fluid, .container{max-width: 100%;}

.bg-white.border.shadow-sm,
.bg-white.p-4.border.shadow-sm,
.bg-white.p-5.border.shadow-sm,
.bg-white.p-3.shadow-sm.border,
.bg-white.p-4.shadow-sm.border,
.bg-white.border.shadow-sm.mb-4,
.bg-white.border.shadow-sm.p-3.mb-3,
.card.border-0.shadow-sm,
.card.border.shadow-sm,
.table-responsive.bg-white.border.shadow-sm,
.bg-white.p-4.border,
.bg-light.border.p-3{
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-xl) !important;
  box-shadow: var(--shadow-sm) !important;
}

.card,
.table-responsive.bg-white.border.shadow-sm,
.bg-white.border.shadow-sm,
.bg-white.p-4.border.shadow-sm,
.bg-white.p-5.border.shadow-sm{
  overflow:hidden;
}

.premium-hero{
  background: linear-gradient(135deg, #ffffff 0%, #f5f9ff 58%, #edf4ff 100%) !important;
  border: 1px solid #d9e6fb !important;
  border-radius: 26px !important;
  box-shadow: var(--shadow-md) !important;
  padding: 22px !important;
}

.premium-dark-card{
  background: linear-gradient(135deg, #1e3a8a 0%, #27272a 100%) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 24px !important;
  box-shadow: 0 20px 42px rgba(37,99,235,.22) !important;
}

.premium-danger-card{
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 24px !important;
  box-shadow: 0 20px 42px rgba(220,38,38,.22) !important;
}

.bg-dark.text-white.p-4.d-flex.justify-content-between.align-items-center.shadow-sm,
.bg-danger.text-white.p-4.d-flex.justify-content-between.align-items-center.shadow-sm{
  border-radius: 24px !important;
  box-shadow: var(--shadow-md) !important;
  border: 0 !important;
}
.bg-dark.text-white.p-4.d-flex.justify-content-between.align-items-center.shadow-sm{
  background: linear-gradient(135deg, #1e3a8a 0%, #27272a 100%) !important;
}
.bg-danger.text-white.p-4.d-flex.justify-content-between.align-items-center.shadow-sm{
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%) !important;
}
.bg-dark.text-white.p-4.d-flex.justify-content-between.align-items-center.shadow-sm .text-white-50,
.bg-danger.text-white.p-4.d-flex.justify-content-between.align-items-center.shadow-sm .text-white-50{
  color: rgba(255,255,255,.78) !important;
}

.bg-light,
.table-light,
.card-header-black,
.bg-black{
  background: linear-gradient(180deg, #f4f8fd 0%, #edf3fb 100%) !important;
  color: var(--title) !important;
  border-color: var(--border) !important;
}
.bg-black.text-white,
.modal-header.bg-black.text-white,
.modal-header.bg-dark.text-white,
.card-header.card-header-black{
  background: linear-gradient(180deg, #f6faff 0%, #edf4ff 100%) !important;
  color: var(--title) !important;
}
.bg-black.text-white .btn-close,
.modal-header.bg-black.text-white .btn-close,
.modal-header.bg-dark.text-white .btn-close{
  filter:none !important;
}

.btn-dark{
  background: var(--primary) !important;
  border: 1px solid #27272a !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(39,39,42,.18);
  border-radius: 14px !important;
}
.btn-dark:hover{
  background: linear-gradient(180deg, #27272a 0%, #18181b 100%) !important;
  border-color: #18181b !important;
  color:#fff !important;
}
.btn.rounded-0,
.form-control.rounded-0,
.form-select.rounded-0,
.modal-content.rounded-0,
.modal-header.rounded-0{
  border-radius: 14px !important;
}
.modal-content.rounded-0{
  border-radius: 24px !important;
}

.alert{
  border-radius: 16px !important;
  border-width: 1px !important;
}
.alert-warning{ background:#fff7e8 !important; border-color:#f2dfb1 !important; color:#8a5a00 !important; }
.alert-danger{ background:#fff1f1 !important; border-color:#f0cccc !important; color:#b42318 !important; }
.alert-info{ background:#edf5ff !important; border-color:#cfe0ff !important; color:#18181b !important; }
.alert-success{ background:#edf9f1 !important; border-color:#cdecd6 !important; color:#15803d !important; }
.alert-dark{ background:#edf3fb !important; border-color:#d6e1ee !important; color:#243246 !important; }

.badge.text-bg-dark,
.badge.bg-dark{
  background: #edf4ff !important;
  color: var(--primary) !important;
  border: 1px solid #cfe0ff;
}

.table>thead{
  background: linear-gradient(180deg, #f4f8fd 0%, #edf3fb 100%) !important;
}
.table>thead th{
  color: var(--title) !important;
  font-size: .74rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 800;
  border-bottom-color: var(--border) !important;
}
.table td, .table th{ vertical-align: middle; }

.page-card{
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid var(--border);
  border-radius: 24px;
  box-shadow: var(--shadow-sm);
  padding: 20px;
}

.page-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom: 18px;
}
.page-heading__title{
  font-size: 1.45rem;
  font-weight: 800;
  color: var(--title);
  margin:0;
}
.page-heading__text{
  color: var(--text-soft);
  margin-top: 4px;
}

.form-section-title{
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  color: var(--text-soft) !important;
  margin-bottom: 6px;
}

.modal-fotos{
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%) !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
  border-radius: 24px !important;
  box-shadow: var(--shadow-lg) !important;
}
.modal-fotos-header,
.modal-fotos-footer{
  background: linear-gradient(180deg, #f6faff 0%, #edf4ff 100%) !important;
  border-color: var(--border) !important;
}
.modal-fotos-tabs{
  border-color: var(--border) !important;
}
.modal-fotos .tab-btn{
  background:#fff !important;
  color:var(--title) !important;
  border:1px solid var(--border-strong) !important;
}
.modal-fotos .tab-btn.active{
  background: var(--primary) !important;
  color:#fff !important;
  border-color:#27272a !important;
}
.cardx, .result-box{
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  box-shadow: var(--shadow-xs);
}
.result-item{
  background: #fff !important;
  border: 1px solid var(--border) !important;
}
.preview-img{
  border:1px solid var(--border) !important;
  box-shadow: var(--shadow-xs);
}
.badge-status{
  background:#edf4ff !important;
  color: var(--primary) !important;
  border:1px solid #cfe0ff;
}

#mapa{
  border: 1px solid var(--border) !important;
  border-radius: 22px !important;
}

.login-page .alert{ text-align:left; }

.vehicle-lookup-card .form-control-readonly{
  background: #f8fbff !important;
  border-color: var(--border) !important;
  color: var(--title) !important;
}

.form-shell{
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid var(--border);
  border-radius: 28px;
  box-shadow: var(--shadow-md);
  padding: 22px;
}

.photo-frame{
  background: linear-gradient(180deg, #f7faff 0%, #eff5fd 100%);
  border: 1px solid var(--border);
  border-radius: 22px;
  padding: 8px;
  box-shadow: var(--shadow-xs);
}

@media (max-width: 991px){
  .page-heading{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* PATCH: fonte única global + ícones preservados + modais em maiúsculo */
html, body,
body, input, textarea, select, button,
a, span, div, p, label, th, td, h1, h2, h3, h4, h5, h6,
small, strong, em, b, li, ul, ol {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
}

body{
  text-transform: none;
  letter-spacing: 0.02em;
}

input, textarea, select, button,
.form-control, .form-select,
.card, .box, .panel, .dashboard-card, .metric-card,
.filters-panel, .table-panel, .form-panel,
.modal-content, .modal-header, .modal-title, .modal-body, .modal-footer,
.alert, .alert-premium,
.nav-link, .submenu .nav-link,
.table-titanium, .table-titanium th, .table-titanium td,
.btn, .page-title, .section-title, .card-title, .card-subtitle,
.login-page, .login-shell, .login-brand-panel, .login-form-panel,
.login-brand-title, .login-brand-text, .login-form-title, .login-form-subtitle {
  text-transform: none !important;
}

input::placeholder,
textarea::placeholder{
  text-transform: none !important;
}

/* NÃO sobrescrever a fonte dos ícones */
i, .fa, .fas, .far, .fal, .fab, .fa-solid, .fa-regular, .fa-brands,
[class^="fa-"], [class*=" fa-"]{
  font-family: var(--fa-style-family, "Font Awesome 6 Free") !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}

/* Mantém modais legíveis */
.modal *,
.modal-content *,
.modal-header *,
.modal-body *,
.modal-footer *{
  text-transform: none !important;
}

/* Mantém campos digitáveis legíveis sem afetar o valor digitado pelo usuário */
input, textarea{
  letter-spacing: 0.02em;
}


/* PATCH: paleta única para TODOS os botões e popups */
:root{
  --btn-primary-bg: linear-gradient(180deg, #3f3f46 0%, #27272a 100%);
  --btn-primary-border: #27272a;
  --btn-primary-hover: linear-gradient(180deg, #27272a 0%, #18181b 100%);
  --btn-primary-text: #ffffff;

  --btn-secondary-bg: #ffffff;
  --btn-secondary-border: #c7c7cf;
  --btn-secondary-text: #18181b;
  --btn-secondary-hover-bg: #f1f1f3;
  --btn-secondary-hover-border: #bdbdc6;
  --btn-secondary-hover-text: #27272a;
}

/* Base unificada */
.btn,
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
a.btn{
  border-radius: 14px !important;
  font-weight: 800 !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
  transition: .18s ease !important;
}

/* Primários */
.btn-black,
.btn-dark,
.btn-primary,
.btn-primary-premium,
.btn-success-premium,
.btn-danger-premium,
.modal .btn-primary,
.modal-footer .btn-primary,
.alert .btn-primary,
.swal2-confirm{
  background: var(--btn-primary-bg) !important;
  color: var(--btn-primary-text) !important;
  border: 1px solid var(--btn-primary-border) !important;
  box-shadow: 0 10px 24px rgba(39,39,42,.18) !important;
}

.btn-black:hover,
.btn-dark:hover,
.btn-primary:hover,
.btn-primary-premium:hover,
.btn-success-premium:hover,
.btn-danger-premium:hover,
.modal .btn-primary:hover,
.modal-footer .btn-primary:hover,
.alert .btn-primary:hover,
.swal2-confirm:hover{
  background: var(--btn-primary-hover) !important;
  color: #fff !important;
  border-color: #18181b !important;
  transform: translateY(-1px);
}

/* Secundários / outline */
.btn-outline-black,
.btn-outline-dark,
.btn-outline-secondary,
.btn-light-premium,
.btn-secondary,
.btn-light,
.modal .btn-secondary,
.modal-footer .btn-secondary,
.modal .btn-outline-dark,
.modal .btn-outline-secondary,
.swal2-cancel{
  background: var(--btn-secondary-bg) !important;
  color: var(--btn-secondary-text) !important;
  border: 1px solid var(--btn-secondary-border) !important;
  box-shadow: none !important;
}

.btn-outline-black:hover,
.btn-outline-dark:hover,
.btn-outline-secondary:hover,
.btn-light-premium:hover,
.btn-secondary:hover,
.btn-light:hover,
.modal .btn-secondary:hover,
.modal-footer .btn-secondary:hover,
.modal .btn-outline-dark:hover,
.modal .btn-outline-secondary:hover,
.swal2-cancel:hover{
  background: var(--btn-secondary-hover-bg) !important;
  color: var(--btn-secondary-hover-text) !important;
  border-color: var(--btn-secondary-hover-border) !important;
}

/* Botões pequenos, ícones e grupos */
.btn-sm,
.btn-sm-premium,
.btn-icon,
.table-actions .btn,
.modal .btn,
.modal-footer .btn{
  border-radius: 12px !important;
}

/* Remove cores divergentes em cabeçalhos com botão */
.card .btn-dark,
.card .btn-primary,
.card .btn-secondary,
.card .btn-outline-dark,
.card .btn-outline-secondary{
  text-transform: uppercase !important;
}

/* Fecha/close de popup não vira botão azul */
.btn-close{
  filter: none !important;
  box-shadow: none !important;
}

/* Links com aparência de botão */
a.btn-dark,
a.btn-primary,
a.btn-secondary,
a.btn-outline-dark,
a.btn-outline-secondary,
a.btn-black,
a.btn-outline-black{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

/* Bootstrap danger/warning/success viram paleta padrão para manter consistência */
.btn-danger,
.btn-warning,
.btn-success,
.btn-info{
  background: var(--btn-primary-bg) !important;
  color: #fff !important;
  border: 1px solid var(--btn-primary-border) !important;
}

.btn-danger:hover,
.btn-warning:hover,
.btn-success:hover,
.btn-info:hover{
  background: var(--btn-primary-hover) !important;
  color: #fff !important;
  border-color: #18181b !important;
}







/* ===== AJUSTE: interface leve + dados digitados em maiúsculo ===== */
body,
.sidebar,
.nav-link,
.submenu .nav-link,
.btn,
button,
.table,
.table th,
.table td,
.table-titanium,
.table-titanium th,
.table-titanium td,
.card-title,
.card-subtitle,
.page-title,
.page-subtitle,
.modal-title,
.modal-body,
.modal-footer,
.alert,
label,
p,
span,
div,
small {
  text-transform: none !important;
}

input:not([type="email"]):not([type="password"]):not([type="url"]),
textarea,
select,
.form-control:not([type="email"]):not([type="password"]):not([type="url"]),
.form-select {
  text-transform: uppercase !important;
}

input[type="email"],
input[type="password"],
input[type="url"] {
  text-transform: none !important;
}

input::placeholder,
textarea::placeholder {
  text-transform: none !important;
}


/* ========= CADASTRO PADRÃO GLOBAL ========= */
.cadastro-shell{
  gap: 18px;
}

.cadastro-page-card{
  padding: 0;
  overflow: hidden;
}

.cadastro-form{
  padding: 24px;
}

.cadastro-nome{
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--title);
  letter-spacing: -.01em;
}

.cadastro-page .perfil-tabs.perfil-tabs--center{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:14px;
  padding:0 0 14px;
  margin:0 0 18px;
  border-bottom:1px solid var(--border);
}

.cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn{
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 8px 0;
  min-height: auto;
  box-shadow: none;
  color: var(--text-soft);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1;
  position: relative;
}

.cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -15px;
  height: 2px;
  border-radius: 999px;
  background: transparent;
  transition: .18s ease;
}

.cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn:hover,
.cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn.active{
  color: var(--title);
  background: transparent;
  border-color: transparent;
}

.cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn.active::after{
  background: var(--primary);
}

.cadastro-page .tab-content{
  padding: 0;
  border-radius: 0;
}

.cadastro-page .cadastro-tab-panel{
  background: transparent;
  border: 0;
  padding: 0;
  margin-top: 0;
  box-shadow: none;
}

.cadastro-page .cadastro-tab-panel > h6{
  margin-bottom: 16px;
}

.cadastro-page .endereco-item,
.cadastro-page .veic-lista-card,
.cadastro-page .veic-item-card,
.cadastro-page .teia-form-card,
.cadastro-page .teia-board{
  border-radius: 16px;
}

.cadastro-page .veic-lista-card{
  background:#fff;
  border:1px solid var(--border);
  padding:12px;
  box-shadow:var(--shadow-xs);
}

.cadastro-page .veic-item-card{
  background:linear-gradient(180deg,#ffffff 0%, var(--surface-soft) 100%);
  border:1px solid var(--border);
  padding:10px;
  margin-bottom:10px;
  border-radius:18px;
  box-shadow:var(--shadow-xs);
}

.cadastro-page .veic-item-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}

.cadastro-page .veic-card-photo,
.cadastro-page .veic-card-photo-placeholder{
  width:72px;
  height:72px;
  border-radius:12px;
}

.cadastro-page .veic-card-photo{
  display:block;
  border:1px solid var(--border);
  background:#fff;
  overflow:hidden;
  cursor:pointer;
  padding:0;
}

.cadastro-page .veic-card-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

.cadastro-page .veic-card-photo-placeholder{
  border:1px dashed var(--border-strong);
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  color:var(--text-soft);
  font-size:.75rem;
  font-weight:700;
  text-transform:uppercase;
}

.cadastro-page .veic-card-body{
  display:grid;
  gap:8px;
  min-width:0;
}

.cadastro-page .veic-card-title{
  font-size:.84rem;
  font-weight:800;
  line-height:1.25;
  color:var(--title);
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.cadastro-page .veic-card-meta{
  display:grid;
  gap:4px;
  font-size:.72rem;
  color:var(--text-soft);
  text-transform:uppercase;
}

.cadastro-page .veic-card-meta > div{
  white-space:normal;
  word-break:break-word;
}

.cadastro-page .veic-thumb,
.cadastro-page .veic-thumb-placeholder{
  width:72px;
  height:72px;
  border-radius:12px;
}

.cadastro-page .veic-thumb{
  object-fit:cover;
  border:1px solid var(--border);
  background:#fff;
}

.cadastro-page .veic-thumb-placeholder{
  border:1px dashed var(--border-strong);
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  color:var(--text-soft);
  font-size:.75rem;
}

.cadastro-page .veic-mini-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:8px;
}

.cadastro-page .veic-detail-photo{
  width:100%;
  max-height:260px;
  object-fit:cover;
  border:1px solid var(--border);
  background:#fff;
  border-radius:14px;
}

.cadastro-page .endereco-uf,
.cadastro-page .endereco-unidade-select{
  background: var(--surface-soft);
}

.cadastro-page #tab-enderecos .d-flex.justify-content-between.align-items-center.mt-3.mb-2{
  margin-top: 0 !important;
}

.cadastro-page .foto-3x4-wrap,
.cadastro-page .mx-auto[style*="max-width: 320px"]{
  width: 100%;
  max-width: 300px !important;
  aspect-ratio: 3 / 4;
  margin-left: auto !important;
  margin-right: auto !important;
}

.cadastro-page #preview,
.cadastro-page .foto-3x4-wrap img,
.cadastro-page img#preview{
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center top;
  max-height: none;
  border-radius: 16px;
}

.cadastro-page .modal-header{
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, var(--surface) 0%, var(--surface-soft) 100%);
}

@media (max-width: 768px){
  .cadastro-form{
    padding: 18px;
  }

  .cadastro-page .perfil-tabs.perfil-tabs--center{
    justify-content:flex-start;
    overflow-x:auto;
    flex-wrap:nowrap;
    gap:12px;
    padding-bottom:10px;
  }

  .cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn{
    white-space:nowrap;
    flex:0 0 auto;
  }

  .cadastro-page .veic-item-head{
    flex-direction:column;
  }

  .cadastro-page .veic-mini-actions .btn{
    width:100%;
  }

  .cadastro-page .foto-3x4-wrap,
  .cadastro-page .mx-auto[style*="max-width: 320px"]{
    max-width: 240px !important;
  }
}


/* =========================================================
   DESIGN SYSTEM HÓRUS — PADRÃO VISUAL MESTRE
   Fonte base do sistema
   Paleta: Grafite / Preto / Cinza
   Objetivo: centralizar o padrão do sistema em um único lugar
   ========================================================= */

:root{
  --ds-font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  --ds-bg: linear-gradient(180deg, #f5f5f6 0%, #e7e7ea 100%);
  --ds-surface: #ffffff;
  --ds-surface-soft: #f6f6f7;
  --ds-surface-muted: #efeff1;
  --ds-surface-dark: #27272a;

  --ds-text: #2f2f35;
  --ds-text-soft: #6f6f78;
  --ds-title: #18181b;
  --ds-text-inverse: #ffffff;

  --ds-border: #d5d5db;
  --ds-border-strong: #bebec6;
  --ds-border-dark: #3f3f46;

  --ds-primary: #27272a;
  --ds-primary-hover: #18181b;
  --ds-primary-soft: #f1f1f3;
  --ds-primary-soft-2: #e5e5e9;

  --ds-success: #166534;
  --ds-success-soft: #eef8f1;
  --ds-warning: #b45309;
  --ds-warning-soft: #fff7ed;
  --ds-danger: #b91c1c;
  --ds-danger-soft: #fef2f2;

  --ds-shadow-xs: 0 1px 2px rgba(24,24,27,.05);
  --ds-shadow-sm: 0 10px 24px rgba(24,24,27,.07);
  --ds-shadow-md: 0 16px 38px rgba(24,24,27,.10);
  --ds-shadow-lg: 0 24px 60px rgba(24,24,27,.12);

  --ds-radius-sm: 10px;
  --ds-radius-md: 14px;
  --ds-radius-lg: 18px;
  --ds-radius-xl: 24px;

  --ds-space-1: 4px;
  --ds-space-2: 8px;
  --ds-space-3: 12px;
  --ds-space-4: 16px;
  --ds-space-5: 20px;
  --ds-space-6: 24px;
  --ds-space-7: 28px;
}

html, body,
body, input, textarea, select, button,
a, span, div, p, label, th, td, h1, h2, h3, h4, h5, h6,
small, strong, em, b, li, ul, ol {
  font-family: var(--ds-font-family) !important;
}

body{
  background: var(--ds-bg) !important;
  color: var(--ds-text) !important;
  letter-spacing: .01em !important;
}

/* ===== TIPOGRAFIA MESTRA ===== */
.page-title, h1{
  font-size: 1.95rem !important;
  font-weight: 800 !important;
  line-height: 1.05 !important;
  letter-spacing: -.03em !important;
  color: var(--ds-title) !important;
}

.section-title, h2,
.card-title,
.modal-title{
  color: var(--ds-title) !important;
  font-weight: 800 !important;
}

.page-subtitle,
.card-subtitle,
.helper-text,
.text-muted,
.form-text,
small.text-muted{
  color: var(--ds-text-soft) !important;
}

label,
.label-custom,
.field-label,
.metric-card__label,
.kpi-label,
.table-titanium thead th,
.table thead th,
.cadastro-page .small.fw-bold.text-muted,
.cadastro-page label.small.fw-bold.text-muted{
  font-size: .72rem !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  color: var(--ds-text-soft) !important;
  text-transform: uppercase !important;
}

/* ===== SUPERFÍCIES ===== */
.page-card,
.table-panel,
.filters-panel,
.vehicle-lookup-card,
.account-main,
.info-block,
.metric-card,
.result-box,
.card-compare,
.bg-white.p-4.border.shadow-sm,
.bg-white.p-5.border.shadow-sm,
.cadastro-page-card,
.teia-form-card,
.teia-board,
.veic-lista-card,
.veic-item-card,
.endereco-item,
.toolbar-card,
.hero-card,
.map-card{
  background: linear-gradient(180deg, #ffffff 0%, var(--ds-surface-soft) 100%) !important;
  border: 1px solid var(--ds-border) !important;
  border-radius: var(--ds-radius-xl) !important;
  box-shadow: var(--ds-shadow-sm) !important;
}

.premium-hero,
.login-box,
.login-brand-panel,
.login-form-panel{
  background: linear-gradient(180deg, #ffffff 0%, var(--ds-surface-soft) 100%) !important;
  border: 1px solid var(--ds-border) !important;
  box-shadow: var(--ds-shadow-md) !important;
}

/* ===== BOTÕES ===== */
.btn,
button,
a.btn{
  min-height: 42px;
  border-radius: 14px !important;
  font-weight: 800 !important;
  letter-spacing: .01em !important;
  box-shadow: none;
}

.btn-black,
.btn-primary,
.btn-dark,
.btn-success,
.btn-danger,
.btn-warning,
.btn-info,
.swal2-confirm{
  background: linear-gradient(180deg, #3f3f46 0%, #27272a 100%) !important;
  color: var(--ds-text-inverse) !important;
  border: 1px solid #27272a !important;
  box-shadow: 0 10px 24px rgba(39,39,42,.18) !important;
}

.btn-black:hover,
.btn-primary:hover,
.btn-dark:hover,
.btn-success:hover,
.btn-danger:hover,
.btn-warning:hover,
.btn-info:hover,
.swal2-confirm:hover{
  background: linear-gradient(180deg, #27272a 0%, #18181b 100%) !important;
  border-color: #18181b !important;
  color: #fff !important;
  transform: translateY(-1px);
}

.btn-outline-black,
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-dark,
.btn-light,
.btn-secondary,
.swal2-cancel{
  background: #ffffff !important;
  color: var(--ds-title) !important;
  border: 1px solid var(--ds-border) !important;
}

.btn-outline-black:hover,
.btn-outline-primary:hover,
.btn-outline-secondary:hover,
.btn-outline-dark:hover,
.btn-light:hover,
.btn-secondary:hover,
.swal2-cancel:hover{
  background: var(--ds-primary-soft) !important;
  color: var(--ds-title) !important;
  border-color: var(--ds-border-strong) !important;
}

.btn-icon,
.table-actions .btn,
.btn-sm{
  min-height: 34px;
  border-radius: 12px !important;
}

/* ===== CAMPOS ===== */
.form-control,
.form-select,
textarea.form-control{
  min-height: 46px !important;
  border-radius: 14px !important;
  border: 1px solid var(--ds-border) !important;
  background: #fcfcfd !important;
  color: var(--ds-title) !important;
  box-shadow: none !important;
}

.form-control:hover,
.form-select:hover,
textarea.form-control:hover{
  border-color: var(--ds-border-strong) !important;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus{
  border-color: #52525b !important;
  box-shadow: 0 0 0 .22rem rgba(82,82,91,.14) !important;
}

.form-check-input,
.form-check input[type="checkbox"],
.form-check input[type="radio"]{
  border: 1px solid #52525b !important;
  box-shadow: none !important;
}

.form-check-input:checked,
.form-check input[type="checkbox"]:checked,
.form-check input[type="radio"]:checked{
  background-color: #3f3f46 !important;
  border-color: #3f3f46 !important;
}

.form-check-input:focus,
.form-check input[type="checkbox"]:focus,
.form-check input[type="radio"]:focus{
  box-shadow: 0 0 0 .22rem rgba(82,82,91,.14) !important;
  border-color: #52525b !important;
}

/* ===== TABELAS ===== */
.table-titanium,
.table{
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}

.table-titanium thead th,
.table thead th{
  background: linear-gradient(180deg, #f7f7f8 0%, #ececef 100%) !important;
  border-bottom: 1px solid var(--ds-border) !important;
}

.table-titanium tbody td,
.table tbody td{
  background: rgba(255,255,255,.9) !important;
  border-bottom: 1px solid var(--ds-border-soft) !important;
  color: var(--ds-text) !important;
}

.table-titanium tbody tr:hover td,
.table tbody tr:hover td{
  background: #f7f7f8 !important;
}

/* ===== MODAIS ===== */
.modal-content{
  border: 1px solid var(--ds-border) !important;
  border-radius: 20px !important;
  box-shadow: var(--ds-shadow-lg) !important;
  overflow: hidden;
}

.modal-header,
.modal-footer{
  background: linear-gradient(180deg, #ffffff 0%, var(--ds-surface-soft) 100%) !important;
  border-color: var(--ds-border) !important;
}

/* ===== ALERTAS / BADGES ===== */
.alert{
  border-radius: 16px !important;
  border-width: 1px !important;
  box-shadow: var(--ds-shadow-xs) !important;
}

.alert-danger{ background: var(--ds-danger-soft) !important; border-color: #fecaca !important; color: #991b1b !important; }
.alert-warning{ background: var(--ds-warning-soft) !important; border-color: #fed7aa !important; color: #9a3412 !important; }
.alert-success{ background: var(--ds-success-soft) !important; border-color: #bbf7d0 !important; color: #166534 !important; }
.alert-info{ background: #f4f4f5 !important; border-color: #d4d4d8 !important; color: #27272a !important; }

.badge{
  border-radius: 999px !important;
  font-weight: 800 !important;
  letter-spacing: .03em !important;
}

/* ===== ABAS E NAVEGAÇÃO INTERNA ===== */
.perfil-tabs,
.perfil-tabs--center{
  border-bottom-color: var(--ds-border) !important;
}

.perfil-tabs .tab-btn,
.perfil-tabs--center .tab-btn{
  color: var(--ds-text-soft) !important;
}

.perfil-tabs .tab-btn:hover,
.perfil-tabs .tab-btn.active,
.perfil-tabs--center .tab-btn:hover,
.perfil-tabs--center .tab-btn.active{
  color: var(--ds-title) !important;
}

.perfil-tabs .tab-btn.active::after,
.perfil-tabs--center .tab-btn.active::after{
  background: var(--ds-primary) !important;
}

/* ===== SIDEBAR ===== */
.sidebar{
  background: linear-gradient(180deg, #ffffff 0%, #f3f3f5 100%) !important;
  border-right: 1px solid var(--ds-border) !important;
}

.sidebar-header{
  background: rgba(255,255,255,.92) !important;
  border-bottom: 1px solid var(--ds-border) !important;
}

.nav-link{
  border-radius: 14px !important;
  color: #3f3f46 !important;
}

.nav-link:hover,
.nav-link.active,
.submenu .nav-link:hover,
.submenu .nav-link.active{
  background: linear-gradient(180deg, #f0f0f2 0%, #e7e7ea 100%) !important;
  color: #18181b !important;
}

/* ===== CADASTRO HERDA O PADRÃO GLOBAL ===== */
.cadastro-page .page-title,
.cadastro-page .page-subtitle,
.cadastro-page .cadastro-nome,
.cadastro-page .card-title,
.cadastro-page .card-subtitle,
.cadastro-page .small.fw-bold.text-muted,
.cadastro-page label.small.fw-bold.text-muted,
.cadastro-page .btn,
.cadastro-page .form-control,
.cadastro-page .form-select,
.cadastro-page .tab-btn,
.cadastro-page .modal-title,
.cadastro-page .modal-body,
.cadastro-page .modal-footer,
.cadastro-page .table-titanium,
.cadastro-page .table-titanium th,
.cadastro-page .table-titanium td{
  font-family: var(--ds-font-family) !important;
}

.cadastro-page .cadastro-form{
  padding: 24px !important;
}

.cadastro-page .tab-content,
.cadastro-page .cadastro-tab-panel{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* ===== REGRAS OPERACIONAIS ===== */
body,
.sidebar,
.nav-link,
.submenu .nav-link,
.btn,
button,
.table,
.table th,
.table td,
.table-titanium,
.table-titanium th,
.table-titanium td,
.card-title,
.card-subtitle,
.page-title,
.page-subtitle,
.modal-title,
.modal-body,
.modal-footer,
.alert,
label,
p,
span,
div,
small{
  text-transform: none !important;
}

input:not([type="email"]):not([type="password"]):not([type="url"]),
textarea,
select,
.form-control:not([type="email"]):not([type="password"]):not([type="url"]),
.form-select {
  text-transform: uppercase !important;
}

input[type="email"],
input[type="password"],
input[type="url"],
input::placeholder,
textarea::placeholder {
  text-transform: none !important;
}


/* ===== AJUSTE EXCLUSIVO MOBILE: BOTÕES ===== */
@media (max-width: 991px){
  .btn,
  button.btn,
  a.btn,
  input[type="submit"],
  input[type="button"],
  input[type="reset"]{
    min-height: 38px !important;
    padding: 8px 12px !important;
    font-size: .78rem !important;
    line-height: 1.15 !important;
    border-radius: 12px !important;
    white-space: normal !important;
  }

  .btn-sm,
  .btn-sm-premium,
  .table-actions .btn,
  .tatuagem-actions .btn,
  .veic-mini-actions .btn,
  .modal-footer .btn,
  .ficha-actions .btn{
    min-height: 34px !important;
    padding: 7px 10px !important;
    font-size: .74rem !important;
    border-radius: 10px !important;
  }

  .btn-icon{
    gap: 6px !important;
  }

  .btn i,
  button.btn i,
  a.btn i{
    font-size: .9em !important;
    margin-right: 0 !important;
  }

  .table-actions,
  .tatuagem-actions,
  .veic-mini-actions,
  .modal-footer,
  .ficha-actions,
  .d-flex.gap-2,
  .d-flex.gap-3{
    gap: 8px !important;
    flex-wrap: wrap !important;
  }

  .ficha-actions{
    display: flex !important;
    flex-direction: column-reverse !important;
    align-items: stretch !important;
  }

  .ficha-actions .btn,
  .modal-footer .btn,
  .veic-mini-actions .btn{
    width: 100% !important;
    justify-content: center !important;
  }

  .tatuagem-actions{
    display:flex !important;
    flex-wrap:wrap !important;
  }

  .tatuagem-actions .btn,
  .table-actions .btn{
    flex: 1 1 calc(50% - 8px) !important;
    justify-content: center !important;
  }

  .endereco-item .d-flex.gap-2,
  .mandado-item .d-flex.gap-2,
  .rede-item .d-flex.gap-2,
  .prisao-item .d-flex.gap-2{
    width: 100% !important;
  }

  .endereco-item .d-flex.gap-2 .btn,
  .mandado-item .d-flex.gap-2 .btn,
  .rede-item .d-flex.gap-2 .btn,
  .prisao-item .d-flex.gap-2 .btn{
    flex: 1 1 calc(50% - 8px) !important;
    justify-content: center !important;
  }

  .page-heading .btn,
  .card-header-clean .btn,
  .d-grid .btn,
  .w-100.btn{
    width: 100% !important;
  }
}

/* ===== AJUSTE EXCLUSIVO: CADASTRO / TEIA + GALERIA-TATUAGENS ===== */
.cadastro-page #tab-teia #teiaGridEdit{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(170px, 1fr));
  gap:14px;
}

.cadastro-page #tab-teia .teia-node{
  min-width:0;
}

.cadastro-page #tab-teia .teia-node-card{
  height:100%;
  display:flex;
  flex-direction:column;
  background:linear-gradient(180deg,#ffffff 0%, var(--surface-soft) 100%);
  border:1px solid var(--border);
  border-radius:18px;
  overflow:hidden;
  box-shadow:var(--shadow-xs);
  padding:10px;
}

.cadastro-page #tab-teia .teia-avatar-link,
.cadastro-page #tab-teia .teia-avatar,
.cadastro-page #tab-teia .teia-avatar-placeholder{
  display:block;
  width:100%;
}

.cadastro-page #tab-teia .teia-avatar-link{
  margin-bottom:10px;
}

.cadastro-page #tab-teia .teia-avatar,
.cadastro-page #tab-teia .teia-avatar-placeholder{
  height:180px;
  border:1px solid var(--border);
  border-radius:14px;
}

.cadastro-page #tab-teia .teia-avatar{
  object-fit:cover;
  object-position:center top;
  background:#fff;
}

.cadastro-page #tab-teia .teia-avatar.tatuagem-preview{
  margin-bottom:0 !important;
}

.cadastro-page #tab-teia .teia-avatar-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg,#f8f8f9 0%, #ececef 100%);
  color:var(--text-soft);
  font-size:2rem;
}

.cadastro-page #tab-teia .teia-node-name{
  padding:0;
  margin-bottom:8px;
  font-size:.74rem;
  font-weight:800;
  line-height:1.35;
  color:var(--title);
  text-transform:uppercase;
  min-height:38px;
  word-break:break-word;
  white-space:normal;
}

.cadastro-page #tab-teia .teia-node-meta{
  padding:0;
  display:grid;
  gap:4px;
  font-size:.72rem;
  color:var(--text-soft);
  text-transform:uppercase;
  min-height:0;
  margin-bottom:8px;
}

.cadastro-page #tab-teia .teia-node-meta > div{
  white-space:normal;
  word-break:break-word;
}

.cadastro-page #tab-teia .teia-node-actions{
  margin-top:auto;
  padding:0;
  display:flex;
  gap:8px;
}

.cadastro-page #tab-teia .teia-node-actions .btn{
  flex:1 1 0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.cadastro-page #tab-fotos .row.g-2.mt-3{
  margin-top:14px !important;
}

.cadastro-page #tab-fotos .tatuagem-card{
  height:100%;
  display:flex;
  flex-direction:column;
  background:linear-gradient(180deg,#ffffff 0%, var(--surface-soft) 100%);
  border:1px solid var(--border);
  border-radius:18px;
  overflow:hidden;
  box-shadow:var(--shadow-xs);
  padding:10px;
}

.cadastro-page #tab-fotos .tatuagem-preview{
  width:100%;
  height:180px;
  object-fit:cover;
  object-position:center;
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
  display:block;
  margin-bottom:10px !important;
}

.cadastro-page #tab-fotos .tatuagem-desc{
  font-size:.74rem;
  line-height:1.35;
  color:var(--title);
  text-transform:uppercase;
  min-height:38px;
  word-break:break-word;
}

.cadastro-page #tab-fotos .tatuagem-actions{
  margin-top:auto;
  display:flex;
  gap:8px;
}

.cadastro-page #tab-fotos .tatuagem-actions .btn{
  flex:1 1 0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

@media (max-width: 768px){
  .cadastro-page #tab-teia #teiaGridEdit{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:10px;
  }

  .cadastro-page #tab-teia .teia-avatar,
  .cadastro-page #tab-teia .teia-avatar-placeholder,
  .cadastro-page #tab-fotos .tatuagem-preview{
    height:135px;
  }

  .cadastro-page .veic-card-photo,
  .cadastro-page .veic-card-photo-placeholder{
    width:72px;
    height:72px;
  }

  .cadastro-page #tab-teia .teia-node-name{
    font-size:.76rem;
    min-height:34px;
  }

  .cadastro-page #tab-teia .teia-node-meta{
    font-size:.68rem;
    margin-bottom:6px;
  }
}


/* ===== Cadastro por botões/modal ===== */
.cadastro-action-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px;
  border:1px solid var(--border);
  border-radius:18px;
  background:linear-gradient(180deg,#ffffff 0%, #f6f6f7 100%);
  box-shadow:var(--shadow-xs);
}
.cadastro-action-status{
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--text-soft);
}
.cadastro-info-resumo{
  border:1px solid var(--border);
  border-radius:16px;
  background:#fff;
  padding:14px 16px;
  font-weight:700;
  color:var(--text);
}
.cadastro-confirm-text{
  font-weight:700;
  color:var(--text);
  line-height:1.5;
}
@media (max-width: 767.98px){
  .cadastro-action-card{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* ===== Cadastro | topo tipo ficha ===== */
.cadastro-topo-ficha{
  background:linear-gradient(180deg,#ffffff 0%, #f6f6f7 100%);
  border:1px solid var(--border);
  border-radius:24px;
  padding:20px;
  box-shadow:var(--shadow-md);
}

.foto-ficha-box{
  display:flex;
  flex-direction:column;
  height:100%;
}

.foto-3x4-wrap{
  width:100%;
  aspect-ratio:3 / 4;
  border:1px solid var(--border);
  border-radius:18px;
  overflow:hidden;
  background:linear-gradient(180deg,#f8fafc 0%, #eef1f5 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:var(--shadow-xs);
}

.foto-3x4-img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
}

.foto-placeholder{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--text-soft);
  font-size:2.1rem;
}

.dados-topo-box{
  min-height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.nome-topo-wrap{
  margin-bottom:18px;
}

.nome-topo-input{
  min-height:62px;
  border-radius:18px;
  font-size:9.3rem;
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1.02;
  color:var(--title);
  text-align:center;
}

.nome-topo-input::placeholder{
  color:#8b8b94;
  opacity:1;
}

.dados-principais-topo{
  padding:16px;
  border:1px solid var(--border-soft);
  border-radius:20px;
  background:rgba(255,255,255,.72);
}

.cadastro-tabs-bottom{
  margin-top:4px;
}

@media (max-width: 991.98px){
  .nome-topo-input{
    font-size:1.25rem;
    min-height:56px;
  }
}

@media (max-width: 767.98px){
  .cadastro-topo-ficha{
    padding:16px;
  }

  .foto-ficha-box{
    max-width:260px;
    margin:0 auto;
  }

  .dados-topo-box{
    margin-top:2px;
  }

  .dados-principais-topo{
    padding:14px;
  }

  .nome-topo-input{
    font-size:1.08rem;
    min-height:52px;
  }
}

/* ===== Cadastro: abas em modal ===== */
.cadastro-page .cadastro-tabs-modal{
  margin-bottom: 8px !important;
}

.cadastro-page .cadastro-tabs-hint{
  text-align:center;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  color:var(--text-soft);
  margin: -4px 0 18px;
}

.cadastro-page .cadastro-modal-trigger{
  cursor:pointer;
}

.cadastro-page .cadastro-tab-modal .modal-dialog{
  max-width: min(1180px, calc(100vw - 24px));
}

.cadastro-page .cadastro-tab-modal .modal-content{
  border:1px solid var(--border);
  border-radius:22px;
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}

.cadastro-page .cadastro-tab-modal .modal-header,
.cadastro-page .cadastro-tab-modal .modal-footer{
  background:linear-gradient(180deg,#ffffff 0%, #f6f6f7 100%);
}

.cadastro-page .cadastro-tab-modal .modal-title{
  font-size:.95rem;
  font-weight:800;
  letter-spacing:.08em;
}

.cadastro-page .cadastro-tab-modal-body{
  padding:18px;
  background:linear-gradient(180deg,#fafafa 0%, #f4f4f5 100%);
}

.cadastro-page .cadastro-tab-modal-body > .tab-content{
  display:block !important;
}

.cadastro-page .cadastro-tab-modal-body #tab-enderecos,
.cadastro-page .cadastro-tab-modal-body #tab-antecedentes,
.cadastro-page .cadastro-tab-modal-body #tab-inteligencia,
.cadastro-page .cadastro-tab-modal-body #tab-teia,
.cadastro-page .cadastro-tab-modal-body #tab-veiculos,
.cadastro-page .cadastro-tab-modal-body #tab-fotos,
.cadastro-page .cadastro-tab-modal-body #tab-obs{
  padding:0;
}

@media (max-width: 768px){
  .cadastro-page .cadastro-tabs-hint{
    text-align:left;
    white-space:nowrap;
    min-width:max-content;
  }

  .cadastro-page .cadastro-tab-modal-body{
    padding:14px;
  }
}


/* ===== Cadastro clean | ficha institucional / prontuário ===== */
.cadastro-page{
  font-size:14px;
}

.cadastro-page .main-content{
  padding:20px;
}

.cadastro-shell-clean{
  gap:14px;
}

.cadastro-page-card-clean{
  background:#fff;
  border:1px solid #e6e6ea;
  border-radius:18px;
  box-shadow:none;
  padding:22px;
}

.cadastro-header-clean{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding-bottom:12px;
  border-bottom:1px solid #ececf0;
}

.cadastro-header-title{
  margin:0;
  font-size:1rem;
  line-height:1.1;
  font-weight:800;
  letter-spacing:.12em;
  color:#18181b;
}

.cadastro-header-subtitle{
  margin-top:6px;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.12em;
  color:#71717a;
  text-transform:uppercase;
}

.cadastro-page .cadastro-topo-ficha{
  background:transparent;
  border:none;
  border-radius:0;
  box-shadow:none;
  padding:0 0 12px;
  border-bottom:1px solid #ececf0;
}

.cadastro-page .foto-ficha-box{
  max-width:180px;
  gap:8px;
}

.cadastro-page .foto-3x4-wrap{
  width:180px;
  height:240px;
  aspect-ratio:unset;
  border:none;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:hidden;
}

.cadastro-page .foto-3x4-img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
}

.cadastro-page .foto-placeholder{
  background:#f3f4f6;
  color:#8b8b94;
  font-size:1.8rem;
}

.cadastro-page .foto-ficha-box .btn{
  width:180px !important;
  margin:0 auto;
  border-radius:8px;
  font-size:.72rem;
  letter-spacing:.08em;
}

.cadastro-page .dados-topo-box{
  justify-content:flex-start;
  min-height:auto;
}

.cadastro-page .nome-topo-wrap{
  margin-bottom:18px;
  padding-bottom:12px;
  border-bottom:2px solid #e5e7eb;
}

.cadastro-page .nome-topo-wrap label{
  margin-bottom:8px !important;
  font-size:.68rem !important;
  letter-spacing:.18em;
}

.cadastro-page .nome-topo-input{
  min-height:auto;
  padding:4px 0 2px !important;
  border:none !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  font-size:2.85rem !important;
  font-weight:900 !important;
  line-height:1.02 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase;
  color:#111827 !important;
  text-align:left !important;
}

.cadastro-page .nome-topo-input::placeholder{
  color:#9ca3af !important;
  opacity:1;
}

.cadastro-page .nome-topo-input:focus{
  box-shadow:none !important;
  border:none !important;
  outline:none !important;
}

.cadastro-page .dados-principais-topo{
  padding:0;
  border:none;
  border-radius:0;
  background:transparent;
}

.cadastro-page label.small,
.cadastro-page .small.fw-bold,
.cadastro-page .form-label,
.cadastro-page .field-label{
  color:#6b7280 !important;
  font-size:.68rem !important;
  font-weight:800 !important;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.cadastro-page .form-control,
.cadastro-page .form-select,
.cadastro-page textarea{
  min-height:38px;
  border:1px solid #d8d8de;
  border-radius:8px;
  background:#fff;
  box-shadow:none;
  font-size:.82rem;
  font-weight:600;
  color:#18181b;
  padding:8px 11px;
}

.cadastro-page textarea.form-control{
  min-height:92px;
}

.cadastro-page .form-control:focus,
.cadastro-page .form-select:focus,
.cadastro-page textarea:focus{
  border-color:#9ca3af;
  box-shadow:none;
}

.cadastro-page .row.g-3{
  --bs-gutter-x: 12px;
  --bs-gutter-y: 10px;
}

.cadastro-page .cadastro-tabs-modal{
  gap:14px;
  justify-content:flex-start;
  margin:12px 0 0 !important;
  padding:0;
  border:none;
}

.cadastro-page .cadastro-modal-trigger,
.cadastro-page .tab-btn{
  padding:0 0 6px !important;
  border:none !important;
  border-bottom:1px solid transparent !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#4b5563;
  font-size:.76rem !important;
  font-weight:800 !important;
  letter-spacing:.08em;
}

.cadastro-page .cadastro-modal-trigger:hover,
.cadastro-page .tab-btn:hover{
  color:#111827;
  border-bottom-color:#111827 !important;
}

.cadastro-page .cadastro-tabs-hint{
  text-align:left;
  font-size:.65rem;
  letter-spacing:.1em;
  margin:2px 0 16px;
}

.cadastro-page .cadastro-action-card,
.cadastro-page .cadastro-info-resumo,
.cadastro-page .cadastro-tab-panel,
.cadastro-page #tab-enderecos .endereco-item,
.cadastro-page #tab-teia .teia-node-card,
.cadastro-page #tab-fotos .tatuagem-card{
  background:transparent !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

.cadastro-page #tab-enderecos .endereco-item,
.cadastro-page .cadastro-info-resumo,
.cadastro-page #tab-teia .teia-node-card,
.cadastro-page #tab-fotos .tatuagem-card{
  padding-left:0 !important;
  padding-right:0 !important;
}

.cadastro-page .cadastro-info-resumo,
.cadastro-page #tab-enderecos .endereco-item,
.cadastro-page #tab-teia .teia-node-card,
.cadastro-page #tab-fotos .tatuagem-card,
.cadastro-page .cadastro-action-card{
  border-bottom:1px solid #ececf0 !important;
  padding-top:12px !important;
  padding-bottom:12px !important;
}

.cadastro-page #tab-teia .teia-node-name,
.cadastro-page #tab-fotos .tatuagem-desc{
  padding-left:0;
  padding-right:0;
}

.cadastro-page #tab-teia .teia-node-meta,
.cadastro-page #tab-teia .teia-node-actions,
.cadastro-page #tab-fotos .tatuagem-actions{
  padding-left:0;
  padding-right:0;
}

.cadastro-page .cadastro-tab-modal .modal-dialog{
  max-width:min(1120px, calc(100vw - 28px));
}

.cadastro-page .cadastro-tab-modal .modal-content{
  border:1px solid #e5e7eb;
  border-radius:14px;
  box-shadow:none;
}

.cadastro-page .cadastro-tab-modal .modal-header,
.cadastro-page .cadastro-tab-modal .modal-footer,
.cadastro-page .cadastro-tab-modal-body{
  background:#fff;
}

.cadastro-page .cadastro-tab-modal .modal-header,
.cadastro-page .cadastro-tab-modal .modal-footer{
  border-color:#ececf0;
}

.cadastro-page .cadastro-tab-modal .modal-title{
  font-size:.82rem;
  letter-spacing:.14em;
}

.cadastro-page .cadastro-tab-modal-body{
  padding:16px 18px;
}

.cadastro-page .btn{
  border-radius:8px;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.06em;
  padding:8px 12px;
}

.cadastro-page .btn.btn-sm{
  padding:7px 10px;
}

.cadastro-page .btn-outline-dark,
.cadastro-page .btn-outline-danger,
.cadastro-page .btn-secondary{
  border-width:1px;
}

@media (max-width: 991.98px){
  .cadastro-page .nome-topo-input{
    font-size:2.15rem !important;
    letter-spacing:.06em !important;
  }
}

@media (max-width: 767.98px){
  .cadastro-page .main-content{
    padding:14px;
  }

  .cadastro-page-card-clean{
    padding:16px;
    border-radius:14px;
  }

  .cadastro-page .cadastro-topo-ficha{
    padding-bottom:10px;
  }

  .cadastro-page .foto-ficha-box{
    max-width:150px;
    margin:0 auto;
  }

  .cadastro-page .foto-3x4-wrap,
  .cadastro-page .foto-ficha-box .btn{
    width:150px !important;
  }

  .cadastro-page .foto-3x4-wrap{
    height:200px;
  }

  .cadastro-page .nome-topo-input{
    font-size:1.55rem !important;
    letter-spacing:.04em !important;
    text-align:left !important;
  }

  .cadastro-page .nome-topo-wrap label{
    text-align:left !important;
  }

  .cadastro-page .cadastro-tabs-modal{
    gap:10px;
    flex-wrap:wrap;
  }

  .cadastro-page .cadastro-modal-trigger,
  .cadastro-page .tab-btn{
    font-size:.7rem !important;
  }

  .cadastro-page .cadastro-tab-modal-body{
    padding:14px;
  }
}


@media (max-width: 768px){
  .nome-topo-input{
    line-height:1.05;
  }
}


/* ===== Cadastro: abas fixas ===== */
.cadastro-page .cadastro-tabs-fixed{
  margin-bottom: 14px !important;
}

.cadastro-page .cadastro-tabs-fixed-content{
  display:block;
}

.cadastro-page .cadastro-tab-fixed-panel{
  display:none;
}

.cadastro-page .cadastro-tab-fixed-panel.active{
  display:block;
}

.cadastro-page .cadastro-tab-panel-wrap{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:14px;
  padding:16px 18px;
}

.cadastro-page .cadastro-tab-fixed-panel .tab-content{
  display:block !important;
  padding:0;
}

.cadastro-page .cadastro-tab-fixed-panel .cadastro-tab-panel{
  padding:0;
  border:none;
  box-shadow:none;
  background:transparent;
}

.cadastro-page .cadastro-tab-fixed-panel + .cadastro-tab-fixed-panel{
  margin-top:0;
}

@media (max-width: 768px){
  .cadastro-page .cadastro-tab-panel-wrap{
    padding:14px;
    border-radius:12px;
  }
}

/* ===== PATCH CLEAN EXTREMO | abas só no container branco ===== */
.cadastro-page .cadastro-page-card-clean{
  border:1px solid #ececf0;
  border-radius:18px;
  box-shadow:none;
}

.cadastro-page .cadastro-tabs-fixed{
  border-bottom:1px solid #ececf0;
  padding-bottom:12px;
  margin-bottom:10px !important;
}

.cadastro-page .cadastro-tabs-fixed-content,
.cadastro-page .cadastro-tab-fixed-panel,
.cadastro-page .cadastro-tab-fixed-panel.active{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
}

.cadastro-page .cadastro-tab-panel-wrap{
  background:transparent !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:10px 0 0 !important;
}

.cadastro-page .cadastro-tab-fixed-panel .tab-content,
.cadastro-page .cadastro-tab-fixed-panel .cadastro-tab-panel{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
}

.cadastro-page .cadastro-action-card,
.cadastro-page .cadastro-info-resumo,
.cadastro-page #tab-enderecos .endereco-item,
.cadastro-page .mandado-item,
.cadastro-page .rede-item,
.cadastro-page .prisao-item,
.cadastro-page #tab-teia .teia-node-card,
.cadastro-page #tab-fotos .tatuagem-card{
  background:transparent !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

.cadastro-page .cadastro-action-card,
.cadastro-page .cadastro-info-resumo,
.cadastro-page #tab-enderecos .endereco-item,
.cadastro-page .mandado-item,
.cadastro-page .rede-item,
.cadastro-page .prisao-item,
.cadastro-page #tab-teia .teia-node-card,
.cadastro-page #tab-fotos .tatuagem-card{
  padding-left:0 !important;
  padding-right:0 !important;
}

.cadastro-page .cadastro-action-card,
.cadastro-page .cadastro-info-resumo,
.cadastro-page #tab-enderecos .endereco-item,
.cadastro-page .mandado-item,
.cadastro-page .rede-item,
.cadastro-page .prisao-item,
.cadastro-page #tab-teia .teia-node-card,
.cadastro-page #tab-fotos .tatuagem-card{
  border-bottom:1px solid #f0f1f4 !important;
  padding-top:12px !important;
  padding-bottom:12px !important;
  margin-bottom:0 !important;
}

.cadastro-page .cadastro-tab-fixed-panel .row{
  --bs-gutter-y: 0.9rem;
}

.cadastro-page .perfil-tabs.perfil-tabs--center{
  justify-content:flex-start;
  gap:6px;
}

.cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn,
.cadastro-page .tab-btn{
  background:transparent !important;
  border:none !important;
  border-bottom:2px solid transparent !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:8px 6px !important;
  color:#6b7280 !important;
}

.cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn:hover,
.cadastro-page .tab-btn:hover{
  color:#111827 !important;
  background:transparent !important;
  border-bottom-color:#d1d5db !important;
}

.cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn.active,
.cadastro-page .tab-btn.active{
  color:#111827 !important;
  background:transparent !important;
  border-bottom-color:#111827 !important;
}

.cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn::after,
.cadastro-page .tab-btn::after{
  display:none !important;
}

@media (max-width: 768px){
  .cadastro-page .cadastro-tab-panel-wrap{
    padding-top:8px !important;
  }

  .cadastro-page .perfil-tabs.perfil-tabs--center{
    gap:10px;
    padding-bottom:10px;
  }

  .cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn,
  .cadastro-page .tab-btn{
    padding:7px 4px !important;
    font-size:.68rem !important;
  }
}

/* ===== Ações padronizadas das abas ===== */
.cadastro-page .cadastro-actions-row,
.cadastro-page .cadastro-action-card > div:last-child,
.cadastro-page .veic-mini-actions,
.cadastro-page .teia-node-actions,
.cadastro-page .tatuagem-actions,
.cadastro-page #tab-enderecos .endereco-item .d-flex.gap-2,
.cadastro-page .mandado-item .d-flex.gap-2,
.cadastro-page .rede-item .d-flex.gap-2,
.cadastro-page .prisao-item .d-flex.gap-2{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.cadastro-page .btn-tab-action{
  width:38px;
  min-width:38px;
  height:38px;
  padding:0 !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px !important;
  font-size:.9rem !important;
  line-height:1;
}

.cadastro-page .btn-tab-action i{
  margin:0 !important;
}

.cadastro-page .btn-tab-action__label{
  display:none !important;
}

.cadastro-page .btn-tab-action.btn-black,
.cadastro-page .btn-tab-action.btn-outline-black,
.cadastro-page .btn-tab-action.btn-outline-dark,
.cadastro-page .btn-tab-action.btn-secondary,
.cadastro-page .btn-tab-action.btn-success,
.cadastro-page .btn-tab-action.btn-outline-danger{
  box-shadow:none !important;
}

.cadastro-page .btn-tab-action.btn-black,
.cadastro-page .btn-tab-action.btn-success{
  background:#27272a;
  border-color:#27272a;
  color:#fff;
}

.cadastro-page .btn-tab-action.btn-outline-black,
.cadastro-page .btn-tab-action.btn-outline-dark,
.cadastro-page .btn-tab-action.btn-secondary{
  background:#fff;
  border:1px solid #d5d5db;
  color:#18181b;
}

.cadastro-page .btn-tab-action.btn-outline-black:hover,
.cadastro-page .btn-tab-action.btn-outline-dark:hover,
.cadastro-page .btn-tab-action.btn-secondary:hover{
  background:#f5f5f6;
  border-color:#bebec6;
  color:#18181b;
}

.cadastro-page .btn-tab-action.btn-tab-action--danger,
.cadastro-page .btn-tab-action.btn-outline-danger{
  background:#fff;
  border:1px solid #f0caca;
  color:#b91c1c;
}

.cadastro-page .btn-tab-action.btn-tab-action--danger:hover,
.cadastro-page .btn-tab-action.btn-outline-danger:hover{
  background:#fff5f5;
  border-color:#e7aaaa;
  color:#991b1b;
}

.cadastro-page .cadastro-action-card{
  align-items:center;
}

.cadastro-page .cadastro-action-card > div:first-child{
  flex:1;
  min-width:0;
}

.cadastro-page #tab-enderecos .endereco-item > .d-flex,
.cadastro-page .mandado-item > .d-flex,
.cadastro-page .rede-item > .d-flex,
.cadastro-page .prisao-item > .d-flex,
.cadastro-page .veic-item-head,
.cadastro-page .tatuagem-actions{
  align-items:flex-start;
}

.cadastro-page .veic-item-head{
  display:flex;
  justify-content:space-between;
  gap:14px;
}

.cadastro-page .veic-mini-actions,
.cadastro-page .teia-node-actions,
.cadastro-page .tatuagem-actions{
  flex-shrink:0;
}

@media (max-width: 767.98px){
  .cadastro-page .cadastro-action-card{
    flex-direction:row;
    align-items:flex-start;
  }

  .cadastro-page .cadastro-action-card > div:last-child{
    margin-left:auto;
  }
}


.cadastro-page .cadastro-switch-principal{
  padding: 10px 12px;
  border: 1px solid #ececf0;
  border-radius: 10px;
  background: #fafafa;
}

.cadastro-page .cadastro-switch-principal .form-check-label{
  margin-bottom: 0;
}


.cadastro-page .cadastro-endereco-modal-dialog{
  max-width: 640px;
}

.cadastro-page #modalEndereco .modal-body{
  padding: 14px;
}

.cadastro-page #modalEndereco .modal-footer{
  padding: 10px 14px;
}

.cadastro-page .cadastro-endereco-modal-grid label{
  margin-bottom: 4px;
  font-size: .74rem;
}

.cadastro-page .cadastro-endereco-modal-grid .form-control,
.cadastro-page .cadastro-endereco-modal-grid .form-select{
  min-height: 38px;
  padding: 8px 10px;
  border-radius: 12px;
  font-size: .84rem;
}

.cadastro-page .cadastro-endereco-observacao{
  min-height: 68px !important;
  resize: vertical;
}

.cadastro-page .cadastro-endereco-localizacao .btn-capturar-localizacao{
  min-width: 40px;
  width: 40px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: none;
}

.cadastro-page .endereco-resumo-observacao{
  margin-top: 4px;
  font-size: .72rem;
}

.cadastro-page .endereco-item{
  border-color: var(--border) !important;
  border-radius: 14px !important;
  background: linear-gradient(180deg,#ffffff 0%, var(--surface-soft) 100%);
}

@media (max-width: 767.98px){
  .cadastro-page .cadastro-endereco-modal-dialog{
    max-width: calc(100vw - 20px);
    margin: 10px auto;
  }

  .cadastro-page #modalEndereco .modal-body{
    padding: 12px;
  }

  .cadastro-page #modalEndereco .modal-footer{
    padding: 10px 12px;
    gap: 8px;
  }

  .cadastro-page #modalEndereco .modal-footer .btn{
    flex: 1 1 0;
    min-height: 40px;
  }
}


/* ==== ENDEREÇO: CHECKBOX PRINCIPAL ==== */
.cadastro-check-principal{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:2px;
}

.cadastro-check-principal .form-check-input{
  width:18px;
  height:18px;
  min-width:18px;
  margin-top:0;
  border-radius:4px;
  cursor:pointer;
}

.cadastro-check-principal .form-check-label{
  margin-bottom:0;
  cursor:pointer;
}

/* ===== DESIGN SYSTEM | STANDARDIZED GRAPHITE ===== */
:root{
  --theme-bg: #eef1f4;
  --theme-surface: #ffffff;
  --theme-surface-2: #f7f8fa;
  --theme-surface-3: #f1f4f7;
  --theme-border: #d8dde4;
  --theme-border-strong: #c2cad3;
  --theme-text: #2c3137;
  --theme-text-soft: #69717c;
  --theme-title: #171a1f;
  --theme-dark: #20242a;
  --theme-dark-2: #2b3138;
  --theme-dark-hover: #111419;
  --theme-danger: #b42318;
  --theme-danger-soft: #fff4f3;
  --theme-radius-sm: 8px;
  --theme-radius-md: 10px;
  --theme-radius-lg: 12px;
  --theme-radius-xl: 16px;
  --theme-shadow-sm: 0 6px 16px rgba(17, 20, 25, 0.04);
  --theme-shadow-md: 0 10px 22px rgba(17, 20, 25, 0.06);
}

body{
  background: var(--theme-bg) !important;
  color: var(--theme-text) !important;
}

h1, h2, h3, h4, h5, h6,
.page-title,
.section-title,
.card-title,
.modal-title,
.page-heading__title{
  color: var(--theme-title) !important;
}

.page-subtitle,
.page-heading__text,
.text-muted,
.helper-text,
.form-text{
  color: var(--theme-text-soft) !important;
}

.premium-hero{
  background: var(--theme-surface-2) !important;
  background-image: none !important;
  border: 1px solid var(--theme-border) !important;
  border-radius: var(--theme-radius-xl) !important;
  box-shadow: var(--theme-shadow-sm) !important;
}

.premium-hero::before{
  display: none !important;
}

.page-card,
.cadastro-page-card,
.cadastro-page-card-clean,
.card,
.box,
.panel,
.dashboard-card,
.metric-card,
.filters-panel,
.table-panel,
.form-panel,
.table-responsive.bg-white.border.shadow-sm,
.bg-white.border.shadow-sm,
.bg-white.p-4.border.shadow-sm,
.bg-white.p-5.border.shadow-sm,
.account-main,
.info-block,
.perfil-page .perfil-list-card,
.perfil-page .perfil-block-card,
.perfil-page .perfil-gallery-item,
.cadastro-page .cadastro-topo-ficha,
.cadastro-page .cadastro-tab-panel-wrap,
.cadastro-page .cadastro-action-card,
.cadastro-page .cadastro-info-resumo,
.cadastro-page #tab-enderecos .endereco-item,
.cadastro-page .mandado-item,
.cadastro-page .rede-item,
.cadastro-page .prisao-item,
.cadastro-page #tab-teia .teia-node-card,
.cadastro-page #tab-fotos .tatuagem-card{
  background: var(--theme-surface) !important;
  background-image: none !important;
  border: 1px solid var(--theme-border) !important;
  border-radius: var(--theme-radius-lg) !important;
  box-shadow: var(--theme-shadow-sm) !important;
}

.cadastro-page .page-card,
.cadastro-page .cadastro-page-card,
.cadastro-page .cadastro-page-card-clean,
.cadastro-page .cadastro-topo-ficha,
.cadastro-page .cadastro-tab-panel-wrap,
.cadastro-page .cadastro-action-card,
.cadastro-page .cadastro-info-resumo,
.cadastro-page #tab-enderecos .endereco-item,
.cadastro-page .mandado-item,
.cadastro-page .rede-item,
.cadastro-page .prisao-item,
.cadastro-page #tab-teia .teia-node-card,
.cadastro-page #tab-fotos .tatuagem-card,
.perfil-page .page-card,
.perfil-page .cadastro-page-card,
.perfil-page .cadastro-page-card-clean,
.perfil-page .perfil-list-card,
.perfil-page .perfil-block-card,
.perfil-page .perfil-gallery-item{
  border: 0 !important;
  box-shadow: none !important;
}

.bg-light.border.p-3,
.bg-white.border.p-2,
.p-2.bg-light.border,
.p-3.border-bottom.bg-light{
  background: var(--theme-surface-2) !important;
  background-image: none !important;
  border: 1px solid var(--theme-border) !important;
  border-radius: var(--theme-radius-md) !important;
  box-shadow: none !important;
}

.table-panel > .p-3.border-bottom.bg-light{
  border-top: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
}

.account-main .info-block,
.account-main .strength-card{
  background: var(--theme-surface-2) !important;
  background-image: none !important;
  border: 1px solid var(--theme-border) !important;
  border-radius: var(--theme-radius-md) !important;
  box-shadow: none !important;
}

.bg-light,
.table-light,
.table>thead,
.readonly-box,
.cadastro-page .dados-principais-topo{
  background: var(--theme-surface-2) !important;
  background-image: none !important;
  border-color: var(--theme-border) !important;
}

.modal-content,
.modal-content.rounded-0{
  background: var(--theme-surface) !important;
  background-image: none !important;
  border: 1px solid var(--theme-border) !important;
  border-radius: var(--theme-radius-xl) !important;
  box-shadow: var(--theme-shadow-md) !important;
}

.modal-header,
.modal-header.rounded-0,
.cadastro-page .modal-header,
.cadastro-page .cadastro-tab-modal .modal-header,
.bg-black.text-white,
.modal-header.bg-black.text-white,
.modal-header.bg-dark.text-white,
.card-header.card-header-black,
.premium-dark-card,
.bg-dark.text-white.p-4.d-flex.justify-content-between.align-items-center.shadow-sm{
  background: var(--theme-dark) !important;
  background-image: none !important;
  color: #ffffff !important;
  border-color: var(--theme-dark) !important;
  box-shadow: none !important;
}

.modal-title,
.modal-header .modal-title,
.bg-black.text-white .modal-title,
.bg-dark.text-white .card-title{
  color: #ffffff !important;
}

.modal-footer{
  background: var(--theme-surface-2) !important;
  border-top: 1px solid var(--theme-border) !important;
}

.bg-black.text-white .btn-close,
.modal-header.bg-black.text-white .btn-close,
.modal-header.bg-dark.text-white .btn-close{
  filter: invert(1) grayscale(100%) brightness(200%) !important;
}

.sidebar{
  background: #ffffff !important;
  border-right: 1px solid #e5e7eb !important;
  box-shadow: 0 12px 28px rgba(20, 24, 28, 0.04) !important;
}

.sidebar-header{
  background: rgba(255,255,255,0.98) !important;
  border-bottom: 1px solid #e7eaee !important;
}

.brand-mini{
  color: #8a929b !important;
}

.brand-main,
.sidebar-user-clean__name{
  color: #2f353b !important;
}

.sidebar .text-muted,
.sidebar .helper-text{
  color: #7a828b !important;
}

.btn-collapse-sidebar{
  background: #ffffff !important;
  border-color: #dde2e6 !important;
  color: #5a6169 !important;
  border-radius: var(--theme-radius-md) !important;
  box-shadow: none !important;
}

.btn-collapse-sidebar:hover{
  background: #eef1f4 !important;
  border-color: #d2d8df !important;
  color: #30363c !important;
}

.user-info{
  background: #ffffff !important;
  border: 1px solid #e5e7eb !important;
  border-radius: var(--theme-radius-lg) !important;
  box-shadow: none !important;
}

.user-info .badge{
  background: #f5f6f8 !important;
  color: #505761 !important;
  border: 1px solid #e1e5ea !important;
}

.sidebar-user-clean{
  border-top: 1px solid #e7eaee !important;
}

.nav-link{
  color: #59616b !important;
  border-radius: var(--theme-radius-md) !important;
}

.nav-link:hover{
  background: #f6f7f9 !important;
  border-color: #e3e7ec !important;
  color: #2f353b !important;
}

.nav-link.active{
  background: #f1f3f5 !important;
  border-color: #dde2e6 !important;
  color: #2f353b !important;
  box-shadow: none !important;
}

.submenu{
  background: #fbfbfc !important;
  border: 1px solid #e5e7eb !important;
  border-radius: var(--theme-radius-lg) !important;
  box-shadow: none !important;
}

.submenu .nav-link{
  color: #606872 !important;
}

.submenu .nav-link:hover,
.submenu .nav-link.active{
  background: #f1f3f5 !important;
  color: #2f353b !important;
}

.btn,
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
a.btn{
  border-radius: var(--theme-radius-md) !important;
  box-shadow: none !important;
}

.btn-black,
.btn-dark,
.btn-primary,
.btn-primary-premium,
.btn-success-premium,
.modal .btn-primary,
.modal-footer .btn-primary,
.alert .btn-primary,
.swal2-confirm{
  background: var(--theme-dark) !important;
  background-image: none !important;
  border: 1px solid var(--theme-dark) !important;
  color: #ffffff !important;
}

.btn-black:hover,
.btn-dark:hover,
.btn-primary:hover,
.btn-primary-premium:hover,
.btn-success-premium:hover,
.modal .btn-primary:hover,
.modal-footer .btn-primary:hover,
.alert .btn-primary:hover,
.swal2-confirm:hover{
  background: var(--theme-dark-hover) !important;
  border-color: var(--theme-dark-hover) !important;
  color: #ffffff !important;
}

.btn-outline-black,
.btn-light-premium,
.btn-outline-dark,
.btn-secondary{
  background: #ffffff !important;
  border: 1px solid var(--theme-border-strong) !important;
  color: var(--theme-title) !important;
}

.btn-outline-black:hover,
.btn-light-premium:hover,
.btn-outline-dark:hover,
.btn-secondary:hover{
  background: var(--theme-surface-3) !important;
  border-color: #9ea8b4 !important;
  color: var(--theme-dark) !important;
}

.btn-danger-premium,
.cadastro-page .btn-tab-action.btn-tab-action--danger,
.cadastro-page .btn-tab-action.btn-outline-danger{
  background: var(--theme-danger-soft) !important;
  border-color: #f0c8c4 !important;
  color: var(--theme-danger) !important;
}

.btn-danger-premium:hover,
.cadastro-page .btn-tab-action.btn-tab-action--danger:hover,
.cadastro-page .btn-tab-action.btn-outline-danger:hover{
  background: #fde8e6 !important;
  border-color: #e6a9a3 !important;
  color: #942018 !important;
}

.tab-btn{
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--theme-border) !important;
  border-radius: var(--theme-radius-md) !important;
  color: #55606d !important;
  box-shadow: none !important;
}

.tab-btn:hover{
  background: var(--theme-surface-3) !important;
  border-color: var(--theme-border-strong) !important;
  color: var(--theme-dark) !important;
}

.tab-btn.active{
  background: var(--theme-dark) !important;
  border-color: var(--theme-dark) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

.cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn,
.cadastro-page .tab-btn{
  border-radius: 0 !important;
  background: transparent !important;
}

.cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn:hover,
.cadastro-page .tab-btn:hover{
  background: transparent !important;
  color: var(--theme-dark) !important;
  border-bottom-color: #c6ced7 !important;
}

.cadastro-page .perfil-tabs.perfil-tabs--center .tab-btn.active,
.cadastro-page .tab-btn.active{
  background: transparent !important;
  color: var(--theme-dark) !important;
  border-bottom-color: var(--theme-dark) !important;
}

.cadastro-page .btn-tab-action{
  border-radius: var(--theme-radius-sm) !important;
  box-shadow: none !important;
}

.cadastro-page .btn-tab-action.btn-black,
.cadastro-page .btn-tab-action.btn-success{
  background: var(--theme-dark) !important;
  border-color: var(--theme-dark) !important;
  color: #ffffff !important;
}

.cadastro-page .btn-tab-action.btn-black:hover,
.cadastro-page .btn-tab-action.btn-success:hover{
  background: var(--theme-dark-hover) !important;
  border-color: var(--theme-dark-hover) !important;
}

.cadastro-page .btn-tab-action.btn-outline-black,
.cadastro-page .btn-tab-action.btn-outline-dark,
.cadastro-page .btn-tab-action.btn-secondary{
  background: #ffffff !important;
  border-color: var(--theme-border) !important;
  color: var(--theme-title) !important;
}

.cadastro-page .btn-tab-action.btn-outline-black:hover,
.cadastro-page .btn-tab-action.btn-outline-dark:hover,
.cadastro-page .btn-tab-action.btn-secondary:hover{
  background: var(--theme-surface-3) !important;
  border-color: #a5afbb !important;
  color: var(--theme-dark) !important;
}

.form-control,
.form-select,
textarea.form-control,
.readonly-box,
.perfil-page .perfil-readonly-field,
.form-control.rounded-0,
.form-select.rounded-0,
.btn.rounded-0{
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--theme-border) !important;
  border-radius: var(--theme-radius-md) !important;
  color: var(--theme-text) !important;
  box-shadow: none !important;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus,
.cadastro-page .form-control:focus,
.cadastro-page .form-select:focus{
  border-color: #7f8a97 !important;
  box-shadow: 0 0 0 .22rem rgba(32, 36, 42, 0.10) !important;
}

.form-check-input:checked{
  background-color: var(--theme-dark) !important;
  border-color: var(--theme-dark) !important;
}

.form-check-input:focus{
  border-color: #7f8a97 !important;
  box-shadow: 0 0 0 .2rem rgba(32, 36, 42, 0.10) !important;
}

.table>thead{
  background: var(--theme-surface-2) !important;
}

.table>thead th{
  background: transparent !important;
  color: #3b4450 !important;
  border-bottom-color: var(--theme-border) !important;
}

.table td,
.table th{
  border-color: #e3e8ed !important;
}

.badge.text-bg-dark,
.badge.bg-dark{
  background: var(--theme-surface-3) !important;
  color: var(--theme-dark) !important;
  border: 1px solid var(--theme-border) !important;
}

.alert,
.alert-info,
.alert-dark{
  background: var(--theme-surface-2) !important;
  border-color: var(--theme-border) !important;
  color: #39414b !important;
  border-radius: var(--theme-radius-md) !important;
}

.alert-danger{
  background: #fff5f4 !important;
  border-color: #f0d1cd !important;
  color: #a12a20 !important;
}

.alert-success{
  background: #f5f7f9 !important;
  border-color: #dfe5eb !important;
  color: #2e3944 !important;
}

/* ===== LAYOUT STANDARDIZATION | SINGLE CONTAINER ===== */
:root{
  --page-max-width: 1380px;
  --theme-bg: #ffffff;
  --theme-surface: #ffffff;
  --theme-surface-2: #fbfbfc;
  --theme-surface-3: #f5f6f8;
  --theme-surface-soft: #fafbfc;
  --theme-surface-soft-2: #f1f3f5;
  --theme-border: rgba(54, 60, 67, 0.10);
  --theme-border-strong: #d6dbe1;
  --theme-text: #2f353b;
  --theme-text-soft: #6b737d;
  --theme-title: #30363c;
  --theme-dark: #4f5861;
  --theme-dark-2: #636c76;
  --theme-dark-hover: #40484f;
  --theme-dark-soft: #6a737d;
  --theme-line-soft: rgba(54, 60, 67, 0.08);
  --theme-line-faint: rgba(54, 60, 67, 0.04);
  --theme-shadow-clean: 0 10px 24px rgba(20, 24, 28, 0.05);
  --theme-shadow-lift: 0 8px 18px rgba(20, 24, 28, 0.04);
  --theme-font-body: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --theme-font-heading: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --theme-font-size: .84rem;
  --theme-font-size-lg: .92rem;
  --theme-font-size-sm: .75rem;
}

.main-content{
  padding: 14px !important;
}

body{
  background: var(--theme-bg) !important;
  font-size: var(--theme-font-size) !important;
  font-family: var(--theme-font-body) !important;
  line-height: 1.35 !important;
  color: var(--theme-text) !important;
}

html, body, input, button, select, textarea{
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
}

h1, h2, h3, h4, h5, h6,
.page-title,
.section-title,
.card-title,
.modal-title,
.btn,
.tab-btn,
.nav-link,
label,
.small.fw-bold{
  font-family: var(--theme-font-heading) !important;
}

.nav-link.text-uppercase,
.sidebar .nav-link.text-uppercase{
  text-transform: none !important;
  letter-spacing: .01em !important;
}

.brand-mini,
.brand-main,
.btn,
.tab-btn,
.nav-link,
label,
.form-label,
.field-label,
.small.fw-bold,
.modal-title,
.cadastro-photo-hint,
.btn-tab-action__label,
.cadastro-confirm-text{
  text-transform: none !important;
  letter-spacing: .01em !important;
}

.page-shell-standard .card-title,
.modal-content .modal-title,
.page-shell-standard label,
.page-shell-standard .small.fw-bold,
.metric-card__label,
.tab-btn,
.btn,
.btn-tab-action__label,
.perfil-page .perfil-list-card__title,
.perfil-page .perfil-block-card__title,
.perfil-page .perfil-bottom-meta{
  text-transform: none !important;
  letter-spacing: .01em !important;
}

.page-shell-standard .btn,
.page-shell-standard .tab-btn,
.modal-content .btn{
  font-weight: 700 !important;
}

.page-shell,
.page-shell-standard,
.cadastro-shell,
.account-shell,
.config-shell,
.container-comparacao{
  width: min(100%, var(--page-max-width)) !important;
  max-width: var(--page-max-width) !important;
  margin: 0 auto !important;
}

.page-shell-standard{
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: var(--theme-surface) !important;
  border: 0 !important;
  border-radius: 18px !important;
  box-shadow: var(--theme-shadow-clean) !important;
  padding: 16px !important;
}

.page-navigation{
  display: none !important;
}

.page-navigation__actions{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.btn-page-nav{
  min-height: 42px;
  padding: 0 18px;
  border-radius: 14px !important;
  border: 0 !important;
  background: var(--theme-surface-soft) !important;
  color: var(--theme-title) !important;
  box-shadow: var(--theme-shadow-lift) !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.btn-page-nav:hover{
  background: var(--theme-surface-soft-2) !important;
}

.btn-page-nav--forward{
  background: var(--theme-dark-soft) !important;
  border-color: transparent !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

.btn-page-nav--forward:hover{
  background: #47515d !important;
}

.premium-hero,
.page-title,
.page-subtitle,
.page-heading__title,
.top-bar-clean h4,
.page-head-legacy{
  display: none !important;
}

.page-shell-standard,
.page-shell-standard :not(i):not(svg):not(path):not(canvas):not(.metric-card__value):not(.chart-stat__value){
  font-size: var(--theme-font-size) !important;
}

.modal-content,
.modal-content :not(i):not(svg):not(path):not(canvas){
  font-size: var(--theme-font-size) !important;
}

.page-shell-standard .row.g-3,
.page-shell-standard .g-3{
  --bs-gutter-x: .8rem !important;
  --bs-gutter-y: .8rem !important;
}

.page-shell-standard .row.g-4,
.page-shell-standard .g-4{
  --bs-gutter-x: 1rem !important;
  --bs-gutter-y: 1rem !important;
}

.page-shell > .page-card,
.page-shell > .card,
.page-shell > .card-gov,
.page-shell > .card-compare,
.page-shell > section,
.page-wrap > section{
  width: 100%;
}

.page-card,
.cadastro-page-card,
.cadastro-page-card-clean,
.card,
.box,
.panel,
.dashboard-card,
.metric-card,
.filters-panel,
.table-panel,
.form-panel,
.table-responsive.bg-white.border.shadow-sm,
.bg-white.border.shadow-sm,
.bg-white.p-4.border.shadow-sm,
.bg-white.p-5.border.shadow-sm,
.account-main,
.info-block,
.perfil-page .perfil-list-card,
.perfil-page .perfil-block-card,
.perfil-page .perfil-gallery-item,
.card-gov,
.card-compare,
.page-wrap > .toolbar-card,
.page-wrap > .map-card,
.config-subsection,
.config-scroll-box,
.result-box{
  background: var(--theme-surface-soft) !important;
  border: 0 !important;
  border-radius: var(--theme-radius-lg) !important;
  box-shadow: none !important;
  overflow: hidden;
}

.page-shell-standard > .page-card,
.page-shell-standard > .card-gov,
.page-shell-standard > .card-compare,
.page-shell-standard > .card.border-0.shadow-sm,
.page-shell-standard > .card.border-0,
.page-shell-standard > .card.shadow-sm{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.page-shell-standard > .page-card:not(:first-child),
.page-shell-standard > .card-gov:not(:first-child),
.page-shell-standard > .card-compare:not(:first-child),
.page-shell-standard > .card.border-0.shadow-sm:not(:first-child),
.page-shell-standard > .card.border-0:not(:first-child),
.page-shell-standard > .card.shadow-sm:not(:first-child),
.page-shell-standard > .dashboard-grid:not(:first-child),
.page-shell-standard > .page-wrap:not(:first-child){
  border-top: 0;
  padding-top: 0;
}

.page-shell-standard > .premium-hero + .page-card,
.page-shell-standard > .premium-hero + .card-gov,
.page-shell-standard > .premium-hero + .card-compare,
.page-shell-standard > .premium-hero + .dashboard-grid,
.page-shell-standard > .premium-hero + .page-wrap,
.page-shell-standard > .page-head-legacy + .page-card,
.page-shell-standard > .page-head-legacy + .card-gov,
.page-shell-standard > .page-head-legacy + .card-compare,
.page-shell-standard > .page-head-legacy + .dashboard-grid,
.page-shell-standard > .page-head-legacy + .page-wrap{
  border-top: 0 !important;
  padding-top: 0 !important;
}

.page-card > .card-body,
.card.border-0.shadow-sm > .card-body,
.card.border-0 > .card-body,
.card.shadow-sm > .card-body,
.card-gov__body{
  padding: 14px !important;
}

.page-shell-standard .bg-light.border.p-3,
.page-shell-standard .bg-white.border.p-2,
.page-shell-standard .p-2.bg-light.border,
.page-shell-standard .p-3.border-bottom.bg-light,
.page-shell-standard .table-panel > .p-3.border-bottom.bg-light{
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.metric-card__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.metric-card__icon{
  width:40px;
  height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius: 12px;
  background: #ffffff;
  color: var(--theme-dark-soft);
  font-size: .95rem;
  flex: 0 0 auto;
  box-shadow: var(--theme-shadow-lift);
}

.metric-card{
  min-height: 104px !important;
}

.metric-card__value{
  font-size: 1.55rem !important;
  line-height: 1 !important;
}

.metric-card__label,
.metric-card__meta,
.card-title,
.modal-content .modal-title,
.page-heading__title,
.label-custom,
label,
.kpi-label,
.hero-title,
.hero-sub{
  font-size: var(--theme-font-size) !important;
}

.card-header-clean{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 0 8px;
  margin: 0;
  border-bottom: 0;
  background: transparent;
}

.card-title{
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase;
  color: var(--theme-title) !important;
}

.card-subtitle{
  display: none !important;
}

.antecedente-item-card,
.perfil-page .perfil-readonly-field,
.form-control-readonly,
.readonly-box{
  background: rgba(255,255,255,.74) !important;
  border: 0 !important;
  border-radius: var(--theme-radius-md) !important;
  box-shadow: none !important;
}

.modal-content,
.modal-content.rounded-0{
  background: var(--theme-surface) !important;
  border: 0 !important;
  border-radius: 18px !important;
  box-shadow: 0 22px 60px rgba(17, 20, 25, 0.12) !important;
}

.modal-content .modal-header,
.modal-content .modal-header.rounded-0,
.modal-content .modal-header.bg-black.text-white,
.modal-content .modal-header.bg-dark.text-white,
.cadastro-page .cadastro-tab-modal .modal-header{
  background: var(--theme-surface-soft) !important;
  color: var(--theme-title) !important;
  border-bottom: 0 !important;
  padding: 14px 16px 10px !important;
  box-shadow: none !important;
}

.modal-content .modal-title,
.modal-content .modal-header .modal-title{
  color: var(--theme-title) !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase;
  display:flex;
  align-items:center;
  gap:10px;
}

.modal-content .modal-title i{
  width: 28px;
  height: 28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius: 10px;
  background: #ffffff;
  color: var(--theme-dark-soft);
  box-shadow: var(--theme-shadow-lift);
}

.modal-content .modal-footer,
.cadastro-page .cadastro-tab-modal .modal-footer{
  background: transparent !important;
  border-top: 0 !important;
  padding: 10px 16px 14px !important;
}

.modal-content .btn-close,
.modal-content .modal-header .btn-close,
.modal-content .btn-close.btn-close-white{
  filter: none !important;
  opacity: .7;
}

.modal-content .btn,
.modal-fotos .tab-btn{
  border-radius: 14px !important;
}

.modal-content .btn-black,
.modal-content .btn.btn-black,
.modal-content .modal-footer .btn-black{
  background: var(--theme-dark-soft) !important;
  border-color: var(--theme-dark-soft) !important;
  color: #ffffff !important;
}

.modal-content .btn-black:hover,
.modal-content .btn.btn-black:hover,
.modal-content .modal-footer .btn-black:hover{
  background: #47515d !important;
  border-color: #47515d !important;
}

.modal-content .btn-outline-black,
.modal-content .btn-outline-dark,
.modal-content .btn-outline-secondary,
.modal-content .btn-secondary{
  background: #ffffff !important;
  color: var(--theme-title) !important;
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--theme-line-soft) !important;
}

.modal-fotos-header{
  background: transparent !important;
  color: var(--theme-title) !important;
  border-bottom: 0 !important;
}

.modal-fotos .tab-btn.active{
  background: var(--theme-dark-soft) !important;
  border-color: transparent !important;
  color: #ffffff !important;
}

.btn,
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
a.btn{
  font-size: var(--theme-font-size) !important;
  min-height: 36px;
}

.btn:not(.btn-icon):not(.btn-collapse-sidebar):not(.tab-btn){
  padding: .48rem .78rem !important;
}

.btn-sm{
  padding: .34rem .62rem !important;
}

.btn-lg{
  padding: .62rem .88rem !important;
}

.btn-black,
.btn-dark,
.btn-primary,
.btn-primary-premium,
.btn-success-premium,
.modal .btn-primary,
.modal-footer .btn-primary,
.alert .btn-primary,
.swal2-confirm,
.cadastro-page .btn-tab-action.btn-black,
.cadastro-page .btn-tab-action.btn-success,
.tab-btn.active{
  background: var(--theme-dark-soft) !important;
  background-image: none !important;
  border-color: transparent !important;
  color: #ffffff !important;
}

.btn-black:hover,
.btn-dark:hover,
.btn-primary:hover,
.btn-primary-premium:hover,
.btn-success-premium:hover,
.modal .btn-primary:hover,
.modal-footer .btn-primary:hover,
.alert .btn-primary:hover,
.swal2-confirm:hover,
.cadastro-page .btn-tab-action.btn-black:hover,
.cadastro-page .btn-tab-action.btn-success:hover,
.tab-btn.active:hover{
  background: #47515d !important;
  border-color: transparent !important;
  color: #ffffff !important;
}

.btn-outline-black,
.btn-outline-dark,
.btn-outline-secondary,
.btn-secondary,
.btn-light-premium,
.cadastro-page .btn-tab-action.btn-outline-black,
.cadastro-page .btn-tab-action.btn-outline-dark,
.cadastro-page .btn-tab-action.btn-secondary{
  background: #ffffff !important;
  color: var(--theme-title) !important;
  border-color: transparent !important;
  box-shadow: inset 0 0 0 1px var(--theme-line-soft) !important;
}

.form-control,
.form-select,
textarea.form-control,
.readonly-box,
.perfil-page .perfil-readonly-field,
.form-control.rounded-0,
.form-select.rounded-0,
.btn.rounded-0{
  min-height: 38px !important;
  padding: .48rem .68rem !important;
  font-size: var(--theme-font-size) !important;
}

textarea.form-control{
  min-height: 92px !important;
}

label{
  margin-bottom: 4px !important;
  font-size: var(--theme-font-size) !important;
}

.table td,
.table th{
  padding: .45rem .55rem !important;
  font-size: var(--theme-font-size) !important;
}

.config-shell,
.page-wrap,
.dashboard-grid,
.filters-grid{
  gap: 12px !important;
}

.page-shell-standard .config-card{
  padding: 16px !important;
}

.page-shell-standard .config-subsection,
.page-shell-standard .config-scroll-box{
  padding: 10px !important;
}

.cadastro-page .cadastro-page-card,
.cadastro-page .cadastro-page-card-clean{
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.cadastro-page .main-content{
  position: relative;
  isolation: isolate;
}

.cadastro-page .main-content::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 180px;
  background: var(--theme-bg);
  z-index: -1;
  pointer-events: none;
}

.cadastro-page .cadastro-form{
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.cadastro-page .cadastro-header-clean{
  display: none !important;
}

.cadastro-page .top-bar-clean{
  display: none !important;
}

.cadastro-page .cadastro-topo-shell{
  margin: 0 !important;
  background: #ffffff !important;
  color: var(--theme-title) !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 18px !important;
  overflow: hidden;
}

.cadastro-page .prontuario-topo{
  display: block;
  margin: 0 !important;
  padding: 18px 16px 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  position: relative;
  z-index: 2;
}

.cadastro-page .prontuario-topo::after{
  display: none !important;
}

.cadastro-page .prontuario-topo__header{
  display: flex;
  align-items: center;
  gap: 16px;
  background: transparent !important;
}

.cadastro-page .cadastro-topo-actions{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}

.cadastro-page .cadastro-topo-action-btn,
.cadastro-page .cadastro-btn-topo-submit{
  width: 36px;
  min-width: 36px;
  height: 36px;
  min-height: 36px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0 !important;
  border-radius: 10px !important;
  border: 1px solid var(--theme-border) !important;
  background: var(--theme-surface-2) !important;
  color: var(--theme-title) !important;
  font-size: .86rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
}

.cadastro-page .cadastro-topo-action-btn:hover,
.cadastro-page .cadastro-btn-topo-submit:hover{
  background: var(--theme-surface-3) !important;
  color: var(--theme-title) !important;
}

.cadastro-page .cadastro-topo-icon-btn{
  flex: 0 0 auto;
  width: auto;
  height: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 0;
  border: 0;
  background: transparent;
  color: var(--theme-title);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  opacity: .88;
}

.cadastro-page .cadastro-topo-icon-btn:hover{
  color: var(--theme-title);
  opacity: 1;
}

.cadastro-page .prontuario-topo__titulo{
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  min-width: 0;
  margin: 0 !important;
  padding: 0;
  background: transparent !important;
  color: var(--theme-title) !important;
  font-size: inherit !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.cadastro-page .prontuario-topo__label{
  display: block;
  color: var(--theme-title) !important;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.15;
}

.cadastro-page .prontuario-topo__status{
  display: block;
  min-height: 0;
  padding: 0;
  border-radius: 0;
  max-width: 260px;
  font-size: 13px !important;
  line-height: 1.3;
  font-weight: 400;
  letter-spacing: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cadastro-page .prontuario-topo__status--editing{
  background: transparent;
  color: var(--theme-text-soft);
}

.cadastro-page .prontuario-topo__status--new{
  background: transparent;
  color: var(--theme-text-soft);
}

.cadastro-page .page-shell-standard{
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  gap: 0 !important;
  overflow: visible !important;
}

.cadastro-page .cadastro-topo-ficha{
  background: var(--theme-surface-soft) !important;
  border: 1px solid var(--theme-border) !important;
  border-radius: 22px !important;
  box-shadow: none !important;
  padding: 14px !important;
  margin: 0 !important;
}

.cadastro-page .cadastro-topo-ficha--panel{
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

.cadastro-page .cadastro-topo-ficha > .row{
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
  align-items: center;
  --bs-gutter-x: 0 !important;
  --bs-gutter-y: 0 !important;
}

.cadastro-page .cadastro-topo-ficha > .row > [class*="col-"]{
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  flex: initial !important;
}

.cadastro-page .foto-ficha-box{
  width: 100%;
  max-width: 100% !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-height: 100%;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.cadastro-page .foto-3x4-trigger{
  width: min(100%, 220px);
  max-width: 220px;
  margin: 0 auto;
}

.cadastro-page .foto-3x4-wrap{
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 3 / 4;
  border-radius: 18px !important;
  border: 1px solid rgba(23, 26, 31, 0.12) !important;
  background: #ffffff !important;
  box-shadow: 0 14px 32px rgba(15, 23, 42, 0.08) !important;
  overflow: hidden;
}

.cadastro-page .foto-placeholder{
  background: #ffffff !important;
  color: var(--theme-dark-soft) !important;
  font-size: 1.8rem !important;
}

.cadastro-page .cadastro-photo-hint{
  font-size: var(--theme-font-size-sm) !important;
  letter-spacing: .02em;
  text-transform: none;
  color: var(--theme-text-soft);
  text-align: center;
}

.cadastro-page .dados-topo-box{
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 100%;
}

.cadastro-page .nome-topo-wrap{
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.cadastro-page .cadastro-nome-label{
  margin-bottom: 0 !important;
  color: var(--theme-text-soft) !important;
  font-size: var(--theme-font-size-sm) !important;
  letter-spacing: .01em !important;
}

.cadastro-page .nome-topo-input{
  min-height: 42px !important;
  font-size: 1.04rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  padding: .58rem .72rem !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  box-shadow: inset 0 0 0 1px rgba(23, 26, 31, 0.05) !important;
  text-align: left !important;
}

.cadastro-page .dados-principais-topo{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px !important;
  align-items: end;
}

.cadastro-page .cadastro-grid-item{
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.cadastro-page .cadastro-grid-item--vulgo,
.cadastro-page .cadastro-grid-item--mae,
.cadastro-page .cadastro-grid-item--pai,
.cadastro-page .cadastro-grid-item--naturalidade,
.cadastro-page .cadastro-grid-item--faccao{
  grid-column: 1 / -1;
}

.cadastro-page .cadastro-grid-item--nascimento,
.cadastro-page .cadastro-grid-item--idade{
  grid-column: span 1;
}

.cadastro-page .cadastro-grid-item--sexo{
  grid-column: span 1;
}

.cadastro-page .cadastro-grid-item--obito{
  grid-column: 1 / -1;
}

.cadastro-page .cadastro-obito-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.cadastro-page .cadastro-grid-item--obito .form-control{
  text-transform: uppercase;
}

.cadastro-page .cadastro-grid-item--obito input[type="date"]{
  text-transform: none;
}

.cadastro-page .cadastro-readonly-inline{
  min-height: 42px;
  display: flex;
  align-items: center;
  padding: .56rem .72rem;
  border-radius: 14px;
  background: #ffffff;
  color: var(--theme-title);
  box-shadow: inset 0 0 0 1px rgba(23, 26, 31, 0.05);
}

.cadastro-page label.small,
.cadastro-page .small.fw-bold,
.cadastro-page .form-label,
.cadastro-page .field-label{
  margin-bottom: 0 !important;
  color: var(--theme-text-soft) !important;
  font-size: var(--theme-font-size-sm) !important;
  font-weight: 600 !important;
  letter-spacing: .01em !important;
  text-transform: none;
}

.cadastro-page .form-control,
.cadastro-page .form-select,
.cadastro-page textarea,
.cadastro-page .readonly-box,
.cadastro-page .perfil-readonly-field{
  min-height: 42px !important;
  padding: .58rem .72rem !important;
  border-color: rgba(23, 26, 31, 0.05) !important;
  background: #ffffff !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

.cadastro-page textarea.form-control{
  min-height: 98px !important;
}

.cadastro-page .form-control:focus,
.cadastro-page .form-select:focus,
.cadastro-page textarea:focus{
  border-color: rgba(90, 101, 114, 0.2) !important;
  box-shadow: 0 0 0 .2rem rgba(90, 101, 114, 0.08) !important;
}

.cadastro-page .naturalidade-select-wrap .ts-control,
.cadastro-page .naturalidade-select-wrap .ts-control input{
  font-size: var(--theme-font-size) !important;
}

.cadastro-page .naturalidade-select-wrap .ts-control{
  min-height: 42px !important;
  background: #ffffff !important;
  border: 1px solid rgba(23, 26, 31, 0.05) !important;
  box-shadow: none !important;
  border-radius: 14px !important;
}

.cadastro-page .cadastro-topo-shell .perfil-tabs.perfil-tabs--center{
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 14px 16px 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.cadastro-page .cadastro-topo-shell .perfil-tabs.perfil-tabs--center::-webkit-scrollbar{
  display: none;
}

.cadastro-page .cadastro-tabs-fixed{
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 14px 16px 0 !important;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
  position: static !important;
  top: auto !important;
  z-index: auto !important;
  margin-inline: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

.cadastro-page .cadastro-tabs-fixed::-webkit-scrollbar{
  display: none;
}

.cadastro-page .cadastro-tabs-fixed-content{
  border-top: 0;
  padding-top: 0;
}

.cadastro-page .cadastro-tabs-fixed .tab-btn{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0;
  min-height: 0;
  position: relative;
  padding: 14px 16px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--theme-text-soft) !important;
  opacity: 1 !important;
  box-shadow: none !important;
  scroll-snap-align: start;
  font-size: .92rem !important;
  font-weight: 600 !important;
  letter-spacing: .04em !important;
  line-height: 1.2;
  text-transform: uppercase !important;
}

.cadastro-page .cadastro-topo-shell .tab-btn:hover,
.cadastro-page .cadastro-tabs-fixed .tab-btn:hover{
  background: transparent !important;
  color: var(--theme-title) !important;
  opacity: 1 !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
}

.cadastro-page .cadastro-topo-shell .tab-btn.active,
.cadastro-page .cadastro-tabs-fixed .tab-btn.active{
  background: transparent !important;
  color: var(--theme-title) !important;
  opacity: 1 !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
}

.cadastro-page .cadastro-topo-shell .tab-btn::after,
.cadastro-page .cadastro-tabs-fixed .tab-btn::after{
  display: block !important;
}

.cadastro-page .cadastro-topo-shell .tab-btn.active::after,
.cadastro-page .cadastro-tabs-fixed .tab-btn.active::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4px;
  background: var(--theme-dark);
  border-radius: 4px 4px 0 0;
}

.cadastro-page .cadastro-tab-icon{
  display: none !important;
}

.cadastro-page .cadastro-tab-label{
  font-size: inherit !important;
  font-weight: inherit;
  letter-spacing: inherit;
}

.cadastro-page .cadastro-tab-fixed-panel{
  display: none;
}

.cadastro-page .cadastro-tab-fixed-panel.active{
  display: block;
}

.cadastro-page .cadastro-tab-panel-wrap{
  padding: 12px !important;
  background: var(--theme-surface-soft) !important;
  border: 1px solid var(--theme-border) !important;
  border-radius: 20px !important;
}

.cadastro-page .cadastro-actions-row{
  display: flex !important;
  justify-content: stretch !important;
  align-items: center !important;
  gap: 8px;
  margin: 0 0 10px !important;
}

.cadastro-page .cadastro-actions-row .btn{
  width: 100%;
}

.cadastro-page .btn-tab-action{
  min-height: 38px !important;
  border-radius: 12px !important;
}

.cadastro-page .cadastro-action-card,
.cadastro-page .cadastro-info-resumo,
.cadastro-page .antecedente-item,
.cadastro-page .endereco-item,
.cadastro-page .mandado-item,
.cadastro-page .rede-item,
.cadastro-page .prisao-item,
.cadastro-page .tatuagem-card,
.cadastro-page .antecedente-item-card{
  border: 1px solid rgba(255,255,255,.92) !important;
  background: #ffffff !important;
  border-radius: 18px !important;
  box-shadow: none !important;
}

.cadastro-page .cadastro-info-resumo{
  background: #ffffff !important;
  border-color: rgba(23, 26, 31, 0.04) !important;
  box-shadow: none !important;
}

.cadastro-page .cadastro-action-card{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  padding: 14px !important;
}

.cadastro-page .cadastro-action-card .d-flex.gap-2,
.cadastro-page .endereco-item > .d-flex,
.cadastro-page .antecedente-item > .d-flex,
.cadastro-page .mandado-item > .d-flex,
.cadastro-page .rede-item > .d-flex,
.cadastro-page .prisao-item > .d-flex{
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 10px !important;
}

.cadastro-page .endereco-item .d-flex.gap-2,
.cadastro-page .antecedente-item .d-flex.gap-2,
.cadastro-page .mandado-item .d-flex.gap-2,
.cadastro-page .rede-item .d-flex.gap-2,
.cadastro-page .prisao-item .d-flex.gap-2{
  width: 100%;
}

.cadastro-page .endereco-item .d-flex.gap-2 .btn,
.cadastro-page .antecedente-item .d-flex.gap-2 .btn,
.cadastro-page .mandado-item .d-flex.gap-2 .btn,
.cadastro-page .rede-item .d-flex.gap-2 .btn,
.cadastro-page .prisao-item .d-flex.gap-2 .btn{
  flex: 1 1 0;
}

.cadastro-page #tab-inteligencia .col-md-12.mb-3{
  margin-bottom: 10px !important;
  padding-bottom: 0 !important;
  border-bottom-color: transparent !important;
}

.cadastro-page #tab-inteligencia .row,
.cadastro-page #tab-fotos .row,
.cadastro-page #tab-obs .row,
.cadastro-page .cadastro-tab-panel .row{
  --bs-gutter-x: .8rem !important;
  --bs-gutter-y: .8rem !important;
}

.cadastro-page .border,
.cadastro-page .border-top,
.cadastro-page .border-bottom,
.cadastro-page .border-start,
.cadastro-page .border-end{
  border-color: var(--theme-surface-soft) !important;
}

.cadastro-page hr{
  border-color: var(--theme-surface-soft) !important;
  opacity: 1 !important;
}

.cadastro-page .input-group > .form-control,
.cadastro-page .input-group > .form-select,
.cadastro-page .input-group > .btn,
.cadastro-page .input-group-text{
  border-color: #ffffff !important;
}

.cadastro-page .input-group-text{
  background: #ffffff !important;
}

.cadastro-page .ficha-actions{
  display: flex;
  justify-content: stretch;
  padding-top: 0;
  border-top: 0;
  position: sticky;
  bottom: 10px;
  z-index: 22;
  margin-top: 2px !important;
}

.cadastro-page .ficha-actions .btn{
  width: 100%;
  min-width: 0;
  min-height: 48px;
  border-radius: 16px !important;
  box-shadow: 0 14px 26px rgba(17, 20, 25, 0.10) !important;
}

.cadastro-page .modal-dialog{
  width: min(460px, calc(100vw - 18px));
  max-width: min(460px, calc(100vw - 18px));
}

.cadastro-page .modal-dialog.modal-md,
.cadastro-page .cadastro-endereco-modal-dialog{
  width: min(520px, calc(100vw - 18px));
  max-width: min(520px, calc(100vw - 18px)) !important;
}

.cadastro-page .modal-dialog.modal-lg{
  width: min(640px, calc(100vw - 18px));
  max-width: min(640px, calc(100vw - 18px));
}

.perfil-page .modal-dialog{
  width: min(440px, calc(100vw - 18px));
  max-width: min(440px, calc(100vw - 18px));
}

.perfil-page #modalZoom .modal-dialog{
  width: min(860px, calc(100vw - 18px));
  max-width: min(860px, calc(100vw - 18px));
}

.perfil-page .prontuario-topo__titulo{
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 !important;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  color: var(--theme-text-soft) !important;
  font-size: var(--theme-font-size-sm) !important;
  font-weight: 800 !important;
  letter-spacing: .03em !important;
  text-transform: none !important;
}

.perfil-page .prontuario-topo__label{
  color: var(--theme-title);
}

.perfil-page .cadastro-topo-shell > .prontuario-topo{
  display: none !important;
}

.perfil-page .perfil-topo-hero{
  padding: 18px 16px 0;
  background: transparent;
}

.perfil-page .cadastro-topo-shell .prontuario-topo{
  text-align: left;
}

.perfil-page .perfil-topo-actions{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  margin-left: auto;
}

.perfil-page .btn-topo-action{
  width: 36px;
  min-width: 36px;
  height: 36px;
  min-height: 36px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0 !important;
  border-radius: 10px !important;
  border: 1px solid var(--theme-border) !important;
  background: var(--theme-surface-2) !important;
  color: var(--theme-title) !important;
  font-size: .86rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
}

.perfil-page .btn-topo-action span{
  display: none !important;
}

.perfil-page .btn-topo-action:hover{
  background: var(--theme-surface-3) !important;
  color: var(--theme-title) !important;
}

.perfil-page .btn-topo-action--ghost{
  background: #ffffff !important;
  color: var(--theme-title) !important;
  box-shadow: none !important;
}

.perfil-page .btn-topo-action--ghost:hover{
  background: var(--theme-surface-3) !important;
  color: var(--theme-title) !important;
}

.perfil-page .cadastro-topo-shell .prontuario-topo__titulo{
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  min-width: 0;
  margin: 0 !important;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--theme-title) !important;
  font-size: inherit !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-align: left;
}

.perfil-page .cadastro-topo-shell .prontuario-topo__label{
  color: var(--theme-title) !important;
  font-size: 20px;
  line-height: 1.15;
}

.perfil-page .cadastro-topo-shell .prontuario-topo__status{
  display: block;
  max-width: 260px;
  min-height: 0;
  padding: 0;
  border-radius: 0;
  background: transparent !important;
  color: var(--theme-text-soft) !important;
  font-size: 13px !important;
  line-height: 1.3;
  font-weight: 400;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.perfil-page .cadastro-topo-shell .tab-btn{
  color: var(--theme-text-soft) !important;
}

.perfil-page .cadastro-topo-shell .tab-btn:hover,
.perfil-page .cadastro-topo-shell .tab-btn.active{
  color: var(--theme-title) !important;
}

.perfil-page .perfil-photo-actions{
  display: none !important;
}

.perfil-page .cadastro-topo-ficha > .row{
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
  align-items: center;
  --bs-gutter-x: 0 !important;
  --bs-gutter-y: 0 !important;
}

.perfil-page .cadastro-topo-ficha > .row > [class*="col-"]{
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  flex: initial !important;
}

.perfil-page .dados-topo-box{
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 100%;
}

.perfil-page .nome-topo-wrap{
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.perfil-page .nome-topo-wrap label{
  margin-bottom: 0 !important;
  color: var(--theme-text-soft) !important;
  font-size: var(--theme-font-size-sm) !important;
  letter-spacing: .01em !important;
}

.perfil-page .nome-topo-input{
  min-height: 42px !important;
  display: flex;
  align-items: center;
  padding: .58rem .72rem !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  box-shadow: inset 0 0 0 1px rgba(23, 26, 31, 0.05) !important;
  font-size: 1.04rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  color: var(--theme-title) !important;
  text-align: left !important;
}

.perfil-page .dados-principais-topo{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px !important;
  align-items: end;
  --bs-gutter-x: 0 !important;
  --bs-gutter-y: 0 !important;
}

.perfil-page .dados-principais-topo > [class*="col-"]{
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  flex: initial !important;
}

.perfil-page .perfil-grid-item{
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.perfil-page .perfil-grid-item--vulgo,
.perfil-page .perfil-grid-item--mae,
.perfil-page .perfil-grid-item--pai,
.perfil-page .perfil-grid-item--naturalidade,
.perfil-page .perfil-grid-item--faccao,
.perfil-page .perfil-grid-item--obito{
  grid-column: 1 / -1;
}

.perfil-page .perfil-grid-item--cpf,
.perfil-page .perfil-grid-item--sexo,
.perfil-page .perfil-grid-item--nascimento,
.perfil-page .perfil-grid-item--idade{
  grid-column: span 1;
}

.perfil-page .perfil-list-card,
.perfil-page .perfil-block-card,
.perfil-page .perfil-gallery-item{
  border: 1px solid var(--theme-border) !important;
  background: #ffffff !important;
  border-radius: 18px !important;
}

.perfil-page .perfil-list-card__title,
.perfil-page .perfil-block-card__title{
  font-size: var(--theme-font-size) !important;
  color: var(--theme-title) !important;
  border-bottom-color: rgba(20, 37, 49, 0.05) !important;
}

.perfil-page .perfil-readonly-field{
  min-height: 42px;
  display: flex;
  align-items: center;
  padding: .58rem .72rem;
  border: 1px solid rgba(23, 26, 31, 0.05);
  border-radius: 14px;
  background: #ffffff;
  box-shadow: none;
}

.perfil-page .perfil-grid-item--obito .perfil-readonly-field{
  align-items: flex-start;
  white-space: normal;
  line-height: 1.35;
}

@media (min-width: 768px){
  .perfil-page .cadastro-topo-ficha > .row{
    grid-template-columns: minmax(176px, 196px) minmax(0, 1fr);
  }

  .perfil-page .dados-principais-topo{
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }

  .perfil-page .perfil-grid-item--vulgo,
  .perfil-page .perfil-grid-item--cpf{
    grid-column: span 2;
  }

  .perfil-page .perfil-grid-item--sexo,
  .perfil-page .perfil-grid-item--idade{
    grid-column: span 1;
  }

  .perfil-page .perfil-grid-item--nascimento{
    grid-column: span 2;
  }

  .perfil-page .perfil-grid-item--mae,
  .perfil-page .perfil-grid-item--pai,
  .perfil-page .perfil-grid-item--naturalidade,
  .perfil-page .perfil-grid-item--faccao{
    grid-column: span 4;
  }

  .perfil-page .perfil-grid-item--obito{
    grid-column: 1 / -1;
  }
}

@media (min-width: 992px){
  .perfil-page .dados-principais-topo{
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }

  .perfil-page .perfil-grid-item--vulgo{
    grid-column: span 4;
  }

  .perfil-page .perfil-grid-item--cpf{
    grid-column: span 2;
  }

  .perfil-page .perfil-grid-item--sexo{
    grid-column: span 1;
  }

  .perfil-page .perfil-grid-item--nascimento{
    grid-column: span 3;
  }

  .perfil-page .perfil-grid-item--idade{
    grid-column: span 2;
  }

  .perfil-page .perfil-grid-item--mae,
  .perfil-page .perfil-grid-item--pai,
  .perfil-page .perfil-grid-item--naturalidade,
  .perfil-page .perfil-grid-item--faccao{
    grid-column: span 6;
  }

  .perfil-page .perfil-grid-item--obito{
    grid-column: 1 / -1;
  }
}

@media (max-width: 767.98px){
  .cadastro-page .prontuario-topo__header,
  .perfil-page .prontuario-topo__header{
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .cadastro-page .cadastro-topo-actions{
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
    gap: 8px;
    padding-top: 2px;
  }

  .perfil-page .perfil-topo-hero{
    padding: 16px 12px 0;
  }

  .perfil-page .perfil-topo-actions{
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
    gap: 8px;
    padding-top: 2px;
  }

  .cadastro-page .cadastro-topo-actions .btn{
    flex: 0 0 auto;
  }

  .perfil-page .perfil-topo-actions .btn{
    flex: 0 0 auto;
  }
}

.perfil-page .perfil-photo-actions{
  gap: 8px;
}

.perfil-page .perfil-photo-actions .btn{
  min-height: 40px;
  border-radius: 14px !important;
}

.perfil-page .perfil-bottom-bar{
  margin-top: 12px;
  padding-top: 8px;
  border-top-color: transparent;
}

.perfil-page .perfil-bottom-actions{
  display: none;
}

.chart-panel{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.chart-panel__header{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.chart-panel__subtitle{
  color: var(--theme-text-soft) !important;
  line-height: 1.35;
}

.chart-panel__badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: #ffffff;
  color: var(--theme-dark-soft);
  box-shadow: inset 0 0 0 1px var(--theme-line-soft);
  white-space: nowrap;
}

.chart-panel__canvas-wrap{
  position: relative;
  min-height: 250px;
}

.chart-panel__empty{
  display: none;
  align-items: center;
  justify-content: center;
  min-height: 250px;
  color: var(--theme-text-soft);
  background: rgba(255,255,255,.7);
  border-radius: 14px;
}

.chart-panel__empty.is-visible{
  display: flex;
}

@media (min-width: 768px){
  .cadastro-page .cadastro-topo-ficha > .row{
    grid-template-columns: minmax(220px, 240px) minmax(0, 1fr);
    gap: 20px;
  }

  .cadastro-page .dados-principais-topo{
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }

  .cadastro-page .cadastro-grid-item--vulgo,
  .cadastro-page .cadastro-grid-item--cpf{
    grid-column: span 3;
  }

  .cadastro-page .cadastro-grid-item--sexo,
  .cadastro-page .cadastro-grid-item--idade{
    grid-column: span 1;
  }

  .cadastro-page .cadastro-grid-item--nascimento{
    grid-column: span 2;
  }

  .cadastro-page .cadastro-grid-item--mae,
  .cadastro-page .cadastro-grid-item--pai,
  .cadastro-page .cadastro-grid-item--naturalidade,
  .cadastro-page .cadastro-grid-item--faccao{
    grid-column: span 4;
  }

  .cadastro-page .cadastro-grid-item--obito{
    grid-column: 1 / -1;
  }

  .cadastro-page .cadastro-obito-grid{
    grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
  }

  .cadastro-page .cadastro-action-card{
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .cadastro-page .cadastro-action-card .d-flex.gap-2,
  .cadastro-page .endereco-item > .d-flex,
  .cadastro-page .antecedente-item > .d-flex,
  .cadastro-page .mandado-item > .d-flex,
  .cadastro-page .rede-item > .d-flex,
  .cadastro-page .prisao-item > .d-flex{
    flex-direction: row !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
  }

  .cadastro-page .endereco-item .d-flex.gap-2,
  .cadastro-page .antecedente-item .d-flex.gap-2,
  .cadastro-page .mandado-item .d-flex.gap-2,
  .cadastro-page .rede-item .d-flex.gap-2,
  .cadastro-page .prisao-item .d-flex.gap-2{
    width: auto;
  }

  .cadastro-page .cadastro-actions-row{
    justify-content: flex-end !important;
  }

  .cadastro-page .cadastro-actions-row .btn{
    width: auto;
  }

  .cadastro-page .ficha-actions{
    justify-content: flex-end;
  }

  .cadastro-page .ficha-actions .btn{
    width: auto;
    min-width: 260px;
  }
}

@media (min-width: 992px){
  .cadastro-page .cadastro-topo-ficha > .row{
    grid-template-columns: minmax(232px, 252px) minmax(0, 1fr);
    gap: 22px;
  }

  .cadastro-page .foto-3x4-trigger{
    width: min(100%, 236px);
    max-width: 236px;
  }

  .cadastro-page .dados-principais-topo{
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }

  .cadastro-page .cadastro-grid-item--vulgo{
    grid-column: span 4;
  }

  .cadastro-page .cadastro-grid-item--cpf{
    grid-column: span 2;
  }

  .cadastro-page .cadastro-grid-item--sexo{
    grid-column: span 1;
  }

  .cadastro-page .cadastro-grid-item--nascimento{
    grid-column: span 2;
  }

  .cadastro-page .cadastro-grid-item--idade{
    grid-column: span 2;
  }

  .cadastro-page .cadastro-grid-item--mae,
  .cadastro-page .cadastro-grid-item--pai,
  .cadastro-page .cadastro-grid-item--naturalidade,
  .cadastro-page .cadastro-grid-item--faccao{
    grid-column: span 6;
  }

  .cadastro-page .cadastro-grid-item--obito{
    grid-column: 1 / -1;
  }

  .cadastro-page .nome-topo-input{
    font-size: 1.08rem !important;
  }
}

@media (max-width: 991.98px){
  .main-content{
    padding: 10px !important;
  }

  .page-shell,
  .page-shell-standard,
  .cadastro-shell,
  .account-shell,
  .config-shell,
  .container-comparacao{
    width: 100% !important;
    max-width: 100% !important;
  }

  .page-shell-standard{
    padding: 12px !important;
    gap: 10px !important;
    border-radius: 16px !important;
  }

  .cadastro-page .cadastro-topo-shell{
    margin: 0 !important;
  }

  .cadastro-page .prontuario-topo{
    margin: 0 !important;
    padding: 16px 12px 0 !important;
  }

  .cadastro-page .cadastro-tabs-fixed{
    top: auto !important;
    margin-inline: 0 !important;
    padding: 12px 12px 0 !important;
  }

  .cadastro-page .ficha-actions{
    bottom: 6px;
  }

  .cadastro-page .modal-dialog,
  .perfil-page .modal-dialog{
    width: calc(100vw - 10px);
    max-width: calc(100vw - 10px);
  }
}

@media (max-width: 575.98px){
  .cadastro-page .nome-topo-input{
    font-size: 1rem !important;
  }

  .cadastro-page .prontuario-topo__titulo{
    width: auto;
    justify-content: flex-start;
    text-align: left;
  }

  .perfil-page .prontuario-topo__titulo{
    width: auto;
    justify-content: flex-start;
    text-align: left;
  }

  .cadastro-page .cadastro-topo-ficha{
    padding: 12px !important;
    border-radius: 18px !important;
  }

  .cadastro-page .cadastro-tab-panel-wrap{
    padding: 10px !important;
    border-radius: 18px !important;
  }

  .cadastro-page .endereco-item .d-flex.gap-2,
  .cadastro-page .antecedente-item .d-flex.gap-2,
  .cadastro-page .mandado-item .d-flex.gap-2,
  .cadastro-page .rede-item .d-flex.gap-2,
  .cadastro-page .prisao-item .d-flex.gap-2{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cadastro-page .modal-dialog,
  .perfil-page .modal-dialog{
    margin: .35rem auto 0 !important;
  }

  .cadastro-page .modal-content,
  .perfil-page .modal-content{
    border-radius: 18px !important;
  }
}

.cadastro-page .page-card,
.cadastro-page .cadastro-page-card,
.cadastro-page .cadastro-page-card-clean,
.cadastro-page .cadastro-topo-shell,
.cadastro-page .cadastro-topo-ficha,
.cadastro-page .cadastro-tab-panel-wrap,
.cadastro-page .cadastro-action-card,
.cadastro-page .cadastro-info-resumo,
.cadastro-page .endereco-item,
.cadastro-page .antecedente-item,
.cadastro-page .antecedente-item-card,
.cadastro-page .mandado-item,
.cadastro-page .rede-item,
.cadastro-page .prisao-item,
.cadastro-page .veic-lista-card,
.cadastro-page .veic-item-card,
.cadastro-page .teia-form-card,
.cadastro-page .teia-board,
.cadastro-page #tab-teia .teia-node-card,
.cadastro-page #tab-fotos .tatuagem-card,
.perfil-page .page-card,
.perfil-page .cadastro-page-card,
.perfil-page .cadastro-page-card-clean,
.perfil-page .cadastro-topo-shell,
.perfil-page .cadastro-topo-ficha,
.perfil-page .cadastro-tab-panel-wrap,
.perfil-page .perfil-readonly-field,
.perfil-page .perfil-list-card,
.perfil-page .perfil-block-card,
.perfil-page .perfil-gallery-item,
.perfil-page .perfil-empty-state{
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

.app-user-watermark{
  position: fixed;
  inset: 14px 16px;
  display: grid;
  grid-template-columns: repeat(4, minmax(110px, 1fr));
  align-content: space-evenly;
  justify-items: center;
  gap: 44px 18px;
  pointer-events: none;
  z-index: 999;
}

.app-user-watermark span{
  color: rgba(23, 26, 31, 0.065);
  font-size: clamp(12px, 1.1vw, 16px);
  font-weight: 800;
  letter-spacing: .14em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  transform: rotate(-18deg);
  user-select: none;
}

.perfil-page .perfil-list-card__title,
.perfil-page .perfil-block-card__title{
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.perfil-page .perfil-gallery-item img{
  border: 0 !important;
  box-shadow: none !important;
}

.perfil-page .cadastro-topo-shell .prontuario-topo__status{
  max-width: none !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

.cadastro-page .dados-principais-topo,
.perfil-page .dados-principais-topo{
  gap: 6px !important;
}

.cadastro-page .cadastro-tab-panel-wrap,
.perfil-page .cadastro-tab-panel-wrap{
  background: transparent !important;
}

.cadastro-page .cadastro-action-card,
.cadastro-page .cadastro-info-resumo,
.cadastro-page .endereco-item,
.cadastro-page .antecedente-item,
.cadastro-page .mandado-item,
.cadastro-page .rede-item,
.cadastro-page .prisao-item,
.cadastro-page .veic-lista-card,
.cadastro-page .veic-item-card,
.cadastro-page .teia-form-card,
.cadastro-page .teia-board,
.cadastro-page #tab-teia .teia-node-card,
.cadastro-page #tab-fotos .tatuagem-card,
.perfil-page .perfil-list-card,
.perfil-page .perfil-block-card,
.perfil-page .perfil-gallery-item,
.perfil-page .perfil-empty-state{
  background: transparent !important;
}

.cadastro-page .cadastro-readonly-inline,
.perfil-page .perfil-readonly-field,
.perfil-page .nome-topo-input{
  padding-left: 0 !important;
  padding-right: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.cadastro-page .dados-topo-box{
  gap: 8px !important;
}

.cadastro-page .nome-topo-wrap{
  gap: 4px !important;
}

.cadastro-page .nome-topo-input{
  border: 1px solid rgba(23, 26, 31, 0.12) !important;
  background: #ffffff !important;
  box-shadow: none !important;
}

.cadastro-page .cadastro-grid-item--nascimento .form-control,
.cadastro-page .cadastro-grid-item--idade .cadastro-readonly-inline,
.perfil-page .perfil-grid-item--nascimento .perfil-readonly-field,
.perfil-page .perfil-grid-item--idade .perfil-readonly-field{
  min-height: 38px !important;
  font-size: .92rem !important;
}

.perfil-page .perfil-readonly-field--danger{
  background: transparent !important;
  border: 0 !important;
  color: #b91c1c !important;
}

.cadastro-page .form-control,
.cadastro-page .form-select,
.cadastro-page textarea,
.cadastro-page .input-group-text,
.perfil-page .form-control,
.perfil-page .form-select,
.perfil-page textarea,
.perfil-page .input-group-text{
  border-color: rgba(23, 26, 31, 0.12) !important;
}

.cadastro-page .border,
.cadastro-page .border-top,
.cadastro-page .border-bottom,
.cadastro-page .border-start,
.cadastro-page .border-end,
.perfil-page .border,
.perfil-page .border-top,
.perfil-page .border-bottom,
.perfil-page .border-start,
.perfil-page .border-end,
.cadastro-page hr,
.perfil-page hr{
  border-color: transparent !important;
}

.perfil-page .perfil-list-card__title,
.perfil-page .perfil-block-card__title{
  margin-bottom: 8px !important;
  color: var(--theme-text-soft) !important;
}

@media (max-width: 991.98px){
  .app-user-watermark{
    grid-template-columns: repeat(3, minmax(96px, 1fr));
    gap: 34px 12px;
  }
}

@media (max-width: 767.98px){
  .app-user-watermark{
    grid-template-columns: repeat(2, minmax(92px, 1fr));
    inset: 10px 6px;
    gap: 28px 10px;
  }

  .app-user-watermark span{
    font-size: 11px;
  }
}

/* Ajustes finais de limpeza visual do cadastro/perfil */
.cadastro-page .nome-topo-wrap,
.perfil-page .nome-topo-wrap,
.cadastro-page .dados-topo-box,
.perfil-page .dados-topo-box{
  border: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.cadastro-page .nome-topo-wrap::before,
.cadastro-page .nome-topo-wrap::after,
.perfil-page .nome-topo-wrap::before,
.perfil-page .nome-topo-wrap::after,
.cadastro-page .dados-topo-box::before,
.cadastro-page .dados-topo-box::after,
.perfil-page .dados-topo-box::before,
.perfil-page .dados-topo-box::after{
  display: none !important;
  content: none !important;
}

.cadastro-page .cadastro-topo-ficha,
.perfil-page .cadastro-topo-ficha{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.cadastro-page .nome-topo-input,
.cadastro-page .form-control,
.cadastro-page .form-select,
.cadastro-page .naturalidade-select-wrap .ts-control,
.perfil-page .nome-topo-input,
.perfil-page .perfil-readonly-field{
  border: 1px solid rgba(23, 26, 31, 0.14) !important;
  background: #ffffff !important;
  box-shadow: none !important;
}

.perfil-page .perfil-readonly-field{
  padding: .58rem .72rem !important;
}

.perfil-page .perfil-readonly-field--danger{
  border-color: rgba(185, 28, 28, 0.22) !important;
  background: #ffffff !important;
  color: #b91c1c !important;
}

.cadastro-page .prontuario-topo__status--editing{
  color: #b91c1c !important;
  font-weight: 700 !important;
}

.cadastro-page .cadastro-actions-row--bottom{
  justify-content: flex-end !important;
  margin: 14px 0 0 !important;
  padding-top: 10px !important;
  border-top: 0 !important;
}

.cadastro-page .cadastro-bottom-icon-btn{
  width: 38px !important;
  min-width: 38px !important;
  height: 38px !important;
  min-height: 38px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  border-radius: 10px !important;
  border: 1px solid var(--theme-border) !important;
  background: var(--theme-surface-2) !important;
  color: var(--theme-title) !important;
  box-shadow: none !important;
}

.cadastro-page .cadastro-bottom-icon-btn .btn-tab-action__label{
  display: none !important;
}

.cadastro-page .cadastro-bottom-icon-btn:hover{
  background: var(--theme-surface-3) !important;
  color: var(--theme-title) !important;
}

.sidebar-user-clean__identity{
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.sidebar-user-clean__identity .sidebar-user-clean__name{
  flex: initial;
}

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

.sidebar-session-renew{
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 9px;
  border-radius: 999px;
  border: 1px solid var(--theme-border);
  background: var(--theme-surface);
  color: var(--theme-title);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
  transition: .18s ease;
}

.sidebar-session-renew:hover{
  background: var(--theme-surface-3);
  border-color: var(--theme-border-strong);
}

.sidebar-session-renew:disabled{
  opacity: .7;
  cursor: wait;
}

.sidebar-session-timer{
  width: fit-content;
  min-height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 8px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid var(--theme-border);
  color: var(--theme-text-soft);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  font-variant-numeric: tabular-nums;
}

.sidebar-session-timer--warning{
  border-color: rgba(185, 28, 28, 0.26);
  background: #fff5f5;
  color: #b91c1c;
}

.session-expiry-dialog{
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(17, 20, 25, 0.28);
  z-index: 2000;
}

.session-expiry-dialog[hidden]{
  display: none !important;
}

.session-expiry-dialog__card{
  width: min(420px, 100%);
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 12px;
  padding: 18px;
  border-radius: 22px;
  background: #ffffff;
  box-shadow: 0 24px 70px rgba(17, 20, 25, 0.20);
}

.session-expiry-dialog__icon{
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  background: #fff5f5;
  color: #b91c1c;
}

.session-expiry-dialog__content h6{
  margin: 0 0 4px;
  color: var(--theme-title);
  font-weight: 800;
}

.session-expiry-dialog__content p{
  margin: 0;
  color: var(--theme-text-soft);
  line-height: 1.4;
}

.session-expiry-dialog__button{
  grid-column: 1 / -1;
  min-height: 42px;
  border: 0;
  border-radius: 14px;
  background: var(--theme-title);
  color: #ffffff;
  font-weight: 800;
}

.session-expiry-dialog__button:disabled{
  opacity: .7;
  cursor: wait;
}

body.sidebar-collapsed .sidebar-user-clean__identity{
  display: none !important;
}

@media (max-width: 991.98px){
  .sidebar{
    min-height: 100dvh !important;
    height: 100dvh !important;
  }

  .sidebar-user-clean{
    margin-top: 8px !important;
    margin-bottom: calc(34px + env(safe-area-inset-bottom, 0px)) !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }

  .sidebar-session-row{
    gap: 6px;
  }
}

/* Perfil espelhado no mesmo ritmo visual do cadastro */
.perfil-page .page-shell-standard{
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  gap: 0 !important;
  overflow: visible !important;
}

.perfil-page .cadastro-topo-shell{
  margin: 0 !important;
  background: #ffffff !important;
  color: var(--theme-title) !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 18px !important;
  overflow: hidden;
}

.perfil-page .perfil-topo-hero{
  display: block !important;
  margin: 0 !important;
  padding: 18px 16px 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  position: relative;
  z-index: 2;
}

.perfil-page .prontuario-topo__header{
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  background: transparent !important;
}

.perfil-page .perfil-topo-actions{
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  margin-left: auto !important;
}

.perfil-page .cadastro-topo-ficha > .row{
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 22px !important;
  align-items: start !important;
  --bs-gutter-x: 0 !important;
  --bs-gutter-y: 0 !important;
}

.perfil-page .foto-ficha-box{
  width: 100%;
  max-width: 100% !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0 !important;
  min-height: 100%;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.perfil-page .perfil-photo-wrap .foto-3x4-wrap{
  width: min(100%, 220px) !important;
  max-width: 220px !important;
  margin: 0 auto !important;
  min-height: 0 !important;
  aspect-ratio: 3 / 4;
  border-radius: 18px !important;
  border: 1px solid rgba(23, 26, 31, 0.12) !important;
  background: #ffffff !important;
  box-shadow: 0 14px 32px rgba(15, 23, 42, 0.08) !important;
  overflow: hidden;
}

.perfil-page .dados-topo-box{
  gap: 8px !important;
}

.perfil-page .nome-topo-wrap{
  gap: 4px !important;
}

.perfil-page .nome-topo-input,
.perfil-page .perfil-readonly-field{
  min-height: 42px !important;
  padding: .58rem .72rem !important;
  border: 1px solid rgba(23, 26, 31, 0.12) !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  box-shadow: none !important;
}

.perfil-page .perfil-grid-item--nascimento .perfil-readonly-field,
.perfil-page .perfil-grid-item--idade .perfil-readonly-field{
  min-height: 38px !important;
  font-size: .92rem !important;
}

.perfil-page .perfil-list-grid{
  gap: 10px !important;
}

.perfil-page .perfil-list-card,
.perfil-page .perfil-block-card,
.perfil-page .perfil-gallery-item,
.perfil-page .perfil-empty-state{
  padding: 14px !important;
  border-radius: 18px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.perfil-page .perfil-list-card__lines,
.perfil-page .perfil-block-card{
  gap: 6px !important;
}

@media (min-width: 768px){
  .perfil-page .cadastro-topo-ficha > .row{
    grid-template-columns: minmax(220px, 240px) minmax(0, 1fr) !important;
    gap: 20px !important;
  }

  .perfil-page .dados-principais-topo{
    grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
  }

  .perfil-page .perfil-grid-item--vulgo,
  .perfil-page .perfil-grid-item--cpf{
    grid-column: span 3 !important;
  }

  .perfil-page .perfil-grid-item--sexo,
  .perfil-page .perfil-grid-item--idade{
    grid-column: span 1 !important;
  }

  .perfil-page .perfil-grid-item--nascimento{
    grid-column: span 2 !important;
  }

  .perfil-page .perfil-grid-item--mae,
  .perfil-page .perfil-grid-item--pai,
  .perfil-page .perfil-grid-item--naturalidade,
  .perfil-page .perfil-grid-item--faccao{
    grid-column: span 4 !important;
  }

  .perfil-page .perfil-grid-item--obito{
    grid-column: 1 / -1 !important;
  }
}

@media (min-width: 992px){
  .perfil-page .cadastro-topo-ficha > .row{
    grid-template-columns: minmax(232px, 252px) minmax(0, 1fr) !important;
    gap: 22px !important;
  }

  .perfil-page .perfil-photo-wrap .foto-3x4-wrap{
    width: min(100%, 236px) !important;
    max-width: 236px !important;
  }

  .perfil-page .dados-principais-topo{
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  }

  .perfil-page .perfil-grid-item--vulgo{
    grid-column: span 4 !important;
  }

  .perfil-page .perfil-grid-item--cpf{
    grid-column: span 2 !important;
  }

  .perfil-page .perfil-grid-item--sexo{
    grid-column: span 1 !important;
  }

  .perfil-page .perfil-grid-item--nascimento{
    grid-column: span 2 !important;
  }

  .perfil-page .perfil-grid-item--idade{
    grid-column: span 2 !important;
  }

  .perfil-page .perfil-grid-item--mae,
  .perfil-page .perfil-grid-item--pai,
  .perfil-page .perfil-grid-item--naturalidade,
  .perfil-page .perfil-grid-item--faccao{
    grid-column: span 6 !important;
  }

  .perfil-page .perfil-grid-item--obito{
    grid-column: 1 / -1 !important;
  }

  .perfil-page .nome-topo-input{
    font-size: 1.08rem !important;
  }
}

@media (max-width: 767.98px){
  .perfil-page .perfil-topo-actions{
    width: 100% !important;
    margin-left: 0 !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    padding-top: 2px !important;
  }
}

/* Respiro extra entre topo, abas e conteúdo nas telas de qualificação */
.cadastro-page .prontuario-topo__label,
.perfil-page .cadastro-topo-shell .prontuario-topo__label{
  font-size: 22px !important;
  line-height: 1.16 !important;
  font-weight: 700 !important;
}

.cadastro-page .prontuario-topo__status,
.perfil-page .cadastro-topo-shell .prontuario-topo__status{
  margin-top: 2px !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
}

.cadastro-page .cadastro-topo-shell .perfil-tabs.perfil-tabs--center,
.cadastro-page .cadastro-tabs-fixed,
.perfil-page .cadastro-topo-shell .perfil-tabs.perfil-tabs--center,
.perfil-page .cadastro-tabs-fixed{
  gap: 8px !important;
  padding: 18px 16px 10px !important;
}

.cadastro-page .cadastro-tabs-fixed .tab-btn,
.perfil-page .cadastro-tabs-fixed .tab-btn{
  padding: 15px 20px !important;
  font-size: .98rem !important;
  text-transform: uppercase !important;
}

.cadastro-page .cadastro-tabs-fixed-content,
.perfil-page .cadastro-tabs-fixed-content{
  padding-top: 14px !important;
}

.cadastro-page .cadastro-tab-panel-wrap,
.perfil-page .cadastro-tab-panel-wrap{
  padding-top: 16px !important;
}

@media (max-width: 575.98px){
  .cadastro-page .prontuario-topo__label,
  .perfil-page .cadastro-topo-shell .prontuario-topo__label{
    font-size: 20px !important;
  }

  .cadastro-page .cadastro-topo-shell .perfil-tabs.perfil-tabs--center,
  .cadastro-page .cadastro-tabs-fixed,
  .perfil-page .cadastro-topo-shell .perfil-tabs.perfil-tabs--center,
  .perfil-page .cadastro-tabs-fixed{
    gap: 6px !important;
    padding: 16px 12px 10px !important;
  }

  .cadastro-page .cadastro-tabs-fixed .tab-btn,
  .perfil-page .cadastro-tabs-fixed .tab-btn{
    padding: 14px 16px !important;
  }
}
