:root{--paper: #f6f5f1;--surface: #ffffff;--ink: #1d1c19;--ink-2: #5b5850;--line: #e3e0d8;--rule: #1d1c19;--accent: #a8400c;--accent-deep: #7e2f08;--display-bg: #20221f;--display-ink: #f2efe7;--display-dim: #a39f93;--display-accent: #ffb46b;--display-line: #3a3c38;--mark-bg: var(--display-bg);--mark-fg: var(--display-accent);--control-active-bg: var(--display-bg);--display-ok: #7fe0a6;--display-warn: #ffd479;--display-bad: #ff9d85;--ok: #1a7f4b;--warn: #9a6700;--bad: #c03a1d;--line-strong: #a9a496;--font-ui: "Archivo Variable", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;--radius: 3px;--control-h: 3rem;--page-max: 64rem}[data-vertical=plumbing]{--accent: #1b5e9b;--accent-deep: #134570}[data-vertical=hvac]{--accent: #0c6e66;--accent-deep: #084f49}[data-vertical=cross-trade]{--accent: #4a5568;--accent-deep: #333c4b}@media(prefers-color-scheme:dark){:root{--paper: #151619;--surface: #1d1f23;--ink: #ebe9e3;--ink-2: #a3a199;--line: #32353b;--rule: #ebe9e3;--accent: #e8814a;--accent-deep: #f09c6e;--display-bg: #101210;--ok: #5cc492;--warn: #d9b35c;--bad: #ef8a70;--line-strong: #5a5e66;--mark-bg: var(--display-accent);--mark-fg: #20221f;--control-active-bg: #383b36}[data-vertical=plumbing]{--accent: #6aa9dd;--accent-deep: #8fc0e8}[data-vertical=hvac]{--accent: #4cb3a8;--accent-deep: #72c8bf}[data-vertical=cross-trade]{--accent: #9aa8bd;--accent-deep: #b6c1d2}}*{box-sizing:border-box}html{color-scheme:light dark}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:1rem;line-height:1.6;-webkit-text-size-adjust:100%;border-top:3px solid var(--accent)}main{max-width:var(--page-max);margin:0 auto;padding:0 1rem 3rem}h1{font-size:clamp(1.65rem,5vw,2.4rem);font-weight:700;line-height:1.15;letter-spacing:-.015em;margin:.5rem 0 .75rem;text-wrap:balance}h2{font-size:1.2rem;font-weight:650;letter-spacing:-.01em;margin:2.5rem 0 .75rem;padding-top:.75rem;border-top:1px solid var(--line)}p{margin:.75rem 0}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{color:var(--accent-deep)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent);color:#fff}.microlabel{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2)}.site-header{border-bottom:1px solid var(--line)}.site-header__inner{max-width:var(--page-max);margin:0 auto;padding:.875rem 1rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.site-header__brand{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-mono);font-size:.9375rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--ink);text-decoration:none}.site-header__mark{width:1.375rem;height:1.375rem;flex-shrink:0}.site-header__brand-tail,.site-header__brand:hover{color:var(--accent)}.site-header__tag{font-size:.8125rem;color:var(--ink-2)}@media(max-width:36rem){.site-header__tag{display:none}}.site-footer{border-top:1px solid var(--line);margin-top:3rem}.site-footer__inner{max-width:var(--page-max);margin:0 auto;padding:1.25rem 1rem 2rem;font-size:.8125rem;color:var(--ink-2)}.breadcrumbs{list-style:none;display:flex;flex-wrap:wrap;gap:.25rem;margin:1.25rem 0 0;padding:0;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.02em}.breadcrumbs li+li:before{content:"/";margin-right:.25rem;color:var(--ink-2)}.breadcrumbs a{color:var(--ink-2)}.breadcrumbs [aria-current=page]{color:var(--ink)}.page-intro{max-width:44rem;color:var(--ink-2);margin-top:0}.calc{margin:1.5rem 0 .5rem;display:grid;gap:1rem}@media(min-width:56rem){.calc{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:1.5rem}}.calc__form{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1.25rem 1rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem .75rem;box-shadow:0 1px 2px #1d1c190a,0 8px 24px #1d1c190d}@media(max-width:22.5rem){.calc__form{grid-template-columns:1fr}}.form-section{grid-column:1 / -1;color:var(--accent);border-bottom:1px solid var(--line);padding-bottom:.375rem;margin-top:.375rem}.form-section:first-child{margin-top:0}.field{display:flex;flex-direction:column;gap:.375rem}@keyframes derived-flash{0%{background-color:color-mix(in srgb,var(--accent) 16%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent)}to{background-color:transparent;box-shadow:none}}.field--derived{animation:derived-flash .9s ease-out;border-radius:var(--radius)}.field--wide{grid-column:1 / -1}.field__control{position:relative;display:flex;align-items:center}.field input,.field select{width:100%;height:var(--control-h);padding:0 .75rem;background:var(--paper);color:var(--ink);border:1.5px solid var(--line-strong);border-radius:var(--radius);font-size:1rem;touch-action:manipulation}.field input{font-family:var(--font-mono);font-variant-numeric:tabular-nums;flex:1;min-width:0}.field input:focus,.field select:focus{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:0}.field select{appearance:none;cursor:pointer;padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23888478' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center}.field__control:has(.field__unit) input,.field__control:has(.numspin) input{border-top-right-radius:0;border-bottom-right-radius:0;border-right:0}.field__control:has(.field__unit) input:focus,.field__control:has(.numspin) input:focus{outline:none}.field__control:has(.field__unit):focus-within,.field__control:has(.numspin):focus-within{outline:1px solid var(--accent);outline-offset:0;border-radius:var(--radius)}.field__control:focus-within .field__unit,.field__control:focus-within .numspin{border-color:var(--accent)}.field input[type=number]::-webkit-outer-spin-button,.field input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}.field input[type=number]{appearance:textfield}.numspin{display:flex;flex-direction:column;flex-shrink:0;width:2.25rem;height:var(--control-h);border:1.5px solid var(--line-strong);border-radius:0 var(--radius) var(--radius) 0;overflow:hidden}.field__control:has(.field__unit) .numspin{border-right:0;border-radius:0}.numspin__btn{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:0;border:0;background:var(--surface);color:var(--ink);font:600 .8125rem var(--font-mono);line-height:1;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none}.numspin__btn+.numspin__btn{border-top:1.5px solid var(--line-strong)}.numspin__btn:hover:not(:disabled){background:var(--paper);color:var(--accent)}.numspin__btn:active:not(:disabled){background:var(--line)}.numspin__btn:disabled{color:var(--line-strong);background:var(--paper);cursor:default}.numspin__btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.field__unit{display:flex;align-items:center;height:var(--control-h);padding:0 .7rem;border:1.5px solid var(--line-strong);border-radius:0 var(--radius) var(--radius) 0;background:var(--surface);font-family:var(--font-mono);font-size:.8125rem;font-weight:600;color:var(--ink-2)}.field__hint{font-size:.75rem;line-height:1.45;color:var(--ink-2)}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border:1.5px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;background:var(--paper);height:var(--control-h);padding:.1875rem;gap:.1875rem}.segmented__opt{display:block;position:relative}.segmented__opt+.segmented__opt:before{content:"";position:absolute;left:-.125rem;top:22%;bottom:22%;width:1px;background:var(--line)}.segmented__opt:has(input:focus-visible):before,.segmented__opt:has(input:focus-visible)+.segmented__opt:before{background:transparent}.segmented__opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;pointer-events:none}.segmented__opt span{display:flex;align-items:center;justify-content:center;height:100%;padding:0 .5rem;border-radius:calc(var(--radius) - 1px);font-size:.9375rem;font-weight:500;color:var(--ink-2);cursor:pointer;user-select:none;white-space:nowrap;transition:background-color .15s ease-out}@media(max-width:36rem){.field:has(.segmented),.field:has(.stepper){grid-column:1 / -1}}.segmented__opt input:checked+span{background:var(--control-active-bg);color:var(--display-accent);font-weight:600}.segmented__opt input:focus-visible+span{box-shadow:0 0 0 2px var(--accent)}.stepper{display:flex}.stepper select{flex:1;min-width:0;border-radius:0;border-left:0;border-right:0;text-align:center}.stepper__btn{width:var(--control-h);height:var(--control-h);flex-shrink:0;border:1.5px solid var(--line-strong);background:var(--surface);color:var(--ink);font:600 1.25rem var(--font-mono);cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;transition:background-color .15s ease-out}.stepper__btn:disabled{color:var(--line-strong);background:var(--paper);cursor:default}.stepper__btn:first-child{border-radius:var(--radius) 0 0 var(--radius)}.stepper__btn:last-child{border-radius:0 var(--radius) var(--radius) 0}.stepper__btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.field .stepper select:focus{border-color:var(--line-strong);outline:2px solid var(--accent);outline-offset:-2px}.stepper__btn:hover:not(:disabled){background:var(--paper);color:var(--accent)}.stepper__btn:active:not(:disabled){background:var(--line)}.presets{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.125rem}.chip{font:600 .75rem var(--font-mono);padding:.3rem .55rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink-2);cursor:pointer;touch-action:manipulation;transition:background-color .15s ease-out,color .15s ease-out}.chip:hover{border-color:var(--accent);color:var(--accent)}.chip--active{background:var(--control-active-bg);border-color:var(--control-active-bg);color:var(--display-accent)}.calc__error{grid-column:1 / -1;margin:.75rem 0 0;padding:.625rem .75rem;border:1px solid var(--bad);border-radius:var(--radius);color:var(--bad);font-size:.875rem}.field--invalid>.microlabel{color:var(--bad)}.field--invalid input,.field--invalid select,.field--invalid .field__unit{border-color:var(--bad)}.calc__display{position:sticky;bottom:0;z-index:10;background:var(--display-bg);color:var(--display-ink);border-radius:6px;padding:.75rem 1rem .875rem;box-shadow:0 -6px 24px #0000002e}@media(min-width:56rem){.calc__display{bottom:auto;top:1rem;padding:1rem 1.25rem 1.25rem;box-shadow:none}}.display-head{display:flex;align-items:center;gap:.75rem;padding-bottom:.625rem;margin-bottom:.75rem;border-bottom:1px solid var(--display-line)}.display-head__trace{width:7.5rem;height:.75rem;color:var(--display-dim);flex-shrink:1;min-width:3rem}.display-head__title{margin-left:auto;font-size:.6563rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--display-dim)}.display-head__led{width:.5rem;height:.5rem;border-radius:50%;background:var(--display-dim);flex-shrink:0}.calc__display:has([data-tone=ok]) .display-head__led{background:var(--display-ok);box-shadow:0 0 8px var(--display-ok)}.calc__display:has([data-tone=warn]) .display-head__led{background:var(--display-warn);box-shadow:0 0 8px var(--display-warn)}.calc__display:has([data-tone=bad]) .display-head__led{background:var(--display-bad);box-shadow:0 0 8px var(--display-bad)}.calc__results{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1rem}.display-config{margin:.75rem 0 0;padding-top:.625rem;border-top:1px solid var(--display-line);font-family:var(--font-mono);font-size:.7rem;line-height:1.5;color:var(--display-dim)}@media screen and (max-width:56rem){.display-config{display:none}}.calc[data-stale] .calc__results,.calc[data-stale] .display-config{opacity:.4}.calc[data-stale] .display-head__led{background:var(--display-dim);box-shadow:none}.result-line{display:flex;flex-direction:column;gap:.125rem;min-width:0}.result-line__label{font-size:.6563rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--display-dim)}.result-line__value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.0625rem;line-height:1.35}.result-line--emphasis{grid-column:1 / -1;border-bottom:1px solid var(--display-line);padding-bottom:.625rem}.result-line--emphasis .result-line__value{font-size:clamp(2.1rem,8vw,2.75rem);font-weight:600;line-height:1.05;letter-spacing:-.02em;color:var(--display-accent)}.result-line--emphasis[data-tone=ok] .result-line__value{color:var(--display-ok)}.result-line--emphasis[data-tone=warn] .result-line__value{color:var(--display-warn)}.result-line--emphasis[data-tone=bad] .result-line__value{color:var(--display-bad)}.result-line[data-result-id=verdict]{grid-column:1 / -1;border-top:1px solid var(--display-line);padding-top:.625rem}.result-line[data-result-id=verdict] .result-line__value{font-family:var(--font-ui);font-size:.875rem;line-height:1.45}.result-line[data-result-id=verdict] .result-line__value:before{font-family:var(--font-mono);font-weight:600;margin-right:.45rem}.result-line[data-result-id=verdict][data-tone=ok] .result-line__value:before{content:"✓";color:var(--display-ok)}.result-line[data-result-id=verdict][data-tone=warn] .result-line__value:before{content:"!";color:var(--display-warn)}.result-line[data-result-id=verdict][data-tone=bad] .result-line__value:before{content:"✕";color:var(--display-bad)}.tool-article{max-width:44rem}.formula{font-family:var(--font-mono);font-size:.9375rem;line-height:1.7;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius);padding:.875rem 1rem;margin:.75rem 0;overflow-x:auto}.code-refs{list-style:none;margin:.75rem 0;padding:0}.code-refs li{padding:.625rem 0;border-bottom:1px solid var(--line);font-size:.9375rem}.code-refs cite{display:block;font-style:normal;font-family:var(--font-mono);font-size:.8125rem;color:var(--ink-2);margin-top:.125rem}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;padding:.875rem 0;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font-family:var(--font-mono);color:var(--accent);flex-shrink:0}.faq details[open] summary:after{content:"−"}.faq details>p{margin:0 0 1rem;color:var(--ink-2)}.disclaimer{font-size:.8125rem;color:var(--ink-2);border-top:1px solid var(--line);padding-top:.875rem;margin-top:2rem}.embed-block pre{background:var(--display-bg);color:var(--display-ink);border-radius:var(--radius);padding:.875rem 1rem;overflow-x:auto;font-family:var(--font-mono);font-size:.8125rem;line-height:1.5}.tool-cards{list-style:none;margin:1.5rem 0;padding:0;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr))}.tool-cards a.tool-card{position:relative;display:block;height:100%;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1rem;color:inherit;text-decoration:none;box-shadow:0 1px 2px #1d1c190a,0 6px 20px #1d1c190d;transition:border-color .15s ease-out,transform .15s ease-out;overflow:hidden}.tool-cards a.tool-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s ease-out}.tool-cards a.tool-card:hover{border-color:var(--accent);transform:translateY(-1px)}.tool-cards a.tool-card:hover:before{transform:scaleX(1)}.tool-card__index{font-family:var(--font-mono);font-size:.6875rem;font-weight:600;letter-spacing:.08em;color:var(--accent)}.tool-card__title{font-weight:650;color:var(--ink);margin:.25rem 0 0}.tool-card__desc{font-size:.875rem;color:var(--ink-2);margin:.375rem 0 0}.tool-card__tools{margin:.625rem 0 0;font-family:var(--font-mono);font-size:.6875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}.page-trace{color:var(--accent);margin-top:1.75rem}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}@media print{body{background:#fff;color:#000;border-top:none}.site-header,.site-footer,.breadcrumbs,.faq,.embed-block,.related-tools,.presets,.stepper__btn,.numspin,.calc__error[hidden]{display:none!important}.segmented__opt input:checked+span{outline:2px solid #000;outline-offset:-3px;font-weight:700}.stepper select{border:1px solid #000;border-radius:0}.calc{grid-template-columns:1fr 1fr}.calc__form,.calc__display{position:static;background:#fff;color:#000;border:1px solid #000;box-shadow:none}.display-head__trace,.display-head__led{display:none}.display-head{border-color:#000}.display-head__title,.result-line__label{color:#444}.result-line--emphasis .result-line__value,.result-line--emphasis[data-tone] .result-line__value{color:#000}.result-line--emphasis,.result-line[data-result-id=verdict]{border-color:#000}.formula{border-color:#000;background:#fff}.print-source{display:block!important;font-size:.75rem;color:#444;margin-top:1.5rem}a{color:#000}}.print-source{display:none}
