/* Forum directory: uses the shared BitFire enterprise design tokens. */
.forum-page .mobile-cta { display: none; }
.forum-hero { padding: calc(var(--nav-height) + 24px) 0 30px; background: radial-gradient(ellipse at 85% 25%, #14334b 0, transparent 58%), var(--ink); border-bottom: 1px solid var(--line); }
.forum-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; color: var(--text-soft); margin-bottom: 20px; }
.forum-breadcrumb a:hover { color: var(--white); }
.forum-hero h1 { margin: 0 0 10px; line-height: 1.15; letter-spacing: -.035em; }
.forum-lede { margin: 0; color: var(--text-soft); }
.forum-account { display:flex; justify-content:flex-end; min-height:36px; margin-top:16px; }
.forum-account > a { color:#fff; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.forum-account-member, #forum-account-member { display:flex; align-items:center; gap:10px; color:#fff; }
#forum-account-member .forum-avatar { width:34px; height:34px; flex-basis:34px; border-radius:9px; }
#forum-account-member .forum-avatar-initials { font-size:14px; }
#forum-account-member form { margin:0; }
#forum-account-member button { padding:5px 0; border:0; background:transparent; color:#d6e8f3; font:inherit; font-weight:700; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.forum-title-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.forum-title-row h1 { margin: 0; }
.forum-directory { padding: 30px 0 48px; color: var(--text-dark); background: var(--paper); }
.forum-count { border: 1px solid #cedbe4; border-radius: 99px; padding: 6px 14px; color: var(--text-dark-soft); white-space: nowrap; background: #fff; }
.forum-group { margin-bottom: 30px; scroll-margin-top: 100px; }
.forum-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.forum-group-heading h2 { margin: 0 0 4px; letter-spacing: -.025em; }
.forum-group-heading p { margin: 0; color: var(--text-dark-soft); }
.forum-topics { list-style: none; padding: 0; margin: 0; background: #fff; border: 1px solid #d6e0e8; border-radius: 16px; overflow: hidden; box-shadow: 0 6px 22px #0b1b3004; }
.forum-topics > li + li { border-top: 1px solid #e0e7ed; }
.forum-topics > li { scroll-margin-top: 100px; }
.forum-topics > li:target { background: #edf6fc; }
.forum-topic { display: flex; gap: 18px; align-items: center; padding: 20px 23px; }
.forum-topic:hover { background: #f0f7fb; }
.forum-topic-icon { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 44px; border-radius: 12px; color: #256993; background: #eaf3f9; border: 1px solid #d6e8f3; }
#site-security .forum-topic-icon { color: #326c62; background: #eaf5f0; border-color: #d1e9df; }
.forum-topic-copy { flex: 1; min-width: 0; }
.forum-topic-name { display: block; font-weight: 750; line-height: 1.4; margin-bottom: 5px; letter-spacing: -.015em; }
.forum-topic-description { display: block; color: var(--text-dark-soft); line-height: 1.6; }
.forum-arrow { color: #376781; font-size: 22px; }
.forum-thread-count { color: var(--text-dark-soft); white-space: nowrap; }
.forum-empty { padding: 32px; border: 1px solid #d6e0e8; border-radius: 16px; background: #fff; }
.forum-empty > .icon { color: #256993; }
.forum-empty h3 { margin: 12px 0; }
.forum-empty p { color: var(--text-dark-soft); max-width: 75ch; margin: 0 0 18px; }
.forum-guide { color: #185c88; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.forum-badge { display: inline-block; padding: 2px 8px; border-radius: 5px; background: #eaf3f9; color: #256993; font-size: var(--fs-xs); vertical-align: middle; }
.forum-sample { margin: 0 0 20px; color: var(--text-dark-soft); }
.forum-posts { display: grid; gap: 20px; }
.forum-post { background: #fff; border: 1px solid #bccfdc; border-radius: 16px; overflow: hidden; scroll-margin-top: 100px; }
.forum-post:target { border-color: #218bc9; box-shadow: 0 0 0 1px #218bc9; }
.forum-post-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 26px; background: #dce8f1; border-bottom: 1px solid #bccfdc; }
.forum-post-header > div { min-width: 0; overflow-wrap: anywhere; }
.forum-author { display: flex; align-items: center; gap: 14px; }
.forum-author-copy { min-width: 0; }
.forum-author-copy strong { display: block; color: #102d42; }
.forum-member-id { display: block; color: #425c70; }
.forum-author-label { display: inline-block; color: #215a7f; font-weight: 650; }
.forum-post-meta { text-align: right; color: #425c70; }
.forum-post-number { display: inline-block; margin-top: 6px; color: #185c88; text-decoration: underline; }
.forum-reply-reference { margin: 0 0 12px; color: #526677; }
.forum-reply-reference a { text-decoration: underline; text-underline-offset: 3px; }
.forum-post-body { padding: 26px; max-width: 90ch; overflow-wrap: anywhere; line-height: 1.8; }
.forum-post-attachments { margin-top: 20px; }
.forum-post-image { display: block; inline-size: auto; block-size: auto; max-inline-size: min(100%, 900px); max-block-size: 70vh; object-fit: contain; border: 1px solid #cedbe4; border-radius: 10px; }
.forum-image-placeholder { max-inline-size: 520px; padding: 24px; border: 1px dashed #7f9caf; border-radius: 10px; color: #425c70; background: #f1f6fa; text-align: center; font-weight: 700; }
.forum-image-unavailable { margin: 0; color: #526677; font-style: italic; }
.forum-avatar { position: relative; display: inline-grid; place-items: center; flex: 0 0 48px; width: 48px; height: 48px; overflow: hidden; border-radius: 12px; color: #fff; isolation: isolate; box-shadow: inset 0 0 0 1px #0002; }
.forum-avatar--ocean { background: #205b85; }
.forum-avatar--teal { background: #176358; }
.forum-avatar--violet { background: #60418a; }
.forum-avatar--berry { background: #87395c; }
.forum-avatar--rust { background: #824825; }
.forum-avatar--slate { background: #405769; }
.forum-avatar-mark { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 5; opacity: .2; }
.forum-avatar-initials { position: relative; z-index: 1; font-size: 19px; font-weight: 800; line-height: 1; letter-spacing: .015em; text-shadow: 0 1px 2px #0006; }
.forum-topic > .forum-avatar { width: 44px; height: 44px; flex-basis: 44px; }
.forum-title-row h1, .forum-topic-name { overflow-wrap: anywhere; }
.forum-back { display: inline-block; margin-top: 24px; color: #185c88; text-decoration: underline; }
.forum-unavailable { padding: 28px; border: 1px solid #cedbe4; background: #fff; border-radius: 14px; }
.forum-unavailable a { text-decoration: underline; }
.forum-saved-draft { padding:24px; margin-bottom:24px; border:1px solid #92b8d0; border-radius:14px; background:#fff; }
.forum-saved-draft h2, .forum-saved-draft p { margin-top:0; }
.forum-saved-draft textarea { width:100%; padding:14px; border:1px solid #acbfce; border-radius:9px; background:#f4f7fa; color:#102d42; font:inherit; resize:vertical; }
.forum-page a:focus-visible { outline: 3px solid #218bc9; outline-offset: -3px; border-radius: 4px; }
@media (max-width: 520px) {
  .forum-title-row { align-items: flex-start; flex-direction: column; }
  .forum-group-heading { gap: 12px; }
  .forum-count { padding: 5px 10px; }
  .forum-topic { display: grid; grid-template-columns: 34px minmax(0, 1fr) 18px; padding: 18px 14px; gap: 8px 12px; align-items: start; }
  .forum-thread-count { grid-column: 2; }
  .forum-arrow { grid-column: 3; grid-row: 1; }
  .forum-topic-icon { width: 34px; height: 34px; flex-basis: 34px; border-radius: 9px; }
  .forum-topic-icon .icon { width: 19px; height: 19px; }
  .forum-empty { padding: 24px; }
  .forum-topic > .forum-avatar { width: 34px; height: 34px; border-radius: 9px; }
  .forum-topic .forum-avatar-initials { font-size: 14px; }
  .forum-post-header { padding: 18px; flex-wrap: wrap; }
  .forum-post-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; text-align: left; }
  .forum-post-number { margin-top: 0; }
  .forum-post-body { padding: 20px 18px; }
}
.forum-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.forum-post-actions { display: flex; justify-content: flex-end; padding: 0 26px 18px; }
.forum-reply-button, .forum-edit-reply, .forum-signin-switch, .forum-new-user { border: 0; background: transparent; color: #185c88; font: inherit; font-size: var(--fs-sm); font-weight: 700; cursor: pointer; padding: 8px 0; }
.forum-reply-button:hover, .forum-edit-reply:hover, .forum-signin-switch:hover, .forum-new-user:hover { text-decoration: underline; text-underline-offset: 4px; }
.forum-reply-button[aria-expanded="true"] { color: #0b344d; }
.forum-composer[hidden], .forum-compose-step[hidden], .forum-reply-button[hidden], .forum-reply-identity[hidden], #forum-account[hidden], #forum-account-guest[hidden], #forum-account-member[hidden], .forum-name-field[hidden], .forum-signin-switch[hidden] { display: none; }
.forum-composer { color: var(--text-dark); background: #fff; border: 1px solid #92b8d0; border-radius: 16px; overflow: hidden; box-shadow: 0 8px 30px #0b1b300a; scroll-margin-top: calc(var(--nav-height) + 16px); }
.forum-composer-header { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 24px; background: #eaf3f9; border-bottom: 1px solid #d6e0e8; }
.forum-composer-header h2, .forum-composer-header p { margin: 0; }
.forum-composer-header p { margin-top: 4px; color: #425c70; overflow-wrap: anywhere; }
.forum-composer-close { flex-shrink: 0; width: 40px; height: 40px; background: transparent; border: 1px solid #bccfdc; border-radius: 50%; color: #425c70; font-size: 24px; cursor: pointer; }
.forum-composer-stages { padding: 24px; overflow: hidden; }
.forum-compose-step { margin: 0; }
.forum-field { margin-bottom: 20px; }
.forum-field label { display: block; margin-bottom: 7px; color: #102d42; font-size: var(--fs-sm); font-weight: 700; }
.forum-field input, .forum-field textarea { display: block; width: 100%; border: 1px solid #acbfce; border-radius: 9px; background: #fff; color: #102d42; padding: 12px 14px; font: inherit; font-size: 16px; line-height: 1.5; }
.forum-field input[type="file"] { padding: 10px; }
.forum-image-signin { margin: -8px 0 18px; color: #526677; }
.forum-field input::placeholder, .forum-field textarea::placeholder { color: #647787; opacity: 1; }
.forum-field input:focus, .forum-field textarea:focus { outline: 2px solid #218bc9; outline-offset: 2px; }
.forum-field textarea { min-height: 130px; resize: vertical; }
.forum-field p { margin: 8px 0 0; color: #526677; }
.forum-compose-actions { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.forum-compose-actions > .button:only-child { margin-left: auto; }
.forum-compose-actions .button { flex-shrink: 0; cursor: pointer; }
.forum-compose-actions .button:disabled { opacity: .6; cursor: wait; }
.forum-compose-step h3 { margin: 0 0 8px; color: #102d42; }
.forum-email-intro { margin: 0 0 18px; color: #526677; }
.forum-draft-summary { padding: 12px 16px; margin-bottom: 20px; background: #f4f7fa; border-left: 3px solid #92b8d0; border-radius: 4px; color: #526677; }
.forum-draft-summary p { margin: 4px 0 0; color: #102d42; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; white-space: pre-wrap; }
.forum-verification-status, .forum-post-status, .forum-signin-status { margin: 16px 0 0; color: #425c70; }
.forum-verification-status:empty, .forum-post-status:empty, .forum-signin-status:empty { display: none; }
.forum-reply-identity { display:flex; align-items:center; gap:12px; padding:10px 14px; margin-bottom:18px; border-radius:10px; background:#f1f6fa; }
.forum-reply-identity p { margin:0; }
.forum-reply-identity .forum-avatar { width:38px; height:38px; flex-basis:38px; border-radius:9px; }
.forum-reply-identity .forum-avatar-initials { font-size:15px; }
.forum-composer button:focus-visible, .forum-reply-button:focus-visible { outline: 3px solid #218bc9; outline-offset: 3px; }
.forum-replies-closed { color: #526677; margin-top: 24px; }
@media (max-width: 520px) {
  .forum-post-actions { padding: 0 18px 14px; }
  .forum-composer-header { padding: 16px 18px; }
  .forum-composer-stages { padding: 20px 18px; }
  .forum-compose-actions { flex-wrap: wrap; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) { html:has(.forum-page) { scroll-behavior: auto; } }
