/* V21.6.324 — last-mile accessibility, navigation and mobile stability.
 * Scoped to the portal; no data, prices, logos, billing or business permissions changed. */
.kbbp-app{--kbbp324-focus:#bc8a3e;--kbbp324-safe:env(safe-area-inset-bottom,0px)}
/* Keyboard paths must remain visible even on white or dark premium cards. */
.kbbp-app :is(a,button,summary,input,select,textarea):focus-visible{
  outline:3px solid var(--kbbp324-focus);outline-offset:3px
}
.kbbp-app .kbbp-sidebar :is(a,summary):focus-visible,
.kbbp-app .kbbp-mobile-dock :is(a,summary):focus-visible{
  outline-color:#f2ce83
}
/* Specific readability corrections for controls and their panel titles, not a global color override. */
.kbbp-app .kbbp323-page .kbbp-ts-form :is(input,button){min-height:44px}
.kbbp-app .kbbp323-page .kbbp323-billing-details>summary,
.kbbp-app .kbbp323-page .kbbp-ts-details>summary{min-height:44px;align-items:center;line-height:1.5}
.kbbp-app .kbbp323-page .kbbp323-chart-month{min-width:0}
.kbbp-app .kbbp323-page .kbbp323-chart-label{font-variant-numeric:tabular-nums}
@media(min-width:981px){
  /* Long content never pulls the compact sidebar card outside its column. */
  .kbbp-app[data-kbbp-trade="pro_clean"] .kbbp-sidebar .kbbp-clean-gains-card{max-width:100%;overflow-wrap:break-word}
  .kbbp-app[data-kbbp-trade="pro_clean"] .kbbp-sidebar .kbbp-clean-help-footer{flex-shrink:0}
}
@media(max-width:760px){
  .kbbp-app{--kbbp324-dock-space:calc(106px + var(--kbbp324-safe));scroll-padding-bottom:var(--kbbp324-dock-space)}
  .kbbp-app .kbbp-main{min-width:0;max-width:100%;padding-bottom:calc(148px + var(--kbbp324-safe))!important;scroll-padding-bottom:var(--kbbp324-dock-space)}
  /* Preserve the complete current-day heading with date and link below it. */
  .kbbp-app[data-kbbp-trade="pro_clean"] .kbpc7970-day>.kbpc79-panel-head>#kbpc79-day-title{
    writing-mode:horizontal-tb!important;word-break:normal!important;overflow-wrap:normal!important;
    min-width:0!important;width:100%!important;line-height:1.3!important
  }
  /* Form controls do not expand the viewport on small phones. */
  .kbbp-app .kbbp-top-actions,.kbbp-app .kbbp-top-actions .kbbp-search,
  .kbbp-app .kbbp-top-actions input[type="search"]{min-width:0;max-width:100%;box-sizing:border-box}
  .kbbp-app .kbbp-mobile-dock{bottom:calc(7px + var(--kbbp324-safe))!important;
    max-width:calc(100% - 20px)!important;box-sizing:border-box!important}
  .kbbp-app .kbbp-mobile-dock .kbbp-dock-link{min-width:0;line-height:1.2}
  /* The More sheet scrolls itself, stays above the dock, and does not trap page width. */
  .kbbp-app .kbbp-dock-more-panel{box-sizing:border-box!important;
    max-height:min(56dvh,440px)!important;overflow-y:auto!important;overscroll-behavior:contain;
    bottom:calc(83px + var(--kbbp324-safe))!important}
  .kbbp-app .kbbp-dock-more-panel>a{min-height:44px;display:flex;align-items:center;
    padding-block:9px;white-space:normal;overflow-wrap:break-word}
  .kbbp-app :is(a,button,summary,input,textarea,select,[tabindex]):not(.kbbp-dock-link){
    scroll-margin-bottom:var(--kbbp324-dock-space)
  }
  .kbbp-app .kbbp323-page .kbbp315-stats{min-width:0}
  .kbbp-app .kbbp323-page .kbbp315-metric{min-width:0;overflow-wrap:break-word}
  .kbbp-app .kbbp323-page .kbbp323-chart{min-width:0}
}
@media(max-width:360px){
  .kbbp-app .kbbp323-page .kbbp315-stats{grid-template-columns:1fr 1fr;gap:7px}
  .kbbp-app .kbbp323-page .kbbp315-metric{padding:11px 9px;min-height:0}
  .kbbp-app .kbbp323-page .kbbp315-metric strong{font-size:19px}
  .kbbp-app .kbbp-dock-more-panel{left:9px!important;right:9px!important}
}
@media(prefers-reduced-motion:reduce){
  .kbbp-app .kbbp323-chart-bar{transition:none!important}
}
