:root { color-scheme: light; font-family: system-ui, sans-serif; color: #17242b; background: #f7f9f8; }
* { box-sizing: border-box; }
body { margin: 0; line-height: 1.6; }
a { color: #14615a; }
.site-header, .site-footer { padding: 1rem max(1rem, calc((100vw - 70rem) / 2)); background: #e9f1ee; }
.site-header a { font-weight: 700; text-decoration: none; }
main { width: min(70rem, calc(100% - 2rem)); margin: 2rem auto 4rem; }
.tool-page { max-width: 48rem; }
h1 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.2; }
h2 { margin-top: 2.5rem; font-size: 1.3rem; }
.lead { font-size: 1.15rem; }
.tool-panel { padding: 1.5rem; background: white; border: 1px solid #cbd9d5; border-radius: .75rem; overflow-wrap: anywhere; }
.tool-panel h2 { margin-top: 0; }
button, input, select { font: inherit; }
button { padding: .65rem 1rem; border: 0; border-radius: .4rem; background: #14615a; color: white; cursor: pointer; }
button:disabled { opacity: .5; cursor: not-allowed; }
:focus-visible { outline: 3px solid #ec9b30; outline-offset: 2px; }
.field { display: grid; gap: .35rem; margin: 1rem 0; min-width: 0; }
.field label { font-weight: 650; }
.field input, .field select { max-width: 100%; padding: .45rem; }
.field input[type="file"] { width: 100%; min-width: 0; }
#status { min-height: 1.5rem; font-weight: 650; }
#issues { color: #9c2727; }
#download { display: inline-block; margin: .25rem 0 1rem; padding: .55rem .9rem; border: 1px solid currentColor; border-radius: .4rem; }
#download[hidden] { display: none; }
.notice { padding: .8rem; background: #fff3dd; border-left: 4px solid #bc7d1c; }
