:root{--accent: #16603A;--accent-texto: #ffffff;--accent-suave: #e8f0ec;--texto: #1c1c1c;--texto-tenue: #5c5c5c;--borde: #cfcfcf;--fondo: #ffffff;--fondo-tenue: #f5f5f5;--error: #a3211b;--error-fondo: #fbeaea;--aviso: #7a5600;--aviso-fondo: #fdf3dd;--exito: #1d6b3a;--exito-fondo: #e8f3ec;--espacio: 1rem;--radio: 4px;--ancho-maximo: 60rem}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif;font-size:16px;line-height:1.5;color:var(--texto);background:var(--fondo-tenue)}h1,h2,h3{line-height:1.25;margin:0 0 .5em}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 1em}a{color:var(--accent)}.pagina{min-height:100vh;display:flex;flex-direction:column}.encabezado{background:var(--accent);color:var(--accent-texto);padding:.75rem var(--espacio)}.encabezado a{color:var(--accent-texto)}.encabezado-interior{max-width:var(--ancho-maximo);margin:0 auto;display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between}.encabezado-marca{font-weight:700}.encabezado-usuario{font-size:.875rem;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.contenido{flex:1;width:100%;max-width:var(--ancho-maximo);margin:0 auto;padding:var(--espacio)}.pie{padding:var(--espacio);text-align:center;font-size:.8125rem;color:var(--texto-tenue)}.tarjeta{background:var(--fondo);border:1px solid var(--borde);border-radius:var(--radio);padding:var(--espacio);margin-bottom:var(--espacio)}.tarjeta-angosta{max-width:26rem;margin:2rem auto}.campo{margin-bottom:.875rem}.campo label{display:block;font-weight:600;font-size:.9375rem;margin-bottom:.25rem}.campo input,.campo select,.campo textarea{width:100%;padding:.5rem;font:inherit;color:inherit;border:1px solid var(--borde);border-radius:var(--radio);background:var(--fondo)}.campo input:focus,.campo select:focus,.campo textarea:focus,button:focus{outline:2px solid var(--accent);outline-offset:1px}.campo-ayuda{font-size:.8125rem;color:var(--texto-tenue);margin-top:.25rem}button{font:inherit;padding:.5rem 1rem;border-radius:var(--radio);border:1px solid var(--accent);background:var(--accent);color:var(--accent-texto);cursor:pointer}button[disabled]{opacity:.6;cursor:not-allowed}button.secundario{background:transparent;color:var(--accent)}.encabezado button.secundario{color:var(--accent-texto);border-color:var(--accent-texto)}button.enlace{background:none;border:none;color:var(--accent);text-decoration:underline;padding:0;cursor:pointer}.acciones{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:var(--espacio)}.aviso{padding:.75rem;border-radius:var(--radio);margin-bottom:var(--espacio);border:1px solid transparent}.aviso-error{background:var(--error-fondo);border-color:var(--error);color:var(--error)}.aviso-alerta{background:var(--aviso-fondo);border-color:var(--aviso);color:var(--aviso)}.aviso-exito{background:var(--exito-fondo);border-color:var(--exito);color:var(--exito)}.aviso-neutro{background:var(--fondo-tenue);border-color:var(--borde);color:var(--texto)}.texto-tenue{color:var(--texto-tenue)}.politica{max-height:16rem;overflow-y:auto;border:1px solid var(--borde);border-radius:var(--radio);padding:.75rem;background:var(--fondo-tenue);white-space:pre-wrap;font-size:.9375rem}.casilla{display:flex;gap:.5rem;align-items:flex-start;margin:var(--espacio) 0}.casilla input{margin-top:.3rem}.tabla-envoltorio{overflow-x:auto;margin-bottom:var(--espacio)}.tabla{width:100%;border-collapse:collapse;font-size:.9375rem}.tabla th,.tabla td{padding:.5rem;border-bottom:1px solid var(--borde);text-align:left;vertical-align:top}.tabla th{font-weight:600}.etiqueta-estado{display:inline-block;padding:.125rem .5rem;border-radius:var(--radio);font-size:.8125rem;white-space:nowrap}.etiqueta-estado-activo{background:var(--exito-fondo);color:var(--exito)}.etiqueta-estado-vencido,.etiqueta-estado-error{background:var(--error-fondo);color:var(--error)}.etiqueta-estado-suspendido,.etiqueta-estado-duplicada{background:var(--aviso-fondo);color:var(--aviso)}.etiqueta-estado-sin_cursos,.etiqueta-estado-crear{background:var(--fondo-tenue);color:var(--texto-tenue)}.fila-acciones{display:flex;flex-wrap:wrap;gap:.375rem}.panel-gestion{border:1px solid var(--accent);background:var(--accent-suave)}@media(max-width:480px){.contenido{padding:.75rem}.acciones button{width:100%}.encabezado-interior{justify-content:flex-start}}
