:root{color:#172033;background:#eef1f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{border:1px solid #c8d0dc;background:#fff;color:#172033;border-radius:6px;min-height:36px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer}button:hover:not(:disabled){border-color:#667892;background:#f8fafc}button:disabled{color:#98a4b5;cursor:not-allowed;background:#eef2f6}input,select{width:100%;border:1px solid #c8d0dc;border-radius:6px;min-height:38px;padding:0 10px;color:#172033;background:#fff}label{display:grid;gap:6px;font-size:.86rem;color:#455166}h2{margin:0;font-size:.98rem;color:#172033}.app-shell{min-height:100vh;padding:18px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:18px;min-height:calc(100vh - 36px)}.canvas-panel,.control-panel,.results-panel{background:#fff;border:1px solid #d5dbe5;border-radius:8px}.canvas-panel{display:grid;grid-template-rows:auto minmax(420px,1fr) auto;overflow:hidden}.canvas-stage{min-height:0;width:100%;height:100%}.canvas-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid #e2e7ef}.canvas-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;color:#667085;min-width:0}.canvas-meta strong{color:#172033;max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zoom-controls{display:flex;align-items:center;gap:6px;white-space:nowrap}.zoom-controls button{width:36px;padding:0}.zoom-controls span{min-width:48px;text-align:center;font-size:.88rem;color:#455166}.measurement-canvas{display:block;width:100%;height:100%;cursor:crosshair}.measurement-canvas.is-panning{cursor:grabbing}.canvas-help{padding:10px 14px;border-top:1px solid #e2e7ef;color:#58677c;font-size:.86rem;background:#fbfcfe}.side-column{display:grid;grid-template-rows:auto minmax(220px,1fr);gap:18px;min-width:0}.control-panel{display:grid;gap:14px;padding:14px;align-content:start}.panel-section{display:grid;gap:10px}.file-upload{min-height:42px;border:1px solid #9fb0c5;border-radius:6px;background:#20314a;color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.file-upload input{display:none}.segmented-control{display:grid;grid-template-columns:1fr 1fr;border:1px solid #c8d0dc;border-radius:7px;overflow:hidden}.segmented-control button{border:0;border-radius:0;min-width:0}.segmented-control button+button{border-left:1px solid #c8d0dc}.segmented-control .active{background:#dfeaf7;color:#183b65;font-weight:700}.status-list,.metric-list{display:grid;gap:8px;margin:0}.status-list div,.metric-list div{display:flex;justify-content:space-between;gap:12px;align-items:baseline}dt{color:#667085;font-size:.85rem}dd{margin:0;color:#172033;font-weight:600;text-align:right}.status-ok{color:#17663b}.status-open{color:#9a4a12}.muted,.unit-note{color:#667085;font-size:.9rem;margin:0}.calibration-form{display:grid;grid-template-columns:1fr 96px;gap:10px}.calibration-form button{grid-column:1 / -1;background:#20314a;border-color:#20314a;color:#fff}.message{border:1px solid #f2b47e;background:#fff7ed;color:#873d0c;border-radius:6px;padding:10px 12px;font-size:.9rem}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.primary-action{width:100%;background:#20314a;border-color:#20314a;color:#fff;font-weight:700}.primary-action:hover:not(:disabled){background:#17243a;border-color:#17243a}.export-action{width:100%;border-color:#1f7a4d;color:#145c38;background:#f0fdf4;font-weight:700}.export-action:hover:not(:disabled){background:#dcfce7;border-color:#166534}.project-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.project-import{border:1px solid #c8d0dc;background:#fff;color:#172033;border-radius:6px;min-height:36px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;font-size:1rem}.project-import:hover{border-color:#667892;background:#f8fafc}.project-import input{display:none}.action-grid button{justify-content:flex-start;min-width:0}.action-grid .danger{grid-column:1 / -1;color:#8b1c1c}.results-panel{overflow:hidden;min-height:0}.results-heading{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #e2e7ef}.results-heading span{color:#667085;font-size:.86rem}.table-wrap{overflow:auto;max-height:calc(100vh - 620px);min-height:220px}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{padding:10px 12px;text-align:right;border-bottom:1px solid #e8edf4;white-space:nowrap}th:first-child,td:first-child{text-align:left}.subtract-row td{color:#8b1c1c}.table-action{min-height:28px;padding:0 8px;font-size:.78rem;white-space:nowrap}.table-actions{display:flex;justify-content:flex-end;gap:6px}.table-action-danger{color:#8b1c1c}thead th{background:#f7f9fc;color:#455166;font-weight:700;position:sticky;top:0}tfoot th{background:#eef3f8;color:#172033}.empty-cell{color:#667085;text-align:center;height:86px}@media(max-width:1050px){.workspace{grid-template-columns:1fr}.side-column{grid-template-columns:minmax(320px,420px) minmax(0,1fr);grid-template-rows:auto}.table-wrap{max-height:520px}}@media(max-width:760px){.app-shell{padding:10px}.workspace,.side-column{gap:10px}.side-column{grid-template-columns:1fr}.canvas-panel{grid-template-rows:auto minmax(360px,58vh) auto}.canvas-toolbar{align-items:flex-start;flex-direction:column}.action-grid,.calibration-form{grid-template-columns:1fr}}
