/* =========================================================
   PODOCLICK MOBILE UX PACKAGE — 2026-07-13
   Final responsive layer. Loaded after module styles on purpose.
   ========================================================= */
:root{
  --pc-mobile-touch:44px;
  --pc-mobile-touch-lg:48px;
  --pc-safe-top:env(safe-area-inset-top, 0px);
  --pc-safe-right:env(safe-area-inset-right, 0px);
  --pc-safe-bottom:env(safe-area-inset-bottom, 0px);
  --pc-safe-left:env(safe-area-inset-left, 0px);
}

html{min-height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body.pc-app,body.pc-public,body.pc-public-booking{min-height:100dvh;}
.pc-app-frame{min-height:100dvh!important;}
.pc-sidebar{height:100dvh!important;}
.pc-public-main{min-height:calc(100dvh - 72px)!important;}

/* Every form remains readable and does not trigger Safari input zoom. */
@media (max-width:768px), (max-width:992px) and (max-height:600px){
  html,body{font-size:15px!important;}
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  select,textarea,
  .form-control,.form-select,.pc-auth-input-wrap input,
  .pc-public input,.pc-public select,.pc-public textarea{
    font-size:16px!important;
    line-height:1.35!important;
  }
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  select,.form-control,.form-select{
    min-height:var(--pc-mobile-touch)!important;
  }
  textarea.form-control,textarea{min-height:112px!important;}
}

/* Mobile app shell and safe areas. */
@media (max-width:1024px){
  body.pc-sidebar-open{overflow:hidden!important;overscroll-behavior:none;touch-action:none;}
  .pc-sidebar{
    inset:0 0 0 auto!important;
    width:min(92vw,390px)!important;
    height:100dvh!important;
    padding-top:max(14px,var(--pc-safe-top))!important;
    padding-right:max(12px,var(--pc-safe-right))!important;
    padding-bottom:max(14px,var(--pc-safe-bottom))!important;
    border-radius:24px 0 0 24px!important;
    overflow:hidden!important;
  }
  .pc-nav{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
  .pc-mobile-overlay{inset:0!important;}
  .pc-topbar{
    min-height:calc(62px + var(--pc-safe-top))!important;
    padding-top:max(9px,var(--pc-safe-top))!important;
    padding-right:max(14px,var(--pc-safe-right))!important;
    padding-left:max(14px,var(--pc-safe-left))!important;
  }
  .pc-page-context{min-width:0;max-width:min(52vw,420px);}
  .pc-page-context strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .pc-workspace-switch span{display:none!important;}
  .pc-workspace-switch{width:var(--pc-mobile-touch)!important;min-width:var(--pc-mobile-touch)!important;padding:0!important;}
}

@media (max-width:768px){
  .pc-main{
    padding:14px max(12px,var(--pc-safe-right)) calc(92px + var(--pc-safe-bottom)) max(12px,var(--pc-safe-left))!important;
  }
  .pc-topbar__left{gap:9px!important;flex:1 1 auto;overflow:hidden;}
  .pc-topbar__right{gap:7px!important;flex:0 0 auto;}
  .pc-menu-toggle,.pc-sidebar__close,.pc-icon-btn,.pc-notification-btn,
  .pc-user-dropdown__toggle,.pc-avatar--top{
    width:var(--pc-mobile-touch)!important;
    min-width:var(--pc-mobile-touch)!important;
    height:var(--pc-mobile-touch)!important;
    min-height:var(--pc-mobile-touch)!important;
  }
  .pc-user-dropdown__toggle{padding:0!important;justify-content:center;}
  .pc-user-dropdown__menu{max-width:calc(100vw - 24px);}
  .pc-sidebar__brand{padding-top:8px!important;}
  .pc-nav__item{min-height:var(--pc-mobile-touch)!important;padding:10px 13px!important;}
}

/* Touch targets override legacy compact layers. */
@media (max-width:768px), (max-width:992px) and (max-height:600px), (pointer:coarse){
  .pc-app .pc-main .btn,
  .pc-app .modal .btn,
  .pc-app button.btn,
  .pc-app a.btn,
  .pc-app .pc-btn,
  .pc-public .btn,
  .pc-public button,
  .pc-auth-submit,.pc-auth-secondary{
    min-height:var(--pc-mobile-touch)!important;
    font-size:.9rem!important;
    padding:.56rem .78rem!important;
  }
  .pc-app .btn-sm,.pc-app button.btn-sm,.pc-app a.btn-sm,
  .pc-med-page .btn,.pc-med-card .btn,.pc-med-section .btn{
    min-height:var(--pc-mobile-touch)!important;
    padding:.52rem .68rem!important;
    font-size:.88rem!important;
  }
  .pc-icon-action,.pc-js-icon-only,
  .pc-main .btn.pc-icon-action,.pc-app .btn.pc-js-icon-only,
  .pc-photo-delete{
    width:var(--pc-mobile-touch)!important;
    min-width:var(--pc-mobile-touch)!important;
    max-width:var(--pc-mobile-touch)!important;
    height:var(--pc-mobile-touch)!important;
    min-height:var(--pc-mobile-touch)!important;
    flex-basis:var(--pc-mobile-touch)!important;
  }
  .dropdown-item{min-height:var(--pc-mobile-touch)!important;}
  .form-check-input{min-width:22px;min-height:22px;}
}


/* Landscape phones: preserve touch ergonomics without consuming height with bottom navigation. */
@media (min-width:769px) and (max-width:992px) and (max-height:600px){
  .pc-main{padding:12px max(14px,var(--pc-safe-right)) calc(16px + var(--pc-safe-bottom)) max(14px,var(--pc-safe-left))!important;}
  .pc-topbar{min-height:56px!important;}
  .pc-page-context{max-width:48vw!important;}
  .pc-menu-toggle,.pc-sidebar__close,.pc-icon-btn,.pc-notification-btn,
  .pc-user-dropdown__toggle,.pc-avatar--top{
    width:var(--pc-mobile-touch)!important;min-width:var(--pc-mobile-touch)!important;
    height:var(--pc-mobile-touch)!important;min-height:var(--pc-mobile-touch)!important;
  }
  .pc-user-dropdown__toggle{padding:0!important;justify-content:center!important;}
  .pc-date-strip .date-btn,.pc-time-slots-grid .time-slot-btn,
  .pc-slot,.slotBtn,.time-slot,.pc-slots-list button{min-height:var(--pc-mobile-touch)!important;}
  .pc-date-strip .date-btn{height:auto!important;}
  .pc-mobile-card-table:not(.pc-no-card-table) td{grid-template-columns:minmax(118px,32%) minmax(0,1fr)!important;}
  .modal-footer{padding-bottom:max(10px,var(--pc-safe-bottom))!important;}
  .pc-selected-appointment-summary,.pc-appointment-form-actions{position:static!important;top:auto!important;bottom:auto!important;}
}

/* Bottom role-aware navigation. */
.pc-mobile-bottom-nav{display:none;}
@media (max-width:768px){
  .pc-mobile-bottom-nav{
    position:fixed;
    z-index:5015;
    left:0;right:0;bottom:0;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:4px;
    padding:7px max(8px,var(--pc-safe-right)) calc(7px + var(--pc-safe-bottom)) max(8px,var(--pc-safe-left));
    background:rgba(255,255,255,.96);
    border-top:1px solid #e7eaf0;
    box-shadow:0 -10px 28px rgba(15,23,42,.08);
    backdrop-filter:blur(16px) saturate(150%);
  }
  .pc-mobile-bottom-nav__item{
    min-width:0;min-height:54px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
    padding:5px 3px;border:0;border-radius:13px;background:transparent;
    color:#64748b;text-decoration:none!important;font-size:.69rem;font-weight:650;line-height:1.05;
  }
  .pc-mobile-bottom-nav__item i{font-size:1.12rem;line-height:1;}
  .pc-mobile-bottom-nav__item span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .pc-mobile-bottom-nav__item.active{background:#f1edff;color:#5a3fe0;}
  .pc-mobile-bottom-nav__item:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(108,77,246,.22);}
}
@media print{.pc-mobile-bottom-nav{display:none!important;}}

/* Universal responsive table layer. JS adds labels from table headers. */
.pc-table-scroll,.pc-mobile-table-scroll{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;}
@media (min-width:769px) and (max-width:1100px){
  .pc-mobile-table-scroll table{min-width:760px;}
}
@media (max-width:768px), (max-width:992px) and (max-height:600px){
  .pc-mobile-card-table:not(.pc-no-card-table),
  .pc-mobile-card-table:not(.pc-no-card-table) tbody,
  .pc-mobile-card-table:not(.pc-no-card-table) tr,
  .pc-mobile-card-table:not(.pc-no-card-table) td{display:block!important;width:100%!important;}
  .pc-mobile-card-table:not(.pc-no-card-table) thead{display:none!important;}
  .pc-mobile-card-table:not(.pc-no-card-table){border:0!important;background:transparent!important;}
  .pc-mobile-card-table:not(.pc-no-card-table) tbody{display:grid!important;gap:12px!important;}
  .pc-mobile-card-table:not(.pc-no-card-table) tbody tr{
    padding:8px 12px!important;border:1px solid #e3e7ee!important;border-radius:16px!important;
    background:#fff!important;box-shadow:0 5px 18px rgba(15,23,42,.04)!important;
  }
  .pc-mobile-card-table:not(.pc-no-card-table) tbody tr.d-none{display:none!important;}
  .pc-mobile-card-table:not(.pc-no-card-table) td{
    min-width:0!important;white-space:normal!important;border:0!important;border-bottom:1px solid #eef1f5!important;
    padding:10px 0!important;display:grid!important;grid-template-columns:minmax(102px,38%) minmax(0,1fr)!important;
    align-items:start!important;gap:12px!important;text-align:left!important;
  }
  .pc-mobile-card-table:not(.pc-no-card-table) td:last-child{border-bottom:0!important;}
  .pc-mobile-card-table:not(.pc-no-card-table) td::before{
    content:attr(data-label);color:#64748b;font-size:.78rem;font-weight:650;line-height:1.3;
  }
  .pc-mobile-card-table:not(.pc-no-card-table) td[data-label=""],
  .pc-mobile-card-table:not(.pc-no-card-table) td[colspan]{grid-template-columns:1fr!important;}
  .pc-mobile-card-table:not(.pc-no-card-table) td[data-label=""]::before,
  .pc-mobile-card-table:not(.pc-no-card-table) td[colspan]::before{display:none;}
  .pc-mobile-card-table .pc-action-cell,
  .pc-mobile-card-table td:last-child{width:100%!important;min-width:0!important;}
  .pc-mobile-card-table .pc-action-cell > *,
  .pc-mobile-card-table td:last-child > *{max-width:100%;}
  .pc-mobile-card-table .pc-row-actions,
  .pc-mobile-card-table .pc-table-actions,
  .pc-mobile-card-table td:last-child{gap:8px!important;}
  .pc-mobile-card-table td:last-child .btn:not(.pc-icon-action):not(.pc-js-icon-only){flex:1 1 auto!important;}
}

/* Modal windows use the visible viewport and keep actions accessible above keyboards. */
html.pc-modal-open-root{overflow:hidden!important;overscroll-behavior:none;}
@media (max-width:768px), (max-width:992px) and (max-height:600px){
  .modal{padding:0!important;}
  .modal-dialog{margin:8px!important;max-width:none!important;min-height:calc(100dvh - 16px)!important;}
  .modal-dialog-centered{min-height:calc(100dvh - 16px)!important;}
  .modal-content{max-height:calc(100dvh - 16px)!important;border-radius:18px!important;overflow:hidden!important;}
  .modal-dialog-scrollable .modal-content{height:calc(100dvh - 16px)!important;}
  .modal-header{padding:14px 15px!important;flex:0 0 auto;}
  .modal-body{padding:15px!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
  .modal-footer{
    position:relative;z-index:2;flex:0 0 auto!important;padding:12px 15px calc(12px + var(--pc-safe-bottom))!important;
    background:#fff!important;box-shadow:0 -8px 22px rgba(15,23,42,.05)!important;
  }
  .modal-footer .btn{flex:1 1 calc(50% - 8px)!important;}
  .modal-header .btn-close{width:var(--pc-mobile-touch)!important;height:var(--pc-mobile-touch)!important;margin:-8px -8px -8px auto!important;padding:12px!important;}
}
@media (max-width:480px){.modal-footer .btn{flex:1 1 100%!important;}}

/* Calendar: day-first mobile workflow, readable toolbar and events. */
@media (max-width:768px), (max-width:992px) and (max-height:600px){
  .pc-calendar-page{gap:12px!important;}
  .pc-calendar-hero{padding:16px!important;border-radius:18px!important;}
  .pc-calendar-title{align-items:flex-start!important;}
  .pc-calendar-title__icon{width:44px!important;height:44px!important;flex:0 0 44px!important;}
  .pc-calendar-layout{display:flex!important;flex-direction:column!important;gap:12px!important;}
  .pc-calendar-card{order:1;}
  .pc-calendar-side{order:2;position:static!important;max-height:none!important;}
  .pc-calendar-card__header small{display:none!important;}
  .pc-calendar-card__body{padding:10px!important;}
  .fc .fc-toolbar.fc-header-toolbar{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}
  .fc .fc-toolbar-chunk{justify-content:center!important;width:100%!important;}
  .fc .fc-toolbar-title{font-size:1rem!important;text-align:center!important;}
  .fc .fc-button{min-height:var(--pc-mobile-touch)!important;padding:.52rem .64rem!important;font-size:.84rem!important;}
  .fc .fc-timeGridWeek-button{display:none!important;}
  .fc .fc-timegrid-slot{height:2.8em!important;}
  .fc .fc-timegrid-slot-label-cushion,.fc .fc-col-header-cell-cushion{font-size:.8rem!important;}
  .fc .fc-timegrid-event{min-height:42px!important;border-radius:9px!important;}
  .fc .fc-event-main{padding:3px 5px!important;}
  .pc-event-card__time,.pc-event-card__name{font-size:.82rem!important;line-height:1.2!important;}
  .pc-event-card__meta{display:block!important;font-size:.72rem!important;line-height:1.15!important;}
  .pc-slot,.slotBtn,.time-slot,.pc-slots-list button{
    min-height:var(--pc-mobile-touch)!important;font-size:.92rem!important;
  }
  #calendar{min-height:0!important;}
}

/* Schedule screens become cards before they can be clipped by the shell. */
.schedule-container{max-width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch;}
@media (max-width:992px){
  .schedule-container .schedule-grid,.schedule-grid.schedule-calendar-days{
    display:grid!important;min-width:0!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;
  }
  .schedule-container .weekday-header,.schedule-calendar-head,.schedule-container .day-cell.other-month,.schedule-calendar-days .day-muted{display:none!important;}
  .schedule-container .day-cell,.schedule-calendar-days .day-card{min-height:0!important;border-radius:15px!important;padding:13px!important;}
  .schedule-container .day-cell::before,.schedule-calendar-days .day-card::before{
    content:attr(data-weekday);display:block;color:#64748b;font-size:.74rem;font-weight:750;text-transform:uppercase;margin-bottom:5px;
  }
  .pc-schedule-toolbar>.col-auto{width:100%!important;}
  .pc-schedule-toolbar .btn-group,.pc-schedule-toolbar>.col-auto>.btn,.pc-schedule-toolbar>.col-auto.dropdown>.btn{width:100%!important;}
  .pc-schedule-toolbar .btn-group .btn{flex:1 1 auto!important;}
  .interval-row{flex-wrap:wrap!important;align-items:stretch!important;}
  .interval-row input[type="time"]{min-width:120px!important;max-width:none!important;flex:1 1 130px!important;}
  .schedule-choice-grid-days{grid-template-columns:repeat(4,minmax(62px,1fr))!important;}
}
@media (max-width:560px){
  .schedule-container .schedule-grid,.schedule-grid.schedule-calendar-days{grid-template-columns:1fr!important;}
  .schedule-choice-grid-days{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .interval-row{display:grid!important;grid-template-columns:1fr 1fr!important;}
  .interval-row .btn,.interval-row button{grid-column:1/-1!important;width:100%!important;}
}

/* Medical record: preserve clinical order and offer full-screen foot marking. */
@media (max-width:992px){.pc-med-side{order:initial!important;}}
@media (max-width:768px){
  .pc-med-page{gap:14px!important;}
  .pc-med-card__body{padding:15px!important;}
  .pc-sticky-actions{bottom:calc(78px + var(--pc-safe-bottom))!important;padding-bottom:12px!important;}
  #magnifier{width:92px!important;height:92px!important;}
  #magnifier canvas{width:92px!important;height:92px!important;}
}
.pc-foot-canvas-panel.pc-foot-canvas-panel--fullscreen{
  position:fixed!important;inset:0!important;z-index:7000!important;max-width:none!important;width:100vw!important;height:100dvh!important;
  display:flex!important;flex-direction:column!important;justify-content:center!important;gap:12px!important;
  padding:max(14px,var(--pc-safe-top)) max(12px,var(--pc-safe-right)) calc(14px + var(--pc-safe-bottom)) max(12px,var(--pc-safe-left))!important;
  border:0!important;border-radius:0!important;background:#f8fafc!important;
}
.pc-foot-canvas-panel--fullscreen #footCanvas{width:min(100%,900px)!important;max-width:none!important;max-height:calc(100dvh - 130px)!important;object-fit:contain;}
.pc-foot-canvas-panel--fullscreen .pc-drawing-tools{margin-top:0!important;}
body.pc-canvas-fullscreen{overflow:hidden!important;}

/* Public/auth forms and mobile menus. */
@media (max-width:560px){
  .pc-booking-nav,.pc-public-topbar{padding-right:max(12px,var(--pc-safe-right))!important;padding-left:max(12px,var(--pc-safe-left))!important;}
  .pc-mobile-menu{max-height:calc(100dvh - 76px - var(--pc-safe-bottom));overflow-y:auto;overscroll-behavior:contain;}
  .pc-location-actions,.pc-city-input-row,.booking-modal-actions{gap:10px!important;}
  .booking-modal-actions{display:grid!important;grid-template-columns:1fr!important;}
  .time-slot{min-height:var(--pc-mobile-touch)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
  .pc-auth-page{min-height:100dvh!important;padding:12px max(12px,var(--pc-safe-right)) calc(12px + var(--pc-safe-bottom)) max(12px,var(--pc-safe-left))!important;}
  .pc-auth-card{width:100%;padding:20px!important;}
  .pc-auth-modal__panel{max-height:calc(100dvh - 24px)!important;}
}


/* Appointment creation: single-hand mobile workflow. */
@media (max-width:768px), (max-width:992px) and (max-height:600px){
  .pc-appointment-form-page{margin:8px auto!important;padding:0!important;}
  .pc-appointment-form-page>.card{border-radius:18px!important;}
  .pc-patient-search-group{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}
  .pc-patient-search-group>.form-control,.pc-patient-search-group>.btn{width:100%!important;border-radius:11px!important;margin:0!important;}
  .pc-date-strip{
    display:flex!important;flex-wrap:nowrap!important;gap:8px!important;max-height:none!important;overflow-x:auto!important;overflow-y:hidden!important;
    margin:0!important;padding:10px!important;scroll-snap-type:x proximity;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;
  }
  .pc-date-strip .date-btn{flex:0 0 86px!important;min-width:86px!important;min-height:88px!important;margin:0!important;scroll-snap-align:start;}
  .pc-time-slots-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;max-height:none!important;overflow:visible!important;padding:10px!important;}
  .pc-time-slots-grid .time-slot-btn{width:100%!important;min-width:0!important;min-height:var(--pc-mobile-touch)!important;padding:9px 5px!important;}
  .pc-appointment-form-page .form-check{min-height:var(--pc-mobile-touch)!important;display:flex!important;align-items:center!important;gap:9px!important;}
  .pc-appointment-form-page .form-check-label{padding-top:2px;}
  .pc-selected-appointment-summary{position:sticky;top:calc(70px + var(--pc-safe-top));z-index:4;box-shadow:0 8px 22px rgba(15,23,42,.08);}
  .pc-appointment-form-actions{
    position:sticky;z-index:8;bottom:calc(72px + var(--pc-safe-bottom));display:grid!important;grid-template-columns:1fr 1fr!important;
    margin:18px -15px -15px!important;padding:12px 15px!important;background:rgba(255,255,255,.96)!important;border-top:1px solid #e7eaf0;backdrop-filter:blur(12px);
  }
  .pc-appointment-form-actions .btn{width:100%!important;}
}
@media (max-width:420px){.pc-time-slots-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}
body.pc-virtual-keyboard .pc-mobile-bottom-nav{display:none!important;}
body.pc-virtual-keyboard .pc-main{padding-bottom:20px!important;}
body.pc-virtual-keyboard .pc-appointment-form-actions{bottom:0!important;}
body.pc-virtual-keyboard .pc-sticky-actions{bottom:8px!important;}

/* Legacy medical canvases get the same full-screen editing surface. */
.pc-canvas-surface--fullscreen{
  position:fixed!important;inset:0!important;z-index:7000!important;width:100vw!important;max-width:none!important;height:100dvh!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:12px!important;
  padding:max(14px,var(--pc-safe-top)) max(12px,var(--pc-safe-right)) calc(14px + var(--pc-safe-bottom)) max(12px,var(--pc-safe-left))!important;
  margin:0!important;background:#f8fafc!important;overflow:auto!important;
}
.pc-canvas-surface--fullscreen #footCanvas{width:min(100%,900px)!important;max-width:none!important;max-height:calc(100dvh - 120px)!important;object-fit:contain;}
.pc-legacy-canvas-fullscreen-btn{margin-top:10px!important;}


/* Public booking: the same phone ergonomics as the authenticated application. */
@media (max-width:768px), (max-width:992px) and (max-height:600px), (pointer:coarse){
  .pc-public-booking .pc-public-btn,
  .pc-public-booking .btn-appointment,
  .pc-public-booking .booking-secondary-btn,
  .pc-public-booking .booking-submit-btn,
  .pc-public-booking .pc-mobile-menu-btn,
  .pc-public-booking .calendar-nav button,
  .pc-public-booking .booking-close,
  .pc-public-booking .pc-nearby-list button{
    min-height:var(--pc-mobile-touch)!important;
  }
  .pc-public-booking .calendar-nav button,
  .pc-public-booking .booking-close{
    width:var(--pc-mobile-touch)!important;height:var(--pc-mobile-touch)!important;
  }
  .pc-public-booking .day-card{min-height:72px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;}
  .pc-public-booking .time-slot{min-height:var(--pc-mobile-touch)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
  .pc-public-booking .booking-modal input,
  .pc-public-booking .booking-modal select,
  .pc-public-booking .booking-modal textarea,
  .pc-public-booking .pc-city-input-row input,
  .pc-public-booking .doctor-selector select{
    min-height:var(--pc-mobile-touch)!important;font-size:16px!important;
  }
  .pc-public-booking .booking-modal-backdrop{
    padding:max(8px,var(--pc-safe-top)) max(8px,var(--pc-safe-right)) max(8px,var(--pc-safe-bottom)) max(8px,var(--pc-safe-left))!important;
  }
  .pc-public-booking .booking-modal{
    max-height:calc(100dvh - 16px - var(--pc-safe-top) - var(--pc-safe-bottom))!important;
    overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  }
  .pc-public-booking .pc-mobile-menu{
    max-height:calc(100dvh - 76px - var(--pc-safe-bottom))!important;
    overflow-y:auto!important;overscroll-behavior:contain;
  }
}

/* Compact public hamburger: never stretches over the logo. */
.pc-public-booking .pc-mobile-menu-btn{display:none;flex:0 0 44px!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;margin-left:auto!important;border:1px solid #d8e4ee!important;border-radius:13px!important;background:#fff!important;box-shadow:0 6px 18px rgba(16,36,55,.07)!important;align-items:center!important;justify-content:center!important;flex-direction:column!important;gap:4px!important;position:relative!important;z-index:1002!important;cursor:pointer!important}
.pc-public-booking .pc-mobile-menu-btn span{display:block!important;width:20px!important;height:2px!important;border-radius:99px!important;background:#17344e!important;transition:transform .18s ease,opacity .18s ease!important}
.pc-public-booking .pc-mobile-menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)!important}.pc-public-booking .pc-mobile-menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0!important}.pc-public-booking .pc-mobile-menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)!important}
@media(max-width:960px){.pc-public-booking .pc-mobile-menu-btn{display:inline-flex!important}.pc-public-booking .pc-booking-nav{min-width:0!important}.pc-public-booking .pc-booking-logo{flex:1 1 auto!important;overflow:hidden!important}.pc-public-booking .pc-booking-logo img{max-width:calc(100vw - 92px)!important}}
@media(max-width:420px){.pc-public-booking .pc-booking-logo img{width:142px!important}.pc-public-booking .pc-mobile-menu-btn{flex-basis:44px!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important}}
/* Authenticated application hamburger stays a compact icon button. */
@media(max-width:991px){.pc-menu-toggle{display:inline-grid!important;place-items:center!important;flex:0 0 44px!important;width:44px!important;min-width:44px!important;max-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;border-radius:13px!important}.pc-menu-toggle i{font-size:18px!important;margin:0!important}}

/* Stage 5: compact authenticated hamburger with a reliable three-line glyph. */
.pc-menu-toggle .pc-hamburger-lines{display:grid!important;gap:4px!important;width:20px!important;pointer-events:none!important}
.pc-menu-toggle .pc-hamburger-lines>span{display:block!important;width:20px!important;height:2px!important;border-radius:999px!important;background:currentColor!important;transition:transform .18s ease,opacity .18s ease!important;transform-origin:center!important}
.pc-menu-toggle[aria-expanded="true"] .pc-hamburger-lines>span:nth-child(1){transform:translateY(6px) rotate(45deg)!important}
.pc-menu-toggle[aria-expanded="true"] .pc-hamburger-lines>span:nth-child(2){opacity:0!important}
.pc-menu-toggle[aria-expanded="true"] .pc-hamburger-lines>span:nth-child(3){transform:translateY(-6px) rotate(-45deg)!important}
@media(max-width:430px){.pc-topbar{padding-left:max(8px,var(--pc-safe-left))!important;padding-right:max(8px,var(--pc-safe-right))!important}.pc-menu-toggle{flex-basis:44px!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;border-radius:12px!important}.pc-page-context{max-width:calc(100vw - 154px)!important}.pc-page-context strong{font-size:.9rem!important}}
