/* FND Passport: a personal document on a calm, useful working surface. */
.fndp { --fndp-wrap: 70rem; background: #f5f4ef; }
.fndp *, .fndp *::before, .fndp *::after { box-sizing: border-box; }
.fndp [hidden] { display: none !important; }
.fndp :is(button, a, summary, input, textarea, select):focus-visible { outline: 3px solid #ffdd00; outline-offset: 3px; }
.fndp-workspace { line-height: 1.6; }
.fndp-workspace h2, .fndp-workspace h3 { color: #142d4d; }
.fndp-workspace p { max-width: 70ch; }
.fndp-workspace a { text-underline-offset: 3px; }
.fndp-workspace :is(h1, h2, h3, p, li, dd) { overflow-wrap: anywhere; }
.fndp-workspace :is(.fndp-form, .fndp-field, .fndp-fieldset) { grid-template-columns: minmax(0, 1fr); }
.fndp-workspace :is(input, textarea, select, label, .fndp-form > *, .fndp-field > *) { min-width: 0; }
.fndp-workspace :is(label, legend, .fndp-source) { overflow-wrap: anywhere; }
.fndp-workspace .fndp-source { white-space: normal; }
.fndp-workspace .fndp-kicker { color: #65624f; font-size: .72rem; letter-spacing: .13em; }
.fndp-workspace .fndp-lead { color: #48556a; }
.fndp-productnav { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .6rem max(1rem, calc((100% - 70rem) / 2)); background: #fff; border-bottom: 1px solid #e0dfd7; }
.fndp-productnav a { display: inline-flex; align-items: center; min-height: 44px; padding: .4rem .6rem; color: #28425e; font-size: .85rem; font-weight: 650; text-decoration: none; }
.fndp-productnav a:hover { color: #b0004c; text-decoration: underline; }
.fndp-productnav .fndp-productnav__brand { color: #102b4d; padding-left: 0; font-size: 1rem; font-weight: 800; }
.fndp-productnav > div { display: flex; flex-wrap: wrap; }
.fndp-pagehead { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.8rem; }
.fndp-pagehead .fndp-lead { margin-bottom: 0; }
.fndp-home { padding-block: 2rem 4rem; }
.fndp-desk { display: grid; grid-template-columns: minmax(250px, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; padding: 2.75rem 3rem; background: #eeece4; border-block: 1px solid #e2dfd4; }
.fndp-desk__book { display: flex; align-items: center; justify-content: center; perspective: 1400px; }
.fndp-passport-cover { display: flex; position: relative; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; width: min(100%, 292px); aspect-ratio: 105 / 148; padding: 1.7rem 1.5rem; color: #e5c77c !important; background: radial-gradient(ellipse at 80% 0, #1d3b60, transparent 70%), #0c2548; border: 1px solid #244264; border-radius: 4px 13px 13px 4px; text-align: center; text-decoration: none !important; box-shadow: inset 6px 0 8px #0006, inset -1px 0 1px #ffffff30, 4px 4px 0 -1px #d7d0bd, 7px 7px 0 -2px #e8e2d4, 0 14px 24px #132a4325; transition: transform 220ms ease, box-shadow 220ms ease; }
.fndp-passport-cover::before { content: ''; position: absolute; inset: .8rem .75rem .8rem 1rem; border: 1px solid #d5b87555; border-radius: 2px 7px 7px 2px; pointer-events: none; }
a.fndp-passport-cover:hover { transform: translateY(-4px) rotateY(-4deg); box-shadow: inset 6px 0 8px #0006, 4px 4px 0 -1px #d7d0bd, 7px 7px 0 -2px #e8e2d4, 0 18px 30px #132a4330; }
.fndp-passport-cover__brand { font-size: .72rem; text-transform: uppercase; letter-spacing: .18em; }
.fndp-passport-cover__emblem { width: 72px; height: 84px; margin: .2rem 0; flex-shrink: 0; }
.fndp-passport-cover__title { font-size: 1.6rem; line-height: 1.23; letter-spacing: .13em; text-transform: uppercase; font-weight: 750; }
.fndp-passport-cover__subtitle { max-width: 14rem; font-size: .7rem; letter-spacing: .06em; color: #d8dfeb; }
.fndp-passport-cover__holder { font-size: .9rem; color: #fff; margin-top: .4rem; overflow-wrap: anywhere; max-width: 100%; }
.fndp-passport-cover__open { display: flex; align-items: center; gap: .8rem; margin-top: .25rem; min-height: 44px; font-size: .8rem; }
.fndp-desk__content h2 { font-size: clamp(1.5rem, 2vw, 1.85rem); margin: .9rem 0 .65rem; }
.fndp-desk__content > p { color: #465367; }
.fndp-status { display: flex; align-items: center; gap: .5rem; margin: 0; color: #37485b; font-size: .85rem; font-weight: 650; }
.fndp-status__dot { flex-shrink: 0; width: 7px; height: 7px; border-radius: 50%; background: #6b7480; }
.fndp-status__dot.is-on { background: #14785b; }
.fndp-journey { display: grid; gap: .8rem; list-style: none; padding: 0; margin: 1.75rem 0 0; }
.fndp-journey li { display: flex; gap: .8rem; }
.fndp-journey li > span { padding-top: .15rem; color: #8a7645; font-size: .7rem; letter-spacing: .05em; font-weight: 750; }
.fndp-journey strong { display: block; color: #253b55; font-size: .9rem; }
.fndp-journey small { display: block; color: #596471; font-size: .85rem; line-height: 1.45; }
.fndp-nextnote { margin: 1.2rem 0 0; font-size: .85rem; }
.fndp-workspace-section { padding-top: 2.75rem; scroll-margin-top: 1rem; }
.fndp-section-heading { display: flex; justify-content: space-between; gap: 1.5rem; align-items: end; margin-bottom: 1.3rem; }
.fndp-section-heading h2 { margin: 0; font-size: 1.45rem; }
.fndp-section-heading > p { margin: 0; max-width: 29rem; color: #596471; font-size: .9rem; }
.fndp-version-list { list-style: none; margin: 0 0 1rem; padding: 0; border-top: 1px solid #d9d7cb; }
.fndp-version { display: grid; grid-template-columns: minmax(0, 1.25fr) 7.5rem minmax(0, 1.3fr); column-gap: 1.25rem; align-items: center; padding: 1.25rem 0; border-bottom: 1px solid #d9d7cb; }
.fndp-version__identity { display: flex; align-items: start; gap: .8rem; min-width: 0; }
.fndp-version__seal { flex: 0 0 2.3rem; width: 2.3rem; height: 2.6rem; display: grid; place-items: center; border: 1px solid #b6ae96; border-radius: 2px 6px 6px 2px; color: #536179; font-size: .85rem; font-weight: 750; }
.fndp-version h3 { font-size: 1rem; margin: 0 0 .2rem; }
.fndp-version__identity p { font-size: .85rem; line-height: 1.5; color: #596471; margin: 0; }
.fndp-version__status { margin: 0; font-size: .78rem; color: #596471; }
.fndp-version__status strong, .fndp-version__status span { display: block; }
.fndp-version__status strong { color: #304458; font-weight: 650; }
.fndp-version__actions { display: flex; align-items: center; justify-content: end; gap: .15rem; flex-wrap: wrap; }
.fndp-version__actions :is(.fnd-action, .fndp-linkbtn) { font-size: .8rem; padding-inline: .6rem; min-height: 44px; }
.fndp-version__extra { grid-column: 1 / -1; justify-self: start; min-height: 44px; display: inline-flex; align-items: center; gap: .4rem; margin: .1rem 0 -.5rem 3.1rem; color: #4d5e72; font-size: .8rem; }
.fndp-workspace-columns { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); }
.fndp-editlist { list-style: none; padding: 0; border-top: 1px solid #d9d7cb; }
.fndp-editlist a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 48px; padding: .6rem 0; border-bottom: 1px solid #d9d7cb; color: #23415e; text-decoration: none; font-weight: 650; font-size: .9rem; }
.fndp-editlist a:hover { color: #b0004c; background: #ffffff80; }
.fndp-workspace .fndp-disclosure { border: 0; border-block: 1px solid #d9d7cb; border-radius: 0; background: transparent; box-shadow: none; padding: .7rem 0; }
.fndp-workspace .fndp-disclosure summary { min-height: 44px; color: #2a405c; font-weight: 700; cursor: pointer; padding-block: .55rem; }
.fndp-workspace .fndp-disclosure summary > span { float: right; color: #6e6a5c; font-weight: 400; }
.fndp-connected { margin-block: 1.5rem; }
.fndp-connected h2 { font-size: 1.2rem; margin: .25rem 0 .6rem; }
.fndp-connected p { font-size: .9rem; }
.fndp-intro { padding: 3.5rem 0; background: #eeece4; }
.fndp-intro__layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 3rem; align-items: center; }
.fndp-intro h1 { font-size: clamp(2.4rem, 4vw, 3.8rem); letter-spacing: -.045em; margin-bottom: 1rem; }
.fndp-intro__statement { margin: 0 0 1rem; font-size: clamp(1.6rem, 2.4vw, 2.4rem); line-height: 1.3; color: #34485f; }
.fndp-intro__copy .fndp-lead { max-width: 35rem; }
.fndp-intro__note { font-size: .8rem; color: #596471; margin-top: 1.25rem; max-width: 27rem; }
.fndp-intro__visual { display: flex; flex-direction: column; align-items: center; }
.fndp-intro__visual > p { margin-top: 1.5rem; font-size: .8rem; color: #626a73; }
.fndp-passport-cover--display { transform: rotate(4deg); }
.fndp-process { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.fndp-process li { border-top: 1px solid #c9c1ab; padding-top: 1rem; }
.fndp-process li > span { color: #807047; font-size: .8rem; font-weight: 700; letter-spacing: .1em; }
.fndp-process h3 { font-size: 1.1rem; margin: .65rem 0; }
.fndp-process p { color: #596471; font-size: .9rem; }
.fndp-editorial-list { list-style: none; padding: 0; }
.fndp-editorial-list li { display: grid; gap: .25rem; padding: .8rem 0; border-bottom: 1px solid #dedbd0; }
.fndp-editorial-list span { color: #596471; font-size: .9rem; }
.fndp-final-action { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 2rem 0; margin-top: 2rem; border-top: 1px solid #d9d7cb; }
.fndp-final-action h2 { font-size: 1.35rem; margin: 0; }
.fndp-final-action p { margin: .3rem 0 0; color: #596471; }
.fndp-section--narrow { padding-block: 2rem 4rem; }
.fndp-setup-sheet { --fndp-narrow: 46rem; padding: clamp(1.25rem, 3vw, 2.5rem); background: #fffefa; border: 1px solid #e1ddcf; border-radius: 4px 12px 12px 4px; box-shadow: 4px 4px 0 -1px #e5e0d3; }
.fndp-setup-sheet .fndp-lead { font-size: 1rem; }
.fndp-save-note { margin: 1rem 0 1.4rem; padding: .8rem 1rem; border-left: 2px solid #b49c61; background: #f3f0e6; color: #4f574f; font-size: .85rem; }
.fndp-stage-label { font-size: .75rem; color: #5f6874; padding-bottom: 1rem; border-bottom: 1px solid #e2dfd4; margin: 0 0 1.5rem; }
.fndp-stage-label > span { margin-inline: .5rem; color: #92866a; }
.fndp-stages { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 0; margin: 1rem 0 1.8rem; gap: .7rem; }
.fndp-stages li { display: flex; align-items: center; gap: .4rem; color: #6b7175; font-size: .7rem; line-height: 1.35; }
.fndp-stages span { display: grid; place-items: center; flex-shrink: 0; border: 1px solid #c3c4bc; width: 1.3rem; height: 1.3rem; border-radius: 50%; font-size: .65rem; }
.fndp-stages strong { font-weight: 500; }
.fndp-stages .is-current { color: #0b2b50; }
.fndp-stages .is-current span { background: #0b2b50; color: #fff; border-color: #0b2b50; }
.fndp-stages .is-current strong { font-weight: 750; }
.fndp-stages .is-previous span { border-color: #b8a165; color: #64522a; background: #f7f2e4; }
.fndp-section-index { margin: 0 0 1.5rem; padding-bottom: .75rem; border-bottom: 1px solid #e2dfd4; }
.fndp-section-index summary { min-height: 44px; padding-block: .5rem; cursor: pointer; color: #354e68; font-size: .85rem; }
.fndp-section-index ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-left: 1.4rem; gap: .15rem 1.2rem; font-size: .85rem; }
.fndp-section-index a { display: inline-flex; align-items: center; min-height: 44px; color: #354e68; }
.fndp-section-index a[aria-current] { color: #a50048; font-weight: 750; }
.fndp-setup-sheet .fndp-sticky-actions { margin-inline: calc(-1 * clamp(1.25rem, 3vw, 2.5rem)); padding-inline: clamp(1.25rem, 3vw, 2.5rem); background: #fffefaf5; }
.fndp-setup-sheet .fndp-card { border-radius: 6px; box-shadow: none; border-color: #dfded5; }
.fndp-setup-sheet .fndp-check, .fndp-setup-sheet .fndp-radio-card, .fndp-setup-sheet .fndp-keep { border-radius: 6px; }
.fndp .fndp-progress > span { background: #a08750; }
.fndp .fndp-progress { background: #e5e1d4; }
.fndp-setup-sheet .fndp-sharegroup { padding-top: 1rem; border-top: 1px solid #e2dfd4; }
.fndp-workspace .fndp-modetabs { gap: .4rem; flex-wrap: wrap; overflow: visible; }
.fndp-workspace .fndp-modetabs a { border-radius: 5px; white-space: normal; max-width: 100%; }
.fndp-workspace .fndp-modetabs a[aria-current="page"] { background: #112e50; border-color: #112e50; }
.fndp-setup-sheet .fndp-qr { background: #fff; }
.fndp-link-controls { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid #dedbd0; }
.fndp-link-controls h2 { font-size: 1.15rem; }
@media (max-width: 1120px) {
  /* Keep the shared header usable when a reader enlarges text. */
  .fndp-body .nav-row { flex-wrap: wrap; padding-block: .35rem; }
  .fndp-body .header-actions { flex-wrap: wrap; max-width: 100%; justify-content: end; }
}
@media (max-width: 1050px) {
  .fndp-version { grid-template-columns: minmax(0, 1fr) 7rem; }
  .fndp-version__actions { grid-column: 1 / -1; justify-content: start; margin: .6rem 0 0 3.1rem; }
  .fndp-desk { padding: 2rem; gap: 2.5rem; }
}
@media (max-width: 700px) {
  .fndp-productnav { display: block; padding: .45rem .7rem; }
  .fndp-productnav__brand { display: none !important; }
  .fndp-productnav > div { justify-content: space-between; gap: .2rem; }
  .fndp-productnav a { font-size: .8rem; }
  .fndp-home { padding-top: 1.4rem; }
  .fndp-pagehead { align-items: start; flex-direction: column; gap: .4rem; }
  .fndp-pagehead > .fndp-linkbtn { padding-left: 0; }
  .fndp-desk { grid-template-columns: minmax(0, 1fr); padding: 1.8rem 1.25rem; gap: 2rem; }
  .fndp-passport-cover { width: 238px; gap: .6rem; padding: 1.5rem 1.25rem; }
  .fndp-passport-cover__emblem { width: 60px; height: 70px; }
  .fndp-passport-cover__title { font-size: 1.35rem; }
  .fndp-passport-cover__brand { font-size: .65rem; }
  .fndp-passport-cover__subtitle { font-size: .65rem; }
  .fndp-desk__content h2 { font-size: 1.5rem; }
  .fndp-desk__content > .fndp-actions { align-items: stretch; flex-direction: column; }
  .fndp-section-heading { flex-direction: column; align-items: start; gap: .5rem; }
  .fndp-workspace-section { padding-top: 2rem; }
  .fndp-workspace-columns, .fndp-intro__layout, .fndp-process { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
  .fndp-workspace-columns > aside { padding-top: 1rem; }
  .fndp-version { grid-template-columns: minmax(0, 1fr); gap: .65rem; padding-block: 1rem; }
  .fndp-version__status { display: flex; gap: .6rem; margin-left: 3.1rem; }
  .fndp-version__actions { margin-top: 0; gap: .2rem; }
  .fndp-version__extra { font-size: .8rem; }
  .fndp-intro { padding-block: 2rem 2.5rem; }
  .fndp-intro__visual { margin-top: 2rem; }
  .fndp-process { gap: 1rem; }
  .fndp-process p { margin-bottom: 0; }
  .fndp-final-action { align-items: start; flex-direction: column; gap: 1rem; }
  .fndp-section--narrow { padding-top: 1.25rem; }
  .fndp-setup-sheet { width: calc(100% - 1.25rem); padding: 1.1rem; }
  .fndp-stages { gap: .4rem; }
  .fndp-stages li { align-items: start; flex-direction: column; gap: .3rem; font-size: .65rem; }
  .fndp-setup-sheet .fndp-sticky-actions { margin-inline: -1.1rem; padding-inline: 1.1rem; }
  .fndp-section-index ol { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .fndp-workspace *, .fndp-workspace *::before, .fndp-workspace *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print { .fndp-productnav { display: none !important; } }
