/* * EIP Bootstrap Studio Theme v1.0
 * Compatível com Bootstrap 5.x e Bootstrap Studio
 * Cores extraídas das marcas oficiais EIP:
 * Azul #0063A2 | Laranja #E8A13F | Preto #101011 | Branco #FFFFFF */

:root, [data-bs-theme="light"] {
  --eip-blue: #0063a2;
  --eip-blue-rgb: 0, 99, 162;
  --eip-blue-50: #eef7fb;
  --eip-blue-100: #d9edf7;
  --eip-blue-200: #b9dcec;
  --eip-blue-300: #82c2dd;
  --eip-blue-400: #3aa3ca;
  --eip-blue-500: #128bba;
  --eip-blue-600: #006fae;
  --eip-blue-700: #0063a2;
  --eip-blue-800: #075281;
  --eip-blue-900: #0b456b;
  --eip-orange: #e8a13f;
  --eip-orange-rgb: 232, 161, 63;
  --eip-orange-light: #fdf4e7;
  --eip-orange-dark: #b96f0f;
  --eip-ink: #101011;
  --eip-surface: #ffffff;
  --eip-surface-subtle: #f5f8fa;
  --eip-border: #dbe4e9;
  --eip-text: #243746;
  --eip-muted: #657783;
  --bs-blue: var(--eip-blue);
  --bs-blue-rgb: var(--eip-blue-rgb);
  --bs-orange: var(--eip-orange);
  --bs-orange-rgb: var(--eip-orange-rgb);
  --bs-primary: var(--eip-blue);
  --bs-primary-rgb: var(--eip-blue-rgb);
  --bs-secondary: #617681;
  --bs-secondary-rgb: 97, 118, 129;
  --bs-success: #21865d;
  --bs-success-rgb: 33, 134, 93;
  --bs-info: #128bba;
  --bs-info-rgb: 18, 139, 186;
  --bs-warning: var(--eip-orange);
  --bs-warning-rgb: var(--eip-orange-rgb);
  --bs-danger: #c63d4f;
  --bs-danger-rgb: 198, 61, 79;
  --bs-light: #f5f8fa;
  --bs-light-rgb: 245, 248, 250;
  --bs-dark: #173547;
  --bs-dark-rgb: 23, 53, 71;
  --bs-body-color: var(--eip-text);
  --bs-body-color-rgb: 36, 55, 70;
  --bs-body-bg: #f5f8fa;
  --bs-body-bg-rgb: 245, 248, 250;
  --bs-emphasis-color: var(--eip-ink);
  --bs-secondary-color: var(--eip-muted);
  --bs-tertiary-bg: #eef3f6;
  --bs-border-color: var(--eip-border);
  --bs-link-color: var(--eip-blue);
  --bs-link-hover-color: #004f82;
  --bs-link-color-rgb: var(--eip-blue-rgb);
  --bs-link-hover-color-rgb: 0, 79, 130;
  --bs-primary-text-emphasis: #003451;
  --bs-secondary-text-emphasis: #26323a;
  --bs-success-text-emphasis: #0d4931;
  --bs-info-text-emphasis: #06475e;
  --bs-warning-text-emphasis: #684108;
  --bs-danger-text-emphasis: #681e2a;
  --bs-primary-bg-subtle: #d9edf7;
  --bs-secondary-bg-subtle: #e8edf0;
  --bs-success-bg-subtle: #e1f3ea;
  --bs-info-bg-subtle: #e1f2f8;
  --bs-warning-bg-subtle: #fff1dc;
  --bs-danger-bg-subtle: #f9e6e9;
  --bs-primary-border-subtle: #82c2dd;
  --bs-secondary-border-subtle: #bcc9cf;
  --bs-success-border-subtle: #8ac8ad;
  --bs-info-border-subtle: #83c9df;
  --bs-warning-border-subtle: #f1c783;
  --bs-danger-border-subtle: #e79aa4;
  --bs-focus-ring-color: rgba(var(--eip-blue-rgb), .25);
  --bs-border-radius: .65rem;
  --bs-border-radius-sm: .45rem;
  --bs-border-radius-lg: .9rem;
  --bs-box-shadow: 0 .5rem 1.5rem rgba(16, 55, 77, .10);
  --bs-box-shadow-sm: 0 .2rem .65rem rgba(16, 55, 77, .08);
  --bs-font-sans-serif: Inter, "Segoe UI", Roboto, Arial, sans-serif;
}

[data-bs-theme="dark"] {
  color-scheme: dark;
  --eip-surface: #102b3a;
  --eip-surface-subtle: #0b2230;
  --eip-border: #294859;
  --eip-text: #eaf2f6;
  --eip-muted: #a8bbc5;
  --bs-body-color: var(--eip-text);
  --bs-body-color-rgb: 234, 242, 246;
  --bs-body-bg: #081b26;
  --bs-body-bg-rgb: 8, 27, 38;
  --bs-emphasis-color: #fff;
  --bs-secondary-color: var(--eip-muted);
  --bs-tertiary-bg: #173746;
  --bs-border-color: var(--eip-border);
  --bs-link-color: #62b9e0;
  --bs-link-hover-color: #96d2eb;
  --bs-link-color-rgb: 98, 185, 224;
  --bs-link-hover-color-rgb: 150, 210, 235;
  --bs-primary-text-emphasis: #8bcce8;
  --bs-primary-bg-subtle: #073954;
  --bs-primary-border-subtle: #0874aa;
  --bs-warning-text-emphasis: #f4c77e;
  --bs-warning-bg-subtle: #4f3514;
  --bs-warning-border-subtle: #98651f;
}

body {
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  font-family: var(--bs-font-sans-serif);
  letter-spacing: .005em;
}

a {
  text-underline-offset: .18em;
}

a:hover {
  text-decoration-thickness: 2px;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  color: var(--bs-emphasis-color);
  font-weight: 700;
  letter-spacing: -.02em;
}

::selection {
  color: #fff;
  background: var(--eip-blue);
}

.text-primary {
  color: var(--eip-blue) !important;
}

.text-warning {
  color: var(--eip-orange-dark) !important;
}

.bg-primary {
  background-color: var(--eip-blue) !important;
}

.bg-warning {
  background-color: var(--eip-orange) !important;
}

.border-primary {
  border-color: var(--eip-blue) !important;
}

.border-warning {
  border-color: var(--eip-orange) !important;
}

.link-primary {
  color: var(--eip-blue) !important;
}

.btn {
  --bs-btn-padding-x: 1rem;
  --bs-btn-padding-y: .58rem;
  --bs-btn-font-weight: 650;
  --bs-btn-border-radius: .6rem;
  letter-spacing: .01em;
  box-shadow: 0 .15rem .35rem rgba(20, 50, 68, .08);
  transition: transform .15s ease, box-shadow .15s ease, color .15s ease, background-color .15s ease, border-color .15s ease;
}

.btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 .35rem .75rem rgba(20, 50, 68, .14);
}

.btn:active {
  transform: translateY(0);
}

.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #0063a2;
  --bs-btn-border-color: #0063a2;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #005486;
  --bs-btn-hover-border-color: #004f7f;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #004b78;
  --bs-btn-active-border-color: #00446e;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #79aaca;
  --bs-btn-disabled-border-color: #79aaca;
}

.btn-warning {
  --bs-btn-color: #2b1b05;
  --bs-btn-bg: #e8a13f;
  --bs-btn-border-color: #e8a13f;
  --bs-btn-hover-color: #211303;
  --bs-btn-hover-bg: #d9902f;
  --bs-btn-hover-border-color: #d28720;
  --bs-btn-active-color: #211303;
  --bs-btn-active-bg: #c97f22;
  --bs-btn-active-border-color: #bd7519;
}

.btn-outline-primary {
  --bs-btn-color: #0063a2;
  --bs-btn-border-color: #0063a2;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #0063a2;
  --bs-btn-hover-border-color: #0063a2;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #005486;
  --bs-btn-active-border-color: #005486;
}

.btn-outline-warning {
  --bs-btn-color: #a8610a;
  --bs-btn-border-color: #e8a13f;
  --bs-btn-hover-color: #211303;
  --bs-btn-hover-bg: #e8a13f;
  --bs-btn-hover-border-color: #e8a13f;
}

/* Estados semânticos com a mesma linguagem visual do tema EIP. */

.btn-success {
  --bs-btn-bg: #21865d;
  --bs-btn-border-color: #21865d;
  --bs-btn-hover-bg: #196d4b;
  --bs-btn-hover-border-color: #196d4b;
  --bs-btn-active-bg: #155f41;
  --bs-btn-active-border-color: #155f41;
}

.btn-info {
  --bs-btn-color: #fff;
  --bs-btn-bg: #128bba;
  --bs-btn-border-color: #128bba;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #0d739a;
  --bs-btn-hover-border-color: #0d739a;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #0a6487;
  --bs-btn-active-border-color: #0a6487;
}

.btn-danger {
  --bs-btn-bg: #c63d4f;
  --bs-btn-border-color: #c63d4f;
  --bs-btn-hover-bg: #a92f40;
  --bs-btn-hover-border-color: #a92f40;
  --bs-btn-active-bg: #942638;
  --bs-btn-active-border-color: #942638;
}

.btn-secondary {
  --bs-btn-bg: #617681;
  --bs-btn-border-color: #617681;
  --bs-btn-hover-bg: #50636d;
  --bs-btn-hover-border-color: #50636d;
  --bs-btn-active-bg: #465760;
  --bs-btn-active-border-color: #465760;
}

.btn-dark {
  --bs-btn-bg: #173547;
  --bs-btn-border-color: #173547;
  --bs-btn-hover-bg: #0e2735;
  --bs-btn-hover-border-color: #0e2735;
}

/* As utilidades abaixo são compiladas pelo Bootstrap e não mudam somente com
   variáveis no :root. Estes overrides garantem o padrão EIP ao arrastar itens. */

.text-bg-primary {
  color: #fff !important;
  background-color: var(--eip-blue) !important;
}

.text-bg-secondary {
  color: #fff !important;
  background-color: #617681 !important;
}

.text-bg-success {
  color: #fff !important;
  background-color: #21865d !important;
}

.text-bg-info {
  color: #fff !important;
  background-color: #128bba !important;
}

.text-bg-warning {
  color: #2b1b05 !important;
  background-color: var(--eip-orange) !important;
}

.text-bg-danger {
  color: #fff !important;
  background-color: #c63d4f !important;
}

.bg-primary-subtle {
  background-color: var(--bs-primary-bg-subtle) !important;
}

.bg-warning-subtle {
  background-color: var(--bs-warning-bg-subtle) !important;
}

.text-primary-emphasis {
  color: var(--bs-primary-text-emphasis) !important;
}

.text-warning-emphasis {
  color: var(--bs-warning-text-emphasis) !important;
}

.border-primary-subtle {
  border-color: var(--bs-primary-border-subtle) !important;
}

.border-warning-subtle {
  border-color: var(--bs-warning-border-subtle) !important;
}

.navbar-eip, .navbar.bg-primary, .navbar.navbar-dark {
  background: linear-gradient(115deg, #004f82 0%, #0063a2 62%, #087bb9 100%) !important;
  box-shadow: 0 .35rem 1.25rem rgba(0, 52, 85, .2);
}

.navbar-eip .navbar-brand, .navbar-eip .nav-link, .navbar.bg-primary .navbar-brand, .navbar.bg-primary .nav-link {
  color: rgba(255, 255, 255, .9);
}

.navbar-eip .nav-link:hover, .navbar-eip .nav-link.active {
  color: #fff;
}

.navbar-eip .nav-link.active {
  box-shadow: inset 0 -3px 0 var(--eip-orange);
}

.navbar-brand {
  font-weight: 750;
  letter-spacing: -.02em;
}

.eip-sidebar {
  min-height: 100vh;
  color: #dcebf2;
  background: linear-gradient(180deg, #063f63 0%, #062f49 100%);
  box-shadow: .45rem 0 1.5rem rgba(0, 39, 62, .12);
}

.eip-sidebar .nav-link {
  color: #cfe0e8;
  border-radius: .55rem;
  margin: .15rem .65rem;
  padding: .7rem .85rem;
  font-weight: 550;
}

.eip-sidebar .nav-link:hover {
  color: #fff;
  background: rgba(255, 255, 255, .09);
}

.eip-sidebar .nav-link.active {
  color: #fff;
  background: var(--eip-blue);
  box-shadow: inset 4px 0 0 var(--eip-orange);
}

.card {
  --bs-card-bg: var(--eip-surface);
  --bs-card-border-color: var(--eip-border);
  border: 1px solid var(--bs-card-border-color);
  box-shadow: var(--bs-box-shadow-sm);
}

.card-header, .card-footer {
  background: color-mix(in srgb, var(--eip-surface-subtle) 75%, transparent);
}

.card-header {
  font-weight: 700;
  border-bottom-color: var(--eip-border);
}

.card-eip-accent {
  border-top: 4px solid var(--eip-orange);
}

.card-eip-primary {
  border-left: 4px solid var(--eip-blue);
}

.card-hover {
  transition: transform .18s ease, box-shadow .18s ease;
}

.card-hover:hover {
  transform: translateY(-3px);
  box-shadow: var(--bs-box-shadow);
}

.form-label {
  color: var(--bs-emphasis-color);
  font-weight: 650;
}

.form-control, .form-select, .input-group-text {
  min-height: 42px;
  border-color: var(--eip-border);
  background-color: var(--eip-surface);
}

.form-control:focus, .form-select:focus {
  border-color: #2c89bd;
  box-shadow: 0 0 0 .22rem rgba(var(--eip-blue-rgb), .18);
}

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

.form-switch .form-check-input:checked {
  background-color: var(--eip-blue);
}

.form-range::-webkit-slider-thumb {
  background: var(--eip-blue);
}

.form-range::-moz-range-thumb {
  background: var(--eip-blue);
}

.table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--bs-body-color);
  --bs-table-border-color: var(--eip-border);
}

.table > thead > tr > th {
  color: #fff;
  background: #075281;
  border-bottom: 0;
  font-size: .78rem;
  letter-spacing: .045em;
  text-transform: uppercase;
  vertical-align: middle;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-bg-type: rgba(var(--eip-blue-rgb), .035);
}

.table-hover > tbody > tr:hover > * {
  --bs-table-bg-state: rgba(var(--eip-blue-rgb), .075);
}

.alert {
  border: 0;
  border-left: 4px solid;
  box-shadow: var(--bs-box-shadow-sm);
}

.alert-primary {
  color: #064a71;
  background: #e2f2fa;
  border-color: var(--eip-blue);
}

.alert-warning {
  color: #684108;
  background: #fff4df;
  border-color: var(--eip-orange);
}

.alert-success {
  color: #15573e;
  background: #e5f5ee;
  border-color: #21865d;
}

.alert-danger {
  color: #7c2632;
  background: #fae9ec;
  border-color: #c63d4f;
}

[data-bs-theme="dark"] .alert-primary {
  color: #b7e2f7;
  background: #123f58;
}

[data-bs-theme="dark"] .alert-warning {
  color: #ffddb1;
  background: #513817;
}

.badge {
  padding: .45em .7em;
  font-weight: 700;
  letter-spacing: .015em;
}

.badge.text-bg-primary {
  background-color: var(--eip-blue) !important;
}

.badge.text-bg-warning {
  color: #2b1b05 !important;
  background-color: var(--eip-orange) !important;
}

.nav-tabs {
  border-bottom-color: var(--eip-border);
  gap: .15rem;
}

.nav-tabs .nav-link {
  color: var(--eip-muted);
  font-weight: 650;
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: .45rem .45rem 0 0;
}

.nav-tabs .nav-link:hover {
  color: var(--eip-blue);
  background: rgba(var(--eip-blue-rgb), .05);
}

.nav-tabs .nav-link.active {
  color: var(--eip-blue);
  background: transparent;
  border-bottom-color: var(--eip-orange);
}

.nav-pills .nav-link {
  color: var(--eip-blue);
  font-weight: 650;
}

.nav-pills .nav-link.active {
  color: #fff;
  background-color: var(--eip-blue);
}

.dropdown-menu, .modal-content, .offcanvas, .accordion-item, .list-group-item {
  color: var(--bs-body-color);
  background-color: var(--eip-surface);
  border-color: var(--eip-border);
  box-shadow: var(--bs-box-shadow);
}

.dropdown-item:hover, .dropdown-item:focus {
  color: var(--eip-blue);
  background: rgba(var(--eip-blue-rgb), .08);
}

.dropdown-item.active, .dropdown-item:active {
  color: #fff;
  background: var(--eip-blue);
}

.modal-header {
  border-top: 4px solid var(--eip-orange);
}

.modal-header, .modal-footer {
  border-color: var(--eip-border);
}

.accordion-button {
  color: var(--bs-emphasis-color);
  background: var(--eip-surface);
  font-weight: 650;
}

.accordion-button:not(.collapsed) {
  color: var(--eip-blue);
  background: rgba(var(--eip-blue-rgb), .08);
  box-shadow: inset 0 calc(-1 * var(--bs-border-width)) 0 var(--eip-border);
}

.accordion-button:focus {
  box-shadow: 0 0 0 .22rem rgba(var(--eip-blue-rgb), .18);
}

.pagination {
  --bs-pagination-color: var(--eip-blue);
  --bs-pagination-hover-color: #004f82;
  --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgba(var(--eip-blue-rgb), .2);
  --bs-pagination-active-bg: var(--eip-blue);
  --bs-pagination-active-border-color: var(--eip-blue);
  --bs-pagination-border-color: var(--eip-border);
}

.progress {
  height: .7rem;
  background: rgba(var(--eip-blue-rgb), .11);
}

.progress-bar {
  background: linear-gradient(90deg, var(--eip-blue), #128bba);
}

.spinner-border, .spinner-grow {
  color: var(--eip-blue);
}

.breadcrumb {
  --bs-breadcrumb-divider-color: var(--eip-muted);
  --bs-breadcrumb-item-active-color: var(--eip-muted);
}

.list-group-item.active {
  color: #fff;
  background: var(--eip-blue);
  border-color: var(--eip-blue);
}

.list-group-item-action:hover {
  background: rgba(var(--eip-blue-rgb), .06);
}

.toast {
  color: var(--bs-body-color);
  background: color-mix(in srgb, var(--eip-surface) 94%, transparent);
  border-color: var(--eip-border);
  box-shadow: var(--bs-box-shadow);
}

.tooltip {
  --bs-tooltip-bg: #063f63;
  --bs-tooltip-color: #fff;
}

.popover {
  --bs-popover-bg: var(--eip-surface);
  --bs-popover-border-color: var(--eip-border);
  --bs-popover-header-bg: var(--eip-blue-50);
}

.eip-page-title {
  position: relative;
  padding-left: 1rem;
}

.eip-page-title::before {
  content: "";
  position: absolute;
  inset: .1em auto .1em 0;
  width: 5px;
  border-radius: 1rem;
  background: var(--eip-orange);
}

.eip-icon-box {
  display: inline-grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  color: #fff;
  background: var(--eip-blue);
  border-radius: .75rem;
}

.eip-kpi {
  overflow: hidden;
  position: relative;
}

.eip-kpi::after {
  content: "";
  position: absolute;
  inset: 0 0 auto auto;
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 0 0 0 100%;
  background: rgba(var(--eip-orange-rgb), .13);
}

.eip-section-soft {
  background: linear-gradient(135deg, var(--eip-blue-50), #fff);
}

[data-bs-theme="dark"] .eip-section-soft {
  background: linear-gradient(135deg, #0e3449, #102b3a);
}

.eip-focus-ring:focus-visible {
  outline: 3px solid rgba(var(--eip-orange-rgb), .65);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

