:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#203333;background:#f4f6f5;font-synthesis:none;--accent:#246e61;--border:#dce4e0;--muted:#6c7e79;--sidebar:304px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,select{cursor:pointer}button{border:0}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #9bbaa6;outline-offset:3px}input,select{min-width:0;border:1px solid #cedbd4;border-radius:6px;background:#fff;color:#223b33;padding:8px 10px;font-size:12px}select{width:100%}input[type=number]{width:100%;font-variant-numeric:tabular-nums}label{display:block;font-size:12px;font-weight:550;line-height:1.5}label>select,label>input{display:block;margin-top:5px}label small{font-size:10px;color:var(--muted);font-weight:400}p{line-height:1.6}h1,h2,h3,p{margin:0}.app-header{height:82px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:#fff}.brand{display:flex;gap:12px;align-items:center}.brand svg{width:37px;height:37px;fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round}.brand h1{font-size:21px;font-weight:650;letter-spacing:-.6px}.brand h1 span{font-size:9px;letter-spacing:1px;font-weight:650;color:#668279;background:#eaf1ed;padding:4px 6px;vertical-align:middle;border-radius:4px;margin-left:7px}.brand p{font-size:11px;color:var(--muted);margin-top:3px}.header-right{display:flex;align-items:center;gap:22px}.local-badge{font-size:11px;color:#506d5f;display:flex;align-items:center;gap:7px}.local-badge i{width:6px;height:6px;background:#5c9579;border-radius:50%}.quiet{background:transparent;color:#52695f;padding:8px;font-size:12px;border-radius:6px}.quiet:hover{background:#edf2ee}.workspace{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}.sidebar{background:#fcfdfc;border-right:1px solid var(--border);padding:4px 20px 22px;align-self:start}.control-section{padding:20px 0;border-bottom:1px solid var(--border)}.section-heading{display:flex;align-items:center;gap:10px;margin-bottom:16px}.section-heading>span{font-size:10px;color:#88a094;letter-spacing:1px;font-variant-numeric:tabular-nums}.section-heading h2{font-size:14px;font-weight:650}.file-drop{border:1px dashed #9fb8a9;border-radius:9px;background:#f3f7f3;display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 10px;cursor:pointer;position:relative}.file-drop:hover,.file-drop.dragover{background:#e7f1e8;border-color:#306e56}.file-drop svg{width:22px;height:22px;fill:none;stroke:#658672;stroke-width:1.4;margin-bottom:5px}.file-drop strong{font-size:12px}.file-drop span{font-size:11px;color:#7a8f80;font-weight:400}.file-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}.text-button{font-size:11px;background:transparent;color:var(--accent);padding:7px 0;text-align:left;text-decoration:underline;text-underline-offset:3px}.image-info{padding:12px 0 0;display:flex;flex-direction:column;gap:4px;font-size:11px}.image-info strong{overflow-wrap:anywhere;font-weight:600}.image-info span{color:var(--muted)}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:13px}.crop-controls{gap:6px}.hint{font-size:10.5px;color:var(--muted);line-height:1.6;margin-top:9px}.inline-field{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:12px}.inline-field input{width:77px;flex-shrink:0;margin:0}.inline-field small{margin-left:auto}.advanced{margin-top:16px;font-size:12px}.advanced summary{cursor:pointer;color:#597267;font-size:11px}.run-area{padding-top:20px}.primary{background:var(--accent);color:#fff;border-radius:7px;padding:12px 14px;font-size:12px;font-weight:550;box-shadow:0 2px 3px #17413112;display:flex;align-items:center;justify-content:space-between;gap:16px}.primary:hover:not(:disabled){background:#19594e}.run-area .primary,.run-area .secondary{width:100%}.secondary{border:1px solid #ccd9d2;background:#fff;color:#39564b;border-radius:6px;padding:8px 12px;font-size:11px;font-weight:550}.secondary:hover:not(:disabled){background:#edf3ee}.run-area .secondary{margin-top:8px}main{min-width:0;padding:26px 28px 16px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.eyebrow{color:#82948a;font-size:9px;letter-spacing:1.8px;font-weight:650;margin-bottom:5px}.toolbar h2{font-size:23px;font-weight:550;letter-spacing:-.6px;overflow-wrap:anywhere}.view-actions{display:flex;align-items:center;gap:9px;flex-shrink:0}.linked{font-size:10px;color:#789086;margin-right:5px}.status{display:flex;align-items:center;gap:8px;font-size:11px;color:#677e72;padding:11px 12px;background:#eaf0eb;border:1px solid #dde7df;border-radius:6px;margin-bottom:17px;min-height:37px}.status>span:first-child{width:5px;height:5px;background:#7f9f8a;border-radius:50%;flex-shrink:0}.status.busy>span:first-child{background:#2f8573;animation:pulse 1.2s infinite}.status #elapsed{margin-left:auto;white-space:nowrap;font-variant-numeric:tabular-nums}.status.stale{background:#faf3e3;border-color:#ecdfbd;color:#806b36}.error{font-size:12px;color:#943c36;background:#fff0ed;border:1px solid #e6bbb3;border-radius:6px;padding:12px;margin-bottom:14px;white-space:pre-wrap;overflow-wrap:anywhere}.view-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.image-panel{background:#fff;border:1px solid #d9e2dc;border-radius:8px;overflow:hidden;min-width:0;box-shadow:0 2px 3px #253a3010}.panel-header{height:40px;display:flex;align-items:center;gap:8px;padding:0 12px;min-width:0}.panel-number{font-size:10px;color:#8b9c92;font-weight:600}.panel-header h3{font-size:11px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-tag{font-size:7px;letter-spacing:.9px;color:#94a69a;margin-left:auto}.panel-header select{font-size:11px;padding:3px;border:0;background:transparent}.canvas-wrap{height:clamp(180px,21vw,310px);background:#101b20;position:relative;overflow:hidden}.canvas-wrap canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}.canvas-wrap canvas:active{cursor:grabbing}.cropping [data-view=source] canvas{cursor:crosshair}.empty-message{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#74868a;padding:18px;text-align:center;pointer-events:none;font-size:11px}.empty-message strong{font-size:13px;color:#a1b5b0;font-weight:500}.empty-message svg{width:74px;height:58px;stroke:#385550;stroke-width:1.2;fill:none;margin-bottom:7px}.panel-footer{padding:9px 11px;min-height:50px;display:flex;flex-direction:column;gap:5px;color:#7c8d84;font-size:9px;line-height:1.4}.map-range{font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:7px;color:#526b61}.color-strip{display:inline-block;width:65px;height:4px;border-radius:3px}.view-caption{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#87998e;padding:12px 1px}.results-section{margin-top:11px;padding:20px;background:#fff;border:1px solid var(--border);border-radius:8px}.results-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.results-heading h2{font-size:14px;font-weight:600}.results-heading span{font-size:10px;color:#819789}.metrics-cards{display:grid;grid-template-columns:repeat(4,1fr)}.metrics-cards>div{border-right:1px solid #e2e9e3;padding:0 20px}.metrics-cards>div:first-child{padding-left:0}.metrics-cards>div:last-child{border:0}.metrics-cards span{display:block;font-size:10px;color:#7b8e81;margin-bottom:8px}.metrics-cards strong{font-size:26px;letter-spacing:-.6px;font-weight:500;color:#2d574a}.metrics-cards strong small{font-size:12px;font-weight:400;letter-spacing:0}.measurement-note{margin-top:15px;font-size:10px;color:#8a988e}.measurement-note button{font-size:10px;margin-left:5px}.page-footer{display:flex;justify-content:space-between;font-size:9px;color:#9aaba0;padding-top:22px;letter-spacing:.1px}.table-scroll{max-height:240px;overflow:auto;margin-top:15px}table{width:100%;border-collapse:collapse;font-size:11px}td,th{text-align:left;padding:6px 10px;border-bottom:1px solid #e1e8e2}td:last-child{text-align:right;font-variant-numeric:tabular-nums}#all-metrics{margin-top:10px;font-size:11px;color:#526a5c}#all-metrics summary{cursor:pointer}dialog{border:1px solid var(--border);border-radius:12px;max-width:650px;width:calc(100% - 40px);max-height:85vh;padding:26px;color:#304a3f;box-shadow:0 20px 80px #132d3440}dialog::backdrop{background:#162d3277;backdrop-filter:blur(2px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px}.dialog-heading h2{font-size:19px;font-weight:600}dialog h3{font-size:13px;margin-top:20px;margin-bottom:8px}dialog p,dialog li{font-size:12px;line-height:1.75}dialog li{margin:8px 0}dialog p+p{margin-top:12px}dialog a{color:var(--accent)}.export-options{display:flex;flex-direction:column;gap:11px;margin-top:20px}.export-options p{font-size:11px;color:#7a8c80;margin-bottom:5px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@keyframes pulse{50%{opacity:.25}}@media(min-width:1700px){:root{--sidebar:320px}main{padding:30px 40px}.sidebar{padding-left:25px;padding-right:25px}.canvas-wrap{height:320px}}@media(max-width:1200px){.view-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.canvas-wrap{height:230px}.linked{display:none}.toolbar h2{font-size:20px}.header-right{gap:10px}.local-badge{font-size:10px}main{padding:22px 20px}}@media(max-width:800px){:root{--sidebar:250px}.sidebar{padding:0 14px 20px}.app-header{padding:0 18px}.brand h1{font-size:18px}.local-badge{display:none}.toolbar{align-items:flex-start;flex-direction:column}.view-actions{width:100%;justify-content:flex-end}.canvas-wrap{height:190px}.metrics-cards{grid-template-columns:repeat(2,1fr);gap:18px}.metrics-cards>div{padding:0;border:0}.panel-tag{display:none}.view-caption{flex-direction:column;gap:4px}}@media(max-width:600px){.workspace{display:flex;flex-direction:column}.sidebar{width:100%;border-right:0;border-bottom:1px solid var(--border);padding:0 20px 20px}.sidebar .control-section{padding:16px 0}.view-grid{gap:10px}.canvas-wrap{height:180px}main{padding:20px 12px}.brand p{display:none}.app-header{height:66px}.brand h1 span{font-size:7px;margin-left:3px}.header-right .quiet{font-size:10px}.brand svg{width:29px}.page-footer{gap:8px;font-size:8px}.toolbar h2{font-size:20px}}
