:root{--granate:#8B1A1A;--granate-oscuro:#6B1414;--borde:#E0E0E0;--txt:#333}
*{box-sizing:border-box;margin:0;padding:0}
body.admin{font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:#f4f4f6;color:var(--txt);font-size:15px}
a{color:var(--granate)}
.btn{display:inline-block;background:var(--granate);color:#fff;padding:.5rem 1.1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;text-decoration:none}
.btn:hover{background:var(--granate-oscuro)}
.btn-sm{padding:.3rem .8rem;font-size:.8rem}
.muted{color:#888;font-size:.9rem}
hr{border:none;border-top:1px solid var(--borde);margin:1.5rem 0}
h1{margin-bottom:1rem;color:var(--granate)}
h2{margin:1.2rem 0 .8rem;font-size:1.2rem}

/* Login */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh}
.login-card{background:#fff;padding:2.5rem;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.1);width:360px;max-width:92vw}
.login-card h1{margin-bottom:.2rem}
.login-card label{display:block;margin:1rem 0 .3rem;font-weight:bold}
.login-card input{width:100%;padding:.6rem;border:1px solid var(--borde);border-radius:4px}
.login-card .btn{margin-top:1.2rem;width:100%}

/* Top bar */
.admin-top{background:var(--granate);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.2rem}
.admin-brand{color:#fff;font-weight:bold;text-decoration:none;letter-spacing:1px}
.admin-top-right{display:flex;align-items:center;gap:1rem}
.admin-top-right a{color:#fff;text-decoration:none}

/* Layout */
.admin-wrap{display:flex;min-height:calc(100vh - 56px)}
.admin-side{width:240px;background:#fff;border-right:1px solid var(--borde);padding:1rem 0;flex-shrink:0}
.admin-side nav{display:flex;flex-direction:column}
.admin-side a{padding:.5rem 1.2rem;color:var(--txt);text-decoration:none;font-size:.9rem}
.admin-side a:hover{background:#f7f2f2;color:var(--granate)}
.side-sec{padding:.8rem 1.2rem .2rem;font-size:.72rem;text-transform:uppercase;letter-spacing:1px;color:#aaa;font-weight:bold}
.admin-main{flex:1;padding:1.5rem 2rem;overflow-x:auto}

.admin-flash{background:#e6f4e6;color:#1e6b1e;border:1px solid #bcdcbc;padding:.8rem 1rem;border-radius:4px;margin-bottom:1rem}
.admin-flash.err{background:#f8e6e6;color:var(--granate);border-color:#e0bcbc}

.admin-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}
.stat-card{background:#fff;border:1px solid var(--borde);border-radius:6px;padding:1.2rem;text-align:center;display:flex;flex-direction:column}
.stat-num{font-size:2rem;font-weight:bold;color:var(--granate)}
.quick-links{display:flex;flex-wrap:wrap;gap:.8rem}

/* Table */
.admin-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--borde)}
.admin-table th,.admin-table td{padding:.6rem .8rem;border-bottom:1px solid var(--borde);text-align:left;font-size:.9rem;vertical-align:top}
.admin-table th{background:#faf7f7;color:var(--granate)}
.admin-table tr.unread{background:#fff8f8}
.actions a{margin-right:.6rem;font-size:.85rem}
.actions .danger,a.danger{color:#c00}

/* Form */
.admin-form{background:#fff;border:1px solid var(--borde);border-radius:6px;padding:1.5rem;max-width:820px}
.admin-form .field{margin-bottom:1rem}
.admin-form label{display:block;font-weight:bold;margin-bottom:.3rem}
.admin-form input[type=text],.admin-form input[type=email],.admin-form input[type=password],.admin-form input[type=number],.admin-form input[type=date],.admin-form input[type=time],.admin-form input[type=datetime-local],.admin-form textarea,.admin-form select{width:100%;padding:.55rem;border:1px solid var(--borde);border-radius:4px;font-family:inherit;font-size:.95rem}
.current-file{margin-bottom:.4rem}
.tabs{display:flex;gap:.3rem;margin-bottom:1rem}
.tabs a{padding:.5rem 1rem;background:#fff;border:1px solid var(--borde);border-radius:4px;text-decoration:none;color:var(--txt)}
.tabs a.active{background:var(--granate);color:#fff}

@media(max-width:800px){
  .admin-wrap{flex-direction:column}
  .admin-side{width:100%}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
}

/* ---- Verificación en dos pasos (2FA) ---- */
.twofa-box{max-width:640px}
.twofa-badge{display:inline-block;padding:.35rem .8rem;border-radius:999px;font-weight:700;font-size:.9rem}
.twofa-badge.on{background:#e6f4ea;color:#1e6b34;border:1px solid #b7dfc2}
.twofa-badge.off{background:#f4f1ea;color:#6b6b6b;border:1px solid #e0dbcf}
.qr-box{margin:1rem 0;display:flex;justify-content:center}
.qr-box svg{width:220px;height:220px;border:8px solid #fff;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.08);background:#fff}
.totp-key code{display:inline-block;padding:.4rem .7rem;background:#f4f1ea;border:1px solid #e0dbcf;border-radius:6px;letter-spacing:2px;word-break:break-all;font-size:1rem}
.recovery-codes{list-style:none;padding:0;margin:1rem 0;display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.recovery-codes li code{display:block;padding:.5rem .75rem;background:#f4f1ea;border:1px solid #e0dbcf;border-radius:6px;text-align:center;font-size:1rem;letter-spacing:1px}
.btn-danger{background:#a02020 !important;border-color:#a02020 !important;color:#fff !important}
.small{font-size:.85rem}
