*,:before,:after{box-sizing:border-box}body{font-family:var(--familia-base);font-size:var(--texto-base);color:var(--neutral-800);background:var(--neutral-50);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}h1{font-size:var(--texto-xl);letter-spacing:-.01em;color:var(--neutral-900);margin:0;font-weight:600}h2{font-size:var(--texto-lg);color:var(--neutral-900);margin:0;font-weight:600}p{margin:0}a{color:var(--brand-600);font-weight:500;text-decoration:none}a:hover{text-decoration:underline}code,.codigo{font-family:var(--familia-mono);font-size:.92em}main{gap:var(--espacio-lg);padding:var(--espacio-xl);flex-direction:column;max-width:1320px;margin:0 auto;display:flex}main>header{justify-content:space-between;align-items:center;gap:var(--espacio-lg);padding-bottom:var(--espacio-lg);border-bottom:1px solid var(--neutral-200);flex-wrap:wrap;display:flex}form{gap:var(--espacio-sm);flex-direction:column;display:flex}label{font-size:var(--texto-sm);color:var(--neutral-700);font-weight:500}input,select,textarea{font-family:inherit;font-size:var(--texto-base);color:var(--neutral-900);background:var(--neutral-0);border:1px solid var(--neutral-300);border-radius:var(--radio-md);padding:10px var(--espacio-md);width:100%;min-height:42px;transition:border-color .12s,box-shadow .12s}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand-600);outline-offset:1px;border-color:var(--brand-500);box-shadow:none}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:0;accent-color:var(--brand-600);cursor:pointer;flex:none;padding:0}select{cursor:pointer}::placeholder{color:var(--neutral-500);opacity:1}input:disabled{background:var(--neutral-100);color:var(--neutral-500);cursor:not-allowed}form>label:not(:first-of-type){margin-top:var(--espacio-md)}button{justify-content:center;align-items:center;gap:var(--espacio-xs);font-family:inherit;font-size:var(--texto-base);color:var(--neutral-0);background:var(--brand-500);border-radius:var(--radio-md);padding:10px var(--espacio-lg);cursor:pointer;border:1px solid #0000;min-height:42px;font-weight:500;transition:background .12s;display:inline-flex}button:hover:not(:disabled){background:var(--brand-600)}button:focus-visible{outline:2px solid var(--brand-600);outline-offset:2px;box-shadow:none}a:focus-visible{outline:2px solid var(--brand-600);outline-offset:2px;border-radius:var(--radio-sm)}button.peligro{background:var(--danger-strong)}button.peligro:hover:not(:disabled){background:var(--danger-strongHover)}button:disabled{background:var(--neutral-200);color:var(--neutral-500);cursor:not-allowed}a.boton{justify-content:center;align-items:center;gap:var(--espacio-xs);font-size:var(--texto-base);color:var(--neutral-0);background:var(--brand-500);border-radius:var(--radio-md);padding:10px var(--espacio-lg);border:1px solid #0000;min-height:42px;font-weight:500;text-decoration:none;transition:background .12s;display:inline-flex}a.boton:hover{background:var(--brand-600);text-decoration:none}a.boton:focus-visible{outline:2px solid var(--brand-600);outline-offset:2px}a.boton.secundario{background:var(--neutral-0);color:var(--neutral-700);border-color:var(--neutral-300)}a.boton.secundario:hover{background:var(--neutral-100)}button.secundario{background:var(--neutral-0);color:var(--neutral-700);border-color:var(--neutral-300)}button.secundario:hover:not(:disabled){background:var(--neutral-100)}[role=alert]{font-size:var(--texto-sm);color:var(--danger-strong);background:var(--danger-soft);border:1px solid var(--danger-border);border-radius:var(--radio-md);padding:var(--espacio-sm) var(--espacio-md)}[role=status]{font-size:var(--texto-sm);color:var(--neutral-600)}.estado-pantalla{padding:var(--espacio-xl);text-align:center}.cargando:before{content:"";border:2px solid var(--neutral-200);border-top-color:var(--brand-500);width:14px;height:14px;margin-right:var(--espacio-sm);vertical-align:-2px;border-radius:50%;animation:.8s linear infinite girar;display:inline-block}@keyframes girar{to{transform:rotate(360deg)}}.exito{font-size:var(--texto-sm);color:var(--success-strong);background:var(--success-soft);border:1px solid var(--success-border);border-radius:var(--radio-md);padding:var(--espacio-sm) var(--espacio-md);text-align:left}.visualmente-oculto{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
