/* WebinarHub UI consistency layer: loaded after historical theme CSS.
   Admin and participant menus share one light navigation vocabulary. */
.wh-v4 .concept-portal-grid {grid-template-columns: minmax(190px, 226px) minmax(0,1fr);gap:18px;align-items:start}
.wh-v4 .concept-portal-grid > *,.wh-v4 .concept-portal-main {min-width:0}
.wh-v4 .concept-portal-menu {
  position:sticky;top:90px;align-self:start;display:flex;flex-direction:column;gap:4px;
  padding:16px 12px;border:1px solid #dce9ed;border-radius:14px;
  background:#f5f9fa!important;color:#102e45!important;box-shadow:none!important;
}
.wh-v4 .concept-portal-menu a {
  display:flex;align-items:center;min-height:44px;padding:11px 13px;border:1px solid transparent;
  border-radius:9px;background:transparent!important;color:#315565!important;
  font-size:13px;font-weight:650;white-space:normal;text-decoration:none;
}
.wh-v4 .concept-portal-menu a:is(:hover,:focus-visible) {background:#e7f4f5!important;color:#006f7a!important}
.wh-v4 .concept-portal-menu a.active,.wh-v4 .concept-portal-menu a[aria-current="page"] {
  background:#dff2f2!important;color:#006f7a!important;border-color:#c2e4e6;
  box-shadow:inset 3px 0 0 #00878d;
}
.wh-v4 .concept-portal-menu a:focus-visible,.wh-v4 .hub-mobile-nav-toggle:focus-visible {
  outline:3px solid #00878d;outline-offset:2px;
}
.wh-v4 .concept-registered-image {
  display:grid;place-items:center;background:#e8f5f5!important;
  background-image:none!important;color:#00878d;font-size:26px;flex-shrink:0;
}
.wh-v4 .concept-registered-item,.wh-v4 .concept-registered-actions,.wh-v4 .concept-participant-heading {min-width:0}
.wh-v4 .concept-registered-text {min-width:0;overflow-wrap:anywhere}
.wh-v4 .concept-registered-actions {display:flex;flex-wrap:wrap;gap:8px}
.wh-v4 .hub-mobile-nav-toggle {display:none;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 14px;background:#f5f9fa;border:1px solid #dce9ed;border-radius:10px;color:#103149;font:inherit;font-weight:700;cursor:pointer}
/* Across the site, intrinsic children must be allowed to shrink on small screens. */
.wh-v4 :is(.section,.panel,.app-shell,main,.concept-portal-main,.concept-portal-grid,.grid,.cards,.form,.recovery-main,.fpd-signin__form) {min-width:0}
.wh-v4 :is(input,select,textarea) {max-width:100%;box-sizing:border-box}
.wh-v4 :is(h1,h2,h3,p,.panel,.section-head,.concept-participant-heading) {overflow-wrap:break-word}
.wh-v4 .table-wrap {max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:900px) {
  .wh-v4 .concept-portal-grid {grid-template-columns:1fr;gap:12px}
  .wh-v4 .concept-portal-menu {position:static;display:flex;flex-direction:row;flex-wrap:wrap;overflow:visible;gap:5px;padding:9px}
  .wh-v4 .concept-portal-menu a {flex:1 1 auto;text-align:center;justify-content:center;min-height:44px;padding:10px}
}
@media(max-width:650px) {
  .wh-v4 .topbar {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:10px 12px!important;min-height:64px;height:auto!important}
  .wh-v4 .topbar .brand {min-width:0}
  .wh-v4 .hub-mobile-nav-toggle {display:inline-flex;flex:0 0 auto}
  .wh-v4.js-mobile-nav .topbar #hub-primary-nav {display:none!important}
  .wh-v4.js-mobile-nav .topbar #hub-primary-nav.is-open {display:flex!important}
  .wh-v4 .topbar #hub-primary-nav {
    width:100%;flex:1 0 100%;min-width:0;flex-direction:column;align-items:stretch;
    overflow:visible;max-width:100%;gap:4px;padding:10px 0 5px;
    background:#fff;border-top:1px solid #e4ecee;
  }
  .wh-v4 .topbar #hub-primary-nav a,.wh-v4 .topbar #hub-primary-nav form,.wh-v4 .topbar #hub-primary-nav button {width:100%;text-align:left;min-height:44px;display:flex;align-items:center;justify-content:flex-start;margin:0;white-space:normal}
  .wh-v4 .concept-portal-menu {display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .wh-v4 .concept-portal-menu a {white-space:normal;font-size:12px;justify-content:flex-start;text-align:left}
  .wh-v4 .concept-participant-heading .btn {width:100%;text-align:center}
  .wh-v4 .concept-registered-item {display:flex;flex-wrap:wrap;padding:14px;gap:10px}
  .wh-v4 .concept-registered-text {flex:1 1 140px}
  .wh-v4 .concept-registered-actions {flex:1 0 100%}
  .wh-v4 .concept-registered-actions .btn {flex:1 1 125px;min-height:44px;display:inline-flex;justify-content:center;align-items:center;text-align:center;white-space:normal}
  .wh-v4 .concept-after-webinar form {display:flex;flex-wrap:wrap;gap:8px}
  .wh-v4 .concept-after-webinar form > * {min-width:0;flex:1 1 140px}
  .wh-v4 .hub-draft-notice,.wh-v4 .hub-draft-actions {flex-wrap:wrap;max-width:100%}
  .wh-v4 :is(.registration-choice-layout,.fpd-signin,.recovery-layout,.concept-choice-page) {max-width:100%}
  .wh-v4 .app-shell.has-sidebar>.admin-sidebar {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;white-space:normal;padding:9px;gap:5px}
  .wh-v4 .app-shell.has-sidebar>.admin-sidebar a {white-space:normal;min-width:0;min-height:44px;display:flex;align-items:center;font-size:12px}
}
@media(max-width:360px) {
  .wh-v4 .topbar .brand {font-size:15px}
  .wh-v4 .topbar .brand img {width:42px;height:auto}
  .wh-v4 .concept-portal-menu a {font-size:11px;padding:8px}
  .wh-v4 .concept-metrics {grid-template-columns:1fr}
  .wh-v4 .concept-registered-actions .btn {flex-basis:100%}
  .wh-v4 .section,.wh-v4 .app-shell.has-sidebar main>.section {padding-left:10px!important;padding-right:10px!important}
  .wh-v4 .concept-participant-heading {padding:14px}
}
