/* =====================================================================
   NOVATI — Panel administrativo
   ===================================================================== */

:root{
    --navy:      #0F172A;
    --blue:      #2563EB;
    --cyan:      #06B6D4;
    --slate-50:  #F8FAFC;
    --slate-100: #F1F5F9;
    --slate-200: #E2E8F0;
    --slate-500: #64748B;
}

*{ box-sizing:border-box; }

body{
    font-family:'Inter', sans-serif;
    background:var(--slate-50);
    color:#1E293B;
    margin:0;
}
h1,h2,h3,h4,h5,h6{ font-family:'Poppins', sans-serif; color:var(--navy); }

/* ---------------- LOGIN ---------------- */
.admin-login-body{
    min-height:100vh;
    display:flex; align-items:center; justify-content:center;
    background:radial-gradient(circle at top left, #1E293B, var(--navy) 60%);
}
.admin-login-card{
    background:#fff;
    padding:2.6rem;
    border-radius:16px;
    width:100%; max-width:380px;
    box-shadow:0 30px 60px -20px rgba(0,0,0,.4);
}
.admin-login-brand{
    font-family:'Poppins', sans-serif; font-weight:800; font-size:1.6rem;
    color:var(--navy); text-align:center;
}
.admin-login-brand span{ color:var(--cyan); }
.admin-login-subtitle{
    text-align:center; color:var(--slate-500); font-size:.88rem; margin-bottom:1.6rem;
}
.admin-login-back{
    display:block; text-align:center; margin-top:1.3rem;
    font-size:.85rem; color:var(--slate-500); text-decoration:none;
}
.admin-login-back:hover{ color:var(--blue); }

/* ---------------- LAYOUT ---------------- */
.admin-layout{
    display:flex; min-height:100vh;
}
.admin-sidebar{
    width:250px; flex-shrink:0;
    background:var(--navy);
    color:#fff;
    display:flex; flex-direction:column;
    padding:1.6rem 1.2rem;
    position:sticky; top:0; height:100vh;
}
.admin-sidebar-brand{
    font-family:'Poppins', sans-serif; font-weight:800; font-size:1.3rem;
    margin-bottom:2rem;
}
.admin-sidebar-brand span{ color:var(--cyan); }
.admin-sidebar-brand small{
    display:block; font-family:'Inter', sans-serif; font-weight:400; font-size:.72rem;
    color:rgba(255,255,255,.5); margin-top:.2rem;
}
.admin-sidebar-nav{ display:flex; flex-direction:column; gap:.3rem; flex:1; }
.admin-sidebar-nav a{
    color:rgba(255,255,255,.75);
    text-decoration:none;
    padding:.7rem .9rem;
    border-radius:8px;
    font-size:.9rem;
    display:flex; align-items:center; gap:.6rem;
    transition:background .18s ease, color .18s ease;
}
.admin-sidebar-nav a i{ width:18px; }
.admin-sidebar-nav a:hover{ background:rgba(255,255,255,.06); color:#fff; }
.admin-sidebar-nav a.active{ background:var(--blue); color:#fff; }

.admin-sidebar-footer{ border-top:1px solid rgba(255,255,255,.1); padding-top:1rem; }
.admin-user-chip{
    display:flex; align-items:center; gap:.5rem;
    font-size:.85rem; color:rgba(255,255,255,.85); margin-bottom:.8rem;
}
.admin-logout-link{
    color:rgba(255,255,255,.6); font-size:.85rem; text-decoration:none;
    display:flex; align-items:center; gap:.5rem;
}
.admin-logout-link:hover{ color:#fff; }

.admin-content{
    flex:1; padding:2.2rem 2.4rem; max-width:100%;
}

.admin-topbar{
    display:flex; align-items:flex-start; justify-content:space-between;
    flex-wrap:wrap; gap:1rem;
    margin-bottom:1.8rem;
}
.admin-topbar h1{ font-size:1.5rem; margin:0 0 .3rem; }

.back-link{
    font-size:.85rem; color:var(--slate-500); text-decoration:none;
}
.back-link:hover{ color:var(--blue); }

/* ---------------- CARDS ---------------- */
.admin-card{
    background:#fff;
    border:1px solid var(--slate-200);
    border-radius:14px;
    padding:1.6rem;
}
.card-section-title{
    font-size:1rem; margin-bottom:1rem; padding-bottom:.6rem;
    border-bottom:1px solid var(--slate-100);
}

.stat-card{
    background:#fff;
    border:1px solid var(--slate-200);
    border-radius:14px;
    padding:1.3rem;
    display:flex; flex-direction:column;
}
.stat-card-value{ font-family:'Poppins', sans-serif; font-size:1.9rem; font-weight:800; color:var(--blue); }
.stat-card-label{ font-size:.82rem; color:var(--slate-500); margin-top:.2rem; }

/* ---------------- TABLE ---------------- */
.admin-table thead th{
    font-size:.75rem; text-transform:uppercase; letter-spacing:.04em;
    color:var(--slate-500); border-bottom:2px solid var(--slate-100);
    padding-bottom:.8rem;
}
.admin-table td{ border-color:var(--slate-100); font-size:.9rem; padding:.9rem .5rem; }

.status-badge{
    display:inline-block; padding:.3rem .7rem; border-radius:20px;
    font-size:.74rem; font-weight:700; letter-spacing:.02em;
}
.badge-pending{   background:#FEF3C7; color:#92400E; }
.badge-confirmed{ background:#DBEAFE; color:#1E40AF; }
.badge-done{      background:#D1FAE5; color:#065F46; }
.badge-cancelled{ background:#FEE2E2; color:#991B1B; }

/* ---------------- INFO GRID (detalle de visita) ---------------- */
.info-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
    gap:1rem 1.5rem;
}
.info-grid div{ display:flex; flex-direction:column; gap:.2rem; }
.info-grid span{ font-size:.75rem; color:var(--slate-500); text-transform:uppercase; letter-spacing:.03em; }
.info-grid strong{ font-size:.92rem; color:var(--navy); font-weight:600; }

@media (max-width:900px){
    .admin-layout{ flex-direction:column; }
    .admin-sidebar{ width:100%; height:auto; position:relative; flex-direction:row; align-items:center; flex-wrap:wrap; }
    .admin-sidebar-nav{ flex-direction:row; }
    .admin-sidebar-footer{ border:none; margin-left:auto; }
    .admin-content{ padding:1.4rem; }
}
