@font-face{font-family:Inter;src:url('/assets/inter-400.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Inter;src:url('/assets/inter-700.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--ink:#1d2b36;--muted:#5d6b75;--accent:#2f6f4e;--hover:#245a3e;--line:#d7e0e4;--soft:#f3f6f7;--tint:#e9f4ef}*{box-sizing:border-box}body{margin:0;color:var(--ink);font:17px/1.65 Inter,Arial,sans-serif;background:linear-gradient(180deg,#4d4e4e 0%,#716861 30%,#8a7968 55%,#a6865a 85%,#ac854e 100%);background-attachment:fixed}a{color:var(--accent);text-underline-offset:3px}button,input,select{font:inherit;font-size:16px}button,a,input,select,summary{touch-action:manipulation}button,input,select{min-height:48px}button{border:1px solid var(--line);background:white;color:var(--ink);border-radius:12px;padding:8px 16px;cursor:pointer;transition:transform 180ms,background 180ms}button:hover{background:var(--soft)}button.primary{background:var(--accent);color:white;border-color:var(--accent);font-weight:700}button.primary:hover{background:var(--hover);transform:translateY(-2px);box-shadow:0 8px 24px #00000024}button:disabled{cursor:default;opacity:.6;transform:none}input,select{display:block;width:100%;padding:8px 12px;background:white;color:var(--ink);border:1px solid #8a9aa4;border-radius:8px}input:focus,select:focus{border-color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}input[aria-invalid=true]{border:2px solid var(--ink)}label{font-size:16px;line-height:1.35;display:block}.field label{margin-bottom:6px}.field-error{font-size:16px;display:block;line-height:1.4;margin-top:4px}p{max-width:68ch;margin:0 0 16px}h1,h2,h3{line-height:1.2;letter-spacing:-.035em;margin:0 0 16px}h1{font-size:clamp(2.2rem,4.4vw,4.2rem)}h2{font-size:clamp(1.75rem,3vw,2.8rem)}h3{font-size:1.25rem}ul,ol{padding-left:24px}svg{max-width:100%}header{background:white;min-height:64px;position:relative;z-index:2}.wrap{max-width:1180px;margin:auto;padding:0 24px}.head{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:24px}.logo{display:flex;gap:8px;align-items:center;color:var(--ink);font-size:24px;font-weight:700;text-decoration:none;letter-spacing:-1px}.logo svg{width:32px;height:32px;color:var(--accent);flex-shrink:0}nav{display:flex;align-items:center;gap:24px}nav a{color:var(--ink);font-size:16px;display:flex;align-items:center;min-height:44px;text-decoration:none}nav a:hover{text-decoration:underline}.menu{display:none;padding:8px;width:48px}.menu svg{display:block}.skip{position:absolute;left:16px;top:-100px;background:white;padding:8px;z-index:5}.skip:focus{top:8px}main{padding-top:32px!important;padding-bottom:56px!important}.hero{color:white}.hero h1{margin-bottom:12px}.hero p{color:white;margin-bottom:24px}.card{background:white;border-radius:16px;padding:28px;box-shadow:0 4px 20px #00000014}.tool{margin-top:24px;display:grid;grid-template-columns:5fr 7fr;gap:24px;align-items:start}.tool h2,.widget h2{font-size:1.25rem;letter-spacing:-.02em}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.full{grid-column:1/-1}.goal-toggle{display:flex;background:var(--soft);border-radius:12px;padding:4px;margin:16px 0}.goal-toggle button{border:0;flex:1;padding:6px;font-size:16px;min-height:44px}.goal-toggle button[aria-pressed=true]{background:var(--accent);color:white}.assumptions{font-size:16px;background:var(--soft);border:1px solid var(--line);border-radius:12px;margin:16px 0;padding:0 12px}.assumptions summary{padding:12px 0;cursor:pointer;min-height:48px;line-height:1.4}.assumptions .fields{padding:4px 0 12px}.hint{font-size:16px;color:var(--muted);line-height:1.5;margin:8px 0 12px}.actions{display:flex;gap:12px;flex-wrap:wrap}.actions .primary{flex:1;min-width:0}.disclaimer{font-size:16px;margin:8px 0 0;color:var(--ink);line-height:1.5}.summary{background:var(--tint);border-radius:12px;padding:20px}.eyebrow{text-transform:uppercase;font-size:12px;font-weight:700;letter-spacing:.13em;color:var(--accent);margin:0 0 6px}.summary h2{font-size:1.25rem;margin:0 0 4px}.big{display:block;font-weight:700;font-size:clamp(2.5rem,5vw,4rem);font-variant-numeric:tabular-nums;line-height:1.15;color:var(--accent);letter-spacing:-.04em}.result-status{font-size:16px;line-height:1.4;margin:8px 0}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.stats span,.stats strong{display:block;font-size:16px;line-height:1.4;overflow-wrap:anywhere}.stats span{color:var(--muted)}.empty-steps{display:flex;gap:8px;align-items:center;font-size:16px;margin-top:16px;color:var(--muted)}.empty-steps svg{width:24px;height:24px;flex-shrink:0}.result-note{margin:12px 0 0;font-size:16px;line-height:1.5}.result-note a{display:inline-block;min-height:44px;padding-top:8px}.stale{font-weight:700;background:var(--soft);padding:12px;border-radius:8px;margin-bottom:12px}.error-summary{background:var(--soft);border:2px solid var(--ink);border-radius:8px;margin:12px 0;padding:12px;font-size:16px}.error-summary ul{margin:4px 0}.chart{margin-top:24px}.chart svg{display:block;width:100%;height:auto}.chart p{font-size:16px;margin:8px 0}.chart text{font-family:Inter,Arial,sans-serif;font-size:16px;fill:var(--muted)}.chart .line{fill:none;stroke:var(--accent);stroke-width:3}.chart .threshold{fill:none;stroke:var(--ink);stroke-dasharray:7 5;stroke-width:2}details summary{cursor:pointer;min-height:44px;padding:8px 0}table{border-collapse:collapse;width:100%;font-size:16px;line-height:1.5}th,td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left}th{background:var(--soft);font-weight:700}td{font-variant-numeric:tabular-nums}table caption{text-align:left;font-weight:700;margin-bottom:12px}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px}.section{margin-top:56px}.section>.card+.card{margin-top:24px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.grid .card{padding:24px}.link-card{display:block;color:var(--ink);text-decoration:none;transition:transform 180ms}.link-card:hover{transform:translateY(-3px)}.link-card h3{color:var(--accent)}.link-card p{margin:0}.step{display:inline-grid;place-items:center;width:32px;height:32px;background:var(--tint);color:var(--accent);font-weight:700;border-radius:50%;margin-bottom:16px}.article{max-width:820px;margin:24px auto 0}.article>.card{margin-bottom:24px}.article .card>:last-child{margin-bottom:0}.article h2{max-width:24ch}.article li{margin-bottom:12px}.article code{font-family:Inter,Arial,sans-serif;overflow-wrap:anywhere;background:var(--soft);padding:4px;font-size:16px}.article p:has(>code:only-child){background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:16px}.article details{border-top:1px solid var(--line)}.article details summary{font-weight:700}.article details p{padding:12px 0}.article .table-scroll{margin:16px 0}.widget{max-width:820px;margin:24px auto 0}.widget .summary{margin-top:24px}.widget form{max-width:580px}.widget .actions{margin-top:16px}.tools-links{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.comparison-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.compare-grid>div{padding:16px;background:var(--soft);border-radius:12px}.compare-grid h3{margin-bottom:8px}.comparison-note{font-size:16px}.save-form{display:flex;align-items:end;gap:12px;margin-top:16px}.save-form .field{flex:1}.saved-item{padding:16px 0;border-top:1px solid var(--line)}.saved-item p{margin:8px 0;font-size:16px}.saved-actions{display:flex;gap:12px;flex-wrap:wrap}.saved-list{margin-top:24px}.trust{font-size:16px}.trust h2{font-size:1.25rem}.jump{display:flex;gap:8px;flex-wrap:wrap}.jump a{display:inline-block;padding:8px 12px;background:var(--soft);border-radius:8px;min-height:44px}footer{background:white;padding:32px 0;font-size:16px}footer ul{display:flex;flex-wrap:wrap;gap:8px 24px;list-style:none;padding:0;margin:0 0 12px}footer a{display:inline-block;min-height:44px;padding-top:8px}footer p{max-width:none;margin:8px 0}footer .operator{color:var(--muted);max-width:80ch}button svg{width:24px;height:24px;vertical-align:middle;margin-right:4px}.mobile-only{display:none}[hidden]{display:none!important}
@media(max-width:760px){body{background-attachment:scroll}.wrap{padding:0 16px}.head{gap:16px}nav{display:none;position:absolute;top:64px;left:0;right:0;padding:12px 20px;background:white;box-shadow:0 8px 12px #0002;align-items:stretch}nav.open{display:flex;flex-direction:column;gap:0}nav a{padding:8px 0}.menu{display:block}main{padding-top:20px!important}.hero h1{font-size:2.2rem;margin-bottom:0}.hero p{display:none}.card{padding:20px}.tool{display:flex;flex-direction:column;gap:12px;margin-top:16px}.tool>form,.tool>.output{width:100%}.tool .output{display:contents}.tool .summary{order:-1;padding:12px 16px;width:100%}.tool .summary h2{font-size:16px;margin:0}.tool .summary .big{font-size:2.5rem}.tool .result-status{margin:4px 0;font-size:16px}.tool .stats{margin-top:8px;gap:8px}.tool .empty-steps{display:none}.tool .fields{gap:12px}.tool .field label{min-height:43px;display:flex;align-items:end;margin-bottom:4px}.goal-toggle{margin:12px 0}.assumptions{margin:12px 0}.assumptions summary{padding:10px 0}.tool form>h2{display:none}.tool .actions{gap:8px}.tool .actions button{padding:8px 12px}.tool .result-note{order:2}.tool .chart{order:3;width:100%;margin-top:8px}.tool .error-summary{margin-top:0}.tool .stale{order:-2;width:100%;margin:0}.grid{grid-template-columns:1fr}.section{margin-top:32px}.article,.widget{margin-top:20px}.article h2{font-size:1.75rem}.tools-links,.compare-grid{grid-template-columns:1fr}.save-form{display:block}.save-form button{margin-top:12px;width:100%}.widget .fields{gap:12px}.widget .summary{margin-top:20px}.widget h2{font-size:1.25rem}.big{overflow-wrap:anywhere}.chart text{font-size:16px}.chart .table-scroll{font-size:16px}.chart svg{min-height:200px}footer .wrap{padding:0 20px}.desktop-only{display:none}.mobile-only{display:block}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button:hover,.link-card:hover{transform:none!important}}

@media(max-width:760px){.tool .summary .eyebrow{display:none}.tool .fields>.field:nth-child(-n+2) label{min-height:22px}.tool .summary .stats span{font-size:16px}}

.field{min-width:0}.card{min-width:0;overflow-wrap:break-word}label{overflow-wrap:anywhere}

.saved-actions button{max-width:100%;overflow-wrap:anywhere}

/* Three local tools: read inputs before results on mobile. */
.logo{font-size:20px;letter-spacing:-.7px;min-width:0}.logo span{overflow-wrap:anywhere}.head nav{gap:16px}.head{gap:16px}.field label{margin-top:0}.tool{grid-template-columns:1fr 1fr}.tool .summary .eyebrow{font-size:16px}.tool .summary h2{font-size:20px}.fields>.field,.fields>div{min-width:0}.field-error:empty{display:none}.check{display:flex;gap:12px;align-items:center;margin:12px 0;line-height:1.4}.check input{width:22px;min-height:24px;flex-shrink:0}.three-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.path{background:var(--soft);padding:20px;border-radius:12px}.path p{font-size:16px}.path strong{display:block;font-size:24px;color:var(--accent)}.schedule-year{border-top:1px solid var(--line);margin-top:12px}.schedule-year summary{font-weight:700}.chart{margin:24px 0}.chart svg{width:100%;height:auto}.chart .extra{fill:none;stroke:var(--ink);stroke-width:2;stroke-dasharray:2 4}.units{display:flex;gap:8px;margin-bottom:12px}.units button{min-width:72px}.units button[aria-pressed=true]{background:var(--accent);color:white}.method-pre{margin:12px 0}.heat-tool .fields{margin:12px 0}.risk-scale{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;font-size:16px;line-height:1.4}.risk-scale li{padding:16px 12px;border:2px solid var(--ink);background:repeating-linear-gradient(135deg,transparent 0px 10px,#d7e0e4 10px 11px)}.risk-scale li:nth-child(2){background-size:8px 8px}.risk-scale li:nth-child(3){background:repeating-linear-gradient(45deg,white 0px 6px,#d7e0e4 6px 8px)}.risk-scale li:nth-child(4){background:repeating-linear-gradient(0deg,white 0px 3px,#d7e0e4 3px 5px)}.risk-scale li.active{border:4px solid var(--accent);font-weight:700}.risk-scale li.active::before{content:'Current band →';display:block;color:var(--accent);background:white}.table-scroll button{padding:8px;min-width:60px}.table-scroll td:has(button){padding:0}.table-scroll button[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:-3px}.barcode-tool{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;margin-top:24px}.barcode-controls{grid-column:1;grid-row:1}.barcode-preview{grid-column:2;grid-row:1}.barcode-export{grid-column:2;grid-row:2}.barcode-settings{grid-column:1;grid-row:2}.barcode-controls .field+.field{margin-top:12px}.preview-frame{background:white;border:1px solid var(--line);padding:16px;min-height:160px;display:flex;align-items:center;justify-content:center}.barcode-scroll{overflow:auto;max-width:100%;width:100%}#barcode{display:block;max-width:100%;height:auto;margin:auto;fill:black}.barcode-scroll:focus #barcode{max-width:none}.barcode-export button{width:100%;margin-top:12px}#code-caption{font-size:16px;overflow-wrap:anywhere;margin-top:12px}#empty-preview{font-size:16px;text-align:center;padding:24px}.gs1{font-size:16px;line-height:1.45;margin:12px 0;border-left:3px solid var(--accent);padding-left:12px}textarea{font:inherit;font-size:16px;display:block;width:100%;padding:12px;border-radius:6px;border:1px solid #8796a0;resize:vertical;min-height:100px}.bulk-tool{margin-top:24px}.bulk-tool>.field{margin:16px 0}.bulk-tool .fields{margin-top:16px}.batch-row{display:grid;grid-template-columns:60px 1fr 1fr 2fr;gap:12px;padding:16px 0;border-top:1px solid var(--line);font-size:16px;overflow-wrap:anywhere}#bulk-preview,#bulk-download{margin-top:24px;border-top:1px solid var(--line);padding-top:24px}.barcode-tool input,.barcode-tool select,.bulk-tool select{border-radius:6px}.tool input,.tool select{border-radius:6px}.article p,.article li{max-width:68ch}.article pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px}.article a,footer a{overflow-wrap:anywhere}.stale{margin:0 0 12px}.tool .output{min-width:0}.tool .big{overflow-wrap:anywhere}.bulk-tool .preview-frame{max-width:700px}.print-inputs{font-size:16px}.trust h2{font-size:20px}.method-pre{font-size:16px}.chart text{font-size:16px}
@media(max-width:760px){.head{gap:8px}.logo{font-size:18px;letter-spacing:-.8px;line-height:1.15;max-width:calc(100% - 56px)}.logo svg{width:26px;height:26px}.head .menu{flex-shrink:0}h1{font-size:2.2rem}.tool{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.tool .output{display:block}.tool .summary{order:unset;padding:12px 16px}.tool .fields>.field label,.tool .fields>div .field label{min-height:43px}.tool .fields>.field:nth-child(2) label{min-height:43px}.tool form>h2{display:none}.tool .summary h2{font-size:16px}.tool .result-note{font-size:16px;margin:8px 0 0}.tool .summary .big{font-size:2.5rem}.recast-tool .summary .stats{margin-top:8px}.three-grid{grid-template-columns:1fr}.risk-scale{grid-template-columns:1fr 1fr}.barcode-tool{display:flex;flex-direction:column;gap:12px;margin-top:16px}.barcode-controls{order:0}.barcode-preview{order:1}.barcode-export{order:2}.barcode-settings{order:3}.barcode-export{display:grid;grid-template-columns:1fr;gap:0}.barcode-export button{margin-top:8px}.barcode-export #export-status:empty{display:none}.preview-frame{padding:8px;min-height:100px}#empty-preview{padding:12px}#code-caption{margin:4px 0}.barcode-controls .field+.field{margin-top:8px}.barcode-controls .hint{margin:4px 0}.barcode-controls .field-error{margin:4px 0}.barcode-settings .assumptions{margin:0 0 8px}.barcode-tool .preview-frame{max-height:180px;overflow:auto}.barcode-tool #barcode{max-height:145px;object-fit:contain}.batch-row{display:block;border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px 0}.batch-row span{display:block;margin-bottom:8px}.heat-tool .method-pre{line-height:1.4;margin:8px 0}.heat-tool .summary p{margin:4px 0;font-size:16px}.heat-tool .summary #result-method{display:none}.heat-tool .units{margin-bottom:8px}.heat-tool .fields{margin:8px 0}.tool .field label{margin-bottom:4px}.tool .actions{margin-top:8px}.bulk-tool>.field{margin:12px 0}}
@media print{body{background:white;color:black;font-size:12pt}header,footer,.hero,.save-form,#save-section,form,.article,.trust,.skip,.actions,.assumptions,button,nav,.risk-scale{display:none!important}main{padding:0!important;max-width:none!important}.wrap{padding:0}.card,.summary,.path{box-shadow:none;border:0;border-radius:0;background:white!important;padding:8px 0}.tool{display:block;margin:0}.section{margin:16px 0}.three-grid{grid-template-columns:repeat(3,1fr)}.big{color:black;font-size:24pt}.chart{break-inside:avoid}details[open] summary{display:block}.table-scroll{overflow:visible;border:0}table{font-size:10pt}th,td{padding:6px}.disclaimer{display:block!important;font-size:12pt}.result-note{display:block}.print-inputs{display:block}}

:root{--accent:#b45309;--hover:#92400e;--tint:#fff3e8}

.barcode-scroll:has(svg[hidden]){display:none}.preview-frame:has(svg[hidden]){min-height:100px}.barcode-preview #code-caption{line-height:1.4}.barcode-controls .field-error{line-height:1.4}@media(max-width:760px){.recast-tool .fields>.field label{min-height:43px!important}.barcode-tool #code-caption{font-size:16px}.barcode-tool #barcode{max-height:120px}.barcode-controls .hint{line-height:1.4}}

.hero h1{overflow-wrap:anywhere}

/* Dense reference charts keep readable 16px labels inside their own scroll region. */
#matrix table{min-width:850px;table-layout:fixed}
#matrix th:first-child{width:140px}
#matrix th,#matrix td{text-align:center;padding:10px 4px}
#matrix th[scope=row]{text-align:left;white-space:nowrap}
#matrix td:has(button){padding:0}
#matrix button{width:100%;min-width:60px;border-radius:6px;font-variant-numeric:tabular-nums}
#matrix button[aria-pressed=true]::after{content:'Selected';display:block;font-size:16px;font-weight:700}
.matrix-unavailable{display:block;padding:12px 4px}
#matrix-answer{font-size:16px;font-weight:700;min-height:1.65em}
.matrix-alternative{margin-top:20px;border-top:1px solid var(--line)}
.matrix-alternative summary{font-weight:700}
.matrix-alternative .field{max-width:360px;margin:12px 0}
#matrix-row-values{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#matrix-row-values li{min-width:0}
#matrix-row-values button{width:100%;text-align:left}
#matrix-row-values button[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:-3px}
#matrix-row-values button[aria-pressed=true]::after{content:' · Selected';font-weight:700}
/* Short guides: centered reading width, comparison cards and a labelled example. */
.article.guide{max-width:calc(68ch + 56px)}
.guide-cta{display:inline-flex;align-items:center;min-height:48px;border-radius:12px;padding:10px 16px;background:var(--accent);color:white;font-size:16px;font-weight:700;text-decoration:none}
.guide-cta:hover{background:var(--hover)}
.guide-figure{margin:0 0 20px}
.guide-flow{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.guide-flow>div{flex:1;min-width:140px;padding:16px;background:var(--tint);border:1px solid var(--line);border-radius:12px}
.guide-flow strong,.guide-flow div span{display:block;font-size:16px}
.guide-flow div span{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}
.guide-figure figcaption{font-size:16px;max-width:68ch}
.measure-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.measure-cards>div{padding:16px;background:var(--soft);border-radius:12px;border:1px solid var(--line)}
.measure-cards p,.measure-cards a{font-size:16px}
.measure-cards a{display:inline-block;min-height:44px}
@media(max-width:760px){#matrix-row-values,.measure-cards{grid-template-columns:1fr}.guide-flow{flex-direction:column;align-items:stretch}.guide-flow>span{text-align:center}.article.guide{max-width:100%}}
