:root{--navy:#102a43;--blue:#1f5f99;--gold:#d5a62e;--bg:#f3f6fa;--text:#1d2733;--muted:#657786;--line:#dce4ec;--ok:#1e7a4d;--bad:#b33a3a;--warn:#9a6a00}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.45}.top{background:var(--navy);color:#fff;padding:15px 5%;display:flex;justify-content:space-between;align-items:center;gap:16px;position:sticky;top:0;z-index:5}.brand{font-weight:800;letter-spacing:.4px}.brand span{color:#f0c85a}.nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.nav a{color:#fff;text-decoration:none}.wrap{width:min(1180px,92%);margin:28px auto}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:20px;box-shadow:0 3px 14px rgba(16,42,67,.06)}h1,h2,h3{color:var(--navy);margin-top:0}h1{font-size:27px}h2{font-size:20px}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.stat b{display:block;font-size:27px;color:var(--blue);margin-top:5px}.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px;color:#334e68}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #bcccdc;border-radius:8px;background:#fff;font:inherit}textarea{min-height:92px;resize:vertical}.btn{display:inline-block;border:0;border-radius:8px;background:var(--blue);color:#fff;padding:9px 14px;text-decoration:none;font-weight:700;cursor:pointer;font-size:14px}.btn:hover{filter:brightness(.95)}.btn.alt{background:#e8eef5;color:var(--navy)}.btn.gold{background:var(--gold);color:#1c2733}.btn.bad{background:var(--bad)}.btn.small{font-size:12px;padding:7px 10px}.alert{padding:11px 13px;border-radius:8px;background:#fff0f0;color:#8b2525;border:1px solid #f0b8b8;margin:10px 0 16px}.alert.ok{background:#effaf4;color:#17603d;border-color:#b8e4cd}.badge{display:inline-block;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:800;background:#e8eef5;color:var(--navy);text-transform:uppercase}.badge.validado{background:#e2f5ea;color:#17603d}.badge.pendiente{background:#fff5d8;color:#755100}.badge.rechazado{background:#fde6e6;color:#922e2e}.kv{display:grid;grid-template-columns:185px 1fr;padding:8px 0;border-bottom:1px solid #eef2f6}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:720px}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:10px 8px;vertical-align:top}.table th{background:#f7f9fc;color:#334e68;font-size:13px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.periodo{border-left:4px solid var(--gold)}.subcard{border:1px solid var(--line);border-radius:10px;padding:15px;margin-top:12px;background:#fbfcfe}.qr{width:190px;max-width:100%;border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff}.flex{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.grow{flex:1;min-width:260px}.actions{display:flex;gap:8px;flex-wrap:wrap}.form{max-width:760px;margin-left:auto;margin-right:auto}.diag code{background:#eef2f6;padding:2px 5px;border-radius:4px}.empty{padding:18px;border:1px dashed #b7c5d4;border-radius:10px;color:var(--muted);text-align:center}@media(max-width:760px){.row,.row.three{grid-template-columns:1fr}.top{align-items:flex-start;flex-direction:column}.kv{grid-template-columns:1fr;gap:3px}.wrap{width:94%;margin-top:18px}.card{padding:16px}}
.pending-list{list-style:none;padding:0;margin:12px 0 0}.pending-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.pending-list li:last-child{border-bottom:0}.pending-card{border-left:4px solid var(--gold)}
details summary{list-style:none;cursor:pointer}details summary::-webkit-details-marker{display:none}.inline-reset{display:grid;grid-template-columns:1fr 1fr auto;gap:7px;margin-top:8px;min-width:420px}.inline-reset input{min-width:130px}@media(max-width:760px){.inline-reset{grid-template-columns:1fr;min-width:240px}}
