/* Asian Bus Command 11: accessible floating fields and persistent day/night themes. */
:root{color-scheme:light;--ab-panel:#fff;--ab-ui-border:#d9dee8;--ab-field-bg:#fff;--ab-canvas:#fff;--ab-canvas-surround:#eef1f6}.icon-button.theme-toggle{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--ab-ui-border);border-radius:.7rem;background:var(--ab-panel);color:var(--ab-ink);flex:0 0 auto}.theme-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ab-floating-field{position:relative;width:100%}.ab-floating-field>.form-control,.ab-floating-field>.form-select{min-height:54px;padding:1.48rem .82rem .28rem;border:1px solid var(--ab-ui-border);border-radius:.72rem;background-color:var(--ab-field-bg);color:var(--ab-ink);box-shadow:none;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.ab-floating-field>textarea.form-control{min-height:86px;padding-top:1.55rem}.ab-floating-field>.form-select{padding-right:2.25rem}.ab-floating-field>.form-label{position:absolute;z-index:2;left:.82rem;top:50%;max-width:calc(100% - 2rem);margin:0!important;transform:translateY(-50%);transform-origin:left top;color:#7b8495;font-size:.82rem;line-height:1.5;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform .16s ease,top .16s ease,font-size .16s ease,color .16s ease}.ab-floating-field:has(textarea)>.form-label{top:1.1rem}.ab-floating-field.has-focus>.form-label,.ab-floating-field.has-value>.form-label,.ab-floating-field:has(.form-select)>.form-label{top:.34rem;transform:none;font-size:.61rem;font-weight: bold;color:var(--ab-brand)}.ab-floating-field>.form-control:focus,.ab-floating-field>.form-select:focus{border-color:var(--ab-brand);box-shadow:0 0 0 .2rem rgba(198,40,40,.12)}.ab-floating-field>.form-control:disabled,.ab-floating-field>.form-select:disabled{opacity:.65;background:rgba(148,163,184,.12)}.ab-floating-field>.form-control::placeholder{color:transparent}.ab-floating-field.has-focus>.form-control::placeholder{color:#98a2b3}.input-group .ab-floating-field{flex:1 1 auto;width:1%;min-width:0}.form-control,.form-select{border-color:var(--ab-ui-border);background-color:var(--ab-field-bg);color:var(--ab-ink)}

/* Web Forms CheckBox renders a span wrapper; keep every checkbox switch consistent on public and portal pages. */
.form-switch-control{display:inline-flex;align-items:center;gap:.55rem;min-height:32px}.form-switch-control input[type=checkbox]{appearance:none;-webkit-appearance:none;width:2.5rem;height:1.4rem;margin:0;border:1px solid var(--ab-ui-border);border-radius:99px;background:#cbd5e1;position:relative;cursor:pointer;transition:.16s ease;vertical-align:middle}.form-switch-control input[type=checkbox]::after{content:"";position:absolute;width:1rem;height:1rem;left:.125rem;top:.125rem;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:.16s ease}.form-switch-control input[type=checkbox]:checked{background:var(--ab-brand);border-color:var(--ab-brand)}.form-switch-control input[type=checkbox]:checked::after{transform:translateX(1.125rem)}.form-switch-control label{cursor:pointer;margin:0}

.profile-trigger{background:var(--ab-panel,#fff)!important;border:1px solid var(--ab-ui-border)!important;border-radius:.7rem!important;padding:.25rem .55rem!important;color:var(--ab-ink)!important;min-height:40px}.profile-trigger:hover{border-color:var(--ab-brand)!important}.profile-trigger:focus-visible{outline:0;box-shadow:0 0 0 .2rem rgba(198,40,40,.14)}

.loading-overlay{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;background:rgba(11,18,32,.58);backdrop-filter:blur(2px)}.loading-overlay[hidden]{display:none}.loading-card{min-width:220px;padding:1.15rem 1.35rem;border:1px solid rgba(255,255,255,.18);border-radius:1rem;background:var(--ab-panel);color:var(--ab-ink);box-shadow:0 20px 60px rgba(0,0,0,.28);display:flex;align-items:center;gap:.9rem}.loading-card strong{display:block;font-size:.88rem}.loading-card small{display:block;color:var(--ab-muted);font-size:.72rem}.loading-bus{width:46px;height:46px;color:var(--ab-brand);animation:ab-bus-pulse 1s ease-in-out infinite}.loading-bus svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}@keyframes ab-bus-pulse{50%{transform:translateY(-4px);opacity:.72}}
[data-ab-theme=dark]{color-scheme:dark;--ab-ink:#e7edf7;--ab-muted:#aab4c4;--ab-surface:#0c111b;--ab-border:#293244;--ab-panel:#151c28;--ab-ui-border:#344055;--ab-field-bg:#111824;--ab-canvas:#131b28;--ab-canvas-surround:#090e16;--ab-shadow:0 18px 50px rgba(0,0,0,.32);--workspace:#0c111b;--card:#151c28;--line:#2d3749;--text:#e7edf7;--muted:#aab4c4}[data-ab-theme=dark] body,[data-ab-theme=dark] .portal-body{background:#0c111b;color:var(--ab-ink)}[data-ab-theme=dark] .app-header{background:rgba(18,25,37,.94)}[data-ab-theme=dark] .panel-card,[data-ab-theme=dark] .metric-card,[data-ab-theme=dark] .quick-action,[data-ab-theme=dark] .welcome-date,[data-ab-theme=dark] .dashboard-welcome,[data-ab-theme=dark] .public-header,[data-ab-theme=dark] .site-footer,[data-ab-theme=dark] .auth-card,[data-ab-theme=dark] .foundation-card,[data-ab-theme=dark] .component-card,[data-ab-theme=dark] .error-card,[data-ab-theme=dark] .booking-card,[data-ab-theme=dark] .feature-grid article,[data-ab-theme=dark] .layout-card{background:#151c28;border-color:#293244;color:var(--ab-ink)}[data-ab-theme=dark] .booking-hero,[data-ab-theme=dark] .hero-foundation{background:radial-gradient(circle at 85% 12%,rgba(198,40,40,.19),transparent 30%),linear-gradient(130deg,#101722,#141b27)}[data-ab-theme=dark] .hero-copy p,[data-ab-theme=dark] .section-heading p,[data-ab-theme=dark] .feature-grid p,[data-ab-theme=dark] .navbar-brand small,[data-ab-theme=dark] .public-header .nav-link{color:#aab4c4}[data-ab-theme=dark] .icon-button,[data-ab-theme=dark] .palette-grid button,[data-ab-theme=dark] .deck-tabs button,[data-ab-theme=dark] .zoom-controls button{background:#151c28;border-color:#344055;color:#dbe5f3}[data-ab-theme=dark] .dropdown-menu{--bs-dropdown-bg:#151c28;--bs-dropdown-color:#e7edf7;--bs-dropdown-link-color:#e7edf7;--bs-dropdown-link-hover-bg:#222c3c;--bs-dropdown-border-color:#344055}[data-ab-theme=dark] .table{--bs-table-bg:transparent;--bs-table-color:#e7edf7;--bs-table-border-color:#344055}[data-ab-theme=dark] .text-muted{color:#9eabba!important}[data-ab-theme=dark] .modal-content{background:#151c28;color:#e7edf7;border-color:#344055}[data-ab-theme=dark] .form-control::placeholder{color:#6f7d91}
/* Keep theme icons outlined and visible even when Bootstrap or page SVG rules set a fill. */
.theme-toggle svg,.theme-toggle svg *,[data-ab-theme-toggle] svg,[data-ab-theme-toggle] svg *{fill:none!important;stroke:currentColor!important}
[data-ab-theme=dark] .theme-toggle,[data-ab-theme=dark] [data-ab-theme-toggle]{background:#1b2534!important;border-color:#526078!important;color:#f8fafc!important}
[data-ab-theme=dark] .theme-toggle:hover,[data-ab-theme=dark] [data-ab-theme-toggle]:hover{background:#263348!important;border-color:#718096!important}

/* Command 20 shared form fixes. Keep labels clear even before the enhancement script runs. */
.ab-floating-field>.form-control:focus~.form-label,
.ab-floating-field>.form-control:not(:placeholder-shown)~.form-label{
  top:.34rem;
  transform:none;
  font-size:.61rem;
  font-weight: bold;
  color:var(--ab-brand)
}
.amenity-chip-list{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.55rem
}
.amenity-chip-list>span{
  display:inline-flex;
  position:relative
}
.amenity-chip-list input[type="checkbox"]{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none
}
.amenity-chip-list label{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  margin:0;
  padding:.42rem .75rem;
  border:1px solid var(--ab-ui-border);
  border-radius:999px;
  background:var(--ab-field-bg);
  color:var(--ab-ink);
  font-size:.72rem;
  font-weight: bold;
  cursor:pointer;
  transition:border-color .15s ease,background-color .15s ease,color .15s ease,box-shadow .15s ease
}
.amenity-chip-list input[type="checkbox"]:checked+label{
  border-color:var(--ab-brand);
  background:var(--ab-brand);
  color:#fff
}
.amenity-chip-list input[type="checkbox"]:focus-visible+label{
  box-shadow:0 0 0 .2rem rgba(198,40,40,.18)
}
