:root{
	--db-bg:#0B1E3A;
	--db-bg-soft:#0f274c;
	--db-primary:#0D6EFD;
	--db-primary-600:#1F6FEB;
	--db-primary-700:#1557c0;
	--db-accent:#4FB3FF;
	--db-text:#0e1a2b;
	--db-text-muted:#5b6b82;
	--db-surface:#f6f8fa;
	--db-surface-2:#eef2f6;
	--db-border:#d0d7de;
	--db-white:#ffffff;
}

html,body{
	font-family:'Inter', system-ui, -apple-system, Segoe UI, Roboto, Arial, "Helvetica Neue", sans-serif;
	background: var(--db-surface);
	color: var(--db-text);
	text-rendering: optimizeLegibility;
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
}

/* Tipografía y jerarquía */
.app-content h1{font-weight:800;font-size:2rem;color:var(--db-bg);letter-spacing:-0.01em;margin-bottom:0.75rem}
.app-content h2{font-weight:700;font-size:1.5rem;color:var(--db-bg);margin-bottom:0.5rem}
.app-content h3{font-weight:600;font-size:1.25rem;color:var(--db-bg);margin-bottom:0.5rem}
.app-content p,.app-content li{font-weight:400;line-height:1.6;color:#263247}
.small, .text-muted{color:var(--db-text-muted)!important}

/* Navbar moderna */
.navbar{
	background: var(--db-bg);
	border-bottom:1px solid rgba(255,255,255,.08);
	backdrop-filter: saturate(1.2) blur(6px);
}
.navbar .navbar-brand{color:#fff;font-weight:800;letter-spacing:.02em}
.navbar .brand-text{color:#fff;font-weight:800}
.navbar .nav-link{color:#d7e3ff!important;border-radius:10px}
.navbar .nav-link:hover{color:#fff!important;background:rgba(255,255,255,.08)}
.navbar .dropdown-menu{border:1px solid var(--db-border)}
.navbar .dropdown-item{color:var(--db-text)}
.navbar .dropdown-item:hover{background:var(--db-surface-2)}
.nav-button-link{background:none;border:none;padding:0.5rem 1rem;color:#d7e3ff;cursor:pointer}
.nav-button-link:hover{color:#fff;background:rgba(255,255,255,.08)}

/* Cabecera superior */
.site-header{background:linear-gradient(90deg,var(--db-bg),#0e2547);color:#c7d5ff;border-bottom:1px solid rgba(255,255,255,.06)}
.site-header .brand-title strong{color:#fff;font-size:0.95rem;letter-spacing:.12em}

/* Contenido principal */
.app-content{padding-top:1.25rem;padding-bottom:2rem}
.app-content a{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;border:1px solid var(--db-primary);color:#fff;background:var(--db-primary);padding:.5rem 1rem;border-radius:999px;box-shadow:0 1px 2px rgba(13,110,253,.25);transition:all .2s ease}
.app-content a:hover{background:var(--db-primary-600);transform:translateY(-1px);box-shadow:0 4px 14px rgba(13,110,253,.25)}
.app-content a:active{background:var(--db-primary-700);transform:translateY(0)}

/* Botones */
.btn{border-radius:12px;font-weight:600;letter-spacing:.01em}
.btn-primary{background:var(--db-primary);border-color:var(--db-primary)}
.btn-primary:hover{background:var(--db-primary-600);border-color:var(--db-primary-600)}
.btn-outline-primary{color:var(--db-primary);border-color:var(--db-primary);background:transparent}
.btn-outline-primary:hover{color:#fff;background:var(--db-primary);border-color:var(--db-primary)}
.btn-danger{border-radius:12px}

/* Formularios */
.form-label{font-weight:600;color:#223047}
.form-control,.form-select{border-radius:12px;border:1px solid var(--db-border);background:#fff}
.form-control:focus,.form-select:focus{border-color:var(--db-primary);box-shadow:0 0 0 .25rem rgba(13,110,253,.15)}
.input-group-text{border-radius:12px}

/* Tablas */
.table{border-color:var(--db-border);color:#24324a}
.table thead th{background:var(--db-surface-2);color:#15223b;border-bottom:1px solid var(--db-border);font-weight:700}
.table tbody tr:hover{background:#f2f6ff}
.table .btn-group{gap:.5rem}

/* Cards y superficies */
.card{border:1px solid var(--db-border);border-radius:16px;box-shadow:0 2px 6px rgba(16,24,40,.04)}
.card-header{background:var(--db-surface-2);border-bottom:1px solid var(--db-border)}

/* Badges */
.badge{border-radius:999px}
.badge.bg-danger{background:#e63946!important}
.badge.bg-info{background:#31c3f2!important;color:#072a3a}

/* Paginación bootstrap */
.page-link{border-radius:10px;color:var(--db-primary)}
.page-link:hover{background:var(--db-surface-2);color:var(--db-primary-600)}
.page-item.active .page-link{background:var(--db-primary);border-color:var(--db-primary)}

/* Utilidades */
.logo_icono{width:48px;height:48px}
.container{padding-top:1rem}

/* Animaciones suaves */
*{transition:color .15s ease, background-color .15s ease, border-color .15s ease}

/* Overrides del fondo previo */
body{background:var(--db-surface)!important} 

/* Nueva estructura de navbar */
.navbar .navbar-nav.gap-lg-2 .nav-link{padding:.5rem .875rem}
.nav-danger-link{color:#ffd8d8!important;border:1px solid rgba(255,255,255,.15);border-radius:10px}
.nav-danger-link:hover{color:#fff!important;background:rgba(220,53,69,.25);border-color:rgba(220,53,69,.45)}
.navbar .navbar-brand .brand-text{font-size:1.05rem}

/* Accesibilidad: enfoque visible */
.navbar .nav-link:focus-visible{outline:2px solid var(--db-accent);outline-offset:2px} 

/* Landing ISTAE */
.ist-hero{
	background: radial-gradient(1200px 600px at -10% -20%, rgba(31,111,235,.35), rgba(13,110,253,0)) ,
		linear-gradient(90deg, var(--db-bg), var(--db-bg-soft));
	color:#fff;
	padding:4rem 0 3rem;
	border-bottom:1px solid rgba(255,255,255,.08)
}
.ist-hero .hero-badge{
	display:inline-block;
	background: rgba(255,255,255,.12);
	border:1px solid rgba(255,255,255,.2);
	padding:.35rem .75rem;
	border-radius:999px;
	font-weight:600;
	letter-spacing:.02em
}
.ist-hero .hero-title{
	font-size:2.25rem;
	font-weight:800;
	letter-spacing:-.02em;
	margin:.75rem 0
}
.ist-hero .hero-subtitle{
	color:#d7e3ff;
	font-size:1.05rem
}
.ist-hero .hero-actions{display:flex;gap:.75rem;margin-top:1rem;flex-wrap:wrap}
.ist-hero .hero-logo{max-width:220px;width:100%;filter: drop-shadow(0 8px 20px rgba(0,0,0,.25))}

/* Estadísticas */
.ist-stats{margin-top:2rem;margin-bottom:1rem}
.stat-card{
	background:var(--db-white);
	border:1px solid var(--db-border);
	border-radius:16px;
	padding:1.5rem;
	text-align:center;
	box-shadow:0 8px 20px rgba(16,24,40,.06)
}
.stat-card .stat-value{color:var(--db-primary);font-weight:800;font-size:2rem}
.stat-card .stat-label{color:var(--db-text-muted);font-weight:600}

/* Ofertas académicas */
.ist-offers{margin:2rem auto}
.section-head{text-align:center;margin-bottom:1.5rem}
.section-head h2{font-weight:800;color:var(--db-bg)}
.section-head p{color:var(--db-text-muted)}
.offer-card{
	border:1px solid var(--db-border);
	border-radius:16px;
	padding:1.25rem 1.25rem 1rem;
	height:100%;
	background:var(--db-white);
	box-shadow:0 4px 14px rgba(16,24,40,.06);
	transition: transform .2s ease, box-shadow .2s ease
}
.offer-card:hover{transform: translateY(-3px);box-shadow:0 12px 28px rgba(16,24,40,.08)}
.offer-card .offer-icon{
	width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;
	background:linear-gradient(135deg, var(--db-primary), var(--db-primary-600));
	color:#fff;margin-bottom:.75rem
}
.offer-card h3{font-weight:700;color:var(--db-bg);margin:.5rem 0 0}
.offer-card ul{margin:.5rem 0 0 1rem}
.offer-card li{color:#364a63}

/* Enlaces rápidos */
.ist-quick-links{margin:2rem auto}
.ql-item{
	display:flex;align-items:center;gap:.75rem;
	border:1px solid var(--db-border);
	border-radius:14px;
	background:var(--db-white);
	padding:.9rem 1rem;
	color:var(--db-bg);
	box-shadow:0 2px 6px rgba(16,24,40,.04)
}
.ql-item i{font-size:1.35rem;color:var(--db-primary)}
.ql-item span{font-weight:600}
.ql-item:hover{background:#f4f8ff;border-color:#c7d7ff}

/* Mensaje del rector */
.ist-rector{margin:2rem auto}
.rector-card{
	border:1px solid var(--db-border);
	border-radius:16px;
	padding:1.5rem;
	background:linear-gradient(180deg, #f8fbff, #ffffff)
}
.ist-rector h3{font-weight:800;color:#102a43}
.ist-rector p{color:#3c4e69}

/* Contacto */
.ist-contact{margin:2rem 0 1rem}
.contact-banner{
	border:1px solid var(--db-border);
	border-radius:16px;
	padding:1.25rem 1.5rem;
	background: var(--db-surface-2)
}
.contact-banner h3{font-weight:800;color:var(--db-bg)}
.contact-banner p{margin:0;color:#2b3b53}

/* Hero details */
.hero-accent{width:64px;height:4px;background:linear-gradient(90deg,var(--db-primary),var(--db-primary-600));border-radius:4px;margin:.75rem 0 1rem}
.hero-meta{list-style:none;margin:0;padding:0;display:flex;gap:1rem;flex-wrap:wrap}
.hero-meta li{display:flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);padding:.5rem .75rem;border-radius:999px}
.hero-meta i{font-size:1.1rem;color:#fff}
.hero-meta span{color:#e8f0ff;font-weight:600}

/* Responsive */
@media (max-width: 992px){
	.ist-hero{padding:3rem 0 2rem}
	.ist-hero .hero-title{font-size:2rem}
	.ist-hero .hero-logo{max-width:180px}
}
@media (max-width: 576px){
	.ist-hero .hero-title{font-size:1.75rem}
	.stat-card .stat-value{font-size:1.6rem}
	.offer-card{padding:1rem}
	.hero-meta{gap:.5rem}
	.hero-meta li{padding:.4rem .6rem}
} 

/* Realce global: bordes sutiles en contenido */
/* (removido por solicitud) */
/* .app-content div{
	border:1px solid var(--db-border);
	border-radius:12px;
	background-clip:padding-box
}
.app-content .container,
.app-content .row,
.app-content .row > *{
	border:0
}
.hero-accent{border:0} */ 

/* Modales y overlays por encima de la navbar */
.modal-backdrop{z-index:2000!important}
.modal{z-index:2001!important}
.modal-dialog{z-index:2002!important}
.swal2-container{z-index:3000!important} 