/* The section is a working surface, with the same width as the point cloud. */
.app[data-screen] .layout {
  display:grid;
  grid-template-columns:294px minmax(0,1fr);
  grid-template-rows:auto minmax(0,1fr);
  grid-template-areas:"tools views" "tools cloud";
}
.app[data-screen] .sidebar {grid-area:tools;width:auto;min-width:0;}
.workspace-views {grid-area:views;display:flex;align-items:center;gap:12px;padding:6px 12px;background:var(--panel);border-bottom:1px solid var(--line);z-index:5;}
.view-label,.view-description {font-size:12px;color:var(--muted);}
.view-label {max-width:150px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.view-switch {display:flex;gap:6px;}
.view-switch .btn {min-width:96px;min-height:48px;}
.view-switch .btn[aria-pressed="true"] {background:#3b3324;color:#f4ddaa;border-color:var(--teal);}
.view-description {margin-left:auto;}
.app[data-screen] .viewer {grid-area:cloud;min-height:0;}
.app[data-screen] .profile {grid-area:section;position:relative;inset:auto;flex:none;width:auto;height:auto;min-width:0;min-height:0;visibility:visible;border:0;box-shadow:none;display:none;}
.app[data-screen="profile"] .layout {grid-template-areas:"tools views" "tools section";}
.app[data-screen="profile"] .viewer {display:none;}
.app[data-screen="profile"] .profile,.app[data-screen="split"] .profile {display:flex;}
.app[data-screen="split"] .layout {grid-template-rows:auto minmax(150px,1fr) minmax(320px,2fr);grid-template-areas:"tools views" "tools cloud" "tools section";}
.app[data-screen="split"] .profile {border-top:2px solid var(--line);}
.app[data-screen] .profile-head {flex:0 0 auto;padding:7px 12px;align-items:center;min-height:58px;}
.app[data-screen] .profile-head h2 {margin:0;font-size:17px;}
.profile-head-actions {display:flex;align-items:center;gap:8px;}
.profile-scale {display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;white-space:nowrap;}
.profile-scale .select {width:68px;min-height:44px;padding:0 8px;}
.app[data-screen] .profile-main {display:flex;flex-direction:column;min-height:0;gap:8px;padding:8px 12px;overflow-y:auto;}
.app[data-screen] .mode-tabs {flex:1;max-width:430px;display:flex;padding:0;background:transparent;border:0;border-radius:0;gap:8px;}
.app[data-screen] .mode-tabs .btn {flex:1;min-height:44px;border:1px solid var(--line);background:var(--panel2);font-size:14px;}
.app[data-screen] .mode-tabs .btn.active {background:#24616b;border-color:#71b6bf;}
.app[data-screen] .profile-chart {position:relative;flex:1 0 160px;min-height:160px;margin:0;border-radius:8px;overflow:hidden;}
.app[data-screen] .profile-chart canvas {position:absolute;inset:0;display:block;width:100%;height:100%;}
.app[data-screen] .chart-hint {top:3px;left:12px;font-size:10px;line-height:11px;z-index:1;}
.app[data-screen] .metrics {flex:0 0 auto;display:flex;gap:20px;margin:0;}
.app[data-screen] .metric {display:flex;align-items:baseline;gap:8px;padding:0;border:0;background:transparent;border-radius:0;}
.app[data-screen] .metric strong {font-size:14px;}
.app[data-screen] .metric small {font-size:12px;letter-spacing:0;text-transform:none;}
.profile-details {position:relative;flex:0 0 auto;font-size:13px;color:var(--muted);}
.profile-details summary {min-height:44px;display:flex;align-items:center;cursor:pointer;}
.profile-details summary::before {content:'▸';margin-right:8px;}
.profile-details[open] summary::before {content:'▾';}
.profile-notes {position:absolute;bottom:calc(100% + 14px);left:0;width:min(400px,calc(100vw - 48px));max-height:min(50vh,350px);overflow-y:auto;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px #0008;z-index:8;}
.profile-notes .icon-btn {min-width:44px;min-height:44px;}
.app[data-screen] .profile-footer {flex:0 0 auto;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;}
.app[data-screen] .profile-actions {gap:8px;}
.app[data-screen] .profile-actions .btn {min-height:48px;min-width:120px;}
.app[data-screen="split"] .viewer .title-overlay,.app[data-screen="split"] .viewer .guide {display:none;}
.app[data-screen="split"] .viewer-bottom {bottom:8px;}
.app[data-screen="split"] .legend {padding:4px 9px;}
.workspace-views button:focus-visible,.profile-details summary:focus-visible {outline:3px solid #8ce3f5;outline-offset:2px;}
.section-positioner {position:absolute;z-index:6;right:16px;top:76px;width:270px;max-height:calc(100% - 92px);overflow-y:auto;overscroll-behavior:contain;}
.section-positioner:not([open]) {width:190px;}
.section-positioner summary {display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 12px;cursor:pointer;font-size:14px;font-weight:700;list-style:none;}
.section-positioner summary::-webkit-details-marker {display:none;}
.section-positioner summary::after {content:'＋';font-size:18px;color:var(--gold);}
.section-positioner[open] summary::after {content:'−';}
.section-positioner[open] summary {border-bottom:1px solid var(--line);}
.section-positioner-body {padding:10px;}
.section-positioner .note {margin:4px 0 0;font-size:12px;line-height:1.5;color:var(--muted);}
.section-positioner .field {font-size:12px;}
.section-positioner .range {min-height:44px;}
.section-positioner summary:focus-visible {outline:3px solid #8ce3f5;outline-offset:-3px;}
.app[data-screen] .sidebar {z-index:9;}
.app[data-screen="points"] .title-overlay {max-width:calc(100% - 320px);}
.app[data-screen="profile"] .section-positioner {top:136px;max-height:calc(100% - 152px);}
@media(min-width:700px) {
  .app[data-screen="profile"] .section-positioner {top:76px;max-height:calc(100% - 92px);}
  .app[data-screen="profile"] .profile-head {padding-right:220px;}
}
@media(min-width:650px) {
  .app[data-screen="points"] .layout:has(#sectionPositioner[open]) #glCanvas,
  .app[data-screen="points"] .layout:has(#sectionPositioner[open]) #planScene {width:calc(100% - 286px);right:auto;}
}
@media(max-width:649px) {
  .section-positioner {right:10px;width:min(270px,calc(100% - 20px));}
  .section-positioner:not([open]) {top:132px;}
  .app[data-screen="points"] .title-overlay {display:none;}
}
@media(max-width:1100px) {
  .app[data-screen] .layout {grid-template-columns:minmax(0,1fr);grid-template-areas:"views" "cloud";}
  .app[data-screen] .sidebar {grid-area:auto;width:306px;}
  .app[data-screen="profile"] .layout {grid-template-areas:"views" "section";}
  .app[data-screen="split"] .layout {grid-template-areas:"views" "cloud" "section";}
  .view-description {display:none;}
  .view-switch {flex:1;}
  .view-switch .btn {flex:1;}
}
@media(max-width:520px) {
  .workspace-views {padding:6px 8px;gap:8px;}
  .view-label {display:none;}
  .view-switch .btn {min-width:0;}
  .app[data-screen] .profile-head {padding:6px 8px;flex-wrap:wrap;}
  .app[data-screen] .mode-tabs {order:3;flex:1 0 100%;max-width:none;}
  .app[data-screen] .profile-head h2 {font-size:15px;}
  .app[data-screen] .profile-main {padding:6px 8px;}
  .app[data-screen] .metrics {gap:12px;flex-wrap:wrap;}
  .app[data-screen] .metric {gap:5px;}
  .app[data-screen] .profile-footer {gap:5px;padding:6px 8px;flex-wrap:wrap;}
  .app[data-screen] .profile-actions {margin-left:auto;}
  .app[data-screen] .profile-actions .btn {min-width:88px;}
  .app[data-screen] .sidebar {width:min(306px,90vw);}
}
@media(max-height:650px) {
  .app[data-screen="split"] .layout {grid-template-rows:auto minmax(100px,1fr) minmax(280px,2fr);overflow-y:auto;}
  .app[data-screen="split"] .profile-head {min-height:50px;}
}

.scan-launch {width:100%;margin-bottom:8px;min-height:44px;}
.collection-panel {position:absolute;left:18px;bottom:18px;z-index:9;width:min(550px,calc(100% - 36px));padding:16px;background:rgba(13,27,37,.97);}
.collection-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;}
.collection-heading h2 {font-size:20px;margin:0;}
.collection-panel p {font-size:13px;line-height:1.5;margin:10px 0;color:var(--muted);}
.scan-controls {display:flex;align-items:center;gap:8px;}
.scan-controls .btn {min-width:90px;min-height:44px;}
.scan-controls label {display:flex;align-items:center;gap:8px;margin-left:auto;}
.scan-controls .select {width:80px;min-height:44px;}
.scan-progress-label {display:flex;justify-content:space-between;margin:13px 0 4px;font-size:13px;}
.collection-panel .range {min-height:30px;}
.collection-panel .scan-disclosure {font-size:11px;margin-bottom:0;}
.collecting .section-positioner,.collecting .title-overlay,.collecting .viewer-bottom {display:none;}
.app.collecting #glCanvas {width:100%;}
@media(max-width:650px){.collection-panel{left:8px;bottom:8px;width:calc(100% - 16px);padding:10px;}.collection-heading h2{font-size:17px;}.collection-heading .btn{min-height:44px;}.collection-panel p{font-size:12px;margin:6px 0;}.scan-controls .btn{min-width:66px;}.scan-controls{gap:5px;}.scan-controls label{font-size:12px;}.collection-panel .scan-disclosure{font-size:10px;}}
.collection-panel {width:calc(100% - 36px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 20px;padding:12px 16px;}
.collection-heading {grid-column:1;grid-row:1;}
.scan-controls {grid-column:2;grid-row:1;}
.collection-panel #scanExplanation,.scan-progress-label,.collection-panel .range,.collection-panel #scanStatus,.collection-panel #scanCoverage,.collection-panel .scan-disclosure {grid-column:1 / -1;margin:0;}
.collection-panel #scanCoverage:empty {display:none;}
.collection-panel .scan-progress-label {margin-top:3px;}
.app.collecting #glCanvas {height:calc(100% - var(--collection-dock,240px));}
@media(max-width:700px){.collection-panel{left:8px;bottom:8px;width:calc(100% - 16px);gap:4px;padding:8px 10px;}.collection-heading{grid-column:1 / -1;}.scan-controls{grid-column:1 / -1;grid-row:3;}.scan-controls .btn{flex:1;}.collection-panel #scanExplanation{grid-row:2;}}
