:root{--fondo:#f6f7f9;--superficie:#fff;--borde:#e2e5ea;--texto:#16191d;--tenue:#5f6874;--acento:#14497a;--acento-suave:#eaf1f8;--peligro:#a8261f;--peligro-suave:#fdefee;--ok:#1c7a4a;--alerta:#9a6206;--radio:8px}*{box-sizing:border-box}body{margin:0;background:var(--fondo);color:var(--texto);font:15px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--acento)}h1{font-size:22px;margin:0 0 4px;letter-spacing:-.01em}h2{font-size:16px;margin:0 0 12px}.barra{background:var(--superficie);border-bottom:1px solid var(--borde);padding:0 24px}.barra-interior{max-width:1040px;margin:0 auto;height:58px;display:flex;align-items:center;gap:16px}.marca{font-weight:650;letter-spacing:-.02em;color:var(--acento)}.barra .empresa{color:var(--tenue);font-size:13px}.barra .derecha{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:13px}main{max-width:1040px;margin:0 auto;padding:28px 24px 64px}.tarjeta{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);padding:18px 20px}.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:14px;gap:14px}.metrica .valor{font-size:26px;font-weight:600;letter-spacing:-.02em}.metrica .etiqueta{color:var(--tenue);font-size:13px;margin-bottom:2px}.metrica .nota{color:var(--tenue);font-size:12px;margin-top:4px}.barra-uso{height:6px;background:var(--borde);border-radius:3px;overflow:hidden;margin-top:8px}.barra-uso>span{display:block;height:100%;background:var(--acento)}.barra-uso.alta>span{background:var(--alerta)}.barra-uso.critica>span{background:var(--peligro)}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--tenue);font-weight:600;padding:0 12px 8px 0}td,th{border-bottom:1px solid var(--borde)}td{padding:11px 12px 11px 0;vertical-align:middle}tr:last-child td{border-bottom:none}.direccion{font-weight:550}.sub{color:var(--tenue);font-size:13px}.etiqueta-estado{font-size:12px;padding:2px 8px;border-radius:100px;border:1px solid var(--borde);color:var(--tenue)}.etiqueta-estado.activo{background:#eef7f2;color:var(--ok);border-color:#cbe6d8}.etiqueta-estado.inactivo{background:#f4f5f7}.boton,button{font:inherit;font-size:14px;cursor:pointer;border:1px solid var(--borde);background:var(--superficie);color:var(--texto);padding:7px 13px;border-radius:6px;text-decoration:none;display:inline-block}.boton:hover,button:hover{background:#f2f4f7}button.primario{background:var(--acento);border-color:var(--acento);color:#fff}button.primario:hover{background:#10395f}button.peligro{color:var(--peligro);border-color:#ecc9c6;background:var(--peligro-suave)}button:disabled{opacity:.55;cursor:not-allowed}button.enlace{border:none;background:none;padding:4px 6px;color:var(--acento)}label{display:block;font-size:13px;color:var(--tenue);margin-bottom:5px}input,select{font:inherit;width:100%;padding:8px 10px;border:1px solid var(--borde);border-radius:6px;background:#fff;color:var(--texto)}input:focus,select:focus{outline:2px solid var(--acento-suave);border-color:var(--acento)}.campo{margin-bottom:14px}.fila{display:flex;gap:12px;flex-wrap:wrap}.fila>*{flex:1 1 180px}.aviso{border-radius:var(--radio);padding:11px 14px;font-size:14px;margin-bottom:16px}.aviso.error{background:var(--peligro-suave);color:var(--peligro);border:1px solid #ecc9c6}.aviso.ok{background:#eef7f2;color:var(--ok);border:1px solid #cbe6d8}.aviso.info{background:var(--acento-suave);color:var(--acento);border:1px solid #cfe0ef}.clave-generada{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16px;background:#fff;border:1px dashed #cfe0ef;padding:8px 12px;border-radius:6px;display:inline-block;margin-top:6px}.ingreso{max-width:380px;margin:9vh auto;padding:0 20px}.ingreso .tarjeta{padding:26px}.pie{color:var(--tenue);font-size:12px;text-align:center;margin-top:28px}dialog{border:1px solid var(--borde);border-radius:var(--radio);padding:22px;width:min(440px,92vw);box-shadow:0 12px 40px rgba(0,0,0,.16)}dialog::-webkit-backdrop{background:rgba(16,22,30,.42)}dialog::backdrop{background:rgba(16,22,30,.42)}.acciones-modal{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.vacio{color:var(--tenue);text-align:center;padding:34px 0}.encabezado-seccion{display:flex;align-items:center;margin:30px 0 12px}.encabezado-seccion h2{margin:0}.encabezado-seccion .derecha{margin-left:auto}