/* ============================================================
   Rediseño visual global - Intranet Quantico Servicios
   Alcance: login, sidebar, navbar, footer, cabeceras, cards,
   tablas, formularios y experiencia responsive.
   Nota: no usa Google Fonts. Solo tipografías del sistema.
   ============================================================ */

:root {
  --primary-color: #002e6d;
  --primary-900: #061b3f;
  --primary-800: #08285c;
  --primary-700: #063a85;
  --primary-100: #e8f1ff;
  --secondary-color: #5c0f8b;
  --secondary-100: #f3e8ff;
  --accent-color: #ffa400;
  --accent-100: #fff4dc;
  --body-bg: #f3f6fb;
  --surface-color: #ffffff;
  --surface-soft: #f8fafc;
  --border-color: #dfe7f2;
  --dark-color: #172033;
  --muted-color: #64748b;
  --success-color: #10b981;
  --warning-color: #f59e0b;
  --danger-color: #ef4444;
  --info-color: #307fe2;
  --shadow-xs: 0 3px 10px rgba(15, 23, 42, 0.045);
  --shadow-sm: 0 8px 22px rgba(15, 23, 42, 0.07);
  --shadow-md: 0 18px 42px rgba(15, 23, 42, 0.11);
  --shadow-lg: 0 28px 76px rgba(0, 46, 109, 0.20);
  --radius-xs: 10px;
  --radius-sm: 14px;
  --radius-md: 18px;
  --radius-lg: 24px;
  --radius-xl: 30px;
  --sidebar-width: 286px;
  --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  background:
    radial-gradient(circle at top left, rgba(48, 127, 226, 0.11), transparent 30rem),
    radial-gradient(circle at bottom right, rgba(92, 15, 139, 0.08), transparent 30rem),
    linear-gradient(180deg, #f8fbff 0%, var(--body-bg) 42%, #eef3fa 100%);
  color: var(--dark-color);
  font-family: var(--font-family) !important;
  font-size: 15px;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body::selection,
::selection {
  background: rgba(255, 164, 0, 0.28);
}

a {
  color: var(--primary-color);
  transition: color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}

a:hover {
  color: var(--secondary-color);
  text-decoration: none;
}

img {
  max-width: 100%;
}

/* ========================= Layout principal ========================= */
.app-shell {
  min-height: 100vh;
  width: 100%;
  align-items: stretch;
}

.app-main,
#page-content-wrapper {
  width: calc(100% - var(--sidebar-width)) !important;
  min-width: 0 !important;
  min-height: 100vh;
  background: transparent;
}



.container-custom {
  width: min(1280px, calc(100% - 2rem)) !important;
  max-width: 1280px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ========================= Sidebar ========================= */
.sidebar-wrapper,
#sidebar-wrapper {
  flex: 0 0 var(--sidebar-width) !important;
  width: var(--sidebar-width) !important;
  min-height: 100vh !important;
  margin-left: 0 !important;
  position: sticky;
  top: 0;
  z-index: 1040;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: #e8f1ff;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(circle at 10% 0%, rgba(255, 164, 0, 0.18), transparent 12rem),
    linear-gradient(180deg, #06265a 0%, #051d46 52%, #031633 100%);
  box-shadow: 16px 0 40px rgba(0, 46, 109, 0.15);
}

.sidebar-wrapper::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.055), transparent 30%),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035), transparent 18%);
}

.sidebar-heading {
  position: relative;
  z-index: 1;
  padding: 1rem 1rem .85rem !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}

.sidebar-brand {
  display: flex;
  align-items: center;
  gap: .78rem;
  min-width: 0;
  color: #fff !important;
  text-decoration: none !important;
}

.sidebar-brand:hover {
  color: #fff !important;
}

.sidebar-logo-wrap {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 17px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 28px rgba(0, 0, 0, .20);
  overflow: hidden;
}

.sidebar-logo-wrap img {
  width: 44px;
  height: 44px;
  object-fit: contain;
}

.sidebar-brand-text {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.sidebar-brand-text strong {
  font-size: 1rem;
  line-height: 1.1;
  letter-spacing: .01em;
  color: #fff;
}

.sidebar-brand-text small {
  margin-top: .22rem;
  color: rgba(255, 255, 255, .66);
  font-size: .76rem;
  line-height: 1.25;
}

.sidebar-close {
  display: none;
  position: absolute;
  top: .8rem;
  right: .8rem;
  z-index: 2;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.13);
  color: #fff;
  cursor: pointer;
}

.sidebar-user-card,
.sidebar-support-card {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: .85rem .85rem 0;
  padding: .78rem;
  border: 1px solid rgba(255, 255, 255, .10);
  border-radius: 18px;
  background: rgba(255, 255, 255, .07);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}

.sidebar-user-avatar {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: rgba(255, 164, 0, .16);
  color: var(--accent-color);
}

.sidebar-user-card span,
.sidebar-support-card span {
  display: block;
  color: rgba(255, 255, 255, .58);
  font-size: .72rem;
  line-height: 1.2;
}

.sidebar-user-card strong,
.sidebar-support-card strong {
  display: block;
  max-width: 170px;
  overflow: hidden;
  color: #fff;
  font-size: .85rem;
  line-height: 1.25;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.sidebar-support-card {
  margin: .85rem;
  padding: .78rem .85rem;
}

.sidebar-support-card i {
  color: var(--accent-color);
  font-size: 1.1rem;
}

.sidebar-menu {
  position: relative;
  z-index: 1;
  flex: 1;
  padding: .8rem .74rem .5rem;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, .28) transparent;
}

.sidebar-menu::-webkit-scrollbar {
  width: 7px;
}

.sidebar-menu::-webkit-scrollbar-track {
  background: transparent;
}

.sidebar-menu::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(255, 255, 255, .22);
}

.sidebar-section {
  margin: .95rem .75rem .42rem !important;
  color: rgba(255, 255, 255, .50);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.sidebar-divider {
  height: 1px;
  margin: .72rem .72rem;
  background: rgba(255, 255, 255, 0.095);
}

.sidebar-item {
  display: flex !important;
  align-items: center;
  gap: .68rem;
  min-height: 43px;
  margin: .16rem 0;
  padding: .58rem .68rem !important;
  border: 1px solid transparent;
  border-radius: 14px;
  color: rgba(255, 255, 255, .76) !important;
  font-size: .88rem;
  font-weight: 680;
  text-decoration: none !important;
  position: relative;
  outline: none;
}

.sidebar-item i {
  width: 31px;
  height: 31px;
  flex: 0 0 31px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  background: rgba(255, 255, 255, .075);
  color: rgba(255, 255, 255, .70);
  text-align: center;
  font-size: .92rem;
}

.sidebar-item span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sidebar-item:hover,
.sidebar-item:focus,
.sidebar-item.active {
  color: #fff !important;
  background: rgba(255, 255, 255, .105);
  border-color: rgba(255, 255, 255, .11);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}

.sidebar-item:hover i,
.sidebar-item:focus i,
.sidebar-item.active i {
  color: #061b3f;
  background: var(--accent-color);
}

.sidebar-item.active::after {
  content: '';
  position: absolute;
  right: .5rem;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--accent-color);
  box-shadow: 0 0 0 4px rgba(255, 164, 0, .16);
}

.sidebar-backdrop {
  display: none;
}

#wrapper.toggled #sidebar-wrapper {
  margin-left: calc(var(--sidebar-width) * -1) !important;
}

#wrapper.toggled #page-content-wrapper {
  width: 100% !important;
}

/* ========================= Navbar superior ========================= */
.top-navbar {
  position: sticky;
  top: 0;
  z-index: 1025;
  min-height: 72px;
  padding: .78rem clamp(1rem, 2vw, 1.6rem) !important;
  background: rgba(255, 255, 255, .90) !important;
  -webkit-backdrop-filter: saturate(180%) blur(18px);
  backdrop-filter: saturate(180%) blur(18px);
  border-bottom: 1px solid rgba(222, 231, 242, .95);
  box-shadow: 0 9px 28px rgba(15, 23, 42, .055);
}

.navbar-left {
  display: flex;
  align-items: center;
  gap: .82rem;
  min-width: 0;
}

.menu-toggle-btn {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border-color) !important;
  border-radius: 15px !important;
  background: #fff !important;
  color: var(--primary-color) !important;
  box-shadow: var(--shadow-xs);
}

.menu-toggle-btn:hover,
.menu-toggle-btn:focus {
  background: var(--primary-color) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 13px 26px rgba(0, 46, 109, .18);
}

.navbar-title {
  display: flex !important;
  min-width: 0;
  flex-direction: column;
  line-height: 1.15;
}

.navbar-title span {
  overflow: hidden;
  max-width: min(48vw, 520px);
  color: var(--dark-color);
  font-size: 1.02rem;
  font-weight: 850;
  letter-spacing: -.02em;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.navbar-title small {
  margin-top: .2rem;
  color: var(--muted-color);
  font-size: .78rem;
}

.top-navbar-toggler,
.navbar-toggler {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border-color) !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: var(--primary-color) !important;
}

.navbar-nav .nav-link {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  min-height: 40px;
  margin: .15rem .16rem;
  padding: .55rem .82rem !important;
  border-radius: 999px;
  color: var(--muted-color) !important;
  font-size: .87rem;
  font-weight: 760;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
  background: var(--surface-soft);
  color: var(--primary-color) !important;
}

.user-welcome {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-right: .45rem;
  padding: .52rem .82rem;
  border: 1px solid var(--border-color);
  border-radius: 999px;
  background: #fff;
  color: var(--dark-color);
  font-size: .87rem;
  font-weight: 800;
  box-shadow: var(--shadow-xs);
}

.user-welcome i {
  color: var(--accent-color);
}

.logout-btn {
  color: #b42318 !important;
  background: #fff1f1;
}

.logout-btn:hover,
.logout-btn:focus {
  color: #fff !important;
  background: var(--danger-color) !important;
}

/* ========================= Cabeceras y contenido global ========================= */
#page-content-wrapper h1,
#page-content-wrapper h2,
#page-content-wrapper h3,
#page-content-wrapper h4,
#page-content-wrapper h5,
#page-content-wrapper h6 {
  color: #fff;
  letter-spacing: -.025em;
}

#page-content-wrapper>.container-fluid:first-of-type,
#page-content-wrapper>.container:first-of-type {
  padding-top: 1.25rem;
}

.hero-section,
.dashboard-header,
.page-header,
.profile-hero,
.form-header,
.table-header {
  position: relative !important;
  overflow: hidden !important;
  margin: 0rem 0 1.75rem !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  color: #fff !important;
  background:
    radial-gradient(circle at 88% 16%, rgba(255, 164, 0, .28), transparent 12rem),
    linear-gradient(135deg, rgba(0, 46, 109, .98), rgba(92, 15, 139, .92)) !important;
  box-shadow: var(--shadow-lg) !important;
  text-align: center;
}

.hero-section::before,
.dashboard-header::before,
.page-header::before,
.profile-hero::before,
.form-header::before,
.table-header::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .08), transparent 45%),
    url('../img/edif.jpg') center/cover no-repeat !important;
  opacity: .16 !important;
  mix-blend-mode: screen !important;
}

.hero-section::after,
.dashboard-header::after,
.page-header::after,
.profile-hero::after,
.form-header::after,
.table-header::after {
  content: '';
  position: absolute;
  right: -4.5rem;
  top: -4.5rem;
  width: 18rem;
  height: 18rem;
  border-radius: 999px;
  border: 42px solid rgba(255, 255, 255, .08);
}

.hero-content,
.hero-section>.container,
.hero-section>.container-custom,
.dashboard-header>.container,
.page-header>.container,
.profile-hero>.container,
.form-header>.container,
.table-header>.container {
  position: relative;
  z-index: 1;
}

.hero-title,
.dashboard-header h1,
.page-header h1,
.profile-hero h1,
.form-header h1,
.table-header h1 {
  margin-bottom: .8rem !important;
  color: #fff !important;
  font-size: clamp(2rem, 4.8vw, 3.35rem) !important;
  font-weight: 880 !important;
  letter-spacing: -.045em !important;
  line-height: 1.05 !important;
  text-shadow: 0 12px 28px rgba(0, 0, 0, .18) !important;
}

.hero-subtitle,
.dashboard-header p,
.page-header p,
.profile-hero p,
.form-header p,
.table-header p {
  max-width: 820px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  color: rgba(255, 255, 255, .88) !important;
  font-size: clamp(1rem, 1.6vw, 1.17rem) !important;
  line-height: 1.65 !important;
}

.welcome-badge,
.category-badge {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  min-height: 34px;
  margin-bottom: 1.15rem !important;
  padding: .42rem .9rem !important;
  border: 1px solid rgba(255, 255, 255, .34) !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, .14) !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: .86rem !important;
  font-weight: 800 !important;
  letter-spacing: .01em;
}

.section-header {
  margin: 2.2rem 0 1.35rem !important;
  text-align: center;
}

.section-title,
.section-header .section-title,
#page-content-wrapper>.container-fluid:first-of-type h1,
#page-content-wrapper>.container:first-of-type h1 {
  position: relative;
  display: inline-block;
  margin-bottom: 1.1rem !important;
  color: #ffffff;
  font-weight: 880 !important;
  letter-spacing: -.035em !important;
}

.section-title::after,
.section-header .section-title::after {
  content: '' !important;
  position: absolute !important;
  left: 50% !important;
  bottom: -.62rem !important;
  width: 72px !important;
  height: 4px !important;
  border-radius: 999px !important;
  transform: translateX(-50%) !important;
  background: linear-gradient(90deg, var(--primary-color), var(--accent-color), var(--secondary-color)) !important;
}

.section-subtitle,
#page-content-wrapper>.container-fluid:first-of-type>p,
#page-content-wrapper>.container:first-of-type>p {
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
  color: var(--muted-color) !important;
  font-size: 1rem;
  line-height: 1.7;
}

/* ========================= Grids ========================= */
.features-grid,
.manual-grid,
.conditions-grid,
.validator-grid,
.airlines-grid,
.media-grid,
.info-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)) !important;
  gap: clamp(1rem, 2vw, 1.55rem) !important;
  padding: 1rem 0 2.3rem !important;
}

/* ========================= Cards y módulos ========================= */
.card,
.feature-card,
.manual-card,
.condition-card,
.validator-card,
.airline-card,
.media-card,
.product-card,
.download-card,
.contact-card,
.content-card,
.news-card,
.profile-card,
.support-card,
.success-card,
.form-container,
.field-group,
.filter-section,
.search-section {
  position: relative !important;
  height: auto !important;
  min-height: initial !important;
  overflow: hidden !important;
  border: 1px solid rgba(223, 231, 242, .96) !important;
  border-radius: var(--radius-lg) !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: var(--shadow-sm) !important;
}

.feature-card,
.manual-card,
.condition-card,
.validator-card,
.airline-card,
.media-card,
.product-card,
.download-card,
.contact-card,
.news-card,
.profile-card,
.support-card,
.card {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease !important;
}

.feature-card::before,
.manual-card::before,
.condition-card::before,
.validator-card::before,
.airline-card::before,
.media-card::before,
.product-card::before,
.download-card::before,
.contact-card::before,
.news-card::before,
.profile-card::before,
.support-card::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 5px !important;
  background: linear-gradient(90deg, var(--primary-color), var(--info-color), var(--accent-color)) !important;
  z-index: 1;
}

.feature-card:hover,
.manual-card:hover,
.condition-card:hover,
.validator-card:hover,
.airline-card:hover,
.media-card:hover,
.product-card:hover,
.download-card:hover,
.contact-card:hover,
.news-card:hover,
.profile-card:hover,
.support-card:hover,
.card:hover {
  transform: translateY(-5px) !important;
  border-color: rgba(48, 127, 226, .30) !important;
  box-shadow: var(--shadow-md) !important;
}

.card-header,
.modal-header {
  border-bottom: 1px solid var(--border-color) !important;
  background: linear-gradient(180deg, #fff, var(--surface-soft)) !important;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important;
}

.card-body,
.feature-content,
.card-content {
  padding: clamp(1.2rem, 2vw, 1.6rem) !important;
}

.card-title,
.feature-title,
.manual-title,
.condition-name,
.validator-name,
.airline-name,
.media-title,
.product-title,
.download-title,
.news-title {
  color: var(--dark-color) !important;
  font-weight: 840 !important;
  letter-spacing: -.025em !important;
  line-height: 1.18 !important;
}

.card-text,
.feature-description,
.manual-category,
.condition-description,
.validator-description,
.airline-description,
.media-description,
.product-description,
.download-description,
.news-description {
  color: var(--muted-color) !important;
  line-height: 1.62 !important;
}

.feature-card {
  display: flex !important;
  flex-direction: column !important;
}

.feature-image,
.card-img-top,
.media-image,
.news-image {
  width: 100% !important;
  height: 198px !important;
  object-fit: cover !important;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important;
  transition: transform .35s ease !important;
}

.feature-card:hover .feature-image,
.news-card:hover .news-image,
.media-card:hover .media-image {
  transform: scale(1.035) !important;
}

.feature-content,
.card-content {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
}

.feature-description,
.card-text {
  flex: 1 1 auto;
}

.feature-icon,
.manual-icon-wrap,
.card-icon-container,
.icon-container {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: flex-start;
}

.feature-icon {
  width: 50px !important;
  height: 50px !important;
  margin-bottom: 1rem !important;
  border-radius: 17px !important;
  background: linear-gradient(135deg, var(--primary-100), #fff) !important;
  color: var(--primary-color) !important;
  font-size: 1.35rem !important;
  -webkit-text-fill-color: currentColor !important;
  box-shadow: inset 0 0 0 1px rgba(0, 46, 109, .08) !important;
}

.manual-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  padding: 0 !important;
  text-align: center !important;
}

.manual-link {
  display: flex !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 250px !important;
  flex-direction: column !important;
  color: inherit !important;
  text-decoration: none !important;
}

.manual-card .card-content,
.manual-card .card-body {
  height: 100% !important;
  justify-content: space-between !important;
}

.manual-icon,
.condition-logo,
.validator-logo,
.airline-logo,
.card-icon-container img,
.download-card img,
.contact-card img {
  max-width: 118px !important;
  max-height: 78px !important;
  object-fit: contain !important;
  transition: transform .25s ease, filter .25s ease !important;
}

.manual-card:hover .manual-icon,
.condition-card:hover .condition-logo,
.validator-card:hover .validator-logo,
.airline-card:hover .airline-logo,
.download-card:hover img,
.contact-card:hover img {
  transform: translateY(-2px) scale(1.04) !important;
}

.manual-category,
.badge {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: .3rem .72rem !important;
  border: 1px solid rgba(0, 46, 109, .12) !important;
  border-radius: 999px !important;
  background: var(--surface-soft) !important;
  color: var(--muted-color) !important;
  font-size: .76rem !important;
  font-weight: 800 !important;
}

.condition-card,
.validator-card,
.airline-card,
.download-card,
.contact-card {
  padding: clamp(1rem, 1.8vw, 1.4rem) !important;
  text-align: center !important;
}

.card-footer,
.feature-card .card-footer {
  border-top: 1px solid var(--border-color) !important;
  background: #fff !important;
}

/* ========================= Botones ========================= */
.btn,
a.btn,
button,
.feature-button,
.btn-feature,
.btn-download,
.manual-link .btn,
input[type='submit'] {
  border-radius: 999px !important;
  font-weight: 800 !important;
  letter-spacing: .005em;
}

.btn-primary,
.btn-download,
.btn-feature,
.form-signin .btn,
.feature-button,
.btn-sm,
input[type='submit'] {
  border: 0 !important;
  color: #fff !important;
  background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)) !important;
  box-shadow: 0 12px 24px rgba(0, 46, 109, .17) !important;
}

.btn-primary:hover,
.btn-download:hover,
.btn-feature:hover,
.form-signin .btn:hover,
.feature-button:hover,
.btn-sm:hover,
input[type='submit']:hover {
  color: #fff !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 18px 34px rgba(92, 15, 139, .22) !important;
}

.btn-outline-primary,
.btn-outline-secondary {
  border-color: rgba(0, 46, 109, .22) !important;
  color: var(--primary-color) !important;
  background: #fff !important;
}

.btn-outline-primary:hover,
.btn-outline-secondary:hover {
  background: var(--primary-color) !important;
  color: #fff !important;
}

/* ========================= Formularios ========================= */
.form-control,
.custom-select,
select,
textarea,
input[type='text'],
input[type='email'],
input[type='password'],
input[type='number'],
input[type='date'],
input[type='search'] {
  min-height: 44px;
  border: 1px solid var(--border-color) !important;
  border-radius: 14px !important;
  background-color: #fff !important;
  color: var(--dark-color) !important;
  box-shadow: none !important;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

textarea,
textarea.form-control {
  min-height: 120px;
}

.form-control:focus,
.custom-select:focus,
select:focus,
textarea:focus,
input:focus {
  border-color: rgba(48, 127, 226, .70) !important;
  box-shadow: 0 0 0 .22rem rgba(48, 127, 226, .13) !important;
  outline: none !important;
}

label,
.form-group label,
.form-label {
  color: var(--dark-color) !important;
  font-weight: 760 !important;
  font-size: .9rem;
}

.input-group-text,
.input-group-addon {
  border: 1px solid var(--border-color) !important;
  background: var(--surface-soft) !important;
  color: var(--primary-color) !important;
  font-weight: 800;
}

.input-group .input-group-prepend .input-group-text {
  border-top-left-radius: 14px !important;
  border-bottom-left-radius: 14px !important;
}

.input-group .form-control:not(:first-child) {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}

.alert {
  border: 0 !important;
  border-radius: var(--radius-md) !important;
  box-shadow: var(--shadow-sm) !important;
}

/* ========================= Tablas ========================= */
.table-responsive,
.modern-table-wrap {
  width: 100%;
  overflow-x: auto;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

table,
.table {
  width: 100%;
  margin-bottom: 1.5rem;
  overflow: hidden;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  background: #fff;
  border: 1px solid var(--border-color) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-sm) !important;
}

thead th,
th {
  border: 0 !important;
  background: linear-gradient(135deg, var(--primary-color), var(--primary-700)) !important;
  color: #fff !important;
  font-size: .76rem;
  font-weight: 850 !important;
  letter-spacing: .045em;
  text-transform: uppercase;
  vertical-align: middle !important;
}

td,
th {
  padding: .84rem .95rem !important;
}

tbody td {
  border-top: 1px solid var(--border-color) !important;
  color: var(--dark-color) !important;
  vertical-align: middle !important;
}

.table-hover tbody tr:hover td,
tbody tr:hover td {
  background: #f8fbff !important;
  color: var(--dark-color) !important;
}

/* ========================= PDFs / embeds ========================= */
embed,
iframe {
  max-width: 100%;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  background: #fff;
}

/* ========================= Footer ========================= */
.modern-footer {
  margin-top: 3rem;
  padding: 2.15rem clamp(1rem, 2vw, 2rem) 1.35rem;
  color: rgba(255, 255, 255, .82);
  background:
    radial-gradient(circle at 90% 15%, rgba(255, 164, 0, .18), transparent 12rem),
    linear-gradient(135deg, #06265a 0%, #031633 100%);
}

.footer-brand {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.footer-brand img {
  max-width: 112px;
  max-height: 58px;
  object-fit: contain;
}

.footer-brand strong,
.modern-footer h6 {
  display: block;
  margin-bottom: .58rem;
  color: #fff;
  font-weight: 850;
}

.footer-brand p,
.modern-footer p {
  margin-bottom: .35rem;
  color: rgba(255, 255, 255, .72);
}

.modern-footer a {
  display: block;
  margin-bottom: .35rem;
  color: rgba(255, 255, 255, .72);
  font-weight: 650;
}

.modern-footer a:hover {
  color: var(--accent-color);
  transform: translateX(3px);
}

.modern-footer i {
  width: 18px;
  color: var(--accent-color);
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.7rem;
  padding-top: 1.05rem;
  border-top: 1px solid rgba(255, 255, 255, .14);
  color: rgba(255, 255, 255, .66);
  font-size: .85rem;
}

.footer-status {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

/* ========================= Login ========================= */
body.login-page {
  overflow-x: hidden;
  background:
    radial-gradient(circle at 12% 14%, rgba(255, 164, 0, .22), transparent 18rem),
    radial-gradient(circle at 82% 82%, rgba(48, 127, 226, .22), transparent 18rem),
    linear-gradient(135deg, rgba(0, 46, 109, .96), rgba(92, 15, 139, .88)),
    url('../img/edif.jpg') center/cover fixed no-repeat;
}

.login-shell {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: 2rem 0;
}

.login-card {
  position: relative;
  z-index: 1;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .28) !important;
  border-radius: 28px !important;
  background: rgba(255, 255, 255, .97) !important;
  box-shadow: 0 32px 85px rgba(0, 0, 0, .28) !important;
}

.login-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 7px;
  background: linear-gradient(90deg, var(--accent-color), var(--info-color), var(--secondary-color));
}

.login-card .card-header {
  padding: 2rem 2rem .7rem !important;
  border: 0 !important;
  background: transparent !important;
  text-align: center;
}

.login-logo {
  width: 104px;
  height: 104px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.15rem;
  border-radius: 28px;
  background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
  box-shadow: 0 18px 36px rgba(0, 46, 109, .25);
}

.login-logo img {
  max-width: 82px;
  max-height: 82px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.login-card h1,
.login-card h3 {
  margin-bottom: .45rem;
  color: var(--primary-color) !important;
  font-weight: 880;
  letter-spacing: -.04em;
}

.login-card .login-subtitle {
  color: var(--muted-color);
  font-size: .96rem;
}

.login-card .card-body {
  padding: 1.45rem 2rem 2rem !important;
}

.login-card .card-footer {
  border-top: 1px solid var(--border-color);
  background: var(--surface-soft) !important;
}

.login-card .form-text {
  color: #7b8794 !important;
}

.login-card .btn-primary {
  min-height: 52px;
  font-size: .98rem;
}

/* ========================= Compatibilidad Bootstrap 5 ligera ========================= */
.me-1 {
  margin-right: .25rem !important;
}

.me-2 {
  margin-right: .5rem !important;
}

.me-3 {
  margin-right: 1rem !important;
}

.ms-1 {
  margin-left: .25rem !important;
}

.ms-2 {
  margin-left: .5rem !important;
}

.ms-3 {
  margin-left: 1rem !important;
}

.form-label {
  margin-bottom: .45rem;
}

/* ========================= Responsive ========================= */
@media (max-width: 1199.98px) {
  :root {
    --sidebar-width: 270px;
  }
}

@media (max-width: 991.98px) {
  body.sidebar-open {
    overflow: hidden;
  }

  .sidebar-wrapper,
  #sidebar-wrapper {
    position: fixed !important;
    left: 0;
    top: 0;
    height: 100vh !important;
    width: min(88vw, 300px) !important;
    flex-basis: min(88vw, 300px) !important;
    transform: translateX(-105%);
    transition: transform .25s ease;
    box-shadow: 24px 0 65px rgba(0, 0, 0, .26);
  }

  body.sidebar-open #sidebar-wrapper {
    transform: translateX(0);
  }

  #wrapper.toggled #sidebar-wrapper {
    margin-left: 0 !important;
  }

  .sidebar-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .sidebar-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1030;
    pointer-events: none;
    opacity: 0;
    background: rgba(15, 23, 42, .50);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    transition: opacity .25s ease;
  }

  body.sidebar-open .sidebar-backdrop {
    pointer-events: auto;
    opacity: 1;
  }

  .app-main,
  #page-content-wrapper {
    width: 100% !important;
  }

  .top-navbar {
    min-height: 64px;
  }

  .navbar-title small {
    display: none;
  }

  .navbar-nav {
    align-items: stretch !important;
  }

  .navbar-nav .nav-link,
  .user-welcome {
    width: 100%;
    justify-content: flex-start;
    border-radius: 14px;
  }

  .footer-bottom {
    flex-direction: column;
  }
}

@media (max-width: 767.98px) {
  body {
    font-size: 14px;
  }

  #page-content-wrapper>.container-fluid:first-of-type,
  #page-content-wrapper>.container:first-of-type {
    padding-top: .9rem;
  }

  .hero-section,
  .dashboard-header,
  .page-header,
  .profile-hero,
  .form-header,
  .table-header {
    margin: .75rem 0 1.2rem !important;
    padding: 2.1rem 1rem !important;
    border-radius: 22px !important;
  }

  .hero-title,
  .dashboard-header h1,
  .page-header h1,
  .profile-hero h1,
  .form-header h1,
  .table-header h1,
  #page-content-wrapper h1 {
    font-size: clamp(1.8rem, 7vw, 2.35rem) !important;
  }

  .features-grid,
  .manual-grid,
  .conditions-grid,
  .validator-grid,
  .airlines-grid,
  .media-grid,
  .info-grid {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }

  .feature-image,
  .card-img-top,
  .media-image,
  .news-image {
    height: 178px !important;
  }

  .card,
  .feature-card,
  .manual-card,
  .condition-card,
  .validator-card,
  .airline-card,
  .form-container,
  .field-group {
    border-radius: 20px !important;
  }

  table,
  .table {
    min-width: 720px;
    white-space: nowrap;
  }

  .footer-brand {
    align-items: flex-start;
  }
}

@media (max-width: 575.98px) {
  .top-navbar {
    padding: .68rem .82rem !important;
  }

  .menu-toggle-btn {
    width: 42px;
    height: 42px;
  }

  .navbar-title span {
    max-width: 54vw;
    font-size: .96rem;
  }

  .login-shell {
    padding: 1rem 0;
  }

  .login-card {
    border-radius: 22px !important;
  }

  .login-card .card-header,
  .login-card .card-body {
    padding-left: 1.22rem !important;
    padding-right: 1.22rem !important;
  }

  .login-logo {
    width: 88px;
    height: 88px;
    border-radius: 24px;
  }

  .login-logo img {
    max-width: 70px;
    max-height: 70px;
  }

  .footer-brand {
    flex-direction: column;
  }
}

/* ============================================================
   Pulido UI/UX v3 - ajustes puntuales solicitados
   - Sidebar alineado y sin cortes visuales
   - Footer dentro del área principal
   - Cards con alturas consistentes
   - Badges/títulos legibles sobre fondos claros
   ============================================================ */

/* El footer ahora vive dentro del main: el sidebar queda como columna completa al lado del contenido */
.app-shell,
#wrapper {
  min-height: 100vh !important;
  align-items: stretch !important;
  background:
    linear-gradient(90deg, #051d46 0, #051d46 var(--sidebar-width), transparent var(--sidebar-width));
}

.app-main,
#page-content-wrapper {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 100vh !important;
}

/* Evita que el footer se meta debajo del sidebar y mejora el remate visual */
.modern-footer.app-footer {
  width: 100% !important;
  margin-top: auto !important;
  border-top-left-radius: 28px;
  box-shadow: 0 -18px 42px rgba(0, 46, 109, 0.10);
}

/* Sidebar más estable visualmente */
.sidebar-wrapper,
#sidebar-wrapper {
  align-self: stretch !important;
  min-height: 100vh !important;
}

.sidebar-menu {
  padding-bottom: 1rem !important;
}

.sidebar-support-card {
  margin-top: auto !important;
  margin-bottom: 1rem !important;
}

.sidebar-support-card span {
  color: rgba(255, 255, 255, .70) !important;
  text-decoration: none !important;
  background: transparent !important;
}

.sidebar-support-card strong {
  color: #fff !important;
  text-decoration: none !important;
}

.sidebar-item {
  padding-right: 1.6rem !important;
}

.sidebar-item.active::after {
  top: 50% !important;
  right: .66rem !important;
  transform: translateY(-50%) !important;
}

.sidebar-item.active {
  background: rgba(255, 255, 255, .12) !important;
  border-color: rgba(255, 255, 255, .16) !important;
}

/* Badges fuera del hero: antes quedaban blancos sobre fondo claro */
#page-content-wrapper .section-header .category-badge,
#page-content-wrapper .section-header .welcome-badge {
  color: #fff !important;
  background: linear-gradient(135deg, var(--primary-color), var(--info-color)) !important;
  border-color: rgba(0, 46, 109, .12) !important;
  box-shadow: 0 10px 22px rgba(0, 46, 109, .13) !important;
  text-shadow: none !important;
}

#page-content-wrapper .hero-section .category-badge,
#page-content-wrapper .hero-section .welcome-badge,
#page-content-wrapper .dashboard-header .category-badge,
#page-content-wrapper .dashboard-header .welcome-badge,
#page-content-wrapper .page-header .category-badge,
#page-content-wrapper .page-header .welcome-badge {
  color: #fff !important;
  background: rgba(255, 255, 255, .16) !important;
  border-color: rgba(255, 255, 255, .34) !important;
  box-shadow: none !important;
}

/* Cabeceras de sección con mejor jerarquía y legibilidad */
.section-header {
  max-width: 980px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 .75rem;
}

.section-title,
.section-header .section-title,
#page-content-wrapper .section-header h1,
#page-content-wrapper .section-header h2,
#page-content-wrapper .section-header h3 {
  color: var(--dark-color) !important;
  text-shadow: none !important;
}

.section-subtitle,
.section-header .section-subtitle {
  color: #5f6f89 !important;
  text-shadow: none !important;
}

/* Grillas: misma altura visual para cards de un mismo bloque */
.features-grid,
.manual-grid,
.conditions-grid,
.validator-grid,
.airlines-grid,
.media-grid,
.info-grid,
.row.equal-cards {
  align-items: stretch !important;
  grid-auto-rows: 1fr !important;
}

.features-grid>*,
.manual-grid>*,
.conditions-grid>*,
.validator-grid>*,
.airlines-grid>*,
.media-grid>*,
.info-grid>* {
  min-width: 0 !important;
}

.media-link,
.validator-link,
.condition-link,
.airline-link,
.manual-link,
.download-link,
.feature-link {
  display: flex !important;
  width: 100% !important;
  height: 100% !important;
  color: inherit !important;
  text-decoration: none !important;
}

.feature-card,
.manual-card,
.condition-card,
.validator-card,
.airline-card,
.media-card,
.product-card,
.download-card,
.contact-card,
.news-card,
.profile-card,
.support-card,
.card {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}

.media-card {
  min-height: 228px !important;
  justify-content: center !important;
}

.validator-card,
.condition-card,
.airline-card {
  min-height: 286px !important;
}

.manual-card,
.download-card,
.contact-card {
  min-height: 280px !important;
}

.feature-card,
.news-card,
.product-card {
  min-height: 315px !important;
}

.card-body,
.card-content,
.feature-content,
.validator-card .card-content,
.condition-card .card-content,
.airline-card .card-content,
.media-card .card-content {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
}

.card-footer,
.voucher-container,
.condition-action,
.airline-action,
.feature-button,
.btn-feature,
.btn-download {
  margin-top: auto !important;
}

.logo-container,
.card-icon-container,
.manual-icon-wrap {
  min-height: 88px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-bottom: .9rem !important;
}

.media-logo,
.validator-logo,
.condition-logo,
.airline-logo,
.manual-icon,
.card-icon-container img {
  display: block !important;
  width: auto !important;
  max-width: 168px !important;
  max-height: 78px !important;
  object-fit: contain !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Títulos dentro de cards siempre legibles */
.card-title,
.feature-title,
.manual-title,
.condition-name,
.validator-name,
.validator-title,
.airline-name,
.media-name,
.product-title,
.download-title,
.news-title,
.contact-title,
#page-content-wrapper .card h1,
#page-content-wrapper .card h2,
#page-content-wrapper .card h3,
#page-content-wrapper .card h4,
#page-content-wrapper .feature-card h1,
#page-content-wrapper .feature-card h2,
#page-content-wrapper .feature-card h3,
#page-content-wrapper .manual-card h1,
#page-content-wrapper .manual-card h2,
#page-content-wrapper .manual-card h3,
#page-content-wrapper .validator-card h1,
#page-content-wrapper .validator-card h2,
#page-content-wrapper .validator-card h3,
#page-content-wrapper .condition-card h1,
#page-content-wrapper .condition-card h2,
#page-content-wrapper .condition-card h3,
#page-content-wrapper .media-card h1,
#page-content-wrapper .media-card h2,
#page-content-wrapper .media-card h3,
#page-content-wrapper .airline-card h1,
#page-content-wrapper .airline-card h2,
#page-content-wrapper .airline-card h3 {
  color: var(--dark-color) !important;
  text-shadow: none !important;
}

.card-text,
.feature-description,
.manual-category,
.condition-description,
.validator-description,
.airline-description,
.media-description,
.product-description,
.download-description,
.news-description,
.card-subtitle,
.text-muted {
  color: var(--muted-color) !important;
}

/* Card de soporte: evita que el círculo superior quede recortado */
.support-card {
  overflow: visible !important;
  margin-top: 4rem !important;
}

.support-card::before {
  border-top-left-radius: var(--radius-lg) !important;
  border-top-right-radius: var(--radius-lg) !important;
}

.support-icon {
  position: relative !important;
  z-index: 2 !important;
}

.feature-list li {
  display: flex !important;
  align-items: center !important;
  gap: .55rem !important;
}

.feature-list li i {
  flex: 0 0 auto !important;
  margin-right: 0 !important;
}

/* Ajustes responsive adicionales */
@media (max-width: 991.98px) {

  .app-shell,
  #wrapper {
    background: transparent !important;
  }

  .modern-footer.app-footer {
    border-top-left-radius: 22px;
  }

  .sidebar-support-card {
    margin-bottom: .85rem !important;
  }
}

@media (max-width: 767.98px) {

  .media-card,
  .validator-card,
  .condition-card,
  .airline-card,
  .manual-card,
  .download-card,
  .contact-card,
  .feature-card,
  .news-card,
  .product-card {
    min-height: auto !important;
  }

  .logo-container,
  .card-icon-container,
  .manual-icon-wrap {
    min-height: 72px !important;
  }

  .section-header {
    margin-top: 1.5rem !important;
    margin-bottom: 1rem !important;
  }
}

/* FIX: eliminar fondo lateral cuando el sidebar está colapsado */
#wrapper.toggled,
#wrapper.toggled.app-shell {
  background: transparent !important;
}

#wrapper.toggled #sidebar-wrapper {
  margin-left: calc(var(--sidebar-width) * -1) !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

#wrapper:not(.toggled) #sidebar-wrapper {
  opacity: 1 !important;
  pointer-events: auto !important;
}



#page-content-wrapper .documents-hero::after {
  display: none !important;
  content: none !important;
}

#page-content-wrapper .documents-page .tools-category {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
  padding: 0 !important;
}

#page-content-wrapper .documents-page .section-title::before,
#page-content-wrapper .documents-page .section-title::after {
  display: none !important;
  content: none !important;
}

#page-content-wrapper .documents-page .feature-card .card-body,
#page-content-wrapper .documents-page .feature-card .card-footer {
  background: transparent !important;
  box-shadow: none !important;
}

#page-content-wrapper .documents-page .feature-card .card-footer {
  border: 0 !important;
  border-top: 0 !important;
}

/* ============================================================
   Pulido UI/UX v4 - consistencia visual entre apartados
   ============================================================ */
#page-content-wrapper .hero-section,
#page-content-wrapper .dashboard-header,
#page-content-wrapper .page-header,
#page-content-wrapper .profile-hero,
#page-content-wrapper .form-header,
#page-content-wrapper .table-header,
#page-content-wrapper .documents-hero {
  width: 100% !important;
  border-radius: 0 0 var(--radius-xl) var(--radius-xl) !important;
  text-align: center !important;
}

#page-content-wrapper .container-fluid.px-4 > .hero-section,
#page-content-wrapper .container-fluid.px-4 > .dashboard-header,
#page-content-wrapper .container-fluid.px-4 > .documents-hero {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

#page-content-wrapper .hero-section h1,
#page-content-wrapper .hero-section h2,
#page-content-wrapper .dashboard-header h1,
#page-content-wrapper .dashboard-header h2,
#page-content-wrapper .page-header h1,
#page-content-wrapper .page-header h2,
#page-content-wrapper .profile-hero h1,
#page-content-wrapper .form-header h1,
#page-content-wrapper .table-header h1,
#page-content-wrapper .documents-hero h1 {
  color: #fff !important;
  text-shadow: 0 12px 28px rgba(0, 0, 0, .18) !important;
}

#page-content-wrapper .hero-section p,
#page-content-wrapper .dashboard-header p,
#page-content-wrapper .page-header p,
#page-content-wrapper .profile-hero p,
#page-content-wrapper .form-header p,
#page-content-wrapper .table-header p,
#page-content-wrapper .documents-hero p {
  color: rgba(255, 255, 255, .9) !important;
}

#page-content-wrapper .section-header {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .72rem !important;
  margin: clamp(2rem, 3vw, 2.8rem) auto clamp(1.25rem, 2vw, 1.8rem) !important;
  text-align: center !important;
}

#page-content-wrapper .section-header .category-badge,
#page-content-wrapper .section-header .welcome-badge {
  margin: 0 !important;
  white-space: normal !important;
  max-width: 100% !important;
  line-height: 1.25 !important;
}

#page-content-wrapper .section-title,
#page-content-wrapper .section-header .section-title,
#page-content-wrapper .documents-page .section-title {
  display: inline-block !important;
  max-width: min(100%, 920px) !important;
  margin: 0 auto .85rem !important;
  text-align: center !important;
  line-height: 1.12 !important;
  overflow-wrap: anywhere !important;
}

#page-content-wrapper .conditions-grid,
#page-content-wrapper .manual-grid,
#page-content-wrapper .features-grid,
#page-content-wrapper .validator-grid,
#page-content-wrapper .airlines-grid,
#page-content-wrapper .media-grid,
#page-content-wrapper .info-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 286px), 1fr)) !important;
  gap: clamp(1.25rem, 2.4vw, 2.2rem) !important;
  align-items: stretch !important;
}

#page-content-wrapper .condition-link,
#page-content-wrapper .manual-link,
#page-content-wrapper .feature-link,
#page-content-wrapper .validator-link,
#page-content-wrapper .airline-link,
#page-content-wrapper .media-link,
#page-content-wrapper .download-link {
  width: 100% !important;
  min-width: 0 !important;
}

#page-content-wrapper .condition-card,
#page-content-wrapper .manual-card,
#page-content-wrapper .feature-card,
#page-content-wrapper .validator-card,
#page-content-wrapper .airline-card,
#page-content-wrapper .media-card,
#page-content-wrapper .download-card,
#page-content-wrapper .contact-card,
#page-content-wrapper .product-card,
#page-content-wrapper .news-card {
  width: 100% !important;
  min-width: 0 !important;
  text-align: center !important;
}

#page-content-wrapper .condition-card {
  min-height: 292px !important;
  padding: clamp(1.35rem, 2vw, 1.75rem) !important;
}

#page-content-wrapper .manual-card,
#page-content-wrapper .documents-page .feature-card {
  min-height: 318px !important;
}

#page-content-wrapper .feature-card .card-title,
#page-content-wrapper .manual-title,
#page-content-wrapper .condition-name,
#page-content-wrapper .validator-name,
#page-content-wrapper .airline-name,
#page-content-wrapper .media-name {
  min-height: 0 !important;
  margin-bottom: .65rem !important;
  overflow-wrap: anywhere !important;
  hyphens: auto !important;
}

#page-content-wrapper .condition-description,
#page-content-wrapper .condition-date,
#page-content-wrapper .manual-category,
#page-content-wrapper .card-text,
#page-content-wrapper .feature-description {
  overflow-wrap: anywhere !important;
}

#page-content-wrapper .logo-container,
#page-content-wrapper .icon-container,
#page-content-wrapper .card-icon-container,
#page-content-wrapper .manual-icon-wrap {
  width: 100% !important;
  min-height: 92px !important;
  margin: 0 0 .9rem !important;
}

#page-content-wrapper .condition-logo,
#page-content-wrapper .manual-icon,
#page-content-wrapper .validator-logo,
#page-content-wrapper .airline-logo,
#page-content-wrapper .media-logo {
  max-width: min(172px, 72%) !important;
  max-height: 82px !important;
}

#page-content-wrapper .info-container,
#page-content-wrapper .title-container {
  min-width: 0 !important;
  width: 100% !important;
}

#page-content-wrapper .action-container,
#page-content-wrapper .category-container,
#page-content-wrapper .card-footer {
  width: 100% !important;
}

#page-content-wrapper .condition-action,
#page-content-wrapper .manual-category,
#page-content-wrapper .btn-feature,
#page-content-wrapper .feature-button {
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

#page-content-wrapper .navigation-alert {
  max-width: 980px !important;
  margin: 0 auto 2.1rem !important;
  border-radius: var(--radius-md) !important;
}

@media (max-width: 767.98px) {
  #page-content-wrapper .hero-section,
  #page-content-wrapper .dashboard-header,
  #page-content-wrapper .page-header,
  #page-content-wrapper .documents-hero {
    margin-top: .8rem !important;
    padding: 2.4rem 1rem !important;
    border-radius: 0 0 22px 22px !important;
  }

  #page-content-wrapper .section-header {
    gap: .58rem !important;
  }

  #page-content-wrapper .condition-card,
  #page-content-wrapper .manual-card,
  #page-content-wrapper .documents-page .feature-card {
    min-height: 0 !important;
  }
}

/* ============================================================
   Pulido UI/UX v5 - normalizaciÃ³n de apartados del sidebar
   ============================================================ */
#page-content-wrapper>.container-fluid:first-of-type:has(> .hero-section:first-child),
#page-content-wrapper>.container-fluid:first-of-type:has(> .dashboard-header:first-child),
#page-content-wrapper>.container-fluid:first-of-type:has(> .documents-hero:first-child) {
  padding-top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

#page-content-wrapper .hero-section,
#page-content-wrapper .dashboard-header,
#page-content-wrapper .documents-hero {
  margin-top: 0 !important;
  margin-bottom: clamp(1.9rem, 3vw, 2.8rem) !important;
  border-radius: 0 0 var(--radius-xl) var(--radius-xl) !important;
  background:
    linear-gradient(135deg, rgba(0, 46, 109, .92), rgba(92, 15, 139, .86)),
    url('../img/edif.jpg') center/cover no-repeat !important;
}

#page-content-wrapper .documents-hero {
  border-bottom-left-radius: var(--radius-xl) !important;
  border-bottom-right-radius: var(--radius-xl) !important;
}

#page-content-wrapper .hero-section .hero-title,
#page-content-wrapper .hero-section h1,
#page-content-wrapper .hero-section h2,
#page-content-wrapper .dashboard-header h1,
#page-content-wrapper .dashboard-header h2,
#page-content-wrapper .documents-hero h1 {
  color: #fff !important;
  text-shadow: 0 14px 30px rgba(0, 0, 0, .22) !important;
}

#page-content-wrapper .hero-section .hero-subtitle,
#page-content-wrapper .hero-section p,
#page-content-wrapper .dashboard-header p,
#page-content-wrapper .documents-hero p {
  color: rgba(255, 255, 255, .92) !important;
  text-shadow: 0 8px 22px rgba(0, 0, 0, .18) !important;
}

#page-content-wrapper .hero-content,
#page-content-wrapper .hero-section > .container,
#page-content-wrapper .dashboard-header > .container,
#page-content-wrapper .documents-hero > .container {
  position: relative !important;
  z-index: 2 !important;
}

#page-content-wrapper img[src*="img/noticias/back.png"],
#page-content-wrapper img[src*="noticias/back.png"] {
  display: none !important;
}

#page-content-wrapper embed {
  width: min(100%, 1100px) !important;
  min-height: min(72vh, 760px) !important;
  margin: 1.5rem auto 2rem !important;
  display: block !important;
}

#page-content-wrapper .card-img-top {
  object-fit: contain !important;
  padding: 1.2rem !important;
  background: #fff !important;
}

#page-content-wrapper[data-current-page="Contactos de emergencia"] .row.text-center > [class*="col-"] {
  display: flex !important;
}

#page-content-wrapper[data-current-page="Contactos de emergencia"] .card {
  width: 100% !important;
  min-height: 520px !important;
}

#page-content-wrapper[data-current-page="Contactos de emergencia"] .card-img-top {
  height: 132px !important;
  max-width: 78% !important;
  align-self: center !important;
}

#page-content-wrapper[data-current-page="Contactos de emergencia"] .card-body {
  padding-top: .7rem !important;
}

#page-content-wrapper[data-current-page="Contactos de emergencia"] .card-text {
  margin-bottom: .58rem !important;
  line-height: 1.35 !important;
}

#page-content-wrapper .support-card {
  margin-top: 0 !important;
  margin-bottom: 3rem !important;
  overflow: hidden !important;
}

#page-content-wrapper .support-icon {
  width: 96px !important;
  height: 96px !important;
  margin: 1.6rem auto .5rem !important;
}

#page-content-wrapper .support-icon i {
  font-size: 2.4rem !important;
}

#page-content-wrapper .validator-card,
#page-content-wrapper .product-card,
#page-content-wrapper .media-card,
#page-content-wrapper .airline-card,
#page-content-wrapper .condition-card,
#page-content-wrapper .manual-card,
#page-content-wrapper .feature-card {
  height: 100% !important;
}

#page-content-wrapper .validator-card {
  min-height: 318px !important;
}

#page-content-wrapper .validator-card .card-content,
#page-content-wrapper .product-card .card-body {
  min-height: 0 !important;
}

#page-content-wrapper .validator-logo img,
#page-content-wrapper .product-logo img {
  width: auto !important;
  max-width: 170px !important;
  max-height: 82px !important;
  object-fit: contain !important;
}

#page-content-wrapper .validator-logo:not(img),
#page-content-wrapper .product-logo {
  min-height: 120px !important;
}

#page-content-wrapper .validator-logo:is(img) {
  display: block !important;
  width: auto !important;
  max-width: 170px !important;
  max-height: 82px !important;
  object-fit: contain !important;
}

#page-content-wrapper .search-section,
#page-content-wrapper .filter-section,
#page-content-wrapper .navigation-alert,
#page-content-wrapper .access-info,
#page-content-wrapper .operations-highlight {
  border: 1px solid var(--border-color) !important;
  background: rgba(255, 255, 255, .88) !important;
  box-shadow: var(--shadow-sm) !important;
}

#page-content-wrapper .row.align-items-center.my-5 {
  padding: 1.3rem !important;
  border: 1px solid var(--border-color) !important;
  border-radius: var(--radius-lg) !important;
  background: rgba(255, 255, 255, .9) !important;
  box-shadow: var(--shadow-sm) !important;
}

#page-content-wrapper .row.align-items-center.my-5 iframe {
  width: 100% !important;
  min-height: 320px !important;
}

#page-content-wrapper .row.align-items-center.my-5 img {
  max-height: 54px !important;
  width: auto !important;
  margin-bottom: .8rem !important;
}

#page-content-wrapper #cargando {
  padding-top: 2rem !important;
  padding-bottom: 3rem !important;
}

#page-content-wrapper #cargando .sidebar-sticky {
  position: sticky !important;
  top: 92px !important;
}

#page-content-wrapper #cargando .carousel,
#page-content-wrapper #cargando .card {
  overflow: hidden !important;
  border-radius: var(--radius-lg) !important;
}

@media (max-width: 767.98px) {
  #page-content-wrapper .hero-section,
  #page-content-wrapper .dashboard-header,
  #page-content-wrapper .documents-hero {
    padding: 3.2rem 1rem !important;
    border-radius: 0 0 22px 22px !important;
  }

  #page-content-wrapper[data-current-page="Contactos de emergencia"] .card {
    min-height: 0 !important;
  }

  #page-content-wrapper #cargando .sidebar-sticky {
    position: static !important;
  }
}

/* ============================================================
   Sidebar scroll sutil
   ============================================================ */
.sidebar-wrapper,
#sidebar-wrapper {
  height: 100vh !important;
  max-height: 100vh !important;
  overflow: hidden !important;
}

.sidebar-menu {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding-right: .48rem !important;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, .18) transparent;
}

.sidebar-menu:hover {
  scrollbar-color: rgba(255, 255, 255, .38) transparent;
}

.sidebar-menu::-webkit-scrollbar {
  width: 9px;
}

.sidebar-menu::-webkit-scrollbar-track {
  background: transparent;
}

.sidebar-menu::-webkit-scrollbar-thumb {
  border: 3px solid transparent;
  border-radius: 999px;
  background-color: rgba(255, 255, 255, .16);
  background-clip: content-box;
}

.sidebar-menu:hover::-webkit-scrollbar-thumb {
  background-color: rgba(255, 255, 255, .38);
}

.sidebar-menu::-webkit-scrollbar-thumb:hover {
  background-color: rgba(255, 255, 255, .52);
}

.sidebar-menu::-webkit-scrollbar-corner {
  background: transparent;
}
