:root{
  --bs-primary:#1d6ff2;--bs-primary-rgb:29,111,242;
  --bs-body-color:#42557a;
  --bs-link-color:#1d6ff2;--bs-link-color-rgb:29,111,242;
  --bs-link-hover-color:#0b57d0;--bs-link-hover-color-rgb:11,87,208;
  --bs-border-radius:.75rem;
  --app-navy:#122d5e;--app-blue:#1d6ff2;--app-blue-dark:#0b57d0;
  --app-blue-soft:#e3edfd;--app-border:#dce7f8;
  --app-shadow:0 1px 2px rgba(18,45,94,.05),0 8px 24px -12px rgba(18,45,94,.12);
}
body{min-height:100vh;font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;background:linear-gradient(180deg,#e8f0fc 0%,#eef4fc 320px);background-attachment:fixed}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{color:var(--app-navy);font-weight:700;letter-spacing:-.02em}
.display-6{color:var(--app-navy)}

/* ── Navbar ─────────────────────────────────────────────── */
.app-navbar{background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--app-border);padding:.65rem 0}
.app-navbar .navbar-brand{display:flex;align-items:center;gap:.6rem;color:var(--app-navy);font-weight:800;letter-spacing:-.03em;font-size:1.15rem}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:.65rem;background:linear-gradient(135deg,#1d6ff2,#19c3e6);color:#fff;box-shadow:0 4px 10px -3px rgba(29,111,242,.55)}
.brand-logo{width:36px;height:36px;object-fit:contain;border-radius:.65rem;background:#fff;border:1px solid var(--app-border)}
.branding-preview{width:96px;height:64px;object-fit:contain;border:1px solid var(--app-border);border-radius:.75rem;background:#fff;padding:.35rem}
.app-navbar .nav-link{color:#53668c;font-weight:500;font-size:.925rem;border-radius:.55rem;padding:.45rem .85rem;margin:0 .1rem}
.app-navbar .nav-link:hover{color:var(--app-blue-dark);background:var(--app-blue-soft)}
.app-navbar .nav-link.active{color:var(--app-blue-dark);background:var(--app-blue-soft);font-weight:600}
.user-chip{display:flex;align-items:center;gap:.55rem;min-width:0}
.user-avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#1d6ff2,#6f8dff);color:#fff;font-weight:700;font-size:.85rem}
.user-chip .user-name{color:var(--app-navy);font-weight:600;font-size:.875rem;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.user-chip .user-role{color:#7b8db1;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}

/* ── Cards ──────────────────────────────────────────────── */
.card{--bs-card-bg:#fff;background-color:#fff;border:1px solid var(--app-border);border-radius:1rem;box-shadow:var(--app-shadow)}
.card-header{background:#fff;border-bottom:1px solid var(--app-border);border-radius:1rem 1rem 0 0!important;padding:1rem 1.25rem}
.icon-chip{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:.8rem;background:var(--app-blue-soft);color:var(--app-blue);flex-shrink:0}
.icon-chip svg{width:22px;height:22px}
.stat-card .stat-value{font-size:1.85rem;font-weight:800;color:var(--app-navy);letter-spacing:-.03em;line-height:1.1}
.stat-card .stat-label{color:#7b8db1;font-size:.85rem;font-weight:500}
.quick-card{text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;display:block}
.quick-card:hover{transform:translateY(-2px);border-color:#b9d2f9;box-shadow:0 4px 8px rgba(18,45,94,.06),0 16px 32px -12px rgba(29,111,242,.25)}
.quick-card h3{font-size:.975rem;margin-bottom:.15rem}
.quick-card p{color:#7b8db1;font-size:.83rem;margin:0}

/* ── Buttons ────────────────────────────────────────────── */
.btn{border-radius:.65rem;font-weight:600}
.btn-primary{--bs-btn-bg:#1d6ff2;--bs-btn-border-color:#1d6ff2;--bs-btn-hover-bg:#0b57d0;--bs-btn-hover-border-color:#0b57d0;--bs-btn-active-bg:#0a4cb8;--bs-btn-active-border-color:#0a4cb8;--bs-btn-disabled-bg:#8db4f4;--bs-btn-disabled-border-color:#8db4f4;box-shadow:0 4px 10px -3px rgba(29,111,242,.45)}
.btn-outline-primary{--bs-btn-color:#1d6ff2;--bs-btn-border-color:#bad2f8;--bs-btn-hover-bg:#e3edfd;--bs-btn-hover-color:#0b57d0;--bs-btn-hover-border-color:#8db4f4;--bs-btn-active-bg:#1d6ff2;--bs-btn-active-border-color:#1d6ff2}
.btn-outline-secondary{--bs-btn-color:#53668c;--bs-btn-border-color:#cdd9ee;--bs-btn-hover-bg:#eef4fc;--bs-btn-hover-color:#122d5e;--bs-btn-hover-border-color:#b3c6e6;--bs-btn-active-bg:#dde8f8;--bs-btn-active-color:#122d5e;--bs-btn-active-border-color:#b3c6e6}

/* ── Badges, alerts, tables, forms ──────────────────────── */
.text-bg-primary{background-color:#1d6ff2!important}
.badge{font-weight:600}
.badge-soft{background:var(--app-blue-soft);color:var(--app-blue-dark)}
.alert-success{--bs-alert-bg:#e7f8ef;--bs-alert-border-color:#bfe9d2;--bs-alert-color:#116b3f;border-radius:.85rem}
.alert-danger{--bs-alert-bg:#fdecec;--bs-alert-border-color:#f5c6c6;--bs-alert-color:#a02020;border-radius:.85rem}
.table{--bs-table-color:#42557a}
.table>:not(caption)>*>*{padding:.85rem 1rem;border-bottom-color:#e9f0fb}
.table thead th{color:#7b8db1;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--app-border)}
.form-control,.form-select{border-color:#cdd9ee;border-radius:.65rem;color:var(--app-navy)}
.form-control:focus,.form-select:focus{border-color:#8db4f4;box-shadow:0 0 0 .25rem rgba(29,111,242,.15)}
.form-label{font-weight:600;color:var(--app-navy);font-size:.875rem}
/* Acciones de fila: separa botones aunque el markup los deje pegados */
.table td form{display:inline-block;margin:0}
.table td>.btn+.btn,.table td>.btn+form,.table td>form+.btn,.table td>form+form{margin-left:.5rem}

/* ── Page headers & icon buttons ────────────────────────── */
.page-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;margin-bottom:1.5rem}
.page-header>div:first-child{min-width:0}
.page-header h1{overflow-wrap:anywhere}
.page-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0;margin-left:auto}
.btn-icon{display:inline-flex;align-items:center;justify-content:center;gap:.45rem}
.btn-icon svg{width:16px;height:16px;flex-shrink:0}

/* ── Mobile adjustments ─────────────────────────────────── */
@media (max-width:991.98px){
  .app-navbar .navbar-collapse{padding-top:.75rem}
  .app-navbar .nav-link{margin:.15rem 0}
  .nav-user-area{width:100%;margin-top:.85rem;padding-top:.85rem;border-top:1px solid var(--app-border)}
}
@media (max-width:575.98px){
  .btn-icon .btn-label{display:none}
  .btn-icon{padding:.45rem .65rem}
  h1.h2,.h2{font-size:1.35rem}
  h1.h3,.h3{font-size:1.25rem}
  .card-body{padding:1rem}
  .card-header{padding:.85rem 1rem}
  main.container{padding-top:1.15rem!important;padding-bottom:1.5rem!important}
  .page-header{margin-bottom:1.15rem}
  .stat-card .stat-value{font-size:1.5rem}
  .table>:not(caption)>*>*{padding:.7rem .75rem}
}

/* ── QR preview (existing feature) ──────────────────────── */
.qr-preview{max-width:100%;padding:.75rem;background:#fff;border-radius:.75rem}
.qr-preview canvas,.qr-preview img{max-width:100%;height:auto!important}
