:root{--azul:#009cdc;--azul-texto:#006fa0;--fondo:#f7f2e8;--superficie:#fff;--crema-profundo:#efe7d4;--tinta1:#121417;--tinta2:#545b63;--tinta3:#7a8089;--exito:#17a673;--exito-texto:#0c6e4b;--advertencia-texto:#8f5410;--error:#d6473b;--error-relleno:#b2372c}*{box-sizing:border-box}body{background:var(--fondo);color:var(--tinta1);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px}.cabecera{background:var(--superficie);border-bottom:1px solid var(--crema-profundo);align-items:center;gap:12px;padding:12px 20px;display:flex}.marca{color:var(--azul-texto);letter-spacing:-.01em;font-weight:800}.seccion{color:var(--tinta2)}.derecha{align-items:center;gap:12px;margin-left:auto;display:flex}.quien{color:var(--tinta2);font-size:13px}.contenido{max-width:1100px;margin:0 auto;padding:20px}.cargando{color:var(--tinta2);text-align:center;padding:40px}.titulo{letter-spacing:-.01em;margin:4px 0 16px;font-size:22px}.boton{cursor:pointer;border:1px solid #0000;border-radius:10px;padding:9px 16px;font-size:14px;font-weight:600}.boton:disabled{opacity:.5;cursor:default}.boton.primario{background:var(--azul);color:var(--superficie)}.boton.peligro{background:var(--error-relleno);color:var(--superficie)}.boton.suave{background:var(--superficie);color:var(--tinta1);border-color:var(--crema-profundo)}.login{place-items:center;min-height:100vh;padding:20px;display:grid}.tarjeta-login{background:var(--superficie);border:1px solid var(--crema-profundo);border-radius:16px;flex-direction:column;gap:8px;width:100%;max-width:360px;padding:28px;display:flex}.marca-login{color:var(--azul-texto);letter-spacing:-.02em;margin:0;font-size:28px}.bajada{color:var(--tinta2);margin:0 0 12px;font-size:14px}.tarjeta-login label{color:var(--tinta2);margin-top:6px;font-size:13px;font-weight:600}.tarjeta-login input{border:1px solid var(--crema-profundo);background:var(--superficie);color:var(--tinta1);border-radius:10px;padding:10px 12px;font-size:15px}.tarjeta-login input:focus{outline:2px solid var(--azul);outline-offset:1px}.tarjeta-login .boton{margin-top:14px}.error{color:var(--error-relleno);margin:8px 0 0;font-size:13px}.vacio{text-align:center;padding:48px 20px}.vacio-titulo{margin:0;font-weight:600}.vacio-detalle{color:var(--tinta2);margin:6px 0 0;font-size:14px}.tabla-marco{background:var(--superficie);border:1px solid var(--crema-profundo);border-radius:14px;overflow-x:auto}.tabla{border-collapse:collapse;width:100%}.tabla th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--tinta3);border-bottom:1px solid var(--crema-profundo);white-space:nowrap;padding:12px 14px;font-size:12px}.tabla td{border-bottom:1px solid var(--crema-profundo);vertical-align:top;padding:14px}.tabla tr:last-child td{border-bottom:none}.sub{color:var(--tinta2);font-size:13px}.acciones-fila{flex-wrap:wrap;gap:8px;display:flex}.motivo{border:1px solid var(--crema-profundo);width:100%;min-height:84px;font:inherit;color:var(--tinta1);border-radius:10px;margin:4px 0 8px;padding:10px 12px}.aviso{background:var(--superficie);border-radius:10px;margin-bottom:14px;padding:10px 14px;font-size:14px}.aviso.malo{color:var(--error-relleno);border:1px solid var(--error)}.aviso.bueno{color:var(--exito-texto);border:1px solid var(--exito)}@media (width<=720px){.tabla thead{display:none}.tabla,.tabla tbody,.tabla tr,.tabla td{width:100%;display:block}.tabla tr{border-bottom:1px solid var(--crema-profundo);padding:6px 0}.tabla tr:last-child{border-bottom:none}.tabla td{border:none;padding:6px 14px}}@media (width<=640px){.contenido{padding:12px}.quien{display:none}}.marco-plan{background:var(--superficie);border:0;border-radius:14px;width:100%;height:calc(100vh - 120px)}.menu{gap:14px;margin-left:8px;display:flex}.menu a{color:var(--tinta2);padding:4px 2px;font-size:14px;text-decoration:none}.menu a.active{color:var(--azul-texto);border-bottom:2px solid var(--azul);font-weight:700}@media (width<=640px){.menu{margin-left:auto}}.boton.enlace{color:var(--azul-texto);background:0 0;border-color:#0000;margin-top:2px;padding:6px;font-size:13px;font-weight:600}.boton.enlace:hover{text-decoration:underline}
