/* Bridavo Platform v1.7.32 unified responsive web-app interface.
 * Loaded after the base component stylesheet so every authenticated, public
 * and embedded view shares one supported desktop, tablet and mobile system.
 */
:root{
  --bridavo-navy:#17233b;
  --bridavo-teal:#1f7a73;
  --bridavo-gold:#d2a84a;
  --bridavo-cloud:#f4f7f6;
  --bridavo-slate:#596579;
  --bridavo-ink:#0d151f;
  --ui-primary:var(--brand-button,var(--brand-primary,var(--bridavo-teal)));
  --ui-primary-text:var(--brand-button-text,#fff);
  --ui-secondary:var(--brand-secondary,var(--bridavo-navy));
  --ui-accent:var(--brand-accent,var(--bridavo-gold));
  --ui-page:var(--brand-page-bg,var(--bridavo-cloud));
  --ui-surface:#fff;
  --ui-surface-subtle:#f8faf9;
  --ui-surface-muted:#eef3f1;
  --ui-text:var(--bridavo-ink);
  --ui-muted:#647184;
  --ui-border:#dde5e2;
  --ui-border-strong:#cad6d2;
  --ui-success:#26734d;
  --ui-warning:#a96012;
  --ui-danger:#b23a48;
  --ui-info:#246a8d;
  --ui-radius-sm:.55rem;
  --ui-radius:.9rem;
  --ui-radius-lg:1.2rem;
  --ui-shadow-xs:0 1px 2px rgba(13,21,31,.04);
  --ui-shadow-sm:0 5px 18px rgba(13,21,31,.06);
  --ui-shadow:0 12px 34px rgba(13,21,31,.08);
  --ui-focus:0 0 0 .22rem color-mix(in srgb,var(--ui-primary) 25%,transparent);
  --ui-sidebar-width:17.5rem;
  --ui-content-max:100rem;
}

html{scroll-behavior:smooth;background:var(--ui-page)}
body{
  min-height:100vh;
  margin:0;
  background:var(--ui-page)!important;
  color:var(--ui-text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:.95rem;
  line-height:1.5;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
a{color:color-mix(in srgb,var(--ui-primary) 88%,#064e3b);text-underline-offset:.16em}
a:hover{color:color-mix(in srgb,var(--ui-primary) 72%,#000)}
img,svg,video,canvas{max-width:100%;height:auto}
code,kbd,pre,.font-monospace{font-variant-ligatures:none}

.bridavo-skip-link{
  position:fixed;left:1rem;top:-5rem;z-index:2000;padding:.7rem 1rem;
  border-radius:var(--ui-radius-sm);background:var(--bridavo-navy);color:#fff;
  font-weight:700;text-decoration:none;box-shadow:var(--ui-shadow);
}
.bridavo-skip-link:focus{top:1rem;color:#fff}

/* Shell */
.bridavo-header{
  position:sticky;top:0;z-index:1030;
  min-height:4rem;padding:.45rem 0!important;
  background:var(--brand-header-bg,var(--bridavo-navy))!important;
  color:var(--brand-header-text,#fff)!important;
  border:0!important;box-shadow:0 1px 0 rgba(13,21,31,.08),0 8px 24px rgba(13,21,31,.05);
}
.bridavo-header>.container-fluid{width:100%;max-width:none!important;margin-inline:0!important;padding-inline:clamp(.8rem,2vw,1.5rem)}
.bridavo-header .brand{min-width:0;color:inherit!important;font-size:1rem;font-weight:780;letter-spacing:-.015em}
.bridavo-header .brand-logo{height:2.6rem;max-width:11rem;object-fit:contain}
.bridavo-header .brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bridavo-header .text-muted{color:color-mix(in srgb,currentColor 70%,transparent)!important}
.bridavo-header .btn-outline-secondary{border-color:color-mix(in srgb,currentColor 35%,transparent);color:inherit;background:transparent}
.bridavo-header .btn-outline-secondary:hover{border-color:transparent;background:color-mix(in srgb,currentColor 13%,transparent);color:inherit}

.app-main-shell{max-width:var(--ui-content-max);margin-inline:auto;padding:1.25rem clamp(.75rem,2vw,1.5rem) 2rem!important}
.app-shell-row{display:flex;flex-wrap:nowrap;gap:1.25rem;margin:0!important}
.app-sidebar{
  flex:0 0 var(--ui-sidebar-width);width:var(--ui-sidebar-width);max-width:var(--ui-sidebar-width);
  min-height:calc(100vh - 7rem);max-height:calc(100vh - 5.5rem);overflow:auto;
  position:sticky;top:5.15rem;align-self:flex-start;padding:.75rem!important;
  border-radius:var(--ui-radius-lg)!important;background:#fff;border:1px solid var(--ui-border)!important;
  box-shadow:var(--ui-shadow-sm)!important;scrollbar-width:thin;
}
.app-content{flex:1 1 auto;min-width:0;max-width:calc(100% - var(--ui-sidebar-width) - 1.25rem);padding:0!important}
.app-page{width:100%;min-width:0;display:flex;flex-direction:column;gap:1rem}
.app-page>*{min-width:0}

.bridavo-ui-family-admin .app-sidebar{
  background:linear-gradient(180deg,var(--ui-secondary),color-mix(in srgb,var(--ui-secondary) 88%,#000))!important;
  color:#fff;border:0!important;box-shadow:0 16px 38px rgba(13,21,31,.18)!important;
}
.app-sidebar a,.app-sidebar .accordion-button{
  min-height:2.55rem;display:flex!important;align-items:center;gap:.7rem;
  padding:.58rem .68rem!important;margin:.08rem 0!important;border-radius:.7rem!important;
  font-size:.89rem;font-weight:650;line-height:1.2;text-decoration:none;transition:background .15s ease,color .15s ease;
}
.app-sidebar .nav-icon{
  display:grid;place-items:center;flex:0 0 1.85rem;width:1.85rem;height:1.85rem;
  border-radius:.55rem;background:rgba(89,101,121,.08);font-size:.98rem;line-height:1;
}
.bridavo-ui-family-admin .app-sidebar .nav-icon{background:rgba(255,255,255,.09)}
.bridavo-ui-family-admin .app-sidebar a,.bridavo-ui-family-admin .app-sidebar .accordion-button{color:rgba(255,255,255,.84)!important}
.bridavo-ui-family-admin .app-sidebar a:hover,.bridavo-ui-family-admin .app-sidebar a.active,
.bridavo-ui-family-admin .app-sidebar .accordion-button:not(.collapsed){background:rgba(255,255,255,.12)!important;color:#fff!important}
.app-sidebar a.active,.sidebar-dashboard-link.active{font-weight:780;background:color-mix(in srgb,var(--ui-primary) 10%,#fff)!important;color:var(--ui-primary)!important}
.bridavo-ui-family-admin .app-sidebar a.active{background:rgba(255,255,255,.16)!important;color:#fff!important}
.app-sidebar a.active::before{display:none!important}
.nav-accordion .accordion-item{background:transparent;border:0!important}
.nav-accordion .accordion-button{font-size:.72rem!important;text-transform:uppercase;letter-spacing:.06em;min-height:2.3rem!important;margin-top:.45rem!important}
.nav-accordion .accordion-button::after{width:.75rem;height:.75rem;background-size:.75rem}
.nav-accordion .accordion-body{padding:.2rem 0 .35rem!important}

/* Standard page header and action placement */
.app-page-header,
.app-page>.d-flex.justify-content-between.align-items-center.mb-3,
.app-page>.d-flex.justify-content-between.align-items-start.mb-3,
.app-page>.d-flex.flex-wrap.justify-content-between.align-items-center.gap-3.mb-4,
.app-page>.d-flex.flex-wrap.justify-content-between.align-items-start.gap-3.mb-4{
  margin:0!important;padding:.1rem 0 .35rem!important;border:0!important;background:transparent!important;
  box-shadow:none!important;min-height:auto;gap:1rem!important;
}
.app-page-header h1,.app-page-header h2,
.app-page>.d-flex.justify-content-between.align-items-center.mb-3 h1,
.app-page>.d-flex.flex-wrap.justify-content-between.align-items-center.gap-3.mb-4 h1{
  margin:0;color:var(--ui-text);font-weight:780;letter-spacing:-.035em;line-height:1.15;
}
.app-page-header p,.app-page-header .text-muted{max-width:56rem}
.app-actions,.action-buttons{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem}

/* Surfaces and cards */
.card,.app-card{
  overflow:visible;border:1px solid var(--ui-border)!important;border-radius:var(--ui-radius)!important;
  background:var(--ui-surface)!important;box-shadow:var(--ui-shadow-xs)!important;padding:0!important;
}
.card:hover{transform:none!important}
.card-header{
  min-height:3.25rem;padding:.85rem 1rem!important;display:flex;align-items:center;
  background:var(--ui-surface)!important;border-bottom:1px solid var(--ui-border)!important;
  border-radius:calc(var(--ui-radius) - 1px) calc(var(--ui-radius) - 1px) 0 0!important;
}
.card-header>strong,.card-header>.fw-semibold{font-weight:760;color:var(--ui-text)}
.card-body{padding:1rem!important}
.card-footer{padding:.8rem 1rem!important;background:var(--ui-surface-subtle)!important;border-top:1px solid var(--ui-border)!important}
.card>.list-group-flush:first-child .list-group-item:first-child{border-top-left-radius:var(--ui-radius);border-top-right-radius:var(--ui-radius)}
.card>.list-group-flush:last-child .list-group-item:last-child{border-bottom-left-radius:var(--ui-radius);border-bottom-right-radius:var(--ui-radius)}

/* Nested cards become restrained sections rather than cards inside cards. */
.card .card{
  border:1px solid var(--ui-border)!important;border-radius:.72rem!important;background:var(--ui-surface-subtle)!important;
  box-shadow:none!important;
}
.card .card .card-header{min-height:2.75rem;padding:.68rem .82rem!important;background:transparent!important}
.card .card .card-body{padding:.82rem!important}
.card.border-0,.card.shadow-none{box-shadow:none!important}
.app-subsection{padding:1rem;border:1px solid var(--ui-border);border-radius:.75rem;background:var(--ui-surface-subtle)}

/* Typography */
h1,h2,h3,h4,h5,h6{color:var(--ui-text);letter-spacing:-.018em}
h1,.h1{font-weight:790} h2,.h2{font-weight:770} h3,.h3{font-weight:750}
.h3{font-size:clamp(1.45rem,2.4vw,1.85rem)}
.h4{font-size:clamp(1.18rem,2vw,1.4rem)}
.h5{font-size:1.05rem;font-weight:740}
.text-muted{color:var(--ui-muted)!important}
.small,small{font-size:.84rem}
hr{border-color:var(--ui-border);opacity:1}

/* Forms */
.form-label{margin-bottom:.35rem;color:#334155;font-size:.87rem;font-weight:680}
.form-control,.form-select,.form-check-input,.input-group-text{
  border-color:var(--ui-border-strong);border-radius:var(--ui-radius-sm);box-shadow:none!important;
}
.form-control,.form-select{min-height:2.7rem;padding:.58rem .72rem;background-color:#fff;color:var(--ui-text)}
textarea.form-control{min-height:7rem}
.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ui-primary);box-shadow:var(--ui-focus)!important}
.form-control::placeholder{color:#98a2b1}
.form-text{color:var(--ui-muted);font-size:.8rem}
.input-group>.form-control:not(:first-child),.input-group>.form-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}
.input-group>.form-control:not(:last-child),.input-group>.form-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}
.form-check{min-height:1.5rem}
.form-check-input:checked{background-color:var(--ui-primary);border-color:var(--ui-primary)}
fieldset{min-width:0;padding:0;margin:0;border:0}
legend{font-size:1rem;font-weight:740}

/* Buttons */
.btn{
  min-height:2.42rem;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  padding:.48rem .78rem;border-radius:.62rem;font-weight:700;line-height:1.15;box-shadow:none!important;
  transition:background .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease!important;
}
.btn-sm{min-height:2.05rem;padding:.36rem .62rem;font-size:.82rem}
.btn-lg{min-height:3rem;padding:.68rem 1rem}
.btn-primary{background:var(--ui-primary)!important;border-color:var(--ui-primary)!important;color:var(--ui-primary-text)!important}
.btn-primary:hover,.btn-primary:focus{background:color-mix(in srgb,var(--ui-primary) 86%,#000)!important;border-color:color-mix(in srgb,var(--ui-primary) 86%,#000)!important}
.btn-outline-primary{background:#fff!important;border-color:color-mix(in srgb,var(--ui-primary) 65%,#fff)!important;color:var(--ui-primary)!important}
.btn-outline-primary:hover,.btn-outline-primary:focus{background:color-mix(in srgb,var(--ui-primary) 8%,#fff)!important;color:color-mix(in srgb,var(--ui-primary) 75%,#000)!important}
.btn-outline-secondary{background:#fff;border-color:var(--ui-border-strong);color:#465468}
.btn-outline-secondary:hover{background:var(--ui-surface-muted);border-color:var(--ui-border-strong);color:var(--ui-text)}
.btn-danger,.btn-outline-danger:hover{background:var(--ui-danger)!important;border-color:var(--ui-danger)!important;color:#fff!important}
.btn-warning{background:#f2c866!important;border-color:#e2b54c!important;color:#3d2b04!important}
.btn:focus-visible{outline:0;box-shadow:var(--ui-focus)!important}
.btn[disabled],.btn.disabled{opacity:.55}

/* Tables */
.table-responsive,.app-table-wrap{
  width:100%;max-width:100%;overflow:auto;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:#fff;
}
.card>.table-responsive,.card>.app-table-wrap{border:0;border-radius:0 0 var(--ui-radius) var(--ui-radius)}
.table,.app-table{margin:0!important;vertical-align:middle;color:var(--ui-text)}
.table>:not(caption)>*>*{padding:.72rem .78rem;border-bottom-color:var(--ui-border)}
.table thead th{
  background:var(--ui-surface-subtle)!important;color:#536174!important;font-size:.72rem;font-weight:780;
  letter-spacing:.045em;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid var(--ui-border-strong)!important;
}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr:hover{background:color-mix(in srgb,var(--ui-primary) 2.5%,#fff)!important}
.table td>.btn+.btn,.table td>form+.btn,.table td>.btn+form{margin-left:.25rem}
.table .text-end{font-variant-numeric:tabular-nums}
.bridavo-empty-row td,.table td[colspan]{padding:1.4rem!important;text-align:center;color:var(--ui-muted)!important}

/* Lists, tabs and pagination */
.list-group-item{padding:.78rem 1rem;border-color:var(--ui-border);background:transparent}
.list-group-item-action:hover{background:var(--ui-surface-subtle)}

.nav-tabs,.app-tabs{gap:.2rem;border-bottom:1px solid var(--ui-border)}
.nav-tabs .nav-link{border:0;border-bottom:2px solid transparent;border-radius:.55rem .55rem 0 0;color:var(--ui-muted);font-weight:680}
.nav-tabs .nav-link.active{border-bottom-color:var(--ui-primary);background:color-mix(in srgb,var(--ui-primary) 6%,#fff);color:var(--ui-primary)}
.pagination{gap:.25rem}.page-link{border-radius:.5rem!important;border-color:var(--ui-border);color:var(--ui-primary)}
.page-item.active .page-link{background:var(--ui-primary);border-color:var(--ui-primary)}

/* Alerts, badges and empty states */
.alert,.app-alert{border:1px solid transparent;border-radius:var(--ui-radius);padding:.8rem 1rem;box-shadow:none}
.alert-success{background:#edf8f2;border-color:#c9e9d8;color:#185438}
.alert-danger{background:#fdf0f2;border-color:#f1c9d0;color:#812737}
.alert-warning{background:#fff8e7;border-color:#f2dcaa;color:#68430b}
.alert-info{background:#eef7fb;border-color:#c9e2ef;color:#22566e}
.badge{padding:.36em .58em;border-radius:999px;font-size:.72rem;font-weight:760;letter-spacing:.005em}
.text-bg-primary,.bg-primary{background-color:var(--ui-primary)!important}
.text-bg-secondary,.bg-secondary{background-color:#68778b!important}
.text-bg-success,.bg-success{background-color:var(--ui-success)!important}
.text-bg-warning,.bg-warning{background-color:#d99a2b!important;color:#302000!important}
.text-bg-danger,.bg-danger{background-color:var(--ui-danger)!important}
.text-bg-info,.bg-info{background-color:var(--ui-info)!important}
.app-empty-state{padding:2rem 1rem;text-align:center;color:var(--ui-muted)}
.app-empty-state__icon{display:grid;place-items:center;width:3rem;height:3rem;margin:0 auto .75rem;border-radius:1rem;background:var(--ui-surface-muted);font-size:1.35rem}

/* Dashboard and KPI patterns */
.dashboard-welcome{
  margin:0!important;padding:1.25rem 1.4rem!important;border:1px solid var(--ui-border)!important;border-radius:var(--ui-radius-lg)!important;
  background:linear-gradient(135deg,#fff 0%,color-mix(in srgb,var(--ui-primary) 5%,#fff) 100%)!important;
  color:var(--ui-text)!important;box-shadow:var(--ui-shadow-sm)!important;
}
.dashboard-welcome::after{background:linear-gradient(135deg,color-mix(in srgb,var(--ui-primary) 12%,transparent),color-mix(in srgb,var(--ui-accent) 12%,transparent))!important}
.dashboard-welcome h1{color:var(--ui-text)!important;font-size:clamp(1.55rem,3vw,2.25rem)!important;font-weight:790!important}
.dashboard-welcome p{color:var(--ui-muted)!important}
.metric{min-height:7.25rem;display:flex!important;flex-direction:column;justify-content:space-between;text-decoration:none;color:inherit}
.metric .card-body,.metric:not(:has(.card-body)){padding:1rem!important}
.metric span{color:var(--ui-muted);font-size:.74rem;font-weight:760;text-transform:uppercase;letter-spacing:.05em}
.metric strong{color:var(--ui-text)!important;font-size:clamp(1.5rem,2.5vw,2.1rem);font-weight:790;letter-spacing:-.035em}
.customer-action-tile{
  min-height:6.25rem!important;padding:.9rem!important;border:1px solid var(--ui-border)!important;border-radius:var(--ui-radius)!important;
  background:#fff!important;color:var(--ui-text)!important;box-shadow:var(--ui-shadow-xs)!important;font-weight:720!important;
}
.customer-action-tile:hover{background:var(--ui-surface-subtle)!important;box-shadow:var(--ui-shadow-sm)!important;transform:none!important}
.customer-action-icon{width:2.55rem!important;height:2.55rem!important;background:color-mix(in srgb,var(--ui-primary) 9%,#fff)!important;color:var(--ui-primary);font-size:1.1rem!important}
.admin-mini-stat{display:flex;min-height:5.2rem;padding:.85rem;flex-direction:column;justify-content:space-between;border:1px solid var(--ui-border);border-radius:.7rem;background:var(--ui-surface-subtle);text-decoration:none;color:inherit}
.admin-mini-stat span{font-size:.76rem;color:var(--ui-muted);font-weight:680}.admin-mini-stat strong{font-size:1.5rem;color:var(--ui-text)}

/* Booking and staged workflows */
.booking-progress{padding:.75rem!important;border:1px solid var(--ui-border)!important;border-radius:var(--ui-radius)!important;background:#fff!important;box-shadow:var(--ui-shadow-xs)!important}
.booking-progress__number{background:var(--ui-surface-muted);color:var(--ui-muted)}
.booking-progress .active .booking-progress__number,.booking-progress__step.is-active .booking-progress__number{background:var(--ui-primary);color:var(--ui-primary-text)}
.booking-choice-card{min-height:10.5rem;cursor:pointer}
.booking-choice-card:hover{border-color:color-mix(in srgb,var(--ui-primary) 45%,var(--ui-border))!important;transform:none!important}
.booking-summary-card{position:sticky;top:5.2rem}
.sticky-action-bar{background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid var(--ui-border);box-shadow:0 -8px 24px rgba(13,21,31,.08)}

/* Auth and public areas */
.public-shell{background:var(--ui-page)!important}
.public-header{background:var(--brand-header-bg,#fff)!important;border-color:var(--ui-border)!important}
.public-header .container-fluid{max-width:var(--ui-content-max);margin:auto}
.public-brand{color:var(--brand-header-text,var(--ui-text))!important;font-weight:780}
.public-brand .brand-logo{height:2.75rem;max-width:11rem;object-fit:contain}
.auth-page{min-height:calc(100vh - 8rem);padding:1rem 0}
.auth-split{max-width:76rem;gap:1.25rem}
.auth-hero{min-height:34rem;border-radius:var(--ui-radius-lg);background:linear-gradient(135deg,var(--ui-secondary),var(--ui-primary))!important;box-shadow:var(--ui-shadow)}
.auth-hero h1{font-weight:790;letter-spacing:-.04em}.auth-hero p{max-width:38rem}
.auth-card{border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-sm);padding:1.5rem}
.bridavo-footer{margin-top:auto;background:#fff!important;border-top:1px solid var(--ui-border)!important}
.bridavo-footer a{color:var(--ui-muted)}
.bridavo-footer__powered-by{display:flex;align-items:center;justify-content:center;min-height:2rem}
.bridavo-footer__powered-by img{display:block;width:clamp(10rem,16vw,12.5rem);max-width:70vw;height:auto;object-fit:contain;background:transparent}
.bridavo-footer__text{line-height:1.45}

/* Errors */
.app-error{max-width:46rem;margin:clamp(1rem,6vh,4rem) auto;padding:clamp(1.25rem,3vw,2.25rem);text-align:center}
.app-error__code{display:inline-flex;margin-bottom:.85rem;padding:.35rem .65rem;border-radius:999px;background:var(--ui-surface-muted);color:var(--ui-muted);font-weight:780;letter-spacing:.05em}
.app-error__icon{display:grid;place-items:center;width:4.4rem;height:4.4rem;margin:0 auto 1rem;border-radius:1.35rem;background:color-mix(in srgb,var(--ui-primary) 9%,#fff);color:var(--ui-primary);font-size:1.8rem}

/* Mobile tabbars */
.customer-mobile-tabbar,.supervisor-mobile-tabbar,.instructor-mobile-tabbar{
  position:fixed;left:.5rem;right:.5rem;bottom:.5rem;z-index:1040;display:flex;align-items:stretch;
  min-height:4.25rem;padding:.35rem;border:1px solid var(--ui-border);border-radius:1rem;background:rgba(255,255,255,.96);
  box-shadow:0 12px 36px rgba(13,21,31,.18);backdrop-filter:blur(14px);overflow-x:auto;scrollbar-width:none;
}
.customer-mobile-tabbar a,.supervisor-mobile-tabbar a,.instructor-mobile-tabbar a{
  min-width:4.4rem;flex:1 0 4.4rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;
  padding:.3rem .25rem;border-radius:.7rem;color:var(--ui-muted);font-size:.66rem;font-weight:690;text-decoration:none;text-align:center;
}
.customer-mobile-tabbar a.active,.supervisor-mobile-tabbar a.active,.instructor-mobile-tabbar a.active{background:color-mix(in srgb,var(--ui-primary) 9%,#fff);color:var(--ui-primary)}
.customer-mobile-tabbar__icon,.supervisor-mobile-tabbar__icon,.instructor-mobile-tabbar__icon{font-size:1rem}
.has-instructor-mobile-tabbar,.has-supervisor-mobile-tabbar,.bridavo-ui-family-customer.bridavo-ui{padding-bottom:4.9rem}

/* Responsive */
@media (max-width:991.98px){
  :root{--ui-sidebar-width:100%}
  .app-main-shell{padding:.8rem .7rem 1.5rem!important}
  .app-shell-row{display:block}
  .app-content{max-width:100%;width:100%}
  .app-sidebar{
    position:fixed;z-index:1045;top:4.6rem;left:.65rem;right:.65rem;width:auto;max-width:none;max-height:calc(100vh - 5.4rem);
    min-height:0;margin:0;border-radius:var(--ui-radius-lg)!important;box-shadow:0 18px 50px rgba(13,21,31,.22)!important;
  }
  .app-sidebar:not(.show){display:none!important}
  .app-sidebar.show{display:block!important}
  .app-page{gap:.8rem}
  .app-page-header{align-items:flex-start!important;flex-direction:column}
  .app-page-header .app-actions,.app-page-header>.d-flex{width:100%;justify-content:flex-start}
  .booking-summary-card{position:static}
  .card-body{padding:.9rem!important}.card-header{padding:.78rem .9rem!important}
  .action-buttons{justify-content:flex-start}
}

@media (max-width:767.98px){
  body{font-size:.93rem}
  .bridavo-header{min-height:3.75rem}
  .bridavo-header .brand-logo{height:2.25rem}
  .bridavo-header .brand span{max-width:52vw}
  .btn,.form-control,.form-select{min-height:2.75rem}
  .row{--bs-gutter-x:1rem}
  .metric{min-height:6.4rem}
  .customer-action-tile{min-height:5.5rem!important}
  .table-responsive,.app-table-wrap{border:0;background:transparent;overflow:visible}
  table.bridavo-responsive-table,table.app-table.bridavo-responsive-table{display:block;background:transparent}
  table.bridavo-responsive-table thead{display:none}
  table.bridavo-responsive-table tbody{display:grid;gap:.7rem}
  table.bridavo-responsive-table tr{
    display:block;margin:0!important;padding:.2rem .85rem;border:1px solid var(--ui-border)!important;
    border-radius:var(--ui-radius)!important;background:#fff;box-shadow:var(--ui-shadow-xs)!important;
  }
  table.bridavo-responsive-table tr.bridavo-empty-row{padding:0}
  table.bridavo-responsive-table td{
    display:grid;grid-template-columns:minmax(7.2rem,38%) minmax(0,1fr);gap:.65rem;align-items:start;
    width:100%!important;min-height:2.45rem;padding:.58rem 0!important;border-bottom:1px solid var(--ui-border)!important;
    text-align:left!important;white-space:normal!important;overflow-wrap:anywhere;
  }
  table.bridavo-responsive-table td:last-child{border-bottom:0!important}
  table.bridavo-responsive-table td::before{content:attr(data-label);color:var(--ui-muted);font-size:.72rem;font-weight:760;text-transform:uppercase;letter-spacing:.035em}
  table.bridavo-responsive-table td[colspan]{display:block;text-align:center!important;padding:1.25rem!important;border:0!important}
  table.bridavo-responsive-table td[colspan]::before{display:none}
  table.bridavo-responsive-table td .action-buttons,table.bridavo-responsive-table td.text-end{justify-content:flex-start!important}
  .auth-split{display:block}.auth-hero{min-height:auto;margin-bottom:.8rem;padding:1.2rem}.auth-panel{display:block}.auth-card{padding:1.1rem}
}

@media (max-width:575.98px){
  .app-main-shell{padding-inline:.55rem!important}
  .card,.app-card{border-radius:.78rem!important}
  .card-header{border-radius:.77rem .77rem 0 0!important}
  .app-page-header h1{font-size:1.45rem}
  .app-page-header .btn{flex:1 1 auto}
  .dashboard-welcome{padding:1rem!important}
  .customer-action-tile{padding:.7rem!important}
  table.bridavo-responsive-table td{grid-template-columns:minmax(6.3rem,35%) minmax(0,1fr)}
}

/* Bootstrap display utilities use lower specificity than the shared icon-button rule. */
@media (min-width:1200px){
  .app-nav-toggle.d-xl-none{display:none!important;}
}

@media print{
  .bridavo-header,.app-sidebar,.customer-mobile-tabbar,.supervisor-mobile-tabbar,.instructor-mobile-tabbar,.bridavo-footer,.btn,.app-actions{display:none!important}
  body,.app-main-shell{background:#fff!important;padding:0!important}
  .app-content{max-width:100%!important}.card{box-shadow:none!important;break-inside:avoid}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Compatibility for older views that place content directly inside a card. */
.card:not(:has(> .card-body,> .card-header,> .card-footer,> .table-responsive,> .app-table-wrap,> .table,> .list-group)){
  padding:1rem!important;
}
form.card:not(:has(> .card-body)){padding:1rem!important}
.card.p-3{padding:1rem!important}.card.p-4{padding:1.5rem!important}
.card.table-responsive,.card.app-table-wrap{padding:0!important}
@media (min-width:768px){.card.p-md-4{padding:1.5rem!important}}

/* v1.7.9 Settings Console */
.settings-console{align-items:flex-start}.settings-nav{position:sticky;top:1rem;display:flex;flex-direction:column;gap:.35rem}.settings-nav-link{display:grid;grid-template-columns:2rem 1fr;gap:.65rem;padding:.75rem;border-radius:var(--bridavo-radius-md,14px);color:var(--bridavo-ink,#0d151f);text-decoration:none;border:1px solid transparent}.settings-nav-link:hover{background:var(--bridavo-cloud,#f4f7f6);color:var(--bridavo-navy,#17233b)}.settings-nav-link.active{background:color-mix(in srgb,var(--bridavo-teal,#1f7a73) 12%,white);border-color:color-mix(in srgb,var(--bridavo-teal,#1f7a73) 30%,white);color:var(--bridavo-navy,#17233b)}.settings-nav-icon{font-size:1.15rem;line-height:1.3}.settings-nav-link strong,.settings-nav-link small{display:block}.settings-nav-link small{margin-top:.15rem;color:var(--bs-secondary-color);font-size:.77rem;line-height:1.25}.settings-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.settings-summary-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.1rem;border:1px solid var(--bs-border-color);border-radius:var(--bridavo-radius-lg,22px);background:#fff}.settings-summary-icon{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--bridavo-cloud,#f4f7f6);font-size:1.25rem}.settings-summary-card span,.settings-summary-card strong{display:block}.settings-summary-card>div>span{color:var(--bs-secondary-color);font-size:.85rem}.settings-summary-card>div>strong{margin-top:.15rem;color:var(--bridavo-navy,#17233b);font-size:1.1rem}.settings-section{border:1px solid var(--bs-border-color);border-radius:var(--bridavo-radius-lg,22px);background:#fff;padding:1.25rem}.settings-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.settings-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem}.settings-area-card{display:grid;grid-template-columns:2.5rem 1fr auto;align-items:center;gap:.75rem;padding:.9rem;border:1px solid var(--bs-border-color);border-radius:var(--bridavo-radius-md,14px);text-decoration:none;color:var(--bridavo-ink,#0d151f)}.settings-area-card:hover{border-color:color-mix(in srgb,var(--bridavo-teal,#1f7a73) 45%,white);background:var(--bridavo-cloud,#f4f7f6)}.settings-area-card strong,.settings-area-card small{display:block}.settings-area-card small{margin-top:.15rem;color:var(--bs-secondary-color);font-size:.8rem}.settings-area-icon{font-size:1.25rem}.settings-area-arrow{font-size:1.65rem;color:var(--bridavo-teal,#1f7a73)}.settings-integration-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.settings-integration-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem .9rem;border:1px solid var(--bs-border-color);border-radius:var(--bridavo-radius-md,14px);text-decoration:none;color:inherit}.settings-integration-row small{display:block;color:var(--bs-secondary-color)}.settings-integration-row.is-disabled{opacity:.72}.settings-heading-icon{font-size:1.35rem}.settings-form{position:relative}.settings-field-list{display:flex;flex-direction:column;border:1px solid var(--bs-border-color);border-radius:var(--bridavo-radius-lg,22px);background:#fff;overflow:hidden}.settings-field{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,42%);gap:1.5rem;padding:1.15rem 1.25rem;border-bottom:1px solid var(--bs-border-color)}.settings-field:last-child{border-bottom:0}.settings-field-copy{min-width:0}.settings-field-control{min-width:0}.settings-technical{font-size:.78rem;color:var(--bs-secondary-color)}.settings-technical summary{cursor:pointer}.secret-setting-status{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.settings-save-bar{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;justify-content:flex-end;gap:1rem;margin-top:1rem;padding:.8rem 1rem;border:1px solid var(--bs-border-color);border-radius:var(--bridavo-radius-md,14px);background:color-mix(in srgb,#fff 94%,transparent);backdrop-filter:blur(10px);box-shadow:0 -.25rem 1rem rgba(13,21,31,.06)}.settings-unsaved-indicator{color:var(--bridavo-warning,#b36a17);font-weight:600}.settings-empty-state{border:1px dashed var(--bs-border-color);border-radius:var(--bridavo-radius-lg,22px);background:#fff;padding:2rem;text-align:center}

/* v1.7.9 Facility blockouts */
.facility-blockouts-card{scroll-margin-top:1rem}.facility-blockout-form{padding:.25rem}.facility-selection-fieldset{border:1px solid var(--bs-border-color);border-radius:var(--bridavo-radius-md,14px);padding:.8rem 1rem}.facility-checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.facility-checkbox{margin:0;padding:.55rem .65rem .55rem 2rem;border:1px solid var(--bs-border-color);border-radius:.65rem}.conflict-acknowledgement{padding:1rem 1rem 1rem 2.25rem;border:1px solid color-mix(in srgb,var(--bridavo-warning,#b36a17) 50%,white);border-radius:var(--bridavo-radius-md,14px);background:color-mix(in srgb,var(--bridavo-warning,#b36a17) 8%,white)}.facility-blockout-list{display:flex;flex-direction:column;gap:.65rem}.facility-blockout-row{display:grid;grid-template-columns:9rem 1fr auto;align-items:center;gap:1rem;padding:.85rem 0;border-top:1px solid var(--bs-border-color)}.facility-blockout-row:first-child{border-top:0}.facility-blockout-date strong,.facility-blockout-date span{display:block}.facility-blockout-date span{color:var(--bs-secondary-color);font-size:.85rem}.facility-blockout-details{min-width:0}

@media (max-width:991.98px){.settings-overview-grid{grid-template-columns:1fr}.settings-card-grid{grid-template-columns:1fr}.settings-field{grid-template-columns:1fr;gap:.75rem}.settings-save-bar{bottom:calc(env(safe-area-inset-bottom,0px) + .5rem)}.facility-checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.facility-blockout-row{grid-template-columns:1fr auto}.facility-blockout-date{grid-column:1/2}}
@media (max-width:575.98px){.settings-page-header{display:block!important}.settings-page-header>div:last-child{margin-top:.75rem;justify-content:flex-start!important}.settings-section{padding:1rem}.settings-field{padding:1rem}.settings-save-bar{justify-content:space-between}.facility-checkbox-grid{grid-template-columns:1fr}.facility-blockout-row{grid-template-columns:1fr}.facility-blockout-row form{justify-self:start}.facility-conflict-alert .table-responsive{margin-inline:-.5rem}}


/* v1.7.10 Events terminology and cross-platform alignment */
.app-page-header{align-items:flex-start!important}
.app-page-header>div:first-child{min-width:0;flex:1 1 20rem}
.app-page-header>.btn,.app-page-header>.action-buttons,.app-page-header>div:last-child{flex:0 0 auto}
.table-actions,.bridavo-table-actions-cell{white-space:nowrap}
@media (max-width:767.98px){
  table.bridavo-responsive-table td.bridavo-table-actions-cell,
  table.bridavo-responsive-table td[data-label="Actions"]{
    display:flex!important;align-items:center;justify-content:flex-end!important;gap:.5rem;
    min-height:auto;padding:.7rem 0!important;text-align:right!important;
  }
  table.bridavo-responsive-table td.bridavo-table-actions-cell::before,
  table.bridavo-responsive-table td[data-label="Actions"]::before{display:none!important}
  table.bridavo-responsive-table td.bridavo-table-actions-cell .action-buttons,
  table.bridavo-responsive-table td[data-label="Actions"] .action-buttons,
  table.bridavo-responsive-table td.bridavo-table-actions-cell form,
  table.bridavo-responsive-table td[data-label="Actions"] form{margin:0;justify-content:flex-end!important}
  table.bridavo-responsive-table td.bridavo-table-actions-cell .btn,
  table.bridavo-responsive-table td[data-label="Actions"] .btn{width:auto;min-width:0}
}
@media (max-width:575.98px){
  .app-page-header{display:grid!important;grid-template-columns:1fr;gap:.75rem}
  .app-page-header>.btn,.app-page-header>.action-buttons,.app-page-header>div:last-child{justify-self:stretch;width:100%}
  .app-page-header>.action-buttons,.app-page-header>div:last-child{display:flex;flex-wrap:wrap}
}


/* v1.7.11 Event type visual controls */
.event-icon-input-group .event-icon-current{min-width:3rem;justify-content:center;font-size:1.2rem;color:var(--bridavo-navy,#17233b);background:var(--bridavo-cloud,#f4f7f6)}
.event-colour-input-group .form-control-color{width:2.55rem;height:2.35rem;padding:.15rem;cursor:pointer}
.event-colour-swatches{display:flex;flex-wrap:wrap;gap:.45rem}
.event-colour-swatch{width:1.75rem;height:1.75rem;border-radius:50%;border:2px solid #fff;background:var(--swatch);box-shadow:0 0 0 1px var(--bs-border-color);transition:transform .15s ease,box-shadow .15s ease}
.event-colour-swatch:hover,.event-colour-swatch:focus-visible{transform:scale(1.1);box-shadow:0 0 0 3px color-mix(in srgb,var(--swatch) 35%,white)}
.event-type-preview{display:flex;align-items:center;gap:.85rem;padding:.9rem 1rem;border:1px solid color-mix(in srgb,var(--event-type-colour) 30%,white);border-radius:var(--bridavo-radius-md,14px);background:color-mix(in srgb,var(--event-type-colour) 8%,white)}
.event-type-preview-icon,.event-type-list-icon{display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--event-type-colour);color:#fff}
.event-type-preview-icon{width:3rem;height:3rem;font-size:1.35rem}.event-type-list-icon{width:2.4rem;height:2.4rem;font-size:1.05rem}
.event-icon-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}
.event-icon-option{display:flex;align-items:center;gap:.65rem;min-height:3.5rem;padding:.7rem .8rem;border:1px solid var(--bs-border-color);border-radius:var(--bridavo-radius-md,14px);background:#fff;color:var(--bridavo-ink,#0d151f);text-align:left}
.event-icon-option i{display:grid;place-items:center;width:2rem;height:2rem;border-radius:.55rem;background:var(--bridavo-cloud,#f4f7f6);color:var(--bridavo-teal,#1f7a73);font-size:1.15rem}
.event-icon-option:hover,.event-icon-option:focus-visible{border-color:var(--bridavo-teal,#1f7a73);background:color-mix(in srgb,var(--bridavo-teal,#1f7a73) 6%,white)}
@media(max-width:767.98px){.event-icon-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.event-icon-picker-grid{grid-template-columns:1fr}}

/* Bridavo v1.7.12: unified instructor management record headers. */
.instructor-management-header{border-bottom:1px solid var(--bridavo-border,#dfe6e5);padding-bottom:1rem}
.instructor-management-actions{max-width:100%}
.instructor-management-actions .btn{white-space:nowrap}
@media (max-width:767.98px){
  .instructor-management-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .instructor-management-actions .btn{width:100%;white-space:normal}
}
@media (max-width:420px){
  .instructor-management-actions{grid-template-columns:1fr}
}


/* Bridavo v1.7.13: aligned header, finance tabs and responsive form actions. */
.bridavo-header .brand{flex:0 1 auto;min-width:0;white-space:nowrap}
.bridavo-header .brand span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bridavo-header .brand-logo{flex:0 0 auto}
.bridavo-header-actions{flex:0 0 auto;min-width:max-content;margin-left:auto!important}
.finance-section-nav .btn{min-width:7.5rem;white-space:nowrap}
.availability-filter-form{min-width:0}
.availability-filter-form>div{min-width:0;flex:1 1 10.5rem}
.availability-filter-form .btn{flex:0 0 auto;white-space:nowrap}
@media (min-width:576px){
  .app-inline-action-row{display:flex!important;flex-wrap:nowrap!important;align-items:flex-end!important}
  .app-inline-action-row>[class*="col-"]{flex:1 1 0!important;width:auto!important;max-width:none!important;min-width:0!important}
  .app-inline-action-row>.app-inline-action-grow{flex:1 1 auto!important}
  .app-inline-action-row>.app-inline-action-button{flex:0 0 auto!important;width:auto!important}
  .app-inline-action-row>.app-inline-action-button .btn{min-width:8rem;white-space:nowrap!important}
}
@media (max-width:575.98px){
  .finance-section-nav{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))}
  .finance-section-nav .btn{width:100%;min-width:0}
  .availability-filter-form{width:100%;flex-direction:column;align-items:stretch!important;margin-left:0!important}
  .availability-filter-form>div,.availability-filter-form .btn{width:100%}
  .bridavo-header .brand span{max-width:38vw}
}

/* Bridavo v1.7.14: application-wide page heading consistency. */
body.bridavo-ui .app-page > .app-page-header,
body.bridavo-ui .app-page > .d-flex.justify-content-between.align-items-center.mb-3,
body.bridavo-ui .app-page > .d-flex.justify-content-between.align-items-start.mb-3,
body.bridavo-ui .app-page > .d-flex.flex-wrap.justify-content-between.align-items-center.mb-3,
body.bridavo-ui .app-page > .d-flex.flex-wrap.justify-content-between.align-items-start.mb-3,
body.bridavo-ui .app-page > .d-flex.flex-wrap.justify-content-between.align-items-center.mb-4,
body.bridavo-ui .app-page > .d-flex.flex-wrap.justify-content-between.align-items-start.mb-4{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:space-between!important;
  align-items:flex-start!important;
  gap:.75rem!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
body.bridavo-ui .app-page h1.h3,
body.bridavo-ui .app-page > h1:first-child,
body.bridavo-ui .app-page > .app-page-header h1,
body.bridavo-ui .app-page > .d-flex.justify-content-between h1{
  margin:0!important;
  font-size:1.75rem!important;
  font-weight:780!important;
  line-height:1.15!important;
  letter-spacing:-.035em!important;
  color:var(--ui-text)!important;
}
body.bridavo-ui .app-page > .app-page-header p,
body.bridavo-ui .app-page > .d-flex.justify-content-between p{
  margin-top:.2rem;
  margin-bottom:0!important;
  color:var(--ui-muted)!important;
}
body.bridavo-ui .app-page-header > .btn,
body.bridavo-ui .app-page-header > .action-buttons,
body.bridavo-ui .app-page-header > nav,
body.bridavo-ui .app-page-header > div:last-child:not(:first-child){
  flex:0 0 auto;
}
body.bridavo-ui .finance-section-nav{
  margin:0!important;
  align-self:flex-start;
}
@media (max-width:575.98px){
  body.bridavo-ui .app-page h1.h3,
  body.bridavo-ui .app-page > h1:first-child,
  body.bridavo-ui .app-page > .app-page-header h1,
  body.bridavo-ui .app-page > .d-flex.justify-content-between h1{font-size:1.45rem!important}
  body.bridavo-ui .app-page-header > .btn,
  body.bridavo-ui .app-page-header > .action-buttons,
  body.bridavo-ui .app-page-header > nav,
  body.bridavo-ui .app-page-header > div:last-child:not(:first-child){width:100%}
  body.bridavo-ui .finance-section-nav{justify-content:flex-start!important}
}

/* Bridavo v1.7.31: public Facility Hire, embed and device resilience. */
html,body{min-width:0;max-width:100%;}
body{min-height:100vh;min-height:100dvh;overflow-x:hidden;}
img,svg,video,canvas{max-width:100%;height:auto;}
.app-page,.app-content,.container,.container-fluid,.row>*{min-width:0;}
.app-page :is(p,a,span,td,th,label,.form-text,.alert,.card-title){overflow-wrap:anywhere;}

.facility-public-shell{display:grid;gap:1rem;}
.facility-public-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;align-items:end;}
.facility-public-filters .form-control,.facility-public-filters .form-select{min-height:2.8rem;}
.facility-slot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:.75rem;}
.facility-slot-card{display:flex;flex-direction:column;gap:.5rem;min-width:0;padding:0;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);box-shadow:var(--ui-shadow-xs);overflow:hidden;}
.facility-slot-card .card-body{width:100%;min-width:0;}
.facility-slot-card .btn{margin-top:auto;max-width:100%;white-space:normal;}
.facility-slot-time{font-size:1.05rem;font-weight:780;color:var(--ui-text);}
.facility-slot-meta{color:var(--ui-muted);font-size:.9rem;}
.facility-public-empty{padding:1.25rem;border:1px dashed var(--ui-border-strong);border-radius:var(--ui-radius);background:var(--ui-surface-subtle);color:var(--ui-muted);text-align:center;}
.bridavo-embed-shell{min-height:100vh;min-height:100dvh;margin:0;background:transparent;}
.bridavo-embed-shell .facility-public-shell{padding:.25rem;}
.facility-public-availability--embedded{min-height:100%;border-radius:.85rem;color:var(--ui-text);background:var(--ui-page);}
.facility-public-availability--embedded[data-theme=dark]{
  color-scheme:dark;--ui-page:#0f1b2a;--ui-surface:#17263a;--ui-surface-subtle:#1c2f47;--ui-surface-muted:#233b58;
  --ui-text:#f5f8fb;--ui-muted:#bdc9d8;--ui-border:#354b65;--ui-border-strong:#4a617c;
  --ui-shadow-xs:0 1px 2px rgba(0,0,0,.28);--ui-shadow-sm:0 7px 22px rgba(0,0,0,.25);
}
.facility-public-availability--embedded[data-theme=dark] :is(.card,.form-control,.form-select,.input-group-text){background-color:var(--ui-surface)!important;color:var(--ui-text)!important;border-color:var(--ui-border-strong)!important;}
.facility-public-availability--embedded[data-theme=dark] :is(.form-label,h1,h2,h3,h4,h5,h6,.facility-slot-time){color:var(--ui-text)!important;}
.facility-public-availability--embedded[data-theme=dark] .text-muted{color:var(--ui-muted)!important;}
.facility-public-availability--embedded[data-theme=dark] .btn-outline-primary{background:transparent!important;}
@media (prefers-color-scheme:dark){
  .facility-public-availability--embedded[data-theme=auto]{
    color-scheme:dark;--ui-page:#0f1b2a;--ui-surface:#17263a;--ui-surface-subtle:#1c2f47;--ui-surface-muted:#233b58;
    --ui-text:#f5f8fb;--ui-muted:#bdc9d8;--ui-border:#354b65;--ui-border-strong:#4a617c;
    --ui-shadow-xs:0 1px 2px rgba(0,0,0,.28);--ui-shadow-sm:0 7px 22px rgba(0,0,0,.25);
  }
  .facility-public-availability--embedded[data-theme=auto] :is(.card,.form-control,.form-select,.input-group-text){background-color:var(--ui-surface)!important;color:var(--ui-text)!important;border-color:var(--ui-border-strong)!important;}
  .facility-public-availability--embedded[data-theme=auto] :is(.form-label,h1,h2,h3,h4,h5,h6,.facility-slot-time){color:var(--ui-text)!important;}
  .facility-public-availability--embedded[data-theme=auto] .text-muted{color:var(--ui-muted)!important;}
}
.bridavo-widget-code{display:block;width:100%;min-height:9rem;white-space:pre-wrap;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;}

@supports(padding:max(0px)){
  .app-shell,.public-shell,.bridavo-embed-shell{
    padding-left:max(0px,env(safe-area-inset-left));
    padding-right:max(0px,env(safe-area-inset-right));
  }
  .mobile-bottom-nav{padding-bottom:max(.4rem,env(safe-area-inset-bottom));}
}

@media(max-width:767.98px){
  .facility-public-filters{grid-template-columns:1fr;}
  .facility-public-filters .btn{width:100%;}
  .facility-slot-grid{grid-template-columns:1fr;}
}
@media(max-width:575.98px){
  input:not([type="checkbox"]):not([type="radio"]),select,textarea{font-size:16px!important;}
  .app-page,.public-content{padding-left:.75rem!important;padding-right:.75rem!important;}
  .btn-group-responsive{display:grid!important;grid-template-columns:1fr;width:100%;}
  .btn-group-responsive>.btn{width:100%;border-radius:.65rem!important;}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
}


/* Bridavo v1.7.32: final UI, tablet/mobile web-app shell and fallback removal. */
:root{
  --app-topbar-height:4rem;
  --app-bottom-nav-height:4.75rem;
  --app-drawer-width:min(88vw,23rem);
  --app-safe-left:env(safe-area-inset-left,0px);
  --app-safe-right:env(safe-area-inset-right,0px);
  --app-safe-top:env(safe-area-inset-top,0px);
  --app-safe-bottom:env(safe-area-inset-bottom,0px);
  --app-topbar-total:calc(var(--app-topbar-height) + var(--app-safe-top));
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body.bridavo-app-shell{
  min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;
  overflow-x:clip;overscroll-behavior-x:none;
}
body.bridavo-app-shell.nav-drawer-open{overflow:hidden;}
body.bridavo-app-shell .app-main-shell{flex:1 0 auto;width:100%;max-width:none!important;}
body.bridavo-app-shell .app-footer{flex:0 0 auto;margin-top:auto;}
body.bridavo-app-shell.has-mobile-tabbar{padding-bottom:0!important;}
body.bridavo-app-shell .app-page{padding-inline:0!important;}

/* Compact application top bar. */
.app-topbar{height:var(--app-topbar-total);min-height:var(--app-topbar-total)!important;padding:0!important;}
.app-topbar__inner{height:100%;display:flex;align-items:center;gap:.7rem;padding-top:var(--app-safe-top)!important;padding-left:max(.75rem,var(--app-safe-left))!important;padding-right:max(.75rem,var(--app-safe-right))!important;}
.app-brand{display:flex;align-items:center;gap:.65rem;min-width:0;max-width:min(32rem,55vw);text-decoration:none;}
.app-brand .brand-logo{flex:0 0 auto;height:2.35rem!important;max-width:10.5rem!important;}
.app-brand .brand-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:780;}
.app-icon-button{display:inline-grid!important;place-items:center;width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem;padding:0!important;border-radius:.82rem!important;box-shadow:none!important;}
.bridavo-ui-family-admin .app-nav-toggle{color:#fff!important;border-color:rgba(255,255,255,.28)!important;background:rgba(255,255,255,.08)!important;}
.bridavo-ui-family-admin .app-nav-toggle:hover,.bridavo-ui-family-admin .app-nav-toggle:focus-visible{background:rgba(255,255,255,.16)!important;}
.app-topbar__desktop-actions{min-width:0;}
.app-topbar__mobile-actions{flex:0 0 auto;}
.app-user-menu-toggle{display:flex!important;align-items:center;gap:.35rem;min-height:2.75rem;padding:.18rem .38rem!important;border:1px solid color-mix(in srgb,currentColor 28%,transparent)!important;border-radius:999px!important;color:inherit!important;background:color-mix(in srgb,currentColor 8%,transparent)!important;box-shadow:none!important;}
.app-user-avatar{display:grid;place-items:center;flex:0 0 2.15rem;width:2.15rem;height:2.15rem;border-radius:50%;background:var(--ui-primary);color:var(--ui-primary-text);font-size:.78rem;font-weight:850;letter-spacing:.03em;}
.bridavo-ui-family-admin .app-user-avatar{background:rgba(255,255,255,.18);color:#fff;}
.app-user-menu-chevron{font-size:.65rem;margin-right:.12rem;opacity:.72;}
.app-user-menu{width:min(20rem,calc(100vw - 1rem));padding:.45rem;border:1px solid var(--ui-border);border-radius:1rem;}
.app-user-menu__identity{display:flex;flex-direction:column;min-width:0;}
.app-user-menu__identity strong,.app-user-menu__identity span{overflow-wrap:anywhere;}
.app-user-menu__identity span{font-size:.8rem;color:var(--ui-muted);}
.app-user-menu .dropdown-item{display:flex;align-items:center;gap:.7rem;min-height:2.75rem;border-radius:.7rem;white-space:normal;}
.app-user-menu .dropdown-item svg,.app-user-menu .dropdown-item i{flex:0 0 1.1rem;width:1.1rem;}
.app-impersonation-banner{position:sticky;top:var(--app-topbar-total);z-index:1025;}

/* Persistent desktop application shell starts at 1200px. Tablet layouts use the drawer. */
@media (min-width:1200px){
  body.bridavo-app-shell .app-main-shell{padding:1rem 1.25rem 1.5rem!important;}
  body.bridavo-app-shell .app-shell-row{
    display:grid!important;grid-template-columns:var(--ui-sidebar-width) minmax(0,1fr)!important;
    align-items:start!important;gap:1.15rem!important;margin:0!important;min-height:calc(100dvh - var(--app-topbar-total) - 4.5rem)!important;
  }
  body.bridavo-app-shell .app-sidebar{
    display:block!important;position:sticky!important;top:calc(var(--app-topbar-total) + 1rem)!important;
    grid-column:1!important;width:var(--ui-sidebar-width)!important;max-width:var(--ui-sidebar-width)!important;
    height:calc(100dvh - var(--app-topbar-total) - 2rem)!important;min-height:0!important;max-height:none!important;
    overflow-x:hidden!important;overflow-y:auto!important;align-self:start!important;
  }
  body.bridavo-app-shell .app-content{grid-column:2!important;width:100%!important;max-width:none!important;min-width:0!important;}
}

/* Tablet and mobile navigation drawer. */
.app-drawer-header,.app-drawer-account{display:none;}
.app-nav-backdrop{border:0;margin:0;padding:0;background:rgba(8,17,29,.54);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);}
@media (max-width:1199.98px){
  body.bridavo-app-shell .app-main-shell{padding:.85rem max(.7rem,var(--app-safe-right)) calc(1.25rem + var(--app-safe-bottom)) max(.7rem,var(--app-safe-left))!important;}
  body.bridavo-app-shell .app-shell-row{display:block!important;margin:0!important;min-height:0!important;}
  body.bridavo-app-shell .app-content{width:100%!important;max-width:none!important;min-width:0!important;overflow:visible!important;}
  body.bridavo-app-shell #mobileNav.app-sidebar.collapse,
  body.bridavo-app-shell #mobileNav.app-sidebar.collapsing{
    display:block!important;visibility:hidden;position:fixed!important;z-index:1060!important;
    inset:0 auto 0 0!important;width:var(--app-drawer-width)!important;max-width:var(--app-drawer-width)!important;
    height:100vh!important;height:var(--app-viewport-height,100dvh)!important;min-height:0!important;max-height:none!important;
    margin:0!important;padding:0 max(.75rem,var(--app-safe-right)) max(1rem,var(--app-safe-bottom)) max(.75rem,var(--app-safe-left))!important;
    overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;
    border-radius:0 1.2rem 1.2rem 0!important;transform:translate3d(-105%,0,0);opacity:.98;
    transition:transform .22s ease,visibility .22s step-end!important;box-shadow:0 1.5rem 4rem rgba(8,17,29,.34)!important;
  }
  body.bridavo-app-shell #mobileNav.app-sidebar.show{
    visibility:visible;transform:translate3d(0,0,0);transition:transform .22s ease,visibility 0s step-start!important;
  }
  body.bridavo-app-shell #mobileNav.app-sidebar.collapsing{height:var(--app-viewport-height,100dvh)!important;}
  .app-drawer-header{
    position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:.75rem;
    min-height:calc(3.7rem + var(--app-safe-top));margin:0 -.75rem .75rem;padding:var(--app-safe-top) .75rem 0;
    background:inherit;border-bottom:1px solid color-mix(in srgb,currentColor 15%,transparent);
  }
  .app-drawer-header__copy{display:flex;flex-direction:column;min-width:0;}
  .app-drawer-header__copy span{font-size:.75rem;opacity:.7;}
  .app-drawer-header .app-icon-button{color:inherit!important;border-color:color-mix(in srgb,currentColor 22%,transparent)!important;background:color-mix(in srgb,currentColor 7%,transparent)!important;}
  .app-drawer-account{display:flex;align-items:center;gap:.75rem;margin:.2rem 0 .75rem;padding:.75rem;border:1px solid color-mix(in srgb,currentColor 14%,transparent);border-radius:.9rem;background:color-mix(in srgb,currentColor 6%,transparent);}
  .app-drawer-account>div{display:flex;flex-direction:column;min-width:0;}
  .app-drawer-account strong,.app-drawer-account span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .app-drawer-account span{font-size:.77rem;opacity:.7;}
  .app-sidebar-nav{padding-bottom:1rem;}
  .app-nav-backdrop{
    display:block!important;position:fixed;inset:0;z-index:1050;opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .2s ease,visibility .2s step-end;
  }
  .app-nav-backdrop:not([hidden]){opacity:1;visibility:visible;pointer-events:auto;transition:opacity .2s ease,visibility 0s step-start;}
  body.nav-drawer-open .app-topbar{z-index:1040;}
  body.bridavo-app-shell .app-footer{padding-bottom:calc(.8rem + var(--app-safe-bottom))!important;}
}

/* Bottom app navigation for customer, instructor and supervisor portals. */
.app-mobile-tabbar{display:none;}
@media (max-width:1199.98px){
  body.has-mobile-tabbar .app-main-shell{padding-bottom:calc(var(--app-bottom-nav-height) + 1rem + var(--app-safe-bottom))!important;}
  body.has-mobile-tabbar .app-footer{display:none!important;}
  body.has-mobile-tabbar .settings-save-bar,body.has-mobile-tabbar .sticky-action-bar{bottom:calc(var(--app-bottom-nav-height) + var(--app-safe-bottom) + .5rem)!important;}
  .app-mobile-tabbar{
    position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:1045!important;
    display:grid!important;grid-template-columns:repeat(var(--mobile-tab-count,5),minmax(0,1fr))!important;
    gap:.1rem!important;width:100%!important;min-height:var(--app-bottom-nav-height)!important;
    margin:0!important;padding:.38rem max(.3rem,var(--app-safe-right)) max(.38rem,var(--app-safe-bottom)) max(.3rem,var(--app-safe-left))!important;
    border:0!important;border-top:1px solid var(--ui-border)!important;border-radius:1rem 1rem 0 0!important;
    background:color-mix(in srgb,#fff 95%,transparent)!important;box-shadow:0 -10px 30px rgba(13,21,31,.12)!important;
    backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  }
  .app-mobile-tabbar a{
    display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:.16rem!important;
    min-width:0!important;min-height:3.65rem!important;padding:.28rem .08rem!important;border-radius:.72rem!important;
    color:var(--ui-muted)!important;text-decoration:none!important;font-size:clamp(.58rem,1.7vw,.7rem)!important;font-weight:720!important;line-height:1.05!important;
  }
  .app-mobile-tabbar a span:last-child{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .app-mobile-tabbar a.active{background:color-mix(in srgb,var(--ui-primary) 10%,#fff)!important;color:var(--ui-primary)!important;}
  .app-mobile-tabbar__icon{display:grid!important;place-items:center!important;width:1.45rem!important;height:1.45rem!important;flex:0 0 1.45rem!important;background:transparent!important;font-size:1.02rem!important;}
}
@media (max-width:359.98px){
  .app-mobile-tabbar a{font-size:.55rem!important;letter-spacing:-.01em;}
  .app-mobile-tabbar__icon{font-size:.95rem!important;}
}
@media (max-width:299.98px){
  .facility-slot-card .card-body{flex-direction:column!important;align-items:stretch!important;}
  .facility-slot-card .btn{width:100%;}
}

/* Page composition and touch-first controls. */
body.bridavo-app-shell .app-page{gap:1rem;}
body.bridavo-app-shell .app-content-flash{margin:0 0 1rem!important;}
body.bridavo-app-shell :where(button,.btn,a,summary,input,select,textarea):focus-visible{outline:0;box-shadow:var(--ui-focus)!important;}
body.bridavo-app-shell .btn{min-height:2.65rem;padding:.55rem .88rem;line-height:1.25;}
body.bridavo-app-shell .btn-sm{min-height:2.25rem;padding:.4rem .68rem;}
body.bridavo-app-shell .btn-close{min-width:2.25rem;min-height:2.25rem;padding:.55rem;}
body.bridavo-app-shell .form-control,
body.bridavo-app-shell .form-select,
body.bridavo-app-shell .input-group-text{min-height:2.75rem;border-radius:.72rem;}
body.bridavo-app-shell textarea.form-control{min-height:7rem;resize:vertical;}
body.bridavo-app-shell .form-check-input{width:1.15rem;height:1.15rem;margin-top:.15rem;}
body.bridavo-app-shell .form-check-label{padding-left:.15rem;}
body.bridavo-app-shell .table-responsive{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;}
body.bridavo-app-shell .app-tabs,body.bridavo-app-shell .nav-pills{max-width:100%;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
body.bridavo-app-shell .app-tabs .nav-link,body.bridavo-app-shell .nav-pills .nav-link{white-space:nowrap;min-height:2.6rem;}
body.bridavo-app-shell .pagination{flex-wrap:wrap;gap:.2rem;}
body.bridavo-app-shell .dropdown-menu{max-width:min(24rem,calc(100vw - 1rem));}
body.bridavo-app-shell .alert{overflow-wrap:anywhere;}
body.bridavo-app-shell .badge{white-space:normal;text-align:left;}
body.bridavo-app-shell .modal-body{min-width:0;overflow-wrap:anywhere;}
body.bridavo-app-shell .modal-footer{flex-wrap:wrap;gap:.5rem;}
body.bridavo-app-shell .modal-footer>*{margin:0;}

@media (max-width:1199.98px){
  body.bridavo-app-shell.bridavo-ui .app-page > .app-page-header{
    display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important;
    flex-direction:initial!important;gap:.75rem!important;width:100%!important;height:auto!important;
  }
  body.bridavo-app-shell.bridavo-ui .app-page > .app-page-header > div:first-child{
    flex:none!important;width:auto!important;height:auto!important;min-width:0!important;
  }
}
@media (max-width:767.98px){
  body.bridavo-app-shell .app-main-shell{padding-top:.7rem!important;padding-inline:max(.55rem,var(--app-safe-left)) max(.55rem,var(--app-safe-right))!important;}
  body.bridavo-app-shell .app-page{gap:.8rem;}
  body.bridavo-app-shell.bridavo-ui .app-page > .app-page-header{
    grid-template-columns:minmax(0,1fr)!important;gap:.65rem!important;
  }
  body.bridavo-app-shell .app-page-header>*{min-width:0;max-width:100%;}
  body.bridavo-app-shell .app-page-header>.btn,
  body.bridavo-app-shell .app-page-header>.action-buttons,
  body.bridavo-app-shell .app-page-header>nav,
  body.bridavo-app-shell .app-page-header>div:last-child:not(:first-child){width:100%!important;}
  body.bridavo-app-shell .app-page-header .action-buttons{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem!important;}
  body.bridavo-app-shell .app-page-header .action-buttons>.btn,
  body.bridavo-app-shell .app-page-header .action-buttons>form,
  body.bridavo-app-shell .app-page-header .action-buttons>form>.btn{width:100%!important;}
  body.bridavo-app-shell .card,body.bridavo-app-shell .app-card{border-radius:.9rem!important;}
  body.bridavo-app-shell .card-header{padding:.8rem .85rem!important;min-height:3rem;}
  body.bridavo-app-shell .card-body{padding:.85rem!important;}
  body.bridavo-app-shell .card-footer{padding:.75rem .85rem!important;}
  body.bridavo-app-shell .card .card{border-radius:.72rem!important;}
  body.bridavo-app-shell .btn:not(.btn-link),
  body.bridavo-app-shell .form-control,
  body.bridavo-app-shell .form-select,
  body.bridavo-app-shell .input-group-text{min-height:2.85rem;font-size:16px;}
  body.bridavo-app-shell .btn-sm:not(.btn-link){min-height:2.55rem;font-size:.9rem;}
  body.bridavo-app-shell .action-buttons{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,8.5rem),1fr));width:100%;gap:.5rem!important;}
  body.bridavo-app-shell .action-buttons>.btn,body.bridavo-app-shell .action-buttons>form,body.bridavo-app-shell .action-buttons>form>.btn{width:100%!important;}
  body.bridavo-app-shell .modal-dialog{display:flex;align-items:flex-end;min-height:100%;margin:0!important;max-width:none!important;}
  body.bridavo-app-shell .modal-content{max-height:calc(100dvh - var(--app-safe-top));border:0;border-radius:1.1rem 1.1rem 0 0!important;overflow:hidden;}
  body.bridavo-app-shell .modal-body{overflow-y:auto;overscroll-behavior:contain;}
  body.bridavo-app-shell .modal-footer{padding-bottom:max(.75rem,var(--app-safe-bottom));}
  body.bridavo-app-shell .modal-footer .btn{flex:1 1 9rem;}
  body.bridavo-app-shell .toast-container{top:calc(var(--app-topbar-total) + .25rem)!important;left:.5rem!important;right:.5rem!important;width:auto!important;padding:.25rem!important;}
  body.bridavo-app-shell .toast{width:100%;max-width:none;}
}
@media (max-width:420px){
  .app-brand{max-width:calc(100vw - 8rem);gap:.45rem;}
  .app-brand .brand-logo{max-width:7.5rem!important;height:2.1rem!important;}
  .app-brand .brand-title{font-size:.9rem;}
  body.bridavo-app-shell .app-page-header .action-buttons{grid-template-columns:1fr;}
}

/* Common responsive utility classes used by the reviewed views. */
.app-long-copy{min-width:0!important;max-width:42rem;overflow-wrap:anywhere;}
.app-inline-test-input{flex:1 1 15rem;max-width:20rem;min-width:12rem;}
.app-retention-days{width:8.5rem;max-width:100%;}
.app-scrollbox{max-height:17.5rem;overflow:auto;overscroll-behavior:contain;}
.app-code-preview{white-space:pre-wrap;overflow-wrap:anywhere;max-width:42rem;}
.app-responsive-frame{width:100%;min-height:min(72dvh,48rem);border:0;}
.app-map-frame{width:100%;min-height:22.5rem;border:0;border-radius:.75rem;}
.app-round-icon{display:flex;align-items:center;justify-content:center;flex:0 0 2.625rem;width:2.625rem;height:2.625rem;border-radius:50%;}
.app-logo-preview{display:block;max-height:4.4rem;max-width:12.5rem;object-fit:contain;}
.app-hero-preview{display:block;width:100%;max-height:9rem;object-fit:cover;}
.branding-interface-summary{background:linear-gradient(135deg,color-mix(in srgb,var(--ui-primary) 8%,#fff),#fff);}
@media (max-width:575.98px){
  .app-inline-test-input,.app-retention-days{width:100%;max-width:none;min-width:0;}
  .app-map-frame{min-height:18rem;}
}

/* Public and embedded web-app surfaces. */
body.bridavo-public-webapp{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden;}
.app-public-topbar{position:sticky;top:0;z-index:1030;min-height:var(--app-topbar-total);background:var(--brand-header-bg,#fff);box-shadow:0 1px 0 rgba(13,21,31,.08);}
.app-public-topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-height:var(--app-topbar-total);padding:var(--app-safe-top) max(.75rem,var(--app-safe-right)) .35rem max(.75rem,var(--app-safe-left));}
.app-public-actions{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;flex:0 0 auto;}
.app-public-actions .btn{min-height:2.55rem;}
.public-main{display:flex;flex:1 0 auto;flex-direction:column;min-width:0;}
.public-app-page{flex:1 0 auto;}
.bridavo-public-webapp .app-footer{margin-top:auto;padding-bottom:max(1rem,var(--app-safe-bottom))!important;}
.bridavo-embed-webapp{min-height:100dvh;padding:max(.25rem,var(--app-safe-top)) max(.25rem,var(--app-safe-right)) max(.25rem,var(--app-safe-bottom)) max(.25rem,var(--app-safe-left));}
@media(max-width:575.98px){
  .app-public-topbar__inner{padding-inline:max(.5rem,var(--app-safe-left)) max(.5rem,var(--app-safe-right));}
  .app-public-actions .btn{width:2.65rem;min-width:2.65rem;padding:.45rem!important;}
  .app-public-actions .public-nav-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
  .app-public-topbar .app-brand{max-width:calc(100vw - 9.5rem);}
}

/* Short landscape screens retain access to controls without wasting height. */
@media (max-width:1199.98px) and (orientation:landscape) and (max-height:560px){
  :root{--app-bottom-nav-height:4.15rem;}
  .app-mobile-tabbar a{min-height:3.1rem!important;flex-direction:row!important;gap:.28rem!important;}
  .app-mobile-tabbar__icon{width:1.2rem!important;height:1.2rem!important;flex-basis:1.2rem!important;}
  body.bridavo-app-shell #mobileNav.app-sidebar.collapse{width:min(72vw,24rem)!important;max-width:min(72vw,24rem)!important;}
}

@media (hover:none) and (pointer:coarse){
  body.bridavo-app-shell .card:hover,body.bridavo-app-shell .customer-action-tile:hover{transform:none!important;}
}
/* Bootstrap display utilities use lower specificity than the shared icon-button rule. */
@media (min-width:1200px){
  .app-nav-toggle.d-xl-none{display:none!important;}
}

@media print{
  .app-topbar,.app-sidebar,.app-nav-backdrop,.app-mobile-tabbar,.app-footer,.bridavo-footer,.action-buttons,.app-page-header .btn{display:none!important;}
  body.bridavo-app-shell .app-main-shell{padding:0!important;}
  body.bridavo-app-shell .app-content{width:100%!important;max-width:none!important;}
  body.bridavo-app-shell .card{box-shadow:none!important;break-inside:avoid;}
}

/* v1.7.34 Google address autocomplete overlay.
 * The results are portalled to document.body by google-address.js so card,
 * modal and responsive-container overflow cannot clip them. The explicit
 * solid surface also overrides the generic transparent list-group styling.
 */
.google-address-results{
  position:absolute!important;
  z-index:2147483000!important;
  display:block;
  min-width:min(15rem,calc(100vw - 1rem));
  padding:.35rem;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  isolation:isolate;
  pointer-events:auto;
  color:var(--ui-text,#0d151f);
  background:var(--ui-surface,#fff)!important;
  background:#fff!important;
  border:1px solid var(--ui-border-strong,#c9d5d1);
  border-radius:.8rem;
  box-shadow:0 1.15rem 2.75rem rgba(13,21,31,.22),0 .2rem .75rem rgba(13,21,31,.12);
}
.google-address-results[hidden]{display:none!important}
.google-address-results--above{transform-origin:center bottom}
.google-address-result{
  appearance:none;
  -webkit-appearance:none;
  display:flex;
  align-items:flex-start;
  gap:.65rem;
  width:100%;
  min-height:2.85rem;
  margin:0;
  padding:.7rem .75rem;
  border:0;
  border-radius:.58rem;
  text-align:left;
  font:inherit;
  line-height:1.35;
  color:var(--ui-text,#0d151f)!important;
  background:var(--ui-surface,#fff)!important;
  background:#fff!important;
  cursor:pointer;
}
.google-address-result+.google-address-result{margin-top:.12rem}
.google-address-result:hover,
.google-address-result:focus-visible,
.google-address-result.is-active{
  color:var(--ui-text,#0d151f)!important;
  background:#eef7f5!important;
  background:color-mix(in srgb,var(--ui-primary,#1f7a73) 10%,#fff)!important;
  outline:0;
}
.google-address-result:focus-visible{box-shadow:inset 0 0 0 2px var(--ui-primary,#1f7a73)}
.google-address-result__marker{
  flex:0 0 1.55rem;
  width:1.55rem;
  height:1.55rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:.02rem;
  border-radius:999px;
  color:var(--ui-primary,#1f7a73);
  background:#eef7f5;
  font-size:.95rem;
  font-weight:800;
  line-height:1;
}
.google-address-result__text{min-width:0;overflow-wrap:anywhere}
.google-address-results__status{
  display:block;
  width:100%;
  padding:.78rem .8rem;
  border-radius:.58rem;
  color:var(--ui-muted,#647184);
  background:var(--ui-surface,#fff)!important;
  background:#fff!important;
  font-size:.9rem;
  line-height:1.4;
}
.google-address-results__status.is-loading::before{
  content:'';
  display:inline-block;
  width:.8rem;
  height:.8rem;
  margin-right:.5rem;
  vertical-align:-.05rem;
  border:2px solid color-mix(in srgb,var(--ui-primary,#1f7a73) 30%,#fff);
  border-top-color:var(--ui-primary,#1f7a73);
  border-radius:50%;
  animation:google-address-spin .75s linear infinite;
}
.google-address-results__status.is-error{color:var(--ui-danger,#a43649);background:#fff6f7!important}
@keyframes google-address-spin{to{transform:rotate(360deg)}}
@media (max-width:575.98px){
  .google-address-results{max-height:min(18rem,45dvh)!important;border-radius:.72rem;padding:.28rem}
  .google-address-result{min-height:3rem;padding:.72rem .68rem}
}
@media (prefers-reduced-motion:reduce){
  .google-address-results__status.is-loading::before{animation-duration:1.5s}
}

/* v1.7.35 module-management cards.
   The seven-column module table was difficult to use on tablet and could be
   horizontally scrolled until only status/action columns remained visible.
   Modules now use a responsive app-card layout at every viewport. */
.module-management-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  align-items:stretch;
}
.module-management-card{
  display:flex;
  min-width:0;
  min-height:100%;
  flex-direction:column;
  padding:1rem;
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius-lg);
  background:var(--ui-surface,#fff);
  box-shadow:var(--ui-shadow-xs);
}
.module-management-card.is-active{border-top:3px solid var(--ui-success)}
.module-management-card.is-inactive{border-top:3px solid var(--ui-border-strong)}
.module-management-card__header{display:block;min-width:0;margin-bottom:.9rem}
.module-management-card__identity{min-width:0}
.module-management-card__title-row{
  display:flex;
  min-width:0;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
}
.module-management-card__title-row h2{min-width:0;overflow-wrap:anywhere}
.module-management-card__title-row>.badge{flex:0 0 auto}
.module-management-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.65rem;
  margin:0;
}
.module-management-fact{
  min-width:0;
  padding:.72rem .78rem;
  border:1px solid var(--ui-border);
  border-radius:.72rem;
  background:var(--ui-surface-subtle);
}
.module-management-fact dt{
  margin:0 0 .3rem;
  color:var(--ui-muted);
  font-size:.7rem;
  font-weight:780;
  letter-spacing:.04em;
  line-height:1.25;
  text-transform:uppercase;
}
.module-management-fact dd{min-width:0;margin:0;overflow-wrap:anywhere}
.module-management-card__footer{
  display:flex;
  min-width:0;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  margin-top:auto;
  padding-top:1rem;
}
.module-management-state-copy{min-width:0}
.module-management-state-copy>.small:first-child{display:block;margin-bottom:.3rem;color:var(--ui-muted)}
.module-management-action{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;text-align:right}
.module-management-action form{margin:0}
.module-management-action .btn{min-width:8.5rem;white-space:nowrap}

@media (max-width:1199.98px){
  .module-management-grid{grid-template-columns:1fr}
}
@media (max-width:767.98px){
  .module-management-facts{grid-template-columns:1fr}
}
@media (max-width:575.98px){
  .module-management-card{padding:.85rem;border-radius:var(--ui-radius)}
  .module-management-card__footer{align-items:stretch;flex-direction:column}
  .module-management-action,.module-management-action form{width:100%;text-align:left}
  .module-management-action .btn{width:100%;min-width:0}
}
