
:root{
  --bg:#0f172a; /* slate-900 */
  --panel:#0b1222;
  --text:#e2e8f0;
  --muted:#94a3b8;
  --primary:#3b82f6;
  --primary-600:#2563eb;
  --ok:#22c55e;
  --danger:#ef4444;
  --chip1:#ef4444; --chip2:#f59e0b; --chip3:#10b981; --chip4:#3b82f6; --chip5:#8b5cf6; --chip6:#ec4899;
}
*{box-sizing:border-box}
html,body{margin:0;font-family:'Inter',system-ui,Arial,sans-serif;background:#f6f7fb;color:#0f172a}
.container{max-width:1080px;margin:0 auto;padding:24px}
.topbar{display:flex;justify-content:space-between;align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;padding:12px 24px;position:sticky;top:0;z-index:50}
.topbar .brand{font-weight:700;color:#0f172a}
.topbar .brand span{color:var(--primary)}
.menu a{margin-left:12px;text-decoration:none;color:#0f172a;padding:6px 10px;border-radius:8px}
.menu a.logout{background:#f1f5f9}

.auth-wrapper{display:grid;place-items:center;height:70vh}
.login-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px;max-width:360px;width:100%;box-shadow:0 10px 30px rgba(2,8,23,.06)}
.login-card h2{margin:0 0 12px 0}
label{display:block;margin:12px 0 6px 0;font-size:14px;color:#334155}
input[type="datetime-local"],input[type="email"],input[type="text"],input[type="password"],input[type="date"],input[type="number"],input[type="url"],textarea,select{width:100%;padding:10px 12px;border:1px solid #e5e7eb;border-radius:10px;background:#fff}
textarea{min-height:140px}
button,.btn{appearance:none;border:none;background:var(--primary);color:#fff;padding:10px 14px;border-radius:10px;cursor:pointer;text-decoration:none;display:inline-block}
.btn.primary{background:var(--primary)}
.btn.danger{background:var(--danger)}
.btn.danger:hover,button:hover{background:var(--danger-600)}
.btn.primary:hover,button:hover{background:var(--primary-600)}
.muted{color:#64748b}
.small{font-size:12px}
.alert{background:#fff3cd;border:1px solid #ffe69c;color:#946200;padding:10px 12px;border-radius:10px;margin:12px 0}
.alert.ok{background:#dcfce7;border-color:#bbf7d0;color:#166534}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:16px}
.card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px}
.card-actions{margin-top:auto}

.list{display:flex;flex-direction:column;gap:10px}
.item{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px;display:flex;justify-content:space-between;gap:12px}
.item-actions .btn{background:#f1f5f9;color:#0f172a;height: 40px;}
.item-actions .btn:hover{background:#e2e8f0}
.item summary{cursor:pointer}

.table-wrap{overflow:auto;background:#fff;border:1px solid #e5e7eb;border-radius:12px}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left}

.footer{padding:24px;text-align:center;color:#64748b}

.toolbar{display:flex;gap:8px;margin:12px 0}
.chip{display:inline-block;padding:2px 8px;border-radius:999px;background:#e2e8f0;color:#0f172a;font-size:12px}
.chip.ok{background:#dcfce7;color:#166534}

.course-header{position:sticky;top:64px;background:#f6f7fb;padding:12px 0;z-index:40}
.tabs{display:flex;gap:8px;flex-wrap:wrap}
.tab{padding:8px 12px;border-radius:10px;background:#e2e8f0;color:#0f172a;cursor:pointer;font-weight:600}
.tab.active{background:#0f172a;color:#fff}
.pane{display:none;margin-top:12px}
.pane.active{display:block}

/* Chips de clases #1..#N estilo UNPAZ */
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.chip.pill{color:#fff}
.chips .chip:nth-child(6n+1){background:var(--chip1)}
.chips .chip:nth-child(6n+2){background:var(--chip2)}
.chips .chip:nth-child(6n+3){background:var(--chip3)}
.chips .chip:nth-child(6n+4){background:var(--chip4)}
.chips .chip:nth-child(6n+5){background:var(--chip5)}
.chips .chip:nth-child(6n){background:var(--chip6)}

.class-item{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:10px}
.class-title{margin:0;padding:12px;cursor:pointer}
.clase-content{display:none;padding:12px;border-top:1px solid #e5e7eb}

.content-html ul{padding-left:20px}
.excerpt{max-height:120px;overflow:hidden}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}

.breadcrumbs{margin-bottom:8px}
.inline{display:flex;gap:6px;align-items:center}



.pane {
     background: white;
    padding: 0.5em;
    border-radius: 5px;
    padding-left: 1.5em;
    padding-right: 1.5em;
}


.cajaBlanca {
    background: white;
    margin-top: 1em;
    padding: 0.5em;
    border-radius: 5px;
        padding-left: 1em;
    padding-right: 1em;
}



 .cards { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); 
    gap: 16px; 
  }

  .subject-card { 
    border:1px solid #e5e7eb; 
    border-radius:14px; 
    background:#fff; 
    overflow:hidden; 
    display:flex; 
    flex-direction:column; 
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
  }

  .subject-card .cover {
    position:relative; 
    height:120px; 
    background:#e8eef5; 
    display:block; 
    text-decoration:none; 
    color:#fff;
  }

  /* Imagen de portada */
  .subject-card .cover img {
    width:100%; height:100%;
    object-fit: cover; 
    display:block;
  }

  /* Degradé para legibilidad de textos */
  .subject-card .cover::after {
    content:""; 
    position:absolute; inset:0; 
    background: linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.15) 60%, rgba(0,0,0,0) 100%);
  }

  .subject-card .cover .title {
    position:absolute; left:12px; bottom:10px; right:12px; z-index:1;
    font-weight:700; font-size:18px; 
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    text-shadow:0 1px 2px rgba(0,0,0,0.6);
  }

  .subject-card .cover .subtitle {
    position:absolute; left:12px; top:10px; right:12px; z-index:1;
    font-size:12px; opacity:0.95; 
    text-shadow:0 1px 2px rgba(0,0,0,0.6);
  }

  .subject-card .body { padding:12px; min-height:64px; }
  .subject-card .excerpt { color:#4b5563; max-height:3.2em; overflow:hidden; }

  .subject-card .footer { 
    border-top:1px solid #f0f2f5; 
    padding:8px 10px; 
    display:flex; align-items:center; justify-content:space-between; 
  }

  .subject-card .btn-flat {
    display:inline-block; 
    padding:6px 10px; 
    border:1px solid #e5e7eb; 
    border-radius:8px; 
    text-decoration:none; 
    color:#111827; 
    background:#fff;
  }
  .subject-card .btn-flat:hover { background:#f9fafb; }
 



  .chip {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 14px;
    background: #e0e0e0;
    color: #333;
    font-size: 0.85rem;
    font-weight: 500;
}

.chip-rojo {
    background: #d32f2f;
    color: #ffffff;
}
/* Chips base */
.chip {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1.6;
  border: 1px solid transparent;
  vertical-align: middle;
  user-select: none;
}

/* Estados (fondo sólido con letra blanca) */
.chip-success { background: #2e7d32; color: #fff; border-color: #2e7d32; }     /* aprobado */
.chip-danger  { background: #c62828; color: #fff; border-color: #c62828; }     /* desaprobado */
.chip-warning { background: #f9a825; color: #111; border-color: #f57f17; }     /* en revisión */
.chip-info    { background: #1976d2; color: #fff; border-color: #1976d2; }     /* entregado / info genérica */
.chip-note    { background: #6d4c41; color: #fff; border-color: #6d4c41; }     /* nota */
.chip-deadline{ background: #374151; color: #fff; border-color: #111827; }     /* vencimiento fallback */

/* Opcional: contornos en lugar de fondo sólido (cambiale las clases donde las uses)
.chip-success { background: #e8f5e9; color: #1b5e20; border-color: #a5d6a7; }
.chip-danger  { background: #ffebee; color: #b71c1c; border-color: #ef9a9a; }
.chip-warning { background: #fff8e1; color: #e65100; border-color: #ffd54f; }
.chip-info    { background: #e3f2fd; color: #0d47a1; border-color: #90caf9; }
*/



.modal-overlay {
  position: fixed;
  z-index: 999;
  inset: 0;
  background: rgba(0,0,0,.4);
  display:flex;
  justify-content:center;
  align-items:center;
}

.modal {
  background: #fff;
  padding: 20px;
  border-radius: 12px;
  width: 90%;
  max-width: 450px;
  box-shadow: 0 0 20px rgba(0,0,0,.3);
}









/* === Botones unificados (anchor y button se ven iguales) === */
:root{
  --btn-h: 40px;
  --btn-px: 14px;
  --btn-radius: 10px;
  --btn-fs: 14px;
}

/* Dejá la responsabilidad en .btn (no en 'button' suelto) */
.btn,
button.btn,
a.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  height: var(--btn-h);
  padding: 0 var(--btn-px);
  border-radius: var(--btn-radius);

  font-size: var(--btn-fs);
  line-height: 1;
  font-weight: 600;

  appearance: none;
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;

  background: var(--primary);
  color: #fff;
}

/* Estados/variantes */
.btn.primary { background: var(--primary); border-color: var(--primary); color:#fff; }
.btn.primary:hover { background: var(--primary-600); border-color: var(--primary-600); }

.btn.danger  { background: var(--danger); border-color: var(--danger); color:#fff; }
.btn.danger:hover  { filter: brightness(0.92); }

/* Variante neutra (para listados/acciones secundarias) */
.btn.neutral { background:#f1f5f9; color:#0f172a; border-color:#e5e7eb; }
.btn.neutral:hover { background:#e2e8f0; }

/* Tamaños opcionales */
.btn.sm { --btn-h: 32px; --btn-px: 10px; --btn-fs: 13px; }
.btn.lg { --btn-h: 48px; --btn-px: 16px; --btn-fs: 15px; }


.chip.presencial {
    background: #dcdefc;
    color: #2f3db2;
}

.chip.virtual {
    background: #fcf8dc;
    color: #b26c2f;
}


 


.btn-secondary { background:#f4f6f8; color:#111; border:1px solid #dfe3e8; }
.btn-secondary:hover { background:#e9edf2; }