/* Calculator layout uses the shared site's dark theme and design tokens. */
.calc [hidden]{display:none!important}
#calc-app{overflow-wrap:anywhere}
.calc-intro,.calc-result-intro{display:grid;align-items:center;gap:20px}
.calc-intro h1{max-width:680px}
.calc-intro .lead{max-width:660px}
.calc-facts{font-size:12px;color:var(--accent);margin:24px 0}
.calc-smallprint{margin:16px 0 0;max-width:540px}
.calc-chain{width:100%;height:240px;display:grid;place-items:center;perspective:850px;isolation:isolate;overflow:hidden}
.calc-chain-3d{width:84%;display:flex;align-items:center;transform-style:preserve-3d;transform:rotateX(-18deg) rotateY(-10deg);animation:calc-sway 12s ease-in-out infinite}
.calc-link{display:grid;grid-template-rows:86px 62px;place-items:center;flex:1 1 0;min-width:0;transform-style:preserve-3d;color:var(--muted);font:500 11px/1.4 var(--mono);text-align:center}
.calc-link>span{align-self:start;padding:10px 0 0;white-space:nowrap}
.calc-link:nth-child(even)>span{padding-top:30px}
.calc-ring{display:block;width:160%;height:58px;border:6px solid var(--line);border-radius:48%;transform-style:preserve-3d;transform:rotateY(-12deg);box-shadow:inset 0 2px 0 var(--muted),0 2px 0 var(--sunk)}
.calc-ring::before,.calc-ring::after{content:"";position:absolute;inset:-6px;border:3px solid var(--line);border-radius:48%;transform:translateZ(4px)}
.calc-ring::after{transform:translateZ(-4px)}
.calc-link:nth-child(even) .calc-ring{transform:rotateX(90deg) rotateY(-12deg)}
.calc-link.is-constraint{color:var(--accent)}
.calc-link.is-constraint .calc-ring,.calc-link.is-constraint .calc-ring::before,.calc-link.is-constraint .calc-ring::after{border-color:var(--accent);box-shadow:0 0 24px color-mix(in srgb,var(--accent) 48%,transparent),inset 0 0 12px color-mix(in srgb,var(--accent) 30%,transparent)}
.calc-link.is-unknown{opacity:.45}
.calc-chain-flat{display:none;width:100%;max-height:220px;overflow:visible}
.calc-chain-flat ellipse{fill:none;stroke:var(--line);stroke-width:8}
.calc-chain-flat text{fill:var(--muted);font:10px var(--mono);text-anchor:middle}
.calc-chain-flat .is-constraint ellipse{stroke:var(--accent)}
.calc-chain-flat .is-constraint text{fill:var(--accent)}
.calc-chain-flat .is-unknown{opacity:.45}
@keyframes calc-sway{0%,100%{transform:rotateX(-18deg) rotateY(-10deg) rotateZ(-2deg)}50%{transform:rotateX(-26deg) rotateY(8deg) rotateZ(2deg)}}
@supports not (transform-style:preserve-3d){.calc-chain-3d{display:none}.calc-chain-flat{display:block}}
.calc-active{max-width:760px;margin:0 auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:24px 18px}
.calc fieldset{border:0;padding:0;margin:0;min-width:0}
.calc legend{padding:0;width:100%;margin-bottom:12px}
.calc legend h2{font-size:clamp(26px,4vw,36px)}
.calc h1:focus,.calc h2:focus{outline:none}
.calc progress{width:100%;height:5px;accent-color:var(--accent);margin:0 0 28px;border:0;background:var(--sunk)}
.calc progress::-webkit-progress-bar{background:var(--sunk)}
.calc progress::-webkit-progress-value{background:var(--accent)}
.calc progress::-moz-progress-bar{background:var(--accent)}
.calc-options{display:grid;gap:10px;margin:12px 0 20px}
.calc-option{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r);padding:15px;min-height:56px;cursor:pointer;background:var(--bg);margin-bottom:10px}
.calc-options .calc-option{margin-bottom:0}
.calc-option:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg))}
.calc-option:hover{border-color:var(--muted)}
.calc-option input{flex:0 0 20px;width:20px;height:20px;min-width:20px;margin:2px 0 0;padding:0;accent-color:var(--accent)}
.calc-option>span{min-width:0;flex:1}
.calc-option b{font-weight:600}
.calc-option .chip{margin-left:8px;display:inline-block}
.calc-option-note{display:block;font-size:14px;color:var(--muted);margin-top:5px;font-weight:400}
.calc-help{display:inline-block;border:0;background:transparent;color:var(--accent);text-decoration:underline;text-underline-offset:4px;padding:10px 0;min-height:44px;font:inherit;cursor:pointer}
.calc-tooltip{padding:16px;border-left:2px solid var(--accent);background:var(--sunk);border-radius:0 var(--r) var(--r) 0;margin:6px 0 18px}
.calc-tooltip p:last-child{margin-bottom:0}
.calc-switch{display:flex;gap:8px;margin:16px 0 24px}
.calc-switch .btn[aria-pressed="true"]{border-color:var(--accent);background:var(--sunk);color:var(--fg)}
.calc-exact{display:block;font-weight:600;margin:0 0 12px}
.calc-exact>span{display:flex;align-items:center;gap:12px;margin-top:10px}
.calc-exact input{width:50%;max-width:230px;flex:0 1 230px}
.calc-exact #calc-unit{font-size:14px;color:var(--muted);font-weight:400}
.calc-unknown{margin-top:18px}
.calc-closest{margin-top:20px!important}
.calc-error{color:var(--crit);font-size:14px;min-height:22px;margin:12px 0}
.calc-error:empty{margin:0;min-height:12px}
.calc-nav{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:24px}
.calc .btn{min-height:44px}
.calc-review-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}
.calc-review-row>div{flex:1;min-width:0}
.calc-review-row p{margin:4px 0 0;color:var(--muted);font-size:14px}
.calc-review-row button{flex:none}
.calc-review{margin-bottom:24px}
#calc-ts{min-height:65px;max-width:100%}
#calc-loading{min-height:26px;color:var(--accent);font-family:var(--mono);font-size:14px}
.calc-panel{padding:28px 18px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);margin-top:18px}
.calc-panel h2{font-size:clamp(24px,3vw,32px);margin-bottom:20px}
.calc-stage-list{list-style:none;margin:0 0 20px;padding:0}
.calc-stage-list li{padding:20px 0;border-bottom:1px solid var(--line)}
.calc-stage-list li.is-constraint{border-left:3px solid var(--accent);padding-left:14px}
.calc-stage-list li:last-child{border-bottom:0}
.calc-stage-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.calc-stage-top h3{margin:0}
.calc-stage-list p{margin:0}
.calc-stage-list .is-constraint .chip{background:var(--good-soft);color:var(--good)}
.calc-stage-list .is-weak .chip{background:var(--warn-soft);color:var(--warn)}
.calc-exits{display:grid;gap:24px}
.calc-exit .btn{width:100%;margin-bottom:16px}
.calc-exit p{font-size:14px;color:var(--muted)}
.calc-steps{display:flex;gap:7px;list-style:none;margin:20px 0 0;padding:0;counter-reset:none}
.calc-steps li{flex:1;min-width:0;font-size:10px;text-align:center;color:var(--muted)}
.calc-steps li>span{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;margin:0 auto 8px;font:500 12px var(--mono);color:var(--accent)}
.calc-copy{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 16px}
.calc-copy input{width:100%;flex:1 1 220px;font-size:14px}
.calc-private{font-weight:600}
.calc .faq{list-style:none;padding:0;margin:24px 0;max-width:var(--text)}
.calc .faq li{padding:20px 0;border-bottom:1px solid var(--line)}
@media(min-width:760px){.calc-intro{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:32px}.calc-chain{height:320px}.calc-active{padding:40px}.calc-panel{padding:36px}.calc-exits{grid-template-columns:repeat(2,minmax(0,1fr))}.calc-result-intro{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.calc-link{font-size:11px}.calc-modes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.calc-chain-3d{animation:none}.calc *{scroll-behavior:auto}}
