[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button{cursor:pointer;border:0}button:disabled{opacity:.42;cursor:not-allowed;transform:none!important}.browser-section{padding-bottom:30px}.browser-app{border:1px solid var(--line);border-radius:5px;background:#faf9f4;overflow:hidden}.app-topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border-bottom:1px solid var(--line);gap:16px}.app-topbar>div{display:flex;align-items:center;gap:18px}.app-topbar strong{font-size:14px;font-weight:600}.local-badge{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#4b6851}.local-badge span{background:#648664;width:5px;height:5px;border-radius:50%}.file-drop{display:flex;gap:25px;align-items:center;padding:34px 28px;background:#f1f2e9;border-bottom:1px solid var(--line);transition:background .2s}.file-drop.dragover{background:#e6ecd9;outline:2px dashed var(--orange);outline-offset:-8px}.upload-icon{font-size:42px;color:var(--orange);padding:0 13px}.file-drop h3{font-size:18px;margin-bottom:7px}.file-drop p{font-size:12px;color:var(--muted);line-height:1.7;margin-bottom:17px}.file-buttons{display:flex;gap:12px;flex-wrap:wrap}.file-buttons .button{font-size:12px;padding:12px 16px}.secondary{background:#faf9f4;border:1px solid #c6cdbd;color:var(--ink)}.secondary:hover{background:#e3e7db}.app-statusbar{display:flex;align-items:center;gap:13px;padding:16px 25px;border-bottom:1px solid var(--line)}.app-statusbar p{margin:0;margin-right:auto;font-size:11px;color:var(--muted);line-height:1.8}.small-button{background:transparent;border:1px solid #c5cebd;padding:6px 10px;font-size:10px;white-space:nowrap;border-radius:3px;color:var(--ink)}.small-button:hover{background:var(--soft)}.app-alert{font-size:12px;color:#81280f;background:#fae8df;border:1px solid #e7b99f;padding:13px 18px;margin:18px 24px;line-height:1.7;overflow-wrap:anywhere}.app-workspace{display:grid;grid-template-columns:245px 1fr}.app-settings{padding:24px;border-right:1px solid var(--line);background:#f7f6ee}.app-settings h3{font-size:14px;margin-bottom:24px}.app-settings>label{font-size:11px;margin-bottom:8px}select{font:12px "Segoe UI",Arial,sans-serif;border:1px solid #c2c9bb;width:100%;padding:10px 6px;background:#fffefa;border-radius:3px;color:var(--ink)}.setting-help{font-size:10px;line-height:1.7;color:var(--muted);margin:10px 0 20px}.app-settings fieldset{padding:0;border:0;margin:23px 0 0;min-width:0}.app-settings legend{font-size:11px;font-weight:600;margin-bottom:11px}.checkbox-label{display:flex;align-items:flex-start;gap:8px;font-size:11px;font-weight:400;line-height:1.6;overflow-wrap:anywhere}.checkbox-label input,.results-table input[type=checkbox]{appearance:auto;width:15px;height:15px;min-width:15px;margin:2px 0 0;padding:0;accent-color:var(--orange)}#layer-list{max-height:230px;overflow:auto;display:grid;gap:7px}.app-settings .button{width:100%;font-size:11px;padding:13px 15px}.app-results{min-width:0;padding:24px}.result-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:17px}.result-title h3{font-size:14px;margin:0}.result-title>span{font-size:10px;color:var(--muted)}.results-scroll{overflow:auto;max-height:370px;min-height:160px;border:1px solid var(--line);border-radius:3px}.results-table{border-collapse:collapse;width:100%;font-size:11px}.results-table th{font-size:10px;font-weight:600;background:#ecefe5;color:var(--ink);position:sticky;top:0;text-align:left;white-space:nowrap;z-index:1}.results-table th,.results-table td{padding:12px 10px;border-bottom:1px solid var(--line)}.results-table th:first-child,.results-table td:first-child{width:32px;padding-left:12px}.results-table tbody tr:last-child td{border:0}.results-table tr:hover td{background:#f0f3e7}.results-table .length-cell{text-align:right;font:12px Consolas,monospace;white-space:nowrap}.results-table th:nth-child(3){text-align:right}.file-name{min-width:155px;max-width:310px;overflow-wrap:anywhere}.file-name>span{display:block;line-height:1.6}.file-name small{display:block;font-size:9px;color:var(--muted);line-height:1.6;margin-top:3px;max-width:280px}.result-badge{font-size:9px;padding:4px 7px;border-radius:2px;white-space:nowrap}.result-badge.good{background:#dce9d8;color:#325838}.result-badge.bad{background:#f6e0d7;color:#91331b}.result-badge.waiting{background:#e6e8e0;color:#667168}.preview-button{font-size:10px;background:transparent;color:var(--orange);padding:6px 0}.empty-results{color:var(--muted);text-align:center;font-size:12px;line-height:1.8;padding:45px 18px!important}.result-summary{display:flex;justify-content:space-between;gap:15px;padding:17px 0;border-bottom:1px solid var(--line);align-items:center}.result-summary span{font-size:10px;color:var(--muted)}.result-summary strong{font:14px Consolas,monospace}.export-bar{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:20px}.export-bar>div:first-child{max-width:350px}.export-bar p{font-size:10px;color:var(--muted);line-height:1.8;margin:0}.export-bar .checkbox-label{font-size:10px;margin-top:10px;color:#8b381d}.export-buttons{display:flex;flex-direction:column;align-items:center;gap:9px;flex-shrink:0}.dark-button{background:var(--ink);color:white;font-size:12px;padding:13px 17px}.dark-button:hover{background:#3a493e}.app-bottom-note{padding:15px 25px;border-top:1px solid var(--line);font-size:10px;color:var(--muted);line-height:1.8;background:#f1f2e9}.contour-preview{margin-top:25px;border:1px solid var(--line);border-radius:3px;overflow:hidden}.preview-heading{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#ecefe5}.preview-heading strong{font-size:11px;overflow-wrap:anywhere}.contour-preview svg{display:block;width:100%;height:290px;background:var(--dark)}.contour-preview svg polyline{stroke:#f1ede2;stroke-width:1.5;fill:none}.contour-preview p{font-size:10px;line-height:1.8;color:var(--muted);padding:12px 16px;margin:0}@media(max-width:1050px){.app-workspace{grid-template-columns:205px 1fr}.app-settings,.app-results{padding:20px}.export-bar{gap:14px}.export-bar>div:first-child{max-width:260px}}@media(max-width:760px){.app-topbar{padding:18px;flex-wrap:wrap;gap:10px}.app-topbar>div{gap:12px}.app-topbar .text-link{font-size:10px}.file-drop{padding:25px 18px;gap:12px}.upload-icon{padding:0;font-size:34px;align-self:flex-start}.file-drop h3{font-size:16px}.file-drop p{font-size:11px}.file-buttons{gap:8px}.file-buttons .button{font-size:11px;padding:11px 12px;gap:13px}.app-statusbar{padding:14px 18px;flex-wrap:wrap;gap:8px}.app-statusbar p{width:100%;font-size:10px}.app-workspace{grid-template-columns:1fr}.app-settings{border-right:0;border-bottom:1px solid var(--line);padding:22px 18px}.app-settings h3{margin-bottom:16px}.app-settings>select{max-width:360px}.app-settings .setting-help{max-width:520px}#layer-list{display:flex;flex-wrap:wrap;gap:12px 20px;max-height:140px}.app-settings .button{max-width:360px}.app-results{padding:22px 16px}.results-table{min-width:570px}.results-scroll{min-height:140px}.app-alert{margin:16px;font-size:11px}.export-bar{align-items:flex-start;flex-direction:column}.export-buttons{flex-direction:row;gap:20px}.export-bar>div:first-child{max-width:none}.app-bottom-note{padding:15px 18px}.contour-preview svg{height:230px}.result-summary strong{font-size:12px}}@media(prefers-reduced-motion:reduce){.file-drop{transition:none}}@media print{.browser-section{display:none}}
.template-options{margin-top:20px;padding:17px 0 20px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1.2fr 1fr;gap:16px 24px}.template-caption{font-size:10px;color:var(--muted);display:block;margin-bottom:7px}.template-options strong{display:block;font-size:11px;font-weight:600;overflow-wrap:anywhere}.template-options .text-link{display:block;font-size:10px;margin-top:5px;color:var(--orange)}.template-options label{font-size:10px;margin-bottom:8px}.template-options>p{grid-column:1/-1;font-size:9px;line-height:1.7;color:var(--muted);margin:0}.template-options select{font-size:11px}@media(max-width:420px){.template-options{grid-template-columns:1fr}}
