:root {
  --primary:  #1a3a5c;
  --secondary:#2e6da4;
  --accent:   #e8a020;
  --soft:     #f0f4f8;
  --border:   #d0dce8;
  --text:     #1a2a3a;
  --text2:    #5a7a9a;
  --red:      #c0392b;
  --green:    #1a8f5a;
  --yellow:   #b8860b;
  --shadow:   0 2px 12px rgba(26,58,92,0.08);

  --col-lun:  rgba(221, 234, 248,0.5); /*#ddeaf8;*/
  --col-mar:  rgba(221, 240, 232,0.5) ; /*#ddf0e8;*/
  --col-mie:  rgba(254, 246, 224,0.5) ; /*#fef6e0;*/
  --col-jue:  rgba(240, 232, 248,0.5) ; /*#f0e8f8;*/
  --col-vie:  rgba(253, 232, 232,0.5) ;/* #fde8e8;*/
}
*, *::before, *::after { box-sizing: border-box; }
select, option { font-family: 'Mulish', sans-serif; }
body { font-family:'Mulish',sans-serif;
 background:transparent; color:var(--text); min-height:100vh; margin:0; 

  background: url("../img/fondo.jpg") no-repeat;
  
  
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-position: center center; 
  background-size: cover;
}
h1,h2,h3,h4,h5,h6,
.brand, .anio-badge, .modal-head-grad h5,
.alumno-avatar { xfont-family:'Playfair Display',serif; }

/* ── TOPBAR ── */
.topbar {
  background:transparent; xborder-bottom:3px solid var(--accent);
  padding:12px 24px; display:flex; align-items:center; justify-content:space-between;
  position:sticky; top:0; z-index:300; gap:12px; flex-wrap:wrap;
  position: relative;
}
.brand { font-size:1.1rem; font-weight:700; color:#fff; }
.brand span { color:var(--accent); }
.brand-sub { font-size:.65rem; color:#2A5298; color:cyan;text-transform:uppercase; letter-spacing:.08em; }
.xalumno-info { display:flex; align-items:center; gap:10px; position: absolute;
  left: 50%;
  transform: translateX(-50%); }

.alumno-info { display:flex; align-items:center; gap:10px; }

.alumno-avatar {
  width:50px; height:50px; border-radius:50%;
  background:white; border:1px solid #2A5298;
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:.95rem; color:#2A5298;
}
.alumno-name { font-size:.82rem; font-weight:700; color:#2A5298; }
.alumno-dni  { font-size:.75rem; color:rgba(255,255,255,.55);color:#2A5298; }

.btn-agregar-top {
  background:rgba(246, 139, 27,.9); 

  
  border:none;
  color:white;

  xfont-weight:700; font-size:.82rem;
  border-radius:8px; padding:8px 18px; transition:all .2s; white-space:nowrap;
  display:flex; align-items:center; gap:6px;
}
.btn-agregar-top:hover { background:rgba(246, 139, 27,1); xtransform:translateY(-1px); xbox-shadow:0 4px 14px rgba(232,160,32,.4); }

/* ── CONTENIDO ── */
.contenido { xpadding:20px 24px; max-width:1100px; margin:0 auto; padding:0px; }

/* ── TÍTULO DE AÑO ── */
.anio-header {
  display:flex; align-items:center; gap:10px; margin:24px 0 0px;
  padding-bottom:8px; xborder-bottom:2px solid var(--border);
}
.anio-badge {
  background:var(--primary); color:#fff;
  font-size:.85rem; font-weight:700;
  padding:4px 14px; border-radius:20px;
}
.anio-count { font-size:.72rem; color:var(--text2); }

/* ── CARD ASIGNATURA ── */
.cards-grid { display:flex; flex-direction:column; gap:8px; }

.card-asig {
  background:#fff; border:1.5px solid var(--border); border-radius:12px;
  box-shadow:var(--shadow); display:flex; align-items:center;
  overflow:hidden; transition:box-shadow .2s, transform .15s;
  animation:fadeIn .25s ease both;
}
.card-asig:hover { box-shadow:0 6px 22px rgba(26,58,92,.12); transform:translateY(-1px); }
@keyframes fadeIn { from{opacity:0;transform:translateY(5px)} to{opacity:1;transform:translateY(0)} }

.card-asig-accent {
  width:5px; flex-shrink:0; align-self:stretch;
}
.est-A { background:var(--green); }
.est-S { background:var(--accent); }
.est-R { background:var(--red); }

.card-asig-body {
  flex:1; padding:12px 16px; display:flex; align-items:center;
  gap:16px; flex-wrap:wrap;
}
.asig-nombre {
  font-weight:700; font-size:.9rem; color:var(--text); flex:1; min-width:180px;
}
.asig-anio-pill {
  font-size:.72rem; font-weight:700; color:var(--text2);
  background:var(--soft); border:1px solid var(--border);
  padding:5px ; border-radius:10px; white-space:nowrap;
}
.estado-badge {
  display:inline-flex; align-items:center; gap:5px;
  padding:5px; border-radius:10px; font-size:.72rem; font-weight:700; white-space:nowrap;
}
.estado-A { background:#d5f5e3; color:#1a5c3a; }
.estado-S { background:#fef9e7; color:#7d6608; border:1px solid #f9e79f; }
.estado-R { background:#fde8e8; color:#7b241c; }

.card-asig-acciones {
  padding:10px 14px; display:flex; align-items:center; border-left:1px solid var(--border);
}
.btn-del {
  background:none; border:1.5px solid var(--border); color:var(--text2);
  border-radius:8px; padding:6px 10px; cursor:pointer; transition:all .2s;
  display:flex; align-items:center; gap:4px; font-size:.72rem; font-weight:700;
  font-family:'Mulish',sans-serif;
}
.btn-del:hover { background:var(--red); border-color:var(--red); color:#fff; }

/* ── EMPTY STATE ── */
.empty-state {
  text-align:center; padding:40px 20px;
  background:#fff; border:1.5px dashed var(--border); border-radius:12px;
}
.empty-state i { font-size:2rem; color:var(--border); display:block; margin-bottom:8px; }
.empty-state p { font-size:.82rem; color:var(--text2); margin:0; }

/* ── MODAL SELECTOR ── */
.modal-head-grad {
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff; padding:18px 22px; border-radius:12px 12px 0 0;
  display:flex; align-items:center; justify-content:space-between;
}
.modal-head-grad h5 { xfont-family:'Playfair Display',serif; font-size:1rem; font-weight:700; margin:0; }
.modal-head-grad .btn-close { filter:invert(1) brightness(2); }
.modal-content { border-radius:12px; border:none; box-shadow:0 14px 50px rgba(26,58,92,.22); }

.anio-section-title {
  font-size:.65rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em;
  color:var(--text2); margin:14px 0 7px; padding-left:2px;
  grid-column: 1 / -1;
  white-space: nowrap;
  overflow: visible;
}

/* Cards del selector */
.sel-card-info { flex:1; min-width:0; }
.sel-card-nombre { font-weight:700; font-size:.78rem; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sel-card-anio   { font-size:.65rem; color:var(--text2); margin-top:1px; }
.sel-card-check  {
  width:20px; height:20px; border-radius:50%; flex-shrink:0;
  background:var(--secondary); color:#fff;
  font-size:.65rem; display:none; align-items:center; justify-content:center;
}
.sel-card.sel-selected .sel-card-check { display:flex; }
.sel-card-ya {
  font-size:.6rem; color:var(--text2); font-weight:700;
  background:var(--border); padding:1px 7px; border-radius:10px; white-space:nowrap; flex-shrink:0;
}

/* Buscador en modal */
.modal-search {
  position:relative; margin-bottom:12px;
}
.modal-search i { position:absolute; left:10px; top:50%; transform:translateY(-50%); color:var(--text2); font-size:.85rem; }
.modal-search input {
  width:100%; padding:8px 12px 8px 32px;
  border:1.5px solid var(--border); border-radius:8px;
  font-size:.85rem; color:var(--text);
  background:var(--soft); outline:none;
}
.modal-search input:focus { border-color:var(--secondary); background:#fff; }

/* Contador seleccionados */
.sel-counter {
  font-size:.75rem; color:var(--text2); margin-bottom:8px;
}
.sel-counter strong { color:var(--secondary); }

/* TOAST */
.toast-wrap {
  position:fixed; bottom:22px; left:50%; z-index:9999;
  background:var(--primary); color:#fff; border-radius:10px;
  padding:11px 18px; font-size:.82rem; display:flex; align-items:center; gap:9px;
  box-shadow:0 6px 24px rgba(26,58,92,.3);
  transform:translateX(-50%) translateY(60px);
  opacity:0; transition:all .3s;
  white-space:nowrap;
}
.toast-wrap.show { transform:translateX(-50%) translateY(0); opacity:1; }
.toast-wrap i { color:var(--accent); }

/* MODAL CONFIRMAR ELIMINAR */
.modal-del .modal-content  { border-radius:12px; border:none; }
.modal-del .modal-dialog   { max-width:360px; margin:auto; }
.modal-del-icon   { font-size:2rem; margin-bottom:8px; }
.modal-del-titulo { font-weight:700; margin-bottom:6px; font-size:1rem; }
.modal-del-nombre { font-size:.82rem; color:var(--text2); margin-bottom:18px; }
.btn-modal-cancel {
  background:var(--soft); border:1.5px solid var(--border); color:var(--text2);
  border-radius:8px; font-weight:600; font-size:.85rem; padding:8px 12px;
  cursor:pointer; font-family:'Mulish',sans-serif;
}
.btn-modal-cancel:hover { background:var(--border); }
.btn-modal-del {
  background:var(--red); color:#fff; border:none;
  border-radius:8px; font-weight:700; font-size:.85rem; padding:8px 12px;
  cursor:pointer; font-family:'Mulish',sans-serif;
}
.btn-modal-del:hover { background:#a93226; }

/* Cards selector: forzar mismo ancho con min-width:0 */
.sel-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:6px; margin-bottom:4px; align-items:stretch; }
.sel-card {
  border:1.5px solid var(--border); border-radius:8px;
  padding:8px 12px; cursor:pointer; background:#fff;
  transition:all .18s;
  display:flex; align-items:center; gap:10px;
  min-width:0;
  width:100%;
}
.sel-card:hover:not(.sel-disabled) {
  border-color:var(--secondary); background:#f0f6fc;
  transform:translateY(-1px); box-shadow:0 3px 10px rgba(46,109,164,.12);
}
.sel-card.sel-selected { border-color:var(--secondary); background:#ddeaf8; }
/*.sel-card.sel-disabled  { background:var(--soft); opacity:.5; cursor:not-allowed; }*/
.sel-card.sel-disabled { cursor: not-allowed; opacity: 1; }

@media(max-width:600px){
  .contenido { padding:10px;padding-top:0px; }
  .card-asig-body { gap:8px; }
  .sel-grid { grid-template-columns:1fr; }
}

/* ── TAMAÑO GLOBAL DE ÍCONOS ── */
[class*="bi bi-"] {
  font-size: 1.5em; /* ajustá este valor a gusto */
}

.btn-logout {
  background: white;
  border: 1.5px solid rgba(128,0,0,0.5);
  color: rgba(128,0,0,1);
  border-radius: 8px;
  padding: 4px 8px;       /* ← menos padding */
  text-decoration: none;
  transition: all .2s;
  display: flex;
  align-items: center;
  font-size: .85rem;      /* ← ícono más chico */
}
.btn-logout:hover {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}

@media (min-width: 901px) {
  .alumno-info { position: absolute; left: 50%; transform: translateX(-50%); }
}
@media (max-width: 900px) {
  .topbar {
    padding: 10px 14px;
    gap: 8px;
  }

  /* Quitar posición absoluta — fluye en el flex */
  .alumno-info {
    position: static !important;
    transform: none !important;
    left: auto !important;
    order: 3;
    width: 100%;
    justify-content: center;
    border-top: 1px solid rgba(255,255,255,.12);
    padding-top: 8px;

     
  }
   

  /* Logo y logout quedan en la misma fila */
  .topbar > a:first-child { order: 1; }
  .brand-sub              { order: 2; }
  .btn-logout             { order: 2; margin-left: auto; }
  .btn-agregar-top        { order: 4; width: 100%; justify-content: center; }
}
 