.fp { --fp-g: #2e7d32; --fp-g2: #43a047; --fp-gl: #e8f5e9; --fp-b: #1565c0; --fp-bl: #e3f2fd;
      --fp-o: #ef6c00; --fp-ol: #fff3e0; --fp-ink: #263238; --fp-mute: #6b7780; --fp-line: #e3e8eb; }
.fp .fp-lead { font-size: 1.12rem; color: var(--fp-ink); }
.fp .fp-status { display: flex; gap: .6rem; align-items: flex-start; border-radius: 12px; padding: .75rem 1rem;
      font-size: .9rem; margin: 1.2rem 0; }
.fp .fp-status.ok { background: var(--fp-gl); color: #1b5e20; }
.fp .fp-status.warn { background: #fff8e1; border: 1px solid #ffe082; color: #6d4c00; }
.fp .fp-flow { display: flex; flex-wrap: wrap; align-items: stretch; gap: .5rem; margin: 1.6rem 0; }
.fp .fp-step { flex: 1 1 96px; background: #fff; border: 1px solid var(--fp-line); border-top: 4px solid var(--fp-g2);
      border-radius: 12px; padding: .6rem .65rem; font-size: .8rem; line-height: 1.35; color: var(--fp-mute); }
.fp .fp-step b { display: block; color: var(--fp-ink); font-size: .9rem; margin-bottom: .2rem; }
.fp .fp-step .n { display: inline-flex; width: 1.5rem; height: 1.5rem; border-radius: 999px; background: var(--fp-gl);
      color: var(--fp-g); font-weight: 700; font-size: .8rem; align-items: center; justify-content: center; margin-bottom: .35rem; }
.fp .fp-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; margin: 1.2rem 0; }
.fp .fp-box { border-radius: 14px; padding: 1rem 1.2rem; border: 1px solid var(--fp-line); background: #fff; }
.fp .fp-box.v1 { border-top: 4px solid var(--fp-o); } .fp .fp-box.v2 { border-top: 4px solid var(--fp-g2); }
.fp .fp-box h4 { margin: 0 0 .4rem; font-size: 1rem; color: var(--fp-ink); }
.fp .fp-box p { margin: .3rem 0; font-size: .92rem; }
.fp .fp-tag { display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
      padding: .1rem .55rem; border-radius: 999px; margin-left: .4rem; vertical-align: middle; }
.fp .fp-tag.def { background: var(--fp-gl); color: var(--fp-g); }
.fp .fp-card { position: relative; background: #fff; border: 1px solid var(--fp-line); border-left: 4px solid var(--fp-g2);
      border-radius: 14px; padding: 1.1rem 1.35rem 1rem; margin: 1.1rem 0; box-shadow: 0 1px 3px rgba(38,50,56,.05);
      scroll-margin-top: 6rem; }
.fp .fp-card.stale { border-left-color: #f9a825; }
.fp .fp-card h3 { margin: 0 !important; font-size: 1.12rem; color: var(--fp-ink); }
.fp .fp-chips { margin: .45rem 0 .2rem; display: flex; flex-wrap: wrap; gap: .35rem; }
.fp .fp-chips span { font-size: .74rem; font-weight: 600; padding: .12rem .6rem; border-radius: 999px;
      background: var(--fp-gl); color: #1b5e20; }
.fp .fp-chips span.unit { background: var(--fp-bl); color: #0d47a1; }
.fp .fp-chips span.warn { background: #fff8e1; color: #8d6e00; }
.fp .fp-label { display: block; margin-top: .75rem; font-size: .7rem; font-weight: 800; letter-spacing: .08em;
      text-transform: uppercase; color: var(--fp-g); }
.fp .fp-card p { margin: .15rem 0 0 !important; font-size: .95rem; }
.fp .fp-ref { margin-top: .85rem; padding-top: .6rem; border-top: 1px dashed var(--fp-line); font-size: .78rem;
      color: var(--fp-mute); line-height: 1.55; }
.fp .fp-ref code { font-size: .92em; }
.fp figure.fp-fig { margin: 1.6rem 0; background: #fff; border: 1px solid var(--fp-line); border-radius: 16px;
      padding: 1rem 1rem .8rem; }
.fp figure.fp-fig img { border: 0 !important; box-shadow: none !important; margin: 0 auto !important; display: block; width: 100%; }
.fp figure.fp-fig figcaption { text-align: left; color: var(--fp-mute); font-size: .86rem; margin-top: .6rem; }
.fp figure.fp-fig figcaption b { color: var(--fp-ink); }
.fp figure.fp-fig a { cursor: zoom-in; }
.fp .fp-formula { text-align: center; font-size: 1.25rem; font-family: Georgia, "Times New Roman", serif;
      background: #fafbfc; border: 1px solid var(--fp-line); border-radius: 14px; padding: 1rem; margin: 1.2rem 0; }
.fp .fp-formula small { display: block; font-family: inherit; font-size: .8rem; color: var(--fp-mute); margin-top: .35rem; }
.fp .fp-intro { color: #37474f; }
.fp table.fp-table { font-size: .88rem; }
.fp table.fp-table td:first-child { white-space: nowrap; }
.fp .fp-pages { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .8rem; margin: 1rem 0 1.6rem; }
.fp .fp-pages a { display: block; text-decoration: none !important; border: 1px solid var(--fp-line); border-radius: 12px;
      padding: .8rem 1rem; background: #fff; color: var(--fp-ink) !important; }
.fp .fp-pages a:hover { border-color: var(--fp-g2); box-shadow: 0 2px 8px rgba(46,125,50,.12); }
.fp .fp-pages a b { display: block; color: var(--fp-g); }
.fp .fp-pages a span { font-size: .84rem; color: var(--fp-mute); }
