/*
  Proyecto con Formato Militar
  Capa visual independiente. No altera los flujos de membresia, pagos,
  certificacion, revista ni administracion de la plataforma.
*/

:root {
  --mil-green-950: #10271c;
  --mil-green-900: #193827;
  --mil-green-800: #285238;
  --mil-green-700: #3b6845;
  --mil-cream: #f7f3e8;
  --mil-parchment: #ece3ce;
  --mil-gold: #c69b48;
  --mil-gold-light: #ead6a3;
  --mil-red: #b52536;
  --mil-ink: #15231a;
  --cn-brand: var(--mil-green-900);
  --cn-action: #8f1828;
  --cn-surface: var(--mil-cream);
  --ink-950: var(--mil-ink);
  --ink-900: var(--mil-green-950);
  --ink-800: var(--mil-green-800);
  --petrol-700: var(--mil-green-700);
  --petrol-600: #527a56;
  --petrol-100: #dce8d8;
  --gold-600: #9d7328;
  --gold-500: var(--mil-gold);
  --gold-100: #f4e7c5;
  --ivory-50: var(--mil-cream);
  --ivory-100: #eee7d8;
  --slate-700: #33463a;
  --slate-500: #516156;
  --slate-300: #c3cabc;
  --slate-200: #d9dfd2;
  --slate-100: #eaf0e5;
}

body { background: var(--mil-cream); color: var(--mil-ink); }
body::before { content: ""; position: fixed; z-index: -1; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(24, 56, 39, .022) 1px, transparent 1px), linear-gradient(90deg, rgba(24, 56, 39, .018) 1px, transparent 1px); background-size: 68px 68px; }

.site-header { min-height: 94px; background: rgba(252,250,243,.97); border-bottom: 1px solid rgba(28,54,36,.15); box-shadow: 0 7px 20px rgba(16,39,28,.08); }
.site-header::after { content: ""; position: absolute; right: 0; bottom: -4px; left: 0; height: 4px; background: linear-gradient(90deg, #006847 0 33.33%, #f8f7ed 33.33% 66.66%, #b52536 66.66%); }
.header-inner { min-height: 94px; gap: 1.1rem; }
.brand { gap: .9rem; }
.brand-mark { width: 58px; height: 58px; padding: 2px; border: 2px solid var(--mil-gold); background: #10271c; box-shadow: 0 3px 12px rgba(16,39,28,.22); object-fit: contain; }
.brand-copy { line-height: 1.08; }
.brand-copy strong { color: var(--mil-green-950); font-family: Georgia, serif; font-size: 1.12rem; letter-spacing: -.02em; }
.brand-copy small { color: var(--mil-green-800); font-size: .66rem; letter-spacing: .11em; }
.site-header .brand-copy strong, .site-header .brand-copy small, .site-header .nav-list a, .site-header .nav-group-trigger, .site-header .account-link, .site-header .icon-button { color: var(--mil-green-950); }
.nav-list { gap: .12rem; }
.nav-list a, .nav-group-trigger { padding: .72rem .66rem; border-radius: 0; font-size: .9rem; font-weight: 760; letter-spacing: .01em; }
.site-header .nav-list a, .site-header .nav-group-trigger { font-size: .9rem; line-height: 1.2; }
.nav-list a:hover, .nav-list a[aria-current="page"], .nav-group-trigger:hover, .nav-group-trigger.is-current { color: var(--mil-green-950); background: transparent; box-shadow: inset 0 -3px 0 var(--mil-red); }
.nav-dropdown-menu { border-color: rgba(16,39,28,.16); border-radius: 0; box-shadow: 0 18px 34px rgba(16,39,28,.16); }
.nav-dropdown-menu a { border-bottom: 1px solid rgba(16,39,28,.07); }
.header-actions { gap: .42rem; }
.icon-button, .account-link { border-color: rgba(40,82,56,.26); background: rgba(255,255,255,.6); }
.icon-button:hover, .account-link:hover { background: #f3ead8; border-color: var(--mil-gold); }

.btn { border-radius: 2px; font-weight: 800; letter-spacing: .01em; }
.btn:not(.btn-outline):not(.btn-light), .btn-gold { background: var(--mil-red); border-color: var(--mil-red); color: #fff; }
.btn:not(.btn-outline):not(.btn-light):hover, .btn-gold:hover { background: #861221; border-color: #861221; }
.btn-outline { border-color: var(--mil-green-800); color: var(--mil-green-950); }
.btn-outline:hover { background: var(--mil-green-900); border-color: var(--mil-green-900); color: #fff; }
.btn-outline-light { border-color: rgba(255,255,255,.78); color: #fff; }
.btn-outline-light:hover { color: var(--mil-green-950); background: #fff; border-color: #fff; }
.eyebrow { color: #8b1d2c; font-size: .78rem; font-weight: 850; letter-spacing: .16em; }
.eyebrow::before { width: 2.5rem; height: 2px; }

/* Portada en formato ceremonial, adaptable y con video opcional. */
.military-landing-hero { position: relative; min-height: clamp(560px, 75svh, 780px); overflow: hidden; isolation: isolate; color: #fff; background: var(--mil-green-950); }
.military-hero-visual, .military-hero-shade { position: absolute; inset: 0; }
.military-hero-visual img, .military-hero-visual video { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.military-hero-visual img { filter: saturate(.8) contrast(1.08) brightness(.72); animation: military-drift 22s ease-in-out infinite alternate; }
.military-hero-visual video { position: absolute; z-index: 1; inset: 0; }
.military-hero-visual:has(video) img { opacity: 0; }
.military-hero-shade { z-index: 2; background: linear-gradient(90deg, rgba(10,34,24,.94) 0%, rgba(18,48,32,.84) 34%, rgba(20,49,34,.46) 62%, rgba(10,27,19,.6) 100%), linear-gradient(0deg, rgba(7,25,15,.52), transparent 48%); }
.military-landing-hero::before { content: ""; position: absolute; z-index: 3; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px); background-size: 94px 94px; mask-image: linear-gradient(90deg, black, transparent 75%); }
.military-flag { position: absolute; z-index: 5; right: clamp(1rem,4vw,5rem); top: 0; display: flex; width: min(30vw, 400px); height: 7px; box-shadow: 0 7px 14px rgba(0,0,0,.18); }
.military-flag span { flex: 1; }
.military-flag span:nth-child(1) { background: #006847; }
.military-flag span:nth-child(2) { background: #f9f5eb; }
.military-flag span:nth-child(3) { background: #b52536; }
.military-hero-content { position: relative; z-index: 6; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); align-items: center; gap: clamp(2rem, 7vw, 8rem); min-height: clamp(560px, 75svh, 780px); padding-block: 4.2rem 3.3rem; }
.military-hero-content.military-hero-no-feature { grid-template-columns: minmax(0,1fr); }
.military-hero-copy { max-width: 48rem; }
.military-hero-copy .eyebrow { color: var(--mil-gold-light); }
.military-hero-copy h1 { max-width: 12ch; margin: .65rem 0 1.15rem; color: #fff; font-size: clamp(2.85rem, 5.4vw, 5.1rem); line-height: .96; text-shadow: 0 2px 16px rgba(0,0,0,.22); }
.military-hero-copy > p:not(.eyebrow) { max-width: 57ch; color: rgba(255,255,255,.92); font-size: clamp(1.05rem, 1.4vw, 1.22rem); font-weight: 500; }
.military-hero-copy .hero-actions { margin-top: 2rem; }
.military-hero-crest { display: inline-grid; place-items: center; width: 84px; height: 84px; margin-bottom: 1rem; border: 1px solid rgba(234,214,163,.7); background: rgba(9,34,22,.48); border-radius: 50%; backdrop-filter: blur(6px); }
.military-hero-crest .brand-mark { width: 72px; height: 72px; }
.military-feature { position: relative; display: grid; align-content: end; min-height: 20rem; overflow: hidden; color: #fff; background: linear-gradient(155deg, rgba(236,227,206,.18), rgba(16,39,28,.86)); border-left: 3px solid var(--mil-gold); box-shadow: 0 16px 45px rgba(0,0,0,.28); text-decoration: none; transition: transform .24s ease, box-shadow .24s ease; }
.military-feature:hover { color: #fff; transform: translateY(-5px); box-shadow: 0 25px 55px rgba(0,0,0,.35); }
.military-feature-poster { position: absolute; inset: 0; }
.military-feature-poster img, .military-feature-poster { width: 100%; height: 100%; object-fit: cover; }
.military-feature::before { content: ""; position: absolute; z-index: 1; top: -30%; bottom: -30%; left: -55%; width: 30%; pointer-events: none; background: linear-gradient(90deg, transparent, rgba(255,255,255,.24), transparent); transform: rotate(18deg); animation: military-sheen 9s ease-in-out infinite; }
.military-feature::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(9,27,18,.97), rgba(9,27,18,.04) 70%); }
.military-feature span { position: relative; z-index: 2; display: grid; gap: .45rem; padding: 1.5rem; }
.military-feature small { color: var(--mil-gold-light); font-size: .72rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.military-feature strong { font-family: Georgia, serif; font-size: clamp(1.45rem,2.3vw,2.25rem); line-height: 1.02; }
.military-feature em { color: #fff; font-size: .94rem; font-style: normal; font-weight: 700; }
.military-feature-fallback { position: relative; min-height: 17rem; background: linear-gradient(145deg, rgba(13,45,27,.91), rgba(55,105,69,.68)), url('/assets/images/ueo-fachada.png') center/cover; }

.military-identity { position: relative; padding: clamp(4rem,8vw,7rem) 0; background: #fbfaf5; }
.military-identity::before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 6px; background: linear-gradient(90deg, #006847 0 33.33%, #f9f5eb 33.33% 66.66%, #b52536 66.66%); }
.military-identity-grid { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); align-items: center; gap: clamp(2.5rem,7vw,7rem); }
.military-identity figure { position: relative; min-height: 31rem; margin: 0; overflow: hidden; background: var(--mil-green-950); box-shadow: 20px 20px 0 var(--mil-parchment); }
.military-identity figure::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(234,214,163,.7); box-shadow: inset 0 0 0 12px rgba(16,39,28,.2); }
.military-identity figure > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:sepia(.12) saturate(.84); animation:military-drift 20s ease-in-out infinite alternate; }
.military-identity figcaption { position: absolute; z-index: 2; right: 1.3rem; bottom: 1.3rem; display: grid; place-items: center; width: 86px; height: 86px; padding: 7px; background: rgba(248,246,236,.9); border-radius: 50%; box-shadow: 0 8px 20px rgba(0,0,0,.25); }
.military-identity figcaption .brand-mark { width: 100%; height: 100%; }
.military-identity h2 { max-width: 15ch; margin-bottom: 1.2rem; color: var(--mil-green-950); font-size: clamp(2.15rem,3.9vw,3.9rem); }
.military-identity .lead { max-width: 52ch; color: #33463a; }
.military-purpose { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 2rem 0; }
.military-purpose article { padding: 1.25rem; background: #f2eee3; border-top: 3px solid var(--mil-green-700); }
.military-purpose h3 { margin-bottom: .55rem; color: var(--mil-green-900); font-family: Georgia, serif; }
.military-purpose p { margin: 0; color: #405148; font-size: .96rem; }
.military-values { padding-top: 1.3rem; border-top: 1px solid #c9d0c4; }
.military-values > span { display: block; margin-bottom: .6rem; color: var(--mil-red); font-size: .77rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.military-values ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.military-values li { padding: .4rem .65rem; color: var(--mil-green-900); background: #e5ecdf; border-left: 3px solid var(--mil-gold); font-size: .9rem; font-weight: 750; }

.military-journal { padding: clamp(4rem,7vw,6.5rem) 0; color: #fff; background: linear-gradient(120deg, #10271c, #264d34); }
.military-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.military-section-heading .eyebrow { color: var(--mil-gold-light); }
.military-section-heading h2 { max-width: 16ch; margin: 0; color: #fff; font-size: clamp(2rem,3.5vw,3.5rem); }
.military-section-heading .btn-outline { color: #fff; border-color: rgba(255,255,255,.72); }
.military-section-heading .btn-outline:hover { color: var(--mil-green-950); background: #fff; }
.military-journal-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(234,214,163,.42); }
.military-journal-card { display: flex; min-height: 17rem; flex-direction: column; align-items: flex-start; padding: 1.7rem; background: rgba(10,31,21,.66); backdrop-filter: blur(3px); }
.military-journal-card:nth-child(2) { background: rgba(69,99,58,.58); }
.military-journal-card:nth-child(3) { background: rgba(130,43,40,.5); }
.military-journal-card > span { color: var(--mil-gold-light); font-size: .72rem; font-weight: 850; letter-spacing: .14em; }
.military-journal-card h3 { margin: 1.2rem 0 .75rem; color: #fff; font-family: Georgia, serif; font-size: clamp(1.4rem,2vw,2rem); }
.military-journal-card p { color: rgba(255,255,255,.82); font-size: .94rem; }
.military-journal-card a { margin-top: auto; color: #fff; font-weight: 800; text-decoration-color: var(--mil-gold); }

.military-agenda { padding: clamp(4rem,7vw,6.5rem) 0; background: #f8f4eb; }
.military-agenda-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); align-items: center; gap: clamp(2rem,7vw,7rem); }
.military-agenda h2 { max-width: 11ch; color: var(--mil-green-950); font-size: clamp(2.1rem,3.9vw,3.7rem); }
.military-agenda > .container > div > p:not(.eyebrow) { max-width: 42ch; }
.military-agenda ol { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; counter-reset: agenda; }
.military-agenda li { counter-increment: agenda; }
.military-agenda li a, .military-agenda li > span { position: relative; display: grid; grid-template-columns: 7rem 1fr; gap: .2rem 1rem; min-height: 5rem; padding: 1.1rem 1rem 1.1rem 4.7rem; color: var(--mil-green-950); background: #fff; border-left: 3px solid var(--mil-red); box-shadow: 0 7px 17px rgba(25,56,39,.08); text-decoration: none; }
.military-agenda li a::before { content: counter(agenda, decimal-leading-zero); position: absolute; top: 1.15rem; left: 1.1rem; color: var(--mil-gold); font-family: Georgia,serif; font-size: 1.3rem; font-weight: 700; }
.military-agenda time { grid-row: span 2; color: var(--mil-red); font-size: .78rem; font-weight: 850; letter-spacing: .05em; }
.military-agenda strong { font-size: 1.03rem; }
.military-agenda li span { color: #526158; font-size: .9rem; }

.military-join { padding: 2.5rem 0; color: #fff; background: linear-gradient(90deg, #006847 0 33.33%, #f8f7ed 33.33% 66.66%, #b52536 66.66%); }
.military-join > .container { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1.8rem 2rem; background: linear-gradient(110deg, rgba(13,43,27,.98), rgba(20,67,39,.95)); }
.military-join > .container > div { display: flex; align-items: center; gap: 1.2rem; }
.military-join .brand-mark { width: 66px; height: 66px; }
.military-join .official-college-crest,
.military-identity .official-college-crest { padding:2px; background:#fffdf7; object-fit:contain; }
.military-join .eyebrow { color: var(--mil-gold-light); margin-bottom: .25rem; }
.military-join h2 { margin: 0; color: #fff; font-size: clamp(1.65rem,2.8vw,2.65rem); }

.site-footer { background: #0d2116; border-top: 4px solid var(--mil-gold); }
.site-footer .brand-copy strong { color: #fff; }
.site-footer .brand-copy small, .site-footer p, .footer-bottom { color: rgba(255,255,255,.72); }
.site-footer a:hover { color: var(--mil-gold-light); }

.page-hero, .app-hero { background: linear-gradient(115deg, #10271c, #315d40); }
.page-hero::after { border-color: rgba(234,214,163,.4); }
.card-tag, .status-pill { border-radius: 2px; }

@keyframes military-drift { from { transform: scale(1); } to { transform: scale(1.055) translate(-.8%, -.5%); } }
@keyframes military-sheen { 0%, 52% { left: -55%; opacity: 0; } 58% { opacity: 1; } 78%, 100% { left: 130%; opacity: 0; } }

/* Navegación única del formato militar: neutraliza los estilos heredados de
   las plantillas anteriores y conserva una escala y estado activo consistentes. */
.site-header .nav-list a,
.site-header .nav-group-trigger,
.site-header .nav-dropdown summary,
.site-header .nav-dropdown-menu a {
  font-size: .9rem !important;
  line-height: 1.2 !important;
  font-weight: 760 !important;
}
.site-header .nav-list a::after {
  background: var(--mil-red) !important;
  height: 3px !important;
}
.site-header .nav-list a:hover,
.site-header .nav-list a[aria-current="page"],
.site-header .nav-group-trigger:hover,
.site-header .nav-group-trigger.is-current,
.site-header .nav-dropdown summary:hover,
.site-header .nav-dropdown details[open] > summary,
.site-header .nav-dropdown summary.is-current {
  color: var(--mil-green-950) !important;
  background: var(--mil-parchment) !important;
  box-shadow: inset 0 -3px 0 var(--mil-red) !important;
}
.site-header .nav-dropdown summary span { color: var(--mil-red) !important; }
.site-header .nav-dropdown-menu a:hover,
.site-header .nav-dropdown-menu a[aria-current="page"] {
  color: var(--mil-green-950) !important;
  background: var(--mil-gold-light) !important;
}

@media (max-width: 1080px) {
  .site-nav { background: var(--mil-green-950); }
  .site-header .nav-list a, .site-header .nav-group-trigger { color: #fff; }
  .site-header .nav-list a:hover, .site-header .nav-list a[aria-current="page"], .site-header .nav-group-trigger:hover { color: #fff; background: rgba(255,255,255,.1); box-shadow: inset 3px 0 0 var(--mil-gold); }
  .site-header .nav-dropdown summary,
  .site-header .nav-dropdown summary:hover,
  .site-header .nav-dropdown details[open] > summary,
  .site-header .nav-dropdown summary.is-current { color: #fff !important; background: rgba(255,255,255,.1) !important; box-shadow: inset 3px 0 0 var(--mil-gold) !important; }
  .site-header .nav-dropdown-menu a,
  .site-header .nav-dropdown-menu a:hover,
  .site-header .nav-dropdown-menu a[aria-current="page"] { color: #fff !important; background: transparent !important; font-size: .9rem !important; }
  .military-hero-content { grid-template-columns: 1fr; gap: 2rem; }
  .military-feature { max-width: 28rem; min-height: 15rem; }
}

@media (max-width: 780px) {
  .site-header, .header-inner { min-height: 78px; }
  .brand-mark { width: 48px; height: 48px; }
  .brand-copy strong { font-size: .95rem; }
  .brand-copy small { font-size: .57rem; }
  .military-landing-hero { min-height: auto; }
  .military-hero-content { min-height: auto; padding-block: 5rem 3.5rem; }
  .military-hero-copy h1 { font-size: clamp(2.65rem,12vw,4rem); }
  .military-identity-grid, .military-agenda-grid { grid-template-columns: 1fr; }
  .military-identity figure { min-height: 23rem; order: 2; }
  .military-purpose { grid-template-columns: 1fr; }
  .military-journal-grid { grid-template-columns: 1fr; }
  .military-section-heading, .military-join > .container { align-items: flex-start; flex-direction: column; }
  .military-agenda li a { grid-template-columns: 1fr; padding-left: 4.5rem; }
  .military-agenda time { grid-row: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .military-hero-visual img, .military-identity figure > img, .military-feature::before { animation: none; }
  .military-feature, .btn { transition: none; }
}

/* Sistema visual único: paneles, formularios, flujos y páginas heredadas. */
:root {
  --cn-navy: #10271c;
  --cn-deep: #193827;
  --cn-brand: #193827;
  --cn-blue: #3b6845;
  --cn-teal: #527a56;
  --cn-action: #8f1828;
  --cn-gold: #c69b48;
  --cn-research: #9d7328;
  --cn-gold-soft: #ead6a3;
  --cn-ink: #15231a;
  --cn-line: #c7d1bf;
  --cn-mist: #edf2e9;
  --cn-paper: #f7f3e8;
  --cn-surface: #fffdf7;
  --petrol-800: #193827;
  --petrol-700: #285238;
  --petrol-600: #3b6845;
  --petrol-500: #527a56;
  --petrol-100: #dce8d8;
  --gold-300: #dcc17d;
  --gold-500: #c69b48;
  --gold-600: #9d7328;
  --ivory-50: #f7f3e8;
  --ivory-100: #eee7d8;
  --slate-700: #33463a;
  --slate-600: #405148;
  --slate-500: #516156;
  --slate-300: #c3cabc;
  --slate-200: #d9dfd2;
  --slate-100: #eaf0e5;
  --white: #fffdf7;
  --success: #2f6a3d;
  --danger: #8c2732;
  --shadow-sm: 0 1px 2px rgba(16,39,28,.08), 0 8px 24px rgba(16,39,28,.08);
  --shadow-md: 0 16px 42px rgba(16,39,28,.16);
  --shadow-lg: 0 26px 72px rgba(16,39,28,.22);
}

body:not(.maintenance-body) { color: var(--mil-ink); background: var(--mil-cream); }
body:not(.maintenance-body)::before { background-image: linear-gradient(rgba(40,82,56,.024) 1px, transparent 1px), linear-gradient(90deg, rgba(40,82,56,.02) 1px, transparent 1px); }

/* Acciones, campos y avisos: contraste consistente en superficies claras y oscuras. */
.btn, button.btn, input[type="submit"], input[type="button"] { border-radius: 2px; color: #fff; background: var(--mil-red); border-color: var(--mil-red); box-shadow: none; }
.btn:hover, button.btn:hover, input[type="submit"]:hover, input[type="button"]:hover { color: #fff; background: #861221; border-color: #861221; }

/* Los botones secundarios parten de una superficie clara: texto verde oscuro y
   fondo marfil. Los contextos oscuros se corrigen de forma explícita más abajo. */
.btn.btn-outline, .btn-outline { color: var(--mil-green-950); background: rgba(255,253,247,.78); border-color: var(--mil-green-800); }
.btn.btn-outline:hover, .btn-outline:hover { color: #fff; background: var(--mil-green-900); border-color: var(--mil-green-900); }
.btn.btn-light { color: var(--mil-green-950); background: #fffdf7; border-color: #fffdf7; }
.btn.btn-light:hover { color: #fff; background: var(--mil-green-900); border-color: var(--mil-green-900); }

/* Botones de contorno colocados sobre verdes institucionales. La superficie
   translúcida mantiene visible tanto el texto como el límite del control. */
:is(.hero, .portal-hero, .page-hero, .app-hero, .section-ink, .section-petrol, .card-dark, .journal-showcase, .institutional-figure, .pricing-card.featured, .doi-import-card, .dashboard-header, .cta-band, .portal-status-hero, .member-credential, .military-section-heading, .military-landing-hero, .military-join) :is(.btn.btn-outline, .btn-outline, .btn.btn-outline-light) {
  color: #fff;
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.78);
  text-shadow: 0 1px 1px rgba(0,0,0,.24);
}
:is(.hero, .portal-hero, .page-hero, .app-hero, .section-ink, .section-petrol, .card-dark, .journal-showcase, .institutional-figure, .pricing-card.featured, .doi-import-card, .dashboard-header, .cta-band, .portal-status-hero, .member-credential, .military-section-heading, .military-landing-hero, .military-join) :is(.btn.btn-outline, .btn-outline, .btn.btn-outline-light):hover {
  color: var(--mil-green-950);
  background: #fffdf7;
  border-color: #fffdf7;
  text-shadow: none;
}

.btn:focus-visible, button.btn:focus-visible, input[type="submit"]:focus-visible, input[type="button"]:focus-visible { outline: 3px solid var(--mil-red); outline-offset: 3px; }
:is(.hero, .portal-hero, .page-hero, .app-hero, .section-ink, .section-petrol, .card-dark, .journal-showcase, .institutional-figure, .pricing-card.featured, .doi-import-card, .dashboard-header, .cta-band, .portal-status-hero, .member-credential, .military-section-heading, .military-landing-hero, .military-join) .btn:focus-visible { outline-color: var(--mil-gold-light); }
.btn-danger { color: #fff; background: #8c2732; border-color: #8c2732; }

:is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea) { color: var(--mil-ink); background: #fffdf7; border-color: #b7c5ae; box-shadow: none; }
:is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea):focus { border-color: var(--mil-gold); outline: 3px solid rgba(198,155,72,.23); box-shadow: none; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--mil-red); }
input[type="file"]::file-selector-button { color: var(--mil-green-950); background: var(--mil-parchment); border-color: #b7c5ae; }

.app-alert.success { color: #234e2f; background: #edf5e9; border-color: #a7c9a4; }
.app-alert.error { color: #6f2029; background: #fff3f0; border-color: #d9aeb0; }
.notice, .workflow-status-note, .payment-instructions, .site-status-card { color: var(--mil-green-950); background: #f4f5eb; border-color: #c4d2bb; border-left-color: var(--mil-red); }
.notice strong, .workflow-status-note strong, .payment-instructions strong, .site-status-card strong { color: var(--mil-green-950); }
.card-tag, .status-pill, .status-chip, .record-chip, .drawer-count { color: #5f4210; background: #f5e8c5; border-color: #d6b66c; }
.status-complete, .status-success { color: #234e2f; background: #e3f0df; }

/* Paneles de administración, perfil y formularios. */
:is(.dashboard-card, .admin-edit-card, .admin-section, .admin-new, .content-studio-assets, .workflow-admin-card, .membership-workflow-card, .account-services, .form-card, .call-card, .notification-card, .management-drawer, .profile-agenda-card, .participation-summary, .presidency-metric, .presidency-details details, .flow-direct-responsibilities, .flow-direct-copy) { color: var(--mil-ink); background: #fffdf7; border-color: #c7d1bf; box-shadow: 0 8px 24px rgba(16,39,28,.07); }
:is(.dashboard-card, .admin-edit-card, .admin-section, .admin-new, .content-studio-assets, .workflow-admin-card, .membership-workflow-card, .account-services, .form-card, .call-card, .notification-card, .management-drawer, .profile-agenda-card, .participation-summary, .presidency-metric, .presidency-details details, .flow-direct-responsibilities, .flow-direct-copy) :is(h1,h2,h3,h4,strong,summary) { color: var(--mil-green-950); }
:is(.dashboard-card, .admin-edit-card, .admin-section, .admin-new, .content-studio-assets, .workflow-admin-card, .membership-workflow-card, .account-services, .form-card, .call-card, .notification-card, .management-drawer, .profile-agenda-card, .participation-summary, .presidency-metric, .presidency-details details, .flow-direct-responsibilities, .flow-direct-copy) p { color: var(--slate-700); }
.admin-new, .article-create-panel[open] > .admin-edit-card, .membership-payment-settings, .experience-image-grid .field, .workflow-steps.compact li, .event-feature-quick, .flow-dialog-canvas, .flow-preview { background: #f5f7ef; border-color: #c7d1bf; }
.profile-sidebar-home, .admin-sidebar-home, .profile-sidebar, .admin-sidebar, .admin-navigation { background: #eef2e9; border-color: #bdccba; box-shadow: 0 10px 26px rgba(16,39,28,.08); }
.profile-sidebar-home a, .admin-sidebar-home a, .profile-sidebar a, .admin-sidebar a, .admin-navigation a { color: var(--mil-green-950); }
.profile-sidebar-home a:hover, .profile-sidebar-home a[aria-current="page"], .admin-sidebar-home a:hover, .admin-sidebar-home a[aria-current="page"], .profile-sidebar a:hover, .admin-sidebar a:hover { color: var(--mil-green-950); background: #dfead9; box-shadow: inset 3px 0 0 var(--mil-red); }

table, .data-table, .compact-admin-table { color: var(--mil-ink); background: #fffdf7; border-color: #c7d1bf; }
thead, .data-table thead, .compact-admin-table thead { color: #fff; background: var(--mil-green-900); }
tbody tr:nth-child(even), .data-table tbody tr:nth-child(even) { background: #f4f6ef; }
tbody tr:hover, .data-table tbody tr:hover { background: #ebf1e7; }
th, td { border-color: #d3dccd; }
details { border-color: #c7d1bf; background: #fffdf7; }
details[open] > summary { color: var(--mil-green-950); background: #edf2e9; border-color: #c7d1bf; }

/* Diálogos, flujos y vistas ejecutivas. */
dialog, .responsibility-flow-dialog { color: var(--mil-ink); background: #fffdf7; border-color: #bdccba; box-shadow: 0 24px 80px rgba(16,39,28,.35); }
.responsibility-dialog-header, .flow-dialog-canvas, .flow-process-intro, .flow-overview-card, .flow-step-notes li { color: var(--mil-ink); background: #f4f6ef; border-color: #c7d1bf; }
.flow-overview-card:hover, .flow-overview-card:focus-visible { border-color: var(--mil-red); box-shadow: 0 10px 22px rgba(16,39,28,.13); }
.flow-overview-card.is-relevant, .flow-step-notes li.is-direct { background: #fff5dc; border-color: #c69b48; }
.flow-tabs button, .responsibility-flow-dialog .flow-tabs button { color: var(--mil-green-950); background: #fffdf7; border-color: #b8c8b1; }
.flow-tabs button[aria-selected="true"] { color: #563a0e; background: #f7e8bf; border-color: #b8892d; box-shadow: inset 0 -2px 0 #b8892d; }

/* Mantenimiento: la página de acceso también pertenece al formato militar. */
body.maintenance-body { color: #fff; background: radial-gradient(circle at 16% 16%, rgba(198,155,72,.24), transparent 30%), radial-gradient(circle at 88% 86%, rgba(181,37,54,.2), transparent 34%), linear-gradient(132deg, #10271c 0%, #193827 57%, #315e3e 100%); }
body.maintenance-body::before { opacity: .32; background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px); }
.maintenance-brand .brand-mark { background: var(--mil-green-950); border-color: var(--mil-gold); }
.maintenance-message .eyebrow, .maintenance-forecast { color: var(--mil-gold-light); }
.maintenance-forecast span { background: var(--mil-gold); box-shadow: 0 0 0 .3rem rgba(198,155,72,.16); }
.maintenance-login { color: var(--mil-ink); background: rgba(255,253,247,.98); border-color: rgba(234,214,163,.7); box-shadow: 0 24px 65px rgba(4,20,12,.28); }
.maintenance-login h2, .maintenance-login label, .maintenance-login strong { color: var(--mil-green-950); }
.maintenance-login > p, .maintenance-security { color: var(--slate-700); border-color: #d8dfd0; }
.maintenance-login .status-pill { color: #60440d; background: #f7e9c7; }
.maintenance-login .btn { width: 100%; color: #fff; background: var(--mil-red); border-color: var(--mil-red); }
.maintenance-login .btn:hover { background: #861221; border-color: #861221; }
.maintenance-login input { color: var(--mil-ink); background: #fffdf7; border-color: #b7c5ae; }

@media (prefers-reduced-motion: reduce) {
  .maintenance-forecast span { animation: none; }
}

/* El menú móvil usa grupos <details>. Las reglas generales de formularios y
   paneles no deben convertir esos grupos en tarjetas claras; de hacerlo, sus
   rótulos blancos desaparecen. Este bloque vive al final para prevalecer sobre
   esas reglas globales en todos los navegadores móviles. */
@media (max-width: 1080px) {
  .site-header .site-nav .nav-dropdown > details {
    color: #fff;
    background: transparent !important;
    border: 0;
  }
  .site-header .site-nav .nav-dropdown > details > summary,
  .site-header .site-nav .nav-dropdown > details > summary:hover,
  .site-header .site-nav .nav-dropdown > details[open] > summary,
  .site-header .site-nav .nav-dropdown > details > summary span {
    color: #fff !important;
    -webkit-text-fill-color: #fff;
    opacity: 1;
    visibility: visible;
  }
  .site-header .site-nav .nav-dropdown > details > summary {
    background: rgba(255,255,255,.06) !important;
    border: 1px solid rgba(255,255,255,.15);
  }
  .site-header .site-nav .nav-dropdown > details[open] > summary {
    background: rgba(255,255,255,.14) !important;
    border-color: rgba(234,214,163,.72);
  }
}
