/* fv-calc-engine core stylesheet (fce-), the shared visual layer for every core consumer.
   Source: runningos mockup set A (approved by the owner 2026-10-05), PART 1, which ports
   military-pt/assets/css/military-pt.css one to one with the prefix changed (mp- to fce-);
   class mapping in runningos/.planning/mockups/set-a/NOTES.md section 3. The mockup's
   @container page queries are @media here, with the same values, as military-pt does.
   Light only. No gradients, no dark panels, no coloured top, left or right strips, no glows.
   Everything is scoped under .fce-app except the section nav (.fce-nav), which a consumer
   prints outside the page wrapper. The theme's main.css loads after this file, so every rule
   carries at least two classes to win over the theme's .rbct and element rules.
   Registered by FVCE_Assets; enqueued only by a consumer on its own pages. */

.fce-app,
.fce-nav {
    --fce-ink: #131313;
    --fce-heading: #222;
    --fce-text: #333;
    --fce-text-2: #555;
    --fce-muted: #656565;
    --fce-muted-2: #6b7080;
    --fce-label: #3d4148;
    --fce-line: #ececec;
    --fce-line-strong: #cfd4da;
    --fce-chip: #f1f3f5;
    --fce-tint: #f8fafb;
    --fce-surface: #fff;
    --fce-accent: #c41230;
    --fce-accent-deep: #9e0f26;
    --fce-accent-wash: rgba(196, 18, 48, .08);
    --fce-ring: rgba(196, 18, 48, .35);
    --fce-pass: #15803d;
    --fce-fail: #c41230;
    --fce-focus: #1769d2;
    --fce-head: 'Encode Sans Condensed', 'Arial Narrow', Arial, sans-serif;
    --fce-body: 'Oxygen', -apple-system, 'Segoe UI', sans-serif;
    --fce-radius: 8px;
    --fce-radius-card: 12px;
    color-scheme: light;
}
.fce-app { color: var(--fce-text); font-family: var(--fce-body); font-size: 16px; line-height: 1.7; }
.rbct > div.fce-app { font-size: 16px; }
.fce-app *, .fce-app *::before, .fce-app *::after { box-sizing: border-box; }
.fce-app [hidden], .fce-nav [hidden] { display: none !important; }
.fce-app a { color: var(--fce-accent); }
.fce-app a:focus-visible, .fce-app button:focus-visible, .fce-app summary:focus-visible, .fce-app select:focus-visible,
.fce-nav a:focus-visible, .fce-nav button:focus-visible { outline: 3px solid var(--fce-focus) !important; outline-offset: 2px; }
.fce-app .fce-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Section nav: the strongman/bodybuilding bar as military-pt ported it (.mp-nav). */
.fce-nav { position: sticky; top: 0; z-index: 50; font-family: var(--fce-head); background: rgba(255, 255, 255, .95); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--fce-line); box-shadow: 0 1px 3px rgba(0, 0, 0, .04); }
.fce-nav .fce-nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 52px; }
.fce-nav .fce-nav-logo { display: flex; align-items: center; gap: 8px; flex-shrink: 0; color: var(--fce-ink); text-decoration: none; }
.fce-nav .fce-nav-logo-icon { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; color: var(--fce-accent); }
.fce-nav .fce-nav-logo-icon svg { width: 28px; height: 28px; }
.fce-nav .fce-nav-logo-icon--runner { width: 34px; }
.fce-nav .fce-nav-logo-icon--runner svg { width: 34px; height: 30px; }
.fce-nav .fce-nav-logo-text { font-family: var(--fce-head); font-size: 20px; font-weight: 800; line-height: 30px; letter-spacing: .06em; white-space: nowrap; }
.fce-nav .fce-nav-accent { color: var(--fce-accent); }
.fce-nav .fce-nav-links { display: none; flex: 1; align-items: center; justify-content: flex-start; gap: 2px; margin-left: 20px; }
.fce-nav .fce-nav-dropdown { position: relative; display: flex; align-items: center; }
.fce-nav .fce-nav-link { display: flex; align-items: center; gap: 3px; margin: 0; padding: 4px 6px; color: #222; font: 500 15px/1.25 var(--fce-head); white-space: nowrap; background: none; border: 0; border-radius: 6px; cursor: pointer; }
.fce-nav .fce-nav-link:hover { color: var(--fce-ink); background: var(--fce-chip); }
.fce-nav .fce-nav-link.fce-nav-group-active { color: var(--fce-ink); font-weight: 600; background: var(--fce-accent-wash); }
.fce-nav .fce-nav-link svg { width: 12px; height: 12px; opacity: .5; transition: transform .2s ease, opacity .2s ease; }
.fce-nav .fce-nav-dropdown[data-open="true"] .fce-nav-link svg { opacity: .8; transform: rotate(180deg); }
.fce-nav .fce-nav-dropdown-menu { position: absolute; top: 100%; left: 50%; z-index: 50; min-width: 200px; padding: 12px 0 8px; background: #fff; border: 1px solid var(--fce-line); border-radius: var(--fce-radius); box-shadow: 0 12px 32px rgba(0, 0, 0, .08); opacity: 0; visibility: hidden; transform: translateX(-50%) translateY(-4px); transition: opacity .15s ease, transform .15s ease, visibility .15s; }
.fce-nav .fce-nav-dropdown[data-open="true"] .fce-nav-dropdown-menu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.fce-nav .fce-nav-dropdown-item { display: block; padding: 8px 16px; color: var(--fce-label); font: 500 14px/1.4 var(--fce-head); text-decoration: none; white-space: nowrap; }
.fce-nav .fce-nav-dropdown-item:hover { color: var(--fce-accent); background: var(--fce-tint); }
.fce-nav .fce-nav-dropdown-item.fce-nav-link-active { color: var(--fce-accent); font-weight: 600; }
.fce-nav .fce-nav-actions { display: flex; flex-shrink: 0; align-items: center; gap: 12px; }
.fce-nav .fce-nav-hamburger { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0; padding: 0; background: transparent; border: 0; border-radius: var(--fce-radius); cursor: pointer; }
.fce-nav .fce-nav-hamburger-icon { display: flex; flex-direction: column; gap: 5px; }
.fce-nav .fce-nav-hamburger-icon span { display: block; width: 22px; height: 2px; background: var(--fce-label); border-radius: 1px; transform-origin: center; }
.fce-nav .fce-nav-hamburger[aria-expanded="true"] .fce-nav-hamburger-icon span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.fce-nav .fce-nav-hamburger[aria-expanded="true"] .fce-nav-hamburger-icon span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.fce-nav .fce-nav-hamburger[aria-expanded="true"] .fce-nav-hamburger-icon span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }
.fce-nav .fce-nav-mobile { overflow: hidden; background: #fff; border-top: 1px solid var(--fce-line); box-shadow: 0 12px 32px rgba(0, 0, 0, .06); }
.fce-nav .fce-nav-mobile-inner { padding: 8px 16px 16px; }
.fce-nav .fce-nav-mobile-auth { display: flex; gap: 8px; padding: 8px 0 12px; border-bottom: 1px solid var(--fce-chip); }
.fce-nav .fce-nav-mobile-btn { display: flex; flex: 1; align-items: center; justify-content: center; min-height: 44px; padding: 10px 12px; color: var(--fce-heading); font: 700 14px/1.3 var(--fce-body); text-decoration: none; background: #fff; border: 1.5px solid var(--fce-line-strong); border-radius: var(--fce-radius); }
.fce-nav .fce-nav-mobile-btn--primary { color: #fff; background: var(--fce-accent); border-color: var(--fce-accent); }
.fce-nav .fce-nav-mobile-group { padding: 8px 0; border-bottom: 1px solid var(--fce-chip); }
.fce-nav .fce-nav-mobile-group:last-child { border-bottom: 0; }
.fce-nav .fce-nav-mobile-group-label { padding: 4px 16px; color: var(--fce-muted-2); font: 600 11px/1.4 var(--fce-head); letter-spacing: .05em; text-transform: uppercase; }
.fce-nav .fce-nav-mobile-links { display: flex; flex-direction: column; gap: 4px; }
.fce-nav .fce-nav-mobile-link { display: block; padding: 12px 16px; color: var(--fce-label); font: 500 15px/1.3 var(--fce-head); text-decoration: none; border-radius: var(--fce-radius); }
.fce-nav .fce-nav-mobile-link[aria-current="page"] { color: var(--fce-accent); background: var(--fce-accent-wash); }

/* Hub column, breadcrumb, masthead, byline (hub only) */
.fce-app .fce-page { max-width: 820px; margin: 0 auto; padding: 0 20px 56px; }
.fce-app .fce-crumbs { margin: 18px 0 14px; color: #282828; font-family: var(--fce-head); font-size: 13px; line-height: 1.5; }
.fce-app .fce-crumbs a { color: #282828; font-weight: 400; text-decoration: none; }
.fce-app .fce-mast__title { padding-bottom: 14px; border-bottom: 2px solid var(--fce-ink); }
.fce-app .fce-mast__h1 { margin: 0; color: var(--fce-ink); font-family: var(--fce-head); font-size: 52px; font-weight: 800; line-height: .95; letter-spacing: -.03em; text-transform: uppercase; }
.fce-app .fce-mast__intro { max-width: 700px; margin: 14px 0 0; color: var(--fce-text-2); font-size: 16px; line-height: 1.6; }
.fce-app .fce-byline { margin: 16px 0 0; padding-top: 12px; border-top: 1px solid var(--fce-line); font-size: 14px; line-height: 1.45; }
.fce-app .fce-byline__name { display: block; color: var(--fce-heading); font-weight: 700; }
.fce-app .fce-byline__name a { color: var(--fce-accent); font-weight: 700; text-decoration: none; }
.fce-app .fce-byline__meta { display: block; margin-top: 2px; color: var(--fce-muted-2); font-size: 13px; }

/* Verified line */
.fce-app .fce-verified { margin: 0 0 4px; color: var(--fce-muted-2); font-size: 13.5px; line-height: 1.5; }

/* Blocks, headings, prose */
.fce-app .fce-block { padding-top: 40px; }
.fce-app .fce-block__title { margin: 0 0 6px; color: var(--fce-heading); font-family: var(--fce-head); font-size: 28px; font-weight: 700; line-height: 1.2; }
.fce-app .fce-block__title + .fce-lrows, .fce-app .fce-block__title + .fce-faq { margin-top: 14px; }
.fce-app .fce-block__intro { margin: 0 0 16px; color: var(--fce-text-2); font-size: 15px; line-height: 1.6; }
.fce-app .fce-prose p, .fce-app .fce-prose li { color: var(--fce-text); font-size: 16px; line-height: 1.75; }
.fce-app .fce-prose p { margin: 0 0 14px; }
.fce-app .fce-prose strong { color: var(--fce-heading); }
.fce-app .fce-prose a { color: var(--fce-accent); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.fce-app .fce-label-sm { display: block; margin: 0 0 8px; color: var(--fce-label); font-family: var(--fce-head); font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }

/* Calculator card and result card */
.fce-app .fce-card { margin-top: 24px; padding: 24px 28px; background: var(--fce-surface); border: 1px solid var(--fce-line-strong); border-radius: var(--fce-radius-card); }
.fce-app .fce-card__title { margin: 0 0 4px; color: var(--fce-heading); font-family: var(--fce-head); font-size: 24px; font-weight: 700; line-height: 1.2; }
.fce-app .fce-card__sub { margin: 0 0 20px; color: var(--fce-muted-2); font-size: 13.5px; line-height: 1.5; }

/* Fields */
.fce-app .fce-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
.fce-app .fce-field { min-width: 0; margin: 0 0 20px; }
.fce-app .fce-grid2 > .fce-field, .fce-app .fce-field:last-child { margin-bottom: 0; }
.fce-app .fce-label { display: block; margin: 0 0 6px; color: var(--fce-heading); font-family: var(--fce-body); font-size: 14px; font-weight: 700; line-height: 1.4; }
.fce-app .fce-help { margin: 6px 0 0; color: var(--fce-muted-2); font-size: 12.5px; line-height: 1.5; }
.fce-app .fce-input, .fce-app .fce-select { display: block; width: 100%; max-width: 100%; height: 48px; margin: 0; padding: 0 16px; color: #1f2328; font: 400 16px/1.2 var(--fce-body); background-color: #fff; border: 1.5px solid var(--fce-line-strong); border-radius: var(--fce-radius); box-shadow: none; -webkit-appearance: none; appearance: none; }
.fce-app .fce-input:focus, .fce-app .fce-select:focus { outline: none; border-color: var(--fce-accent); box-shadow: 0 0 0 3px var(--fce-ring); }
.fce-app .fce-input::placeholder { color: #9ca3af; }
.fce-app .fce-input.is-invalid, .fce-app .fce-select.is-invalid { border-color: var(--fce-fail); }
.fce-app .fce-input-group { position: relative; }
.fce-app .fce-input-group .fce-input { padding-right: 52px; }
.fce-app .fce-suffix { position: absolute; top: 50%; right: 14px; transform: translateY(-50%); color: var(--fce-muted-2); font-size: 14px; font-weight: 700; pointer-events: none; }
.fce-app .fce-time { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.fce-app .fce-time--short { max-width: 360px; }
/* NEW (extension of .mp-time): hours, minutes and seconds. Same input groups, a third column. */
.fce-app .fce-time--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 480px; }
.fce-app .fce-error { display: flex; align-items: center; gap: 6px; margin: 8px 0 0; color: var(--fce-fail); font-size: 13px; font-weight: 700; line-height: 1.4; }
.fce-app .fce-error svg { flex-shrink: 0; }

/* Segmented control (modes, units, finish-time bands) */
.fce-app .fce-seg { display: flex; gap: 2px; margin: 0; padding: 3px; background: var(--fce-chip); border: 1px solid #e3e6ea; border-radius: 10px; }
.fce-app .fce-seg--4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fce-app .fce-seg__opt { flex: 1 1 0; min-width: 0; min-height: 42px; margin: 0; padding: 8px 10px; color: var(--fce-muted-2); font: 600 14px/1.25 var(--fce-body); text-align: center; white-space: nowrap; background: transparent; border: 1px solid transparent; border-radius: 7px; cursor: pointer; }
.fce-app .fce-seg__opt:hover { color: var(--fce-ink); }
.fce-app .fce-seg__opt[aria-checked="true"] { color: var(--fce-ink); font-weight: 700; background: #fff; border-color: var(--fce-line-strong); box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }

/* Actions and buttons */
.fce-app .fce-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--fce-line); }
.fce-app .fce-actions__note { margin: 0; color: var(--fce-muted-2); font-size: 13px; line-height: 1.5; }
.fce-app .fce-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; margin: 0; padding: 12px 28px; font: 700 15px/1.3 var(--fce-body); text-align: center; text-decoration: none; white-space: nowrap; border: 0; border-radius: var(--fce-radius); box-shadow: none; cursor: pointer; }
.fce-app .fce-btn--primary { color: #fff; background: var(--fce-accent); }
.fce-app .fce-btn--primary:hover { color: #fff; background: var(--fce-accent-deep); }
.fce-app .fce-btn--outline { min-height: 44px; padding: 10px 20px; color: var(--fce-heading); font-size: 14px; background: #fff; border: 1.5px solid var(--fce-line-strong); }
.fce-app .fce-btn--outline:hover { color: var(--fce-accent); border-color: var(--fce-accent); }
.fce-app .fce-btn--link { min-height: 44px; padding: 10px 4px; color: var(--fce-muted-2); font-weight: 600; background: none; text-decoration: underline; text-underline-offset: 3px; }
.fce-app .fce-btn[disabled] { opacity: .55; cursor: not-allowed; }

/* Result card */
.fce-app .fce-result__label { margin: 0 0 4px; color: var(--fce-muted-2); font-size: 12px; font-weight: 700; line-height: 1.5; letter-spacing: .05em; text-transform: uppercase; }
.fce-app .fce-verdict { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; margin: 0; }
.fce-app .fce-verdict__word { font-family: var(--fce-head); font-size: 56px; font-weight: 800; line-height: 1; letter-spacing: -.02em; }
/* DEVIATION: a number headline has no pass or fail, so the word defaults to ink (military-pt leaves it
   inheriting #333 and always sets .is-pass or .is-fail). .is-pass / .is-fail still recolour it. */
.fce-app .fce-result .fce-verdict__word { color: var(--fce-ink); }
.fce-app .is-pass .fce-verdict__word { color: var(--fce-pass); }
.fce-app .is-fail .fce-verdict__word { color: var(--fce-fail); }
.fce-app .fce-verdict__cat { color: var(--fce-ink); font-family: var(--fce-head); font-size: 26px; font-weight: 700; line-height: 1.2; }
.fce-app .fce-verdict__cat small { display: block; color: var(--fce-muted-2); font-family: var(--fce-body); font-size: 13px; font-weight: 400; letter-spacing: 0; }
.fce-app .fce-result__reason { max-width: 660px; margin: 12px 0 0; color: var(--fce-text); font-size: 15.5px; line-height: 1.6; }
.fce-app .fce-result__reason strong { color: var(--fce-ink); }
.fce-app .fce-result__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 20px; }
/* NEW: formula and edition line under the values (REPLAN 4.2). Same type as .mp-src-line. */
.fce-app .fce-result__method { margin: 12px 0 0; color: var(--fce-muted-2); font-size: 13px; line-height: 1.5; }

/* Result value table */
.fce-app .fce-rt { width: 100%; margin: 20px 0 0; border: 0; border-collapse: collapse; font-size: 15px; }
.fce-app .fce-rt th { padding: 0 0 8px; color: var(--fce-label); font-family: var(--fce-head); font-size: 12px; font-weight: 800; letter-spacing: .05em; text-align: left; text-transform: uppercase; background: transparent; border: 0; border-bottom: 2px solid var(--fce-ink); }
.fce-app .fce-rt td { padding: 12px 0; line-height: 1.35; vertical-align: top; background: transparent; border: 0; border-bottom: 1px solid var(--fce-line); }
.fce-app .fce-rt th + th, .fce-app .fce-rt td + td { padding-left: 16px; }
.fce-app .fce-rt .fce-num { text-align: right; font-variant-numeric: tabular-nums; }
.fce-app .fce-rt .fce-rt__ev { color: var(--fce-heading); font-weight: 700; }
.fce-app .fce-rt .fce-rt__ev small { display: block; color: var(--fce-muted-2); font-size: 13px; font-weight: 400; }

/* Article tables */
.fce-app .fce-tbl-wrap { margin: 4px 0 8px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.fce-app .fce-tbl { width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: 14.5px; line-height: 1.35; }
.fce-app .fce-tbl th { padding: 0 10px 8px; color: var(--fce-label); font-family: var(--fce-head); font-size: 12.5px; font-weight: 800; letter-spacing: .04em; text-align: right; text-transform: uppercase; vertical-align: bottom; white-space: nowrap; background: transparent; border: 0; border-bottom: 2px solid var(--fce-ink); }
.fce-app .fce-tbl td { padding: 9px 10px; color: var(--fce-heading); text-align: right; font-variant-numeric: tabular-nums; background: transparent; border: 0; border-bottom: 1px solid var(--fce-line); }
.fce-app .fce-tbl th:first-child, .fce-app .fce-tbl td:first-child { padding-left: 0; text-align: left; }
.fce-app .fce-tbl th:last-child, .fce-app .fce-tbl td:last-child { padding-right: 0; }
.fce-app .fce-tbl td.fce-tbl__lvl { color: var(--fce-heading); font-weight: 700; white-space: nowrap; }
.fce-app .fce-tbl td.fce-tbl__lvl small { display: block; color: var(--fce-muted-2); font-size: 12.5px; font-weight: 400; }
.fce-app .fce-tbl .fce-short { display: none; }
.fce-app .fce-src-line { margin: 6px 0 0; color: var(--fce-muted-2); font-size: 13px; line-height: 1.5; }
.fce-app .fce-src-line a { color: var(--fce-accent); font-weight: 400; text-decoration: underline; text-underline-offset: 3px; }
/* NEW (REPLAN 7, "the highlighted chart row"): the reader's row. A fill with the nav's active wash and bold
   text. No border strip. A small label under the time says why the row is marked. */
.fce-app .fce-tbl tr.is-mine td { color: var(--fce-ink); font-weight: 700; background: var(--fce-accent-wash); }
.fce-app .fce-tbl tr.is-mine td:first-child { padding-left: 8px; }
.fce-app .fce-tbl tr.is-mine td:last-child { padding-right: 8px; }
.fce-app .fce-tbl tr.is-mine td.fce-tbl__lvl small { color: var(--fce-accent); font-weight: 700; }

/* Link rows, chip, report line */
.fce-app .fce-lrows { margin: 0; padding: 0; list-style: none; }
.fce-app .fce-lrows > li { min-height: 44px; margin: 0; padding: 10px 0; line-height: 1.3; border-bottom: 1px solid var(--fce-line); }
.fce-app .fce-lrows > li:first-child { border-top: 1px solid var(--fce-line); }
.fce-app .fce-lrows__tag { display: block; margin: 0 0 3px; color: var(--fce-muted); font-family: var(--fce-head); font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.fce-app .fce-lrows__name, .fce-app a.fce-lrows__name { color: var(--fce-heading); font-family: var(--fce-head); font-size: 17px; font-weight: 700; text-decoration: none; }
.fce-app a.fce-lrows__name:hover { color: var(--fce-accent); text-decoration: underline; }
.fce-app .fce-lrows__note { display: block; margin-top: 3px; color: var(--fce-muted); font-size: 14px; line-height: 1.5; }
.fce-app .fce-lrows--sources .fce-lrows__name { font-size: 16px; }
.fce-app .fce-lrows--sources a.fce-lrows__name { text-decoration: underline; text-decoration-color: var(--fce-line-strong); text-underline-offset: 3px; }
.fce-app .fce-report { margin: 12px 0 0; color: var(--fce-muted-2); font-size: 13.5px; line-height: 1.5; }
.fce-app .fce-report a { color: var(--fce-muted-2); font-weight: 400; text-decoration: underline; }

/* FAQ */
.fce-app .fce-faq { max-width: 800px; border-top: 1px solid var(--fce-line); }
.fce-app .fce-faq__item { margin: 0; border-bottom: 1px solid var(--fce-line); }
.fce-app .fce-faq__q { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; color: var(--fce-heading); font-family: var(--fce-head); font-size: 17px; font-weight: 600; line-height: 1.4; list-style: none; cursor: pointer; }
.fce-app .fce-faq__q::-webkit-details-marker { display: none; }
.fce-app .fce-faq__q::marker { content: ''; }
.fce-app .fce-faq__q::after { content: '+'; flex-shrink: 0; color: #888; font-size: 22px; font-weight: 300; }
.fce-app .fce-faq__item[open] > .fce-faq__q::after { content: '-'; }
.fce-app .fce-faq__a { padding: 0 0 16px; }
.fce-app .fce-faq__a p { margin: 0; color: var(--fce-text-2); font-size: 15px; line-height: 1.75; }


/* Theme resets and hover states military-pt carries for the live theme (its stylesheet, not
   needed in the mockup's bare frame). Copied with the prefix changed. */
.fce-nav .fce-nav-logo { transition: opacity .15s; }
.fce-nav .fce-nav-logo:hover { color: var(--fce-ink); opacity: .8; }
.fce-nav .fce-nav-link { letter-spacing: normal; text-transform: none; box-shadow: none; transition: background .15s, color .15s; }
.fce-nav .fce-nav-dropdown:hover .fce-nav-link svg { opacity: .8; }
.fce-nav .fce-nav-dropdown-menu::before { content: ""; position: absolute; top: -12px; right: 0; left: 0; height: 12px; }
.fce-nav .fce-nav-dropdown-item { transition: background .1s ease, color .1s ease; }
.fce-nav .fce-nav-hamburger { box-shadow: none; }
.fce-nav .fce-nav-hamburger:hover { background: var(--fce-chip); }
.fce-nav .fce-nav-hamburger-icon span { transition: transform .2s ease, opacity .2s ease; }
.fce-nav .fce-nav-mobile-link:hover, .fce-nav .fce-nav-mobile-link:focus { color: var(--fce-ink); background: var(--fce-tint); }
.fce-app .fce-crumbs a:hover, .fce-app .fce-byline__name a:hover { text-decoration: underline; }
.fce-app .fce-verified a { color: var(--fce-muted-2); font-weight: 400; text-decoration: underline; }
.fce-app .fce-block__title, .fce-app .fce-label, .fce-app .fce-seg__opt, .fce-app .fce-btn { letter-spacing: 0; text-transform: none; }
.fce-app .fce-prose h3 { margin: 24px 0 6px; color: var(--fce-heading); font-family: var(--fce-head); font-size: 20px; font-weight: 700; line-height: 1.25; }
.fce-app .fce-input, .fce-app .fce-select { transition: border-color .15s, box-shadow .15s; }
.fce-app .fce-seg__opt, .fce-app .fce-btn { box-shadow: none; transition: none; }
.fce-app .fce-seg__opt[aria-checked="true"] { box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
.fce-app .fce-seg.is-invalid { border-color: var(--fce-fail); }
.fce-app .fce-grid2 + .fce-grid2, .fce-app .fce-grid2 + .fce-field { margin-top: 20px; }
.fce-app a.fce-btn--primary { color: #fff; background: var(--fce-accent); }
.fce-app a.fce-btn--outline { min-height: 44px; padding: 10px 20px; color: var(--fce-heading); font-size: 14px; background: #fff; border: 1.5px solid var(--fce-line-strong); }
.fce-app a.fce-btn--link { min-height: 44px; padding: 10px 4px; color: var(--fce-muted-2); font-weight: 600; background: none; text-decoration: underline; text-underline-offset: 3px; }
.fce-app .fce-rt thead, .fce-app .fce-tbl thead { color: inherit; background: transparent; }
.fce-app .fce-rt tr, .fce-app .fce-tbl tr,
.fce-app .fce-rt tbody tr:nth-child(odd), .fce-app .fce-rt tbody tr:nth-child(even),
.fce-app .fce-tbl tbody tr:nth-child(odd), .fce-app .fce-tbl tbody tr:nth-child(even) { background: transparent; }
.fce-app .fce-tbl tbody tr:first-child td { border-top: 0; }
.fce-app .fce-tbl tr.is-mine td { background: var(--fce-accent-wash); }
.fce-app .fce-rt tfoot td { padding-top: 12px; color: var(--fce-ink); font-weight: 700; border-bottom: 0; }
.fce-app .fce-faq__a a { color: var(--fce-accent); font-weight: 700; }
.fce-app .fce-faq__a p + p { margin-top: 10px; }
/* Spacing set A's chart page wrote as inline styles (screen 4): the chart block right under the
   verified line, the range control under its intro, the splits form card under its intro. */
.fce-app .fce-verified + .fce-block { padding-top: 24px; }
.fce-app .fce-block__intro + .fce-field { margin-bottom: 16px; }
.fce-app .fce-block__intro + .fce-card { margin-top: 8px; }

/* Skip link before the section nav (WCAG 2.4.1). Off screen until focused; no inline handler. */
.fce-skip-link { position: absolute; top: -60px; left: 12px; z-index: 99999; padding: 8px 16px; color: #fff; font: 700 14px/1.3 'Oxygen', -apple-system, 'Segoe UI', sans-serif; text-decoration: none; background: #131313; border-radius: 0 0 6px 6px; transition: top 120ms ease; }
.fce-skip-link:focus { top: 0; color: #fff; }

/* ---------- Set B additions (approved 2026-10-05, pace band option A) ----------
   PART 3 of runningos/.planning/mockups/set-b/index.html; class mapping and the reason for each
   NEW piece in its NOTES.md sections 3 and 4. Option B (column cards) was dropped by the owner. */
/* PORT (.mp-select): the chevron set A left out when it merged .fce-select into the .fce-input rule. */
.fce-app .fce-select { padding-right: 40px; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%236b7585' stroke-width='2'%3E%3Cpath d='M3 5l3 3 3-3'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; }
/* A pace field and its unit control on one line, wrapping on phones; a 1px rule above the splits options. */
.fce-app .fce-pace { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.fce-app .fce-pace .fce-time { flex: 0 1 240px; }
.fce-app .fce-pace .fce-seg { flex: 0 1 220px; }
.fce-app .fce-sub { margin: 24px 0 14px; padding-top: 18px; border-top: 1px solid var(--fce-line); }
/* PORT (.mp-rows, military-pt's login wall list of benefits). */
.fce-app .fce-rows { margin: 4px 0 0; padding: 0; list-style: none; }
.fce-app .fce-rows > li { margin: 0; padding: 12px 0; line-height: 1.5; border-bottom: 1px solid var(--fce-line); }
.fce-app .fce-rows > li:first-child { border-top: 1px solid var(--fce-line); }
.fce-app .fce-rows__note { display: block; margin-top: 2px; color: var(--fce-text); font-size: 15px; line-height: 1.6; }
/* My races rows: the link actions sit in a second note line (plain links, no new class). */
.fce-app .fce-lrows__note a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.fce-app .fce-lrows__note button.fce-btn--link { padding: 0; min-height: 0; color: var(--fce-accent); font-weight: 700; font-size: inherit; line-height: inherit; text-decoration: underline; text-underline-offset: 3px; }
/* Set B's inline widths and spacing as classes (consumers print no style attribute): the distance
   select at 360 px, a short number field at 240 px, a field 20 px under the one above. */
.fce-app .fce-select--narrow { max-width: 360px; }
.fce-app .fce-input-group--short { max-width: 240px; }
.fce-app .fce-mt { margin-top: 20px; }
/* The section nav's signed-in link: the same .fce-nav-link, drawn as a link instead of a dropdown button. */
.fce-nav a.fce-nav-link { text-decoration: none; }

/* ---------- Section nav breakpoints (strongman and bodybuilding switch at 768px) ---------- */
@media (min-width: 769px) {
    .fce-nav .fce-nav-links { display: flex; }
    .fce-nav .fce-nav-mobile { display: none !important; }
}
@media (max-width: 768px) {
    .fce-nav .fce-nav-hamburger { display: flex; }
    .fce-nav .fce-nav-actions { gap: 8px; }
}

/* ---------- Tablet and phone (calculator-hub.css breakpoints) ---------- */
@media (max-width: 767px) {
    .fce-app .fce-crumbs { margin: 12px 0 10px; }
    .fce-app .fce-mast__h1 { font-size: 32px; }
    .fce-app .fce-mast__intro { font-size: 15px; }
    .fce-app .fce-block { padding-top: 30px; }
    .fce-app .fce-block__title { font-size: 23px; }
    .fce-app .fce-card { margin-top: 20px; padding: 18px 16px; }
    .fce-app .fce-card__title { font-size: 21px; }
    .fce-app .fce-grid2 { grid-template-columns: 1fr; gap: 18px; }
    .fce-app .fce-actions .fce-btn--primary { flex: 1 1 100%; }
    .fce-app .fce-verdict__word { font-size: 46px; }
    .fce-app .fce-verdict__cat { font-size: 22px; }
    .fce-app .fce-rt { font-size: 14.5px; }
    .fce-app .fce-rt th + th, .fce-app .fce-rt td + td { padding-left: 10px; }
    .fce-app .fce-tbl { font-size: 13px; }
    .fce-app .fce-tbl th { padding: 0 5px 7px; font-size: 11px; letter-spacing: .02em; }
    .fce-app .fce-tbl td { padding: 8px 5px; }
    .fce-app .fce-tbl td.fce-tbl__lvl small { font-size: 11.5px; }
    .fce-app .fce-tbl tr.is-mine td:first-child { padding-left: 6px; }
    .fce-app .fce-tbl tr.is-mine td:last-child { padding-right: 6px; }
    .fce-app .fce-faq__q { font-size: 16px; }
    .fce-app .fce-lrows__name, .fce-app a.fce-lrows__name { font-size: 16.5px; }
    .fce-app .fce-page { padding-bottom: 40px; }
    .fce-app .fce-pace .fce-time, .fce-app .fce-pace .fce-seg { flex: 1 1 100%; }
    .fce-app .fce-sub { margin-top: 20px; }
}
@media (max-width: 480px) {
    .fce-app .fce-seg--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fce-app .fce-tbl--short-heads td.fce-tbl__lvl { white-space: normal; }
    .fce-app .fce-tbl--short-heads .fce-full { display: none; }
    .fce-app .fce-tbl--short-heads .fce-short { display: inline; }
}

/* ---------- The one-page print sheet (set A screen 5, NEW in REPLAN 7) ----------
   Black on white; the reader's row in light grey so it prints on any printer. A consumer prints
   the sheet in .fce-print-root as a direct child of body and puts fce-print-ready on body; on
   screen the root is hidden, in print it is the only thing on the page. One A4 or Letter page:
   794 px wide (A4) and laid out to end above 1,056 px (Letter), with no page margins so the
   sheet's own padding is the margin. */
.fce-print-root { display: none; }
.fce-print { --fce-ink: #131313; width: 794px; max-width: 100%; padding: 40px 44px 32px; background: #fff; color: #131313; font-family: 'Oxygen', -apple-system, 'Segoe UI', sans-serif; line-height: 1.4; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.fce-print__top { display: flex; justify-content: space-between; gap: 16px; margin: 0 0 10px; padding-bottom: 6px; border-bottom: 2px solid #131313; font: 700 11px/1.3 'Encode Sans Condensed', 'Arial Narrow', sans-serif; letter-spacing: .05em; text-transform: uppercase; }
.fce-print__h { margin: 0; color: #131313; font: 800 26px/1.1 'Encode Sans Condensed', 'Arial Narrow', sans-serif; }
.fce-print__sub { margin: 4px 0 0; font-size: 11.5px; line-height: 1.45; color: #333; }
.fce-print__mine { margin: 6px 0 12px; font-size: 12.5px; line-height: 1.45; }
.fce-print__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: start; }
.fce-print table { width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: 14px; line-height: 1.25; font-variant-numeric: tabular-nums; }
.fce-print th { padding: 0 5px 5px; color: #131313; border: 0; border-bottom: 1.5px solid #131313; font: 800 10.5px/1.2 'Encode Sans Condensed', 'Arial Narrow', sans-serif; letter-spacing: .04em; text-transform: uppercase; text-align: right; background: transparent; }
.fce-print td { padding: 5px 5px; color: #131313; border: 0; border-bottom: 1px solid #dcdcdc; text-align: right; background: transparent; }
.fce-print th:first-child, .fce-print td:first-child { padding-left: 4px; text-align: left; font-weight: 700; }
.fce-print tr.is-mine td { background: #e6e6e6; font-weight: 700; }
.fce-print__foot { margin: 10px 0 0; font-size: 10px; line-height: 1.45; color: #444; }
/* Set B: the pace band sheet. Laid out to fit the smaller of A4 and Letter in each direction
   (794 wide, 1056 tall), so one layout prints on both. */
.fce-print__how { margin: 8px 0 10px; font-size: 11.5px; line-height: 1.45; color: #333; }
.fce-print__h2 { margin: 12px 0 6px; font: 800 12px/1.2 'Encode Sans Condensed', 'Arial Narrow', sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.fce-print__mine b { font-weight: 700; }
/* NEW (REPLAN 7, "the pace-band print strip"), option A: wristband strips. One cell per marker, two
   strips per unit (start to halfway, halfway to finish), each about 19 cm long so it wraps once round
   a wrist. Grey cells for halfway and the finish, as set A's print sheet greys the reader's row. */
.fce-print .fce-band { margin: 0 0 8px; padding: 4px 6px 6px; border: 1px dashed #8c8c8c; break-inside: avoid; }
.fce-print .fce-band__head { display: flex; justify-content: space-between; gap: 12px; margin: 0 0 3px; color: #333; font: 700 9.5px/1.3 'Encode Sans Condensed', 'Arial Narrow', sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.fce-print .fce-band__cells { display: grid; grid-template-columns: repeat(var(--n, 14), minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; background: #b5b5b5; border: 1px solid #b5b5b5; }
.fce-print .fce-band__cells li { display: flex; flex-direction: column; align-items: center; min-width: 0; margin: 0; padding: 3px 1px 4px; background: #fff; }
.fce-print .fce-band__cells span { color: #444; font: 700 9px/1.2 'Encode Sans Condensed', 'Arial Narrow', sans-serif; letter-spacing: .03em; text-transform: uppercase; }
.fce-print .fce-band__cells b { font: 700 12.5px/1.3 'Oxygen', sans-serif; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fce-print .fce-band__cells .is-half, .fce-print .fce-band__cells .is-fin { background: #e6e6e6; }
/* Cells per row, from the strip's data-n (no style attribute: runningos house rules). A strip with
   fewer than 8 cells (a short race) is only as wide as its cells; longer strips fill the sheet as set B
   draws them. */
.fce-print .fce-band[data-n="1"] { --n: 1; max-width: 66px; }
.fce-print .fce-band[data-n="2"] { --n: 2; max-width: 118px; }
.fce-print .fce-band[data-n="3"] { --n: 3; max-width: 170px; }
.fce-print .fce-band[data-n="4"] { --n: 4; max-width: 222px; }
.fce-print .fce-band[data-n="5"] { --n: 5; max-width: 274px; }
.fce-print .fce-band[data-n="6"] { --n: 6; max-width: 326px; }
.fce-print .fce-band[data-n="7"] { --n: 7; max-width: 378px; }
.fce-print .fce-band[data-n="8"] { --n: 8; }
.fce-print .fce-band[data-n="9"] { --n: 9; }
.fce-print .fce-band[data-n="10"] { --n: 10; }
.fce-print .fce-band[data-n="11"] { --n: 11; }
.fce-print .fce-band[data-n="12"] { --n: 12; }
.fce-print .fce-band[data-n="13"] { --n: 13; }
.fce-print .fce-band[data-n="14"] { --n: 14; }
@media print {
    @page { size: auto; margin: 0; }
    html, body.fce-print-ready { margin: 0 !important; padding: 0 !important; background: #fff !important; }
    body.fce-print-ready > *:not(.fce-print-root) { display: none !important; }
    body.fce-print-ready > .fce-print-root { display: block !important; }
    .fce-print { break-inside: avoid; page-break-inside: avoid; }
}
