/* Readable numeric cells, independent axis scrolling and stable editor geometry. */
.suite-desktop .calibration-grid>div{min-width:0}
.suite-desktop .matrix-tools{min-width:0;margin:0 0 8px}
.suite-desktop:not(.has-map) .matrix-tools{display:none}
.matrix-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;margin-bottom:5px}
.matrix-toolbar>label{display:flex;align-items:center;gap:7px;margin:0 0 0 auto;font-size:10px;color:var(--muted)}
.matrix-toolbar select{width:auto;min-height:29px;padding:4px 8px;font-size:11px}
.suite-desktop .matrix-toolbar .button{font-size:10px;min-height:29px;padding:4px 9px}
.matrix-mode{font-size:10px;font-weight:600;color:#92d7b9;border-left:2px solid #5bbf99;padding:3px 7px;background:#122a29}
.matrix-mode.readonly{background:#302918;border-color:#d6ad5e;color:#e7c786}
.matrix-cell-info,.matrix-overflow{margin:4px 0;font:10px/1.55 Consolas,monospace;color:#a4c3db;overflow-wrap:anywhere}
.matrix-overflow{color:#819fb7;font:9px/1.5 'Segoe UI',Arial,sans-serif}
.suite-desktop .matrix-table,.suite-desktop #expandedtable.matrix-table{table-layout:fixed;min-width:100%;border-collapse:separate;border-spacing:0;background:#11202c}
.matrix-table .matrix-axis-column{width:var(--matrix-axis-width,64px)}
.matrix-table .matrix-value-column{width:var(--matrix-cell-width,60px)}
.suite-desktop #editortable.matrix-table th,.suite-desktop #expandedtable.matrix-table th{box-sizing:border-box;min-width:0;font:600 12px/1.35 Consolas,monospace;color:#b7d9f4;padding:8px 6px;border-right:1px solid #304b60;border-bottom:1px solid #304b60;white-space:nowrap;text-align:center;background:#1b3042}
.suite-desktop .matrix-table thead th{position:sticky;top:0;z-index:4;height:34px}
.suite-desktop .matrix-table tbody th.rowhead{position:sticky;left:0;top:auto;z-index:3;width:var(--matrix-axis-width,64px)}
.suite-desktop .matrix-table thead th.matrix-corner{left:0;z-index:6;width:var(--matrix-axis-width,64px);background:#203b50}
.suite-desktop .matrix-table th.active-axis{background:#285a77!important;color:#e7f7ff!important}
.suite-desktop #editortable.matrix-table td,.suite-desktop #expandedtable.matrix-table td{box-sizing:border-box;min-width:0;width:var(--matrix-cell-width,60px);padding:0;border-right:1px solid #223d4b;border-bottom:1px solid #223d4b}
.suite-desktop #editortable.matrix-table input,.suite-desktop #expandedtable.matrix-table input{box-sizing:border-box;display:block;width:100%;min-width:0;height:var(--matrix-row-height,34px);min-height:var(--matrix-row-height,34px);padding:5px 4px;border:0;border-radius:0;font:600 var(--matrix-font-size,13px)/1.35 Consolas,'Courier New',monospace;color:#10222a;text-align:center;font-variant-numeric:tabular-nums;touch-action:manipulation}
.suite-desktop .matrix-table input.changed{box-shadow:inset 0 0 0 2px #f8bc44}
.suite-desktop .matrix-table input[readonly]{cursor:default;box-shadow:inset 0 -2px #577f98}
.suite-desktop .matrix-table input:focus{outline:2px solid #123f66;outline-offset:-3px;position:relative;z-index:1}
.suite-desktop .matrix-table input::selection{background:#154a79;color:#fff}
.suite-desktop .matrix-table input.reference-different{border-bottom:2px solid #936014}
.suite-desktop .calibration-main .table-scroll{min-width:0;min-height:160px;overscroll-behavior:contain;overflow:auto;scrollbar-gutter:stable;scroll-padding:38px 6px 6px var(--matrix-axis-width,64px);position:relative;background:#101c28}
.suite-desktop .calibration-main .calibration-grid.matrix-stacked{grid-template-columns:minmax(0,1fr)}
.suite-desktop .calibration-grid.matrix-stacked .graph-card{min-height:240px;max-height:350px}
.suite-desktop #surfacechart{height:clamp(220px,32vh,330px);min-height:220px;max-height:330px;aspect-ratio:auto;display:block}
.suite-desktop #viewercontent.matrix-stacked.viewer-workbench{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(220px,1fr) 230px}
.suite-desktop #viewercontent .table-scroll{min-width:0;position:relative;scrollbar-gutter:stable;scroll-padding:38px 6px 6px 64px}
.suite-desktop .viewer-controls .matrix-tools{border-top:1px solid var(--line);padding-top:7px;margin:7px 0 0}
.suite-desktop .viewer-controls .matrix-toolbar{margin:0}
.suite-desktop .viewer-controls .matrix-cell-info{font-size:10px;margin:4px 0}
.suite-desktop .viewer-controls .matrix-overflow{font-size:9px;margin:2px 0}
@media(max-width:760px){
 .suite-desktop .matrix-toolbar{gap:6px}.suite-desktop .matrix-toolbar>label{font-size:10px;margin-left:auto}.suite-desktop .matrix-toolbar select{min-height:35px;font-size:12px}.suite-desktop .matrix-toolbar .button{min-height:35px;font-size:10px}
 .suite-desktop .matrix-mode{font-size:9px}.suite-desktop .matrix-cell-info{font-size:10px;line-height:1.6}.suite-desktop .matrix-overflow{font-size:9px}
 .suite-desktop #editortable.matrix-table input,.suite-desktop #expandedtable.matrix-table input{height:max(44px,var(--matrix-row-height,34px));min-height:44px;font-size:max(16px,var(--matrix-font-size,16px));padding:7px 4px}
 .suite-desktop #editortable.matrix-table th,.suite-desktop #expandedtable.matrix-table th{font-size:11px;padding:8px 5px}
 .suite-desktop .matrix-table thead th{height:36px}.suite-desktop .calibration-main .table-scroll{min-height:160px}
 .suite-desktop .calibration-grid.matrix-stacked .graph-card{min-height:230px;max-height:320px}.suite-desktop #surfacechart{min-height:220px;height:250px}
 .suite-desktop .viewer-controls .matrix-toolbar>label{margin-left:0}.suite-desktop .viewer-controls .matrix-mode{flex:1 1 100%}
}

/* Mobile map navigator: avoid the clipped cards seen on narrow iPhone viewports. */
@media (max-width:760px) {
 .suite-desktop .navigator-pane,
 .suite-desktop .calibration-sidebar {min-width:0;max-width:100%;overflow-x:hidden}
 .suite-desktop .navigator-pane .candidate-button,
 .suite-desktop .navigator-pane button,
 .suite-desktop .calibration-sidebar .candidate-button {max-width:100%;overflow-wrap:anywhere;white-space:normal}
 .suite-desktop .navigator-pane .map-toolbar,
 .suite-desktop .navigator-pane .map-filters {min-width:0;max-width:100%}
 .suite-desktop .navigator-pane .search-field,
 .suite-desktop .navigator-pane .category-field {min-width:0;width:100%}
 .suite-desktop .calibration-main,
 .suite-desktop .calibration-layout,
 .suite-desktop .calibration-grid {min-width:0}
 .suite-desktop .viewer-actions .button-group {display:flex;flex-wrap:wrap;gap:6px}
 .suite-desktop .viewer-actions .button {flex:1 1 auto;min-height:42px}
}
/* The existing 3D-only expanded viewer fills the available workspace. */
.suite-desktop #viewercontent:not(.viewer-workbench) {min-width:0}
.suite-desktop #viewercontent canvas {max-width:100%;touch-action:none}
@media (max-width:760px) and (orientation:landscape) {
 .suite-desktop #viewercontent {min-height:55dvh}
 .suite-desktop #viewercontent canvas {min-height:50dvh}
}

/* Graph-only expanded mode uses the visible viewport, not a fixed canvas height. */
.suite-desktop .fullscreen-viewer {height:100dvh;max-height:100dvh;box-sizing:border-box;min-height:0}
.suite-desktop .fullscreen-viewer #viewercontent:not(.viewer-workbench) {flex:1 1 auto;min-height:180px;display:flex;overflow:hidden}
.suite-desktop .fullscreen-viewer #viewercontent:not(.viewer-workbench) .viewer-graph {flex:1 1 auto;width:100%;height:100%;min-height:0;min-width:0}
.suite-desktop .fullscreen-viewer #viewercontent:not(.viewer-workbench) .viewer-graph canvas {display:block;width:100%;height:100%;max-height:none;min-height:0;object-fit:fill;touch-action:none}
@media(max-width:760px) {
 .suite-desktop .fullscreen-viewer {padding:8px;gap:5px}
 .suite-desktop .fullscreen-viewer .viewer-header {margin-bottom:4px;gap:6px}
 .suite-desktop .fullscreen-viewer .viewer-controls {flex:0 0 auto;max-height:34dvh;overflow:auto}
 .suite-desktop .fullscreen-viewer .viewer-footer {flex:0 0 auto;max-height:18dvh;overflow:auto}
 .suite-desktop .fullscreen-viewer #viewercontent:not(.viewer-workbench) {min-height:120px}
}
@media(max-width:950px) and (orientation:landscape) {
 .suite-desktop .fullscreen-viewer .viewer-controls {max-height:22dvh}
 .suite-desktop .fullscreen-viewer .viewer-footer {max-height:12dvh}
}

.suite-desktop .viewer-point-editor{position:fixed;right:16px;bottom:16px;z-index:110;display:flex;align-items:center;flex-wrap:wrap;gap:8px;max-width:min(460px,calc(100vw - 32px));padding:12px;border:1px solid #4c738a;border-radius:9px;background:#101f2d;box-shadow:0 8px 32px #0009;color:#e2edf5}
.suite-desktop .viewer-point-editor[hidden]{display:none}
.suite-desktop .viewer-point-editor label{flex-basis:100%;font-size:12px}
.suite-desktop .viewer-point-editor input{width:110px;min-height:42px;font-size:16px;color:#fff;background:#142b3a;border:1px solid #63849b;border-radius:5px}
.suite-desktop .viewer-point-editor button{min-height:42px;padding:8px 12px}
.suite-desktop .viewer-point-editor span{flex-basis:100%;font-size:11px;color:#b5cad8}
@media(max-width:760px){.suite-desktop .viewer-point-editor{left:8px;right:8px;bottom:8px;max-width:none}}

/* Immersive 3D: hide the oversized search/ECU/footer panels while editing. */
#fullscreenviewer.graph-immersive{position:fixed;inset:0;width:100vw;height:100dvh;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden;padding:0!important;gap:0!important;box-sizing:border-box}
#fullscreenviewer.graph-immersive .viewer-controls,#fullscreenviewer.graph-immersive .viewer-footer{display:none!important}
#fullscreenviewer.graph-immersive .viewer-header{flex:0 0 auto;display:flex;align-items:center;gap:8px;margin:0!important;padding:calc(env(safe-area-inset-top,0px) + 6px) 12px 7px;background:#0e1b28;min-height:52px;box-sizing:border-box}
#fullscreenviewer.graph-immersive .viewer-header>div{flex:1;min-width:0}
#fullscreenviewer.graph-immersive #viewertitle{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
#fullscreenviewer.graph-immersive #vieweraxes{display:none}
#fullscreenviewer.graph-immersive #viewer-fit-graph{display:inline-flex;align-items:center;white-space:nowrap}
#fullscreenviewer.graph-immersive #viewercontent{display:flex!important;flex:1 1 0!important;min-height:0!important;width:100%;overflow:hidden!important;padding:0!important}
#fullscreenviewer.graph-immersive #viewercontent .viewer-graph{flex:1 1 0!important;min-height:0!important;width:100%;height:100%!important}
#fullscreenviewer.graph-immersive #viewercontent .viewer-graph canvas{display:block;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;touch-action:none}
#fullscreenviewer.graph-immersive .viewer-point-editor{bottom:calc(env(safe-area-inset-bottom,0px) + 8px)}
@media(max-width:760px){#fullscreenviewer.graph-immersive .viewer-header{padding-left:8px;padding-right:8px}#fullscreenviewer.graph-immersive .viewer-header button{font-size:11px;padding:6px 8px;min-height:36px}}

/* True full-screen spreadsheet view: independent scrolling in both directions. */
#fullscreenviewer.table-immersive{position:fixed;inset:0;width:100vw;height:100dvh;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden;padding:0!important;gap:0!important;box-sizing:border-box}
#fullscreenviewer.table-immersive .viewer-controls,#fullscreenviewer.table-immersive .viewer-footer{display:none!important}
#fullscreenviewer.table-immersive .viewer-header{flex:0 0 auto;display:flex;align-items:center;gap:8px;margin:0!important;padding:calc(env(safe-area-inset-top,0px) + 6px) 12px 7px;background:#0e1b28;min-height:52px;box-sizing:border-box}
#fullscreenviewer.table-immersive .viewer-header>div{flex:1;min-width:0}
#fullscreenviewer.table-immersive #viewertitle{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
#fullscreenviewer.table-immersive #vieweraxes{display:none}
#fullscreenviewer.table-immersive #viewercontent{display:flex!important;flex:1 1 0!important;min-height:0!important;min-width:0;width:100%;height:auto!important;overflow:hidden!important;padding:0!important}
#fullscreenviewer.table-immersive #viewercontent .table-scroll{flex:1 1 auto;width:100%;height:100%!important;max-height:none!important;min-height:0!important;min-width:0;overflow:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
#fullscreenviewer.table-immersive #viewercontent table{margin:0;max-width:none}
@media(max-width:760px){#fullscreenviewer.table-immersive .viewer-header{padding-left:8px;padding-right:8px}#fullscreenviewer.table-immersive .viewer-header button{font-size:11px;padding:6px 8px;min-height:36px}#fullscreenviewer.table-immersive #viewercontent .table-scroll{padding-bottom:env(safe-area-inset-bottom,0px)}}
