/* NRH KM visual theme — derived from the approved blue/teal hero artwork.
   Visual theme only: semantic warning/danger/success states keep their own colors. */

:root{
  --nrhkm-ink:#0b3563;
  --nrhkm-navy:#0b477c;
  --nrhkm-blue:#1b88c5;
  --nrhkm-blue-dark:#0f6f9f;
  --nrhkm-sky:#53b2e1;
  --nrhkm-teal:#208ca5;
  --nrhkm-bg:#f4f9fc;
  --nrhkm-soft:#eaf5fb;
  --nrhkm-soft-2:#f7fbfd;
  --nrhkm-line:#d1e6f5;
  --nrhkm-text:#274a71;
  --nrhkm-muted:#6f8195;

  /* Map legacy design tokens to the new NRH KM visual language. */
  --km19-navy:var(--nrhkm-navy);
  --km19-navy-2:var(--nrhkm-ink);
  --km19-green:var(--nrhkm-blue);
  --km19-green-dark:var(--nrhkm-blue-dark);
  --km19-mint:var(--nrhkm-soft);
  --km19-mint-2:var(--nrhkm-soft-2);
  --km19-cyan:#dceff8;
  --km19-bg:var(--nrhkm-bg);
  --km19-surface:#fff;
  --km19-text:var(--nrhkm-text);
  --km19-muted:var(--nrhkm-muted);
  --km19-line:var(--nrhkm-line);
  --km19-shadow:0 10px 28px rgba(23,93,136,.08);
  --km19-shadow-lg:0 18px 46px rgba(23,93,136,.14);
  --km19-focus:0 0 0 .22rem rgba(27,136,197,.20);

  --km16-green:var(--nrhkm-blue);
  --km16-green-deep:var(--nrhkm-blue-dark);
  --km16-mint:var(--nrhkm-soft);
  --km16-mint-2:var(--nrhkm-soft-2);
  --km16-navy:var(--nrhkm-text);
  --km16-muted:var(--nrhkm-muted);
  --km16-line:var(--nrhkm-line);
  --km16-blue:var(--nrhkm-blue);
  --km16-shadow:0 12px 34px rgba(23,93,136,.09);
}

body.km-v19{
  background:
    radial-gradient(circle at 92% 7%,rgba(83,178,225,.13),transparent 27%),
    radial-gradient(circle at 7% 96%,rgba(32,140,165,.08),transparent 25%),
    linear-gradient(180deg,#fbfdff 0%,var(--nrhkm-bg) 100%);
  color:var(--nrhkm-text);
}

/* Global navigation */
.km-v19 .km-sidebar{
  border-right-color:var(--nrhkm-line);
  box-shadow:8px 0 32px rgba(23,93,136,.045);
}
.km-v19 .km-side-brand:hover{color:var(--nrhkm-blue-dark)}
.km-v19 .km-side-link{color:#536f85}
.km-v19 .km-side-link i{color:#648aa4}
.km-v19 .km-side-link:hover{
  background:#f0f8fc;
  color:var(--nrhkm-blue-dark);
}
.km-v19 .km-side-link.active{
  color:var(--nrhkm-blue-dark);
  background:linear-gradient(100deg,#e3f3fb,#f2f9fd);
  border-color:#c7e3f2;
}
.km-v19 .km-side-link.active i{color:var(--nrhkm-blue)}
.km-v19 .km-side-help{
  color:#426f86;
  background:#eff8fc;
  border-color:#d4eaf5;
}
.km-v19 .km-side-help>i{color:var(--nrhkm-blue)}
.km-v19 .km-side-help small{color:#7892a2}

/* Staff topbar — match the hero's navy -> medical blue -> teal spectrum. */
.km-v19 .km-staff-topbar,
.km-v19 .km-mobile-bar{
  background:linear-gradient(105deg,var(--nrhkm-ink) 0%,var(--nrhkm-navy) 43%,var(--nrhkm-blue) 78%,var(--nrhkm-teal) 100%);
  box-shadow:0 6px 20px rgba(11,71,124,.18);
}
.km-v19 .km-staff-topbar .btn-km-top-create{
  --bs-btn-color:var(--nrhkm-navy);
  --bs-btn-bg:#fff;
  --bs-btn-border-color:rgba(255,255,255,.92);
  --bs-btn-hover-color:var(--nrhkm-ink);
  --bs-btn-hover-bg:#edf7fc;
  --bs-btn-hover-border-color:#fff;
  box-shadow:0 4px 12px rgba(11,71,124,.14);
}
.km-v19 .km-avatar{
  background:linear-gradient(135deg,#e9f6fc,#b9e0f2);
  color:var(--nrhkm-navy);
}

/* Primary controls */
.km-v19 .btn-km-primary,
.km-search-box .btn,
.km-filter-actions .btn-km-primary{
  --bs-btn-bg:var(--nrhkm-blue);
  --bs-btn-border-color:var(--nrhkm-blue);
  --bs-btn-hover-bg:var(--nrhkm-blue-dark);
  --bs-btn-hover-border-color:var(--nrhkm-blue-dark);
  background:var(--nrhkm-blue);
  border-color:var(--nrhkm-blue);
  box-shadow:0 5px 14px rgba(27,136,197,.16);
}
.km-search-box .btn:hover,
.km-filter-actions .btn-km-primary:hover{
  background:var(--nrhkm-blue-dark);
  border-color:var(--nrhkm-blue-dark);
}
.km-v19 .btn-km-secondary{
  --bs-btn-color:#416d88;
  --bs-btn-bg:#f1f8fc;
  --bs-btn-border-color:#d7eaf4;
  --bs-btn-hover-color:var(--nrhkm-blue-dark);
  --bs-btn-hover-bg:#e6f3fa;
  --bs-btn-hover-border-color:#c5e1f0;
}
.km-v19 .form-control,
.km-v19 .form-select,
.km-search-box,
.km-department-select{
  border-color:#cfe3ef;
}
.km-v19 .form-control:focus,
.km-v19 .form-select:focus,
.km-search-box:focus-within{
  border-color:#69b8dc;
  box-shadow:var(--km19-focus);
}

/* Page headings, category accents and cards */
.km-v19 .km-page-heading h1,
.km-v19 .km-form-title,
.km-results-heading h2,
.km-discovery-item h3 a{
  color:var(--nrhkm-ink);
}
.km-v19 .km-eyebrow,
.km-results-kicker,
.km-filter-title i,
.km-keyword-input>i{
  color:var(--nrhkm-blue-dark);
}
.km-v19 .km-card,
.km-v19 .card,
.km-discovery-panel,
.km-discovery-item{
  border-color:var(--nrhkm-line);
  box-shadow:var(--km19-shadow);
}
.km-discovery-item:hover{
  border-color:#b9dbea;
  box-shadow:0 10px 25px rgba(23,93,136,.09);
}
.km-v19 .km-section-number,
.km-choice-chip.active,
.km-choice-chip[aria-pressed="true"]{
  background:linear-gradient(135deg,var(--nrhkm-blue),var(--nrhkm-teal));
  border-color:var(--nrhkm-blue);
  box-shadow:0 6px 15px rgba(27,136,197,.18);
}
.km-choice-chip:hover{
  border-color:#91cde5;
  background:#f3fafe;
  color:var(--nrhkm-blue-dark);
}
.km-public-subcategory,
.km-subcategory-panel{
  border-color:#d8eaf4;
  background:#f5fafd;
}
.km-v19 .km-category-tag,
.km-discovery-item-tags .km-category-tag{
  background:#e2f3fa;
  color:#0b6f9f;
}
.km-v19 .km-post-symbol,
.km-v19 .km-media-file-icon,
.km-v19 .km-public-owner-icon,
.km-v19 .km-empty-icon{
  background:#e8f5fb;
  color:var(--nrhkm-blue-dark);
}
.km-detail-button{
  background:#e8f5fb;
  color:var(--nrhkm-blue-dark);
  border-color:#c6e4f1;
}
.km-detail-button:hover{
  background:#dceff8;
  color:#085b85;
}
.km-result-keywords a:hover{
  background:#e5f3fa;
  color:var(--nrhkm-blue-dark);
}

/* Discovery banner/filter surfaces */
.km-discovery-hero{
  border-color:#d4eaf5;
  background:linear-gradient(112deg,#fbfdff 0%,#eef8fc 58%,#dcedf7 100%);
  box-shadow:var(--km16-shadow);
}
.km-discovery-icon{
  color:var(--nrhkm-blue);
  box-shadow:0 8px 25px rgba(27,136,197,.13);
}
.km-discovery-kicker{color:var(--nrhkm-blue-dark)}
.km-discovery-hero p{color:#667f92}
.km-library-button{
  color:var(--nrhkm-blue-dark);
  border-color:#cce4f0;
  box-shadow:0 5px 15px rgba(23,93,136,.07);
}
.km-library-button:hover{
  background:#f3fafe;
  color:#085b85;
  border-color:#96cde3;
}

/* Detail/workflow framing: visual accents become blue; semantic status colors stay intact. */
.km-detail-category-card{
  border-color:#9fd1e7;
  background:linear-gradient(135deg,#f1f9fd,#e5f3fa);
  color:var(--nrhkm-blue-dark);
  box-shadow:0 4px 12px rgba(27,136,197,.08);
}
.km-workflow-state-card{
  border-color:#d7e8f1;
  background:#f8fbfd;
}
.km-workflow-state-card .km-workflow-state-label{color:#758b9c}
.km-workflow-state-card .km-workflow-state-value{color:#244d68}
.km-workflow-state-card .km-workflow-state-note{color:#718797}

/* Notifications */
.km-v19 .km-notification-dropdown{
  border-color:var(--nrhkm-line);
  box-shadow:var(--km19-shadow-lg);
}
.km-v19 .km-notification-preview-icon,
.km-notification-preview-icon{
  background:#e7f4fb;
  color:var(--nrhkm-blue-dark);
}
.km-notification-bell:hover,
.km-notification-bell:focus-visible{
  background:#eef8fc;
  color:var(--nrhkm-blue-dark);
  border-color:#b8d9e8;
}
.km-notification-empty{color:#4d7187}
.km-notification-empty i{color:var(--nrhkm-blue)}

/* Authentication surfaces */
.km-member-login-shell{
  background:
    radial-gradient(circle at 15% 18%,rgba(83,178,225,.12),transparent 30%),
    radial-gradient(circle at 88% 80%,rgba(32,140,165,.10),transparent 28%),
    #f6fbfd;
}
.km-member-auth-card,
.km-member-login-card{
  border-color:var(--nrhkm-line);
  box-shadow:0 18px 46px rgba(23,93,136,.12);
}
.km-member-auth-kicker{color:var(--nrhkm-blue-dark)}
.km-member-auth-card h1,
.km-member-auth-heading h1{color:var(--nrhkm-ink)}
.km-member-auth-note{
  background:#eff8fc;
  color:#52748a;
}

/* Public metrics + footer */
.km-public-side-metrics>span{
  background:#f2f9fc;
  border-color:#dbeaf2;
}
.km-public-side-metrics i{color:var(--nrhkm-blue)}
.km-public-side-metrics strong{color:var(--nrhkm-ink)}
.km-v19 .km-footer{
  border-top-color:var(--nrhkm-line);
  color:#8195a3;
  background:rgba(248,252,254,.88);
}

/* Keep semantic workflow states recognisable. */
.km-v19 .km-status-published{background:#e3f8ef;color:#087b58}
.km-v19 .km-status-review{background:#fff7df;color:#916617}
.km-v19 .km-status-revision{background:#fff0ed;color:#b75348}
.km-v19 .km-status-draft{background:#eef2f4;color:#62757d}

/* =========================================================
   UX ACCEPTANCE — layout corrections after blue-theme review
   ========================================================= */

/* 1) Natural-flow sticky footer.
   This layer is loaded last so member/public page CSS cannot collapse
   the content shell and pull the footer up after short content. */
.km-v19 .km-content-shell{
  min-height:100vh !important;
  min-height:100dvh !important;
  display:flex !important;
  flex-direction:column !important;
}
.km-v19 .km-content-shell > .km-main{
  flex:1 0 auto !important;
  min-height:0;
}
.km-v19 .km-content-shell > .km-footer{
  position:static !important;
  inset:auto !important;
  margin-top:auto !important;
  width:100%;
  flex:0 0 auto;
  z-index:auto !important;
}
@media (max-width:991.98px){
  .km-v19 .km-content-shell{
    min-height:calc(100vh - 60px) !important;
    min-height:calc(100dvh - 60px) !important;
  }
}

/* 2) The anonymous Public hero may remain full-viewport.
   When the same Public Home is reused inside an authenticated workspace,
   keep the hero inside the content column so it never bleeds below sidebar. */
.km-v19 .km-content-shell.km-public-home-surface:not(.km-guest)
  .nrh-public-hero.nrh-public-hero--banner{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* 3) Panoramic hero artwork is already composed at 4.28:1.
   Always show the full artwork; never crop it at any viewport. */
.km-v19 :is(.km-guest,.km-public-home-surface) .nrh-public-hero-banner-image{
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  object-fit:contain !important;
  object-position:center top !important;
  display:block;
}

/* =========================================================
   Unified category presentation — Manual UX r14.6
   ========================================================= */
.km-category-pill,
.km-category-choice{
  --km-category-color:#1B88C5;
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-width:0;
  max-width:100%;
  padding:9px 13px;
  border:1px solid color-mix(in srgb,var(--km-category-color) 38%,white);
  border-radius:16px;
  background:color-mix(in srgb,var(--km-category-color) 9%,white);
  color:#21486B;
  font-weight:650;
  line-height:1.3;
  box-shadow:inset 4px 0 0 var(--km-category-color);
}
.km-category-pill--full{
  display:flex;
  width:100%;
}
.km-category-pill--compact{
  padding:7px 11px;
  border-radius:14px;
  font-size:.82rem;
}
.km-category-pill__icon,
.km-category-choice>i{
  flex:0 0 auto;
  color:var(--km-category-color);
  font-size:.92rem;
}
.km-category-pill__text,
.km-category-choice__text{
  min-width:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:5px;
}
.km-category-pill__root,
.km-category-choice__root{
  color:#255071;
  font-weight:700;
}
.km-category-pill__sep,
.km-category-choice__sep{
  color:color-mix(in srgb,var(--km-category-color) 68%,#73889A);
  font-weight:800;
}
.km-category-pill__child,
.km-category-choice__child{
  color:#355D7D;
  font-weight:650;
}

button.km-category-choice{
  appearance:none;
  cursor:pointer;
  text-align:left;
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;
}
button.km-category-choice:hover,
button.km-category-choice:focus-visible{
  border-color:var(--km-category-color);
  background:color-mix(in srgb,var(--km-category-color) 14%,white);
  color:#173F61;
}
button.km-category-choice:focus-visible{
  outline:3px solid color-mix(in srgb,var(--km-category-color) 20%,transparent);
  outline-offset:2px;
}
button.km-category-choice.active,
button.km-category-choice[aria-pressed="true"]{
  border-color:var(--km-category-color) !important;
  background:color-mix(in srgb,var(--km-category-color) 18%,white) !important;
  color:#173F61 !important;
  box-shadow:inset 4px 0 0 var(--km-category-color),0 0 0 2px color-mix(in srgb,var(--km-category-color) 14%,transparent) !important;
}

/* Public discovery keeps the category column full width, but only text-height. */
.km-discovery-item-category.km-category-color-panel{
  min-height:0 !important;
  height:auto !important;
  align-self:flex-start !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.km-discovery-item-category .km-category-pill{
  width:100%;
}

/* Category color palette in KM Admin. */
.km-color-palette{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(185px,1fr));
  gap:10px;
  margin-top:4px;
}
.km-color-palette-option{
  position:relative;
  display:block;
}
.km-color-palette-option input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.km-color-palette-card{
  --km-palette-color:#1B88C5;
  display:flex;
  align-items:center;
  gap:10px;
  min-height:52px;
  padding:9px 11px;
  border:1px solid #D8E7F1;
  border-radius:14px;
  background:#FFFFFF;
  cursor:pointer;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,transform .16s ease;
}
.km-color-palette-card:hover{
  border-color:var(--km-palette-color);
  background:color-mix(in srgb,var(--km-palette-color) 5%,white);
}
.km-color-palette-swatch{
  width:30px;
  height:30px;
  flex:0 0 30px;
  border-radius:9px;
  background:var(--km-palette-color);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.45),0 0 0 1px rgba(11,53,99,.08);
}
.km-color-palette-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:1px;
  color:#274A71;
  font-size:.82rem;
  line-height:1.3;
}
.km-color-palette-copy strong{
  color:#173F61;
  font-size:.86rem;
  font-weight:650;
}
.km-color-palette-check{
  margin-left:auto;
  color:var(--km-palette-color);
  opacity:0;
  font-size:1.05rem;
}
.km-color-palette-option input:checked + .km-color-palette-card{
  border-color:var(--km-palette-color);
  background:color-mix(in srgb,var(--km-palette-color) 9%,white);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--km-palette-color) 18%,transparent);
}
.km-color-palette-option input:checked + .km-color-palette-card .km-color-palette-check{
  opacity:1;
}
.km-color-palette-option input:focus-visible + .km-color-palette-card{
  outline:3px solid color-mix(in srgb,var(--km-palette-color) 20%,transparent);
  outline-offset:2px;
}

@media(max-width:575.98px){
  .km-category-pill,
  .km-category-choice{padding:8px 11px;border-radius:14px;font-size:.82rem}
  .km-color-palette{grid-template-columns:1fr 1fr;gap:8px}
  .km-color-palette-card{min-height:48px;padding:8px}
  .km-color-palette-swatch{width:26px;height:26px;flex-basis:26px;border-radius:8px}
  .km-color-palette-copy{font-size:.72rem}
  .km-color-palette-copy strong{font-size:.77rem}
}

/* NRH KM composite logo sizing - r14.7
   Enlarges the replacement composite logo without changing the PNG itself. */

/* Public topbar */
.nrh-public-km-logo{
  height:74px !important;
  width:auto !important;
  max-width:min(430px,calc(100vw - 175px)) !important;
  object-fit:contain !important;
  object-position:left center !important;
  transform:scale(1.48) !important;
  transform-origin:left center !important;
}

/* Contributor pages had a more specific compact-logo override in r14.1. */
body:has(.km-contributor-page) .nrh-public-km-logo{
  height:74px !important;
  width:auto !important;
  max-width:min(430px,calc(100vw - 175px)) !important;
  object-fit:contain !important;
  object-position:left center !important;
  transform:scale(1.48) !important;
  transform-origin:left center !important;
}

/* Staff sidebar */
.km-side-brand-logo{
  width:min(235px,100%) !important;
  height:auto !important;
  max-height:74px !important;
  object-fit:contain !important;
  object-position:left center !important;
  transform:scale(1.28) !important;
  transform-origin:left center !important;
}

/* Staff mobile bar */
.km-mobile-brand-logo{
  width:156px !important;
  height:auto !important;
  max-height:50px !important;
  object-fit:contain !important;
  object-position:center !important;
  transform:scale(1.18) !important;
  transform-origin:center !important;
}

/* Public-member topbar */
.nrh-member-brand img{
  height:60px !important;
  width:auto !important;
  max-width:280px !important;
  object-fit:contain !important;
  object-position:left center !important;
  transform:scale(1.35) !important;
  transform-origin:left center !important;
}

/* Login / password / auth screens */
.km-member-auth-km-logo{
  height:80px !important;
  width:auto !important;
  max-width:min(380px,100%) !important;
  object-fit:contain !important;
  object-position:left center !important;
  transform:scale(1.25) !important;
  transform-origin:center !important;
}

@media (max-width:767.98px){
  .nrh-public-km-logo,
  body:has(.km-contributor-page) .nrh-public-km-logo{
    transform:scale(1.22) !important;
    transform-origin:left center !important;
  }

  .km-side-brand-logo{
    transform:scale(1.16) !important;
    transform-origin:left center !important;
  }

  .km-mobile-brand-logo{
    transform:scale(1.08) !important;
    transform-origin:center !important;
  }

  .nrh-member-brand img{
    transform:scale(1.18) !important;
    transform-origin:left center !important;
  }

  .km-member-auth-km-logo{
    transform:scale(1.12) !important;
    transform-origin:center !important;
  }

  .nrh-public-km-logo,
  body:has(.km-contributor-page) .nrh-public-km-logo{
    height:60px !important;
    max-width:calc(100vw - 145px) !important;
  }

  .km-side-brand-logo{
    width:min(205px,100%) !important;
    max-height:66px !important;
  }

  .km-mobile-brand-logo{
    width:146px !important;
    max-height:46px !important;
  }

  .nrh-member-brand img{
    height:52px !important;
    max-width:232px !important;
  }

  .km-member-auth-km-logo{
    height:70px !important;
    max-width:min(330px,100%) !important;
  }
}

@media (max-width:575.98px){
  .nrh-public-km-logo,
  body:has(.km-contributor-page) .nrh-public-km-logo{
    transform:scale(1.08) !important;
    transform-origin:left center !important;
  }

  .km-mobile-brand-logo{
    transform:scale(1.02) !important;
    transform-origin:center !important;
  }

  .nrh-member-brand img{
    transform:scale(1.08) !important;
    transform-origin:left center !important;
  }

  .km-member-auth-km-logo{
    transform:scale(1.06) !important;
    transform-origin:center !important;
  }

  .nrh-public-km-logo,
  body:has(.km-contributor-page) .nrh-public-km-logo{
    height:54px !important;
    max-width:calc(100vw - 128px) !important;
  }

  .km-mobile-brand-logo{
    width:138px !important;
    max-height:42px !important;
  }

  .nrh-member-brand img{
    height:46px !important;
    max-width:205px !important;
  }

  .km-member-auth-km-logo{
    height:62px !important;
    max-width:min(290px,100%) !important;
  }
}

/* =========================================================
   EP4 Category UI R1
   - moderate rounded-square geometry
   - Admin color becomes solid when selected
   - nested child badge inside result category card
   Shared by Public and authenticated surfaces.
   ========================================================= */

.km-discovery-panel{
  border-radius:14px !important;
}

.km-choice-chip,
.km-category-choice{
  border-radius:11px !important;
}

.km-choice-chip-sub{
  border-radius:10px !important;
}

.km-public-subcategory,
.km-subcategory-panel{
  border-radius:12px !important;
}

button.km-category-choice{
  position:relative;
}

button.km-category-choice.active,
button.km-category-choice[aria-pressed="true"]{
  border-color:var(--km-category-color) !important;
  background:var(--km-category-color) !important;
  color:#ffffff !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.26),
    0 5px 14px color-mix(in srgb,var(--km-category-color) 26%,transparent) !important;
  transform:translateY(-1px);
}

button.km-category-choice.active > i,
button.km-category-choice[aria-pressed="true"] > i,
button.km-category-choice.active .km-category-choice__root,
button.km-category-choice.active .km-category-choice__child,
button.km-category-choice[aria-pressed="true"] .km-category-choice__root,
button.km-category-choice[aria-pressed="true"] .km-category-choice__child{
  color:#ffffff !important;
}

button.km-category-choice.active::after,
button.km-category-choice[aria-pressed="true"]::after{
  content:"";
  position:absolute;
  inset:2px;
  border:1px solid rgba(255,255,255,.42);
  border-radius:8px;
  pointer-events:none;
}

.km-public-subcategory .km-category-choice__child,
.km-subcategory-panel .km-category-choice__child{
  font-weight:700;
}

.km-discovery-item{
  border-radius:14px !important;
}

.km-discovery-thumb{
  border-radius:11px !important;
}

.km-category-pill{
  border-radius:12px !important;
}

.km-category-pill--compact{
  border-radius:10px !important;
}

.km-category-pill--nested{
  padding:9px 11px !important;
}

.km-category-pill--nested .km-category-pill__text{
  width:100%;
  align-items:center;
  gap:7px;
}

.km-category-pill__child--nested{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:4px 8px;
  border:1px solid color-mix(in srgb,var(--km-category-child-color) 48%,white);
  border-radius:7px;
  background:color-mix(in srgb,var(--km-category-child-color) 14%,white);
  color:color-mix(in srgb,var(--km-category-child-color) 78%,#173F61) !important;
  font-size:.76rem;
  line-height:1.2;
  font-weight:700;
}

@media(max-width:575.98px){
  .km-discovery-panel{
    border-radius:12px !important;
  }

  .km-choice-chip,
  .km-category-choice{
    border-radius:10px !important;
  }

  .km-discovery-item{
    border-radius:12px !important;
  }

  .km-category-pill{
    border-radius:10px !important;
  }
}

/* =========================================================
   EP4 Login UI R1
   Keep authentication surfaces in the NRH blue family.
   ========================================================= */

/* Login-method buttons: do not fall back to the old green hover state. */
.km-member-auth-method.km-member-auth-provider,
.km-member-auth-method.km-member-auth-hospital{
  background:var(--nrhkm-blue-dark) !important;
  border-color:#b9d8e8 !important;
  color:#fff !important;
  box-shadow:0 8px 20px rgba(23,93,136,.14) !important;
}

.km-member-auth-method.km-member-auth-provider:hover:not(:disabled),
.km-member-auth-method.km-member-auth-hospital:hover:not(:disabled){
  background:color-mix(in srgb,var(--nrhkm-blue-dark) 84%,#ffffff) !important;
  border-color:#8fc5df !important;
  color:#fff !important;
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(23,93,136,.22) !important;
}

.km-member-auth-method.km-member-auth-provider:focus-visible,
.km-member-auth-method.km-member-auth-hospital:focus-visible{
  outline:3px solid rgba(27,136,197,.24) !important;
  outline-offset:3px;
}

.km-member-auth-method.km-member-auth-hospital .km-member-auth-method-icon{
  background:rgba(255,255,255,.16);
  transition:transform .16s ease,background-color .16s ease;
}

.km-member-auth-method.km-member-auth-hospital:hover .km-member-auth-method-icon{
  transform:scale(1.05);
  background:rgba(255,255,255,.22);
}

.km-member-auth-method.km-member-auth-hospital .km-member-auth-method-arrow{
  transition:transform .16s ease,opacity .16s ease;
}

.km-member-auth-method.km-member-auth-hospital:hover .km-member-auth-method-arrow{
  transform:translateX(3px);
  opacity:1;
}

/* Footer/back links on auth pages use the same blue family. */
.km-member-auth-footer-link,
.km-member-auth-other-login{
  color:var(--nrhkm-blue-dark) !important;
  text-decoration:none;
  transition:color .15s ease,text-decoration-color .15s ease;
}

.km-member-auth-footer-link:hover,
.km-member-auth-other-login:hover{
  color:var(--nrhkm-blue) !important;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1.5px;
}

/* Local login fields get a consistent blue focus state. */
.km-member-login-card .form-control{
  border-color:#c9dde8;
  border-radius:11px;
  transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}

.km-member-login-card .form-control:hover{
  border-color:#9fc7db;
}

.km-member-login-card .form-control:focus{
  border-color:var(--nrhkm-blue);
  box-shadow:0 0 0 .22rem rgba(27,136,197,.14);
}

/* Primary login button hover/loading behavior. */
.km-local-login-submit{
  position:relative;
  min-height:52px;
  border-radius:11px !important;
  transition:
    transform .16s ease,
    box-shadow .16s ease,
    background-color .16s ease,
    border-color .16s ease !important;
}

.km-local-login-submit:hover:not(:disabled){
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(23,93,136,.24);
}

.km-local-login-submit:active:not(:disabled){
  transform:translateY(0);
  box-shadow:0 5px 14px rgba(23,93,136,.18);
}

.km-local-login-submit:focus-visible{
  outline:3px solid rgba(27,136,197,.24);
  outline-offset:3px;
}

.km-local-login-submit:disabled{
  cursor:wait;
  opacity:.82;
  transform:none;
  box-shadow:none;
}

.km-login-submit-idle,
.km-login-submit-busy{
  align-items:center;
  justify-content:center;
}

.km-login-submit-idle:not([hidden]),
.km-login-submit-busy:not([hidden]){
  display:inline-flex;
}

/* Server-side login errors are prominent but stay inside the card. */
.km-auth-error-alert{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0 0 18px;
  border:1px solid #efb5b8;
  border-radius:11px;
  background:#fff4f4;
  color:#8f2630;
  box-shadow:0 5px 16px rgba(143,38,48,.07);
}

.km-auth-error-alert > i{
  flex:0 0 auto;
  margin-top:1px;
}

/* =========================================================
   EP4 Member UI Blue R3
   Align Member-area accents with the NRH KM blue theme.
   Semantic workflow colors are preserved.
   ========================================================= */

/* ---------- Post detail ---------- */
.km-member-post-detail .km-page-heading{
  border:1px solid #d6eaf4;
  border-radius:14px;
  background:linear-gradient(110deg,#f8fcff 0%,#eef8fc 62%,#e5f3fa 100%) !important;
  box-shadow:0 7px 22px rgba(23,93,136,.07);
  padding:20px 22px;
}

.km-member-post-detail .km-page-heading h1{
  color:var(--nrhkm-ink) !important;
}

.km-member-post-detail .km-eyebrow{
  color:var(--nrhkm-blue-dark) !important;
}

.km-member-post-detail .km-backlink{
  color:var(--nrhkm-blue-dark) !important;
}

.km-member-post-detail .km-backlink:hover{
  color:var(--nrhkm-blue) !important;
}

.km-member-post-detail .km-card{
  border-color:#d7e8f1 !important;
  box-shadow:0 6px 20px rgba(23,93,136,.065) !important;
}

.km-member-post-detail .km-card > h2{
  color:#244d68;
}

.km-member-post-detail .km-media-row{
  border-color:#d7e8f1;
}

.km-member-post-detail .km-media-file-icon{
  background:#e8f5fb !important;
  color:var(--nrhkm-blue-dark) !important;
}

/* ---------- Post list / knowledge management ---------- */
.km-member-post-list-heading{
  border:1px solid #d6eaf4;
  border-radius:14px;
  background:linear-gradient(110deg,#f8fcff 0%,#eef8fc 62%,#e5f3fa 100%) !important;
  box-shadow:0 7px 22px rgba(23,93,136,.07);
  padding:20px 22px;
}

.km-member-post-list-heading .km-eyebrow{
  color:var(--nrhkm-blue-dark) !important;
}

.km-member-post-list-heading .km-wave{
  color:var(--nrhkm-blue) !important;
}

.km-member-post-list-banner{
  background:linear-gradient(112deg,#0b477c 0%,#1b88c5 58%,#69c2e7 100%) !important;
  border:1px solid rgba(27,136,197,.14);
  box-shadow:0 10px 28px rgba(11,71,124,.14);
}

.km-member-post-list-banner .km-welcome-tag{
  color:#e5f7ff !important;
}

.km-member-post-list-banner p{
  color:#eef9ff !important;
}

.km-member-post-list-banner .km-welcome-action{
  color:#0b477c !important;
}

.km-member-post-list-card{
  border-color:#dceaf2 !important;
}

.km-member-post-list-card .km-list-search:focus-within{
  border-color:#69b8dc !important;
  box-shadow:0 0 0 .21rem rgba(27,136,197,.12) !important;
}

.km-member-post-list-card .km-filter:hover,
.km-member-post-list-card .km-filter.active{
  color:var(--nrhkm-blue-dark) !important;
}

.km-member-post-list-card .km-filter.active{
  border-bottom-color:var(--nrhkm-blue) !important;
}

/* ---------- Create / edit knowledge post ---------- */
.km-member-post-form .km-form-intro{
  color:#416d88 !important;
  background:linear-gradient(110deg,#f5fbfe,#eaf6fb) !important;
  border-color:#cfe6f2 !important;
  box-shadow:0 5px 16px rgba(23,93,136,.055);
}

.km-member-post-form .km-form-intro span{
  color:var(--nrhkm-blue-dark) !important;
}

.km-member-post-form .km-form-intro i{
  color:var(--nrhkm-blue) !important;
}

.km-member-post-form .km-section-number{
  background:linear-gradient(135deg,var(--nrhkm-blue),var(--nrhkm-blue-dark)) !important;
  box-shadow:0 5px 14px rgba(27,136,197,.16);
}

.km-member-post-form .km-add-co-owner-button{
  --bs-btn-color:var(--nrhkm-blue-dark);
  --bs-btn-bg:#f3fafe;
  --bs-btn-border-color:#b9dbea;
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:var(--nrhkm-blue);
  --bs-btn-hover-border-color:var(--nrhkm-blue);
  --bs-btn-active-color:#fff;
  --bs-btn-active-bg:var(--nrhkm-blue-dark);
  --bs-btn-active-border-color:var(--nrhkm-blue-dark);
  border-radius:9px;
  font-weight:600;
  transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease;
}

.km-member-post-form .km-add-co-owner-button:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 15px rgba(27,136,197,.17);
}

.km-member-post-form .km-add-co-owner-button:focus-visible{
  outline:3px solid rgba(27,136,197,.20);
  outline-offset:2px;
}

/* ---------- My Knowledge Library ---------- */
.km-member-my-library .km-public-eyebrow{
  color:var(--nrhkm-blue-dark) !important;
}

.km-member-my-library .km-public-eyebrow i{
  color:var(--nrhkm-blue) !important;
}

@media(max-width:700px){
  .km-member-post-detail .km-page-heading,
  .km-member-post-list-heading{
    padding:16px;
    border-radius:12px;
  }
}

/* =========================================================
   EP4 Member/Public Detail Blue R4

   Removes remaining legacy green accents from:
   - knowledge-list fallback thumbnail/icon
   - contributor card
   - engagement/rating card
   - comments card

   Star yellow and danger/report colors remain semantic.
   ========================================================= */

/* ---------- Knowledge list fallback thumbnail ---------- */
.km-discovery-thumb{
  background:linear-gradient(
    135deg,
    #e7f4fb 0%,
    #edf7fc 52%,
    #f4f9fd 100%
  ) !important;
  color:var(--nrhkm-blue) !important;
  border:1px solid #d7e9f3;
}

.km-discovery-thumb span{
  color:var(--nrhkm-blue) !important;
}

.km-discovery-thumb span i{
  color:var(--nrhkm-blue) !important;
}

.km-discovery-item:hover .km-discovery-thumb{
  background:linear-gradient(
    135deg,
    #dff0f9 0%,
    #e9f5fb 100%
  ) !important;
  border-color:#bdddec;
}

/* ---------- Public/member detail sidebar shared framing ---------- */
.nrh-detail-sidebar .nrh-side-card{
  border-color:#d9e9f2 !important;
  box-shadow:0 7px 22px rgba(23,93,136,.065) !important;
}

.nrh-detail-sidebar .nrh-side-card:hover{
  border-color:#c7e0ed !important;
}

/* ---------- Contributor ---------- */
.nrh-owner-card .nrh-side-heading-icon{
  background:#e8f5fb !important;
  color:var(--nrhkm-blue-dark) !important;
}

.nrh-owner-card .nrh-side-heading h2{
  color:var(--nrhkm-blue-dark) !important;
}

.nrh-owner-avatar{
  background:linear-gradient(
    135deg,
    #e4f3fb 0%,
    #edf6fc 55%,
    #f4f9fd 100%
  ) !important;
  color:var(--nrhkm-blue-dark) !important;
  border:1px solid #d2e7f2;
}

.nrh-owner-name{
  color:#244d68 !important;
}

.nrh-owner-meta{
  color:#718a99 !important;
}

.nrh-owner-profile-btn{
  border-color:#b9dbea !important;
  background:#f4fafe !important;
  color:var(--nrhkm-blue-dark) !important;
  transition:
    background-color .15s ease,
    border-color .15s ease,
    color .15s ease,
    transform .15s ease,
    box-shadow .15s ease;
}

.nrh-owner-profile-btn:hover{
  background:var(--nrhkm-blue) !important;
  border-color:var(--nrhkm-blue) !important;
  color:#fff !important;
  transform:translateY(-1px);
  box-shadow:0 7px 16px rgba(27,136,197,.17);
}

/* ---------- Satisfaction / engagement ---------- */
.nrh-engagement-card > h2{
  color:var(--nrhkm-blue-dark) !important;
}

.nrh-engagement-stats > div{
  background:#f5fafe !important;
  border-color:#deebf2 !important;
}

.nrh-engagement-stats i{
  color:var(--nrhkm-blue) !important;
}

.nrh-engagement-stats strong{
  color:#244d68 !important;
}

.nrh-engagement-stats small{
  color:#7b909d !important;
}

/* Keep stars yellow because star color is semantic. */
.nrh-rating-stars{
  color:#ffb21c !important;
}

.nrh-rating-summary strong{
  color:#244d68 !important;
}

/* Rating input containers use blue framing; filled stars remain yellow. */
.nrh-rating-form .nrh-rating-star-button{
  border-color:#d5e7f1 !important;
  background:#fff !important;
}

.nrh-rating-form .nrh-rating-star-button:hover{
  border-color:#9fcde2 !important;
  background:#f3fafe !important;
}

.nrh-rating-form .nrh-rating-star-button:focus-visible{
  outline:3px solid rgba(27,136,197,.18) !important;
  outline-offset:2px;
}

.nrh-detail-actions button{
  border-color:#d3e5ee !important;
  background:#fff !important;
  color:#416b82 !important;
}

.nrh-detail-actions button:hover{
  background:#eef8fc !important;
  border-color:#a9d3e6 !important;
  color:var(--nrhkm-blue-dark) !important;
}

/* ---------- Comments ---------- */
.nrh-comments-header h2{
  color:var(--nrhkm-blue-dark) !important;
}

.nrh-comments-header > span{
  background:#e8f5fb !important;
  color:var(--nrhkm-blue-dark) !important;
}

.nrh-comment-form textarea{
  border-color:#d5e6ef !important;
}

.nrh-comment-form textarea:hover{
  border-color:#b8d8e8 !important;
}

.nrh-comment-form textarea:focus{
  border-color:var(--nrhkm-blue) !important;
  box-shadow:0 0 0 3px rgba(27,136,197,.10) !important;
}

.nrh-comment-submit{
  background:linear-gradient(
    135deg,
    var(--nrhkm-blue),
    var(--nrhkm-blue-dark)
  ) !important;
  color:#fff !important;
  transition:
    transform .15s ease,
    box-shadow .15s ease,
    filter .15s ease;
}

.nrh-comment-submit:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(23,93,136,.18);
  filter:brightness(1.03);
}

.nrh-comment-login-note{
  background:#f5fafe !important;
  border:1px solid #dfebf2;
  color:#708894 !important;
}

.nrh-comment-login-note a{
  color:var(--nrhkm-blue-dark) !important;
}

.nrh-comment-login-note a:hover{
  color:var(--nrhkm-blue) !important;
}

.nrh-comment-item{
  border-top-color:#e3edf3 !important;
}

.nrh-comment-avatar{
  background:#e8f5fb !important;
  color:var(--nrhkm-blue-dark) !important;
}

.nrh-comment-user strong{
  color:#355a70 !important;
}

.nrh-comment-body{
  color:#607987 !important;
}

/* Keep report action in danger/red family because it is semantic. */
.nrh-comment-report{
  color:#b46f72 !important;
}

/* NRH KM EP4 SIDEBAR RESPONSIVE R1
   - keep the desktop sidebar inside the viewport
   - make the sidebar body independently scrollable
   - ensure tablet/mobile offcanvas stays above the page/mobile bar
*/
.km-sidebar {
  height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
}

.km-sidebar > .offcanvas-body {
  min-height: 0;
  height: 100%;
  max-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
}

@media (min-width: 992px) {
  .km-sidebar {
    position: sticky;
    top: 0;
    align-self: flex-start;
  }

  .km-sidebar > .offcanvas-body {
    max-height: 100dvh;
  }
}

@media (max-width: 991.98px) {
  .km-sidebar.offcanvas-lg {
    width: min(88vw, 320px);
    height: 100dvh;
    max-height: 100dvh;
    z-index: 1105;
  }

  .km-sidebar .offcanvas-header {
    position: sticky;
    top: 0;
    z-index: 3;
    flex: 0 0 auto;
    background: var(--bs-body-bg, #fff);
  }

  .km-sidebar > .offcanvas-body {
    position: relative;
    z-index: 2;
    flex: 1 1 auto;
    height: auto;
    max-height: none;
    padding-bottom: max(1rem, env(safe-area-inset-bottom)) !important;
  }

  .offcanvas-backdrop.show {
    z-index: 1100;
  }

  .km-mobile-bar {
    z-index: 1090;
  }
}

/* NRH KM EP4 CATEGORY PLAIN UNDER TITLE R3
   plain=1 is opt-in. Search Card / Create / Edit retain original UI.
*/
.km-category-pill.km-category-display--plain {
  display: inline-flex !important;
  align-items: center;
  gap: .38rem;
  width: auto !important;
  max-width: 100%;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--km-category-color) !important;
  font-size: .78rem;
  font-weight: 600;
  line-height: 1.35;
  white-space: normal;
}

.km-category-display--plain .km-category-pill__icon,
.km-category-display--plain .km-category-pill__root,
.km-category-display--plain .km-category-pill__sep {
  color: var(--km-category-color) !important;
}

.km-category-display--plain .km-category-pill__text {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .28rem;
  width: auto !important;
  color: inherit !important;
}

.km-category-display--plain .km-category-pill__child,
.km-category-display--plain .km-category-pill__child--nested {
  display: inline !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--km-category-child-color, var(--km-category-color)) !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: inherit !important;
}

.km-post-category-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  min-width: 0;
  margin: .22rem 0 .58rem;
}

.km-discovery-item {
  grid-template-columns: 130px minmax(0, 1fr) auto !important;
}

.km-discovery-item-body {
  grid-column: 2 !important;
}

.km-discovery-item-side {
  grid-column: 3 !important;
}

.km-public-result-category {
  margin-top: -.08rem;
  margin-bottom: .48rem;
}

@media (max-width: 991.98px) {
  .km-discovery-item {
    grid-template-columns: 110px minmax(0, 1fr) !important;
    align-items: start;
  }

  .km-discovery-item-body {
    grid-column: 2 !important;
  }

  .km-discovery-item-side {
    grid-column: 2 !important;
  }
}

@media (max-width: 575.98px) {
  .km-discovery-item {
    grid-template-columns: 92px minmax(0, 1fr) !important;
    gap: 12px;
  }

  .km-discovery-item-body {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  .km-discovery-item-side {
    grid-column: 1 / -1 !important;
  }
}
