.measurement-viewer{margin-bottom:25px}.measurement-viewer .eyebrow{margin-bottom:7px}.viewer-images{display:grid;grid-template-columns:1.5fr 1fr;gap:1px;background:var(--line)}.viewer-pane{background:var(--surface);min-width:0}.viewer-pane-heading{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;gap:12px}.viewer-pane-heading a{font-size:11px}.viewer-canvas{background:#071525;min-height:300px;height:360px;display:flex;align-items:center;justify-content:center;padding:16px;overflow:hidden}.viewer-canvas img{display:block;object-fit:contain;max-height:328px;max-width:100%;height:auto;width:auto}.enface-stage{position:relative;max-width:100%}.slice-indicator{position:absolute;left:0;right:0;height:1px;background:#12b981;box-shadow:0 0 0 1px rgba(18,185,129,.3);pointer-events:none}.slice-indicator[hidden]{display:none}.viewer-slider{padding:20px 22px}.viewer-slider label{font-size:12px;display:block}.viewer-slider output{float:right;color:var(--muted);font-variant-numeric:tabular-nums}.viewer-slider input{width:100%;margin:7px 0 0;padding:0;border:0;accent-color:var(--accent)}.viewer-slider select{display:block;width:100%;margin-top:10px;font-size:11px}.viewer-toolbar{display:flex;align-items:center;gap:25px;padding:15px 22px;border-top:1px solid var(--line);flex-wrap:wrap;font-size:11px}.viewer-toolbar label{display:flex;align-items:center;gap:12px}.viewer-toolbar input{min-height:25px;padding:0;border:0;accent-color:var(--accent);width:110px}.viewer-image-error{color:#943c3b}.viewer-disclaimer{padding:15px 22px;background:var(--soft);border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.viewer-disclaimer p{margin:3px 0}
@media(max-width:1100px){.viewer-images{grid-template-columns:1fr}.viewer-canvas{height:320px;min-height:240px}.viewer-canvas img{max-height:288px}}
@media(max-width:740px){.measurement-viewer .panel-heading{align-items:flex-start;flex-direction:column}.viewer-pane-heading{padding:16px}.viewer-canvas{height:270px;min-height:180px}.viewer-canvas img{max-height:238px}.viewer-toolbar{gap:12px}.viewer-slider{padding:16px}}

.measurement-report{margin:24px 0}.report-status,.report-coordinates,.report-analysis{padding:12px 24px;margin:0}.report-controls{flex-wrap:wrap;gap:16px}.report-controls label{display:flex;align-items:center;gap:8px}.report-controls input[type=number]{width:100px}.report-controls input[type=checkbox]{min-height:16px}.report-viewport{overflow:auto;max-height:72vh;background:#081323;padding:12px;min-height:180px}.report-stage{position:relative;max-width:none}.report-stage img{display:block;width:100%;height:100%;user-select:none}.report-stage svg{position:absolute;inset:0;width:100%;height:100%;touch-action:manipulation;cursor:crosshair}.report-measurements{padding:8px 44px;font-size:12px}.report-org{padding:24px}.report-org svg{width:100%;max-width:800px;background:#f5f9fc;border:1px solid var(--line)}.report-org p{font-size:12px}.report-controls select{max-width:280px}.report-controls [data-report-tool]{max-width:260px}
.rpe-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;padding:24px}.rpe-tile{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-card)}.rpe-tile-picture{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;background:#071522;color:white}.rpe-tile-picture img{width:100%;height:100%;object-fit:contain}.rpe-layer-badge{position:absolute;left:10px;bottom:10px;background:var(--accent-2,#0f4a7d);color:white;padding:4px 8px;border-radius:999px;font-size:12px}.rpe-tile-body{padding:16px}.rpe-tile-body h2{font-size:18px}.rpe-tile-body p{font-size:13px}.rpe-placeholder{padding:20px;text-align:center}.measurement-table-details{margin:20px 0}.measurement-table-details>summary{padding:16px;cursor:pointer;color:var(--accent)}.volume-preview{margin:24px 0}.volume-cover{display:grid;grid-template-columns:minmax(160px,280px) 1fr;gap:28px;padding:24px}.volume-cover>img{width:100%;height:260px;object-fit:contain;background:#071522;border-radius:8px}.volume-cover .button{margin:8px 8px 0 0}.volume-planes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0 24px}.volume-plane{background:#071522;color:white;padding:16px;border-radius:8px}.volume-plane h3{font-size:13px;color:#a9c5d9}.volume-plane canvas{width:100%;height:auto;display:block;cursor:crosshair;image-rendering:pixelated}.volume-tools,.volume-sliders{display:flex;gap:24px;flex-wrap:wrap;padding:20px 24px;align-items:center}.volume-sliders>label{flex:1;min-width:160px}.volume-sliders input{display:block;width:100%}.volume-sliders output{font-size:12px;color:var(--muted)}.volume-status{padding:0 24px;font-size:13px;color:var(--muted)}@media(max-width:800px){.volume-cover{grid-template-columns:1fr}.volume-planes{grid-template-columns:1fr}.volume-plane canvas{max-height:300px;object-fit:contain}}
.volume-planes{align-items:start}.volume-plane{height:340px;display:flex;flex-direction:column}.volume-plane canvas{max-width:var(--preview-max-width,100%);margin:auto;object-fit:fill}
/* Persisted layer PNGs have [X,Y] rows; projection PNGs have [Y,X] rows. Match One's display convention only on cards. */
/* Compact mosaic: keep the report grid, but move descriptions/actions to the clicked volume's details. */
.mosaic-group .mosaic-grid{width:min(100%,calc(var(--mosaic-columns)*180px));min-width:calc(var(--mosaic-columns)*64px);grid-template-columns:repeat(var(--mosaic-columns),minmax(0,1fr));gap:3px;margin-inline:auto;align-items:start}.mosaic-group .mosaic-cell{border-radius:2px;overflow:hidden}.mosaic-group .mosaic-cell.selected{outline-offset:0;outline:3px solid var(--accent)}.mosaic-cell .rpe-tile.compact{border:0;border-radius:2px;box-shadow:none}.mosaic-cell .mosaic-missing{min-height:0;aspect-ratio:1;border-radius:2px;background:#0d2030;border-color:#304354;color:#a0b3c1;padding:0}.mosaic-cell .mosaic-missing>span:not(.sr-only){font-size:16px}.mosaic-tile-number,.mosaic-version-count{position:absolute;top:6px;background:#071522c9;color:#e3edf5;border-radius:3px;padding:2px 6px;font-size:11px;line-height:1.4}.mosaic-tile-number{left:6px}.mosaic-version-count{right:6px}.compact .rpe-tile-picture:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.compact .rpe-tile-picture:hover{box-shadow:inset 0 0 0 2px var(--accent)}.compact .rpe-tile-picture:hover img{opacity:.85}.compact .rpe-placeholder{font-size:11px;padding:8px}.compact .rpe-layer-badge{font-size:9px;left:4px;bottom:4px;padding:2px 4px}
.one-enface{transform:rotate(180deg)}.one-projection{transform:rotate(90deg) scaleX(-1)}.bscan-thumbnails img{transform:scaleX(-1)}.cover-enface-picture{position:relative;aspect-ratio:1;background:#071522;overflow:hidden;border-radius:8px 8px 0 0}.cover-enface-picture img{display:block;width:100%;height:100%;object-fit:contain}
.mosaic-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.mosaic-gallery .mosaic-group{margin:0}.mosaic-gallery .mosaic-group.grouped{grid-column:1/-1}.mosaic-gallery .standalone .rpe-gallery{display:block;padding:16px}.mosaic-gallery .standalone>.muted{font-size:11px}
.mosaic-gallery{padding:20px}.mosaic-group{margin:0 0 24px}.mosaic-scroll{overflow:auto;padding:20px}.mosaic-grid{display:grid;grid-template-columns:repeat(var(--mosaic-columns),minmax(200px,1fr));gap:12px;align-items:stretch}.mosaic-cell{min-width:0;border-radius:12px}.mosaic-cell.selected{outline:3px solid var(--accent);outline-offset:3px}.mosaic-cell .rpe-tile{height:100%}.mosaic-cell .rpe-tile-body{padding:12px}.mosaic-cell .rpe-tile-body h2{font-size:16px}.rpe-tile-body .button{display:block;margin-top:8px;font-size:12px;text-align:center}.mosaic-missing{height:100%;min-height:240px;border:1px dashed var(--line);border-radius:12px;background:var(--background);color:var(--muted);display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;padding:16px}.mosaic-missing span{font-size:12px}.mosaic-hint{padding:0 20px 16px;font-size:12px}.tile-versions{font-size:12px;display:block;margin-bottom:12px}.bscan-thumbnails{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;background:#071522}.bscan-thumbnails figure{margin:0;min-width:0}.bscan-thumbnails img{display:block;width:100%;height:90px;object-fit:contain}.bscan-thumbnails figcaption{color:#b6cbd9;font-size:10px;text-align:center;padding-top:5px}.bscan-empty{display:flex;height:90px;align-items:center;text-align:center;justify-content:center;color:#aac1d0;font-size:10px;padding:6px}.volume-cover-images{min-width:0}.volume-cover-images>img{width:100%;height:260px;object-fit:contain;background:#071522;border-radius:8px 8px 0 0}.volume-versions{display:flex;flex-wrap:wrap;gap:10px;padding:16px 24px}.volume-versions .button{font-size:12px}.mosaic-group>.muted{padding:16px 24px 0}.mosaic-group .rpe-gallery{grid-template-columns:repeat(auto-fill,minmax(220px,320px))}
/* Bulk selection stays outside tile links; compact mosaics keep their report layout. */
/* One's list preview: horizontal B-scan, vertical B-scan, then RPE. Never crop image data. */
.rpe-cover-frame{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:0;overflow:hidden}
.one-preview-strip{display:grid;grid-template-columns:2fr 1fr;gap:2px;aspect-ratio:auto;padding:10px;background:#071522;align-items:start}
.one-preview-strip .bscan-thumbnails{gap:2px;padding:0;background:transparent;min-width:0}
.one-preview-strip .bscan-thumbnails figure,.one-preview-strip .rpe-cover-frame,.one-preview-strip .cover-enface-picture{position:relative;aspect-ratio:1;min-width:0;height:auto;border-radius:0;background:#000;overflow:hidden}
.one-preview-strip .bscan-thumbnails img,.one-preview-strip .rpe-cover-frame img,.one-preview-strip .cover-enface-picture img{width:100%;height:100%;object-fit:contain}
.one-preview-strip .bscan-thumbnails figcaption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;padding:0}
.one-preview-strip .bscan-empty{height:100%;font-size:10px}.one-preview-strip .rpe-layer-badge{font-size:9px;left:3px;bottom:3px;padding:1px 4px}
.one-preview-strip .rpe-placeholder{font-size:10px;padding:4px}.mosaic-gallery{grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr))}
/* Orientation belongs to the pixels. Loading/error text and accessible names stay upright. */
.thumbnail-image{position:relative;display:grid;grid-template-columns:minmax(0,1fr);width:100%;height:100%;min-width:0;overflow:hidden;background:#071522}
.thumbnail-image>img,.thumbnail-image>noscript img{display:block;grid-area:1/1;width:100%;height:100%;object-fit:contain;color:transparent;font-size:0}
.thumbnail-image>[data-thumbnail-image]{opacity:0}
.thumbnail-image[data-thumbnail-state="ready"]>[data-thumbnail-image]{opacity:1}
.thumbnail-status{grid-area:1/1;align-self:stretch;display:grid;place-items:center;text-align:center;color:#b6cbd9;font-size:11px;padding:8px;transform:none;overflow-wrap:anywhere}
.thumbnail-image[data-thumbnail-state="ready"]>.thumbnail-status,.thumbnail-image:not([data-thumbnail-state="error"]) [data-thumbnail-error],.thumbnail-image[data-thumbnail-state="error"] [data-thumbnail-loading]{display:none}
.thumbnail-image>noscript{grid-area:1/1}
.thumbnail-image:has(>noscript img)>.thumbnail-status{display:none}
.bscan-thumbnails .thumbnail-image{height:90px}
.one-preview-strip .thumbnail-image,.one-preview-strip .bscan-thumbnails .thumbnail-image{height:100%}
.one-preview-strip .thumbnail-status{font-size:10px;padding:4px}
.volume-cover{grid-template-columns:minmax(280px,1fr) 1fr}.volume-cover-images.one-preview-strip{align-self:start;border-radius:8px}
@media(max-width:800px){.volume-cover{grid-template-columns:1fr}}
.rpe-tile{position:relative}.download-tile-select{position:absolute;top:8px;right:8px;z-index:3;display:grid;place-items:center;padding:6px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-small);cursor:pointer}.download-tile-select input{width:18px;height:18px;min-height:18px;margin:0;accent-color:var(--accent)}.bulk-download-tools{padding:18px 22px;border-bottom:1px solid var(--line)}.bulk-download-tools>div{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.bulk-download-tools p{margin:12px 0 0;font-size:12px}

/* Clean brand chrome only: clinical image stages, axes and compact mosaic geometry stay unchanged. */
.viewer-pane-heading,
.viewer-toolbar,
.bulk-download-tools,
.volume-versions {
    background: var(--soft);
}

.viewer-pane-heading h3,
.viewer-slider label,
.volume-tools label,
.volume-sliders > label {
    color: var(--ink);
    font-weight: 600;
}

.report-status,
.report-coordinates,
.report-analysis {
    color: var(--muted);
}

.report-controls input[type=number] {
    background: var(--surface);
    border-radius: var(--radius-small);
    box-shadow: inset 0 0 0 1px var(--line-strong);
}

.measurement-table-details > summary {
    background: var(--soft);
    border-radius: var(--radius-small);
    font-weight: 600;
}

.download-tile-select:focus-within {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}
