/* TBC v1.7.9.1 - consolidated operations UI */

:root{
  --calm-green:#07493f;
  --calm-green-2:#063d35;
  --calm-green-soft:#e8f2ed;
  --calm-gold:#e8ad2f;

  --calm-bg:#f6f4ef;
  --calm-paper:#fff;
  --calm-paper-soft:#faf9f6;

  --calm-ink:#183129;
  --calm-muted:#6d7772;

  --calm-line:#e5e0d7;
  --calm-line-strong:#d9d2c7;

  --calm-radius:16px;
  --calm-shadow:0 5px 16px rgba(29,49,42,.035);
  --tbc-phone-gutter:16px;
}

/* -------------------------------------------------------------
   App canvas
   ------------------------------------------------------------- */

.shell,
.pp-shell{
  background:var(--calm-green-2)!important;
}

.main,
.pp-main{
  background:var(--calm-bg)!important;
  color:var(--calm-ink)!important;
  background-image:none!important;
}

.content,
.pp-content{
  background:transparent!important;
}

/* -------------------------------------------------------------
   Calm sidebar
   ------------------------------------------------------------- */

.sidebar,
.pp-sidebar{
  background:linear-gradient(180deg,#07493f 0%,#053f36 100%)!important;
  background-image:none!important;
  border-right:0!important;
}

.sidebar .brand,
.pp-sidebar .pp-brand{
  padding-bottom:11px!important;
  border-bottom:0!important;
}

.sidebar .brand p,
.pp-sidebar .pp-brand small{
  margin-left:3px!important;
  color:rgba(255,255,255,.54)!important;
  font-size:8px!important;
  font-weight:850!important;
  letter-spacing:.18em!important;
}

.nav,
.pp-nav{
  gap:1px!important;
}

.nav button,
.nav a,
.pp-nav a,
.nav-dropdown-toggle,
.tbc-pp-nav-parent{
  min-height:40px!important;

  padding:9px 10px!important;

  border:0!important;
  border-radius:9px!important;

  color:rgba(255,255,255,.82)!important;
  background:transparent!important;

  font-size:12px!important;
  font-weight:690!important;

  box-shadow:none!important;
}

.nav button:hover,
.nav a:hover,
.pp-nav a:hover,
.nav-dropdown-toggle:hover,
.tbc-pp-nav-parent:hover{
  background:rgba(255,255,255,.055)!important;
  color:#fff!important;
}

.nav button.active,
.nav a.active,
.pp-nav a.active{
  background:#f0c766!important;
  color:#073f36!important;
  border-radius:10px!important;
}

.nav-num,
.pp-nav .icon{
  width:24px!important;
  height:24px!important;
  min-width:24px!important;

  background:transparent!important;
  border:0!important;

  color:rgba(255,255,255,.66)!important;

  font-size:11px!important;
}

.nav button.active .nav-num,
.nav a.active .nav-num,
.pp-nav a.active .icon{
  color:#073f36!important;
}

.nav-dropdown,
.tbc-pp-nav-group{
  margin:1px 0!important;
  padding:0!important;

  border:0!important;
  border-radius:0!important;

  background:transparent!important;

  overflow:hidden!important;
}

.nav-dropdown-items,
.tbc-pp-nav-items{
  gap:0!important;
  padding:2px 0 7px 31px!important;
}

.nav-dropdown-items button,
.nav-dropdown-items a,
.tbc-pp-nav-items a,
.tbc-pp-nav-items button{
  min-height:29px!important;

  padding:5px 8px!important;

  border-radius:7px!important;

  color:rgba(255,255,255,.66)!important;

  font-size:10.5px!important;
  font-weight:610!important;
}

.nav-dropdown-items .nav-num,
.tbc-pp-nav-items .icon{
  display:none!important;
}

.nav-dropdown.open > .nav-dropdown-toggle,
.tbc-pp-nav-group.open > .tbc-pp-nav-parent{
  background:rgba(255,255,255,.09)!important;
  color:#f5faf7!important;
}

.nav-chevron{
  margin-left:auto!important;
  opacity:.58!important;

  transition:transform .18s ease!important;
}

.nav-dropdown.open > .nav-dropdown-toggle .nav-chevron,
.tbc-pp-nav-group.open > .tbc-pp-nav-parent .nav-chevron{
  transform:rotate(180deg)!important;
}

.nav-group-label,
.pp-nav-label{
  margin:15px 8px 7px!important;

  color:rgba(255,255,255,.38)!important;

  font-size:7.5px!important;
  font-weight:900!important;
  letter-spacing:.16em!important;
}

.sidebar-foot,
.pp-sidebar-footer{
  padding-top:12px!important;

  border-top:1px solid rgba(255,255,255,.09)!important;

  background:transparent!important;

  box-shadow:none!important;

  color:rgba(255,255,255,.58)!important;

  font-size:9.5px!important;
  line-height:1.35!important;
}

.sidebar-foot strong,
.pp-sidebar-footer strong{
  color:#fff!important;
  font-size:10.5px!important;
}

/* Dropdown visibility repair */
.sidebar .nav-dropdown:not(.open) > .nav-dropdown-items,
.sidebar .tbc-pp-nav-group:not(.open) > .tbc-pp-nav-items{
  display:none!important;
}

.sidebar .nav-dropdown.open > .nav-dropdown-items,
.sidebar .tbc-pp-nav-group.open > .tbc-pp-nav-items{
  display:grid!important;
}

/* -------------------------------------------------------------
   Top bar
   ------------------------------------------------------------- */

.tbc-app-topbar{
  position:sticky;
  top:0;
  z-index:20;
  width:100%;
  height:auto!important;
  min-height:0!important;
  padding:0!important;
  background:rgba(255,255,255,.91)!important;
  border-bottom:1px solid var(--calm-line)!important;
  box-shadow:none!important;
  backdrop-filter:blur(14px)!important;
}

.tbc-app-topbar::after{display:none!important}

.tbc-app-topbar-inner{
  --header-action-size:56px;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:12px 20px;
  padding-block:16px;
}
.tbc-app-topbar-copy{grid-column:1;grid-row:1;min-width:0}
.tbc-app-topbar-context{grid-column:1/-1;grid-row:2;min-width:0}
.tbc-app-topbar-context:empty{display:none}

.tbc-app-topbar-copy h2{
  margin:0!important;
  color:var(--calm-ink)!important;
  font-family:inherit!important;
  font-size:14px!important;
  font-weight:760!important;
  letter-spacing:0!important;
  line-height:1.1!important;
  overflow-wrap:anywhere;
}
.tbc-app-topbar-copy p{
  margin:6px 0 0!important;
  color:var(--calm-muted)!important;
  font-size:10.5px!important;
  line-height:1.25!important;
}

.top-controls .control,
.top-controls input,
.top-controls select{min-height:40px!important}

.top-controls .control,
.top-controls input,
.top-controls select,
.tbc-app-topbar-actions .tbc-help-btn,
.tbc-app-topbar-actions .tbc-notify-bell{
  border:1px solid var(--calm-line-strong)!important;
  border-radius:10px!important;
  background:#fff!important;
  color:var(--calm-ink)!important;
  box-shadow:none!important;
}

.tbc-app-topbar-actions{
  grid-column:2;
  grid-row:1;
  align-self:start;
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  flex-wrap:nowrap;
  gap:12px;
  margin:0;
}
.tbc-app-topbar .tbc-app-topbar-actions > *{
  flex:0 0 auto;
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  height:var(--header-action-size)!important;
  min-height:var(--header-action-size)!important;
  margin:0!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.tbc-app-topbar-actions .tbc-help-btn{width:80px!important;min-width:80px!important;padding:0 16px!important;font-size:13px!important}
.tbc-app-topbar-actions .tbc-notify-bell{width:var(--header-action-size)!important;min-width:var(--header-action-size)!important;padding:0!important;font-size:18px!important}

@media screen{
  .tbc-app-topbar{display:block!important}
}
@media screen and (min-width:761px){
  .tbc-app-topbar .tbc-app-topbar-inner,
  .tbc-app-content{
    box-sizing:border-box;
    width:min(1280px,calc(100% - 64px));
    max-width:1280px;
    margin-inline:auto;
    padding-inline:0!important;
  }
  .tbc-app-topbar .top-controls .control{
    min-width:0;
    height:44px!important;
    min-height:44px!important;
  }
  .tbc-app-topbar .staff-top-lock > span{min-width:0;flex:1 1 0}
  .tbc-app-topbar .staff-top-lock strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
@media screen and (min-width:1200px){
  .tbc-app-topbar-inner:has(.tbc-app-topbar-context:not(:empty)){grid-template-columns:minmax(0,1fr) auto auto}
  .tbc-app-topbar-inner:has(.tbc-app-topbar-context:not(:empty)) .tbc-app-topbar-context{grid-column:2;grid-row:1;max-width:560px}
  .tbc-app-topbar-inner:has(.tbc-app-topbar-context:not(:empty)) .tbc-app-topbar-actions{grid-column:3}
}
@media screen and (max-width:1199px){
  .tbc-app-topbar-context .top-controls,
  .tbc-app-topbar-context .staff-top-lock{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;
    overflow:visible;
  }
  .tbc-app-topbar-context .top-controls > *{width:100%;min-width:0;max-width:100%}
  .tbc-app-topbar-context .top-controls > :only-child{grid-column:1/-1}
}
@media screen and (max-width:900px){
  .tbc-app-topbar-inner{--header-action-size:52px;column-gap:16px}
}
@media screen and (max-width:760px){
  .tbc-app-topbar-inner{
    width:100%;
    padding:max(12px,env(safe-area-inset-top)) var(--tbc-phone-gutter) 12px;
  }
  .tbc-app-topbar-copy h2{font-size:17px!important}
  .tbc-app-topbar-copy p{font-size:10px!important}
  .tbc-app-topbar-context .control{height:44px;min-height:44px!important;font-size:16px}
}
@media screen and (max-width:480px){
  .tbc-app-topbar-inner{grid-template-columns:minmax(0,1fr)}
  .tbc-app-topbar-actions{grid-column:1;grid-row:2;justify-content:flex-start}
  .tbc-app-topbar-context{grid-row:3}
}
@media screen and (max-width:430px){
  .tbc-app-topbar-context .top-controls,
  .tbc-app-topbar-context .staff-top-lock{grid-template-columns:minmax(0,1fr)}
}

/* -------------------------------------------------------------
   Page hierarchy
   ------------------------------------------------------------- */

.content,
.pp-content{
  padding-top:28px!important;
}

.page-head,
.pp-page-head{
  margin-bottom:20px!important;
}

.page-head h1,
.page-head h2,
.page-head h3,
.pp-page-head h1,
.pp-page-head h2,
.pp-page-head h3{
  margin:5px 0 7px!important;

  color:#17352d!important;

  font-family:Georgia,'Times New Roman',serif!important;
  font-size:32px!important;
  line-height:1.04!important;
  letter-spacing:-.035em!important;
}

.page-head p,
.pp-page-head p{
  max-width:780px!important;

  margin:0!important;

  color:var(--calm-muted)!important;

  font-size:13px!important;
  line-height:1.45!important;
}

.tbc-page-eyebrow{
  display:block!important;

  color:#66766f!important;

  font-size:8px!important;
  font-weight:950!important;
  letter-spacing:.17em!important;

  text-transform:uppercase!important;
}

/* -------------------------------------------------------------
   Cards and metrics
   ------------------------------------------------------------- */

.card,
.metric,
.pp-card,
.pp-metric{
  border:1px solid var(--calm-line)!important;
  border-radius:var(--calm-radius)!important;

  background:var(--calm-paper)!important;
  background-image:none!important;

  box-shadow:var(--calm-shadow)!important;
}

.card:hover,
.pp-card:hover{
  transform:none!important;
  border-color:var(--calm-line-strong)!important;
  box-shadow:var(--calm-shadow)!important;
}

.grid{
  gap:14px!important;
}

.metric{
  padding:19px!important;
}

.metric-label,
.pp-metric>span{
  color:#718078!important;

  font-size:8px!important;
  font-weight:900!important;
  letter-spacing:.13em!important;
}

.metric-value,
.pp-metric>strong{
  color:#17352d!important;

  font-size:28px!important;
  font-weight:800!important;
}

.metric-note,
.pp-metric>small{
  color:var(--calm-muted)!important;

  font-size:10.5px!important;
}

/* -------------------------------------------------------------
   Buttons
   ------------------------------------------------------------- */

/* Low specificity preserves component layouts and conditional visibility. */
:where(button, .btn, .pp-btn, .tbc-help-actions a, .tbc-help-open):not(:where(
  [hidden],
  .sidebar .nav *,
  .nav-dropdown-items *,
  .tbc-pp-nav-items *,
  .pp-nav *,
  .mobile-nav *,
  .pp-mobile-nav *,
  .mobile-more-item,
  .pp-mobile-more-item,
  .staff-mobile-quick-grid *,
  .inventory-kind-tabs *,
  .team-branch-head,
  .roster-cell,
  .my-schedule-month-day
)){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:6px;
}

.btn,
.pp-btn{
  min-height:38px!important;

  padding:0 13px!important;

  border:1px solid var(--calm-line-strong)!important;
  border-radius:10px!important;

  background:#fff!important;
  color:var(--calm-green)!important;

  box-shadow:none!important;

  font-size:10.5px!important;
  font-weight:760!important;
}

.btn:hover,
.pp-btn:hover{
  border-color:#c9c0b3!important;
  background:#fbfaf7!important;
}

.btn.primary,
.pp-btn.primary{
  border-color:var(--calm-green)!important;

  background:var(--calm-green)!important;
  color:#fff!important;
}

.btn.small,
.pp-btn.small{
  min-height:32px!important;
  padding-inline:10px!important;
}

/* -------------------------------------------------------------
   Settings / Branches & Product Catalog
   ------------------------------------------------------------- */

.tbc-catalog-page [hidden],.product-editor-shell [hidden]{display:none!important}
.tbc-catalog-page{min-width:0}
.catalog-tabs{display:flex;gap:4px;border-bottom:1px solid var(--calm-line);margin-bottom:20px}
.catalog-tabs button{min-height:42px;padding:10px 18px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--calm-muted);font:inherit;font-size:13px;font-weight:650;cursor:pointer}
.catalog-tabs button[aria-selected="true"]{border-bottom-color:#27785f;color:#173f35}
.tbc-catalog-page .page-head{align-items:center!important;gap:16px!important}
.tbc-catalog-page .page-head .btn{flex-shrink:0}
.catalog-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,.5fr) minmax(180px,.65fr) minmax(110px,.3fr);gap:12px;margin:20px 0}
.catalog-toolbar label{display:grid;min-width:0;gap:5px;font-size:11px;font-weight:650;color:#64726b}
.catalog-toolbar input,.catalog-toolbar select,.catalog-subcategory-filter select,.category-manager-row input{box-sizing:border-box;width:100%;min-width:0;min-height:42px;padding:9px 12px;border:1px solid #d6ded8;border-radius:6px;background:#fff;color:#213f34;font:inherit;font-size:13px}
.catalog-group{margin-bottom:20px}
.catalog-group h4{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:0;padding:9px 0;border-bottom:1px solid #d6ded8;font:inherit;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:0;color:#536b5f;overflow-wrap:anywhere}
.catalog-group h4 span{font-size:11px;font-weight:500;color:#718078}
.catalog-subgroup h5{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:0;padding:14px 0 8px;border-bottom:1px solid #e1e6e2;font:inherit;font-size:12px;font-weight:650;line-height:1.4;letter-spacing:0;color:#536b5f}
.catalog-subgroup-name{min-width:0;overflow-wrap:anywhere}
.catalog-subgroup [data-catalog-subcount]{font-size:11px;font-weight:500;white-space:nowrap;color:#718078}
.catalog-subgroup h5 .catalog-archived{margin:0;vertical-align:middle}
.catalog-product-row{box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) 105px 115px 24px;align-items:center;gap:16px;width:100%;min-height:76px;padding:12px 4px;border:0;border-bottom:1px solid #e1e6e2;background:transparent;color:#173f35;font:inherit;text-align:left;cursor:pointer}
.catalog-product-row:hover{background:#eff5f1}
.catalog-product-row:focus-visible{outline:2px solid #287a60;outline-offset:2px}
.catalog-product-main{display:flex;gap:12px;align-items:center;min-width:0}
.catalog-product-main>span{min-width:0;overflow-wrap:anywhere}
.catalog-product-main img{width:44px;height:44px;flex:0 0 44px;object-fit:contain;border:1px solid #e1e6e2;border-radius:6px;background:#fff}
.catalog-product-row strong{display:block;font-size:13px;font-weight:650}
.catalog-product-row small{display:block;margin-top:3px;color:#687970;font-size:11px;line-height:1.4}
.catalog-product-price{text-align:right}
.catalog-product-availability{font-size:12px}
.catalog-archived{display:inline-block;font-size:11px;font-weight:600;color:#794744;background:#f5e9e7;padding:2px 6px;border-radius:4px;margin-top:4px}
.product-editor-modal [hidden]{display:none!important}
.product-production-location{padding:16px 0;border-bottom:1px solid #dce3de}
.product-component-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 140px 44px;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid #dce3de}
.product-component-row strong{font-size:13px;overflow-wrap:anywhere}
.product-component-row label,.product-delete-confirm{display:grid;gap:6px;min-width:0;font-size:12px}
.product-component-row input,.product-component-picker input,.product-component-picker select,.product-delete-confirm input{box-sizing:border-box;min-width:0;width:100%;height:44px;padding:10px 12px;border:1px solid #d6ded8;border-radius:6px;background:#fff;color:#213f34;font:inherit;font-size:13px}
.product-component-row button{width:44px;height:44px;padding:0;align-self:end;font-size:20px}
.product-component-picker{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:16px;margin-top:18px}
.product-includes-heading{font-size:13px;margin:24px 0 8px}
.product-includes{margin:0;padding-left:20px;font-size:13px;line-height:1.8;overflow-wrap:anywhere}
.product-danger-zone{border-top:1px solid #e6c6c2;padding-top:24px}
.product-danger-zone .product-editor-heading{color:#903b36}
.product-lifecycle-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:start;padding:18px 0}
.product-lifecycle-row strong{font-size:13px}
.product-lifecycle-row p{font-size:12px;line-height:1.6;color:#6c716d;margin:6px 0 0}
.product-delete-confirm{margin-top:16px;max-width:400px;overflow-wrap:anywhere}
[data-lifecycle-error]{font-size:13px;color:#9a342e;overflow-wrap:anywhere}
@media(max-width:600px){
  .product-component-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:12px}
  .product-component-row strong{grid-column:1/-1}
  .product-component-picker,.product-lifecycle-row{grid-template-columns:minmax(0,1fr);gap:16px}
  .product-lifecycle-row>.btn{justify-self:start;max-width:100%;white-space:normal}
}
.catalog-edit{font-size:23px;line-height:1;text-align:center;color:#63786e}
.catalog-branches .branch-settings-row{padding:14px 0!important;border:0!important;border-bottom:1px solid #d6ded8!important;border-radius:0!important;background:transparent!important}
.catalog-branches .branch-settings-row>div{min-width:0;overflow-wrap:anywhere}
.catalog-branches .branch-settings-actions{gap:10px;flex-wrap:wrap}
@media(max-width:1000px){
  .catalog-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .catalog-toolbar label:first-child{grid-column:1/-1}
}
@media(max-width:760px){
  .tbc-catalog-page .page-head{align-items:flex-start!important;flex-wrap:wrap!important}
  .catalog-tabs{margin-bottom:16px}
  .catalog-toolbar{gap:10px;margin:16px 0}
  .catalog-toolbar input,.catalog-toolbar select{font-size:12px;padding-inline:8px}
  .catalog-product-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 24px;gap:8px 12px}
  .catalog-product-main{grid-column:1/3}
  .catalog-edit{grid-column:3;grid-row:1/3}
  .catalog-product-price{grid-column:1;grid-row:2;text-align:left;display:flex;gap:5px;align-items:baseline}
  .catalog-product-availability{grid-column:2;grid-row:2;text-align:right}
  .catalog-product-availability small{font-size:10px}
  .catalog-branches .branch-settings-row{align-items:flex-start;flex-direction:column;gap:10px}
}

/* -------------------------------------------------------------
   Tables and generic lists
   ------------------------------------------------------------- */

.table-wrap,
.pp-table-wrap{
  border:1px solid var(--calm-line)!important;
  border-radius:12px!important;

  background:#fff!important;

  box-shadow:none!important;
}

table,
.pp-table{
  background:#fff!important;
}

thead th,
.pp-table thead th{
  background:#f4f2ed!important;
  color:#66746d!important;

  border-color:var(--calm-line)!important;

  font-size:8px!important;
  letter-spacing:.09em!important;
}

tbody td,
.pp-table tbody td{
  border-color:var(--calm-line)!important;

  font-size:10.5px!important;
}

/* -------------------------------------------------------------
   Notices / pills
   ------------------------------------------------------------- */

.notice,
.pp-alert{
  border-width:1px!important;
  border-radius:12px!important;

  box-shadow:none!important;
}

/* -------------------------------------------------------------
   Shared phone rail and single-row dock. Tablet rules stay separate.
   ------------------------------------------------------------- */

@media(max-width:760px){

  .content,
  .pp-content{
    box-sizing:border-box;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-inline:0!important;
    padding:17px var(--tbc-phone-gutter) calc(110px + env(safe-area-inset-bottom))!important;
  }

  .shell,
  .pp-shell{
    display:block!important;
  }

  .sidebar,
  .pp-sidebar{
    display:none!important;
  }

  .main,
  .pp-main,
  .content > *,
  .pp-content > *{
    min-width:0;
    max-width:100%;
  }

  .pp-content .pp-page-head{
    display:grid;
    grid-template-columns:minmax(0,1fr);
  }

  .pp-content .pp-page-head > *,
  .pp-content .pp-controls,
  .pp-content .pp-field{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .pp-content .pp-controls:not(.my-schedule-date-controls){
    display:grid;
    grid-template-columns:minmax(0,1fr);
  }

  .content .card,
  .pp-content .pp-card{
    width:100%;
    max-width:100%;
    min-width:0;
    margin-inline:0;
  }

  .table-wrap,
  .pp-table-wrap,
  .roster-scroll{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }

  /* One column per existing item respects permission-limited menus too. */
  .mobile-nav,
  .pp-mobile-nav{
    position:fixed;
    left:12px;
    right:12px;
    bottom:calc(10px + env(safe-area-inset-bottom));
    z-index:180;
    box-sizing:border-box;
    width:calc(100vw - 24px);
    max-width:calc(100vw - 24px);
    height:auto;
    min-height:74px;
    max-height:82px;
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:minmax(0,1fr);
    grid-template-rows:1fr;
    flex-wrap:nowrap;
    align-items:stretch;
    gap:4px;
    padding:6px;
    border:1px solid rgba(151,196,177,.24);
    border-radius:22px;
    -webkit-backdrop-filter:blur(18px);
    backdrop-filter:blur(18px);
  }

  .pp-mobile-nav:has(> :nth-child(5):last-child){
    grid-template-columns:repeat(5,minmax(0,1fr));
  }

  .mobile-nav > :is(a,button),
  .pp-mobile-nav > *{
    box-sizing:border-box;
    width:100%;
    min-width:0;
    max-width:none;
    grid-row:1;
    height:60px;
    min-height:60px;
    margin:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    padding:6px 2px;
    border:0;
    border-radius:14px;
    background:transparent;
    font-size:8.5px;
    font-weight:850;
    line-height:1;
    letter-spacing:0;
    text-align:center;
    text-decoration:none;
    white-space:nowrap;
  }

  .mobile-nav .mi,
  .pp-mobile-nav .icon{
    flex:0 0 28px;
    width:32px;
    height:28px;
    display:grid;
    place-items:center;
    margin:0;
    padding:0;
    border-radius:10px;
    font-size:18px;
    line-height:1;
    letter-spacing:0;
  }

  .mobile-nav > .active,
  .pp-mobile-nav > .active{
    background:rgba(255,255,255,.10)!important;
    color:var(--tbc-brand-gold-2,#f0c766)!important;
  }

  .mobile-nav > .active .mi,
  .pp-mobile-nav > .active .icon{
    background:rgba(255,255,255,.12);
  }

  .mobile-more-trigger .mi,
  .pp-mobile-more-trigger .icon{
    font-size:15px;
  }

  .page-head h1,
  .page-head h2,
  .page-head h3,
  .pp-page-head h1,
  .pp-page-head h2,
  .pp-page-head h3{
    font-size:29px!important;
  }

  .card,
  .metric,
  .pp-card,
  .pp-metric{
    border-radius:15px!important;
    box-shadow:none!important;
  }

}

/* ==========================================================================
   TBC v1.7.9.1 - CONSOLIDATED UI
   One final visual layer. No JS shell/wheel hacks.
   ========================================================================== */

/* -----------------------------
   Desktop sidebar scrolling
   ----------------------------- */
@media (min-width: 761px) {
  .sidebar {
    position: sticky !important;
    top: 0 !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 0 !important;
    max-height: 100dvh !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(255,255,255,.24) transparent !important;
  }

  .sidebar::-webkit-scrollbar,
  .pp-sidebar::-webkit-scrollbar {
    width: 6px !important;
  }

  .sidebar::-webkit-scrollbar-thumb,
  .pp-sidebar::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,.25) !important;
    border-radius: 999px !important;
  }

  /* Do not create competing nested vertical scroll surfaces. */
  .sidebar > .nav {
    overflow: visible !important;
    min-height: auto !important;
    max-height: none !important;
  }

  .sidebar > .sidebar-foot {
    margin-top: 18px !important;
  }
}

/* -----------------------------
   Product editor
   ----------------------------- */
.product-editor-modal{
  --catalog-gutter:24px;
  --catalog-section-gap:32px;
  --catalog-column-gap:24px;
  --catalog-row-gap:18px;
  --catalog-gap:16px;
  --catalog-small-gap:8px;
  width:min(1080px,calc(100vw - 48px))!important;
  max-height:calc(100dvh - 32px)!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
.product-editor-backdrop{
  z-index:10060!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  padding:16px!important;
}
.product-editor-modal .modal-head,
.product-editor-modal .modal-actions{
  position:static!important;
  flex:0 0 auto!important;
  padding:var(--catalog-gap) var(--catalog-gutter)!important;
  background:#fff!important;
}
.product-editor-modal .modal-head{border-bottom:1px solid var(--calm-line,#e5e0d7)!important}
.product-editor-modal .modal-head h3{margin:0!important;font-size:17px!important}
.product-editor-modal .modal-head p{
  margin:var(--catalog-small-gap) 0 0!important;
  color:var(--calm-muted,#6d7772)!important;
  font-size:11px!important;
  line-height:1.4!important;
}
.product-editor-modal .modal-body{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding:var(--catalog-gutter)!important;
  background:#fff!important;
  overscroll-behavior:contain!important;
  touch-action:pan-y!important;
  -webkit-overflow-scrolling:touch;
}
.product-editor-modal .modal-actions{
  border-top:1px solid var(--calm-line,#e5e0d7)!important;
  flex-wrap:wrap;
  gap:var(--catalog-small-gap);
}
.product-editor-modal [data-modal-error]{
  flex:0 0 100%;
  margin:0;
  color:#983e32;
  font-size:12px;
  line-height:1.4;
  overflow-wrap:anywhere;
}
.product-editor-modal [data-modal-error][hidden]{display:none!important}

/* One body gutter owns the edges of every editor section and divider. */
.catalog-head-actions{display:flex;flex-wrap:wrap;gap:8px}
.catalog-subcategory-filter{display:grid;gap:6px;max-width:320px;margin:0 0 20px;font-size:12px}
.catalog-subcategory-filter[hidden]{display:none}
.catalog-subcategory-filter select{width:100%;min-width:0}
.category-manager-group{border-bottom:1px solid #d7dfda;padding:16px 0}
.category-manager-row{display:flex;align-items:center;gap:12px;margin:10px 0;min-width:0}
.category-manager-row label{display:grid;gap:5px;flex:1;min-width:0;font-size:11px}
.category-manager-row input{width:100%;min-width:0;box-sizing:border-box}
.category-manager-subs{padding-left:24px}
.category-manager-actions{display:flex;flex-wrap:wrap;gap:6px}
.category-manager-modal .category-icon{display:grid;place-items:center;flex:0 0 36px;width:36px;min-width:36px;height:36px;padding:0;border-radius:6px;font-size:18px}
.category-manager-modal [data-category-error]{color:#983e32;overflow-wrap:anywhere}
@media(max-width:600px){
  .category-manager-subs{padding-left:12px}
  .category-manager-row{flex-wrap:wrap}
  .category-manager-row label{flex-basis:100%}
  .category-manager-actions{justify-content:flex-end;width:100%}
  .category-manager-add{justify-content:flex-end}
}
.product-editor-shell{display:grid;gap:var(--catalog-section-gap)}
.product-editor-modal .catalog-section-inner{box-sizing:border-box;width:100%;min-width:0}
.product-basics-section{display:grid;gap:var(--catalog-gap)}
.product-editor-heading{margin:0;font-size:13px;font-weight:700}
.product-editor-intro{
  display:grid;
  grid-template-columns:320px minmax(0,1fr);
  gap:var(--catalog-section-gap);
  align-items:start;
}
.product-image-panel{
  display:grid;
  width:100%;
  max-width:320px;
  align-content:start;
  gap:var(--catalog-small-gap);
  min-width:0;
}
.product-photo-slot{display:grid;min-width:0;gap:var(--catalog-small-gap)}
.product-photos-title{font-size:13px}
.product-photo-label{margin:0;font-size:12px;font-weight:600}
.product-photo-slot + .product-photo-slot{margin-top:var(--catalog-gap)}
.product-image-preview{
  position:relative;
  box-sizing:border-box;
  width:100%;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px dashed #cfc8bd;
  border-radius:8px;
  background:#f6f3ed;
}
.product-image-preview.has-image{border-style:solid;background:#fff}
.product-image-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.product-image-empty{
  padding:var(--catalog-gap);
  display:grid;
  place-items:center;
  gap:var(--catalog-small-gap);
  color:#6f7b75;
  text-align:center;
}
.product-image-empty > span{color:#3f685a;font-size:24px}
.product-image-empty strong{color:#28483e;font-size:12px}
.product-image-empty small{max-width:200px;color:#7b8580;font-size:11px;line-height:1.4}
.product-image-actions{display:flex;align-items:center;gap:var(--catalog-small-gap);width:100%;min-width:0}
.product-image-upload{position:relative;overflow:hidden;flex:1 1 auto;min-width:0;text-align:center}
.product-image-help{display:block;margin:0;overflow-wrap:anywhere;color:#7b8580;font-size:11px;line-height:1.4}
.product-editor-modal .product-field-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  gap:var(--catalog-row-gap) var(--catalog-column-gap);
  min-width:0;
}
.product-editor-modal .product-field-wide{grid-column:1/-1}
.product-editor-modal .field{min-width:0;display:grid;align-content:start;gap:var(--catalog-small-gap)}
.product-editor-modal .field label{
  display:block;
  margin:0;
  color:#68756f;
  font-size:10px;
  font-weight:800;
  line-height:1.4;
  letter-spacing:0;
  text-transform:uppercase;
}
.product-editor-modal .field input,
.product-editor-modal .field select,
.product-editor-modal .field textarea,
.product-branch-price select,
.product-branch-price input{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  min-height:44px;
  height:44px;
  padding:var(--catalog-small-gap) 12px;
  border:1px solid #dcd5ca;
  border-radius:8px;
  background:#fff;
  color:#183129;
  box-shadow:none;
  font:inherit;
  font-size:13px;
}
.product-editor-modal .field input:focus,
.product-editor-modal .field select:focus,
.product-editor-modal .field textarea:focus,
.product-branch-price input:focus,
.product-branch-price select:focus{
  outline:0;
  border-color:#8eafa1;
  box-shadow:0 0 0 3px rgba(7,73,63,.08);
}
.product-editor-modal .field-help{display:block;margin:0;color:#7a837e;font-size:11px;line-height:1.4}
.product-measure-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--catalog-small-gap)}
.product-editor-section{border:0;border-top:1px solid var(--calm-line,#e5e0d7);border-radius:0;background:#fff}
.product-editor-section > summary{
  padding:var(--catalog-gap) 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--catalog-gap);
  list-style:none;
  cursor:pointer;
}
.product-editor-section > summary::-webkit-details-marker{display:none}
.product-editor-section > summary > span:first-child{display:grid;gap:var(--catalog-small-gap);min-width:0}
.product-editor-section > summary strong{color:#183129;font-size:13px}
.product-editor-section > summary small{color:#7a837e;font-size:11px;line-height:1.4}
.product-section-chevron{flex:0 0 auto;color:#65766e;transition:transform .16s ease}
.product-editor-section[open] .product-section-chevron{transform:rotate(180deg)}
.product-editor-section-body{padding:0}
.product-flow-note{
  margin-top:var(--catalog-gap);
  padding:var(--catalog-gap);
  border-radius:8px;
  background:#edf5f1;
  color:#3d5f52;
  font-size:11px;
  line-height:1.4;
}
.product-branch-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--catalog-gap);
}
.product-branch-toolbar p{margin:0;color:#6e7772;font-size:11px;line-height:1.4}
.product-branch-toolbar > div{display:flex;flex:0 0 auto;gap:var(--catalog-small-gap)}
.product-editor-modal .product-branch-toolbar .btn,
.product-editor-modal .product-image-actions .btn{min-height:44px!important;display:inline-flex;align-items:center;justify-content:center;border-radius:8px!important}
.product-branch-settings{margin-top:var(--catalog-gap)}
.product-branch-setting{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(0,490px);
  align-items:center;
  gap:var(--catalog-gap);
  padding:var(--catalog-row-gap) 0;
  border-bottom:1px solid #e2e7e3;
}
.product-branch-setting:last-child{border-bottom:0}
.product-branch-toggle{
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  align-items:center;
  gap:var(--catalog-gap);
  min-width:0;
  cursor:pointer;
}
.product-branch-toggle input{width:18px;height:18px;margin:0;accent-color:#256b51}
.product-branch-toggle span{display:grid;gap:var(--catalog-small-gap);min-width:0;overflow-wrap:anywhere}
.product-branch-toggle strong{display:block;font-size:12px}
.product-branch-toggle small{display:block;font-size:11px;color:#697c70;line-height:1.4}
.product-branch-pricing{display:grid;gap:var(--catalog-gap);min-width:0}
.product-branch-price{
  display:grid;
  grid-template-columns:minmax(0,1fr) 130px;
  align-items:center;
  gap:var(--catalog-gap);
  min-width:0;
}
.product-branch-price input{text-align:right}
.product-branch-price [data-branch-default-price],
.product-branch-price [data-branch-slice-effective]{text-align:right;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.product-branch-with-slices{grid-template-columns:minmax(180px,1fr) minmax(0,560px);align-items:start}
.product-branch-with-slices .product-branch-price{grid-template-columns:52px minmax(0,1fr) 130px}
.product-price-kind{color:#68756f;font-size:11px;font-weight:700}
.product-slice-error{grid-column:1/-1;color:#983e32;font-size:11px;line-height:1.4}
.product-master-size{display:grid;grid-template-columns:minmax(0,1fr) 200px;align-items:center;gap:var(--catalog-gap);padding:var(--catalog-row-gap) 0;border-bottom:1px solid #e2e7e3}
.product-master-size .field>span{font-size:11px;color:#68756f}
.product-master-size input[type="number"]{text-align:right}
.product-master-size input:disabled{background:#f4f6f4;color:#7a837e}
.product-drink-branch-sizes{display:grid;gap:var(--catalog-gap);min-width:0;border-top:1px solid #e2e7e3;padding-top:var(--catalog-gap)}
.product-drink-branch-sizes>small{font-size:12px;color:#68756f}
.product-branch-with-sizes{grid-template-columns:minmax(180px,1fr) minmax(0,560px);align-items:start}
.product-branch-with-sizes .product-branch-price{grid-template-columns:52px minmax(0,1fr) 130px}
.product-drink-size-price [data-drink-size-effective]{text-align:right;font-size:13px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.catalog-product-row .catalog-size-range{font-size:12px;line-height:1.5;overflow-wrap:anywhere}

@media (max-width:900px){
  .product-editor-intro{grid-template-columns:minmax(0,1fr)}
  .product-branch-setting{grid-template-columns:minmax(160px,1fr) minmax(0,1.5fr)}
  .product-branch-price{grid-template-columns:minmax(0,1fr) 110px}
  .product-branch-with-slices{grid-template-columns:minmax(0,1fr)}
  .product-branch-with-sizes{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  .product-editor-backdrop{padding:max(10px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom))!important}
  .product-editor-modal{
    --catalog-gutter:16px;
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    max-height:100%!important;
    min-height:0!important;
  }
  .product-editor-modal .field input,
  .product-editor-modal .field select,
  .product-branch-price input,
  .product-branch-price select{font-size:16px}
}
@media (max-width:600px){
  .product-editor-modal .product-field-grid{grid-template-columns:minmax(0,1fr)}
  .product-branch-setting{grid-template-columns:minmax(0,1fr)}
  .product-branch-price,
  .product-branch-with-slices .product-branch-price,
  .product-branch-with-sizes .product-branch-price{grid-template-columns:minmax(0,1fr)}
  .product-master-size{grid-template-columns:minmax(0,1fr)}
  .product-branch-price input{width:130px;justify-self:end}
  .product-branch-toolbar{align-items:flex-start;flex-direction:column}
}

/* -----------------------------
   People & Payroll — desktop
   ----------------------------- */
@media (min-width: 1001px) {
  .pp-shell {
    grid-template-columns: 290px minmax(0,1fr) !important;
    min-height: 100dvh !important;
  }

  /* One reliable sidebar scroll surface. */
  .pp-sidebar {
    position: sticky !important;
    top: 0 !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 0 !important;
    max-height: 100dvh !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(255,255,255,.24) transparent !important;
  }

  .pp-sidebar-footer {
    margin-top: 20px !important;
  }

  .pp-main {
    min-width: 0 !important;
  }

  .pp-content > * {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .pp-page-head,
  .my-schedule-head {
    width: 100% !important;
    max-width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) minmax(280px,420px) !important;
    align-items: start !important;
    gap: 22px 34px !important;
    margin: 0 0 20px !important;
  }

  .pp-page-head > div:first-child,
  .my-schedule-head > div:first-child {
    min-width: 0 !important;
    max-width: 760px !important;
  }

  .pp-page-head > .pp-controls,
  .pp-page-head > .pp-actions,
  .my-schedule-date-controls {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 420px !important;
    justify-self: end !important;
    align-self: start !important;
    margin: 0 !important;
  }

  .pp-grid,
  .pp-metrics,
  .payroll-summary,
  .my-schedule-metrics,
  .pp-table-wrap,
  .roster-scroll {
    width: 100% !important;
    max-width: 100% !important;
  }

  .pp-table-wrap,
  .roster-scroll {
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
  }

  /* Monthly Roster */
  #ppPage[data-pp-page="roster"] .pp-controls {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 8px 10px !important;
    align-items: end !important;
  }

  #ppPage[data-pp-page="roster"] .pp-controls > * {
    min-width: 0 !important;
    margin: 0 !important;
  }

  #ppPage[data-pp-page="roster"] .pp-controls > .pp-btn {
    grid-column: 1 / -1 !important;
    justify-self: start !important;
  }

  #ppPage[data-pp-page="roster"] .roster-scroll {
    border-radius: 14px !important;
  }

  /* My Schedule */
  #ppPage[data-pp-page="schedule"] .my-schedule-date-controls {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 8px !important;
    align-items: stretch !important;
  }

  #ppPage[data-pp-page="schedule"] .my-schedule-date-controls > * {
    min-width: 0 !important;
    margin: 0 !important;
  }

  #ppPage[data-pp-page="schedule"] .my-schedule-view-tabs {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  #ppPage[data-pp-page="schedule"] .my-schedule-metrics {
    display: grid !important;
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  }

  /* Employee / payroll / attendance pages use the same rails. */
  #ppPage[data-pp-page="employees"] .pp-page-head,
  #ppPage[data-pp-page="shifts"] .pp-page-head,
  #ppPage[data-pp-page="attendance"] .pp-page-head,
  #ppPage[data-pp-page="access"] .pp-page-head,
  #ppPage[data-pp-page="payroll"] .pp-page-head,
  #ppPage[data-pp-page="payslips"] .pp-page-head,
  #ppPage[data-pp-page="settings"] .pp-page-head,
  #ppPage[data-pp-page="dashboard"] .pp-page-head {
    align-items: start !important;
  }
}

/* Shared arrow reserve for native dropdowns across pages and dialogs. */
:root {
  --tbc-arrow-inset: 17px;
  --tbc-select-reserve: 48px;
  --tbc-select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 2l5 4 5-4' fill='none' stroke='%2353675d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
:root select:not([multiple]):is(:not([size]),[size="0"],[size="1"]) {
  appearance: none !important;
  -webkit-appearance: none !important;
  padding-left: 12px !important;
  padding-right: var(--tbc-select-reserve) !important;
  background-image: var(--tbc-select-chevron) !important;
  background-position: right var(--tbc-arrow-inset) center !important;
  background-size: 12px 8px !important;
  background-repeat: no-repeat !important;
  text-overflow: ellipsis;
}
/* Month Sales now uses the same background arrow, not a second overlay. */
.ms-select-wrap::after,
.ms-mode:has(> select)::after,
.reporting-top-controls > label:has(> select)::after {
  content: none !important;
}
/* Lucide chevron-right, arrow-up-right and arrow-left, using the existing icon license. */
:root {
  --tbc-button-arrow-slot: 32px;
  --tbc-button-arrow-size: 16px;
  --tbc-disclosure-slot: 20px;
  --tbc-disclosure-gap: 8px;
  --tbc-chevron-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
  --tbc-arrow-up-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10M7 17 17 7'/%3E%3C/svg%3E");
  --tbc-arrow-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 19-7-7 7-7M19 12H5'/%3E%3C/svg%3E");
  --tbc-log-out: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9'/%3E%3C/svg%3E");
}
/* Semantic trailing slots keep the label independent of the arrow. */
:root :is(.nav-dropdown-toggle,.team-branch-head,.product-editor-section > summary),
:root :is(.staff-today-workspace,.today-input-modal) .today-action:has(.today-action-arrow) {
  padding-right: var(--tbc-arrow-inset) !important;
}
:root :is(.nav-dropdown-toggle,.team-branch-head,.product-editor-section > summary) > span:first-of-type,
:root .nav-dropdown-toggle > span:not(.nav-num):not(.nav-chevron) {
  min-width: 0;
  overflow-wrap: anywhere;
}
:root :is(.nav-chevron,.team-branch-head .chevron,.product-section-chevron,.today-action-arrow) {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  width: var(--tbc-button-arrow-slot) !important;
  height: 20px;
  flex: 0 0 var(--tbc-button-arrow-slot) !important;
  align-self: center;
  margin-left: auto;
  font-size: 0 !important;
  line-height: 0;
  pointer-events: none;
  transform: none !important;
}
:root :is(.nav-chevron,.team-branch-head .chevron,.product-section-chevron,.today-action-arrow)::before,
:root .tbc-sidebar-toggle > span::before,
:root .pp-nav a[href="./"] > .icon::before,
:root :is(.sidebar-foot,.pp-sidebar-footer) button > .icon::before {
  content: '';
  display: block;
  width: var(--tbc-button-arrow-size);
  height: var(--tbc-button-arrow-size);
  flex: none;
  background-color: currentColor;
  mask: var(--tbc-chevron-right) center / contain no-repeat;
  pointer-events: none;
}
:root :is(.staff-today-workspace,.today-input-modal) .today-action-arrow::before { mask-image: var(--tbc-arrow-up-right); }
:root :is(.nav-dropdown.open > .nav-dropdown-toggle .nav-chevron,.team-branch:not(.collapsed) .chevron,.product-editor-section[open] .product-section-chevron)::before {
  transform: rotate(90deg);
}
/* Native details retain their keyboard behavior and each component's own height. */
:root details > summary:not(:has(.product-section-chevron)) {
  position: relative;
  list-style: none;
  padding-left: calc(var(--tbc-disclosure-slot) + var(--tbc-disclosure-gap)) !important;
  overflow-wrap: anywhere;
}
:root details > summary::marker { content: ''; }
:root details > summary::-webkit-details-marker { display: none; }
:root details > summary:not(:has(.product-section-chevron))::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: var(--tbc-disclosure-slot);
  height: 20px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: var(--tbc-chevron-right) center / 14px 14px no-repeat;
  pointer-events: none;
}
:root details[open] > summary:not(:has(.product-section-chevron))::before {
  transform: translateY(-50%) rotate(90deg);
}
/* Suppress older duplicate glyphs, but leave output values and labels untouched. */
:root .mr-denominations summary > span::before,
:root :is(.pp-staff-account,.staff-attendance-details) > summary::after {
  content: none !important;
}
/* Icon-only navigation stays symmetric; a back link keeps its adjacent icon. */
:root .tbc-sidebar-toggle > span,
:root .pp-nav a[href="./"] > .icon,
:root :is(.sidebar-foot,.pp-sidebar-footer) button > .icon {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  font-size: 0 !important;
  line-height: 0;
  pointer-events: none;
}
:root .tbc-sidebar-toggle > span::before { transform: rotate(180deg); }
:root .pp-nav a[href="./"] > .icon::before { mask-image: var(--tbc-arrow-left); }
:root :is(.sidebar-foot,.pp-sidebar-footer) button > .icon::before { mask-image: var(--tbc-log-out); }
:root :is(.sidebar-foot,.pp-sidebar-footer) button[data-staff-install] > .icon::before {
  mask-image: var(--tbc-arrow-left);
  transform: rotate(-90deg);
}
