/* An 8:9 workbench, fitted inside the display without stretching the camera. */
:root.portrait-workspace{height:100%;overflow:hidden}
:root.portrait-workspace body{height:100dvh;display:grid;place-items:center;background:color-mix(in srgb,var(--bg),#173a32 8%)}
:root.portrait-workspace .app-shell{width:min(100vw,calc(100dvh * 8 / 9));height:min(100dvh,calc(100vw * 9 / 8));max-width:none;margin:0;padding:0 14px;display:grid;grid-template-rows:52px minmax(0,1fr) 22px;background:var(--bg);box-shadow:0 0 60px #102b2414;container-type:size}
:root.portrait-workspace .topbar{min-height:0;gap:12px}
:root.portrait-workspace .brand{gap:8px}
:root.portrait-workspace .brand img{width:30px;height:30px}
:root.portrait-workspace .brand strong{font-size:25px}
:root.portrait-workspace .brand small{display:block;font-size:8px;margin-top:3px;letter-spacing:0}
:root.portrait-workspace .top-nav{margin-left:auto;font-size:10px}
:root.portrait-workspace .local-badge{display:none}
:root.portrait-workspace .header-actions{margin-left:auto;gap:7px;padding-left:10px}
:root.portrait-workspace .header-actions select{font-size:10px;max-width:90px}
:root.portrait-workspace .icon-button{height:28px;min-width:28px;font-size:15px}
:root.portrait-workspace main{min-height:0;display:grid;grid-template-rows:54px 70px minmax(0,1fr) 94px;gap:10px;padding:0 0 2px}
:root.portrait-workspace .page-heading{padding:6px 0;gap:12px}
:root.portrait-workspace .eyebrow{font-size:8px;margin:0 0 3px}
:root.portrait-workspace h1{font-size:23px;line-height:1.15}
:root.portrait-workspace .subtitle{font-size:10px;margin:4px 0 0;line-height:1.3}
:root.portrait-workspace .heading-tag{display:flex;font-size:9px;padding:6px 9px}
:root.portrait-workspace .workspace-model-card{min-width:0;height:auto;margin:0;padding:9px 12px;display:grid;grid-template-columns:68px minmax(0,1fr) auto;grid-template-rows:28px 15px;gap:6px 10px;align-items:center;border-radius:12px}
:root.portrait-workspace .workspace-model-card .section-title{grid-column:1;grid-row:1;margin:0}
:root.portrait-workspace .workspace-model-card h2{font-size:11px}
:root.portrait-workspace .workspace-model-card .section-index{display:none}
:root.portrait-workspace .workspace-model-card .field-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%)}
:root.portrait-workspace .workspace-model-card .model-select{grid-column:2 / 4;grid-row:1;min-width:0;width:100%;height:28px;padding:4px 8px;font-size:11px;margin:0}
:root.portrait-workspace .workspace-model-card .model-note{grid-column:1 / 3;grid-row:2;font-size:8px;line-height:1.2;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:root.portrait-workspace .workspace-model-card .model-state{grid-column:3;grid-row:2;font-size:9px;gap:5px;margin:0}
:root.portrait-workspace .workspace-model-card .model-specs{display:none}
:root.portrait-workspace .workspace-model-card progress{grid-column:1 / 3;grid-row:2;align-self:end;height:2px;margin:0;transform:translateY(5px)}
:root.portrait-workspace .workspace-grid{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);grid-template-rows:minmax(0,1fr) minmax(0,1.1fr);gap:10px;align-items:stretch}
:root.portrait-workspace .video-panel{grid-column:1 / -1;grid-row:1;min-height:0;display:flex;flex-direction:column;padding:0 10px;border-radius:12px}
:root.portrait-workspace .panel-head{height:auto;flex:0 0 32px;gap:8px}
:root.portrait-workspace .camera-panel-title h2{font-size:11px}
:root.portrait-workspace .small-label{font-size:9px}
:root.portrait-workspace .framing-select{font-size:9px;margin-right:5px;max-width:160px;padding:3px 6px}
:root.portrait-workspace .video-stage{flex:1;min-height:0;min-width:0;aspect-ratio:auto;border-radius:8px}
:root.portrait-workspace .video-toolbar{min-height:0;flex:0 0 38px;padding:4px 0}
:root.portrait-workspace .source-description{gap:7px;min-width:0}
:root.portrait-workspace .source-description strong{font-size:10px;max-width:240px}
:root.portrait-workspace .source-description small{font-size:8px;margin-top:2px}
:root.portrait-workspace .source-icon{height:25px;width:25px;font-size:15px}
:root.portrait-workspace .video-buttons{gap:5px}
:root.portrait-workspace .video-buttons .button{font-size:10px;padding:5px 10px}
:root.portrait-workspace .video-footnote{display:none}
:root.portrait-workspace .empty-state{padding:10px}
:root.portrait-workspace .empty-state h2{font-size:18px;margin:0 0 6px}
:root.portrait-workspace .empty-state p:not(.stage-eyebrow){font-size:10px;line-height:1.4;margin:0 0 8px}
:root.portrait-workspace .empty-state .button{font-size:10px;padding:5px 10px}
:root.portrait-workspace .camera-glyph,:root.portrait-workspace .stage-eyebrow{display:none}
:root.portrait-workspace .video-hud{inset:12px}
:root.portrait-workspace .hud-result{padding:6px 9px}
:root.portrait-workspace .hud-result strong{font-size:14px}
:root.portrait-workspace .analysis-column{display:contents}
:root.portrait-workspace .status-column{grid-column:1;grid-row:2;display:grid;grid-template-rows:minmax(90px,.8fr) minmax(0,1.5fr);min-height:0;gap:8px}
:root.portrait-workspace .summary-card{height:auto;min-height:0;padding:10px;display:flex;flex-direction:column;border-radius:12px}
:root.portrait-workspace .summary-card .section-title{flex-wrap:nowrap;gap:4px;margin:0 0 5px}
:root.portrait-workspace .summary-card .section-title h2{font-size:11px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root.portrait-workspace .result-state{font-size:8px;padding:2px 4px;white-space:nowrap}
:root.portrait-workspace .summary-card .action-value{font-size:20px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
:root.portrait-workspace .summary-card .action-original{font-size:8px;min-height:10px;line-height:1.2;margin:4px 0;flex-shrink:0}
:root.portrait-workspace .summary-card .confidence-line{font-size:9px;margin-top:auto;line-height:1.1}
:root.portrait-workspace .summary-card .confidence-line strong{font-size:18px}
:root.portrait-workspace .summary-card .confidence-track{height:3px;flex-shrink:0;margin:4px 0 0}
:root.portrait-workspace .status-column .pose-card{width:100%;height:auto;min-height:0;display:flex;flex-direction:column;padding:10px;border-radius:12px;align-self:stretch}
:root.portrait-workspace .pose-card-head{flex-shrink:0;gap:3px;min-height:0}
:root.portrait-workspace .pose-card h2{font-size:10px}
:root.portrait-workspace .pose-state{font-size:8px}
:root.portrait-workspace .status-column .pose-viewport{height:auto;min-height:0;flex:1;margin:6px 0}
:root.portrait-workspace .pose-legend{flex-shrink:0;gap:6px;font-size:8px}
:root.portrait-workspace .pose-legend label{gap:3px}
:root.portrait-workspace .pose-legend input{width:10px;height:10px}
:root.portrait-workspace .pose-stats{flex-shrink:0;margin-top:5px;padding-top:5px;gap:3px}
:root.portrait-workspace .pose-stats>div{gap:3px}
:root.portrait-workspace .pose-stats>div>span{font-size:7px}
:root.portrait-workspace .pose-stats strong{font-size:9px}
:root.portrait-workspace .pose-foot{flex-shrink:0}
:root.portrait-workspace .pose-hint{font-size:8px;left:4px;right:4px;top:10%;padding:4px;line-height:1.35}
:root.portrait-workspace .pose-coordinate,:root.portrait-workspace .pose-target{font-size:6px}
:root.portrait-workspace .candidate-card{grid-column:2;grid-row:2;height:auto;min-height:0;display:flex;flex-direction:column;padding:12px;border-radius:12px}
:root.portrait-workspace .candidate-card .section-title{flex-shrink:0;flex-wrap:nowrap;gap:5px;margin:0 0 7px}
:root.portrait-workspace .candidate-card h2{font-size:12px}
:root.portrait-workspace .mode-badge{font-size:8px;padding:3px 5px}
:root.portrait-workspace .top-results-header{font-size:8px;padding-bottom:6px;margin:0 0 6px}
:root.portrait-workspace .prob-list{flex:1;min-height:0;gap:6px;justify-content:space-evenly}
:root.portrait-workspace .candidate-card .prob-row{flex:1;flex-shrink:1;min-height:0;max-height:80px;grid-template-columns:20px minmax(0,1fr) 50px;gap:5px 8px;align-content:center;padding:6px 9px;border-radius:7px}
:root.portrait-workspace .candidate-card .prob-label{font-size:12px;line-height:1.1}
:root.portrait-workspace .candidate-card .prob-number{font-size:11px;line-height:1.1}
:root.portrait-workspace .prob-rank{font-size:10px}
:root.portrait-workspace .candidate-card .prob-track{height:3px}
:root.portrait-workspace .runtime-stats{flex-shrink:0;margin-top:7px;padding-top:7px;gap:5px}
:root.portrait-workspace .runtime-stats>div{gap:3px}
:root.portrait-workspace .runtime-stats>div>span{font-size:8px}
:root.portrait-workspace .runtime-stats strong{font-size:10px}
:root.portrait-workspace .lower-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);min-height:0;gap:10px;margin:0}
:root.portrait-workspace .activity-card,:root.portrait-workspace .insight-card{min-height:0;display:flex;flex-direction:column;padding:9px 11px;border-radius:12px}
:root.portrait-workspace .lower-grid .section-title{flex-shrink:0;margin:0 0 4px;gap:6px}
:root.portrait-workspace .lower-grid h2{font-size:11px}
:root.portrait-workspace .title-with-icon{gap:5px}
:root.portrait-workspace .chart-icon,:root.portrait-workspace .insight-icon{font-size:16px}
:root.portrait-workspace .activity-card canvas{flex:1;min-height:0;height:20px}
:root.portrait-workspace .chart-caption{font-size:8px;line-height:1.2;margin-top:3px}
:root.portrait-workspace .insight-card p{flex:1;min-height:0;overflow:auto;font-size:10px;line-height:1.45}
:root.portrait-workspace .insight-actions{gap:8px}
:root.portrait-workspace .insight-actions .text-button{font-size:9px}
:root.portrait-workspace .insight-foot{flex-shrink:0;margin-top:3px;font-size:7px;line-height:1.3;gap:4px}
:root.portrait-workspace footer{padding:0;font-size:8px;gap:5px}
:root.portrait-workspace .footer-version{display:block;font-size:7px;letter-spacing:.5px}
:root.portrait-workspace .notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);width:min(85vw,550px);margin:0;z-index:20;font-size:10px;padding:8px 12px}
@media(max-height:800px){
 :root.portrait-workspace .app-shell{grid-template-rows:42px minmax(0,1fr) 18px;padding:0 10px}
 :root.portrait-workspace main{grid-template-rows:60px minmax(0,1fr) 70px;gap:7px}
 :root.portrait-workspace .page-heading{display:none}
 :root.portrait-workspace .workspace-model-card{padding:6px 9px;gap:4px 8px;grid-template-rows:26px 15px}
 :root.portrait-workspace .workspace-grid{gap:7px;grid-template-rows:minmax(0,.82fr) minmax(0,1.18fr)}
 :root.portrait-workspace .status-column{gap:6px;grid-template-rows:94px minmax(0,1fr)}
 :root.portrait-workspace .summary-card,:root.portrait-workspace .status-column .pose-card{padding:7px}
 :root.portrait-workspace .summary-card .action-value{font-size:17px}
 :root.portrait-workspace .summary-card .confidence-line strong{font-size:15px}
 :root.portrait-workspace .candidate-card{padding:8px}
 :root.portrait-workspace .top-results-header{padding-bottom:4px;margin-bottom:4px}
 :root.portrait-workspace .prob-list{gap:4px}
 :root.portrait-workspace .candidate-card .prob-row{padding:4px 6px;gap:3px 6px}
 :root.portrait-workspace .candidate-card .prob-label{font-size:11px}
 :root.portrait-workspace .runtime-stats{margin-top:5px;padding-top:5px}
 :root.portrait-workspace .lower-grid{gap:7px}
 :root.portrait-workspace .activity-card,:root.portrait-workspace .insight-card{padding:6px 8px}
 :root.portrait-workspace .chart-caption>span:first-child{display:none}
 :root.portrait-workspace .brand small{display:none}
 :root.portrait-workspace .pose-stats>div>span{font-size:7px;white-space:nowrap}
}
