* { box-sizing: border-box; }
body { margin:0; font-family: -apple-system, Segoe UI, Roboto, sans-serif; background:#f4f6f9; color:#1c2733; }
.layout { display:flex; min-height:100vh; }
.sidebar { width:220px; background:#0B1F3A; color:#fff; display:flex; flex-direction:column; padding:20px; }
.sidebar .brand { font-weight:700; font-size:20px; margin-bottom:24px; letter-spacing:1px; }
.sidebar nav { display:flex; flex-direction:column; gap:6px; flex:1; }
.sidebar nav a { color:#cfd8e6; text-decoration:none; padding:8px 10px; border-radius:6px; }
.sidebar nav a:hover { background:#152a4d; color:#fff; }
.logout-form { display:flex; flex-direction:column; gap:8px; }
.user-chip { font-size:12px; color:#9fb0c9; }
.sidebar button { background:#1c3868; color:#fff; border:none; padding:8px; border-radius:6px; cursor:pointer; }
.content { flex:1; padding:32px 40px; }
.content h1 { margin-top:0; }
table { width:100%; border-collapse: collapse; background:#fff; border-radius:8px; overflow:hidden; box-shadow:0 1px 3px rgba(0,0,0,.08); }
th, td { text-align:left; padding:10px 14px; border-bottom:1px solid #eef1f5; font-size:14px; }
th { background:#eef2f7; }
.badge { padding:2px 8px; border-radius:20px; font-size:12px; font-weight:600; }
.badge.valido { background:#e2f6e8; color:#1c7c3c; }
.badge.revocado { background:#fbe2e2; color:#a11f1f; }
.badge.expirado { background:#fff3d9; color:#8a6100; }
.card { background:#fff; padding:24px; border-radius:10px; box-shadow:0 1px 3px rgba(0,0,0,.08); max-width:560px; }
form label { display:block; margin:12px 0 4px; font-size:13px; font-weight:600; color:#43536b; }
input, select, textarea { width:100%; padding:9px 10px; border:1px solid #d7dee7; border-radius:6px; font-size:14px; }
button.primary, .btn { background:#0B1F3A; color:#fff; border:none; padding:10px 18px; border-radius:6px; cursor:pointer; font-size:14px; margin-top:16px; display:inline-block; text-decoration:none; }
.actions a, .actions button { margin-right:8px; }
.error { background:#fbe2e2; color:#a11f1f; padding:10px 14px; border-radius:6px; margin-bottom:12px; }
.success { background:#e2f6e8; color:#1c7c3c; padding:10px 14px; border-radius:6px; margin-bottom:12px; }
.qr-box img { width:180px; height:180px; border:1px solid #d7dee7; border-radius:8px; }
.stat-grid { display:flex; gap:16px; margin-bottom:24px; flex-wrap:wrap; }
.stat-card { background:#fff; padding:18px 22px; border-radius:10px; box-shadow:0 1px 3px rgba(0,0,0,.08); flex:1; min-width:140px; }
.stat-card .num { font-size:28px; font-weight:700; }
.stat-card .label { font-size:13px; color:#6a7787; }
.widget-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(340px, 1fr)); gap:20px; }
.widget-card { background:#fff; padding:20px 22px; border-radius:10px; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.widget-card h3 { margin:0 0 14px; font-size:15px; color:#1c2733; }
.bar-chart { display:flex; align-items:flex-end; gap:6px; height:120px; }
.bar-chart .bar-col { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; }
.bar-chart .bar { width:100%; background:#0B1F3A; border-radius:3px 3px 0 0; min-height:2px; }
.bar-chart .bar-label { font-size:9px; color:#8a94a3; margin-top:4px; white-space:nowrap; transform:rotate(-40deg); transform-origin:top right; }
.widget-list { list-style:none; margin:0; padding:0; font-size:13px; }
.widget-list li { padding:8px 0; border-bottom:1px solid #eef1f5; display:flex; justify-content:space-between; gap:10px; }
.widget-list li:last-child { border-bottom:none; }
.widget-list .muted { color:#8a94a3; font-size:11px; }
.hbar-row { display:flex; align-items:center; gap:10px; margin-bottom:8px; font-size:12px; }
.hbar-row .hbar-label { width:120px; flex-shrink:0; color:#43536b; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hbar-row .hbar-track { flex:1; background:#eef1f5; border-radius:4px; height:14px; overflow:hidden; }
.hbar-row .hbar-fill { height:100%; background:#0B1F3A; border-radius:4px; }
.hbar-row .hbar-num { width:32px; text-align:right; color:#43536b; }
.login-wrap { display:flex; align-items:center; justify-content:center; min-height:100vh; background:#0B1F3A; }
.verify-wrap { max-width:640px; margin:60px auto; padding:0 20px; font-family:-apple-system,Segoe UI,Roboto,sans-serif; }
.verify-card { border-radius:12px; padding:28px; }
.verify-card.valido { background:#e2f6e8; border:2px solid #1c7c3c; }
.verify-card.revocado { background:#fbe2e2; border:2px solid #a11f1f; }
.verify-card.expirado { background:#fff3d9; border:2px solid #8a6100; }
.verify-card.no-encontrado { background:#eef1f5; border:2px solid #7a8ba0; }
