:root{font-family:system-ui,sans-serif;color:#173e35;background:#f6f4ed;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header,main,footer{max-width:900px;margin:auto;padding:24px;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}header{padding-top:max(40px,env(safe-area-inset-top))}h1{font-family:Georgia,serif;font-size:clamp(2.6rem,7vw,4.4rem);line-height:1.05;margin:20px 0}h2{font-size:1.35rem}p{line-height:1.6}.eyebrow{font-size:.75rem;letter-spacing:.12em}section{background:#fff;border:1px solid #d9dfd6;border-radius:18px;padding:22px;margin-bottom:22px}button,.file{display:inline-block;border:0;border-radius:8px;padding:13px 16px;background:#173e35;color:#fff;font:inherit;margin:6px 6px 6px 0;cursor:pointer;min-height:44px}button:hover,.file:hover{background:#28594b}button:focus-visible,a:focus-visible,select:focus-visible,.file:focus-within{outline:3px solid #b1761b;outline-offset:3px}.file{position:relative;overflow:hidden}.file input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}a{color:#28594b;display:inline-block;margin:8px}select{font:inherit;padding:10px;max-width:100%;border:1px solid #8b9e93;border-radius:6px;background:#fff;color:#173e35}article{border-top:1px solid #d9dfd6;padding:16px 0}article h3{overflow-wrap:anywhere}article label{display:block;padding:12px 0}input[type=checkbox]{width:20px;height:20px;vertical-align:middle}.heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}#dashboard{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metric{background:#edf2ec;padding:16px;border-radius:10px}.metric span{display:block;font-size:.85rem}.metric strong{display:block;font-size:1.4rem;padding-top:10px;overflow-wrap:anywhere}#message:not(:empty){background:#e8edda;border-left:4px solid #617d3c;padding:15px}#offline{font-size:.9rem}footer{padding-bottom:max(30px,env(safe-area-inset-bottom));font-size:.85rem}[hidden]{display:none!important}@media(max-width:550px){#dashboard{grid-template-columns:1fr}section{padding:16px}main{padding-top:0}article select{width:100%}}
