* { box-sizing: border-box; }
body { margin: 0; font-family: Arial, Helvetica, sans-serif; background: #eef1f6; color: #1f2a37; font-size: 14px; }
.top { background: #155a96; color: #fff; padding: 0 20px; height: 54px; display: flex; align-items: center; justify-content: space-between; }
.marca { color: #fff; text-decoration: none; font-size: 20px; font-weight: 700; }
.marca span { color: #9fd0ff; } .marca small { font-weight: 400; font-size: 13px; opacity: .8; margin-left: 8px; }
.cont { max-width: 1100px; margin: 0 auto; padding: 22px 16px 50px; }
.btn { display: inline-block; height: 34px; line-height: 32px; padding: 0 14px; border: 1px solid #c9d2df; border-radius: 6px; background: #fff; color: #1f2a37; text-decoration: none; cursor: pointer; font-size: 13px; }
.btn:hover { background: #f3f5f8; }
.btn-p { background: #1d6fb8; border-color: #1d6fb8; color: #fff; } .btn-p:hover { background: #175a96; }
.btn-d { background: #c0392b; border-color: #c0392b; color: #fff; } .btn-d:hover { background: #a02f23; }
.btn-ok { background: #2e8b57; border-color: #2e8b57; color: #fff; } .btn-ok:hover { background: #257248; }
.btn-s { height: 28px; line-height: 26px; padding: 0 10px; font-size: 12px; }
.card { background: #fff; border: 1px solid #e1e6ee; border-radius: 10px; padding: 18px 20px; margin-bottom: 18px; box-shadow: 0 1px 2px rgba(16, 24, 40, .05); }
.card h2 { margin: 0 0 14px; font-size: 17px; color: #155a96; }
table { width: 100%; border-collapse: collapse; }
th { text-align: left; font-size: 12px; text-transform: uppercase; color: #6b7785; padding: 8px 10px; border-bottom: 2px solid #e1e6ee; }
td { padding: 10px; border-bottom: 1px solid #edf0f5; vertical-align: middle; }
tr:hover td { background: #f8fafc; }
td small { color: #6b7785; display: block; }
.badge { display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 700; }
.b-ok { background: #e3f4ea; color: #1d6b40; } .b-warn { background: #fff1d0; color: #8a5a00; } .b-bad { background: #fde3e0; color: #a02f23; } .b-info { background: #e1effb; color: #155a96; }
.aviso { border-radius: 8px; padding: 12px 16px; margin-bottom: 16px; } .aviso.ok { background: #e3f4ea; color: #1d6b40; } .aviso.err { background: #fde3e0; color: #a02f23; } .aviso.info { background: #e1effb; color: #155a96; }
.fila { display: flex; flex-wrap: wrap; margin: 0 -8px; }
.campo { padding: 0 8px 12px; flex: 1 1 240px; min-width: 200px; }
.campo label { display: block; font-size: 12px; font-weight: 700; color: #4a5563; margin-bottom: 4px; }
.campo input, .campo select, .campo textarea { width: 100%; height: 36px; border: 1px solid #c9d2df; border-radius: 6px; padding: 0 10px; font-size: 14px; font-family: inherit; background: #fff; }
.campo textarea { height: 80px; padding: 8px 10px; }
.campo .ayuda { font-size: 12px; color: #6b7785; margin-top: 3px; }
.resumen { display: flex; flex-wrap: wrap; margin: 0 -8px 10px; }
.resumen > div { flex: 1 1 140px; margin: 0 8px 12px; background: #fff; border: 1px solid #e1e6ee; border-radius: 10px; padding: 12px 16px; }
.resumen b { display: block; font-size: 24px; color: #155a96; } .resumen span { font-size: 12px; color: #6b7785; text-transform: uppercase; }
.login { max-width: 360px; margin: 10vh auto; }
.clave { font-family: monospace; font-size: 18px; background: #f3f5f8; border: 1px dashed #9aa5b5; border-radius: 6px; padding: 8px 12px; display: inline-block; user-select: all; }
.acciones form { display: inline; }
@media (max-width: 720px) { .cont { padding: 14px 10px 40px; } .ocultar-m { display: none; } }
.modulo { border: 1px solid #e1e6ee; border-radius: 8px; margin: 0 0 12px; padding: 8px 14px 10px; }
.modulo legend { padding: 0 6px; font-size: 14px; }
.modulo .mdesc { color: #6b7785; font-size: 12px; margin-bottom: 6px; }
.mpant label { display: inline-block; width: 49%; min-width: 230px; margin: 2px 0; font-size: 13px; vertical-align: top; }
