.fp-lab{--fp-bg:#141c20;--fp-panel:#1c282d;--fp-ink:#f0f5f3;--fp-muted:#acbdbb;--fp-line:#405052;--fp-up:#8ccfbd;--fp-down:#e5a4a8;--fp-accent:#a5d9ce;margin:26px 0 34px;color:var(--fp-ink);background:var(--fp-bg);border:1px solid var(--fp-line);border-radius:18px;overflow:hidden}
.fp-heading{padding:28px 30px 22px;background:linear-gradient(120deg,#baded00e,transparent)}.book-content .fp-heading h3{font-size:clamp(24px,2.8vw,37px);max-width:28ch;line-height:1.15;margin:14px 0;letter-spacing:-.04em}.book-content .fp-heading p{color:var(--fp-muted);font-size:14px;line-height:1.7;margin:8px 0}.book-content .fp-kicker,.fp-kicker{font:11px/1.7 'DM Mono',monospace;letter-spacing:.09em;color:var(--fp-accent)}
.fp-challenge{display:flex;align-items:center;gap:16px;padding:19px 30px;border-top:1px solid var(--fp-line);border-bottom:1px solid var(--fp-line);font-size:15px;line-height:1.6}.fp-challenge>span{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border:1px solid var(--fp-accent);border-radius:50%;font:12px 'DM Mono',monospace;color:var(--fp-accent)}
.fp-chart-scroll{overflow:auto;scrollbar-width:thin}.fp-chart-scroll svg{display:block;width:100%;min-width:670px}.fp-muted{fill:var(--fp-muted);font:11px 'DM Mono',monospace}.fp-grid{stroke:var(--fp-line);stroke-width:.6;opacity:.55}.fp-zone{cursor:pointer;outline:none}.fp-zone rect{fill:var(--fp-accent);fill-opacity:.07;stroke:var(--fp-accent);stroke-opacity:.45;stroke-dasharray:4 4}.fp-zone rect+rect{fill-opacity:.16;stroke-dasharray:none}.fp-zone text{fill:var(--fp-ink);font:600 14px Manrope,sans-serif}.fp-zone:hover rect,.fp-zone:focus-visible rect,.fp-zone.is-selected rect{fill-opacity:.22;stroke-opacity:1;stroke-width:2}.fp-candle{cursor:crosshair;outline:none;animation:fp-enter .23s ease-out}.fp-candle path{stroke:var(--candle);stroke-width:1.6}.fp-body{fill:var(--candle)}.fp-hit{fill:transparent;stroke:none}.fp-candle:hover .fp-hit,.fp-candle:focus-visible .fp-hit,.fp-candle.is-inspected .fp-hit{fill:var(--fp-accent);fill-opacity:.08;stroke:var(--fp-accent);stroke-opacity:.5;stroke-dasharray:2 3}.fp-future{fill:var(--fp-bg);fill-opacity:.94;stroke:var(--fp-line);stroke-dasharray:4 5}
.fp-inspector{padding:13px 30px;background:var(--fp-panel);color:var(--fp-muted);border-block:1px solid var(--fp-line);font:12px/1.7 'DM Mono',monospace}.fp-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:22px 30px 10px}.fp-lab button{font:600 13px/1.55 Manrope,sans-serif;padding:12px 14px;border:1px solid var(--fp-line);border-radius:8px;background:transparent;color:var(--fp-ink);cursor:pointer;transition:background .18s,border-color .18s,transform .18s}.fp-lab button:hover:not(:disabled){border-color:var(--fp-accent);background:var(--fp-panel);transform:translateY(-2px)}.fp-lab button:focus-visible,.fp-chart-scroll:focus-visible,.fp-review summary:focus-visible{outline:2px solid var(--fp-accent);outline-offset:-3px}.fp-lab button[aria-pressed=true]{background:var(--fp-accent);color:var(--fp-bg);border-color:var(--fp-accent)}.fp-lab button:disabled{opacity:.4;cursor:default}.fp-feedback{padding:10px 30px 25px;min-height:85px}.book-content .fp-feedback p,.book-content .fp-review p{font-size:14px;line-height:1.75;color:var(--fp-muted);margin:8px 0}.fp-feedback strong{font-size:15px;color:var(--fp-accent)}
.fp-replay{padding:22px 30px;border-block:1px solid var(--fp-line);display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:center}.fp-play-buttons{display:flex;gap:7px;margin-top:12px;flex-wrap:wrap}.fp-play-buttons [data-fp-play]{background:var(--fp-accent);color:var(--fp-bg);border-color:var(--fp-accent)}.fp-play-buttons [data-fp-play]:hover{background:var(--fp-accent)}.fp-replay label{display:grid;gap:8px;font-size:12px;color:var(--fp-muted)}.fp-replay input{width:100%;min-height:32px;accent-color:var(--fp-accent);cursor:ew-resize}.fp-counter{font:11px 'DM Mono',monospace}.fp-paths{display:flex;gap:9px;padding:22px 30px;flex-wrap:wrap}.fp-paths>span{flex-basis:100%;font-size:13px;margin-bottom:3px;color:var(--fp-muted)}.fp-review{margin:20px 30px;border:1px solid var(--fp-line);border-radius:9px}.fp-review summary{padding:16px;cursor:pointer;font:12px/1.5 'DM Mono',monospace;list-style:none;display:flex;justify-content:space-between;gap:12px}.fp-review summary::-webkit-details-marker{display:none}.fp-review[open] summary>span{transform:rotate(45deg)}.book-content .fp-review p{padding:0 16px 12px}.fp-lab>footer{padding:0 30px 22px;color:var(--fp-muted);font-size:11px;line-height:1.6}.book-content .fp-mobile-hint{display:none}.free-depth-compact>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center}.free-depth-compact>summary::-webkit-details-marker{display:none}.free-depth-compact>summary h3{margin:10px 0 0}.free-depth-compact>summary small{font:10px/1.8 'DM Mono',monospace;color:var(--tone-aaaaaa)}.free-depth-compact>summary>b{font-size:24px;font-weight:400}.free-depth-compact[open]>summary{margin-bottom:25px}.free-depth-compact[open]>summary>b{transform:rotate(45deg)}
:root[data-theme=light] .fp-lab{--fp-bg:#f1f4f1;--fp-panel:#e5ede8;--fp-ink:#182f28;--fp-muted:#4c655c;--fp-line:#c0cfc7;--fp-up:#26785b;--fp-down:#b65364;--fp-accent:#285f53}.book-content:has(.fp-lab)>.lab-takeaways{margin-top:24px}.book-shell:has(.fp-lab){max-width:1620px;grid-template-columns:250px minmax(0,1fr);gap:38px}
@keyframes fp-enter{from{opacity:.45}to{opacity:1}}@media(prefers-reduced-motion:reduce){.fp-candle{animation:none}.fp-lab button{transition:none}.fp-lab button:hover:not(:disabled){transform:none}}
@media(max-width:1050px){.fp-replay{grid-template-columns:1fr}.fp-choices{grid-template-columns:1fr}.book-shell:has(.fp-lab){grid-template-columns:220px minmax(0,1fr);gap:24px}}
@media(max-width:700px){.book-shell:has(.fp-lab){display:block}.fp-heading,.fp-challenge{padding:20px}.fp-choices,.fp-replay,.fp-paths{padding:18px}.fp-feedback{padding:8px 18px 18px}.fp-inspector{padding:12px 18px;font-size:11px}.fp-review{margin:18px}.fp-lab>footer{padding:0 18px 18px}.book-content .fp-mobile-hint{display:block;margin:0;padding:10px 18px;font-size:11px;color:var(--fp-muted)}.fp-play-buttons button{min-height:44px}.fp-challenge{font-size:14px}.fp-heading h3{font-size:27px}.free-depth-compact>summary h3{font-size:22px}}
