:root{color-scheme:light dark;--bg:#f8f7f3;--surface:#fff;--surface-2:#f0eee8;--ink:#1b1f23;--muted:#4f5761;--border:#d6d2c8;--accent:#0a625d;--accent-ink:#fff;--accent-soft:#e3f0ee;--error:#a4161a;--error-soft:#fbeaea;--warn-soft:#fdf3dc;--focus:#1f5fbf;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--step--1:.875rem;--step-0:1.0625rem;--step-1:1.25rem;--step-2:1.5rem;--step-3:clamp(1.75rem, 1.4rem + 1.6vw, 2.375rem);--s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:3rem;--radius:10px;--radius-sm:6px;--measure:68ch;--page:64rem;--tap:44px}@media (prefers-color-scheme:dark){:root{--bg:#131517;--surface:#1b1e21;--surface-2:#23272b;--ink:#ebe9e4;--muted:#b0b5bb;--border:#3a4046;--accent:#6fd0c6;--accent-ink:#0d1f1d;--accent-soft:#1a2e2c;--error:#ff9b9b;--error-soft:#3a1d1e;--warn-soft:#3a3020;--focus:#8fb8ff}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:400 var(--step-0)/1.6 var(--font);flex-direction:column;min-height:100vh;margin:0;display:flex}main{flex:1}img,svg{max-width:100%;height:auto}h1,h2,h3{letter-spacing:-.01em;margin:0 0 var(--s3);font-weight:700;line-height:1.2}h1{font-size:var(--step-3)}h2{font-size:var(--step-2);margin-top:var(--s7)}h3{font-size:var(--step-1);margin-top:var(--s5)}p,ul,ol,dl,table{margin:0 0 var(--s4)}li+li{margin-top:var(--s1)}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}code,kbd{font-family:var(--mono);font-size:.92em}.skip-link{left:var(--s3);background:var(--surface);color:var(--ink);padding:var(--s2) var(--s4);border:2px solid var(--focus);border-radius:var(--radius-sm);z-index:10;position:absolute;top:-100px}.skip-link:focus{top:var(--s3)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.wrap{width:100%;max-width:var(--page);padding:0 var(--s4);margin:0 auto}.prose{max-width:var(--measure)}.lede{font-size:var(--step-1);color:var(--muted);max-width:var(--measure)}.muted{color:var(--muted)}.small{font-size:var(--step--1)}.num{font-variant-numeric:tabular-nums}.site-header{border-bottom:1px solid var(--border);background:var(--surface)}.site-header .wrap{align-items:center;gap:var(--s2) var(--s5);padding-block:var(--s3);flex-wrap:wrap;display:flex}.brand{align-items:center;gap:var(--s2);font-weight:700;font-size:var(--step-1);color:var(--ink);min-height:var(--tap);text-decoration:none;display:inline-flex}.brand-mark{background:var(--accent);width:1.9rem;height:1.9rem;color:var(--accent-ink);font-size:1rem;font-family:var(--mono);border-radius:7px;place-items:center;font-weight:700;display:inline-grid}.site-nav ul{gap:var(--s1) var(--s4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.site-nav li+li{margin-top:0}.site-nav a{min-height:var(--tap);color:var(--ink);align-items:center;text-decoration:none;display:inline-flex}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--accent);text-decoration:underline}.site-footer{margin-top:var(--s7);border-top:1px solid var(--border);background:var(--surface);font-size:var(--step--1);color:var(--muted)}.site-footer .wrap{padding-block:var(--s5)}.site-footer ul{gap:0 var(--s4);margin:0 0 var(--s3);flex-wrap:wrap;padding:0;list-style:none;display:flex}.site-footer li+li{margin-top:0}.site-footer a{min-height:var(--tap);color:var(--ink);align-items:center;display:inline-flex}.breadcrumbs{font-size:var(--step--1);color:var(--muted);margin-top:var(--s4)}.breadcrumbs ol{gap:var(--s1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li+li{margin-top:0}.breadcrumbs li+li:before{content:"›";margin-right:var(--s1);color:var(--muted)}.breadcrumbs a{color:var(--muted);padding-block:var(--s2);display:inline-block}.page-head{padding-block:var(--s4) var(--s2)}.tool{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s4);margin-block:var(--s4) var(--s5)}.tool-grid{gap:var(--s5);display:grid}@media (width>=52rem){.tool{padding:var(--s5)}.tool-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start}}fieldset{margin:0 0 var(--s4);border:0;min-width:0;padding:0}legend{margin-bottom:var(--s2);padding:0;font-weight:700}.segmented{gap:var(--s1);background:var(--surface-2);padding:var(--s1);border-radius:var(--radius);grid-template-columns:1fr 1fr;display:grid}.segmented label{display:flex;position:relative}.segmented input{opacity:0;margin:0;position:absolute;inset:0}.segmented span{text-align:center;min-height:var(--tap);padding:var(--s2) var(--s3);border-radius:var(--radius-sm);font-weight:600;font-size:var(--step--1);cursor:pointer;color:var(--muted);flex:1;place-items:center;display:grid}.segmented input:checked+span{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000026}.segmented input:focus-visible+span{outline:3px solid var(--focus);outline-offset:1px}.row{gap:var(--s3);grid-template-columns:1fr 1fr;display:grid}.row+.row{margin-top:var(--s3)}.row-head{justify-content:space-between;align-items:baseline;gap:var(--s2);margin-bottom:var(--s1);font-weight:600;font-size:var(--step--1);display:flex}.period{padding-block:var(--s3);border-top:1px solid var(--border);margin:0}.period:first-of-type{border-top:0;padding-top:0}.field label{font-size:var(--step--1);margin-bottom:var(--s1);font-weight:600;display:block}.field .hint{font-size:var(--step--1);color:var(--muted);margin-top:var(--s1);display:block}.input-wrap{align-items:center;display:flex;position:relative}.input-wrap input{width:100%;min-height:var(--tap);font:inherit;font-variant-numeric:tabular-nums;color:var(--ink);background:var(--surface);border:1px solid var(--muted);border-radius:var(--radius-sm);padding:var(--s2) 2.25rem var(--s2) var(--s3)}.input-wrap .unit{right:var(--s3);color:var(--muted);pointer-events:none;position:absolute}.input-wrap input:focus-visible{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--focus)}.field [aria-invalid=true]{border-color:var(--error);border-width:2px}.field-error{color:var(--error);font-size:var(--step--1);margin:var(--s1) 0 0;font-weight:600}.field-error:empty{display:none}.form-msg{border-radius:var(--radius-sm);padding:var(--s2) var(--s3);font-size:var(--step--1);margin:var(--s3) 0 0}.form-msg:empty{display:none}.form-msg.is-error{background:var(--error-soft);color:var(--error);font-weight:600}.form-msg.is-ok{background:var(--accent-soft);color:var(--ink)}.btn-row{gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;display:flex}.btn{font:inherit;font-size:var(--step--1);min-height:var(--tap);padding:var(--s2) var(--s4);border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--accent);color:var(--accent);background:0 0;font-weight:600}.btn:hover{background:var(--accent-soft)}.btn:disabled{opacity:.5;cursor:not-allowed}.result{border-radius:var(--radius);background:var(--accent-soft);padding:var(--s4);min-width:0}.result-label{font-size:var(--step--1);color:var(--muted);margin:0;font-weight:600}.result-value{margin:var(--s1) 0 var(--s2);font-variant-numeric:tabular-nums;font-size:clamp(2.25rem,1.8rem + 2vw,3rem);font-weight:700;line-height:1.1}.result-value .letter{color:var(--muted);margin-left:var(--s2);font-size:.55em;font-weight:600}.result-note{margin:0 0 var(--s3)}.result.is-warn{background:var(--warn-soft)}.result.is-empty .result-value{color:var(--muted)}.working{font-size:var(--step--1);border-top:1px solid var(--border);padding-top:var(--s3)}.working h3{font-size:var(--step-0);margin:0 0 var(--s2)}.working ol{margin:0;padding-left:1.25rem}.working li{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.formula{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius-sm);padding:var(--s3) var(--s4);margin:0 0 var(--s4);overflow-x:auto}.formula p{font-family:var(--mono);font-size:var(--step--1);white-space:pre-wrap;margin:0}.formula .where{font-family:var(--font);color:var(--muted);margin-top:var(--s2)}.example{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s4);margin:0 0 var(--s4)}.example h3{margin-top:0}.example ol{font-variant-numeric:tabular-nums;padding-left:1.25rem}table{border-collapse:collapse;width:100%;font-size:var(--step--1);font-variant-numeric:tabular-nums}th,td{text-align:left;padding:var(--s2) var(--s3);border-bottom:1px solid var(--border)}th{font-weight:600}.table-wrap{max-width:var(--measure);overflow-x:auto}.qa{max-width:var(--measure)}.qa details{border-bottom:1px solid var(--border)}.qa details:first-child{border-top:1px solid var(--border)}.qa summary{cursor:pointer;padding:var(--s3) 0;min-height:var(--tap);justify-content:space-between;gap:var(--s3);align-items:center;font-weight:600;list-style:none;display:flex}.qa summary::-webkit-details-marker{display:none}.qa summary:after{content:"+";color:var(--accent);flex:none;font-size:1.25rem}.qa details[open] summary:after{content:"−"}.qa details>div{padding-bottom:var(--s3)}.sources ol{font-size:var(--step--1);max-width:var(--measure);padding-left:1.5rem}.sources li{overflow-wrap:anywhere}.meta-line{font-size:var(--step--1);color:var(--muted);margin-top:var(--s5)}.callout{border-radius:var(--radius-sm);background:var(--surface-2);padding:var(--s3) var(--s4);max-width:var(--measure);font-size:var(--step--1)}.card-list{gap:var(--s3);padding:0;list-style:none;display:grid}.card-list li+li{margin-top:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s4);color:var(--ink);text-decoration:none;display:block}.card:hover{border-color:var(--accent)}.card strong{color:var(--accent);font-size:var(--step-1);display:block}[hidden]{display:none!important}@media (prefers-reduced-motion:no-preference){.card,.btn{transition:border-color .12s,background-color .12s}}.row-3{gap:var(--s3);grid-template-columns:1fr 1fr;display:grid}.row-3>.field:first-child{grid-column:1/-1}select.select{width:100%;min-height:var(--tap);font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--muted);border-radius:var(--radius-sm);padding:var(--s2) var(--s3)}select.select:focus-visible{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--focus)}.field label .opt{color:var(--muted);font-weight:400}.scroll-box{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);max-height:22rem;overflow:auto}.scroll-box table{margin:0}.scroll-box thead th{background:var(--surface-2);position:sticky;top:0}.scroll-box tr.is-current td{background:var(--accent-soft);font-weight:700}[data-preset=generic] .unit-preset{display:none}.input-wrap input[type=date],.input-wrap input[type=time]{padding-right:var(--s3);min-width:0}.check label{align-items:center;gap:var(--s3);min-height:var(--tap);cursor:pointer;font-size:var(--step--1);font-weight:600;display:flex}.check input{width:1.375rem;height:1.375rem;accent-color:var(--accent);flex:none;margin:0}.check small{font-weight:400}textarea.textarea{width:100%;min-height:calc(var(--tap) * 2);font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--muted);border-radius:var(--radius-sm);padding:var(--s2) var(--s3);resize:vertical}textarea.textarea:focus-visible{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--focus)}.holiday-list{margin:var(--s2) 0 0;font-size:var(--step--1);padding-left:1.25rem}.warn-box{border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--ink);padding:var(--s3) var(--s4);font-size:var(--step--1);border-left:4px solid var(--error);margin:var(--s3) 0 0}.warn-box:empty{display:none}.row-4{gap:var(--s3);grid-template-columns:repeat(2,1fr);display:grid}@media (width>=30rem){.row-4{grid-template-columns:repeat(4,1fr)}}.row-3b{gap:var(--s3);grid-template-columns:1fr 1fr;display:grid}.row-3b>.field:last-child{grid-column:1/-1}.row>.field,.row-3>.field,.row-3b>.field,.row-4>.field,.row-dates>.field,.input-wrap{min-width:0}.row-dates{gap:var(--s3);grid-template-columns:1fr;display:grid}.row-dates+.row-dates,.row-dates+.row{margin-top:var(--s3)}@media (width>=26rem){.row-dates{grid-template-columns:1fr 1fr}}
