:root{color:#20242a;font-synthesis:none;text-rendering:optimizelegibility;background:#edf0f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{-webkit-user-select:none;user-select:none}h1,h2,h3,p{margin:0}.app-shell{grid-template-columns:264px minmax(0,1fr);min-height:100vh;display:grid}.app-shell.workstation-only{background:#111820;grid-template-columns:minmax(0,1fr);height:100vh;min-height:0;overflow:hidden}.workstation-root{background:#111820;height:100vh;min-height:0;padding:0;position:relative;overflow:hidden}.workspace.workstation-root{padding:0}.sidebar{color:#f4f7f9;background:#17202a;flex-direction:column;padding:24px 18px;display:flex}.brand-block,.login-brand{align-items:center;gap:12px;display:flex}.brand-block{margin-bottom:30px}.brand-mark{color:#111820;background:#f0b429;border-radius:8px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.brand-block h1,.login-brand h1{font-size:18px;line-height:1.2}.brand-block p,.login-brand p,.topbar p,.muted,.record-row span,.user-block span,.meta-list dt,.measurement-row span{color:#6b7480;font-size:14px}.brand-block p,.user-block span{color:#aeb8c2}.nav-list{gap:8px;display:grid}.nav-item,.tool-button,.icon-button,.primary-button,.table-action,.segmented-control button,.record-row{cursor:pointer;border:0;border-radius:8px}.nav-item{color:#d8e0e8;text-align:left;background:0 0;align-items:center;gap:10px;min-height:42px;padding:10px 12px;display:flex}.nav-item.active{color:#fff;background:#263442}.user-block{border-top:1px solid #2d3945;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:auto;padding-top:18px;display:grid}.user-block strong,.user-block span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.workspace{padding:26px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.topbar h2{font-size:24px}.app-shell.workspace-mode{grid-template-columns:minmax(0,1fr);min-height:100vh}.workspace-mode .sidebar{display:none}.workspace-mode .workspace{background:#111820;min-height:100vh;padding:0}.project-workspace-shell{color:#edf4f8;background:#111820;grid-template-rows:auto minmax(0,1fr) auto;height:100vh;min-height:0;display:grid}.project-topbar{z-index:5;background:#1a2632;border-bottom:1px solid #314255;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:10px 14px;display:grid;position:relative}.project-topbar-actions,.project-session-actions,.project-tabs{align-items:center;gap:8px;min-width:0;display:flex}.project-tabs{justify-content:center;overflow:hidden}.station-brand{color:#dce8ef;white-space:nowrap;background:#101b25;border:1px solid #3f5164;border-radius:7px;align-items:center;gap:8px;min-height:38px;padding:6px 8px 6px 6px;font-weight:800;display:inline-flex}.station-brand-mark{color:#101820;background:#f0b429;border-radius:5px;place-items:center;width:27px;height:27px;font-size:12px;display:grid}.project-command,.project-tab,.layout-choice{color:#eef5f8;background:#243444;border:1px solid #3f5164;border-radius:7px}.project-command{white-space:nowrap;align-items:center;gap:7px;min-height:38px;padding:8px 11px;display:inline-flex}.project-command.icon-only{justify-content:center;width:40px;padding:8px}.project-command.subtle{color:#d7e2ea;background:#1f2d3a}.project-command:hover,.project-tab:hover,.layout-choice:hover{border-color:#5ac2d6}.project-list-anchor{position:relative}.project-list-popover{color:#182532;background:#edf3f7;border:1px solid #506379;border-radius:8px;gap:7px;width:min(430px,88vw);max-height:60vh;padding:10px;display:grid;position:absolute;top:calc(100% + 8px);left:0;overflow:auto;box-shadow:0 16px 32px #00000047}.project-list-title,.rail-panel-title{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.project-list-title>div,.rail-panel-title>div{min-width:0}.project-list-title span,.rail-panel-title span,.analysis-copy-meta dt,.analysis-copy-meta dd,.project-image-main span,.project-image-main small{color:#6d7885;font-size:12px}.project-list-message,.project-inline-message{overflow-wrap:anywhere;margin:0;font-size:13px}.project-list-message{color:#657383;padding:8px 4px}.project-list-search{color:#44515f;background:#fff;border:1px solid #ced8e2;border-radius:6px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;min-height:34px;padding:5px 8px;display:grid}.project-list-search input{color:#1d2a36;background:0 0;border:0;outline:none;min-width:0}.project-inline-message{padding:6px 0}.project-list-option{color:#1d2a36;text-align:left;background:#fff;border:1px solid #ced8e2;border-radius:7px;gap:3px;min-height:54px;padding:9px 10px;display:grid}.project-list-option.active{background:#dff6fa;border-color:#24bfd3;box-shadow:inset 4px 0 #24bfd3}.project-list-option.open:not(.active){background:#f2f9fb;border-color:#95bfd1}.project-list-option-heading{justify-content:space-between;gap:8px;min-width:0;display:flex}.project-list-option-heading strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.project-list-option-heading span{color:#315066;background:#dbe8f0;border-radius:999px;flex:none;padding:1px 6px;font-size:11px;font-weight:800}.project-list-option.active .project-list-option-heading span{color:#fff;background:#22a9bd}.project-list-option>span,.project-list-option>small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.project-tab{text-align:left;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;min-width:150px;max-width:230px;min-height:46px;padding:7px 9px;display:grid;position:relative}.project-tab.active{background:#33475b;border-color:#73d9e8;box-shadow:inset 0 -2px #73d9e8}.project-tab span:first-child,.project-tab small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-tab small{color:#adc2cf;font-size:11px}.project-tab-close{color:#cddbe4;border-radius:5px;grid-row:1/span 2;align-self:center;place-items:center;width:22px;height:22px;display:grid}.project-tab-close:hover{background:#ffffff1f}.project-tab-empty,.workspace-user-chip{color:#c6d4de;font-size:13px}.workspace-user-chip{white-space:nowrap;background:#17232f;border:1px solid #3f5164;border-radius:999px;align-items:center;gap:7px;min-height:38px;padding:8px 10px;display:inline-flex}.workstation-overlay{z-index:20;pointer-events:none;min-width:0;min-height:0;display:grid;position:absolute;inset:78px 398px 18px 18px}.workstation-overlay-panel{color:#1b2835;pointer-events:auto;background:#edf2f7;border:1px solid #526a7f;border-radius:8px;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden;box-shadow:0 22px 46px #0000006b}.workstation-overlay-header{color:#f2f7fa;background:#172635;border-bottom:1px solid #334a5e;justify-content:space-between;align-items:center;gap:14px;min-height:58px;padding:10px 14px;display:flex}.workstation-overlay-header h2{font-size:19px;line-height:1.15}.workstation-overlay-header p{color:#aac0d0;margin-top:2px;font-size:13px}.workstation-overlay-actions{align-items:center;gap:8px;display:flex}.workstation-overlay-body{min-width:0;min-height:0;padding:18px;overflow:auto}.workstation-overlay-body .topbar{display:none}.workstation-overlay-body .admin-shell{padding:0}.project-workstation{grid-template-columns:minmax(0,1fr) minmax(380px,430px);gap:10px;height:100%;min-height:0;padding-right:10px;display:grid;overflow:hidden}.project-viewer-region{min-width:0;min-height:0;padding:12px;overflow:hidden}.project-viewer-grid{gap:8px;width:100%;min-width:0;height:100%;min-height:0;display:grid}.project-viewer-grid.layout-1up{grid-template-columns:minmax(0,1fr)}.project-viewer-grid.layout-2up{grid-template-columns:repeat(2,minmax(0,1fr))}.project-viewer-grid.layout-4up{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr))}.project-viewer-tile{background:#0b131c;border:1px solid #293b4d;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.project-viewer-tile.active{border-color:#29c5d9;box-shadow:inset 0 0 0 1px #29c5d980}.project-viewer-tile-header{color:#eff8fb;background:#132232;border-bottom:1px solid #26394b;justify-content:space-between;align-items:center;gap:10px;min-height:28px;padding:4px 8px;font-size:12px;display:flex}.project-viewer-tile-header strong,.project-viewer-tile-header span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.project-viewer-tile-header span{color:#a9c4d4}.project-viewer-region .viewer-layout{grid-template-columns:minmax(0,1fr);gap:0;height:100%;min-height:0}.project-viewer-region .viewer-main{background:#0e1620;border-color:#34465a}.project-viewer-region .inspector-panel{display:none}.project-viewer-region .image-stage{height:100%;min-height:0}.project-viewer-region .viewer-toolbar{background:#101b25;border-bottom-color:#2d3d4e;min-height:45px;padding:6px 8px}.project-viewer-grid.layout-2up .viewer-toolbar,.project-viewer-grid.layout-4up .viewer-toolbar{min-height:38px;padding:4px 6px}.project-viewer-grid.layout-2up .viewer-toolbar .tool-button,.project-viewer-grid.layout-4up .viewer-toolbar .tool-button{min-height:28px;padding:5px 7px;font-size:12px}.project-viewer-grid.layout-4up .viewer-toolbar .tool-button span{display:none}.project-viewer-region .viewer-toolbar .tool-button,.project-viewer-region .viewer-toolbar .icon-button{color:#d9e5ee;background:#162536;border-color:#26394b;min-height:32px}.project-viewer-region .viewer-toolbar .tool-button.active{color:#fff;background:#1d83a4}.project-viewer-region .measurement-mode-status{color:#aebfcb;background:#152230;border-bottom-color:#26394b;min-height:34px;padding:6px 10px}.project-viewer-region .measurement-mode-label,.project-viewer-region .measurement-type{color:#dff5fb;background:#234458;min-height:21px}.project-right-rail{scrollbar-gutter:stable;color:#172331;background:#bfcbd6;border-left:1px solid #314255;grid-template-rows:minmax(260px,34vh);grid-auto-rows:max-content;align-content:start;gap:8px;min-width:0;min-height:0;max-height:calc(100vh - 98px);padding:10px 12px 14px 10px;display:grid;overflow:hidden auto}.project-viewer-inspector-host:empty{display:none}.project-viewer-inspector-host .inspector-panel{background:0 0;border:0;border-radius:0;min-width:0;padding:0;overflow:visible}.project-viewer-inspector-host .panel-title{margin-top:12px;margin-bottom:9px}.project-viewer-inspector-host .panel-title:first-child{margin-top:0}.project-viewer-inspector-host .meta-list{grid-template-columns:72px minmax(0,1fr);margin-bottom:14px;font-size:12px}.project-viewer-inspector-host .viewer-control-panel{margin-bottom:14px;padding:9px}.project-rail-panel{background:#f4f7fa;border:1px solid #c3ceda;border-radius:5px;gap:8px;min-height:max-content;padding:8px;display:grid}.compact-control-panel{gap:7px}.compact-control-panel.collapsed{gap:0}.rail-collapse-toggle{color:#26394b;cursor:pointer;background:#eef3f8;border:1px solid #c2cfda;border-radius:4px;place-items:center;width:24px;height:24px;font-weight:800;display:inline-grid}.image-rail-panel{background:linear-gradient(#20384a,#102837);border-color:#35546a;grid-template-rows:auto auto minmax(0,1fr);min-height:0;overflow:hidden}.rail-panel-title strong{text-overflow:ellipsis;white-space:nowrap;color:#1d2a36;min-width:0;display:block;overflow:hidden}.image-rail-panel .rail-panel-title strong{color:#eef7fb}.image-rail-panel .rail-panel-title span{text-overflow:ellipsis;white-space:nowrap;color:#acc5d3;min-width:0;display:block;overflow:hidden}.rail-count{color:#fff;background:#24445a;border-radius:999px;justify-content:center;align-items:center;min-width:28px;height:24px;font-size:12px;font-weight:800;display:inline-flex}.rail-title-actions{flex:none;align-items:center;gap:6px;display:inline-flex}.rail-import-button{color:#e4f7fc;background:#183143;border-color:#3e6278;min-height:28px;padding:4px 9px}.rail-import-button:disabled{color:#8ca3b1;background:#1a2d3c}.rail-icon-button{color:#dff3fa;background:#183143;border-color:#416074;width:28px;height:28px}.project-image-list{scrollbar-gutter:stable;align-content:start;gap:8px;min-height:0;padding-right:6px;display:grid;overflow:hidden auto}.project-image-card{background:#edf5fa;border:1px solid #bdc9d5;border-radius:4px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.project-image-card.active{background:#217da7;border-color:#35d6e8;box-shadow:inset 4px 0 #35d6e8}.project-image-main{color:#172635;text-align:left;cursor:pointer;background:0 0;border:0;gap:3px;min-height:70px;padding:10px;display:grid}.project-image-card.active .project-image-main{color:#fff}.project-image-card.active .project-image-main span,.project-image-card.active .project-image-main small{color:#d1eef6}.project-image-main strong,.project-image-main span,.project-image-main small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.project-image-actions{grid-template-columns:repeat(2,34px);gap:4px;padding-right:8px;display:grid}.project-image-actions .icon-button:last-child{grid-column:2}.rail-empty{color:#677481;padding:14px 4px;font-size:13px}.layout-button-grid,.rail-tool-grid,.mode-toggle-row{gap:8px;display:grid}.layout-button-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mode-toggle-row{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-choice,.mode-toggle{color:#223140;background:#eef3f8;border:1px solid #aebccb;border-radius:5px;place-items:center;gap:4px;min-height:46px;padding:6px;display:grid}.layout-choice.active,.mode-toggle.active{background:#d9f1f6;border-color:#20a7c2}.mode-toggle:disabled{cursor:not-allowed;color:#8a96a3;background:#e6ebf1}.rail-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.rail-tool-grid .tool-button{justify-content:center;min-height:34px;padding:6px 8px}.analysis-copy-meta{grid-template-columns:84px minmax(0,1fr);gap:7px 9px;margin:0;display:grid}.analysis-copy-meta dd{overflow-wrap:anywhere;margin:0}.workstation-statusbar{color:#d8e4ec;background:#050a0f;border-top:1px solid #263746;grid-template-columns:minmax(130px,1.2fr) minmax(160px,1.4fr) minmax(150px,1fr) auto auto;align-items:center;gap:12px;min-height:32px;padding:5px 12px;font-size:12px;display:grid}.workstation-statusbar span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.status-pill{color:#44515f;background:#fff;border:1px solid #d1d8e0;border-radius:999px;align-items:center;gap:8px;min-height:34px;padding:7px 11px;font-size:14px;display:flex}.version-chip{color:#334154;background:#eef2f7;border-radius:999px;align-items:center;min-height:22px;padding:2px 7px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;display:inline-flex}.dot{background:#9aa4ae;border-radius:999px;width:9px;height:9px}.dot.ok{background:#11845b}.content-grid{gap:16px;display:grid}.upload-grid{grid-template-columns:minmax(280px,420px) minmax(0,1fr)}.admin-grid{grid-template-columns:minmax(280px,380px) minmax(0,1fr)}.template-grid{grid-template-columns:minmax(300px,420px) minmax(0,1fr)}.tool-panel,.viewer-main,.inspector-panel,.login-panel{background:#fff;border:1px solid #d6dde5;border-radius:8px}.tool-panel{padding:18px}.panel-title{color:#25313d;align-items:center;gap:9px;margin-bottom:14px;display:flex}.panel-title h3{font-size:16px}.drop-target{color:#25313d;cursor:pointer;text-align:center;background:#f8fafb;border:1px dashed #9aa8b8;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:148px;display:flex}.drop-target.disabled{cursor:not-allowed;color:#7a8694;background:#eef2f6;border-color:#cbd3dc}.drop-target span{overflow-wrap:anywhere;max-width:280px}.drop-target input{display:none}.upload-actions,.filter-row,.viewer-toolbar{align-items:center;gap:10px;display:flex}.upload-actions{justify-content:space-between;margin-top:14px}.primary-button{color:#fff;background:#0f6b99;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:8px 12px;display:inline-flex}.primary-button.compact{min-height:32px;padding:6px 9px;font-size:13px}.primary-button:disabled{cursor:not-allowed;background:#a6b4bf}.primary-button.danger{background:#b42318}.primary-button.danger:disabled{background:#a6b4bf}.secondary-button{color:#25313d;cursor:pointer;background:#fff;border:1px solid #cbd3dc;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:8px 12px;display:inline-flex}.secondary-button:disabled{cursor:not-allowed;color:#8b96a2;background:#eef2f6}.icon-button{color:#25313d;background:#fff;border:1px solid #cbd3dc;place-items:center;width:34px;height:34px;display:grid}.icon-button.dark{color:#fff;background:#263442;border-color:#344250}.icon-button.danger{color:#a82921;border-color:#f0b8b3}.icon-button:disabled{cursor:not-allowed;color:#97a3af;background:#eef2f6}.notice-text,.error-text{margin-top:12px;font-size:14px}.notice-text{color:#775a12}.error-text{color:#b42318}.table-wrap{overflow-x:auto}.candidate-table-wrap{overflow:visible}.candidate-thumbnail-wrap{background:#0f1a23;border:1px solid #cfdae8;border-radius:6px;justify-content:center;align-items:center;width:58px;height:58px;display:inline-flex;position:relative}.candidate-thumbnail{object-fit:contain;image-rendering:auto;max-width:54px;max-height:54px}.candidate-thumbnail-empty{color:#6b7785;white-space:nowrap;font-size:12px}.candidate-hover-preview{z-index:30;background:#071018;border:1px solid #6acde8;border-radius:8px;width:220px;height:220px;padding:8px;display:none;position:absolute;top:50%;left:68px;transform:translateY(-50%);box-shadow:0 18px 45px #030e1859}.candidate-hover-preview img{object-fit:contain;width:100%;height:100%}.candidate-thumbnail-wrap:hover .candidate-hover-preview{display:block}.raw-reselect-callout{background:#f5f9fc;border:1px solid #c9d8e6;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.raw-reselect-callout div{gap:3px;display:grid}.raw-reselect-callout span{color:#526071;font-size:13px}.raw-reselect-dialog .table-wrap{max-height:min(64vh,680px);overflow:auto}.modal-dialog.wide.raw-reselect-dialog{width:min(1040px,100vw - 44px);max-height:calc(100vh - 44px)}.raw-reselect-dialog table{min-width:900px}.raw-reselect-dialog th,.raw-reselect-dialog td{padding:14px 18px}.raw-reselect-dialog .candidate-thumbnail-wrap{width:86px;height:86px}.raw-reselect-dialog .candidate-thumbnail{max-width:82px;max-height:82px}.raw-reselect-dialog .candidate-hover-preview{width:320px;height:320px;left:98px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #e7ebf0;padding:12px 14px}th{color:#44515f;background:#f5f7f9;font-weight:700}.selected-row td{background:#f0f7fb}.table-action{color:#25313d;background:#fff;border:1px solid #cbd3dc;justify-content:center;align-items:center;gap:6px;min-height:30px;padding:5px 9px;display:inline-flex}.table-action:disabled{cursor:not-allowed;color:#8b96a2;background:#eef2f6}.table-action.danger{color:#a82921;border-color:#f3b8b4}.table-action.danger:disabled{color:#8b96a2;border-color:#cbd3dc}.empty-state{color:#6b7480;background:#f8fafb;border:1px dashed #d1d9e2;border-radius:8px;place-items:center;gap:8px;min-height:160px;display:grid}.empty-state.small{min-height:80px}.filter-row{justify-content:space-between;margin-bottom:14px}.search-box{background:#fff;border:1px solid #cbd3dc;border-radius:8px;align-items:center;gap:9px;min-width:260px;min-height:38px;padding:0 10px;display:flex}.search-box input,.login-panel input{color:#20242a;border:0;outline:none;width:100%}.segmented-control{background:#f5f7f9;border:1px solid #cbd3dc;border-radius:8px;grid-template-columns:repeat(3,1fr);padding:3px;display:inline-grid}.segmented-control button{color:#44515f;background:0 0;min-height:30px;padding:5px 10px}.segmented-control button.selected{color:#111820;background:#fff;box-shadow:0 1px 3px #0f172a1f}.record-list{gap:8px;display:grid}.record-row{color:#20242a;text-align:left;background:#fff;border:1px solid #e2e7ee;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;width:100%;min-height:66px;padding:12px;display:grid}.record-row-managed{cursor:default;grid-template-columns:auto minmax(0,1fr) auto auto auto}.record-row:hover{background:#f8fafb;border-color:#9fb0c2}.record-row strong,.record-row span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.record-type{color:#334154;background:#eef2f7;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700}.viewer-layout{grid-template-columns:minmax(0,1fr) 320px;gap:16px;min-height:calc(100vh - 112px);display:grid}.viewer-main{grid-template-rows:auto auto minmax(420px,1fr);display:grid;overflow:hidden}.viewer-toolbar{border-bottom:1px solid #e2e7ee;flex-wrap:wrap;min-height:56px;padding:10px}.viewer-toolbar-spacer{flex:auto;min-width:12px}.tool-button{color:#354252;background:#f5f7f9;align-items:center;gap:7px;min-height:34px;padding:7px 10px;display:inline-flex}.tool-button.active{color:#fff;background:#203346}.tool-button:disabled{cursor:not-allowed;color:#8b96a2;background:#eef2f6}.measurement-mode-status{color:#52606e;overflow-wrap:anywhere;background:#f8fafb;border-bottom:1px solid #e2e7ee;align-items:center;gap:10px;min-height:42px;padding:9px 12px;font-size:13px;display:flex}.measurement-mode-status span{min-width:0}.measurement-mode-label,.measurement-type{color:#173449;letter-spacing:0;background:#dfeaf2;border-radius:999px;justify-content:center;align-items:center;min-width:44px;min-height:24px;padding:3px 7px;font-size:11px;font-weight:800;display:inline-flex}.image-stage{overscroll-behavior:contain;background-color:#111820;background-image:linear-gradient(90deg,#ffffff0a 1px,#0000 1px),linear-gradient(#ffffff0a 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;place-items:center;min-height:420px;display:grid;position:relative;overflow:hidden}.preview-transform-layer{transform-origin:50%;will-change:transform;place-items:center;max-width:100%;max-height:100%;transition:transform .12s ease-out;display:grid}.preview-measurement-frame{overscroll-behavior:contain;touch-action:none;-webkit-user-select:none;user-select:none;background:#000;place-items:center;max-width:calc(100% - 32px);max-height:calc(100% - 32px);display:grid;position:relative;overflow:hidden}.preview-measurement-frame.is-measurable,.preview-measurement-frame.is-sampling{cursor:crosshair}.preview-measurement-frame.is-pannable{cursor:grab}.preview-measurement-frame.is-panning{cursor:grabbing}.preview-measurement-frame.is-windowing{cursor:ew-resize}.preview-measurement-frame:focus-visible{outline-offset:3px;outline:2px solid #2ed3ff}.detector-preview{color:#111820b8;background:radial-gradient(circle at 50% 45%,#fffffff5,#dce1e6eb 34%,#606e7d6b 55%,#141a20f2 78%),#dfe5eb;border:14px solid #20242a;font-weight:700}.preview-image{object-fit:contain;image-rendering:auto;background:#000;max-width:100%;max-height:100%;display:block}.preview-measurement-frame .preview-image{object-fit:fill;width:100%;max-width:none;height:100%;max-height:none}.measurement-overlay{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.measurement-shape{fill:#f0b42929;stroke:#f0b429;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5px}.measurement-shape.saved{stroke:#f0b429}.measurement-shape.draft{fill:#2ed3ff29;stroke:#2ed3ff;stroke-dasharray:8 5}.measurement-shape line{fill:none}.measurement-shape circle{fill:#111820}.preview-state{color:#e8eef4;text-align:center;background:#111820b8;border:1px solid #e0e8f047;border-radius:8px;place-items:center;gap:8px;width:min(68vmin,620px);min-height:min(52vmin,420px);padding:22px;display:grid}.preview-state span{color:#bac6d1;overflow-wrap:anywhere;max-width:100%}.stage-readout{color:#fff;background:#111820c2;border-radius:6px;padding:7px 9px;font-size:13px;position:absolute;bottom:14px;left:14px}.inspector-panel{padding:16px;overflow:auto}.meta-list{grid-template-columns:94px minmax(0,1fr);gap:8px 10px;margin:0 0 20px;display:grid}.meta-list dt{color:#6b7480}.meta-list dd{overflow-wrap:anywhere;margin:0}.viewer-control-panel{background:#f8fafb;border:1px solid #e2e7ee;border-radius:8px;gap:12px;margin-bottom:20px;padding:12px;display:grid}.viewer-control-panel label{color:#44515f;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;font-size:13px;display:grid}.viewer-control-panel strong{color:#20242a;font-size:13px}.viewer-control-panel input{accent-color:#0f6b99;grid-column:1/-1;width:100%}.viewer-control-panel .display-toggle{align-items:center}.viewer-control-panel .display-toggle input{grid-column:auto;justify-self:end;width:18px;height:18px}.display-window-grid,.display-preset-row,.display-transform-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.display-transform-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.display-preset-row input,.display-preset-row select{width:100%}.viewer-control-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.viewer-control-actions .table-action{justify-content:center}.analysis-copy-tools{background:#f8fafb;border:1px solid #d9e3ec;border-radius:8px;gap:10px;margin-bottom:14px;padding:12px;display:grid}.analysis-copy-tools header{color:#44515f;justify-content:space-between;gap:10px;font-size:13px;display:flex}.analysis-copy-tools strong{color:#20242a}.calibration-form{gap:9px;display:grid}.calibration-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.calibration-form label{color:#44515f;gap:5px;font-size:12px;display:grid}.calibration-form input{color:#20242a;background:#fff;border:1px solid #cbd3dc;border-radius:6px;min-width:0;min-height:32px;padding:6px 8px}.measurement-list{gap:8px;display:grid}.measurement-form{background:#f8fafb;border:1px solid #e2e7ee;border-radius:8px;gap:10px;margin-bottom:14px;padding:12px;display:grid}.measurement-form-header,.measurement-row-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.measurement-form-header>div,.measurement-row-header>div{gap:3px;min-width:0;display:grid}.measurement-form-header strong,.measurement-row-header strong{overflow-wrap:anywhere}.measurement-form-header span,.measurement-meta,.measurement-summary{color:#6b7480;font-size:12px}.measurement-form-row,.measurement-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.measurement-field-grid .wide-field{grid-column:1/-1}.measurement-form label{color:#44515f;gap:6px;font-size:13px;display:grid}.measurement-form input,.measurement-form select{color:#20242a;background:#fff;border:1px solid #cbd3dc;border-radius:8px;min-width:0;min-height:36px;padding:7px 9px}.measurement-presets{flex-wrap:wrap;gap:8px;display:flex}.measurement-summary{overflow-wrap:anywhere;background:#eef5f8;border-radius:6px;margin:0;padding:8px 9px}.measurement-summary.invalid{color:#a63d2f;background:#fff4f2}.measurement-row{background:#f8fafb;border:1px solid #e2e7ee;border-radius:8px;gap:7px;padding:10px;display:grid}.measurement-value{color:#263442;overflow-wrap:anywhere}.measurement-details{color:#52606e;font-size:12px}.measurement-details summary{cursor:pointer;font-weight:700}.measurement-details dl{grid-template-columns:64px minmax(0,1fr);gap:5px 8px;margin:8px 0 0;display:grid}.measurement-details dt{color:#6b7480}.measurement-details dd{overflow-wrap:anywhere;margin:0}.template-list{gap:8px;display:grid}.template-row{background:#fff;border:1px solid #e2e7ee;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:72px;padding:12px;display:grid}.template-row strong,.template-row span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.template-row>div:first-child{gap:3px;min-width:0;display:grid}.template-row>div:first-child span{color:#6b7480;font-size:13px}.login-shell{background:#17202a;place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{gap:14px;width:min(420px,100%);padding:24px;display:grid}.login-panel label{color:#44515f;gap:7px;font-size:14px;display:grid}.login-panel input,.admin-form input,.admin-form select,.admin-form textarea,.modal-dialog input,.modal-dialog select,.modal-dialog textarea,.user-row select{color:#20242a;background:#fff;border:1px solid #cbd3dc;border-radius:8px;min-height:40px;padding:8px 10px}.admin-form textarea,.modal-dialog textarea{resize:vertical}.admin-shell{gap:16px;display:grid}.admin-tabs{background:#f5f7f9;border:1px solid #cbd3dc;border-radius:8px;grid-template-columns:repeat(4,minmax(116px,1fr));width:min(650px,100%);padding:3px;display:inline-grid}.admin-tabs button{color:#44515f;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:7px;min-height:34px;display:inline-flex}.admin-tabs button.selected{color:#111820;background:#fff;box-shadow:0 1px 3px #0f172a1f}.admin-form{gap:12px;display:grid}.settings-panel{max-width:620px}.settings-form{max-width:420px}.admin-form label{color:#44515f;gap:7px;font-size:14px;display:grid}.check-row{grid-template-columns:none;align-items:center;gap:9px;display:flex!important}.check-row input{width:16px;min-height:16px}.panel-header-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.panel-header-row .panel-title{margin-bottom:0}.user-table{gap:8px;display:grid}.user-row{background:#fff;border:1px solid #e2e7ee;border-radius:8px;grid-template-columns:minmax(0,1.2fr) 150px 170px auto auto auto;align-items:center;gap:10px;min-height:62px;padding:10px;display:grid}.user-row strong,.user-row span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.user-row span{color:#6b7480;font-size:14px}.team-space-list{gap:8px;display:grid}.team-space-row{background:#fff;border:1px solid #e2e7ee;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:62px;padding:10px;display:grid}.team-space-row.inactive{opacity:.58}.team-space-row strong,.team-space-row span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.team-space-row>div span{color:#6b7480;margin-top:3px;font-size:13px}.audit-list{gap:10px;display:grid}.audit-row{background:#fff;border:1px solid #e2e7ee;border-radius:8px;grid-template-columns:minmax(190px,1fr) 120px minmax(0,2fr);align-items:start;gap:12px;padding:12px;display:grid}.audit-row strong,.audit-row span{overflow-wrap:anywhere;display:block}.audit-row>div>span{color:#6b7480;margin-top:3px;font-size:13px}.audit-row dl{grid-template-columns:70px minmax(0,1fr);gap:5px 8px;margin:0;font-size:13px;display:grid}.audit-row dt{color:#6b7480}.audit-row dd{overflow-wrap:anywhere;margin:0}.audit-outcome{color:#334154;background:#eef2f7;border-radius:999px;justify-self:start;padding:4px 8px;font-size:12px;font-weight:700}.audit-outcome.success{color:#0f6b4e;background:#e6f4ee}.audit-outcome.failure,.audit-outcome.blocked,.audit-outcome.rate_limited{color:#a82921;background:#fdeeee}.modal-backdrop{z-index:20;background:#11182094;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.modal-dialog{background:#fff;border:1px solid #d6dde5;border-radius:8px;gap:13px;width:min(440px,100%);padding:20px;display:grid;box-shadow:0 18px 48px #0f172a38}.modal-dialog.wide{width:min(620px,100%)}.project-create-dialog{width:min(520px,100%)}.project-members-dialog{width:min(980px,100%)}.modal-header,.modal-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-header h3{font-size:18px}.modal-header p{color:#6b7480;overflow-wrap:anywhere;margin-top:3px;font-size:14px}.modal-dialog label{color:#44515f;gap:7px;font-size:14px;display:grid}.project-member-add-row{grid-template-columns:minmax(220px,1fr) 180px auto;align-items:center;gap:10px;display:grid}.project-member-add-row select,.project-member-create-panel input,.project-member-create-panel select,.project-member-row select{color:#20242a;background:#fff;border:1px solid #cbd3dc;border-radius:6px;min-height:38px;padding:7px 9px}.project-member-create-panel{background:#f8fafb;border:1px solid #dbe3ec;border-radius:8px;grid-template-columns:minmax(190px,1.2fr) minmax(120px,.9fr) minmax(170px,1fr) minmax(150px,.9fr) 150px auto;align-items:center;gap:8px;padding:10px;display:grid}.project-member-create-panel>div{gap:3px;min-width:0;display:grid}.project-member-create-panel strong,.project-member-create-panel span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-member-create-panel span{color:#6b7480;font-size:12px}.project-member-list{gap:8px;max-height:min(58vh,560px);display:grid;overflow:auto}.project-member-row{background:#fff;border:1px solid #d9e0e8;border-radius:6px;grid-template-columns:minmax(180px,1fr) 150px minmax(300px,1.4fr) auto auto;align-items:center;gap:10px;min-height:62px;padding:10px;display:grid}.project-member-row.inactive{opacity:.58}.project-member-identity{gap:3px;min-width:0;display:grid}.project-member-identity strong,.project-member-identity span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-member-identity span{color:#687586;font-size:13px}.project-member-flags{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.project-member-flags label{color:#334154;background:#f7f9fb;border:1px solid #d9e0e8;border-radius:6px;align-items:center;gap:5px;min-height:32px;padding:5px 7px;font-size:12px;display:inline-flex}.project-member-flags input{accent-color:#1d83a4;width:14px;height:14px}.quota-dialog{width:min(540px,100%)}.quota-grid{gap:10px;display:grid}.quota-grid label{background:#f8fafb;border:1px solid #e2e7ee;border-radius:8px;grid-template-columns:minmax(0,1fr) 120px;align-items:center;gap:4px 12px;padding:10px;display:grid}.quota-grid span{color:#25313d;font-weight:700}.quota-grid input{background:#fff;border:1px solid #cbd3dc;border-radius:6px;min-height:36px;padding:7px 9px}.quota-grid small{color:#6b7480;grid-column:1/-1}.quota-unlimited-row{color:#44515f;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.quota-unlimited-row input{width:auto;min-height:auto;padding:0}@media (width<=980px){.upload-grid,.admin-grid,.template-grid,.viewer-layout{grid-template-columns:1fr}.viewer-layout{min-height:auto}.viewer-main{min-height:540px}.project-topbar,.project-workstation{grid-template-columns:1fr}.project-tabs{justify-content:flex-start;overflow-x:auto}.project-session-actions{flex-wrap:wrap}.project-right-rail{border-top:1px solid #314255;border-left:0;max-height:none}.project-viewer-region .viewer-layout{min-height:auto}}@media (width<=760px){.app-shell{grid-template-columns:1fr}.sidebar{padding:18px}.nav-list{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}.user-block{margin-top:16px}.workspace{padding:18px}.workspace-mode .workspace{padding:0}.topbar,.filter-row,.upload-actions{flex-direction:column;align-items:stretch}.search-box{min-width:0}.record-row,.record-row-managed{grid-template-columns:auto minmax(0,1fr)}.record-row-managed .record-type,.record-row-managed>span:not(.record-type),.record-row-managed .row-actions{grid-column:2}.user-row,.team-space-row,.project-member-create-panel,.project-member-add-row,.project-member-row,.template-row{grid-template-columns:1fr}.template-row .row-actions{justify-content:stretch}.row-actions .table-action{flex:110px}.audit-row{grid-template-columns:1fr}.viewer-toolbar{gap:8px}.project-topbar{padding:10px}.project-topbar-actions,.project-session-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.project-command{justify-content:center}.project-tab{min-width:170px}.project-viewer-region{padding:8px}.rail-tool-grid,.layout-button-grid{grid-template-columns:1fr}.tool-button{flex:120px;justify-content:center}.measurement-mode-status,.measurement-form-header,.measurement-row-header{flex-direction:column;align-items:stretch}.measurement-form-row,.measurement-field-grid,.measurement-details dl{grid-template-columns:1fr}.stage-readout{overflow-wrap:anywhere;right:14px}.modal-actions{flex-direction:column-reverse;align-items:stretch}}
