:root{--navy:#102c46;--blue:#087fe5;--ink:#18364f;--muted:#708293;--line:#dfe7ee;--bg:#f4f7fa;--soft:#eef5fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button,input,select,summary,a{outline-offset:4px}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid #58aaf0}button{transition:background .15s,color .15s}button:hover{filter:brightness(.96)}button:disabled:hover{filter:none}h1,h2,h3,p{margin:0}h2{font-size:16px;letter-spacing:-.02em}h3{font-size:13px}input[type=checkbox]{accent-color:var(--blue);width:15px;height:15px;margin:0 7px 0 0;vertical-align:middle}label{cursor:pointer}input[type=search],input[type=number],select{color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:6px;padding:9px 10px;min-width:0}select{cursor:pointer}input[type=search]{width:100%}header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 3.2%;border-bottom:1px solid var(--line);background:white;gap:18px}.brand{display:flex;align-items:center;gap:22px}.brand img{width:182px;height:50px;object-fit:contain}.brand span:last-child{font-size:11px;letter-spacing:.16em;font-weight:700}.brand-div{height:26px;width:1px;background:var(--line)}.header-right{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px}.local-dot{width:6px;height:6px;border-radius:100%;background:#2ba37e}.beta,.soft-tag{border:1px solid var(--line);border-radius:5px;padding:4px 8px;font-size:11px;font-weight:500;color:var(--muted);white-space:nowrap}.beta{margin-left:12px}main{width:min(1600px,94%);margin:auto}.intro{display:flex;justify-content:space-between;align-items:center;padding:30px 0 25px;gap:20px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--blue);margin-bottom:7px}h1{font-size:30px;font-weight:750;letter-spacing:-.04em}.intro p:last-child{color:var(--muted);margin-top:6px;font-size:13px}.primary,.secondary,.icon-button{border-radius:6px;padding:11px 17px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap}.primary{background:var(--blue);color:#fff;border:1px solid var(--blue)}.secondary,.icon-button{border:1px solid var(--line);background:white;color:var(--ink)}.icon-button{min-width:32px;padding:5px 9px;font-size:18px}.text-button{border:0;background:none;color:var(--blue);padding:4px;font-size:12px}.small{font-size:11px}.muted{color:var(--muted)}.row{display:flex;gap:17px;align-items:center}.import-panel{background:white;border:1px dashed #a6c3dc;border-radius:10px;padding:23px;display:flex;align-items:center;gap:21px}.import-panel.drag{background:#e7f4ff;border-color:var(--blue)}.upload-symbol{width:53px;height:53px;background:#eaf5fe;border-radius:12px;display:grid;place-items:center;color:var(--blue);flex-shrink:0}.upload-symbol svg{width:29px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.import-copy h2{margin-bottom:6px}.import-copy p{color:#5f768a;font-size:12px;margin-bottom:5px}.import-copy .small{color:#91a1af;font-size:10px}.import-actions{margin-left:auto;display:flex;gap:10px}.jobs{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0 18px}.job{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 9px;max-width:100%;font-size:11px}.job label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:350px}.job small{color:var(--muted)}.job button{background:none;border:0;color:#8193a5;font-size:17px;padding:0 4px}.panel{border:1px solid var(--line);border-radius:10px;background:white;overflow:hidden}.panel-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.panel-head h2{font-size:14px;display:flex;gap:14px;align-items:center}.filter-body{display:grid;grid-template-columns:1fr 1fr 1.2fr}.filter-col{padding:17px 20px;min-width:0}.filter-col+.filter-col{border-left:1px solid var(--line)}.filter-col h3{margin-bottom:12px;font-size:11px;font-weight:700;color:#5a7185}.filter-col .row{justify-content:space-between}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.check-grid label,.code-list label{font-size:11px;display:flex;align-items:center;gap:0}.check-grid label span,.code-list label span{margin-left:auto;padding-left:5px;color:#99a6b1;font-size:10px}.code-list{max-height:100px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;padding-right:5px}.search-col>label{display:block;font-size:11px;font-weight:700;margin-bottom:7px;color:#5a7185}.filter-selects{display:flex;gap:10px;margin-top:10px}.filter-selects label{font-size:10px;color:var(--muted);flex:1}.filter-selects select{display:block;width:100%;padding:6px;font-size:11px;margin-top:4px}.search-col p{font-size:10px;line-height:1.5;margin-top:10px}.workspace{margin-top:20px}.tabs{display:flex;border-bottom:1px solid var(--line);padding:0 15px;gap:16px;background:#fcfdff}.tabs button{display:flex;gap:9px;align-items:center;border:0;border-bottom:3px solid transparent;background:none;padding:19px 12px 16px;color:#77899a;font-size:15px}.tabs button span{font-size:12px;font-weight:650}.tabs button b{font-size:10px;font-weight:500;background:#eef2f6;color:#8a9baa;border-radius:4px;padding:2px 6px}.tabs button[aria-selected=true]{border-color:var(--blue);color:var(--blue)}.tabs button[aria-selected=true] b{background:#e6f2fd;color:var(--blue)}[hidden]{display:none!important}.map-toolbar{padding:11px 18px;display:flex;align-items:center;justify-content:space-between;gap:15px}.map-toolbar label{font-size:11px}.toolbar-label{font-size:9px;font-weight:800;letter-spacing:.1em;color:#98a7b5}.map-wrap{position:relative;height:480px;background:#f9fbfd;border-top:1px solid #edf1f5;overflow:hidden}#map{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.map-empty{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.empty-target{width:55px;height:55px;border:1px solid #bcd3e5;border-radius:50%;display:grid;place-items:center;margin:0 auto 17px;color:#9abbd5;font-size:26px}.map-empty h3{font-size:17px;font-weight:600}.map-empty p{font-size:12px;color:#8a9eb0;line-height:1.8;margin-top:9px}.north{position:absolute;right:23px;top:19px;display:flex;align-items:center;flex-direction:column;font-size:10px;font-weight:800;color:#657c91}.north span{font-size:25px}.map-legend{position:absolute;bottom:48px;left:18px;display:flex;gap:15px;background:rgba(255,255,255,.93);border:1px solid var(--line);padding:9px 13px;border-radius:6px;font-size:10px;color:#6c8092}.map-legend i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px}.map-bottom{position:absolute;bottom:0;width:100%;display:flex;justify-content:space-between;padding:9px 17px;background:rgba(255,255,255,.9);border-top:1px solid var(--line);font-size:10px;color:#7c91a3}.selection-info{border-top:1px solid var(--line);padding:19px 22px;background:#fff;min-height:90px}.detail-empty{display:flex;gap:17px;align-items:center;color:#8194a5}.detail-empty>span{font-size:25px}.detail-empty strong{font-size:12px;font-weight:600;color:#5e7589}.detail-empty p{font-size:11px;margin-top:5px}.detail-heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.detail-heading h3{font-size:16px}.details-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-top:20px}.data-cell span{display:block;color:var(--muted);font-size:10px;margin-bottom:5px}.data-cell strong{font-size:12px;font-weight:550;overflow-wrap:anywhere}.detail-tabs{margin-top:15px}details>summary{cursor:pointer}.raw{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.raw summary{font-size:11px;color:var(--blue)}.raw table{font-size:11px}.raw pre{font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}.table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:17px 20px}.table-toolbar h3{font-size:14px;margin-bottom:4px}.table-toolbar label{font-size:12px}.table-toolbar select{margin-left:8px;padding:6px 10px;font-size:12px}.table-wrap{overflow:auto;max-height:550px}table{border-collapse:collapse;width:100%;font-size:11px;text-align:left;white-space:nowrap}th{position:sticky;top:0;z-index:1;background:#f3f7fa;color:#6b8092;font-size:10px;font-weight:650;padding:12px 15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{padding:12px 15px;border-bottom:1px solid #edf2f6;color:#38536b}tbody tr[data-uid]{cursor:pointer}tbody tr[data-uid]:hover,tbody tr.selected{background:#eaf5ff}td.num{font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace}.type-tag{display:inline-flex;background:#edf4fa;border-radius:4px;padding:3px 7px;color:#577890;font-size:10px}.dup{display:inline-block;color:#a97928;background:#fff4dd;border-radius:3px;padding:1px 4px;font-size:9px;margin-left:5px}.empty-row{text-align:center;padding:60px 20px;color:#8194a5}.pager{display:flex;justify-content:flex-end;align-items:center;padding:12px 20px;gap:12px;font-size:11px;color:var(--muted)}.pager button{padding:5px 10px;font-size:11px}.quality-top{padding:25px 23px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.quality-top h2{font-size:23px;letter-spacing:-.035em;margin-bottom:7px}.quality-top p.muted{font-size:12px}.quality-cards{padding:0 23px 22px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.quality-card{padding:16px 18px;border:1px solid var(--line);border-radius:7px}.quality-card span{font-size:11px;color:var(--muted)}.quality-card b{display:block;font-size:28px;font-weight:650;letter-spacing:-.03em;margin-top:7px}.quality-card small{display:block;font-size:10px;color:#8a9dae;margin-top:6px}.diagnostics{margin-top:16px}.diagnostics summary{padding:14px 20px;font-size:12px;font-weight:600}.diagnostics summary span+span{float:right;font-weight:400}.diagnostics #diagnosticContent{padding:0 22px 18px;font-size:12px;color:#6e8192;line-height:1.8}.diagnostics ul{padding-left:19px}.diagnostics h3{margin-top:13px}.export-panel{background:var(--navy);color:#fff;border-radius:10px;margin-top:22px;padding:24px}.export-heading{display:flex;gap:15px;align-items:center}.export-icon{font-size:25px;color:#77c2ff;background:#214361;border-radius:8px;width:44px;height:44px;display:grid;place-items:center}.export-heading h2{font-size:19px}.export-heading p{font-size:12px;color:#94aec3;margin-top:5px}.export-controls{display:flex;gap:30px;align-items:end;margin-top:24px}.export-controls>label{min-width:230px;font-size:11px;color:#9eb7ca}.export-controls select{display:block;margin-top:7px;width:100%;background:#213f59;border-color:#3b566e;color:white;padding:11px}.export-controls .primary{margin-left:auto;padding:13px 23px}.export-controls .row{margin-top:8px;font-size:11px;gap:18px}.export-controls #dxfOptions>span{color:#9eb7ca}.export-controls input[type=number]{width:60px;padding:3px;margin:7px 0 0 5px;color:white;background:#213f59;border-color:#3b566e}.export-note{font-size:10px;color:#829fb5;margin-top:18px;border-top:1px solid #2a465e;padding-top:14px;line-height:1.6}.app-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:30px 3px;font-size:10px;color:#92a1af}.app-footer strong{color:#547087;letter-spacing:.1em;font-size:11px}.app-footer span:nth-child(2){margin-right:auto}#status:not(:empty){margin-top:10px;padding:12px 16px;border-radius:6px;background:#e7f4fc;color:#23668f;font-size:12px}#status.error{background:#fff0e9;color:#a55324}dialog{width:min(680px,90vw);border:1px solid var(--line);border-radius:12px;color:var(--ink);padding:25px;box-shadow:0 30px 80px #1236}dialog::backdrop{background:#112b4655;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}dialog p,dialog li{font-size:13px;line-height:1.75;color:#577085}dialog p{margin-top:15px}dialog li{margin-bottom:8px}dialog a{color:var(--blue)}.warning-note{padding:9px 12px;background:#fff6e6;color:#99702c;border-radius:5px;font-size:11px;line-height:1.6;margin-top:12px}.inline-note{color:#8799aa;font-size:11px;margin-top:12px;line-height:1.7}
@media(min-width:1500px){.map-wrap{height:550px}}@media(max-width:1100px){.header-right{font-size:0}.header-right .text-button,.beta{font-size:10px}.filter-body{grid-template-columns:1fr 1fr}.search-col{grid-column:1/-1;border-left:0!important;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.search-col>label{grid-column:1/-1;margin-bottom:0}.search-col .filter-selects{margin-top:-18px}.search-col p{grid-column:1/-1;margin:0}.details-grid{grid-template-columns:repeat(4,1fr)}.import-actions{flex-direction:column}.tabs{gap:5px}.export-controls{gap:18px}}@media(max-width:720px){header{height:66px;padding:0 4%}.brand img{width:145px}.brand-div,.brand span:last-child,.header-right .local-dot,.beta{display:none}.intro{padding:23px 0 18px}.intro h1{font-size:24px}.intro p:last-child{font-size:11px;max-width:250px}.intro .secondary{font-size:10px;padding:8px}.import-panel{padding:17px;flex-wrap:wrap;gap:14px}.upload-symbol{width:42px;height:42px}.import-copy{width:calc(100% - 60px)}.import-copy h2{font-size:14px}.import-copy p{line-height:1.6}.import-copy .small{display:none}.import-actions{width:100%;margin-left:0;flex-direction:row}.import-actions button{flex:1;font-size:12px}.panel-head{padding:14px}.panel-head h2{font-size:12px;flex-wrap:wrap;gap:5px}.panel-head .soft-tag{font-size:8px;padding:3px}.filter-col{padding:14px}.filter-body{grid-template-columns:1fr}.filter-col+.filter-col{border:0;border-top:1px solid var(--line)}.search-col{display:block;grid-column:auto}.search-col .filter-selects{margin-top:12px}.search-col p{margin-top:12px}.check-grid{grid-template-columns:repeat(2,1fr)}.code-list{max-height:75px}.tabs{padding:0;gap:0}.tabs button{gap:5px;flex:1;padding:14px 5px 11px}.tabs button span{font-size:10px}.tabs button b{display:none}.tabs button{font-size:0}.tabs button span{white-space:normal;text-align:left}.map-toolbar{padding:10px;flex-wrap:wrap}.map-toolbar .row{gap:9px}.toolbar-label{display:none}.map-toolbar label{font-size:10px}.map-wrap{height:390px}.map-bottom{font-size:9px}.map-bottom>span:last-child{display:none}.map-legend{gap:10px;font-size:9px;padding:7px;left:10px}.quality-top{padding:20px 15px;align-items:start}.quality-top h2{font-size:18px}.quality-top .primary{padding:10px;font-size:10px}.quality-cards{grid-template-columns:1fr 1fr;padding:0 15px 15px;gap:8px}.quality-card{padding:12px}.quality-card b{font-size:23px}.table-toolbar{padding:15px;flex-wrap:wrap}.table-toolbar .muted{font-size:10px}.details-grid{grid-template-columns:repeat(2,1fr);gap:15px}.selection-info{padding:17px 15px}.detail-heading{align-items:start}.detail-heading .primary{font-size:10px;padding:8px}.diagnostics summary span+span{display:none}.export-panel{padding:20px}.export-controls{flex-wrap:wrap;gap:18px}.export-controls>label{min-width:0;width:100%}.export-controls .primary{width:100%;margin-left:0}.export-heading h2{font-size:17px}.app-footer{flex-wrap:wrap;gap:10px;padding:24px 0}.app-footer span:nth-child(2){font-size:9px}.job label{max-width:230px}.job small{display:none}.table-wrap{max-height:450px}}

/* Explicit, touch-friendly view navigation. All four tabs stay visible. */
.tab-navigation{padding:16px;background:#eaf2f9;border-bottom:1px solid #cbdce9}
.tab-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 2px 11px;color:#56758e;font-size:11px}
.tab-hint strong{color:var(--navy);font-size:12px}
.tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border:0;padding:0;background:none}
.tabs button{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:center;min-height:62px;padding:13px 14px;border:1px solid #b9cede;border-bottom:3px solid #b9cede;border-radius:8px;background:#fff;color:#385d79;text-align:left;box-shadow:0 2px 3px #14355208;font-size:14px}
.tabs button:hover{background:#f4faff;border-color:#699fc6;filter:none}
.tabs button .tab-label{font-size:13px;font-weight:750;line-height:1.35;overflow-wrap:anywhere;min-width:0}
.tabs button .tab-number{font-size:10px;font-weight:800;color:#577f9e;border:1px solid #d7e4ef;background:#eff5fa;border-radius:5px;width:24px;height:24px;display:grid;place-items:center}
.tabs button b{display:block;font-size:11px;font-weight:650;color:#4b718f;background:#eaf2f9;padding:4px 6px;border-radius:5px}
.tabs button[aria-selected=true]{background:#087fe5;color:#fff;border-color:#087fe5;border-bottom-color:#035eaf;box-shadow:0 3px 8px #087fe52b}
.tabs button[aria-selected=true] .tab-number{background:#ffffff24;border-color:#ffffff50;color:#fff}
.tabs button[aria-selected=true] b{background:#ffffff2e;color:#fff}
@media(max-width:1050px){.tabs button{grid-template-columns:24px 1fr;padding:12px;gap:7px}.tabs button .tab-label{grid-column:1/-1;grid-row:2;font-size:13px}.tabs button b{grid-column:2;grid-row:1;justify-self:end}.tabs button .tab-number{grid-row:1}}
@media(max-width:720px){.tab-navigation{padding:13px}.tab-hint{font-size:10px;gap:8px}.tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.tabs button{min-height:83px;padding:11px 12px;font-size:14px;border-radius:8px}.tabs button .tab-label{font-size:13px;white-space:normal;text-align:left}.tabs button b{display:block;font-size:11px}.tabs button .tab-number{font-size:10px}.quality-top{flex-wrap:wrap}.quality-top>.primary{font-size:12px;min-height:44px}}
.session-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}.session-bar button{min-height:40px}.coordinate-notice{border:1px solid #e4ba6a;background:#fff8e9;padding:16px;border-radius:8px;margin-top:18px;font-size:12px;line-height:1.6}.coordinate-notice label,.coordinate-notice small{display:block;margin-top:8px}.line-policy{display:block;margin-top:12px;font-size:11px;color:#5f768a}.line-policy select{display:block;width:100%;margin-top:5px;font-size:11px}.table-tools{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 20px;border-bottom:1px solid var(--line);font-size:12px}.table-tools label{display:flex;align-items:center;gap:7px}.table-tools details{position:relative}.column-options{display:flex;flex-wrap:wrap;gap:12px;background:#f4f8fb;padding:12px;margin-top:10px}.tolerance-panel{border:1px solid #cbdce9;border-radius:8px;margin:0 20px 15px;padding:14px;background:#f7fafc}.tolerance-panel summary{font-weight:700;cursor:pointer}.tolerance-panel summary span{font-size:11px;color:#607b91;margin-left:12px;font-weight:500}.tolerance-panel p{font-size:12px;line-height:1.6;margin:12px 0}.tolerance-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:14px}.tolerance-fields fieldset{border:1px solid var(--line);background:white;border-radius:6px;min-width:0;padding:12px}.tolerance-fields legend{font-size:12px;font-weight:700}.tolerance-fields label{display:grid;grid-template-columns:1fr 100px;align-items:center;gap:7px;font-size:11px;margin-bottom:9px}.tolerance-fields input{width:100%;padding:8px;border:1px solid #b9cede;border-radius:5px;font:inherit;color:var(--ink)}.tolerance-fields input:invalid{border-color:#b84132}.tolerance-fields small{font-size:10px;line-height:1.5;display:block;color:var(--muted)}.tolerance-panel .row{flex-wrap:wrap}.review-summary{font-size:12px;color:#536f85;padding:0 20px 8px}.verdict{padding:4px 7px;border-radius:4px;font-size:11px;white-space:normal;display:inline-block;background:#eef2f6;color:#62788a}.verdict.pass{background:#e3f4eb;color:#176342}.verdict.fail{background:#fee8e6;color:#a12c24;font-weight:700}.verdict.incomplete{background:#fff0d7;color:#885b0f}#csvOptions{display:flex;gap:12px;flex-wrap:wrap}#csvOptions label{display:flex;flex-direction:column;gap:7px}
@media(max-width:720px){.tolerance-panel{margin:0 12px 15px}.tolerance-fields{grid-template-columns:1fr}.table-tools{padding:12px;gap:9px}.table-tools select{max-width:180px}.session-bar button{flex:1;font-size:11px}.session-bar span{width:100%}.review-summary{padding:0 12px 8px}.coordinate-notice{font-size:11px}.tolerance-panel summary span{display:block;margin:6px 0 0}}
