/* LocVox Birthday Club — owner dashboard + builder. Scoped under .lbc-* so it coexists with the
   host theme on go.locvox.ca. Civic Light palette. */

.lbc-dash, .lbc-builder { --teal:#0d7377; --amber:#f59e0b; --text:#1a2332; --mid:#4a5568; --muted:#9ca3af; --border:#e5e9ef; --bg:#f4f6f8;
  font-family:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif; color:var(--text); }

/* ---- Gate ---- */
.lbc-gate { background:#fff; border:1px solid var(--border); border-radius:16px; padding:28px; text-align:center; }

/* ---- Buttons ---- */
.lbc-btn { display:inline-block; background:var(--amber); color:#1a2332; border:0; border-radius:10px;
  padding:13px 22px; font-size:15px; font-weight:700; font-family:inherit; cursor:pointer; text-decoration:none; }
.lbc-btn-ghost { background:#fff; border:1px solid var(--border); color:var(--mid); }

/* ---- Dashboard ---- */
.lbc-dash-title { font-size:1.4rem; font-weight:800; margin:0 0 4px; }
.lbc-dash-sub { color:var(--muted); font-size:.86rem; margin:0 0 20px; }
.lbc-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:16px; }
.lbc-stat { background:#fff; border:1px solid var(--border); border-radius:16px; box-shadow:0 2px 12px rgba(0,0,0,.06); padding:20px; }
.lbc-stat-num { font-size:2.1rem; font-weight:800; line-height:1; color:var(--teal); }
.lbc-stat-label { font-size:.82rem; font-weight:600; margin-top:8px; }
.lbc-stat-foot { font-size:.72rem; color:var(--muted); margin-top:4px; }

/* ---- Builder ---- */
.lbc-modes { display:flex; gap:10px; margin-bottom:18px; }
.lbc-mode { flex:1; background:#fff; border:1px solid var(--border); border-radius:14px; padding:14px;
  font-family:inherit; font-size:.95rem; font-weight:700; cursor:pointer; color:var(--mid); display:flex; flex-direction:column; gap:2px; }
.lbc-mode span { font-size:.7rem; font-weight:500; color:var(--muted); }
.lbc-mode.is-active { border-color:var(--teal); color:var(--teal); box-shadow:0 0 0 2px rgba(13,115,119,.12); }

.lbc-builder-cols { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; }
@media (max-width:820px){ .lbc-builder-cols { grid-template-columns:1fr; } }

.lbc-builder-form { background:#fff; border:1px solid var(--border); border-radius:16px; padding:22px; }
.lbc-builder-form label { display:block; font-size:.8rem; font-weight:600; margin:14px 0 6px; }
.lbc-builder-form input[type=text], .lbc-builder-form input[type=date], .lbc-builder-form input[type=number], .lbc-builder-form textarea {
  width:100%; padding:11px 12px; border:1px solid #d7dee6; border-radius:10px; font-size:15px; font-family:inherit; }
.lbc-count { float:right; font-weight:500; color:var(--muted); font-size:.72rem; }
.lbc-mode-hint { background:var(--bg); border-radius:10px; padding:10px 12px; font-size:.8rem; color:var(--mid); margin:0 0 8px; }
.lbc-dates { display:flex; gap:12px; } .lbc-dates > div { flex:1; }
.lbc-imgnote { font-size:.72rem; color:var(--muted); margin:6px 0 0; }
.lbc-toggle { display:flex !important; align-items:center; gap:8px; margin-top:16px; font-weight:500 !important; color:var(--mid); }
.lbc-toggle input { width:auto; }
.lbc-actions { margin-top:20px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.lbc-msg { font-size:.82rem; }
.lbc-msg.is-ok { color:var(--teal); } .lbc-msg.is-err { color:#b91c1c; }

.lbc-builder-preview { position:sticky; top:20px; }
.lbc-preview-label { font-size:.72rem; text-transform:uppercase; letter-spacing:.8px; color:var(--muted); font-weight:700; margin-bottom:8px; }
#lbc-preview { width:100%; height:640px; border:1px solid var(--border); border-radius:16px; background:#f4f6f8; }

/* ---- Confirm modal ---- */
.lbc-modal { position:fixed; inset:0; background:rgba(26,35,50,.5); display:flex; align-items:center; justify-content:center; z-index:9999; padding:20px; }
.lbc-modal-box { background:#fff; border-radius:16px; padding:26px; max-width:420px; width:100%; }
.lbc-modal-box h3 { margin:0 0 8px; font-size:1.15rem; }
.lbc-modal-box p { color:var(--mid); font-size:.9rem; line-height:1.5; }
.lbc-modal-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:18px; }
