/* U304 — IBS presentation patterns, Best Care logo palette.
 * Scope: BuddyBoss child front end only. Native menus/visibility/JS own behavior.
 * Logo: 1f75792745934e17a4b25f545fe2d9b5d1e5d1225106d5de038d2f99682600a8.
 * U304f: official Ish 749 palette; blue panel, navy depth, teal accents, light surfaces, coral borders.
 */
body.bcn-brand-portal:not(.wp-admin) {
  --bcn-brand-blue: #0269a3;
  --bcn-brand-blue-hover: #0b3954;
  --bcn-brand-panel: #0269a3;
  --bcn-brand-panel-hover: #0b3954;
  --bcn-brand-teal: #03d9db;
  --bcn-brand-teal-text: #0b3954;
  --bcn-brand-soft: #bfd7ea;
  --bcn-brand-ink: #0b3954;
  --bcn-brand-help: #0b3954;
  --bcn-brand-border: #bfd7ea;
  --bcn-brand-field-border: #0b3954;
  --bcn-brand-page: #bfd7ea;
  --bcn-brand-coral: #ff5a5f;
  --bcn-brand-danger: #0b3954;
  --bcn-brand-danger-soft: #fff;
  --bcn-brand-success: #0b3954;
  --bcn-brand-success-soft: #bfd7ea;
  background-color: var(--bcn-brand-page);
  color: var(--bcn-brand-ink);
}
body.bcn-brand-portal:not(.wp-admin) .site-content { background-color: var(--bcn-brand-page); }
body.bcn-brand-portal:not(.wp-admin) :is(.content-area,.entry-content) { min-width: 0; }
body.bcn-brand-portal:not(.wp-admin) .entry-content {
  background: #fff;
  border: 1px solid var(--bcn-brand-border);
  border-radius: 14px;
  box-shadow: 0 3px 14px rgb(0 0 0 / 5%);
  padding: clamp(16px,2.4vw,28px);
  overflow-wrap: anywhere;
}
body.bcn-brand-portal:not(.wp-admin) :is(.entry-title,.page-title) {
  color: var(--bcn-brand-panel);
  font-size: clamp(24px,3vw,32px);
  font-weight: 700;
  line-height: 1.25;
  border-bottom: 3px solid var(--bcn-brand-teal);
  padding-bottom: 12px;
  margin-bottom: 24px;
}
body.bcn-brand-portal:not(.wp-admin) .entry-content :is(h2,h3,h4,legend) {
  color: var(--bcn-brand-panel);
  line-height: 1.35;
}
body.bcn-brand-portal:not(.wp-admin) .entry-content a {
  color: var(--bcn-brand-blue);
  text-underline-offset: 3px;
}
body.bcn-brand-portal:not(.wp-admin) :is(.entry-content,.site-header,.buddypanel,.bb-mobile-header,.bb-mobile-panel-inner) :is(a,button,input,select,textarea,summary):focus-visible {
  outline: 3px solid var(--bcn-brand-blue);
  outline-offset: 3px;
}

/* BuddyBoss owns panel width, breakpoints, open/close state and menu filtering. */
body.bcn-brand-portal:not(.wp-admin) :is(.site-header,.bb-mobile-header) {
  background-color: #fff;
  border-bottom: 3px solid var(--bcn-brand-teal);
}
body.bcn-brand-portal:not(.wp-admin) :is(.site-header,.bb-mobile-header) :is(a,button) { color: var(--bcn-brand-panel); }
body.bcn-brand-portal:not(.wp-admin) :is(.bb-left-panel-mobile,.bb-close-panel,.bb-toggle-panel) {
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
}
body.bcn-brand-portal:not(.wp-admin) :is(.buddypanel,.buddypanel .side-panel-inner,.buddypanel .panel-head,.bb-mobile-panel-inner) {
  background: var(--bcn-brand-panel);
  color: #fff;
}
body.bcn-brand-portal:not(.wp-admin) :is(.buddypanel,.bb-mobile-panel-inner) :is(a,.user-name,.user-link) { color: #fff !important; }
body.bcn-brand-portal:not(.wp-admin) :is(.buddypanel .buddypanel-menu,.bb-mobile-panel-inner .buddypanel-menu) a {
  min-height: 44px;
  padding-block: 12px;
  line-height: 1.45;
}
body.bcn-brand-portal:not(.wp-admin) :is(.buddypanel,.bb-mobile-panel-inner) :is(.current-menu-item > a,.current-menu-ancestor > a,a:hover) {
  background-color: var(--bcn-brand-panel-hover) !important;
  box-shadow: inset 3px 0 var(--bcn-brand-teal);
  color: #fff !important;
}
body.bcn-brand-portal:not(.wp-admin) :is(.buddypanel,.bb-mobile-panel-inner) :is(a,button):focus-visible {
  outline-color: var(--bcn-brand-teal);
  outline-offset: -3px;
}
body.bcn-brand-portal:not(.wp-admin) :is(.buddypanel,.bb-mobile-panel-inner) :is(.bb-menu-item i,.bb-toggle-panel i) { color: var(--bcn-brand-teal); }

/* Gravity Forms: preserve framework display/conditional logic and native controls. */
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_wrapper {
  --gf-color-primary: var(--bcn-brand-blue);
  --gf-color-primary-darker: var(--bcn-brand-blue-hover);
  --gf-color-primary-contrast: #fff;
  --gf-color-in-ctrl: #fff;
  --gf-color-in-ctrl-primary: var(--bcn-brand-ink);
  --gf-color-in-ctrl-light: var(--bcn-brand-field-border);
  --gf-ctrl-font-size: 16px;
  color: var(--bcn-brand-ink);
  max-width: 100%;
}
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_wrapper :is(input,select,textarea,button) { box-sizing: border-box; }
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_wrapper :is(.gfield_label,.gform-field-label,legend) {
  color: var(--bcn-brand-panel);
  font-weight: 600;
  font-size: 16px;
  line-height: 1.45;
}
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_wrapper :is(.gfield_description,.gform-field-label--type-sub,.ginput_counter) {
  color: var(--bcn-brand-help);
  font-size: 14px;
  line-height: 1.6;
}
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_wrapper :where(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=image]):not([hidden]),select:not([hidden]),textarea:not([hidden])) {
  min-height: 45px;
  padding: 10px 12px;
  max-width: 100%;
  font-size: 16px;
  line-height: 1.5;
  border-color: var(--bcn-brand-field-border);
  border-radius: 8px;
  background-color: #fff;
  color: var(--bcn-brand-ink);
}
/* WebKit menulist ignores min-height until native appearance is released. */
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_wrapper select:not([hidden]):not([multiple]) {
  height: 45px;
  appearance: none;
  -webkit-appearance: none;
  padding: 10px 40px 10px 12px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%230269a3' stroke-width='2' d='m1 1 5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
}
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_wrapper textarea:not([hidden]) { min-height: 112px; resize: vertical; }
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_wrapper ::placeholder { color: var(--bcn-brand-help); opacity: 1; }
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_wrapper :is(.gfield_checkbox,.gfield_radio) label { min-height: 44px; padding-block: 10px; }
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_wrapper :is(input[type=checkbox],input[type=radio]) { accent-color: var(--bcn-brand-blue); }
body.bcn-brand-portal:not(.wp-admin) .entry-content :is(.gform_wrapper .gform_button,.gform_wrapper .gform_next_button,.gform_wrapper .gform_previous_button,.llms-button-primary,.llms-button-secondary) {
  min-height: 45px;
  padding: 11px 18px;
  border: 1px solid var(--bcn-brand-blue);
  border-radius: 8px;
  background: var(--bcn-brand-blue);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  white-space: normal;
}
body.bcn-brand-portal:not(.wp-admin) .entry-content :is(.gform_wrapper .gform_previous_button,.llms-button-secondary) { background: #fff; color: var(--bcn-brand-blue); }
body.bcn-brand-portal:not(.wp-admin) .entry-content :is(.gform_wrapper .gform_button,.gform_wrapper .gform_next_button,.llms-button-primary):hover { background: var(--bcn-brand-blue-hover); }
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_wrapper :is(button,input):disabled { background-color: #bfd7ea; color: var(--bcn-brand-help); cursor: not-allowed; }
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_wrapper :is(.gsection,.gform_page_footer,.gform_footer) { border-color: var(--bcn-brand-border); }
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_wrapper .gsection_title { color: var(--bcn-brand-ink); border-left: 3px solid var(--bcn-brand-teal-text); padding: 10px 14px; background: var(--bcn-brand-soft); }
body.bcn-brand-portal:not(.wp-admin) .entry-content :is(.gform_validation_errors,.gfield_validation_message,.validation_message) {
  background: var(--bcn-brand-danger-soft);
  color: var(--bcn-brand-danger);
  border: 1px solid var(--bcn-brand-coral);
  border-left-width: 4px;
  border-radius: 8px;
  padding: 12px 16px;
}
body.bcn-brand-portal:not(.wp-admin) .entry-content :is(.gfield_required,.gfield_error .gfield_label,.gform_validation_errors h2,.gform_validation_errors a) { color: var(--bcn-brand-danger); }
body.bcn-brand-portal:not(.wp-admin) .entry-content .gfield_error :is(input:not([type=hidden]),select,textarea) { border-color: var(--bcn-brand-coral); }
body.bcn-brand-portal:not(.wp-admin) .entry-content .gform_confirmation_message {
  color: var(--bcn-brand-success);
  background: var(--bcn-brand-success-soft);
  border: 1px solid var(--bcn-brand-success);
  border-left-width: 4px;
  border-radius: 8px;
  padding: 14px 18px;
}
body.bcn-brand-portal:not(.wp-admin) .entry-content .gf_progressbar { background: #bfd7ea; border-radius: 999px; }
body.bcn-brand-portal:not(.wp-admin) .entry-content .gf_progressbar_percentage { background: var(--bcn-brand-blue); color: #fff; }

/* GravityView and the existing dashboard nav, without changing content/state. */
body.bcn-brand-portal:not(.wp-admin) .entry-content :is(.gv-table-view,.gv-datatables-wrapper) { max-width: 100%; overflow-x: auto; }
body.bcn-brand-portal:not(.wp-admin) .entry-content :is(.gv-table-view table,.gv-datatables-wrapper table) { border-collapse: collapse; width: 100%; min-width: 560px; overflow-wrap: normal; background: #fff; font-size: 14px; }
body.bcn-brand-portal:not(.wp-admin) .entry-content :is(.gv-table-view,.gv-datatables-wrapper) :is(th,td) { padding: 12px 14px; border-bottom: 1px solid var(--bcn-brand-border); text-align: left; vertical-align: top; }
body.bcn-brand-portal:not(.wp-admin) .entry-content :is(.gv-table-view,.gv-datatables-wrapper) th { background: var(--bcn-brand-soft); color: var(--bcn-brand-ink); font-weight: 600; }
body.bcn-brand-portal:not(.wp-admin) .entry-content :is(.gv-table-view,.gv-datatables-wrapper) tbody tr:nth-child(even) { background: #bfd7ea; }
body.bcn-brand-portal:not(.wp-admin) .entry-content .gv-list-view { border: 1px solid var(--bcn-brand-border); border-radius: 12px; padding: 18px; margin-block: 16px; }
body.bcn-brand-portal:not(.wp-admin) .entry-content .bcn-nav-menu a {
  min-height: 44px;
  max-width: 100%;
  border-radius: 8px;
  background: var(--bcn-brand-blue);
  color: #fff !important;
  padding: 12px 18px;
  white-space: normal;
  box-shadow: 0 2px 8px rgb(0 0 0 / 8%);
}
body.bcn-brand-portal:not(.wp-admin) .entry-content .bcn-nav-menu a:hover { background: var(--bcn-brand-blue-hover); transform: none; }
body.bcn-brand-portal:not(.wp-admin) .entry-content .bcn-nav-menu a.coming-soon { background: var(--bcn-brand-soft); color: var(--bcn-brand-help) !important; }
@media (max-width: 767px) {
  body.bcn-brand-portal:not(.wp-admin) .entry-content { padding: 16px; border-radius: 10px; }
  body.bcn-brand-portal:not(.wp-admin) .entry-content .gv-list-view { padding: 14px; }
  body.bcn-brand-portal:not(.wp-admin) .entry-content .bcn-nav-menu a { width: auto; }
}
@media (prefers-reduced-motion: reduce) {
  body.bcn-brand-portal:not(.wp-admin) :is(.bcn-nav-menu a,.gform_wrapper button,.gform_wrapper input) { transition: none; animation: none; }
}

/* U304b: desktop BuddyPanel anchors own their painted background.
 * Theme .side-panel-menu a can otherwise retain a white background while
 * U304 supplies white text. Mobile panel rules and theme handlers stay owners. */
@media (min-width: 800px) {
  body.bcn-brand-portal:not(.wp-admin) .buddypanel .side-panel-menu a {
    background-color: var(--bcn-brand-panel) !important;
    color: #fff !important;
  }
  body.bcn-brand-portal:not(.wp-admin) .buddypanel .side-panel-menu a .link-text { color: inherit; }
  body.bcn-brand-portal:not(.wp-admin) .buddypanel .side-panel-menu :is(.current-menu-item > a,.current-menu-ancestor > a,a:hover,a:focus-visible) {
    background-color: var(--bcn-brand-panel-hover) !important;
    color: #fff !important;
  }
  body.bcn-brand-portal:not(.wp-admin) .buddypanel .side-panel-menu a > i { color: #fff !important; opacity: 1 !important; }
  /* The native walker uses a bare bb-icon-file when no icon was configured.
   * Use its bundled checklist glyph instead of an empty page outline.
   * Explicit menu icons (_mi / bb-custom-icon) and mobile retain their glyphs. */
  body.bcn-brand-portal:not(.wp-admin) .buddypanel .side-panel-menu a > i.bb-icon-file:not(._mi):not(.bb-custom-icon)::before {
    content: '\ee74';
    font-weight: 400;
  }
}

/* U304e: mobile icons retain native glyphs and handlers, with legible white paint. */
body.bcn-brand-portal:not(.wp-admin) .bb-mobile-panel-inner .side-panel-menu a > i,
body.bcn-brand-portal:not(.wp-admin) .bb-mobile-panel-inner .side-panel-menu a > i::before {
  color: #fff !important;
  opacity: 1 !important;
}

/* U304c: keep the native tablet header title inside one line when the panel
 * reduces available width. BuddyBoss still owns panel state and menu handlers.
 * The complete accessible homepage label remains in the native markup. */
@media (min-width: 800px) and (max-width: 1199px) {
  body.bcn-brand-portal:not(.wp-admin) .site-header #site-logo.site-branding {
    flex: 0 1 200px;
    min-width: 0;
    padding-right: 16px;
  }
  body.bcn-brand-portal:not(.wp-admin) .site-header #site-logo .site-title {
    min-width: 0;
    width: 100%;
  }
  body.bcn-brand-portal:not(.wp-admin) .site-header #site-logo .site-title > a {
    display: block;
    max-width: 100%;
    font-size: 18px;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

/* U861b / F03: both native header-search clones, including the mobile wrapper. */
body.bcn-brand-portal:not(.wp-admin) .site-header .search-field-top::placeholder,
body.bcn-brand-portal:not(.wp-admin) .bb-mobile-header .search-field-top::placeholder {
  color: #486579;
  opacity: 1;
}

/* F04: light phone header text; the dark-panel menu keeps its existing paint. */
body.bcn-brand-portal:not(.wp-admin) .bb-mobile-panel-inner .bb-mobile-panel-header :is(a, .user-name, .user-link) {
  color: #0b3954 !important;
}
/* Manager-approved F04 delta: navy text must not meet the old navy hover fill. */
body.bcn-brand-portal:not(.wp-admin) .bb-mobile-panel-wrapper.light .bb-mobile-panel-inner .bb-mobile-panel-header a:is(:hover, :focus-visible) {
  background-color: #fff !important;
}

/* F05: close glyph only; retain the existing 44px hit area. */
body.bcn-brand-portal:not(.wp-admin) .bb-mobile-panel-header .bb-close-panel i {
  color: #0b3954;
}

/* F06: light phone header focus; retain the dark menu's separate teal focus. */
body.bcn-brand-portal:not(.wp-admin) .bb-mobile-panel-inner .bb-mobile-panel-header :is(a, button):focus-visible {
  outline: 3px solid #0b3954;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff;
}

/* F07: accountant menu links use a solid background in every measured state. */
body.bcn-brand-portal:not(.wp-admin) .entry-content .accountant-menu .menu-button {
  color: #fff;
  background: #0269a3;
}
body.bcn-brand-portal:not(.wp-admin) .entry-content .accountant-menu .menu-button:is(:hover, :focus-visible) {
  color: #fff;
  background: #0b3954;
}

/* F08: existing document and GV clear actions; preserve their destinations. */
body.bcn-brand-portal:not(.wp-admin) .entry-content .bcn-participant-documents a.button,
body.bcn-brand-portal:not(.wp-admin) .entry-content a.gv-search-clear.button {
  color: #fff;
  background: #0269a3;
}
body.bcn-brand-portal:not(.wp-admin) .entry-content .bcn-participant-documents a.button:is(:hover, :focus-visible),
body.bcn-brand-portal:not(.wp-admin) .entry-content a.gv-search-clear.button:is(:hover, :focus-visible) {
  color: #fff;
  background: #0b3954;
}

/* F09: retain the active billing filter's existing blue background. */
body.bcn-brand-portal:not(.wp-admin) .entry-content .bcn-billing-agreements .bcn-filter-btn.active {
  color: #fff;
}

/* F10: payroll export link presentation only; no export behavior change. */
body.bcn-brand-portal:not(.wp-admin) .entry-content .bcn-payroll-overview .bcn-export-btn {
  color: #fff;
  background: #167568;
}
body.bcn-brand-portal:not(.wp-admin) .entry-content .bcn-payroll-overview .bcn-export-btn:is(:hover, :focus-visible) {
  color: #fff;
  background: #0b3954;
}

/* F11-F12: the two measured GV680 date fields, not other form controls. */
body.bcn-brand-portal:not(.wp-admin) .entry-content :is(#gv_start_date_680, #gv_end_date_680)::placeholder {
  color: #486579;
  opacity: 1;
}
body.bcn-brand-portal:not(.wp-admin) .entry-content :is(#gv_start_date_680, #gv_end_date_680) {
  border-color: #486579;
}

/* F13: visible calendar-day keyboard focus; dimensions remain native. */
body.bcn-brand-portal:not(.wp-admin) #ui-datepicker-div a.ui-state-default:focus-visible {
  outline: 3px solid #0b3954;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff;
}

body.bcn-brand-portal:not(.wp-admin) .entry-content .bcn-patient-roster a.bcn-btn-primary { color: #fff; }
