.portal-nav-groups{display:grid;gap:7px;padding:4px 0}
.portal-nav-group{display:grid;gap:3px;min-width:0}
.portal-nav-group-trigger{width:100%;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:46px;padding:0 13px;border:1px solid transparent;border-radius:8px;color:#dbe6f2;background:transparent;text-align:left}
.portal-nav-group-trigger:hover,.portal-nav-group-trigger:focus-visible,.portal-nav-group.is-open>.portal-nav-group-trigger{color:#fff;border-color:rgba(82,204,214,.2);background:rgba(0,169,183,.13);transform:none}
.portal-nav-group-trigger svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.portal-nav-group-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700}
.portal-nav-groups[data-portal-nav-role="client"] .portal-nav-group-trigger>span{font-size:inherit;font-weight:400}
.portal-nav-group-trigger>i{font-size:14px;font-style:normal;transition:transform .18s ease}
.portal-nav-group.is-open>.portal-nav-group-trigger>i{transform:rotate(180deg)}
.portal-nav-group-items{display:grid;gap:2px;margin:0 0 4px 21px;padding:2px 0 3px 14px;border-left:1px solid rgba(169,187,209,.26)}
.portal-nav-group-items[hidden]{display:none}
.portal-nav-subitem{position:relative;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:36px;padding:6px 9px;border:0;border-radius:7px;color:#b9c9da;background:transparent;text-align:left;font-size:12px}
.portal-nav-subitem:hover,.portal-nav-subitem:focus-visible{color:#fff;background:rgba(255,255,255,.06);transform:none}
.portal-nav-subitem.active{--portal-nav-active-color:#fff;--portal-nav-active-background:rgba(0,169,183,.17);color:var(--portal-nav-active-color);background:var(--portal-nav-active-background);box-shadow:inset 2px 0 var(--teal2)}
.portal-nav-subitem.active:hover,.portal-nav-subitem.active:focus-visible{color:var(--portal-nav-active-color);background:var(--portal-nav-active-background);transform:none}
.portal-nav-subitem small{display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;color:#d9e6ef;background:rgba(255,255,255,.1);font-size:9px}
.portal-nav-subitem.active small{color:var(--navy);background:#fff}
.portal-nav-subitem[data-portal-nav-item="bookings-cancellation-pending"]{color:#f2c777}.portal-nav-subitem[data-portal-nav-item="bookings-cancellation-pending"].active{--portal-nav-active-color:#fff;--portal-nav-active-background:rgba(231,131,25,.22);color:var(--portal-nav-active-color);background:var(--portal-nav-active-background);box-shadow:inset 2px 0 var(--orange)}
.portal-nav-subitem[data-portal-nav-item="bookings-cancelled"]{color:#f1a39c}.portal-nav-subitem[data-portal-nav-item="bookings-cancelled"].active{--portal-nav-active-color:#fff;--portal-nav-active-background:rgba(239,91,77,.2);color:var(--portal-nav-active-color);background:var(--portal-nav-active-background);box-shadow:inset 2px 0 var(--coral)}
.portal-nav-subitem[data-portal-nav-item="bookings-confirmed"]{color:#8ed5ae}.portal-nav-subitem[data-portal-nav-item="bookings-confirmed"].active{--portal-nav-active-color:#fff;--portal-nav-active-background:rgba(22,148,94,.2);color:var(--portal-nav-active-color);background:var(--portal-nav-active-background);box-shadow:inset 2px 0 var(--green)}
.portal-nav-subitem[data-portal-nav-item="bookings-sent"]{color:#83d3da}.portal-nav-subitem[data-portal-nav-item="bookings-sent"].active{--portal-nav-active-color:#fff;--portal-nav-active-background:rgba(0,169,183,.2);color:var(--portal-nav-active-color);background:var(--portal-nav-active-background);box-shadow:inset 2px 0 var(--teal2)}
.portal-nav-sheet{display:none}
@media(max-width:1100px){
  .portal-nav-sheet{position:fixed;z-index:91;inset:0;display:block;visibility:hidden;pointer-events:none}
  .portal-nav-sheet.open{visibility:visible;pointer-events:auto}
  .portal-nav-sheet-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;background:rgba(7,23,59,.35)}
  .portal-nav-sheet-panel{position:absolute;right:0;bottom:0;left:0;max-height:min(78vh,680px);overflow:auto;padding:18px 16px calc(96px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;color:var(--navy);background:#fff;box-shadow:0 -18px 55px rgba(7,23,59,.2)}
  .portal-nav-sheet .portal-nav-groups{gap:10px}
  .portal-nav-sheet .portal-nav-group{padding:7px;border:1px solid var(--line);border-radius:13px;background:#fff}
  .portal-nav-sheet .portal-nav-group-trigger{color:var(--navy)}
  .portal-nav-sheet .portal-nav-group-trigger:hover,.portal-nav-sheet .portal-nav-group-trigger:focus-visible,.portal-nav-sheet .portal-nav-group.is-open>.portal-nav-group-trigger{color:var(--navy);border-color:#b8dce0;background:var(--aqua)}
  .portal-nav-sheet .portal-nav-group-items{margin-left:19px;border-left-color:var(--line)}
  .portal-nav-sheet .portal-nav-subitem{min-height:42px;color:var(--muted);font-size:13px}
  .portal-nav-sheet .portal-nav-subitem:hover,.portal-nav-sheet .portal-nav-subitem:focus-visible{color:var(--navy);background:var(--soft)}
  .portal-nav-sheet .portal-nav-subitem.active{--portal-nav-active-color:var(--teal);--portal-nav-active-background:var(--aqua);color:var(--portal-nav-active-color);background:var(--portal-nav-active-background)}
  .portal-nav-sheet .portal-nav-subitem.active:hover,.portal-nav-sheet .portal-nav-subitem.active:focus-visible{color:var(--portal-nav-active-color);background:var(--portal-nav-active-background);transform:none}
  .portal-nav-sheet .portal-nav-subitem small{color:var(--muted);background:var(--soft)}
}
@media(prefers-reduced-motion:reduce){.portal-nav-group-trigger>i{transition:none}}

/* Keep the staff navigation dimension stable while groups open or refresh. */
.portal-grouped-nav{width:100%;min-width:0;overflow:hidden}
.sidebar{overflow-y:auto;overflow-x:hidden}
.sidebar nav{width:100%;min-width:0}
.portal-nav-groups{width:100%;min-width:0}
.portal-nav-group-trigger{min-width:0;grid-template-columns:22px minmax(0,1fr) 18px}
.portal-nav-group-items{min-width:0;overflow:hidden}
.portal-nav-subitem{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) max-content;justify-content:initial}
.portal-nav-subitem>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
