.ipf-suggestions-wrap { position: relative; flex: 1 1 18rem; }
.ipf-suggestions-wrap input { width: 100%; }
.ipf-suggestions { position: absolute; z-index: 25; inset: 100% 0 auto; margin: .3rem 0 0; padding: .3rem; list-style: none; background: #fff; color: #002355; border: 1px solid #8293a6; border-radius: .4rem; box-shadow: 0 8px 24px #00235526; max-height: 24rem; overflow: auto; }
.ipf-suggestions li { padding: .8rem; cursor: pointer; min-height: 44px; border-radius: .25rem; }
.ipf-suggestions li:hover, .ipf-suggestions li[aria-selected="true"] { background: #e8eef6; outline: 2px solid #002355; outline-offset: -2px; }
.ipf-search-hint { font-size: .88rem; margin-block: .5rem; }
.ipf-checklist-tools { margin-top: 1.5rem; }
.ipf-checklist-tools progress { width: 100%; height: 1rem; accent-color: #97c7ff; }
.ipf-tool-actions { display: flex; gap: .7rem; flex-wrap: wrap; margin-block: 1rem; }
.ipf-tool-actions button { min-height: 44px; cursor: pointer; }
.ipf-programme-form label { display: block; font-weight: 700; margin-block: 1rem .4rem; }
.ipf-programme-form input, .ipf-programme-form textarea, .ipf-programme-form select { width: 100%; max-width: 100%; padding: .8rem; border: 1px solid #71839b; border-radius: .35rem; background: #fff; color: #002355; font: inherit; }
.ipf-programme-form fieldset { min-width: 0; margin: 1rem 0; padding: 1.25rem; border: 1px solid #b8c6d7; border-radius: .6rem; }
.ipf-programme-form legend { font-size: 1.15rem; font-weight: 700; padding-inline: .5rem; }
.ipf-programme-form .ipf-field-hint { font-size: .9rem; margin: .4rem 0; }
.ipf-programme-output { white-space: pre-wrap; overflow-wrap: anywhere; padding: 1.5rem; background: #edf2f8; border-left: 4px solid #002355; }
@media print {
  .ipf-header, .ipf-footer, .ipf-breadcrumb, .ipf-page-index, .ipf-page-hero img, .ipf-photo-credit,
  .ipf-tool-actions, .ipf-guide-related, .ipf-guide-official-action, .ipf-guide-hero-meta, .ipf-checklist-tools { display: none !important; }
  .ipf-section, .ipf-page-hero { padding: 1rem 0 !important; background: #fff !important; color: #000 !important; min-height: 0 !important; }
  .ipf-page-hero-content { color: #000 !important; }
  .ipf-page-hero::before, .ipf-page-hero::after { display: none !important; }
  .ipf-editorial-split { display: block !important; }
  h2, h3 { break-after: avoid; }
  .ipf-guide-checklist li, .ipf-resource-card { break-inside: avoid; }
}
