/* V16.20.5 Prompt 5 - theme visibility, spacing & stacking reliability.
   Loaded after the protected V15 shared layer so current computed visual contracts
   remain authoritative without modifying protected Prompt-1/V15 assets. */

/* Public booking: keep critical text readable in every app theme and color mode. */
#booking .booking-intro h2,
#booking .booking-intro .progress-list strong,
#booking .booking-intro .support-card strong{color:#f7f1e8!important}
#booking .booking-intro>p:not(.eyebrow),
#booking .booking-intro .progress-list small,
#booking .booking-intro .support-card small{color:#bdb4a8!important}
#booking .booking-form{color:var(--ui-text,var(--ink))!important}
#booking .booking-form .form-title h3,
#booking .booking-form .minor-heading h4,
#booking .booking-form .field>span,
#booking .booking-form .choice-group legend,
#booking .booking-form .addon strong,
#booking .booking-form .addon b,
#booking .booking-form .choice strong,
#booking .booking-form .choice b,
#booking .booking-form .back-link{color:var(--ui-text,var(--ink))!important}
#booking .booking-form .form-title p,
#booking .booking-form .minor-heading span,
#booking .booking-form .addon small,
#booking .booking-form .choice small,
#booking .booking-form .terms{color:var(--ui-muted,var(--muted))!important}
#booking .booking-form :is(input,select,textarea),
#booking .booking-form .counter,
#booking .booking-form .choice,
#booking .booking-form .addon{
  border-color:var(--ui-line,var(--line))!important;
  color:var(--ui-text,var(--ink))!important;
}
#booking .booking-form :is(input,select,textarea)::placeholder{color:color-mix(in srgb,var(--ui-text,var(--ink)) 62%,transparent)!important;opacity:1}
html[data-theme="dark"] #booking .booking-form :is(input,select,textarea),
html[data-theme="dark"] #booking .booking-form .counter,
html[data-theme="dark"] #booking .booking-form .choice,
html[data-theme="dark"] #booking .booking-form .addon,
html[data-app-theme="midnight-royal"] #booking .booking-form :is(input,select,textarea),
html[data-app-theme="midnight-royal"] #booking .booking-form .counter,
html[data-app-theme="midnight-royal"] #booking .booking-form .choice,
html[data-app-theme="midnight-royal"] #booking .booking-form .addon,
html[data-app-theme="emerald-concierge"] #booking .booking-form :is(input,select,textarea),
html[data-app-theme="emerald-concierge"] #booking .booking-form .counter,
html[data-app-theme="emerald-concierge"] #booking .booking-form .choice,
html[data-app-theme="emerald-concierge"] #booking .booking-form .addon,
html[data-app-theme="obsidian-glass"] #booking .booking-form :is(input,select,textarea),
html[data-app-theme="obsidian-glass"] #booking .booking-form .counter,
html[data-app-theme="obsidian-glass"] #booking .booking-form .choice,
html[data-app-theme="obsidian-glass"] #booking .booking-form .addon,
html[data-app-theme="atlas-future"] #booking .booking-form :is(input,select,textarea),
html[data-app-theme="atlas-future"] #booking .booking-form .counter,
html[data-app-theme="atlas-future"] #booking .booking-form .choice,
html[data-app-theme="atlas-future"] #booking .booking-form .addon{
  background:color-mix(in srgb,var(--ui-panel-soft,var(--white)) 88%,#000 12%)!important;
}
html[data-theme="dark"] #booking .booking-form .addon:has(input:checked),
html[data-theme="dark"] #booking .booking-form .choice:has(input:checked),
html[data-theme="dark"] #booking .booking-form .choice.active{background:color-mix(in srgb,var(--ui-accent,var(--gold)) 16%,var(--ui-panel,var(--white)))!important}

/* Admin form geometry: direct field controls fill their grid cell instead of sitting inline with labels. */
.admin-page .form-grid>label:not(.checkbox):not(.inline-check):not(.check-card){
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  align-content:start!important;
  gap:7px!important;
  min-width:0!important;
}
.admin-page .form-grid>label:not(.checkbox):not(.inline-check):not(.check-card)>:is(input,select,textarea){
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
}
.admin-page .form-grid>.wide,
.admin-page .form-grid>.full{grid-column:1/-1!important}

/* Hotel Master Data receives a deterministic desktop form contract. */
.hotel-master-data-panel{overflow:hidden}
.hotel-master-data-form .form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  column-gap:24px!important;
  row-gap:18px!important;
  align-items:start!important;
}
.hotel-master-data-form .form-grid>label{font-weight:600;color:var(--ui-text,var(--ink));letter-spacing:.04em}
.hotel-master-data-form .form-grid>label>:is(input,select,textarea){
  min-height:46px;
  padding:11px 12px!important;
  border-radius:10px;
  background:var(--ui-panel-soft,var(--cream))!important;
  color:var(--ui-text,var(--ink))!important;
  border-color:var(--ui-line,var(--line))!important;
}
.hotel-master-data-form .form-grid>label>textarea{min-height:96px;resize:vertical}
.hotel-master-data-form>.button{margin-top:2px}
.hotel-master-grid{align-items:stretch}
.hotel-master-grid>.admin-panel{min-width:0}

/* Alternate themes + Dark mode must keep Admin labels and field values readable. */
html[data-theme="dark"] .admin-page .admin-panel,
html[data-theme="dark"] .admin-page .form-grid>label,
html[data-theme="dark"] .admin-page .hotel-master-grid{color:var(--ui-text,var(--ink))}
html[data-theme="dark"] .admin-page .form-grid>label>:is(input,select,textarea){
  background:var(--ui-panel-soft,var(--cream))!important;
  color:var(--ui-text,var(--ink))!important;
  border-color:var(--ui-line,var(--line))!important;
}
html[data-theme="dark"] .admin-page :is(input,textarea)::placeholder{color:color-mix(in srgb,var(--ui-text,var(--ink)) 60%,transparent)!important;opacity:1}

@media(max-width:900px){
  .hotel-master-data-form .form-grid{grid-template-columns:1fr!important;column-gap:0!important}
  .hotel-master-data-form .form-grid>.wide,
  .hotel-master-data-form .form-grid>.full{grid-column:auto!important}
}
