/* INVITA — habillage du back-office */
:root {
  --invita-primary: #0B3B60;
  --invita-secondary: #B08D3F;
  --invita-bg: #f5f7fa;
}
body { background: var(--invita-bg); font-size: .93rem; }
.invita-navbar { background: var(--invita-primary); }
.invita-navbar .navbar-brand, .invita-navbar .nav-link { color: rgba(255,255,255,.88); }
.invita-navbar .nav-link:hover, .invita-navbar .nav-link.active { color: #fff; }
.invita-badge-org { background: var(--invita-secondary); color: #fff; font-weight: 500; }
.btn-primary { background-color: var(--invita-primary); border-color: var(--invita-primary); }
.btn-primary:hover, .btn-primary:focus { background-color: #09304e; border-color: #09304e; }
.btn-outline-primary { color: var(--invita-primary); border-color: var(--invita-primary); }
.btn-outline-primary:hover { background-color: var(--invita-primary); border-color: var(--invita-primary); }
a { color: var(--invita-primary); }
.card { border: 1px solid #e3e8ee; border-radius: .6rem; box-shadow: 0 1px 2px rgba(16,24,40,.05); }
.card-header { background: #fff; border-bottom: 1px solid #eef1f5; font-weight: 600; }
.page-title { color: var(--invita-primary); font-weight: 600; }
.stat-card { border-left: 4px solid var(--invita-primary); }
.stat-card .stat-value { font-size: 1.6rem; font-weight: 700; line-height: 1; color: var(--invita-primary); }
.stat-card .stat-label { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: #6b7785; }
.table > :not(caption) > * > * { padding: .5rem .6rem; }
.table thead th { background: #eef2f7; font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; color: #51606f; }
.badge-vip { background: var(--invita-secondary); }
.merge-field { cursor: pointer; font-family: ui-monospace, Menlo, monospace; font-size: .78rem; }
.preview-frame { width: 100%; min-height: 640px; border: 1px solid #dee2e6; border-radius: .4rem; background: #fff; }
.rsvp-open { border-left: 4px solid #198754; }
.timeline { list-style: none; padding-left: 1rem; border-left: 2px solid #e3e8ee; }
.timeline li { position: relative; padding-bottom: .8rem; padding-left: .8rem; }
.timeline li::before { content: ''; position: absolute; left: -1.35rem; top: .3rem; width: .6rem; height: .6rem;
  background: var(--invita-primary); border-radius: 50%; }
/* Application d'accueil (PWA) */
.checkin-body { background: #0f1720; color: #e8eef5; }
.checkin-result { font-size: 1.35rem; }
.checkin-ok { background: #14532d; }
.checkin-warn { background: #78350f; }
.checkin-error { background: #7f1d1d; }
.guest-row.present { opacity: .5; }
#reader { width: 100%; max-width: 420px; margin: 0 auto; }
.checkin-body .list-group-item { color: #e8eef5; border-color: rgba(255,255,255,.12); }
.checkin-body .guest-name { color: #ffffff; }
.checkin-body .guest-meta { color: #9fb0c0; }
/* Carte du lieu (EF-10) */
.venue-map { height: 320px; background: #e9eef3; z-index: 0; }
.venue-map-display { height: 260px; }
.venue-map:focus-visible { outline: 3px solid var(--invita-secondary); outline-offset: 2px; }
