:root{
  --bg:#f4f6f9; --surface:#fff; --line:#e3e8ef; --txt:#1f2937; --muted:#6b7280;
  --brand:#1e3a5f; --accent:#2563eb; --accent-soft:#eaf1fe;
  --bs-body-bg:var(--bg); --bs-body-color:var(--txt);
}
*{box-sizing:border-box}
body{font-family:'DM Sans',system-ui,sans-serif;background:var(--bg);color:var(--txt);padding:24px;min-height:100vh}
h1,h2,h3,h4,h5{font-family:'Sora',sans-serif;letter-spacing:-.01em}
.container-fluid{max-width:1400px;margin:0 auto;padding:0;background:none;box-shadow:none}

/* HEADER */
.hero{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  padding:20px 26px;margin-bottom:20px;background:var(--brand);color:#fff;border-radius:12px}
.hero-title{display:flex;align-items:center;gap:16px}
.hero-icon{width:48px;height:48px;border-radius:10px;display:grid;place-items:center;font-size:1.4rem;background:rgba(255,255,255,.14);color:#fff}
.hero h1{font-size:clamp(1.15rem,2.2vw,1.5rem);font-weight:700;margin:0;color:#fff}
.hero p{margin:3px 0 0;color:#c5d3e6;font-size:.85rem}
.btn-admin{background:#fff;color:var(--brand);font-weight:600;border:0;border-radius:8px;padding:.55rem 1rem}
.btn-admin:hover{background:var(--accent-soft);color:var(--brand)}

/* TABS */
.nav-tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:20px!important}
.nav-tabs .nav-link{border:0;border-bottom:3px solid transparent;border-radius:0;color:var(--muted)!important;padding:.7rem 1.1rem;font-weight:600!important;background:none}
.nav-tabs .nav-link:hover{color:var(--txt)!important}
.nav-tabs .nav-link.active{color:var(--accent)!important;border-bottom-color:var(--accent);background:none!important}

/* CARDS */
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.card-header,.card-header.bg-primary,.card-header.bg-dark,.card-header.bg-secondary{
  background:#f9fafb!important;color:var(--txt)!important;border-bottom:1px solid var(--line);
  padding:14px 22px;font-family:'Sora',sans-serif;font-weight:600;font-size:.95rem;display:flex;align-items:center;gap:10px}
.card-header i{color:var(--accent)}
.card-body{padding:22px}

/* FORM SECTIONS */
.form-section{border:1px solid var(--line);border-radius:10px;padding:16px 16px 6px;margin-bottom:16px;background:#fcfcfd}
.form-section-title{display:flex;align-items:center;gap:10px;font-family:'Sora',sans-serif;font-weight:600;font-size:.9rem;margin-bottom:12px;color:var(--brand)}
.form-section-title i{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.form-section .row{--bs-gutter-y:.9rem}
.form-label{font-size:.78rem;font-weight:600;color:var(--muted);margin-bottom:.3rem}
.form-control,.form-select{background-color:#fff;border:1px solid #d0d7e2;color:var(--txt);border-radius:8px;padding:.5rem .75rem;font-size:.88rem}
.form-control:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 .2rem rgba(37,99,235,.15)}
.form-control[readonly]{background:#f1f4f8!important;color:var(--muted);font-weight:600}

/* BUTTONS */
.btn{border-radius:8px;font-weight:600;border:1px solid transparent;transition:background .15s,box-shadow .15s}
.btn-save,.btn-success,.btn-info,.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn-save:hover,.btn-success:hover,.btn-info:hover,.btn-primary:hover{background:#1d4ed8;color:#fff}
.btn-save{padding:.8rem;font-size:.95rem}
.btn-danger{background:#dc2626;color:#fff}
.btn-danger:hover{background:#b91c1c;color:#fff}
.btn-warning{background:#f59e0b;color:#fff}
.btn-secondary{background:#e5e9f0;color:var(--txt)}
.btn-outline-success,.btn-outline-danger,.btn-outline-primary,.btn-outline-secondary{background:#fff;color:var(--txt);border-color:#d0d7e2}
.btn-outline-success:hover,.btn-outline-danger:hover,.btn-outline-primary:hover,.btn-outline-secondary:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.btn-check:checked+.btn{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}
.btn-sm{padding:.3rem .65rem;font-size:.8rem}
.text-info{color:var(--accent)!important}

/* TABLE */
table{font-size:.85rem}
.table{--bs-table-bg:#fff;--bs-table-striped-bg:#f9fafb;--bs-table-hover-bg:var(--accent-soft);--bs-table-border-color:var(--line)}
.table-responsive{max-height:450px;overflow:auto}
.table thead th,.table-dark{position:sticky;top:0;z-index:2;background:var(--brand)!important;color:#fff!important;font-weight:600;border-color:var(--brand)!important}

/* MODAL */
.modal-content{border:0;border-radius:12px}
.modal-header.bg-warning{background:var(--brand)!important;color:#fff;border:0}
.modal-header .btn-close{filter:invert(1)}
.modal-footer{border-color:var(--line)}
.list-group-item{border-color:var(--line);font-size:.88rem}

:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:576px){body{padding:12px}.hero{padding:16px}.card-body{padding:16px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* LOGIN */
.login-overlay{position:fixed;inset:0;z-index:2000;background:var(--bg);display:grid;place-items:center;padding:16px}
.login-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:32px;width:100%;max-width:380px;box-shadow:0 10px 30px rgba(16,24,40,.12)}
.login-card h2{font-size:1.2rem;font-weight:700;color:var(--brand);margin:0 0 4px}
.login-card p{color:var(--muted);font-size:.85rem;margin-bottom:18px}
.login-card .hero-icon{background:var(--brand);margin-bottom:14px}
.usuario-actual{color:#c5d3e6;font-size:.8rem}
.btn-salir{background:rgba(255,255,255,.14);color:#fff;border:0;border-radius:8px;padding:.55rem .9rem;font-weight:600}
.btn-salir:hover{background:rgba(255,255,255,.25);color:#fff}
