@font-face{font-family:Source Sans Pro;font-style:normal;font-display:swap;font-weight:400;src:url(./source-sans-pro-latin-400-normal-tpsLXCSJ.woff2) format("woff2"),url(./source-sans-pro-latin-400-normal-R7DZS9ko.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:normal;font-display:swap;font-weight:600;src:url(./source-sans-pro-latin-600-normal-BM2CBz6W.woff2) format("woff2"),url(./source-sans-pro-latin-600-normal-CjV2-MXP.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:normal;font-display:swap;font-weight:700;src:url(./source-sans-pro-latin-700-normal-DL7J4422.woff2) format("woff2"),url(./source-sans-pro-latin-700-normal-BNdTgDH_.woff) format("woff")}:root{--orange: #f39519;--orange-dark: #d97f0a;--ink: #252122;--text: #5d5d5d;--muted: #858484;--line: #dfdfdf;--soft: #c5c4c4;--bg: #ffffff;--bg-soft: #f3f3f3;--bg-softer: #f7f7f7;--danger: #c4372c;font-family:Source Sans Pro,Helvetica Neue,Arial,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%}body{display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:24px;padding:10px 20px;border-bottom:1px solid var(--line);background:var(--bg)}.brand{display:flex;flex-direction:column;line-height:1}.wordmark{color:var(--orange);font-weight:600;letter-spacing:.08em;font-size:20px}.wordmark b{font-weight:700}.wave{height:6px;margin-top:3px;background:radial-gradient(circle at 3px -1px,transparent 3px,var(--orange) 3.5px,var(--orange) 4.5px,transparent 5px) 0 0 / 8px 6px repeat-x}.topbar h1{margin:0;font-size:20px;font-weight:600;color:var(--ink)}.status{margin-left:auto;font-size:13px;color:var(--muted)}.status.ok:before{content:"● ";color:#3a9d5d}.status.err{color:var(--danger)}.layout{flex:1;display:grid;grid-template-columns:360px 1fr;min-height:0}.panel{overflow-y:auto;padding:16px 18px 28px;border-right:1px solid var(--line);background:var(--bg)}.panel section{padding:12px 0 16px;border-bottom:1px solid var(--line)}.panel h2{margin:0 0 10px;font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);font-weight:700;display:flex;align-items:center;gap:8px}.num{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--orange);color:#fff;font-size:13px}.drop{display:flex;flex-direction:column;align-items:center;gap:2px;padding:16px;border:2px dashed var(--soft);border-radius:8px;cursor:pointer;background:var(--bg-softer);text-align:center;transition:border-color .15s,background .15s}.drop:hover,.drop.over{border-color:var(--orange);background:#fff7ec}.drop strong{color:var(--orange)}.drop span{font-size:13px;color:var(--muted)}.hint{font-size:13px;color:var(--muted);margin:8px 0}.warn{font-size:13px;color:var(--orange-dark);flex-basis:100%}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}.lbl{width:84px;font-size:14px;color:var(--ink)}.row input[type=range]{flex:1;accent-color:var(--orange)}.row output{width:54px;text-align:right;font-variant-numeric:tabular-nums;font-size:14px}.unit{font-size:13px;color:var(--muted)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.grid label{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--ink);position:relative}.grid label .unit{position:absolute;right:8px;bottom:7px;pointer-events:none}.grid label.check{grid-column:1 / -1;flex-direction:row;align-items:center;color:var(--text)}input[type=number],select{font:inherit;font-size:14px;padding:5px 8px;border:1px solid var(--soft);border-radius:5px;color:var(--ink);background:#fff;width:100%}.row input[type=number]{width:90px}input:focus,select:focus{outline:2px solid var(--orange);outline-offset:-1px;border-color:transparent}input[type=checkbox]{accent-color:var(--orange)}details{margin-top:10px}summary{cursor:pointer;font-size:14px;color:var(--muted);margin-bottom:8px}button{font:inherit;cursor:pointer;border-radius:5px}button.primary{width:100%;margin-top:16px;padding:11px;border:0;background:var(--orange);color:#fff;font-weight:700;font-size:16px;letter-spacing:.02em}button.primary:hover:not(:disabled){background:var(--orange-dark)}button.primary:disabled{background:var(--soft);cursor:default}button.ghost{padding:4px 10px;border:1px solid var(--soft);background:#fff;color:var(--ink);font-size:13px}button.ghost:hover{border-color:var(--orange);color:var(--orange-dark)}.progress{margin-top:12px;font-size:13px;color:var(--muted)}.bar{height:6px;background:var(--bg-soft);border-radius:3px;overflow:hidden;margin-bottom:6px}.bar span{display:block;height:100%;width:0;background:var(--orange);transition:width .3s}.stats{list-style:none;padding:0;margin:0 0 8px;font-size:14px}.stats li{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px dotted var(--line)}.stats b{color:var(--ink)}.stats .bad b{color:var(--danger)}.files{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.viewport{position:relative;background:var(--bg-soft);min-height:0}.viewport canvas{display:block;width:100%;height:100%}.viewport.over{outline:3px dashed var(--orange);outline-offset:-12px}.empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);pointer-events:none}.empty button{pointer-events:auto}.legend{position:absolute;left:14px;bottom:14px;background:#ffffffeb;border-radius:6px;padding:8px 12px;font-size:13px;display:flex;gap:14px;box-shadow:0 1px 4px #00000014}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}@media(max-width:800px){.layout{grid-template-columns:1fr;grid-template-rows:50vh auto}.viewport{order:-1}.panel{border-right:0}}
