/* R11: layout and help changes, layered over the existing theme. */
body > main.container-fluid { min-height: 0; min-width: 0; }
.magpie-footer { clear: both; margin-top: auto; }
.magpie-footer > .container-fluid > .row { row-gap: .75rem; }
.magpie-footer small { display: block; overflow-wrap: anywhere; }
.magpie-footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem 1rem; font-size: .875rem; }
.magpie-footer-links a { display: inline-block; padding: .25rem 0; text-decoration: none; }
body.cookie-banner-visible .magpie-footer { padding-bottom: calc(var(--cookie-banner-height, 180px) + 2rem) !important; }
.dv-pagination { max-width: 100%; }
.dv-pagination .pagination { flex-wrap: wrap; gap: .35rem; }
.dv-pagination .page-link { margin-left: 0; border-radius: .35rem; min-height: 36px; display: flex; align-items: center; }
.dv-identity-cell { min-width: 15rem; }
.dv-row-device { display: flex; align-items: flex-start; gap: .75rem; }
.dv-row-device > .device-icon-circle { width: 36px; height: 36px; flex: 0 0 36px; display: flex; align-items: center; justify-content: center; }
.dv-row-identity { min-width: 0; max-width: 26rem; }
.dv-row-name { color: var(--text-primary); font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.dv-row-name:hover { text-decoration: underline; }
.dv-row-summary { display: flex; flex-wrap: wrap; gap: .2rem .8rem; color: var(--text-secondary); font-size: .8rem; margin-top: .2rem; }
.dv-setup-details { font-size: .78rem; color: var(--text-secondary); margin-top: .3rem; }
.dv-setup-details summary { cursor: pointer; width: fit-content; padding: .15rem 0; }
.dv-setup-details dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .2rem .65rem; margin: .5rem 0; }
.dv-setup-details dt { font-weight: 600; }
.dv-setup-details dd { margin: 0; overflow-wrap: anywhere; white-space: normal; }
.dv-setup-details p { max-width: 26rem; white-space: normal; }
.kb-page { max-width: 1500px; margin: 0 auto; }
.kb-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; }
.kb-heading h1 { font-size: 1.8rem; margin-bottom: .35rem; }
.kb-content, .kb-content .card-body { min-width: 0; }
#kb-page .kb-nav .kb-section-header { color: var(--text-secondary); background: var(--bs-tertiary-bg); border-color: var(--bs-border-color); }
#kb-page .kb-nav .list-group-item-action { color: var(--text-primary); border-color: var(--bs-border-color); }
#kb-page .kb-nav .list-group-item-action:hover, #kb-page .kb-nav .list-group-item-action.active { color: var(--text-primary); background: var(--bs-primary-bg-subtle, #cfe2ff); }
#kb-page .kb-nav .list-group-item-action:focus-visible { color: var(--text-primary); outline: 3px solid var(--bs-primary); }
.kb-page .card-body > :last-child { margin-bottom: 0; }
.kb-page h3 { margin-top: 1.25rem; }
.kb-page .card-header h2 { font-size: 1.2rem; }
.faq-list { display: grid; gap: .75rem; }
.faq-item { border: 1px solid var(--bs-border-color); border-radius: .6rem; background: var(--bs-body-bg); }
.faq-item summary { padding: 1rem 1.15rem; font-weight: 600; cursor: pointer; line-height: 1.5; overflow-wrap: anywhere; }
.faq-answer { padding: 0 1.15rem 1rem; color: var(--text-secondary); line-height: 1.65; }
.faq-answer > :last-child { margin-bottom: 0; }
.faq-search { max-width: 36rem; }
.faq-item summary:focus-visible, .dv-setup-details summary:focus-visible { outline: 3px solid var(--bs-primary); outline-offset: 3px; border-radius: .35rem; }
.faq-item[hidden], .faq-empty[hidden] { display: none !important; }
@media (min-width: 992px) {
  .kb-sidebar { position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow-y: auto; }
}
@media (max-width: 1199.98px) {
  body > .navbar { height: auto !important; max-height: none !important; min-height: 64px !important; }
  body > .navbar > .container-fluid { min-height: 64px; height: auto !important; flex-wrap: wrap; }
  body > .navbar .navbar-collapse { padding-bottom: .75rem; }
}
@media (max-width: 767.98px) {
  .magpie-footer-links { justify-content: center; }
  .kb-heading { align-items: flex-start; }
  .kb-heading h1 { font-size: 1.5rem; }
  .dv-row-device > .device-icon-circle { display: none; }
}
