/* Colour styles an owner chooses in Settings → Booking page → Colours (approved 10 Nov 2026, comms 3064).
   Plum is the standard page and has no class. Each style below sets colour tokens only; the shared rules
   after the token blocks are the light set (Cream, Chalk, Harbour) and the dark set (Ember, Midnight).
   Every selector is scoped to a house class, so the standard page and the matched venue themes are
   unchanged. Contrast is measured per style by .github/scripts/check-theme-contrast.py. */

/* Cream is the look of the public demo booking page (assets/demo-guest.css, html.lunaBookingSample):
   champagne, plum and terracotta, with the header on the page colour. It is what a new venue starts on
   (founder, 11 Nov 2026); tg_default_settings() carries the value. */
.guestApp.theme-house-cream{
  color-scheme:light;
  --bg:#F7F0E2; --card:#FFFDF6; --ink:#382B36; --ink2:#594955; --ink3:#655665;
  --line:#D2BFA8; --dark:#432940; --accent:#A9422B; --accent2:#A9422B; --accent2-hover:#853523;
  --cream:#F7F0E2; --cream2:#F3E5D2; --paper:#FFFDF6; --gold:#CDA350;
  --gv-raised:#F4E9D8; --gv-sunken:#F5ECDE; --gv-pill:#F3E5D2; --gv-selected-soft:#F9DFCB;
  --gv-ink-disabled:#776966; --gv-field-border:#8F796E; --gv-status-ok:#326341; --gv-cta-ink:#FFFFFF;
  --hero-bg:#F7F0E2; --hero-ink:#382B36;
}
.guestApp.theme-house-cream{--green:#326341;--greenbg:#E8EDDF}
.guestApp.theme-house-cream .resvCard{border-top:3px solid var(--accent2)}
.guestApp.theme-house-cream :is(.resvCard,.chatCard){box-shadow:0 2px 5px #2f1c2d08,0 12px 30px #2f1c2d10}
.guestApp.theme-house-chalk{
  color-scheme:light;
  --bg:#F4F4F1; --card:#FFFFFF; --ink:#1C1C1A; --ink2:#5A5A55; --ink3:#5A5A55;
  --line:#DEDED8; --dark:#1C1C1A; --accent:#1C1C1A; --accent2:#1C1C1A; --accent2-hover:#3A3A36;
  --cream:#F4F4F1; --cream2:#EAEAE5; --paper:#FFFFFF; --gold:#85857F;
  --gv-raised:#F4F4F1; --gv-sunken:#EAEAE5; --gv-pill:#EAEAE5; --gv-selected-soft:#EAEAE5;
  --gv-ink-disabled:#5A5A55; --gv-field-border:#85857F; --gv-status-ok:#5A5A55; --gv-cta-ink:#FFFFFF;
  --hero-bg:#1C1C1A; --hero-ink:#FFFFFF;
}
.guestApp.theme-house-harbour{
  color-scheme:light;
  --bg:#EDF2F5; --card:#FFFFFF; --ink:#14273A; --ink2:#4A5F72; --ink3:#4A5F72;
  --line:#D5DEE5; --dark:#14273A; --accent:#1D4F7C; --accent2:#1D4F7C; --accent2-hover:#163E62;
  --cream:#EDF2F5; --cream2:#DCE6EE; --paper:#FFFFFF; --gold:#7FA6C4;
  --gv-raised:#EDF2F5; --gv-sunken:#DCE6EE; --gv-pill:#DCE6EE; --gv-selected-soft:#DCE6EE;
  --gv-ink-disabled:#4A5F72; --gv-field-border:#7A8C9B; --gv-status-ok:#4A5F72; --gv-cta-ink:#FFFFFF;
  --hero-bg:#14273A; --hero-ink:#FFFFFF;
}
/* Emilio's, Durham: matched to the logo on 11 Nov 2026 (founder's choice "Olive"): olive lettering,
   antique gold accent, ivory page. Selected only by Admin for that venue; it uses the light rule set. */
.guestApp.theme-emilios-signature{
  color-scheme:light;
  --bg:#F7F5EE; --card:#FFFFFF; --ink:#25281A; --ink2:#585B45; --ink3:#585B45;
  --line:#DEDCCD; --dark:#454A1F; --accent:#454A1F; --accent2:#454A1F; --accent2-hover:#363A17;
  --cream:#F7F5EE; --cream2:#ECEADB; --paper:#FFFFFF; --gold:#957D4D;
  --gv-raised:#F7F5EE; --gv-sunken:#ECEADB; --gv-pill:#ECEADB; --gv-selected-soft:#ECEADB;
  --gv-ink-disabled:#585B45; --gv-field-border:#84866E; --gv-status-ok:#585B45; --gv-cta-ink:#FFFFFF;
  --hero-bg:#454A1F; --hero-ink:#FFFFFF;
}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature){
  /* Dark semantic ink on pale panels: the inherited success green is 4.48:1 on its own panel. */
  --green:#376D44;
  --dsm-scrim:rgba(20,20,24,.62); --dsm-shadow:rgba(0,0,0,.28);
  --dsm-surface:var(--card); --dsm-ink:var(--ink); --dsm-muted:var(--ink2);
  --dsm-border:var(--gv-field-border); --dsm-inset:var(--gv-selected-soft); --dsm-inset-ink:var(--ink);
  --dsm-btn2-bg:var(--card); --dsm-btn2-border:var(--gv-field-border); --dsm-btn2-ink:var(--ink2);
  --dsm-focus:var(--accent); --dsm-cta-bg:var(--accent); --dsm-cta-ink:var(--gv-cta-ink);
  --gpm-scrim:var(--dsm-scrim); --gpm-surface:var(--card); --gpm-ink:var(--ink); --gpm-muted:var(--ink2);
  --gpm-inset:var(--gv-selected-soft); --gpm-line:var(--line); --gpm-border:var(--gv-field-border);
  --gpm-cta:var(--accent); --gpm-cta-ink:var(--gv-cta-ink);
}

.guestApp.theme-house-ember{
  color-scheme:dark;
  --bg:#1A1715; --card:#26211D; --ink:#F4EEE7; --ink2:#BBAFA3; --ink3:#BBAFA3;
  --line:#3A322C; --accent:#E2A257; --accent2:#E2A257; --accent2-hover:#EDB674;
  --cream:#F4EEE7;
  --gv-raised:#2E2823; --gv-sunken:#141210; --gv-pill:#3A322C; --gv-selected-soft:#3A322C;
  --gv-ink-disabled:#8C7F73; --gv-field-border:#8C7F73; --gv-status-ok:#BBAFA3; --gv-cta-ink:#1A1715;
}
.guestApp.theme-house-midnight{
  color-scheme:dark;
  --bg:#0E1929; --card:#172437; --ink:#E9EFF6; --ink2:#A5B4C6; --ink3:#A5B4C6;
  --line:#26364D; --accent:#8CC0E6; --accent2:#8CC0E6; --accent2-hover:#A6CFEC;
  --cream:#E9EFF6;
  --gv-raised:#1C2B41; --gv-sunken:#0A1320; --gv-pill:#26364D; --gv-selected-soft:#26364D;
  --gv-ink-disabled:#73859B; --gv-field-border:#73859B; --gv-status-ok:#A5B4C6; --gv-cta-ink:#0E1929;
}
.guestApp:is(.theme-house-ember,.theme-house-midnight){
  /* Dark semantic panels: the standard page inherits light ones. */
  --red:#E8776A; --amber:#D9A441; --blue:#7FB2D9; --green:#7FBF8A;
  --redbg:#421D19; --greenbg:#1E3F24; --amberbg:#423215; --bluebg:#1F3648;
  --dsm-scrim:rgba(0,0,0,.72); --dsm-shadow:rgba(0,0,0,.55);
  --dsm-surface:var(--gv-raised); --dsm-ink:var(--ink);
  --dsm-muted:var(--ink2); --dsm-border:var(--gv-field-border);
  --dsm-inset:var(--gv-sunken); --dsm-inset-ink:var(--ink);
  --dsm-btn2-bg:var(--gv-raised); --dsm-btn2-border:var(--gv-field-border);
  --dsm-btn2-ink:var(--ink2); --dsm-focus:var(--accent);
  --dsm-cta-bg:var(--accent); --dsm-cta-ink:var(--gv-cta-ink);
  --gpm-scrim:var(--dsm-scrim); --gpm-surface:var(--gv-raised); --gpm-ink:var(--ink); --gpm-muted:var(--ink2);
  --gpm-inset:var(--gv-sunken); --gpm-line:var(--line); --gpm-border:var(--gv-field-border);
  --gpm-cta:var(--accent); --gpm-cta-ink:var(--gv-cta-ink);
}

/* ---- Light set: Cream, Chalk, Harbour ---- */
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) :is(.resvEyebrow){color:var(--ink)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) :is(.bookBtn,.sendBtn,.evBookBtn,.wlBtn,.bookingCalendarToggle,.resvSegCount){color:var(--gv-cta-ink)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) :is(.dRailDay,.dRailMore,.calNav,.ttCtyTrig,.ttCtyTrig:hover,.chip,.dateField:hover,.wlJoinLink,.evSeatBtn,.rConfAct,.tpRoomTab,.bookingCalendarLinks a,.bookingCalendarRetry,.bookingCalendarManage,#evPanel .evChoices select){border-color:var(--gv-field-border)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .resvCard select:not(.evDateSel){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23555555' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) :is(.resvSummary,.resvSummary b){background:var(--gv-selected-soft);color:var(--ink)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .aiAvatar{background:var(--gv-selected-soft);color:var(--accent)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .msg.me{background:var(--accent);color:var(--gv-cta-ink)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .rCallBtn{background:var(--accent);color:var(--gv-cta-ink)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .rCallBtn.is-flat{background:none;color:var(--accent)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .resvSegBtn:hover:not(.on),
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) :is(.resvBack,.rManageLink):hover{color:var(--accent)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .calDay.today:not(.sel){box-shadow:inset 0 0 0 1.6px var(--accent)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) :is(.dateField[aria-expanded="true"],.resvCard input:focus,.resvCard select:focus,.ttCtyTrig[aria-expanded="true"]){box-shadow:0 0 0 3px var(--gv-selected-soft)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .tpTbl.isSel .tpSeat{box-shadow:0 8px 20px rgba(0,0,0,.18)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) :is(.bookingCalendarDate,.bookingCalendarLinks a,.bookingCalendarRetry,.fuMapCard,.fuMapCard .mapLoad){background:var(--gv-raised)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .fuMapCard .mapLoad:hover{background:var(--gv-selected-soft)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) :is(#fuWeekly .fuHourRow.today,#fuSpecial .fuHourRow.special){background:var(--gv-selected-soft);color:var(--ink)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) #fuSpecial .fuHoursDayNote{color:var(--ink2)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) :is(.dsmCta,.dsmBtn2,.guestPaymentModal button):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) ::selection,
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature)::selection{background:var(--accent);color:var(--gv-cta-ink)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .heroTrust{color:var(--ink2)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .guestFooterWord{filter:brightness(0);opacity:.66}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .guestFooterSymbol{filter:none}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .guestGrid>.card{box-shadow:0 2px 4px #00000008,0 12px 25px #0000000a}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .guestPoweredBy,
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .guestPoweredBy a{color:var(--ink2)}
/* The header band carries the style's deep colour, as the guest emails do. */
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .hero{background:var(--hero-bg);color:var(--hero-ink);box-shadow:inset 0 -2px var(--gold)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .hero :is(h1,.tag,.kicker,.hoursPill,.heroTrust,.guestFactIcon,.gCuisine,#gCuisine,.gRating,.gRating span[aria-hidden]),
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .hero #guestCuisineLine:not(.hidden){color:var(--hero-ink)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) .hero a:focus-visible{outline-color:var(--hero-ink)}
.guestApp:is(.theme-house-cream,.theme-house-chalk,.theme-house-harbour,.theme-emilios-signature) :is(.slotChip.sel,.occChip.sel,.dRailDay.on,.calDay.sel){background:var(--accent);color:var(--gv-cta-ink);border-color:var(--accent);box-shadow:none}

/* ---- Dark set: Ember, Midnight ---- */
.guestApp:is(.theme-house-ember,.theme-house-midnight) :is(.dsmCta,.dsmBtn2):focus-visible{outline:2px solid var(--dsm-focus);outline-offset:2px}
.guestApp:is(.theme-house-ember,.theme-house-midnight) .bookBtn{color:var(--gv-cta-ink)}
.guestApp:is(.theme-house-ember,.theme-house-midnight) :is(.resvSummary,.resvSummary b){color:var(--ink);border-color:var(--accent)}
.guestApp:is(.theme-house-ember,.theme-house-midnight) .resvSummary{background:var(--gv-selected-soft)}
.guestApp:is(.theme-house-ember,.theme-house-midnight) .aiAvatar{background:var(--gv-raised);color:var(--accent)}
.guestApp:is(.theme-house-ember,.theme-house-midnight) :is(.dRailDay,.dRailMore){border-color:var(--gv-field-border)}
.guestApp:is(.theme-house-ember,.theme-house-midnight) :is(.dRailDay.on,.slotChip.sel,.occChip.sel,.calDay.sel){background:var(--gv-selected-soft);border-color:var(--accent);color:var(--ink);box-shadow:inset 0 0 0 1px var(--accent)}
.guestApp:is(.theme-house-ember,.theme-house-midnight) .resvCard select:not(.evDateSel){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23cccccc' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.guestApp:is(.theme-house-ember,.theme-house-midnight) .msg.me{background:var(--accent2-hover);color:var(--bg)}
.guestApp:is(.theme-house-ember,.theme-house-midnight) .rCallBtn{background:var(--gv-pill);color:var(--ink)}
.guestApp:is(.theme-house-ember,.theme-house-midnight) :is(.resvBack,.rManageLink):hover,
.guestApp:is(.theme-house-ember,.theme-house-midnight) .resvSegBtn:hover:not(.on){color:var(--accent)}
.guestApp:is(.theme-house-ember,.theme-house-midnight) ::selection,
.guestApp:is(.theme-house-ember,.theme-house-midnight)::selection{background:var(--accent);color:var(--bg)}
.guestApp:is(.theme-house-ember,.theme-house-midnight) .resvSegCount{color:var(--bg)}

/* Demo booking page: the colour style picker inside the sample banner. */
.guestApp .demoStylePick{display:inline-flex;align-items:center;gap:6px;margin-left:4px;white-space:nowrap}
.guestApp .demoStylePick select{font:inherit;padding:2px 6px;min-height:32px;color:#2f1c2d;background:#fff;border:1px solid #cdbfae;border-radius:6px;color-scheme:light}   /* fixed colours: on a dark style the field kept its white box and took the style's pale lettering */
/* The sample and preview banner (demo and preview pages only) takes the dark style's own panel. */
.guestApp:is(.theme-house-ember,.theme-house-midnight) .previewBanner{background:var(--gv-raised);color:var(--ink)}
.guestApp:is(.theme-house-ember,.theme-house-midnight) .previewBanner a{color:var(--accent)}
