/* ============================================================
   IMA — tema visual do sistema Instruções Normativas
   Tokens copiados de ima-visual/ima-ds.css (Sistema de Design IMA v1.0,
   Manual de Marca IMA 2024). Atualizar os tokens a partir de lá.
   ============================================================ */

:root {
  /* Marca — azuis */
  --ima-blue:        #00406D;  /* azul institucional — menus, cabeçalhos */
  --ima-blue-700:    #0A4F82;  /* hover sobre azul */
  --ima-blue-600:    #13608F;
  --ima-blue-900:    #002E50;  /* pressionado / profundidade */
  --ima-accent:      #009FE3;  /* azul claro — item selecionado, foco, links */
  --ima-accent-600:  #0089C7;
  --ima-accent-050:  #E5F5FD;  /* fundo de seleção suave */

  /* Marca — ações */
  --ima-green:       #5FBF49;  /* verde — confirmar / aprovar / sucesso */
  --ima-green-600:   #4DA438;  /* botão verde (texto branco AA) */
  --ima-green-700:   #3E8A2C;  /* hover do verde */
  --ima-green-050:   #EDF7E9;
  --ima-red:         #E30613;  /* vermelho — excluir / rejeitar / erro */
  --ima-red-600:     #C50510;  /* hover do vermelho */
  --ima-red-700:     #A40410;
  --ima-red-050:     #FDEAEB;

  /* Apoio (estados não-marca) */
  --ima-amber:       #E8A100;  /* atenção / pendente */
  --ima-amber-050:   #FDF3DC;
  --ima-orange:      #D2691E;  /* indeferido — diferente do vermelho (cancelado/arquivado) e do amarelo (pendência) */
  --ima-orange-050:  #FBE9DC;
  --ima-orange-700:  #A64E14;

  /* Neutros */
  --gray-900: #1A2430;  /* texto principal (azul-acinzentado) */
  --gray-800: #2B3744;
  --gray-700: #45525F;  /* texto secundário */
  --gray-600: #58646F;  /* texto auxiliar reforçado */
  --gray-500: #6E7A86;  /* texto auxiliar / placeholder */
  --gray-400: #97A2AD;
  --gray-300: #C6CDD4;  /* bordas */
  --gray-200: #E1E6EA;  /* divisores */
  --gray-100: #EEF1F4;  /* fundos de campo */
  --gray-050: #F5F7F9;  /* fundo de página */
  --white:    #FFFFFF;

  /* Tipografia */
  --font-sans: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  --font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;

  --text-xs:   12px;
  --text-sm:   13px;
  --text-base: 14px;
  --text-md:   16px;
  --text-lg:   18px;
  --text-xl:   22px;
  --text-2xl:  28px;
  --text-3xl:  36px;
  --text-4xl:  48px;

  --fw-regular: 400;
  --fw-medium:  500;
  --fw-semibold: 600;
  --fw-bold:    700;

  /* Espaçamento (base 4) */
  --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
  --sp-5: 20px; --sp-6: 24px; --sp-8: 32px; --sp-10: 40px;
  --sp-12: 48px; --sp-16: 64px;

  /* Raios */
  --radius-sm: 4px;
  --radius:    6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 999px;

  /* Sombras */
  --shadow-xs: 0 1px 2px rgba(16, 35, 53, .06);
  --shadow-sm: 0 1px 3px rgba(16, 35, 53, .10), 0 1px 2px rgba(16, 35, 53, .06);
  --shadow-md: 0 4px 12px rgba(16, 35, 53, .10);
  --shadow-lg: 0 12px 32px rgba(16, 35, 53, .16);

  /* Layout */
  --sidebar-w: 256px;
  --topbar-h:  60px;

  /* Foco acessível */
  --focus-ring: 0 0 0 3px rgba(0, 159, 227, .35);
}

/* ============================================================
   PONTE IMA → Bootstrap 4 / AdminLTE 3
   O ima-ds.css redefine .btn/.card/.table com os mesmos nomes do
   Bootstrap; importá-lo inteiro quebraria as telas. Aqui os tokens
   oficiais são aplicados às classes que o sistema já usa.
   ============================================================ */

/* ---------- Base ---------- */
body,
.layout-top-nav .wrapper,
.content-wrapper {
  font-family: var(--font-sans);
  color: var(--gray-900);
  -webkit-font-smoothing: antialiased;
}
.content-wrapper, body.login-page, body.hold-transition { background: var(--gray-050); }
.sidebar-mini h1, .login-page h1,
.sidebar-mini h2, .login-page h2,
.sidebar-mini h3, .login-page h3,
.sidebar-mini h4, .login-page h4,
.sidebar-mini h5, .login-page h5,
.sidebar-mini .h1, .login-page .h1,
.sidebar-mini .h2, .login-page .h2,
.sidebar-mini .h3, .login-page .h3,
.sidebar-mini .h4, .login-page .h4,
.sidebar-mini .h5, .login-page .h5 { font-family: var(--font-sans); color: var(--ima-blue); font-weight: var(--fw-semibold); }
.content-header h1 { font-size: var(--text-xl); }
.sidebar-mini a, .login-page a { color: var(--ima-accent-600); }
.sidebar-mini a:hover, .login-page a:hover { color: var(--ima-blue); }
::selection { background: var(--ima-accent-050); }

/* ---------- Cabeçalho (menu superior — páginas públicas) ---------- */
.navbar-navy, .navbar-dark.navbar-navy { background: var(--ima-blue) !important; border-bottom: 0; box-shadow: var(--shadow-sm); }
.main-header .navbar-brand { padding: 6px 0; }
.main-header .navbar-brand .brand-image { box-shadow: none !important; opacity: 1 !important; max-height: 36px; height: 36px; width: auto; margin: 0; float: none; }
.navbar-dark .navbar-nav .nav-link { color: #fff; font-weight: var(--fw-medium); border-radius: var(--radius); padding: .45rem .8rem; transition: background .14s; }
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus { color: #fff; background: rgba(255, 255, 255, .10); }
.navbar-dark .navbar-nav .nav-link.active,
.navbar-dark .navbar-nav .active > .nav-link { color: #fff; background: var(--ima-accent); }
.navbar-dark .navbar-nav span.nav-link:hover { background: transparent; }

/* ---------- Botões: azul = primário, verde = confirmar, vermelho = excluir ---------- */
.sidebar-mini .btn, .login-page .btn { font-family: var(--font-sans); font-weight: var(--fw-semibold); border-radius: var(--radius); }
.sidebar-mini .btn:focus, .login-page .btn:focus,
.sidebar-mini .btn.focus, .login-page .btn.focus { box-shadow: var(--focus-ring) !important; }
.sidebar-mini .btn-primary, .login-page .btn-primary,
.sidebar-mini .bg-navy.btn, .login-page .bg-navy.btn,
.sidebar-mini .btn.bg-navy, .login-page .btn.bg-navy { background: var(--ima-blue) !important; border-color: var(--ima-blue) !important; color: #fff !important; }
.sidebar-mini .btn-primary:hover, .login-page .btn-primary:hover,
.sidebar-mini .btn.bg-navy:hover, .login-page .btn.bg-navy:hover { background: var(--ima-blue-700) !important; border-color: var(--ima-blue-700) !important; }
.sidebar-mini .btn-info, .login-page .btn-info { background: var(--ima-accent); border-color: var(--ima-accent); color: #fff; }
.sidebar-mini .btn-info:hover, .login-page .btn-info:hover { background: var(--ima-accent-600); border-color: var(--ima-accent-600); }
.sidebar-mini .btn-success, .login-page .btn-success { background: var(--ima-green-600); border-color: var(--ima-green-600); color: #fff; }
.sidebar-mini .btn-success:hover, .login-page .btn-success:hover { background: var(--ima-green-700); border-color: var(--ima-green-700); }
.sidebar-mini .btn-danger, .login-page .btn-danger { background: var(--ima-red); border-color: var(--ima-red); color: #fff; }
.sidebar-mini .btn-danger:hover, .login-page .btn-danger:hover { background: var(--ima-red-600); border-color: var(--ima-red-600); }
.sidebar-mini .btn-warning, .login-page .btn-warning { background: var(--ima-amber); border-color: var(--ima-amber); color: #fff; }
.sidebar-mini .btn-default, .login-page .btn-default { background: #fff; border-color: var(--gray-300); color: var(--ima-blue); }
.sidebar-mini .btn-default:hover, .login-page .btn-default:hover { background: var(--gray-050); border-color: var(--ima-blue); color: var(--ima-blue); }
.sidebar-mini .btn-outline-success, .login-page .btn-outline-success { color: var(--ima-green-700); border-color: #B9DFAC; }
.sidebar-mini .btn-outline-success:hover, .login-page .btn-outline-success:hover { background: var(--ima-green-600); border-color: var(--ima-green-600); color: #fff; }
.sidebar-mini .btn-outline-danger, .login-page .btn-outline-danger { color: var(--ima-red); border-color: #F0B5B9; }
.sidebar-mini .btn-outline-danger:hover, .login-page .btn-outline-danger:hover { background: var(--ima-red); border-color: var(--ima-red); color: #fff; }
.sidebar-mini .btn-outline-info, .login-page .btn-outline-info { color: var(--ima-accent-600); border-color: #B8E5F8; }
.sidebar-mini .btn-outline-info:hover, .login-page .btn-outline-info:hover { background: var(--ima-accent); border-color: var(--ima-accent); color: #fff; }
.sidebar-mini .btn-outline-dark, .login-page .btn-outline-dark,
.sidebar-mini .btn-outline-secondary, .login-page .btn-outline-secondary { color: var(--gray-700); border-color: var(--gray-300); }
.sidebar-mini .btn-outline-dark:hover, .login-page .btn-outline-dark:hover,
.sidebar-mini .btn-outline-secondary:hover, .login-page .btn-outline-secondary:hover { background: var(--ima-blue); border-color: var(--ima-blue); color: #fff; }
.sidebar-mini .btn-outline-warning, .login-page .btn-outline-warning { color: #9A6E00; border-color: #F2D89A; }
.sidebar-mini .btn-outline-warning:hover, .login-page .btn-outline-warning:hover { background: var(--ima-amber); border-color: var(--ima-amber); color: #fff; }

/* ---------- Cores de fundo do AdminLTE → paleta IMA ---------- */
.sidebar-mini .bg-navy, .login-page .bg-navy { background-color: var(--ima-blue) !important; color: #fff !important; }
.sidebar-mini .bg-primary, .login-page .bg-primary { background-color: var(--ima-blue) !important; }
.sidebar-mini .bg-lightblue, .login-page .bg-lightblue,
.sidebar-mini .bg-info, .login-page .bg-info { background-color: var(--ima-accent) !important; color: #fff !important; }
.sidebar-mini .bg-success, .login-page .bg-success { background-color: var(--ima-green-600) !important; }
.sidebar-mini .bg-danger, .login-page .bg-danger { background-color: var(--ima-red) !important; }
.sidebar-mini .bg-warning, .login-page .bg-warning,
.sidebar-mini .bg-yellow, .login-page .bg-yellow { background-color: var(--ima-amber) !important; color: #fff !important; }
.sidebar-mini .text-primary, .login-page .text-primary { color: var(--ima-blue) !important; }
.sidebar-mini .text-info, .login-page .text-info { color: var(--ima-accent-600) !important; }
.sidebar-mini .text-success, .login-page .text-success { color: var(--ima-green-700) !important; }
.sidebar-mini .text-danger, .login-page .text-danger { color: var(--ima-red) !important; }
.sidebar-mini .text-warning, .login-page .text-warning { color: #9A6E00 !important; }

/* ---------- Cards ---------- */
.sidebar-mini .card, .login-page .card { border: 1px solid var(--gray-200); border-radius: var(--radius-md); box-shadow: var(--shadow-xs); }
.sidebar-mini .card-header, .login-page .card-header { background: #fff; border-bottom: 1px solid var(--gray-200); }
.sidebar-mini .card-title, .login-page .card-title { color: var(--ima-blue); font-weight: var(--fw-semibold); font-size: var(--text-md); }
.sidebar-mini .card-primary:not(.card-outline) > .card-header, .login-page .card-primary:not(.card-outline) > .card-header,
.sidebar-mini .card-primary.card-tabs > .card-header, .login-page .card-primary.card-tabs > .card-header { background: var(--ima-blue); }
.sidebar-mini .card-primary:not(.card-outline) > .card-header .card-title, .login-page .card-primary:not(.card-outline) > .card-header .card-title,
.sidebar-mini .card-primary:not(.card-outline) > .card-header a, .login-page .card-primary:not(.card-outline) > .card-header a { color: #fff; }
.sidebar-mini .card-primary.card-outline, .login-page .card-primary.card-outline { border-top: 3px solid var(--ima-blue); }
.sidebar-mini .card-footer, .login-page .card-footer { background: var(--gray-050); border-top: 1px solid var(--gray-200); }
.sidebar-mini .card-tabs .nav-tabs .nav-link.active, .login-page .card-tabs .nav-tabs .nav-link.active,
.sidebar-mini .nav-tabs .nav-link.active, .login-page .nav-tabs .nav-link.active { color: var(--ima-blue); border-top: 3px solid var(--ima-accent); font-weight: var(--fw-semibold); }
.sidebar-mini .nav-tabs .nav-link, .login-page .nav-tabs .nav-link { color: var(--gray-700); }

/* ---------- Tabelas ---------- */
.sidebar-mini .table, .login-page .table { color: var(--gray-800); }
.sidebar-mini .table thead th, .login-page .table thead th { background: var(--gray-050); color: var(--gray-700); font-size: var(--text-xs); font-weight: var(--fw-semibold); text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid var(--gray-200); }
.sidebar-mini .table-bordered, .login-page .table-bordered,
.sidebar-mini .table-bordered td, .login-page .table-bordered td,
.sidebar-mini .table-bordered th, .login-page .table-bordered th { border-color: var(--gray-200); }
.sidebar-mini .table-striped tbody tr:nth-of-type(odd), .login-page .table-striped tbody tr:nth-of-type(odd) { background: var(--gray-050); }
.sidebar-mini .table-hover tbody tr:hover, .login-page .table-hover tbody tr:hover { background: var(--ima-accent-050); }

/* ---------- Alertas, callouts e badges ---------- */
.sidebar-mini .alert, .login-page .alert { border-radius: var(--radius-md); }
.sidebar-mini .alert-success, .login-page .alert-success { background: var(--ima-green-050); border-color: #C2E4B6; color: var(--ima-green-700); }
.sidebar-mini .alert-danger, .login-page .alert-danger,
.sidebar-mini .alert-error, .login-page .alert-error { background: var(--ima-red-050); border-color: #F3BFC2; color: var(--ima-red-700); }
.sidebar-mini .alert-info, .login-page .alert-info { background: var(--ima-accent-050); border-color: #B8E5F8; color: var(--ima-accent-600); }
.sidebar-mini .alert-warning, .login-page .alert-warning { background: var(--ima-amber-050); border-color: #F2D89A; color: #8A6200; }
.sidebar-mini .alert .close, .login-page .alert .close { color: inherit; }
.sidebar-mini .callout, .login-page .callout { border-radius: var(--radius); box-shadow: none; border-left-width: 4px; }
.sidebar-mini .callout.callout-danger, .login-page .callout.callout-danger { border-left-color: var(--ima-red); background: var(--ima-red-050); }
.sidebar-mini .callout.callout-success, .login-page .callout.callout-success { border-left-color: var(--ima-green-600); background: var(--ima-green-050); }
.sidebar-mini .callout.callout-warning, .login-page .callout.callout-warning { border-left-color: var(--ima-amber); background: var(--ima-amber-050); }
.sidebar-mini .callout.callout-info, .login-page .callout.callout-info { border-left-color: var(--ima-accent); background: var(--ima-accent-050); }
.sidebar-mini .badge, .login-page .badge { border-radius: var(--radius-pill); font-weight: var(--fw-semibold); padding: .3em .7em; }
.sidebar-mini .badge-primary, .login-page .badge-primary { background: var(--ima-blue); }
.sidebar-mini .badge-info, .login-page .badge-info { background: var(--ima-accent); }
.sidebar-mini .badge-success, .login-page .badge-success { background: var(--ima-green-600); }
.sidebar-mini .badge-danger, .login-page .badge-danger { background: var(--ima-red); }
.sidebar-mini .badge-warning, .login-page .badge-warning { background: var(--ima-amber); color: #fff; }
.sidebar-mini .badge-secondary, .login-page .badge-secondary { background: var(--gray-400); }

/* ---------- Formulários ---------- */
.sidebar-mini .form-control, .login-page .form-control,
.sidebar-mini .custom-select, .login-page .custom-select { border-color: var(--gray-300); border-radius: var(--radius); color: var(--gray-900); }
.sidebar-mini .form-control:focus, .login-page .form-control:focus,
.sidebar-mini .custom-select:focus, .login-page .custom-select:focus { border-color: var(--ima-accent); box-shadow: var(--focus-ring); }
.sidebar-mini label, .login-page label { color: var(--gray-800); font-weight: var(--fw-semibold); }

/* ---------- Linha do tempo (sugestões) ---------- */
.sidebar-mini .timeline > div > .timeline-item, .login-page .timeline > div > .timeline-item { border-radius: var(--radius-md); box-shadow: var(--shadow-xs); border: 1px solid var(--gray-200); }
.sidebar-mini .timeline > div > .timeline-item > .timeline-header, .login-page .timeline > div > .timeline-item > .timeline-header { color: var(--ima-blue); font-weight: var(--fw-semibold); border-bottom-color: var(--gray-200); }
.sidebar-mini .timeline::before, .login-page .timeline::before { background: var(--gray-200); }

/* ---------- Paginação / DataTables ---------- */
.sidebar-mini .page-item.active .page-link, .login-page .page-item.active .page-link { background: var(--ima-blue); border-color: var(--ima-blue); }
.sidebar-mini .page-link, .login-page .page-link { color: var(--ima-accent-600); }

/* ---------- Rodapé ---------- */
.main-footer { background: #fff; border-top: 1px solid var(--gray-200); color: var(--gray-600); font-size: var(--text-sm); }

/* ---------- Tela de erro de login / acesso pendente ---------- */
.login-page .login-logo { color: var(--ima-blue); }
.login-page .login-logo img { max-width: 260px; height: auto; margin-bottom: var(--sp-2); }
.login-page .card { border-top: 4px solid var(--ima-blue); }

/* ============================================================
   ÁREA ADMINISTRATIVA — menu lateral (padrão .ima-sidebar do DS)
   ============================================================ */
.ima-main-sidebar,
.ima-main-sidebar .sidebar { background: var(--ima-blue) !important; }
.ima-main-sidebar { box-shadow: var(--shadow-md) !important; }

/* Marca */
.ima-main-sidebar .ima-brand {
  display: flex; align-items: center; justify-content: center;
  height: var(--topbar-h); padding: 0 var(--sp-5);
  border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
  background: var(--ima-blue);
}
.ima-brand__logo { height: 32px; width: auto; display: block; }
.ima-brand__sigla { display: none; height: 30px; width: 30px; object-fit: contain; background: #fff; border-radius: var(--radius); padding: 2px; }
.sidebar-mini.sidebar-collapse .ima-main-sidebar:not(:hover) .ima-brand__logo { display: none; }
.sidebar-mini.sidebar-collapse .ima-main-sidebar:not(:hover) .ima-brand__sigla { display: block; }

/* Seções */
.ima-main-sidebar .nav-header {
  padding: var(--sp-5) var(--sp-3) var(--sp-2) !important;
  font-size: 11px; font-weight: var(--fw-semibold); letter-spacing: .08em; text-transform: uppercase;
  color: rgba(255, 255, 255, .65) !important; background: transparent !important;
}

/* Itens */
.ima-main-sidebar .nav-sidebar { padding: 0 var(--sp-1); }
.ima-main-sidebar .nav-sidebar > .nav-item { margin-bottom: 2px; }
.ima-main-sidebar .nav-sidebar .nav-link {
  color: #fff !important; font-weight: var(--fw-medium); font-size: var(--text-base);
  border-radius: var(--radius); padding: 10px var(--sp-3);
  transition: background .14s, color .14s;
}
.ima-main-sidebar .nav-sidebar .nav-link .nav-icon { opacity: .9; }
.ima-main-sidebar .nav-sidebar .nav-link:hover { background: rgba(255, 255, 255, .10) !important; color: #fff !important; }
/* Item SELECIONADO — azul claro, texto branco */
.ima-main-sidebar .nav-sidebar > .nav-item > .nav-link.active {
  background: var(--ima-accent) !important; color: #fff !important; font-weight: var(--fw-semibold);
  box-shadow: 0 2px 8px rgba(0, 159, 227, .35) !important;
}
.ima-main-sidebar .nav-sidebar .nav-link .badge { background: var(--ima-amber); color: #fff; }

/* Topbar branca (cabeçalho da área de trabalho) */
.main-header.ima-topbar {
  height: var(--topbar-h); background: #fff !important;
  border-bottom: 1px solid var(--gray-200) !important; box-shadow: none;
  padding: 0 var(--sp-4);
}
.main-header.ima-topbar .nav-link { color: var(--ima-blue) !important; border-radius: var(--radius); }
.main-header.ima-topbar a.nav-link:hover { background: var(--gray-100); }
.ima-topbar__title { font-size: var(--text-lg); font-weight: var(--fw-semibold); color: var(--ima-blue) !important; }
.ima-topbar__user { color: var(--gray-800) !important; font-weight: var(--fw-medium); }
.ima-topbar__perfil {
  margin-left: var(--sp-2); padding: 1px 8px; border-radius: var(--radius-pill);
  background: var(--ima-accent-050); color: var(--ima-accent-600); font-weight: var(--fw-semibold); font-size: 11px;
}

/* Conteúdo ao lado do menu */
.sidebar-mini .content-wrapper { background: var(--gray-050); }
.sidebar-mini .content-wrapper > .content-header .container,
.sidebar-mini .content-wrapper > .content > .container { max-width: 1280px; }

/* Banner de homologação: no layout com menu lateral (header/sidebar fixos)
   vira faixa fixa no rodapé para não cobrir o logo e a topbar */
.sidebar-mini .ima-banner-homolog { position: fixed !important; top: auto !important; bottom: 0; left: 0; right: 0; z-index: 2000; }
.sidebar-mini .wrapper { padding-bottom: 32px; }

/* Páginas públicas: cabeçalho das INs/DTs no mesmo azul do topo */
body:not(.sidebar-mini):not(.login-page) .bg-lightblue { background-color: var(--ima-blue) !important; color: #fff !important; }
body:not(.sidebar-mini):not(.login-page) .bg-lightblue .btn-tool { color: rgba(255, 255, 255, .85); }
body:not(.sidebar-mini):not(.login-page) .bg-lightblue .btn-tool:hover { color: #fff; }

/* ============================================================
   CARDS DE IN/DT (padrão IMA) — público e admin
   Rodapé claro; DOWNLOAD = ação primária azul; demais = contornados
   ============================================================ */
:is(.layout-top-nav, .sidebar-mini) .content .card {
  border: 1px solid var(--gray-200); border-radius: var(--radius-md);
  box-shadow: var(--shadow-xs); overflow: hidden; margin-bottom: var(--sp-3);
}
:is(.layout-top-nav, .sidebar-mini) .content .card > .card-header { border-bottom: 0; }
:is(.layout-top-nav, .sidebar-mini) .content .card > .card-header .card-title { font-size: 15px; font-weight: var(--fw-semibold); letter-spacing: .01em; }
:is(.layout-top-nav, .sidebar-mini) .content .card > .card-header .card-subtitle { color: rgba(255, 255, 255, .78) !important; font-weight: var(--fw-medium); }
:is(.layout-top-nav, .sidebar-mini) .content .card > .card-header .card-subtitle b { font-weight: var(--fw-medium); }
/* Revogada é status, não ação de excluir: cinza neutro em vez de vermelho */
:is(.layout-top-nav, .sidebar-mini) .bg-danger.card-header { background-color: var(--gray-600) !important; }

:is(.layout-top-nav, .sidebar-mini) .content .card > .card-body { color: var(--gray-800); line-height: 1.6; }

/* Rodapé claro no lugar do azul-marinho */
:is(.layout-top-nav, .sidebar-mini) .content .card > .card-footer.bg-navy {
  background: var(--gray-050) !important; color: var(--gray-800) !important;
  border-top: 1px solid var(--gray-200); padding: var(--sp-3) var(--sp-4);
}

/* Sub-cards de requerimentos dentro da IN */
:is(.layout-top-nav, .sidebar-mini) .content .card .card { box-shadow: none; margin-bottom: var(--sp-2); }
:is(.layout-top-nav, .sidebar-mini) .content .card .card > .card-header.bg-light { background: var(--gray-050) !important; border-bottom: 1px solid var(--gray-200); }
:is(.layout-top-nav, .sidebar-mini) .content .card .card > .card-header.bg-light .card-title { color: var(--ima-blue); font-size: var(--text-base); }
:is(.layout-top-nav, .sidebar-mini) .content .card .table thead th { background: var(--gray-050); color: var(--gray-700); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: .04em; }
:is(.layout-top-nav, .sidebar-mini) .content .card .table-bordered,
:is(.layout-top-nav, .sidebar-mini) .content .card .table-bordered td,
:is(.layout-top-nav, .sidebar-mini) .content .card .table-bordered th { border-color: var(--gray-200); }

/* Botões dos cards públicos */
.layout-top-nav .content .card .btn:not(.btn-tool) {
  display: inline-flex; align-items: center; gap: 6px;
  height: 36px; padding: 0 var(--sp-4); margin: 2px 0 2px var(--sp-2);
  font-family: var(--font-sans); font-size: var(--text-sm); font-weight: var(--fw-semibold); letter-spacing: .02em;
  border-radius: var(--radius); box-shadow: none; transition: background .14s, border-color .14s, color .14s;
}
.layout-top-nav .content .card .btn:not(.btn-tool):focus { box-shadow: var(--focus-ring); }
/* neutros: VISUALIZAR, VER HISTÓRICO, DOWNLOAD do corpo */
.layout-top-nav .content .card .btn-outline-secondary,
.layout-top-nav .content .card .btn-outline-primary,
.layout-top-nav .content .card .btn-outline-dark,
.layout-top-nav .content .card .btn-default {
  background: #fff; color: var(--ima-blue); border: 1px solid var(--gray-300);
}
.layout-top-nav .content .card .btn-outline-secondary:hover,
.layout-top-nav .content .card .btn-outline-primary:hover,
.layout-top-nav .content .card .btn-outline-dark:hover,
.layout-top-nav .content .card .btn-default:hover {
  background: var(--gray-050); color: var(--ima-blue); border-color: var(--ima-blue);
}
.layout-top-nav .content .card > .card-body .btn-outline-dark { margin-left: 0; margin-bottom: var(--sp-3); }
/* primária: DOWNLOAD do rodapé */
.layout-top-nav .content .card .btn-outline-warning {
  background: var(--ima-blue); color: #fff; border: 1px solid var(--ima-blue);
}
.layout-top-nav .content .card .btn-outline-warning:hover { background: var(--ima-blue-700); border-color: var(--ima-blue-700); color: #fff; }
/* participação: ENVIAR SUGESTÃO (contornado verde do DS) */
.layout-top-nav .content .card .btn-outline-success {
  background: #fff; color: var(--ima-green-700); border: 1px solid #B9DFAC;
}
.layout-top-nav .content .card .btn-outline-success:hover { background: var(--ima-green-050); border-color: var(--ima-green-600); color: var(--ima-green-700); }

/* Admin: cabeçalhos coloridos no azul institucional, título sempre branco */
.sidebar-mini .content .card > .card-header.bg-lightblue { background-color: var(--ima-blue) !important; }
.sidebar-mini .content .card > .card-header:is(.bg-lightblue, .bg-navy, .bg-danger, .bg-info, .bg-primary) .card-title,
.sidebar-mini .content .card > .card-header:is(.bg-lightblue, .bg-navy, .bg-danger, .bg-info, .bg-primary) .btn-tool { color: #fff !important; }
/* Botão claro (feito para o rodapé escuro antigo) visível no rodapé claro */
.sidebar-mini .content .card > .card-footer .btn-outline-light { background: #fff; color: var(--ima-blue); border-color: var(--gray-300); }
.sidebar-mini .content .card > .card-footer .btn-outline-light:hover { background: var(--gray-050); border-color: var(--ima-blue); }

/* ============================================================
   PAINEL INICIAL (admin) — cartões de atalho
   ============================================================ */
.ima-subtitulo { margin: var(--sp-2) 0 0; color: var(--gray-600); font-size: var(--text-md); }
.ima-secao {
  margin: var(--sp-6) 0 var(--sp-3); font-size: 11px; font-weight: var(--fw-semibold);
  letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500);
}
.ima-secao:first-child { margin-top: var(--sp-2); }
.ima-atalho {
  display: flex; align-items: center; gap: var(--sp-4);
  height: calc(100% - var(--sp-4)); min-height: 84px; margin-bottom: var(--sp-4); padding: var(--sp-4) var(--sp-5);
  background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius-md); box-shadow: var(--shadow-xs);
  color: var(--gray-900) !important; text-decoration: none !important;
  transition: border-color .14s, box-shadow .14s, transform .14s;
}
.ima-atalho:hover { border-color: var(--ima-accent); box-shadow: var(--shadow-md); transform: translateY(-1px); }
.ima-atalho:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.ima-atalho__icone {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: var(--radius-md);
  background: var(--ima-accent-050); color: var(--ima-blue); font-size: 19px;
  transition: background .14s, color .14s;
}
.ima-atalho:hover .ima-atalho__icone { background: var(--ima-blue); color: #fff; }
.ima-atalho__texto { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.ima-atalho__titulo { font-weight: var(--fw-semibold); color: var(--ima-blue); font-size: var(--text-md); line-height: 1.3; }
.ima-atalho__desc { color: var(--gray-600); font-size: var(--text-sm); margin-top: 2px; }
.ima-atalho__seta { color: var(--gray-400); font-size: 12px; transition: color .14s, transform .14s; }
.ima-atalho:hover .ima-atalho__seta { color: var(--ima-accent); transform: translateX(2px); }

/* ============================================================
   BOTÕES POR PAPEL — vale para todo o sistema
   azul = principal · verde = confirmar · vermelho = excluir · contornado = neutro
   ============================================================ */
/* Link do tema não pode pintar texto de botão/aba */
:is(.sidebar-mini, .login-page, .layout-top-nav) a.btn,
:is(.sidebar-mini, .login-page, .layout-top-nav) a.btn:hover { text-decoration: none; }
:is(.sidebar-mini, .login-page, .layout-top-nav) a.btn-primary,
:is(.sidebar-mini, .login-page, .layout-top-nav) a.btn-success,
:is(.sidebar-mini, .login-page, .layout-top-nav) a.btn-danger { color: #fff !important; }
:is(.sidebar-mini, .login-page, .layout-top-nav) .btn { font-family: var(--font-sans); font-weight: var(--fw-semibold); border-radius: var(--radius); }
:is(.sidebar-mini, .login-page, .layout-top-nav) .btn-primary { background: var(--ima-blue); border-color: var(--ima-blue); color: #fff; }
:is(.sidebar-mini, .login-page, .layout-top-nav) .btn-primary:hover { background: var(--ima-blue-700); border-color: var(--ima-blue-700); }
:is(.sidebar-mini, .login-page, .layout-top-nav) .btn-success { background: var(--ima-green-600); border-color: var(--ima-green-600); color: #fff; }
:is(.sidebar-mini, .login-page, .layout-top-nav) .btn-success:hover { background: var(--ima-green-700); border-color: var(--ima-green-700); }
:is(.sidebar-mini, .login-page, .layout-top-nav) .btn-danger { background: var(--ima-red); border-color: var(--ima-red); color: #fff; }
:is(.sidebar-mini, .login-page, .layout-top-nav) .btn-danger:hover { background: var(--ima-red-600); border-color: var(--ima-red-600); }
:is(.sidebar-mini, .login-page, .layout-top-nav) .btn-outline-danger { background: #fff; color: var(--ima-red) !important; border-color: #F0B5B9; }
:is(.sidebar-mini, .login-page, .layout-top-nav) .btn-outline-danger:hover { background: var(--ima-red-050); border-color: var(--ima-red); }
:is(.sidebar-mini, .login-page, .layout-top-nav) .btn-default { background: #fff; color: var(--ima-blue) !important; border: 1px solid var(--gray-300); }
:is(.sidebar-mini, .login-page, .layout-top-nav) .btn-default:hover { background: var(--gray-050); border-color: var(--ima-blue); }

/* ============================================================
   SEÇÕES DA IN — barra de abas (controle segmentado do DS)
   ============================================================ */
.ima-secoes {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3);
  margin: var(--sp-2) 0 var(--sp-4); padding-bottom: var(--sp-3); border-bottom: 1px solid var(--gray-200);
}
.ima-abas { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 3px; background: var(--gray-100); border-radius: var(--radius-md); }
.ima-abas__item {
  display: inline-flex; align-items: center; gap: 6px; padding: 7px var(--sp-4);
  border-radius: var(--radius); font-size: var(--text-sm); font-weight: var(--fw-medium);
  color: var(--gray-700) !important; text-decoration: none !important; transition: background .14s, color .14s;
}
.ima-abas__item:hover { background: #fff; color: var(--ima-blue) !important; }
.ima-abas__item.is-active { background: var(--ima-blue); color: #fff !important; font-weight: var(--fw-semibold); box-shadow: var(--shadow-xs); }
.ima-secoes__acoes { display: inline-flex; flex-wrap: wrap; gap: var(--sp-2); }
.ima-secoes__acoes .btn { margin: 0; }
.ima-secoes + hr { display: none; }
