/* Campus by moose — theme del frontend (capa de re-skin sobre material-dashboard).
   Incluir DESPUES de moose_frontend.css para que gane. Primer pase global. */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,600&family=Hanken+Grotesk:wght@400;500;600;700;800&display=swap');

:root{
  --cmp-teal:#00A099; --cmp-teal-deep:#0B6E68; --cmp-yellow:#FDDB32; --cmp-yellow-deep:#E8BE00;
  --cmp-cream:#FBF7EE; --cmp-ink:#0E2E2B; --cmp-ink-soft:#3C5451; --cmp-line:#E7DFCE;
}

body{ background:var(--cmp-cream) !important; color:var(--cmp-ink); font-family:"Hanken Grotesk",system-ui,sans-serif !important; }
h1,h2,h3,h4,h5,.card-title,.title,.titulo,.titulo-tabla{ font-family:"Fraunces",Georgia,serif !important; font-weight:600 !important; letter-spacing:-.01em; color:var(--cmp-ink); }
a{ color:var(--cmp-teal-deep); }
a:hover{ color:var(--cmp-teal); }

/* Navbar / chrome */
.navbar, .navbar.navbar-transparent, .navbar-default{
  background:rgba(251,247,238,.9) !important; backdrop-filter:blur(12px);
  border-bottom:1px solid var(--cmp-line) !important; box-shadow:none !important;
}
.navbar .nav-link, .navbar .navbar-nav .nav-link{ color:var(--cmp-ink-soft) !important; font-weight:600; border-radius:12px; }
.navbar .nav-link:hover{ color:var(--cmp-teal-deep) !important; background:#E2F3F0; }
.navbar .nav-item.active .nav-link, .navbar .nav-link.active{ color:#fff !important; background:var(--cmp-ink) !important; }

/* Botones */
.btn{ border-radius:999px !important; font-weight:700 !important; text-transform:none !important; letter-spacing:0 !important; box-shadow:none !important; }
.btn-info, .btn-primary, .btn-success, .btn.btn-round, .bg-info, .btn-fill{
  background:var(--cmp-teal) !important; border-color:var(--cmp-teal) !important; color:#fff !important;
}
.btn-info:hover, .btn-primary:hover, .btn-success:hover{ background:var(--cmp-teal-deep) !important; border-color:var(--cmp-teal-deep) !important; transform:translateY(-1px); }
.btn-warning{ background:var(--cmp-yellow) !important; border-color:var(--cmp-yellow) !important; color:var(--cmp-ink) !important; }
.btn-secondary, .btn-default, .btn-outline{ border:1.5px solid var(--cmp-line) !important; background:#fff !important; color:var(--cmp-ink) !important; }

/* Cards / paneles */
.card, .panel, .box{ border-radius:20px !important; border:1px solid var(--cmp-line) !important; box-shadow:0 12px 30px -14px rgba(14,46,43,.18) !important; }
.card .card-header-primary, .card-header-info, .bg-primary, .bg-info{
  background:linear-gradient(135deg,#0FB3AB,var(--cmp-teal-deep)) !important; color:#fff !important;
}

/* Form controls */
.form-control{ border:1.5px solid var(--cmp-line) !important; border-radius:12px !important; background:#fff; }
.form-control:focus{ border-color:var(--cmp-teal) !important; box-shadow:0 0 0 4px #E2F3F0 !important; }
.bmd-label-floating, label{ color:var(--cmp-ink-soft); }

/* Badges / chips / filtros de categoria */
.badge, .badge-pill{ background:var(--cmp-teal) !important; color:#fff !important; border-radius:999px; }
.badge-warning{ background:var(--cmp-yellow) !important; color:var(--cmp-ink) !important; }
.filter a, .filter .nav-link, .categoria, .chip{ border-radius:999px !important; }
.filter .active, .filter a.active{ background:var(--cmp-ink) !important; color:#fff !important; }

/* Progreso / barras */
.progress{ background:#F3ECDA !important; border-radius:999px; }
.progress-bar{ background:linear-gradient(90deg,var(--cmp-teal),#3ED0C6) !important; }

/* Tablas */
table.table thead, .table .cabezal_tabla, thead.text-warning{ color:var(--cmp-teal-deep) !important; }
.table tbody tr:hover{ background:#F7F2E6 !important; }

/* Footer */
.page-footer{ background:transparent !important; border-top:1px solid var(--cmp-line); }

/* Toasts / links utilitarios */
.text-info, .text-primary{ color:var(--cmp-teal-deep) !important; }
.text-warning{ color:var(--cmp-yellow-deep) !important; }

/* ===== Componente de LOGIN (split-screen) — vive en el theme para centralizar ===== */
.cmp-login{position:fixed;inset:0;z-index:9990;display:grid;grid-template-columns:1.05fr .95fr;font-family:"Hanken Grotesk",system-ui,sans-serif;color:var(--cmp-ink);background:var(--cmp-cream);overflow:auto}
.cmp-login *{box-sizing:border-box}
.cmp-brand{position:relative;overflow:hidden;color:#fff;padding:3.5rem;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(120% 90% at 15% 10%,#0FB3AB 0%,var(--cmp-teal) 42%,var(--cmp-teal-deep) 100%)}
.cmp-brand .halo{position:absolute;width:440px;height:440px;border-radius:50%;top:-120px;right:-100px;background:radial-gradient(circle,rgba(253,219,50,.85),rgba(253,219,50,0) 60%);opacity:.55}
.cmp-brand .ring{position:absolute;border:1.5px solid rgba(255,255,255,.22);border-radius:50%;width:520px;height:520px;bottom:-160px;left:-120px}
.cmp-wm{display:flex;align-items:center;gap:.6rem;font-family:"Fraunces",serif;font-weight:600;font-size:1.4rem;letter-spacing:-.03em;position:relative;z-index:2}
.cmp-wm .antlers{width:38px;height:38px;display:grid;place-items:center;background:#fff;border-radius:11px;color:var(--cmp-teal-deep)}
.cmp-wm .stack{display:flex;flex-direction:column;line-height:.84}
.cmp-wm .stack em{font-style:normal;font-weight:700;font-size:.42em;letter-spacing:.24em;text-transform:uppercase;opacity:.7;margin-top:3px}
.cmp-hero{position:relative;z-index:2}
.cmp-hero .eyebrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:var(--cmp-yellow)}
.cmp-hero h2{font-family:"Fraunces",serif;font-weight:600;font-size:clamp(2rem,3.4vw,3.2rem);line-height:1.05;letter-spacing:-.02em;margin-top:1rem;max-width:12ch}
.cmp-hero h2 em{font-style:italic;color:var(--cmp-yellow)}
.cmp-hero p{margin-top:1.1rem;max-width:34ch;color:rgba(255,255,255,.85);font-size:1.05rem}
.cmp-stats{display:flex;gap:2rem;position:relative;z-index:2}
.cmp-stats b{font-family:"Fraunces",serif;font-size:1.7rem;font-weight:600;display:block}
.cmp-stats span{font-size:.78rem;color:rgba(255,255,255,.72)}
.cmp-formwrap{display:flex;align-items:center;justify-content:center;padding:2.5rem}
.cmp-card{width:100%;max-width:400px}
.cmp-card .eyebrow{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:800;color:var(--cmp-teal-deep)}
.cmp-card h1{font-family:"Fraunces",serif;font-weight:600;font-size:2rem;letter-spacing:-.02em;margin:.4rem 0 .3rem}
.cmp-card .sub{color:#7A8C89;margin-bottom:1.8rem;font-size:.95rem}
.cmp-msg{padding:.75rem 1rem;border-radius:12px;font-size:.9rem;font-weight:600;margin-bottom:1.1rem}
.cmp-error{background:#FFE7E3;color:#B02249;border:1px solid #FFC9C0}
.cmp-success{background:#E2F3F0;color:var(--cmp-teal-deep);border:1px solid #CFEBE6}
.cmp-label{display:block;font-size:.82rem;font-weight:700;margin:0 0 .45rem;color:var(--cmp-ink-soft)}
.cmp-input{width:100%;float:none;display:block;padding:.9rem 1.05rem;border:1.5px solid var(--cmp-line);border-radius:13px;background:#fff;font-size:1rem;font-family:inherit;margin-bottom:1.05rem;transition:border .18s,box-shadow .18s}
.cmp-input:focus{outline:none;border-color:var(--cmp-teal);box-shadow:0 0 0 4px #E2F3F0}
.cmp-row{display:flex;justify-content:flex-end;margin:-.4rem 0 1.4rem}
.cmp-link{color:var(--cmp-teal-deep);font-weight:700;font-size:.88rem;text-decoration:none}
.cmp-link:hover{text-decoration:underline}
.cmp-btn{width:100%;justify-content:center;display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:1rem;padding:1.05rem 1.4rem;border-radius:999px;border:none;cursor:pointer;background:var(--cmp-teal);color:#fff;font-family:inherit;transition:transform .18s,box-shadow .18s}
.cmp-btn:hover{transform:translateY(-2px);box-shadow:0 14px 26px -10px rgba(0,160,153,.6)}
.cmp-foot{text-align:center;margin-top:1.6rem;font-size:.85rem;color:#7A8C89}
@media(max-width:820px){.cmp-login{grid-template-columns:1fr}.cmp-brand{display:none}}

/* ===== Pulido: nav activo (pisa el azul/gradiente de material-dashboard) ===== */
.nav .active > a, .nav-item.active > .nav-link, .nav-link.active, li.active > a.nav-link,
.sidebar .nav li.active > a, .navbar-nav .nav-item.active > .nav-link, .filter .active{
  background:var(--cmp-teal) !important; background-image:none !important; color:#fff !important; box-shadow:none !important; border-radius:12px !important;
}
.nav-link:hover, .filter a:hover{ background:#E2F3F0 !important; color:var(--cmp-teal-deep) !important; border-radius:12px; }
/* Iconos/acentos que material pinta de azul */
.text-primary, .card-header-primary .card-icon, a.text-info{ color:var(--cmp-teal-deep) !important; }
.card-header-primary, .card-header-info{ background:linear-gradient(135deg,#0FB3AB,var(--cmp-teal-deep)) !important; }
