:root{--bg:#fafaf6;--paper:#fff;--ink:#182b35;--muted:#647174;--line:#dfe5df;--teal:#126b61;--deep:#173e43;--mint:#eef4ec;--gold:#d3a24c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}button,a,input,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}header{height:76px;max-width:1180px;padding:0 36px;margin:auto;display:flex;align-items:center;gap:36px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;font-size:24px;font-weight:750;letter-spacing:-1px;gap:9px;white-space:nowrap}.brandmark{display:inline-grid;place-items:center;background:var(--deep);color:white;width:33px;height:33px;border-radius:9px;font-size:26px;position:relative;line-height:1}.brandmark span{position:absolute;font-size:13px;top:1px;right:3px;color:#c8e4b2}.beta{font-size:10px;letter-spacing:1px;color:var(--muted);background:#edf0e9;padding:3px 6px;border-radius:3px}.brand-dot{color:var(--teal)}nav{display:flex;gap:24px;margin:auto;font-size:14px}nav a:hover{color:var(--teal);text-decoration:underline}.search-trigger{border:0;background:transparent;display:flex;align-items:center;gap:8px;padding:10px;color:var(--teal);font-size:23px}.search-trigger span{font-size:13px}main{max-width:1080px;padding:0 36px;margin:auto;min-height:65vh}.directory-intro{max-width:640px;padding:44px 0 28px}.directory-intro h1{font-size:38px;line-height:1.16;font-weight:650;letter-spacing:-1.4px;margin:0 0 12px}.directory-intro h1 em{font-style:normal;color:var(--teal)}.directory-intro p{font-size:15px;color:var(--muted);margin:0 0 23px}.big-search{display:flex;gap:12px;align-items:center;border:1px solid #c6d1c7;background:white;border-radius:8px;padding:10px 14px}.big-search>span{font-size:25px;color:var(--teal)}.big-search input{border:0;background:transparent;min-width:0;flex:1;padding:5px;font-size:16px}.big-search input:focus-visible{outline-offset:1px}.big-search kbd{font-size:12px;color:var(--muted);border:1px solid var(--line);padding:1px 6px;border-radius:3px}.filters{display:flex;gap:4px 20px;flex-wrap:wrap;padding-bottom:13px;border-bottom:1px solid var(--line)}.filter{background:none;border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--muted);padding:10px 0;font-size:14px}.filter.active{color:var(--teal);border-color:var(--teal);font-weight:650}.filter:hover{color:var(--teal)}.count-label{font-size:13px;color:var(--muted);margin:18px 0 4px}.category-group{padding:22px 0 24px;border-bottom:1px solid var(--line)}.category-group h2{font-size:20px;letter-spacing:-.3px;font-weight:650;margin:0 0 11px}.category-group h2 span{font-size:13px;font-weight:400;color:var(--muted);margin-left:6px}.tool-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 26px}.tool-link{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:9px 2px;color:var(--teal);font-size:15px;line-height:1.45}.tool-link>span:first-child{overflow-wrap:anywhere}.tool-link>span:last-child{color:#91a79a;font-size:19px}.tool-link:hover>span:first-child{text-decoration:underline;text-underline-offset:3px}.no-results{padding:24px 0;color:var(--muted)}.preview-note{font-size:13px;line-height:1.7;color:var(--muted);max-width:800px;margin:26px 0 35px}.breadcrumb{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:13px;padding:25px 0 17px}.breadcrumb a:hover{text-decoration:underline}.tool-heading{max-width:760px;margin:0 0 24px}.tool-heading h1{font-size:32px;line-height:1.2;letter-spacing:-1px;margin:0 0 10px;font-weight:650}.tool-heading p{font-size:15px;color:var(--muted);margin:0}.workspace{max-width:760px;display:block}.input-panel{padding:23px;border:1px solid var(--line);border-radius:9px 9px 0 0;background:white}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.panel-heading h2{font-size:17px;margin:0;font-weight:650}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field.wide{grid-column:1/-1}.field label{font-size:14px;font-weight:500;line-height:1.4}.field-wrap{min-width:0}.field input,.field select{display:block;width:100%;max-width:100%;min-width:0;min-height:46px;padding:10px 11px;font-size:16px;color:var(--ink);border:1px solid #cdd7ce;border-radius:5px;background:#fff}.field input[type=date],.field input[type=time]{appearance:none}.unit{display:block;font-size:12px;color:var(--muted);margin-top:3px}.calculate-button{display:flex;justify-content:center;align-items:center;gap:20px;min-height:46px;width:100%;border:0;border-radius:5px;background:var(--teal);color:white;padding:11px 16px;font-size:15px;font-weight:650;margin-top:23px}.calculate-button:hover{background:#0d554c}.reset-button{display:block;min-height:40px;margin:6px auto 0;padding:5px 12px;border:0;background:transparent;color:var(--muted);font-size:13px}.input-footnote{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.6}.input-footnote span{display:none}.result-panel{padding:23px;background:var(--mint);border:1px solid #d4e0d0;border-top:0;border-radius:0 0 9px 9px}.result-panel .panel-heading{margin-bottom:16px}.status{font-size:12px;color:var(--teal)}.result-label{font-size:14px;color:#536d5e;margin:0 0 5px}.result-value{font-size:34px;line-height:1.2;letter-spacing:-.9px;font-weight:650;color:var(--deep);overflow-wrap:anywhere;margin-bottom:15px}.result-details{border-top:1px solid #d4e0cf;margin-top:16px}.detail-row{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid #d4e0cf;font-size:14px}.detail-row span{color:#526b5d}.detail-row strong{text-align:right;font-weight:600;overflow-wrap:anywhere}.result-note{color:#536b5b;font-size:13px;line-height:1.7;margin:15px 0 0}.result-actions{display:flex;gap:22px;margin-top:13px}.result-actions button{min-height:40px;border:0;background:none;font-size:13px;padding:5px 0;color:var(--teal)}.chart{margin:18px 0 5px}.bar-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;align-items:center;font-size:12px;color:#526b5d;margin:10px 0}.bar-track{background:#d9e6d5;border-radius:4px;height:8px;overflow:hidden}.bar{height:100%;background:#4c8b73;border-radius:4px;min-width:1px}.line-chart{width:100%;height:160px;background:#ffffff70;border-radius:5px}.chart-caption{font-size:12px;color:var(--muted);margin:5px 0}.error{font-size:14px;color:#843e2b;background:#fff3ed;border:1px solid #e9c3b1;border-radius:5px;padding:13px}.method-grid{max-width:760px;padding:28px 0 15px;display:grid;gap:24px}.method-grid h2,.related h2{font-size:19px;font-weight:650;letter-spacing:-.3px;margin:0 0 9px}.method-grid p{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 9px}.method-grid a{color:var(--teal);text-decoration:underline;text-underline-offset:3px;font-size:13px}.limitations{padding-left:15px;border-left:2px solid var(--gold)}.related{padding:22px 0 35px;max-width:760px}.related .tool-list{grid-template-columns:repeat(2,minmax(0,1fr))}.related .tool-link{font-size:14px}footer{border-top:1px solid var(--line);max-width:1080px;padding:24px 36px;margin:auto;display:flex;align-items:center;gap:20px;color:var(--muted);font-size:12px}.footer-brand{font-size:19px;color:var(--ink)}footer p{margin:0}footer>div{margin-left:auto;display:flex;gap:20px;align-items:center}footer button{background:none;border:0;color:var(--teal);font-size:12px;min-height:40px;padding:5px 0}.skip{position:fixed;top:-100px;left:20px;background:var(--ink);color:white;padding:10px;z-index:100}.skip:focus{top:10px}dialog{border:1px solid var(--line);border-radius:10px;padding:30px;max-width:520px;width:calc(100% - 32px);color:var(--ink);background:var(--bg)}dialog::backdrop{background:#152d3990}dialog h2{font-size:26px;letter-spacing:-.8px}dialog p{font-size:14px;color:var(--muted)}.eyebrow{font-size:12px;font-weight:650;letter-spacing:1px;color:var(--teal)}.dialog-close{position:absolute;right:10px;top:6px;width:40px;height:40px;border:0;background:none;font-size:26px;color:var(--muted)}@media(max-width:850px){header{gap:20px;padding:0 24px}header nav{gap:16px;font-size:13px}.search-trigger span{display:none}main,footer{padding-left:24px;padding-right:24px}.tool-list{grid-template-columns:repeat(2,minmax(0,1fr))}footer{flex-wrap:wrap}footer>div{width:100%;margin-left:0;justify-content:space-between}}@media(max-width:560px){header{height:68px;padding:0 20px;justify-content:space-between}header nav{display:none}.brand{font-size:22px}.beta{font-size:9px}main,footer{padding-left:20px;padding-right:20px}.directory-intro{padding:30px 0 24px}.directory-intro h1{font-size:32px;letter-spacing:-1px}.directory-intro p{font-size:14px}.big-search kbd{display:none}.filters{gap:2px 17px}.filter{font-size:13px}.category-group{padding:20px 0}.category-group h2{font-size:19px}.tool-list{gap:0 19px}.tool-link{font-size:14px;min-height:48px}.tool-heading h1{font-size:28px}.tool-heading p{font-size:14px}.breadcrumb{font-size:12px;padding:22px 0 16px}.input-panel,.result-panel{padding:18px}.field-grid{grid-template-columns:1fr;gap:16px}.field.wide{grid-column:auto}.result-value{font-size:31px}.detail-row{font-size:13px;gap:14px}.method-grid p{font-size:14px}.preview-note{font-size:12px}.related .tool-list{grid-template-columns:1fr}footer>div{gap:12px;font-size:11px}}@media(max-width:350px){.tool-list{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media print{header,footer,.input-panel,.result-actions,.related,.search-trigger{display:none}.result-panel{border:1px solid #bbb;background:white;break-inside:avoid}.workspace,.method-grid{max-width:none}main{padding:0}.tool-heading h1{font-size:26px}}
/* Depth stays out of the way until it is useful. */
.advanced-inputs,.schedule,.worked-example details{border-top:1px solid #dde4df;margin-top:20px;padding-top:16px}summary{cursor:pointer;color:#126b61;font-weight:650;line-height:1.6}summary:focus-visible{outline:2px solid #126b61;outline-offset:5px}.advanced-inputs .field-grid{margin-top:18px}.field-help{display:block;color:#697874;font-size:12px;line-height:1.5;margin-top:6px}.table-scroll{overflow:auto;max-height:440px;margin-top:14px;border:1px solid #dde4df;border-radius:8px}.table-scroll table{border-collapse:collapse;width:100%;font-size:13px;text-align:right;white-space:nowrap}.table-scroll th,.table-scroll td{padding:10px 14px;border-bottom:1px solid #e5ebe5}.table-scroll th{background:#eef4ee;position:sticky;top:0}.worked-example{max-width:900px;margin:28px auto 36px;padding:22px 26px;background:#f1f5ef;border-radius:12px}.worked-example h2{font-size:20px;margin:0 0 10px}.worked-example p{line-height:1.7;color:#52645f}.worked-example dl{font-size:14px;max-width:650px}.worked-example dl>div{display:flex;justify-content:space-between;gap:20px;padding:7px 0;border-bottom:1px solid #dce5dc}.worked-example dd{margin:0;text-align:right;overflow-wrap:anywhere}.worked-example dt{color:#52645f}.result-value{overflow-wrap:anywhere}.result-details strong{overflow-wrap:anywhere;text-align:right}@media(max-width:560px){.worked-example{padding:18px}.table-scroll th,.table-scroll td{padding:8px 10px}}@media print{.schedule[open] .table-scroll{max-height:none;overflow:visible}.worked-example{break-inside:avoid}}

.analytics-consent{position:fixed;z-index:1000;bottom:1rem;left:1rem;right:1rem;max-width:44rem;margin:0 auto;padding:1.25rem;background:#fff;color:#123d43;border:1px solid #8aa3a0;border-radius:12px;box-shadow:0 6px 32px #123d4326;max-height:75vh;overflow:auto}.analytics-consent h2{font-size:1.15rem;margin:0 0 .5rem}.analytics-consent p{font-size:.9rem;line-height:1.5;margin:.5rem 0}.consent-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.consent-actions button{flex:1;min-width:9rem;border:1px solid #123d43;background:#fff;color:#123d43;border-radius:6px;padding:.7rem 1rem;font:inherit;cursor:pointer}.consent-actions button:hover,.consent-actions button:focus-visible{background:#eaf1ef;outline:2px solid #123d43;outline-offset:2px}[data-analytics-preferences]{border:0;background:transparent;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}[data-analytics-preferences][hidden]{display:none}

.project-example figure{margin:20px 0}.project-example img{display:block;width:100%;max-width:480px;height:auto;margin:0 auto}.project-example figcaption{font-size:13px;line-height:1.5;color:#52645f;margin:10px 0}.project-example ol{padding-left:1.35em;line-height:1.7;overflow-wrap:anywhere}.project-example li+li{margin-top:12px}.project-example h2{overflow-wrap:anywhere}@media(max-width:560px){.project-example figure{margin:16px 0}.project-example ol{padding-left:1.2em}}

/* Footer links and preference controls must wrap within narrow viewports. */
footer{flex-wrap:wrap}
footer>*{min-width:0;max-width:100%}
footer>div{flex-wrap:wrap}
footer nav{display:flex;flex:1 1 100%;flex-wrap:wrap;align-items:center;gap:8px 20px;margin:0;min-width:0;max-width:100%}
footer nav>a,footer nav>button{display:inline-flex;align-items:center;min-height:40px;max-width:100%;white-space:normal;overflow-wrap:anywhere}
footer nav>a:focus-visible,footer nav>button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
