/* ============================================================
   Tema Clínica El Conchi — Agenda Quirúrgica
   Repintado sobre Bootstrap 4 SIN cambiar markup ni flujo.
   Se carga al final para ganar en cascada.
   ============================================================ */
:root{
  --cec-primary:#00429C;
  --cec-primary-dark:#003374;
  --cec-primary-700:#0a52b8;
  --cec-primary-050:#eaf1fb;
  --cec-ink:#1f2a37;
  --cec-muted:#6b7280;
  --cec-line:#e6eaf0;
  --cec-surface:#ffffff;
  --cec-bg:#f4f6fb;
  --cec-ok:#1a9d5a;
  --cec-warn:#d98a00;
  --cec-danger:#d64545;
  --cec-radius:12px;
  --cec-shadow:0 1px 2px rgba(16,32,64,.06), 0 6px 20px rgba(16,32,64,.06);
  --cec-font:'Inter',system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

/* ---------- Base ---------- */
body{
  font-family:var(--cec-font)!important;
  background:var(--cec-bg)!important;
  color:var(--cec-ink);
  -webkit-font-smoothing:antialiased;
}
a{color:var(--cec-primary);}
a:hover{color:var(--cec-primary-dark);}
h1,h2,h3,h4,h5{font-weight:650;letter-spacing:-.01em;color:var(--cec-ink);}
.text-muted{color:var(--cec-muted)!important;}

/* ---------- Topbar ---------- */
#topbar.navbar{
  background:linear-gradient(180deg,var(--cec-primary) 0%,var(--cec-primary-dark) 100%)!important;
  box-shadow:0 2px 12px rgba(0,32,90,.25);
  padding:.4rem 0;
  border:0;
}
#topbar .navbar-brand{
  color:#fff!important;font-weight:700;letter-spacing:-.01em;
  display:flex;align-items:center;gap:.6rem;
}
/* Logo institucional es blanco sobre transparente → luce directo sobre el azul */
#topbar .navbar-brand img{height:40px;width:auto;}
#topbar .nav-link,#topbar .navbar-nav .nav-link{color:rgba(255,255,255,.92)!important;font-weight:500;}
#topbar .nav-link:hover{color:#fff!important;}
#topbar .btn-secondary{background:rgba(255,255,255,.14);border:0;}
#topbar .btn-secondary:hover{background:rgba(255,255,255,.24);}
#topbar .navbar-toggler-icon{filter:brightness(3);}

/* ---------- Sidebar ---------- */
#sidebar{
  background:var(--cec-primary-dark)!important;
  box-shadow:inset -1px 0 0 rgba(255,255,255,.06);
}
#sidebar .nav-link,#sidebar a{color:rgba(255,255,255,.82)!important;border-radius:8px;margin:2px 8px;padding:.55rem .8rem;font-weight:500;transition:all .15s;}
#sidebar .nav-link:hover,#sidebar a:hover{background:rgba(255,255,255,.10)!important;color:#fff!important;}
#sidebar .nav-item.active>.nav-link,#sidebar .active>a{background:var(--cec-primary-700)!important;color:#fff!important;}
#sidebar .menu-profile{padding:1.2rem .6rem .6rem;border-bottom:1px solid rgba(255,255,255,.10);margin-bottom:.5rem;}
#sidebar .user-name{color:#fff;font-size:1rem;margin-top:.5rem;}
#sidebar .user-name .text-muted{color:rgba(255,255,255,.6)!important;display:block;font-size:.78rem;font-weight:400;}
#sidebar .avatar-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:1.6rem;}
#sidebar .avatar img{border-radius:50%;border:3px solid rgba(255,255,255,.2);object-fit:cover;}

/* ---------- Botones ---------- */
.btn{border-radius:9px;font-weight:600;letter-spacing:.005em;padding:.45rem 1rem;transition:all .15s;}
.btn-sm{border-radius:7px;padding:.28rem .7rem;}
.btn-primary{background:var(--cec-primary)!important;border-color:var(--cec-primary)!important;box-shadow:0 1px 2px rgba(0,52,116,.25);}
.btn-primary:hover,.btn-primary:focus{background:var(--cec-primary-dark)!important;border-color:var(--cec-primary-dark)!important;}
.btn-outline-primary{color:var(--cec-primary)!important;border-color:var(--cec-primary)!important;}
.btn-outline-primary:hover{background:var(--cec-primary)!important;color:#fff!important;}
.btn-secondary{background:#eef1f6!important;border-color:#e2e7ef!important;color:#38414f!important;}
.btn-secondary:hover{background:#e2e7ef!important;color:#1f2a37!important;}
.btn-danger{background:var(--cec-danger)!important;border-color:var(--cec-danger)!important;}
.btn-success{background:var(--cec-ok)!important;border-color:var(--cec-ok)!important;}

/* ---------- Cards / superficies ---------- */
.card{border:1px solid var(--cec-line)!important;border-radius:var(--cec-radius)!important;box-shadow:var(--cec-shadow)!important;background:var(--cec-surface);}
.card .card-header,.card-header{background:#fff!important;border-bottom:1px solid var(--cec-line)!important;font-weight:650;color:var(--cec-ink);border-radius:var(--cec-radius) var(--cec-radius) 0 0!important;}
.bg-light{background:var(--cec-surface)!important;border-radius:var(--cec-radius);}
.record-title,.page-title{font-weight:700;color:var(--cec-ink);letter-spacing:-.01em;}

/* Banda de encabezado de página */
#page-content .bg-light.p-3{
  background:linear-gradient(180deg,#fff,#fbfcfe)!important;
  border:1px solid var(--cec-line);
  box-shadow:var(--cec-shadow);
}

/* ---------- Tablas ---------- */
.table{background:#fff;border-radius:var(--cec-radius);overflow:hidden;color:var(--cec-ink);}
.table thead th,.table th.title{
  background:var(--cec-primary-050)!important;color:var(--cec-primary-dark)!important;
  font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;
  border-bottom:2px solid #dbe5f5!important;border-top:0!important;padding:.7rem .75rem;
}
.table td,.table th{border-color:var(--cec-line)!important;vertical-align:middle;}
.table-hover tbody tr:hover{background:var(--cec-primary-050)!important;}
.table-striped tbody tr:nth-of-type(odd){background:#fafbfe;}
.dataTables_wrapper .dataTables_paginate .paginate_button.current{background:var(--cec-primary)!important;border-color:var(--cec-primary)!important;color:#fff!important;border-radius:7px;}

/* ---------- Formularios ---------- */
.form-control{border-radius:9px;border:1px solid #d6dce6;padding:.5rem .8rem;transition:border-color .15s,box-shadow .15s;}
.form-control:focus{border-color:var(--cec-primary)!important;box-shadow:0 0 0 .18rem rgba(0,66,156,.15)!important;}
label{font-weight:600;color:#3a4453;font-size:.9rem;}
.custom-select{border-radius:9px;}

/* ---------- Badges / estatus ---------- */
.badge{border-radius:20px;padding:.35em .75em;font-weight:600;letter-spacing:.01em;}
.badge-primary{background:var(--cec-primary)!important;}
.badge-success{background:var(--cec-ok)!important;}
.badge-warning{background:var(--cec-warn)!important;color:#fff!important;}
.badge-danger{background:var(--cec-danger)!important;}
.badge-secondary{background:#eef1f6!important;color:#4a5568!important;}

/* ---------- Modales ---------- */
.modal-content{border:0;border-radius:14px;box-shadow:0 20px 60px rgba(16,32,64,.25);overflow:hidden;}
.modal-header{background:var(--cec-primary);color:#fff;border:0;}
.modal-header .close{color:#fff;opacity:.9;text-shadow:none;}
.modal-title{font-weight:650;}

/* ---------- Dropdown ---------- */
.dropdown-menu{border:1px solid var(--cec-line);border-radius:11px;box-shadow:var(--cec-shadow);padding:.35rem;}
.dropdown-item{border-radius:7px;padding:.5rem .8rem;font-weight:500;}
.dropdown-item:hover{background:var(--cec-primary-050);color:var(--cec-primary-dark);}
.dropdown-item .fa{width:18px;color:var(--cec-primary);}

/* ---------- Layout: content ---------- */
#main-content{background:var(--cec-bg);}
#page-content{padding-top:.5rem;}

/* ---------- Login / landing (body#index) ---------- */
body#index{
  background:radial-gradient(1200px 600px at 15% -10%,rgba(0,66,156,.10),transparent 60%),
             radial-gradient(1000px 500px at 100% 0,rgba(10,124,187,.08),transparent 55%),
             var(--cec-bg)!important;
}
body#index #topbar{background:linear-gradient(180deg,var(--cec-primary),var(--cec-primary-dark))!important;}
body#index #page-content{max-width:1040px;margin:2.5rem auto;}
body#index .page-form,body#index .bg-light.page-content{
  background:#fff!important;border:1px solid var(--cec-line);border-radius:16px;
  box-shadow:0 10px 40px rgba(0,32,90,.10);padding:2rem!important;
}
body#index .form-control{padding:.65rem .9rem;}
body#index .btn-primary{width:100%;padding:.65rem;font-size:1.02rem;}
body#index .fa-key{color:var(--cec-primary);}

/* ---------- Flash / alertas ---------- */
.alert{border:0;border-radius:11px;box-shadow:var(--cec-shadow);}
.alert-success{background:#e7f6ee;color:#0f6b3c;}
.alert-danger{background:#fdeaea;color:#a52626;}

/* ---------- Barra de progreso ajax ---------- */
.ajax-progress-bar .progress-bar{background:var(--cec-primary)!important;}
.ajax-loader,.lds-dual-ring:after{border-top-color:var(--cec-primary)!important;}
