:root {
  --brand-color: #1f3b68;
  --brand-color-dark: #172f56;
  --brand-accent: #8fcd6b;
  --surface-border: #dfe6ee;
  --muted: #6f7683;
  --soft-bg: #f5f7fa;
  --success-soft: #ecf7eb;
  --warning-soft: #fff4df;
  --danger-soft: #fdeaea;
}

body { background-color: var(--soft-bg); color:#1f2937; }
.navbar-brand { color:inherit !important; }
.app-navbar {
  background: var(--brand-color) !important;
  border-bottom: 0 !important;
  box-shadow: 0 1px 0 rgba(0,0,0,.06);
}
.app-logo { height:44px; width:auto; display:block; }
.app-brand-title { font-weight:700; font-size:1.9rem; line-height:1; letter-spacing:.02em; color:#fff; }
.app-brand-subtitle { font-size:.95rem; line-height:1.1; color: var(--brand-accent); margin-top:.15rem; }
.app-user-email { white-space:nowrap; color:rgba(255,255,255,.78) !important; }
.app-navbar .btn-outline-secondary {
  color:#fff;
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.04);
}
.app-navbar .btn-outline-secondary:hover,
.app-navbar .btn-outline-secondary:focus {
  color:#fff;
  border-color: rgba(255,255,255,.32);
  background: rgba(255,255,255,.08);
}

.btn-primary { background-color: var(--brand-color); border-color: var(--brand-color); }
.btn-primary:hover, .btn-primary:focus { background-color: var(--brand-color-dark); border-color: var(--brand-color-dark); }
.badge.text-bg-success { background-color: #ddefd8 !important; color:#4d7e36 !important; }
.card { border-color: var(--surface-border); border-radius:1rem; }
.table > :not(caption) > * > * { border-bottom-color:#e7ebf0; }

.grid-checks{ display:grid; grid-template-columns: repeat(auto-fill, minmax(58px, 1fr)); gap:.5rem; }
.check-tile{ border:1px solid #ddd; border-radius:.6rem; padding:.35rem .45rem; display:flex; align-items:center; gap:.4rem; background:#fff; }
.close-info-note { color:#8b5cf6; }
.responsable-box{background:#f8fafc;border:1px solid #dbe4f0;border-radius:1rem;padding:1rem 1rem .25rem;}
.responsable-box__title{font-weight:700;color:#24305f;margin-bottom:.2rem;}
.responsable-box__subtitle{font-size:.92rem;color:#60708f;margin-bottom:1rem;}
.firma-resumen-box{background:#f5f3ff;border:1px solid #ddd6fe;color:#7c3aed;border-radius:.85rem;padding:.7rem .9rem;font-size:.95rem;}

.board-hero-title { font-size: 2rem; font-weight: 700; line-height: 1.05; color:#22335b; margin:0; }
.board-hero-subtitle { color: var(--muted); margin-top:.2rem; }
.season-badge {
  display:inline-flex; align-items:center; padding:.4rem .8rem; border-radius:999px;
  background:#ddefd8; color:#4d7e36; font-weight:600; font-size:.92rem;
}

.dashboard-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:1.25rem; }
.dashboard-kpi {
  background:#f2f1ec; border:1px solid #ebe8e0; border-radius:.9rem; padding:1rem 1.05rem;
}
.dashboard-kpi__label { text-transform:uppercase; letter-spacing:.03em; font-size:.76rem; font-weight:700; color:#8a857b; }
.dashboard-kpi__value { margin-top:.35rem; font-size:1.9rem; line-height:1; font-weight:700; color:#24305f; }
.dashboard-kpi__value--success { color:#45a046; }
.dashboard-kpi__sub { margin-top:.2rem; font-size:.92rem; color:#7a7a7a; }

.talonario-table { background:#fff; border:1px solid var(--surface-border); border-radius:1rem; overflow:hidden; }
.talonario-table table { margin-bottom:0; }
.talonario-table thead th { font-size:.79rem; text-transform:uppercase; letter-spacing:.03em; color:#8b857c; background:#fff; }
.talonario-name-cell { display:flex; align-items:center; gap:.75rem; }
.talonario-avatar {
  width:32px; height:32px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  font-size:.74rem; font-weight:700; flex:0 0 auto; color:#45628d; background:#d8e5f8;
}
.talonario-avatar--green { background:#ddead2; color:#628347; }
.talonario-avatar--pink { background:#f0dfdf; color:#a56b6b; }
.talonario-avatar--sand { background:#eee3cf; color:#8e7341; }
.talonario-avatar--gray { background:#edf0f2; color:#7b848d; }
.talonario-responsable strong { display:block; font-size:1rem; font-weight:600; color:#2b3444; }
.talonario-responsable small { color:#8c8c8c; }
.progress-line { position:relative; width:82px; height:4px; border-radius:999px; background:#e7e7e7; overflow:hidden; display:inline-block; vertical-align:middle; margin-right:.6rem; }
.progress-line > span { position:absolute; inset:0 auto 0 0; border-radius:999px; }
.progress-line--empty > span { background:#d6d6d6; }
.progress-line--partial > span { background:#c88521; }
.progress-line--full > span { background:#3bab44; }
.talonario-vendidas { white-space:nowrap; font-weight:600; color:#5b5b5b; }
.close-teaser {
  background:#efeee8; border:1px solid #e2ddd3; border-radius:.9rem; padding:1rem 1.1rem; display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.close-teaser__title { font-size:1.3rem; font-weight:700; color:#2a3240; margin:0; }
.close-teaser__subtitle { color:#6f7683; font-size:.95rem; }
.close-panel-card { border-radius:1rem; }
.close-panel-card .stat-card { border:1px solid #dfe4ea; border-radius:.85rem; padding:1rem; background:#fff; height:100%; }
.close-panel-card .stat-card__label { color:#6f7683; font-size:.95rem; }
.close-panel-card .stat-card__value { color:#1f2937; font-size:1.1rem; font-weight:700; margin-top:.25rem; }

.talonario-back-btn { border-radius:.8rem; padding:.6rem 1rem; font-weight:600; }
.talonario-shell { background:#fff; border:1px solid var(--surface-border); border-radius:1rem; overflow:hidden; }
.talonario-shell__head { padding:1.4rem 1.5rem 1rem; border-bottom:1px solid #e8ebf0; }
.talonario-shell__title { font-size:2rem; line-height:1.05; color:#24305f; font-weight:700; margin:0 0 .2rem; }
.talonario-shell__meta { color:#5d6470; font-size:1.1rem; }
.talonario-shell__body { display:grid; grid-template-columns:280px 1fr; }
.talonario-side { border-right:1px solid #e8ebf0; padding:1.25rem 1.35rem; }
.talonario-main { padding:1.25rem 1.35rem; }
.talonario-side__avatar {
  width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:#d8e5f8; color:#45628d; font-weight:700; font-size:1.2rem; margin-bottom:1rem;
}
.talonario-section-title { font-size:1.15rem; font-weight:700; color:#7a7a72; text-transform:uppercase; letter-spacing:.03em; margin-bottom:.8rem; }
.talonario-summary { border-top:1px solid #e8ebf0; margin-top:1.25rem; padding-top:1rem; }
.talonario-summary__row { display:flex; justify-content:space-between; gap:1rem; margin-bottom:.45rem; }
.talonario-summary__row strong { font-weight:700; }
.talonario-summary__row strong.is-success { color:#3c9c42; }
.grid-checks--talonario { grid-template-columns:repeat(auto-fill, minmax(40px, 1fr)); gap:.45rem; }
.check-tile--talonario {
  min-height:38px; justify-content:center; padding:.35rem .2rem; background:#284a7d; color:#fff; border:none; font-weight:700;
}
.check-tile--talonario input { display:none; }
.check-tile--talonario.is-checked { background:#284a7d; }
.check-tile--talonario:not(.is-checked) { background:#d9e1ee; color:#274776; }
.talonario-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; flex-wrap:wrap; }
.talonario-sold-count { color:#444; font-weight:700; }

.admin-person-meta { border-top:1px solid #edf1f5; margin-top:1rem; padding-top:1rem; }
.talonario-form-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

@media (max-width: 575px) {
  .talonario-form-footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .talonario-form-footer .btn {
    width: 100%;
  }
}
@media (max-width: 991px) {
  .dashboard-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .talonario-shell__body { grid-template-columns:1fr; }
  .talonario-side { border-right:0; border-bottom:1px solid #e8ebf0; }
}
@media (max-width: 768px) {
  .app-brand-title { font-size:1.35rem; }
  .app-brand-subtitle { font-size:.85rem; }
  .app-logo { height:36px; }
  .dashboard-kpis { grid-template-columns:1fr; }
  .board-hero-title { font-size:1.55rem; }
  .close-teaser { flex-direction:column; align-items:flex-start; }
}
.alert-danger {
    margin: 0;
}
.ct-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.ct-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.65);
}

.ct-modal__box {
  position: relative;
  width: min(560px, 100%);
  background: #fff;
  border-radius: 18px;
  padding: 1.5rem;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}

.ct-modal__box h2 {
  margin: 0 0 1rem;
  color: #1e3a5f;
  font-size: 1.5rem;
}

.ct-modal__actions {
  display: flex;
  justify-content: flex-end;
  gap: .75rem;
  margin-top: 1.5rem;
  flex-wrap: wrap;
}