:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#183d32;background:#f4f5ef;font-synthesis:none;--green:#173e32;--lime:#dcebab;--muted:#66776b;--line:#dce3d8}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,input,select,textarea{font:inherit}button,.upload{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.upload:focus-visible{outline:3px solid #91b853;outline-offset:3px}header{max-width:1360px;margin:auto;padding:25px 5vw;display:flex;align-items:center;justify-content:space-between}.brand{text-decoration:none;color:var(--green);font-size:36px;display:flex;align-items:center;gap:12px}.brand>span{font-size:15px;font-weight:800;letter-spacing:2px}.brand small{display:block;font-size:8px;font-weight:500;letter-spacing:1.4px;margin-top:5px}.local-badge{font-size:11px;border:1px solid var(--line);border-radius:30px;padding:9px 12px;color:#537247}nav{border-block:1px solid var(--line);display:flex;gap:25px;padding:0 max(5vw,calc((100vw - 1220px)/2));background:#fafbf7}.tab{padding:17px 5px;border:0;border-bottom:2px solid transparent;background:none;font-size:12px;color:var(--muted);white-space:nowrap}.tab.active{border-bottom-color:var(--green);color:var(--green);font-weight:700}.tab span{background:#e5ebdf;border-radius:9px;padding:1px 6px;margin-left:4px}main{max-width:1220px;margin:auto;padding:45px 30px}.page-heading{display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:10px;font-weight:750;letter-spacing:2px;color:#78885d}h1{font-size:clamp(36px,5vw,60px);font-weight:500;line-height:1.1;letter-spacing:-2px;margin:16px 0}h1 em{font:italic 1.04em Georgia,serif;color:#78934f}p{font-size:13px;line-height:1.75;color:var(--muted)}.page-heading p{max-width:470px;font-size:14px}.method-pill{display:flex;gap:15px;align-items:center;font:italic 64px Georgia,serif;color:#8ba665}.method-pill span{font:10px/1.7 system-ui;letter-spacing:1px}.boundary{border:1px solid #d5dfc1;background:#eaf0dc;border-radius:10px;padding:14px 18px;font-size:12px;line-height:1.8;margin:25px 0}.boundary b{margin-right:10px}.lab-grid{display:grid;grid-template-columns:300px 1fr;gap:22px;align-items:start}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:25px}h2{font-size:19px;font-weight:600;letter-spacing:-.4px;margin:8px 0 24px}h3{font-size:14px}.setup>label{display:block;font-size:11px;font-weight:650;margin:17px 0}input:not([type=checkbox]),select,textarea{display:block;border:1px solid var(--line);background:#fafbf7;border-radius:7px;padding:11px;width:100%;font-size:12px;color:#274b3c;margin-top:7px}textarea{resize:vertical}.preflight{border-top:1px solid var(--line);margin-top:24px;padding-top:8px}.preflight label{display:flex;align-items:start;font-size:12px;line-height:1.6;margin:14px 0;gap:9px;color:#526653}.preflight input{accent-color:var(--green);margin-top:3px;width:16px;height:16px;flex-shrink:0}.hint{font-size:11px;line-height:1.7}.panel-heading{display:flex;justify-content:space-between;align-items:start;gap:10px}.panel-heading h2{margin-bottom:20px}.status{background:#edf2e7;border-radius:20px;font-size:10px;padding:7px 10px;white-space:nowrap}.camera{position:relative;height:350px;overflow:hidden;background:radial-gradient(ellipse at center,#365a44,#142d25);border-radius:10px;display:grid;place-items:center;color:#e8efda}.camera video,.camera>img,.camera>canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}#placeholder{text-align:center;padding:20px}#placeholder>span{font-size:60px;color:#b4cb83}#placeholder p{color:#b8c9b7;font-size:12px}.regions{position:absolute;inset:0;touch-action:manipulation}.roi{position:absolute;background:none;border:2px solid #e1f0ac;border-radius:9px;padding:0;box-shadow:0 0 0 1px #0003;touch-action:none}.roi span{position:absolute;top:-21px;left:0;font-size:8px;font-weight:700;letter-spacing:1px;background:#dcebab;color:#19352b;padding:3px 5px;border-radius:3px;white-space:nowrap;pointer-events:none}.roi.sample{border-color:#f5d481}.roi.sample span{background:#f5d481}.roi.white{border-color:#fff}.roi.white span{background:#fff}.roi.selected{border-style:dashed;box-shadow:0 0 0 3px #fff5}.roi:focus-visible{outline-color:white}#demoBadge{position:absolute;bottom:10px;background:#233b2be6;padding:6px 10px;border-radius:6px;font-size:9px;letter-spacing:1px}.camera-actions{display:flex;gap:8px;margin-top:14px}button,.upload{border:1px solid var(--line);background:#fff;border-radius:7px;font-size:11px;color:var(--green);padding:11px 13px;display:inline-flex;justify-content:center;align-items:center;gap:6px}.primary{background:var(--lime);border-color:var(--lime);font-weight:700;flex:1}.upload{display:flex}input[type=file]{display:none!important}.placement{display:flex;align-items:center;gap:6px;margin-top:18px;flex-wrap:wrap}.placement>span{font-size:10px;color:var(--muted);margin-right:5px}.placement button{font-size:10px;padding:6px 9px}.placement button.active{background:var(--green);color:white;border-color:var(--green)}.quality-strip{display:flex;gap:10px;align-items:center;background:#f3f5ed;padding:10px 12px;border-radius:8px;margin:16px 0}.quality-strip>span{font-size:19px}.quality-strip p{margin:0;font-size:11px}.quality-strip.bad{background:#fff0db;color:#825526}.analyze{display:flex;width:100%;background:var(--green);color:#f0f7dc;font-weight:600;font-size:13px;padding:16px;justify-content:space-between}#message{font-size:11px;min-height:20px}progress{width:100%;accent-color:var(--green);margin-top:10px}.text-button{border:0;background:none;font-size:11px;padding:6px 0;color:#647b48}.bottom-note{display:flex;align-items:start;gap:25px;padding:30px 0}.bottom-note>span{font-size:11px;white-space:nowrap;padding-top:3px}.bottom-note p{max-width:730px;margin:0;font-size:12px}.result{margin-top:25px;border-top:4px solid #a3be70}.result-heading{display:flex;justify-content:space-between;gap:15px;align-items:start}.result h2{margin-bottom:8px}.demo-alert{background:#fff0d7;padding:12px;border-radius:6px;color:#7c5827;font-size:12px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:25px 0}.metric{background:#f3f5ed;padding:20px;border-radius:9px}.metric b{font-size:32px;font-weight:500;display:block}.metric span,.metric small{font-size:11px;color:var(--muted);display:block;margin-top:6px}.swatches{display:flex;gap:18px;flex-wrap:wrap}.swatch{display:flex;gap:10px;align-items:center;font-size:12px;word-break:break-word}.swatch i{display:block;width:45px;height:45px;border-radius:8px;border:1px solid #0001;flex-shrink:0}.swatch small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.channel-chart{margin:25px 0;padding:20px;background:#fafbf7;border-radius:10px}.channel-row{display:grid;grid-template-columns:35px 1fr 60px;gap:15px;align-items:center;font-size:11px;margin:10px 0}.channel-track{position:relative;height:10px;background:linear-gradient(90deg,#e3e7dc 49.5%,#829473 49.5%,#829473 50.5%,#e3e7dc 50.5%);border-radius:10px}.channel-dot{position:absolute;top:-2px;width:14px;height:14px;background:#688e49;border:2px solid white;border-radius:50%;transform:translateX(-50%)}.actions,.history-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 0}.history-actions{margin-bottom:25px}.danger{color:#965243}.empty{padding:70px 25px;text-align:center;border:1px dashed #bbc9b0;border-radius:15px}.history-item{display:flex;gap:20px;justify-content:space-between;align-items:center;margin:12px 0}.history-item h3{margin:0}.history-item p{margin:5px 0;font-size:11px}.history-item>div:first-child{min-width:0;overflow-wrap:anywhere}.history-item .actions{margin:0}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:25px 0}.guide-grid article>span{font:italic 30px Georgia;color:#93aa71}.guide-grid h2{margin-bottom:12px}.evidence{background:#eaf0df;margin:20px 0}.evidence a{color:var(--green);font-size:12px}details{margin-top:20px}summary{cursor:pointer;font-size:14px;font-weight:600}footer{max-width:1160px;margin:0 auto;padding:25px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;color:#78866e}footer b{background:#e1e9d5;padding:3px 6px;margin-left:6px;font-weight:400}@media(max-width:850px){.lab-grid{grid-template-columns:1fr}.setup{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.setup>.eyebrow,.setup>h2,.preflight,.setup>.hint{grid-column:1/-1}.setup>h2{margin-bottom:0}.setup>label{margin:10px 0}.preflight{margin-top:10px}.preflight label{margin:10px 0}.camera{height:380px}.method-pill{display:none}footer{margin:0 30px}}@media(max-width:500px){header{padding:20px}.brand{font-size:29px}.brand>span{font-size:12px}.brand small{font-size:6px}.local-badge{font-size:8px;padding:7px}nav{gap:15px;padding:0 20px}.tab{font-size:11px;padding-block:14px}main{padding:30px 16px}.page-heading p{font-size:13px}h1{font-size:40px}.boundary{font-size:11px}.card{padding:18px}.camera{height:320px}.camera-actions{flex-wrap:wrap}.camera-actions .primary,.camera-actions .upload{flex:1;min-width:40%}.camera-actions #stop,.camera-actions #torch{flex:1}.panel-heading h2{font-size:17px}.status{font-size:9px}.setup>label{grid-column:1/-1}.metrics{gap:7px}.metric{padding:12px 8px}.metric b{font-size:24px}.metric span,.metric small{font-size:9px}.result-heading{flex-direction:column}.history-item{align-items:start;flex-direction:column}.guide-grid{grid-template-columns:1fr}.bottom-note{gap:14px;flex-direction:column}footer{margin:0 16px;gap:15px;font-size:8px}.actions button{flex:1}.channel-chart{padding:12px}}
@media print{header,nav,footer,.lab-grid,.page-heading,.boundary,.bottom-note,#view-history,#view-guide,.actions,.text-button{display:none!important}main{padding:0;max-width:none}body{background:white}.result{border:1px solid #ccc;box-shadow:none}.card{break-inside:avoid}.metric{background:#eee!important;print-color-adjust:exact}.swatch i{print-color-adjust:exact}}
.brand-mark{display:block;width:46px;height:46px;flex-shrink:0}.footer-brand{display:inline-flex;align-items:center;gap:7px}footer{align-items:center}@media(max-width:500px){.brand-mark{width:38px;height:38px}.brand{gap:9px}}
