/* Scoped catalog workspace: document stays still, panel contents remain scrollable. */
html.mg-viewport-portal { overflow: hidden; }
.mg-viewport-portal .portal-main { padding-bottom: 0; }
.portal-main:has(#catalog-context-tabs:not(.portal-page-hidden)) > .portal-search { display: none; }
.mg-viewport-portal .portal-context-tabs { margin-bottom: 8px; }
.mg-viewport-panel { height: var(--catalog-available-height); min-height: 0; overflow: hidden; }
.spf-catalog-workspace.mg-viewport-panel iframe { height: 100% !important; min-height: 0; }
#ktm-catalog-section.mg-viewport-panel { display: flex; flex-direction: column; gap: 8px; padding: 12px; }
#ktm-catalog-section > header { display: none; }
.ktm-catalog-topline { display: flex; align-items: end; gap: 8px; min-width: 0; flex: none; overflow-x: auto; padding-bottom: 3px; }
.ktm-catalog-topline .ktm-catalog-controls { flex: 1; min-width: 570px; grid-template-columns: minmax(70px,.5fr) minmax(100px,.8fr) minmax(110px,1fr) minmax(170px,1.4fr); }
.ktm-catalog-topline .ktm-sku-form { flex: 0 0 260px; margin: 0; }
.ktm-catalog-topline .ktm-sku-form > div { display: flex; gap: 5px; }
.ktm-catalog-topline .ktm-sku-form input { min-width: 0; flex: 1; }
.ktm-catalog-topline #ktm-model-change { align-self: end; white-space: nowrap; }
.ktm-catalog-topline label { font-size: 11px; }
.ktm-catalog-topline input, .ktm-catalog-topline select, .ktm-catalog-topline button { min-height: 32px; padding: 5px 7px; font-size: 11px; }
.mg-viewport-panel .ktm-catalog-topline .ktm-catalog-controls { grid-template-columns: minmax(70px,.5fr) minmax(100px,.8fr) minmax(110px,1fr) minmax(170px,1.4fr); }
@media(min-width:701px) {
 .mg-viewport-panel .ktm-parts-table th, .mg-viewport-panel .ktm-parts-table td { padding: 1px 5px; font-size: 11px; line-height: 17px; }
 .mg-viewport-panel .ktm-part-draft { box-sizing: border-box; min-height: 20px; padding: 0 5px; border-radius: 4px; font-size: 10px; line-height: 16px; }
 .mg-viewport-panel .ktm-drawing-workspace { grid-template-columns: minmax(0,2fr) minmax(0,3fr); gap: 10px; }
}
.mg-viewport-panel .article-head { flex: none; }
.mg-viewport-panel .article-head h2, .mg-viewport-panel .article-head p { margin: 0; }
.mg-viewport-panel .ktm-catalog-controls { gap: 8px; }
.mg-viewport-panel .ktm-catalog-layout { flex: 1; min-height: 0; overflow: hidden; gap: 8px; }
.mg-viewport-panel .ktm-schema-detail { flex: 1; min-height: 0; padding: 8px; display: flex; flex-direction: column; overflow: hidden; }
.mg-viewport-panel .ktm-schema-detail > h3, .mg-viewport-panel .ktm-schema-detail > p { margin: 0; }
.mg-viewport-panel .ktm-drawing-workspace { flex: 1; min-height: 0; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.mg-viewport-panel .ktm-drawing-panel, .mg-viewport-panel .ktm-positions-panel { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.mg-viewport-panel .ktm-diagram-viewport, .mg-viewport-panel .ktm-parts-scroll { flex: 1; height: auto; min-height: 0; max-height: none; overflow: auto; }
.mg-viewport-panel .ktm-diagram { display: block; margin-inline: auto; }
.mg-viewport-panel .ktm-catalog-layout > div:first-child { flex: none; max-height: 112px; overflow: auto; }
.mg-viewport-panel .ktm-schema-thumb { height: 48px; object-fit: contain; }
.mg-viewport-panel .ktm-schema-button { min-height: 0; padding: 5px; }
.mg-viewport-panel #ktm-import-status { margin: 0; font-size: 11px; max-height: 30px; overflow: auto; }
.mg-viewport-panel .ktm-catalog-layout > div:first-child { display: grid; grid-template-columns: auto minmax(120px,240px) minmax(0,1fr); align-items: center; gap: 8px; max-height: 100px; }
.mg-viewport-panel .ktm-schema-list { min-width: 0; max-height: 96px; overflow: auto; }
.mg-viewport-yamaha .diagram-stage-section { flex: 1; }
.ktm-model-cards { display: grid; grid-template-columns: repeat(auto-fill,minmax(180px,1fr)); gap: 10px; overflow: auto; min-height: 0; }
.ktm-model-card { text-align: left; padding: 14px; border: 1px solid #d0d9de; border-radius: 10px; background: white; color: #18252d; }
.ktm-model-card strong, .ktm-model-card small { display: block; }
.ktm-model-card small { margin-top: 6px; }
html.mg-viewport-yamaha, .mg-viewport-yamaha body { overflow: hidden; height: 100%; }
.mg-viewport-yamaha main { padding-bottom: 0; }
.mg-viewport-yamaha #schema-detail-view { height: var(--catalog-available-height); display: flex; flex-direction: column; min-height: 0; }
.mg-viewport-yamaha #schema-detail-view[hidden] { display: none; }
.mg-viewport-yamaha .diagram-workspace { flex: 1; min-height: 0; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.mg-viewport-yamaha .diagram-layout, .mg-viewport-yamaha .diagram-stage-section, .mg-viewport-yamaha .parts-panel { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.mg-viewport-yamaha .diagram-viewport, .mg-viewport-yamaha .parts-panel .table-wrap { flex: 1; height: auto; min-height: 0; max-height: none; overflow: auto; }
.mg-viewport-yamaha .diagram-viewport { display: block; padding: 8px; }
.mg-viewport-yamaha .diagram-canvas { margin-inline: auto; }
.mg-viewport-yamaha #schema-thumbnail-browser { flex: none; margin-top: 6px; padding: 5px; }
.mg-viewport-yamaha #schema-thumbnail-browser img { height: 48px; object-fit: contain; }
.mg-viewport-yamaha .parts-title, .mg-viewport-yamaha .diagram-toolbar { padding: 7px; gap: 5px; flex: none; max-height: 40%; overflow: auto; }
@media(max-width:700px) {
 .mg-viewport-yamaha .diagram-workspace, .mg-viewport-panel .ktm-drawing-workspace { grid-template-columns: minmax(0,1fr); grid-template-rows: minmax(0,1fr) minmax(0,1fr); }
 .mg-viewport-panel .ktm-catalog-controls { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

#ktm-model-chooser{display:flex;flex-direction:column;min-height:0;overflow:hidden}#ktm-model-chooser[hidden],.ktm-catalog-layout[hidden]{display:none!important}#ktm-model-chooser h3,#ktm-model-card-count{flex:none;margin:4px 0}.mg-viewport-panel #ktm-model-chooser{flex:1}.mg-viewport-panel .ktm-model-cards{flex:1;min-height:0;overflow:auto;align-content:start}.ktm-model-card{cursor:pointer}.ktm-model-card:focus-visible{outline:3px solid #1769aa;outline-offset:2px}.ktm-model-card:hover{border-color:#1769aa;background:#edf6ff}#ktm-model-change{align-self:flex-start;flex:none;padding:6px 10px}.mg-viewport-yamaha .diagram-canvas,.mg-viewport-panel .ktm-diagram{margin-inline:auto}.mg-viewport-yamaha .schema-thumbnail-image{height:48px}.mg-viewport-yamaha .schema-thumbnail>span:last-child{padding:4px}.mg-viewport-panel .ktm-schema-button>span{max-height:2.8em;overflow:hidden}.mg-viewport-panel #ktm-import-status,.mg-viewport-panel #ktm-catalog-status{margin:0;padding:4px;font-size:11px}

.mg-viewport-panel,.mg-viewport-yamaha #schema-detail-view{box-sizing:border-box}

/* Model detail: use the existing banner for navigation, reserve space for parts. */
.mg-viewport-yamaha #spf-browser { position:relative; }
.mg-viewport-yamaha .catalog-tools { display:contents; }
.mg-viewport-yamaha .catalog-tools .vin-search-panel,
.mg-viewport-yamaha .schema-heading,
.mg-viewport-yamaha .parts-title > div:first-child,
.mg-viewport-yamaha .parts-title .diagram-part-search { display:none; }
.mg-viewport-yamaha #catalog-model-search-toggle { position:absolute;top:8px;left:8px;z-index:2;padding:5px 8px; }
.mg-viewport-yamaha .model-banner { padding-left:130px; }
.mg-viewport-yamaha #catalog-model-search { position:absolute;top:46px;left:8px;right:8px;z-index:5;background:white;max-height:70vh;overflow:auto; }
.mg-viewport-yamaha .parts-title { padding:2px 5px; }
.mg-viewport-yamaha .parts-title-tools { width:100%; }

#partsatlas-catalog-section.mg-viewport-panel iframe { display:block; width:100%; height:100% !important; min-height:0 !important; border:0; }
