/* Breast Cancer Foundation NZ — one optional visitor theme.
   Reference palette: breastcancerfoundation.org.nz, September 2026.
   Keep semantic warning and consent-decline colours distinct. */
.visitor-shell.bcf-theme {
  --brand:#e85494; --brand-dark:#b32365; --brand-soft:#fff0f6;
  --ink:#2b2d32; --muted:#68616a; --line:#f2d6e2;
  --event-action:#cf2773; --event-action-hover:#ba2166;
  background:#fffbfd; border-top-color:#e85494;
}
/* Keep repeat-visitor entry out of event days, including live theme changes. */
.visitor-shell.bcf-theme :is(.home-returning,.returning-visitor) { display:none; }
.visitor-shell #visitorEmailField[hidden] { display:none; }
.visitor-photo-capture { margin-top:22px; padding-top:20px; border-top:1px solid var(--line); }
.visitor-photo-capture h2 { margin:0 0 8px; font-size:1.125rem; }
.visitor-photo-capture>p { margin:8px 0 14px; }
.visitor-photo-preview { display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap; margin:14px 0; }
.visitor-photo-preview img { display:block; width:150px; height:190px; object-fit:contain; background:#fff; border:1px solid var(--line); border-radius:8px; }
.visitor-photo-preview[hidden],#visitorPhotoInput[hidden],#removeVisitorPhoto[hidden] { display:none; }
.guardian-guidance { margin-top:16px; }
.bcf-theme .topbar { min-height:88px; padding-block:8px; background:#fff; border-color:#f0d5df; }
.shell.bcf-theme .brand-logo.bcf-brand-logo { width:134px; height:72px; object-fit:contain; }
.bcf-theme .brand-context { border-left-color:#efc4d6; }
.bcf-theme .brand-context span { color:var(--brand-dark); }
.bcf-theme .topbar .icon-btn { border-color:#edcbd8; color:#68616a; border-radius:8px; }
.bcf-theme .topbar .icon-btn:hover { background:#fde9ef; border-color:#e85494; color:#9c2459; }
.bcf-theme .welcome-entry .hero h1 { color:var(--brand-dark); font-size:clamp(1.625rem,3vw,2.5rem); font-weight:700; letter-spacing:-.04em; }
.bcf-theme .welcome-entry .visitor-location { border-left-color:#e85494; }
.bcf-theme .welcome-entry .action-card-primary {
  --line:#efc7d8;
  background:linear-gradient(115deg,#fff0f6,#fff8fb); border:1px solid #f0c9da; border-top:5px solid #e85494;
  border-radius:18px; box-shadow:0 8px 24px #e8549406;
}
.bcf-theme .welcome-entry .action-card-primary h2 { color:var(--brand-dark); font-weight:750; letter-spacing:-.045em; }
.bcf-theme .welcome-entry .action-card-top .visitor-kicker { color:var(--brand-dark); font-size:.875rem; letter-spacing:.07em; }
.bcf-theme .welcome-entry .action-card-primary .action-card-copy>p { color:var(--muted); font-size:1.0625rem; line-height:1.5; max-width:430px; }
.bcf-theme .welcome-entry #startVisitor { background:var(--event-action); color:#fff; border:1px solid var(--event-action); border-radius:10px; box-shadow:none; }
.bcf-theme .welcome-entry #startVisitor:hover { background:var(--event-action-hover); border-color:var(--event-action-hover); }
.bcf-theme .welcome-entry .phone-access { border-color:var(--line); }
.bcf-theme .welcome-entry .phone-access-code { background:#fff; border-radius:8px; outline:8px solid #fff; }
.bcf-theme .welcome-entry .phone-access-code img { border-radius:4px; }
.bcf-theme .welcome-entry .phone-access h3,.bcf-theme .welcome-entry .phone-access-copy>a { color:var(--brand-dark); }
.bcf-theme .welcome-entry .action-card-staff { --line:#f2d6e2; border-color:var(--line); border-top-color:#f4afcc; background:#fff; border-radius:12px; }
.bcf-theme .action-card-staff h2,.bcf-theme .action-card-staff .visitor-kicker { color:var(--brand-dark); }
.bcf-theme .action-card-staff .staff-start { background:var(--brand-soft); border-color:#efb1cc; color:var(--brand-dark); }
.bcf-theme .action-card-staff .staff-start:hover:enabled { background:#ffe2ee; border-color:#e85494; }
.bcf-theme .action-card-staff .staff-start:disabled { background:#f5e6ec; color:#7d6770; border-color:#edcbd8; }
.bcf-theme :is(.primary,.secondary) { border-radius:8px; }
.bcf-theme .primary { background:var(--event-action); color:#fff; border-color:var(--event-action); box-shadow:none; }
.bcf-theme .primary:hover { background:var(--event-action-hover); border-color:var(--event-action-hover); }
.bcf-theme .secondary { color:var(--brand-dark); border-color:var(--line); background:#fff; }
.bcf-theme .secondary:hover,.bcf-theme .ghost:hover { background:#fde9ef; border-color:#e85494; color:#9c2459; }
.bcf-theme .step-pill { border-radius:8px; }
.bcf-theme .step-pill.active { background:#ffe5f0; color:var(--brand-dark); border-left-color:#e85494; }
.bcf-theme .step-pill.active .step-number,.bcf-theme .step-pill.done .step-number { color:var(--brand-dark); }
.bcf-theme .step-pill.done { border-bottom-color:#efb1cc; }
.bcf-theme .card { border-color:#edcbd8; border-top:3px solid #e85494; border-radius:12px; box-shadow:none; }
.bcf-theme .field :is(input,select,textarea) { border-color:#d9bec9; border-radius:7px; box-shadow:none; }
.bcf-theme .field :is(input,select):disabled { background:#fff7fa; color:#68616a; opacity:1; -webkit-text-fill-color:#68616a; }
.bcf-theme .checkline { background:#fff7fa; border-color:#edcbd8; border-radius:8px; }
.bcf-theme .checkline:has(input:checked) { background:#fde9ef; border-color:#d986a8; }
.bcf-theme .choice { border-color:#d9bec9; border-radius:8px; }
.bcf-theme .choice::before { border-color:#b77e96; }
.bcf-theme .choice:hover { background:#fff7fa; border-color:#d986a8; }
.bcf-theme .choice.selected:not(.no) { color:#9c2459; background:#fde9ef; border-color:#9c2459; box-shadow:inset 0 0 0 1px #9c2459; }
.bcf-theme .sig-wrap { border-color:#d9bec9; border-radius:8px; }
.bcf-theme .sig-head { background:#fff7fa; border-color:#edcbd8; }
.bcf-theme .sig-clear { color:#9c2459; }
.bcf-theme .host-match-group { background:#fff0f6; color:#795262; }
.bcf-theme .returning-panel { background:#fff7fa; border-radius:8px; }
.bcf-theme .complete .tick { border-color:#edb2c9; background:#fde9ef; color:#9c2459; }
.bcf-return-visual { display:none; }
.bcf-theme .complete .tick { display:none; }
.welcome-countdown { text-align:center; }
.bcf-theme .bcf-return-visual { display:flex; flex-direction:column; align-items:center; gap:10px; margin:0 auto 10px; }
.bcf-ribbon-drawing { display:block; width:62px; height:96px; overflow:visible; }
.bcf-countdown-track { width:180px; max-width:100%; height:4px; overflow:hidden; border-radius:2px; background:#f8e3ec; }
.bcf-countdown-track span { display:block; width:100%; height:100%; background:#df6699; transform:scaleX(0); transform-origin:left center; }
.bcf-theme .complete .complete-actions #returnCountdown { color:#795568; font-size:.875rem; font-variant-numeric:tabular-nums; }
@media (max-height:650px) {
  .bcf-ribbon-drawing { width:44px; height:68px; }
  .bcf-theme .bcf-return-visual { gap:7px; margin-bottom:7px; }
}
.bcf-theme .complete h1 { color:var(--brand-dark); max-width:560px; margin-inline:auto; }
.bcf-theme .complete .event-thank-you { max-width:490px; margin:0 auto 18px; color:#68616a; font-size:1.0625rem; line-height:1.55; }
.event-thank-you[hidden] { display:none; }
.bcf-theme .typing-panel { border-color:#edcbd8; border-top-color:#e85494; }
.bcf-theme .typing-tools { background:#fff7fa; }
.bcf-theme .product-footer { background:#fff; border-color:#f0d5df; }

/* A small, static sample beside the single Admin theme switch. */
.admin-shell .bcf-theme-sample { display:flex; align-items:center; gap:20px; margin:18px 0 12px; padding:18px 20px; border:1px solid #f0c9da; border-radius:8px; background:#fff0f6; }
.admin-shell .bcf-theme-sample img { display:block; flex:0 0 102px; object-fit:contain; }
.admin-shell .bcf-theme-sample strong { display:block; margin-bottom:5px; font-size:1.25rem; line-height:1.25; font-weight:700; color:#b32365; }
.admin-shell .bcf-theme-sample span { display:block; font-size:.875rem; line-height:1.45; color:#68545d; }

@media (max-width:560px) {
  .bcf-theme .topbar { min-height:74px; }
  .shell.bcf-theme .brand-logo.bcf-brand-logo { width:108px; height:58px; }
  .bcf-theme .brand-context { display:none; }
  .bcf-theme .welcome-entry .action-card-primary { border-radius:14px; }
  .bcf-theme .welcome-entry .hero h1 { font-size:1.625rem; }
  .admin-shell .bcf-theme-sample { gap:14px; padding:14px; }
  .admin-shell .bcf-theme-sample img { flex-basis:85px; width:85px; }
}
@media (min-width:561px) and (max-height:520px) {
  .bcf-theme .topbar { min-height:58px; padding-block:4px; }
  .shell.bcf-theme .brand-logo.bcf-brand-logo { width:94px; height:50px; }
}
