/* tol-fullpath.css: the Full path package section of the Workpaper Suite (suite.html). */
.fp, .fp *{ box-sizing: border-box; }
.fp{ margin-top: 2.8em; padding: 1.2em 1.1em 1.4em; border-radius: 26px; background: linear-gradient(160deg, #FFF8EE 0%, #F6EEF8 60%, #EEF4FA 100%); border: 1px solid #EADCF0; }
.fp > h2{ display: flex; align-items: center; gap: .55em; margin: 0 0 .3em; }
.fp-lede{ margin: .2em 0 .6em; }
.fp-private{ margin: 0 0 1em; padding: .7em .9em; border-radius: 14px; background: #EEF4EC; border: 1px solid #CFE0CC; font-size: .95em; }
.fp-three{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.fp-card{ display: flex; flex-direction: column; gap: .5em; padding: 1em 1.05em 1.1em; border-radius: 20px; background: #FFFDF7; border: 1px solid rgba(60,51,80,.12); min-width: 0; }
.fp-card h3{ margin: 0; font-size: 1.12rem; line-height: 1.25; }
.fp-card p{ margin: 0; font-size: .92em; color: var(--ink-soft, #524B3E); }
.fp-card .ws-go{ margin-top: auto; width: 100%; }
.fp-k{ margin: 0; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: #8A6D8F; }
.fp-card label, .fp-inline{ display: flex; flex-direction: column; gap: 3px; font-size: .86em; font-weight: 600; }
.fp-card label[hidden], .fp-inline[hidden]{ display: none !important; }
.fp select, .fp input[type="text"], .fp input[type="date"], .fp textarea{
  width: 100%; max-width: 100%; font: inherit; font-size: 1rem; font-weight: 400; padding: 8px 11px; border-radius: 12px;
  border: 1px solid #D9C8E4; background: #fff; color: var(--ink, #211D17); min-height: 42px;
}
.fp textarea{ resize: vertical; line-height: 1.4; }
.fp select:focus-visible, .fp input:focus-visible, .fp textarea:focus-visible, .fp button:focus-visible{ outline: 2px solid var(--focus, #2B5B8C); outline-offset: 2px; }
.fp-drop{ border: 2px dashed #D9C8F0; border-radius: 16px; padding: .7em; text-align: center; transition: border-color .3s; }
.fp-drop.is-over{ border-color: #C95B7A; }
.fp-upload-note{ font-size: .88em; color: var(--credit, #3E6B4C) !important; font-weight: 600; }
.fp-upload-note:empty{ display: none; }
.fp-btn-quiet{ font: inherit; font-weight: 600; font-size: .95rem; min-height: 44px; padding: 8px 16px; border-radius: 999px; background: #fff; color: #3C3350; border: 1px solid #C9B6DA; cursor: pointer; }
.fp-btn-quiet:hover{ background: #F3EEF9; }
.fp-btn-quiet[disabled]{ opacity: .45; cursor: default; }
.fp-actions{ display: flex; flex-wrap: wrap; gap: 10px; margin: 1em 0; }
.fp-status{ margin: .8em 0 0; font-size: .9em; color: var(--credit, #3E6B4C); font-weight: 600; min-height: 1.2em; }

/* preview of what was read */
.fp-panel{ margin-top: 1.2em; padding: 1.1em; border-radius: 20px; background: #fff; border: 1px solid rgba(60,51,80,.12); }
.fp-h3{ margin: 0 0 .3em; font-size: 1.3rem; }
.fp-h3:focus{ outline: none; }
.fp-h4{ margin: 1.2em 0 .45em; font-size: 1.05rem; }
.fp-read-sum, .fp-read-who{ margin: .2em 0; }
.fp-read-who{ color: var(--ink-soft, #524B3E); font-size: .92em; }
.fp-read-list, .fp-issues{ list-style: none; padding: 0; margin: .8em 0 0; display: grid; gap: 6px; }
.fp-read-item{ display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; align-items: baseline; padding: .55em .75em; border-radius: 12px; background: #FAF6EE; border: 1px solid #EFE4CF; }
.fp-read-item.is-read{ background: #F2F8F0; border-color: #D6E7D2; }
.fp-read-name{ font-weight: 600; overflow-wrap: anywhere; }
.fp-read-count{ font-size: .85em; color: var(--ink-soft, #524B3E); white-space: nowrap; }
.fp-read-miss{ grid-column: 1 / -1; font-size: .84em; color: var(--ink-soft, #524B3E); overflow-wrap: anywhere; }
.fp-fix{ grid-column: 1 / -1; justify-self: start; font-size: .88em !important; }
.fp-issues li{ padding: .5em .75em; border-radius: 12px; background: #FDF1EA; border: 1px solid #F1D5C6; font-size: .92em; overflow-wrap: anywhere; }
.fp-warn{ padding: .5em .75em; border-radius: 12px; background: #FDF1EA; font-size: .92em; }
.fp-note{ font-style: italic; color: var(--ink-soft, #524B3E); font-size: .93em; }

/* the guided form */
.fp-form-top{ display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: .8em; }
.fp-form-top .fp-inline{ flex: 1 1 160px; }
.fp-steps{ list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0 0 1em; }
.fp-step{ font: inherit; font-size: .82rem; min-height: 36px; padding: 5px 11px; border-radius: 999px; border: 1px solid #D9C8F0; background: #fff; color: #4E3F6B; cursor: pointer; }
.fp-step.is-filled{ background: #EAF3E7; border-color: #CFE0CC; }
.fp-step.is-on{ background: #3C3350; border-color: #3C3350; color: #FFF8EE; }
.fp-page{ padding: 1em; border-radius: 18px; background: #FFFDF7; border: 1px solid rgba(60,51,80,.1); }
.fp-page-k{ margin: 0; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .72rem; letter-spacing: .06em; color: var(--brass-ink, #7A5620); }
.fp-page-sub{ margin: -.2em 0 .4em; font-style: italic; color: var(--ink-soft, #524B3E); }
.fp-why{ margin: .2em 0 .5em; font-style: italic; color: var(--credit, #3E6B4C); }
.fp-intro{ margin: .2em 0 .7em; font-size: .92em; color: var(--ink-soft, #524B3E); }
.fp-fields{ display: flex; flex-wrap: wrap; gap: 10px 14px; }
.fp-field{ flex: 1 1 100%; min-width: 0; }
.fp-field.is-half{ flex: 1 1 calc(50% - 14px); min-width: min(100%, 200px); }
.fp-field.is-third{ flex: 1 1 calc(33% - 14px); min-width: min(100%, 160px); }
.fp-label{ display: block; margin-bottom: 3px; font-size: .86em; font-weight: 600; }
.fp-radio{ flex: 1 1 100%; min-width: 0; margin: 0; padding: .4em 0 .2em; border: 0; }
.fp-radio legend, .fp-row legend, .fp-person legend, .fp-chips legend{ padding: 0; font-size: .86em; font-weight: 600; }
.fp-radio-row{ display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; align-items: center; }
.fp-radio.is-stack .fp-radio-row{ flex-direction: column; align-items: stretch; }
.fp-opt{ display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 6px 12px; border-radius: 999px; border: 1px solid #D9C8F0; background: #fff; cursor: pointer; font-size: .92em; }
.fp-opt input{ margin: 0; accent-color: #3E6B4C; }
.fp-opt:has(input:checked){ background: #EAF3E7; border-color: #9BC39A; }
.fp-radio.is-scale .fp-opt{ min-width: 48px; justify-content: center; }
.fp-clear{ font: inherit; font-size: .8rem; min-height: 32px; padding: 3px 10px; border-radius: 999px; border: 1px dashed #C9B6DA; background: transparent; color: #6B5A7E; cursor: pointer; }
.fp-check{ display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 4px 12px 4px 8px; border-radius: 12px; font-size: .93em; cursor: pointer; }
.fp-check input{ width: 18px; height: 18px; margin: 0; accent-color: #3E6B4C; flex: none; }
.fp-row{ margin: 0 0 10px; padding: .6em .75em .75em; border-radius: 14px; border: 1px solid #EFE4CF; background: #fff; min-width: 0; }
.fp-row-grid{ display: flex; flex-wrap: wrap; gap: 8px 12px; }
.fp-row-grid .fp-field{ flex: 1 1 150px; }
.fp-row-grid .fp-radio{ flex: 1 1 100%; }
.fp-row-grid .fp-check{ flex: 0 1 auto; }
.fp-person{ margin: 0 0 12px; padding: .7em .8em; border-radius: 14px; border: 1px solid #EFE4CF; background: #fff; min-width: 0; }
.fp-person legend{ font-family: "Fraunces", Georgia, serif; font-size: 1.05rem; }
.fp-chips{ margin: 0 0 10px; padding: .5em .7em; border-radius: 14px; border: 1px solid #EFE4CF; background: #fff; display: flex; flex-wrap: wrap; gap: 4px; min-width: 0; }
.fp-chips .fp-field{ flex: 1 1 100%; }
.fp-day{ margin: 0 0 8px; border-radius: 14px; border: 1px solid #EADCF0; background: #FBF8FD; padding: .3em .6em; }
.fp-day > summary{ cursor: pointer; font-weight: 600; min-height: 40px; display: flex; align-items: center; }
.fp-derived{ margin: .8em 0; padding: .7em .9em; border-radius: 14px; background: #EAF1E9; }
.fp-derived p{ margin: .15em 0; font-size: .93em; overflow-wrap: anywhere; }
.fp-derived-k{ font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .7rem !important; letter-spacing: .08em; text-transform: uppercase; color: var(--credit, #3E6B4C); }
.fp-howto{ padding-left: 1.3em; }
.fp-howto li{ margin: .25em 0; }
.fp-form-foot{ display: flex; justify-content: space-between; gap: 10px; margin-top: 1em; flex-wrap: wrap; }
.fp-form-foot .ws-go{ margin-left: auto; }
.fp-form-more{ font-size: .9em; color: var(--ink-soft, #524B3E); }

/* the report */
.fp-rep-head{ padding: 1em 1.1em; border-radius: 20px; background: #F7CAD4; }
.fp-rep-head[data-road="self"]{ background: #F8E7AE; }
.fp-rep-head[data-road="family"]{ background: #CFE6D2; }
.fp-rep-head[data-road="coparents"]{ background: #D8E4F4; }
.fp-rep-head[data-road="friends"]{ background: #EBDDF6; }
.fp-rep-head[data-road="roommates"]{ background: #F9D9B8; }
.fp-rep-head[data-road="coworkers"]{ background: #D6EEF0; }
.fp-rep-head[data-road="caregivers"]{ background: #E3EEC9; }
.fp-rep-head .fp-note{ color: #3C3350; margin-bottom: 0; }
.fp-rep-for{ margin: 0; }
.fp-tiles{ display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.fp-tile{ padding: .7em .8em; border-radius: 16px; background: #F3ECD9; min-width: 0; }
.fp-tile.is-good{ background: #CFE6D2; } .fp-tile.is-drift{ background: #F8E7AE; } .fp-tile.is-low{ background: #E4DDF2; }
.fp-tile p{ margin: 0; overflow-wrap: anywhere; }
.fp-tile-k{ font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; color: #5A5346; }
.fp-tile-v{ font-family: "Fraunces", Georgia, serif; font-size: 1.25rem; line-height: 1.25; font-weight: 600; }
.fp-tile-b{ font-size: .86em; }
.fp-tile-n{ font-size: .8em; font-style: italic; color: #5A5346; }
.fp-findings{ padding-left: 1.4em; }
.fp-findings li{ margin: .4em 0; }
.fp-rep-wp{ margin: 0 0 8px; padding: .4em .9em .7em; border-radius: 16px; background: #fff; border: 1px solid rgba(60,51,80,.12); }
.fp-rep-wp.is-blank{ background: #FAF6EE; }
.fp-rep-wp > summary{ cursor: pointer; font-weight: 600; min-height: 40px; display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.fp-rep-code{ font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .78rem; color: var(--brass-ink, #7A5620); }
.fp-sub{ margin: .8em 0 .2em; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--credit, #3E6B4C); }
.fp-kv{ display: grid; grid-template-columns: minmax(0, 12em) minmax(0, 1fr); gap: 4px 12px; margin: 0; font-size: .93em; }
.fp-kv dt{ font-weight: 600; color: #5A5346; overflow-wrap: anywhere; }
.fp-kv dd{ margin: 0; overflow-wrap: anywhere; }
.fp-rep-wp ul, .fp-rep-road ul, .fp-fair{ padding-left: 1.2em; }
.fp-rep-wp li, .fp-rep-road li, .fp-fair li{ margin: .25em 0; overflow-wrap: anywhere; }
.fp-callout{ padding: .7em .9em; border-radius: 14px; background: #EAF1E9; }
.fp-callout.is-butter{ background: #FBF1CF; } .fp-callout.is-mint{ background: #DDEEDF; } .fp-callout.is-peach{ background: #FBE3CC; } .fp-callout.is-lav{ background: #EFE6F7; }
.fp-quotes li{ font-style: italic; }
.fp-pillar-list{ list-style: none; padding: 0; display: grid; gap: 8px; }
.fp-pillar-list li{ padding: .6em .8em; border-radius: 14px; background: #fff; border: 1px solid rgba(60,51,80,.1); }
.fp-pillar-v{ font-size: .88em; color: #5A5346; }
.fp-pillar-lines{ display: block; font-size: .9em; margin-top: 2px; }
.fp-plan{ list-style: none; padding: 0; display: grid; gap: 8px; counter-reset: none; }
.fp-plan li{ display: flex; flex-direction: column; gap: 2px; padding: .7em .9em; border-radius: 14px; background: #fff; border: 1px solid rgba(60,51,80,.1); }
.fp-plan-wp{ font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .74rem; color: var(--brass-ink, #7A5620); }
.fp-links a{ overflow-wrap: anywhere; }
.fp-close{ font-style: italic; }
.ws-full-promo{ margin: 1em 0 0; padding: .7em .9em; border-radius: 14px; background: #FFF4DA; border: 1px solid #F1DCA6; font-size: .95em; }

/* the long report: contents, folding sections, tables, bars and item cards */
.fp-toc{ margin: 1em 0; padding: .8em 1em; border-radius: 16px; background: #FBF8FD; border: 1px solid #EADCF0; }
.fp-toc-k{ margin: 0 0 .3em; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: #8A6D8F; }
.fp-toc ol{ margin: 0; padding-left: 1.4em; columns: 2 16em; column-gap: 2em; }
.fp-toc li{ margin: .15em 0; break-inside: avoid; }
.fp-toc a{ display: block; min-height: 32px; padding: 4px 0; overflow-wrap: anywhere; }
.fp-toc-tools{ margin: .5em 0 0; font-size: .9em; }
.fp-rsec{ margin: 0 0 12px; border-radius: 18px; background: #FFFDF7; border: 1px solid rgba(60,51,80,.12); min-width: 0; }
.fp-rsec > summary{ cursor: pointer; display: flex; align-items: center; gap: .6em; min-height: 48px; padding: .5em .9em; font-family: "Fraunces", Georgia, serif; font-size: 1.12rem; font-weight: 600; }
.fp-rsec > summary:focus-visible, .fp-rep-wp > summary:focus-visible, .fp-person-card > summary:focus-visible{ outline: 2px solid var(--focus, #2B5B8C); outline-offset: 2px; border-radius: 12px; }
.fp-rsec-n{ flex: none; display: inline-grid; place-items: center; width: 1.8em; height: 1.8em; border-radius: 50%; background: #F3ECD9; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .8rem; }
.fp-rsec-t{ min-width: 0; overflow-wrap: anywhere; }
.fp-rsec-body{ padding: 0 .9em 1em; min-width: 0; }
.fp-lead{ font-size: 1.04em; line-height: 1.55; }
.fp-bands{ font-size: .88em; color: #5A5346; padding-left: 1.2em; }
.fp-top{ padding-left: 1.4em; }
.fp-top li{ margin: .5em 0; display: flex; flex-direction: column; gap: 2px; overflow-wrap: anywhere; }
.fp-top-step{ font-size: .92em; color: var(--credit, #3E6B4C); }
.fp-strengths li, .fp-rsec-body li{ overflow-wrap: anywhere; }
.fp-callout.is-sand{ background: #F3ECD9; }
.fp-callout ul{ margin: .3em 0 0; padding-left: 1.2em; }
.fp-small{ font-size: .84em; margin: .3em 0 0; }
.fp-sub-brass{ color: var(--brass-ink, #7A5620); }
.fp-tablewrap{ margin: .6em 0 .8em; max-width: 100%; min-width: 0; }
.fp-table{ width: 100%; table-layout: fixed; border-collapse: collapse; font-size: .86em; }
.fp-table th, .fp-table td{ text-align: left; vertical-align: top; padding: .38em .45em; border-bottom: 1px solid #EFE4CF; overflow-wrap: break-word; hyphens: auto; }
.fp-table thead th{ background: #F3ECD9; font-size: .92em; color: #5A5346; font-weight: 600; }
.fp-table tbody tr:nth-child(even){ background: #FBF7EC; }
.fp-bars{ margin: .6em 0 .8em; }
.fp-bar{ display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; margin: .35em 0; font-size: .9em; }
.fp-bar-l{ font-weight: 600; overflow-wrap: anywhere; min-width: 0; }
.fp-bar-v{ color: #5A5346; text-align: right; overflow-wrap: anywhere; max-width: 14em; }
.fp-bar-track{ grid-column: 1 / -1; display: block; height: 10px; border-radius: 999px; background: #F3ECD9; overflow: hidden; }
.fp-bar-fill{ display: block; height: 100%; border-radius: 999px; background: #E88BA2; }
.fp-bar-fill.is-c1{ background: #B49AD6; } .fp-bar-fill.is-c2{ background: #7FB98A; } .fp-bar-fill.is-c3{ background: #E9C95E; } .fp-bar-fill.is-c4{ background: #8EAEDB; } .fp-bar-fill.is-c5{ background: #EBA56B; }
.fp-items{ display: grid; gap: 8px; }
.fp-item{ padding: .6em .8em; border-radius: 14px; background: #fff; border: 1px solid rgba(60,51,80,.12); border-left: 5px solid #F7CAD4; min-width: 0; }
.fp-item.is-good{ border-left-color: #9BC39A; } .fp-item.is-check{ border-left-color: #EBA56B; } .fp-item.is-noted{ border-left-color: #8EAEDB; }
.fp-item.is-rec.is-now{ border-left-color: #EBA56B; } .fp-item.is-rec.is-week{ border-left-color: #E9C95E; } .fp-item.is-rec.is-month{ border-left-color: #7FB98A; }
.fp-item-t{ margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.fp-item-tag{ margin: 0 0 .3em; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .72rem; color: var(--brass-ink, #7A5620); }
.fp-item .fp-links{ margin: .3em 0 0; font-size: .9em; }
.fp-kv-tight{ grid-template-columns: minmax(0, 9em) minmax(0, 1fr); font-size: .92em; }
.fp-people{ display: grid; gap: 8px; }
.fp-person-card{ padding: .3em .9em .7em; border-radius: 16px; background: #fff; border: 1px solid rgba(60,51,80,.12); min-width: 0; }
.fp-person-card > summary{ cursor: pointer; min-height: 44px; display: flex; align-items: center; font-family: "Fraunces", Georgia, serif; font-weight: 600; font-size: 1.05rem; overflow-wrap: anywhere; }
.fp-quote{ font-style: italic; }
.fp-questions{ padding-left: 1.4em; }
.fp-questions li{ margin: .35em 0; font-style: italic; overflow-wrap: anywhere; }
.fp-pillar-list .fp-kv{ margin-top: .4em; }
@media (max-width: 760px){
  .fp-toc ol{ columns: 1; }
  .fp-rsec-body{ padding: 0 .6em .9em; }
  .fp-kv-tight{ grid-template-columns: minmax(0, 1fr); }
  .fp-table{ font-size: .8em; }
  .fp-table th, .fp-table td{ padding: .32em .3em; }
}
@media print{
  .fp-toc-tools{ display: none !important; }
  .fp-rsec, .fp-rep-wp, .fp-person-card{ break-inside: auto; }
}

@media (max-width: 760px){
  .fp{ padding: 1em .8em 1.1em; border-radius: 20px; }
  .fp-three{ grid-template-columns: minmax(0, 1fr); }
  .fp-kv{ grid-template-columns: minmax(0, 1fr); }
  .fp-kv dd{ margin-bottom: 6px; }
  .fp-page{ padding: .8em .7em; }
  .fp-form-foot .ws-go{ width: 100%; }
  .fp-form-foot .fp-btn-quiet{ width: 100%; }
}
@media print{
  .fp-three, .fp-form, .fp-actions, .fp-steps{ display: none !important; }
}

/* privacy, whose turn, and combining two copies */
.fp-private-note{ padding: .55em .8em; border-radius: 12px; background: #FFF6D9; border: 1px solid #EBD898; font-size: .92em; color: var(--ink, #211D17); font-style: normal; }
.fp-private-note::before{ content: "Private · "; font-weight: 700; }
.fp-turn{ margin: .8em 0 .4em; padding: .5em .8em; border-radius: 12px; background: #EEF4FA; border: 1px solid #CFDDEE; font-size: .92em; }
.fp-turn-dot{ margin-right: .1em; }
.fp-rows-for{ width: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: .2em 0 .6em; font-size: .92em; font-weight: 600; }
.fp-rows-for select{ width: auto; max-width: 100%; min-width: 0; flex: 1 1 10rem; }
.fp input[type="date"]{ min-width: 0; }
.fp-share{ margin: .9em 0; display: grid; gap: .45em; }
.fp-share .fp-private-note{ margin: 0; }
.fp-merge{ margin: 1em 0; padding: .8em .9em; border-radius: 16px; background: #F6F1FB; border: 1px solid #DCCDEB; }
.fp-merge .fp-h4{ margin-top: 0; }
.fp-conflicts{ list-style: none; padding: 0; margin: .6em 0 0; display: grid; gap: 8px; }
.fp-conflict{ display: flex; flex-wrap: wrap; gap: 6px; padding: .55em .7em; border-radius: 12px; background: #fff; border: 1px solid #E5DAEF; }
.fp-conflict-w{ flex: 1 1 100%; margin: 0; font-weight: 600; font-size: .9em; overflow-wrap: anywhere; }
.fp-conflict .fp-opt{ max-width: 100%; overflow-wrap: anywhere; border-radius: 14px; }
.fp-fields > .fp-fields, .fp-block > *{ min-width: 0; max-width: 100%; }
.fp-fields > .fp-fields{ flex: 1 1 100%; }

/* "What the report gives you" (moved here from /full-path.html) */
.fp-what{ margin: 0 0 1em; }
.fp-what summary{ min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 600; }
.fp-what ul{ margin: .3em 0 .6em; }
