.vl-code-workspace{grid-template-rows:46px 52px minmax(280px,1fr) 30px 210px}
.vl-code-toolbar>span{display:flex;min-width:0;flex-direction:column;gap:2px}.vl-code-toolbar>span strong{font-size:13px}.vl-code-toolbar>span small{color:#9fb0c9;font-size:10px;font-weight:500}.vl-code-toolbar>div{overflow-x:auto;white-space:nowrap}
.vl-editor-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;border-top:1px solid #35435a;background:#202b40;color:#aebbd0;font:11px/1.2 "SFMono-Regular",Consolas,monospace}
.vl-code-layer pre,.vl-code-layer textarea{box-sizing:border-box;font-family:Consolas,"Roboto Mono","SFMono-Regular",Menlo,Monaco,monospace;font-size:14px;font-style:normal;font-weight:400;line-height:1.65;letter-spacing:0;font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0;font-kerning:none;tab-size:2;overflow-wrap:normal;word-break:normal}
.vl-code-layer pre code,.vl-code-layer pre code *{font:inherit;letter-spacing:inherit}.vl-code-layer textarea:focus{box-shadow:inset 0 0 0 2px rgba(22,119,255,.35)}
@media(max-width:620px){.vl-code-workspace{grid-template-rows:42px 52px 480px 28px 180px}.vl-code-toolbar button{padding:6px}.vl-editor-status span:last-child{display:none}}

/* Virtual Lab light workspace: editor, catalog and library manager. */
.vl-code-workspace{position:relative;background:#fff!important}
.vl-code-toolbar{background:#fff!important;color:#17243a!important;border-color:#d7e1ef!important}
.vl-code-toolbar>span small{color:#66758c!important}.vl-code-toolbar button{background:#fff!important;color:#17325d!important;border-color:#cddbeb!important}
.vl-editor-frame,.vl-code-layer,.vl-code-layer pre{background:#fff!important}
.vl-line-numbers{background:#f8fafc!important;color:#8492a6!important;border-color:#dce6f2!important}
.vl-code-layer pre{color:#172033!important}.vl-code-layer textarea{color:#172033!important;-webkit-text-fill-color:#172033!important;background:#fff!important;caret-color:#2563eb!important}.vl-editor-frame.is-highlighted .vl-code-layer textarea{color:transparent!important;-webkit-text-fill-color:transparent!important;background:transparent!important}
.vl-code-layer textarea::selection{background:#bfdbfe!important}.vl-editor-status{background:#f8fafc!important;color:#53657d!important;border-color:#dce6f2!important}
.vl-token-comment{color:#5f7a68!important}.vl-token-string{color:#c2410c!important}.vl-token-keyword{color:#7c3aed!important}.vl-token-constant{color:#dc2626!important}.vl-token-function{color:#2563eb!important}.vl-token-number{color:#15803d!important}.vl-token-preprocessor{color:#a21caf!important}
.vl-component-dialog{inset:50% auto auto 50%!important;bottom:auto!important;left:50%!important;width:min(900px,calc(100vw - 48px))!important;max-height:min(720px,calc(100vh - 80px));padding:0!important;border:1px solid #d7e1ef;border-radius:14px;box-shadow:0 24px 70px rgba(15,42,95,.24);transform:translate(-50%,-46%) scale(.98)!important;opacity:0;overflow:hidden!important;transition:.16s ease!important}
.vl-component-dialog.is-open{transform:translate(-50%,-50%) scale(1)!important;opacity:1}.vl-component-dialog header,.vl-library-manager header{padding:18px 20px;margin:0!important;border-bottom:1px solid #e1e9f3}.vl-component-dialog header span,.vl-library-manager header span{display:flex;flex-direction:column;gap:3px}.vl-component-dialog header strong,.vl-library-manager header strong{font-size:18px;color:#102a56}.vl-component-dialog header small,.vl-library-manager header small{font-size:12px;color:#66758c;font-weight:500}
.vl-catalog-search{position:relative;margin:16px 20px 10px}.vl-catalog-search>span{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:22px;color:#64748b}.vl-catalog-search input{margin:0!important;padding:12px 14px 12px 44px!important;border:1px solid #cbd9ea!important;border-radius:10px!important;background:#fff!important}
.vl-catalog-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 20px 14px}.vl-catalog-controls select{width:auto!important;min-width:190px;margin:0!important}.vl-catalog-summary{font-size:12px;color:#66758c}.vl-component-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:4px 20px 22px;max-height:500px;overflow:auto}
.vl-component{min-height:150px!important;margin:0!important;padding:12px!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:9px!important;border-radius:11px!important;text-align:center!important}.vl-component-visual{height:88px;display:grid;place-items:center;border-radius:8px;background:#f5f8fc;overflow:hidden}.vl-component-visual img{max-width:100%;max-height:82px;object-fit:contain}.vl-component-visual.is-placeholder svg{width:54px;height:42px;fill:#dce9fb;stroke:#2563eb;stroke-width:2}.vl-component-copy{display:flex;flex-direction:column;min-width:0;gap:3px}.vl-component-copy strong{font-size:12px!important;color:#17243a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vl-component-copy small{font-size:10px!important;color:#60718a}.vl-catalog-empty{grid-column:1/-1;padding:60px 20px;text-align:center;color:#66758c}.vl-catalog-empty p{margin:6px 0}
.vl-library-manager{inset:0 auto 0 0!important;left:0!important;bottom:0!important;width:min(640px,46vw)!important;padding:0!important;background:#fff!important;border-right:1px solid #d7e1ef;box-shadow:12px 0 40px rgba(16,42,86,.15);overflow:hidden!important}.vl-library-manager.is-open{transform:none!important}.vl-library-tabs{display:flex;padding:0 20px;border-bottom:1px solid #e1e9f3}.vl-library-tabs button{border:0;background:#fff;padding:12px 4px;margin-right:22px;color:#61718a;font-weight:700}.vl-library-tabs button.is-active{color:#1677ff;box-shadow:inset 0 -2px #1677ff}.vl-library-tabs span{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#e8f1ff;color:#1768cd;font-size:10px}.vl-library-note{margin:0 20px 12px;padding:10px 12px;border-radius:8px;background:#f5f9ff;color:#586a82;font-size:11px}.vl-library-results{padding:0 20px 24px;max-height:calc(100vh - 260px);overflow:auto}.vl-library-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 4px;border-bottom:1px solid #e5ecf4}.vl-library-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:#eaf2ff;color:#1768cd;font-size:20px}.vl-library-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.vl-library-copy strong{font-size:14px;color:#142b4f}.vl-library-copy small{font-size:12px;color:#4f6179}.vl-library-copy>span{font-size:10px;color:#7a899d}.vl-library-card button{border:1px solid #1677ff;border-radius:8px;background:#1677ff;color:#fff;padding:8px 11px;font-weight:700}.vl-library-card button.is-installed{border-color:#b9dec9;background:#effaf3;color:#137741}
.vl-placement-hint{position:absolute;z-index:30;top:16px;left:50%;transform:translateX(-50%);padding:8px 13px;border-radius:8px;background:#102a56;color:#fff;font-size:12px;box-shadow:0 8px 24px rgba(15,42,95,.2);pointer-events:none}.vl-canvas.is-placing{cursor:crosshair}.vl-canvas.is-placing:after{content:"";position:absolute;inset:0;border:2px solid rgba(37,99,235,.32);pointer-events:none}.vl-empty-canvas button{background:#1677ff!important;color:#fff!important}
@media(max-width:1100px){.vl-component-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.vl-library-manager{width:min(640px,92vw)!important}}
@media(max-width:700px){.vl-component-dialog{width:calc(100vw - 20px)!important;max-height:calc(100vh - 20px)}.vl-component-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:calc(100vh - 230px)}.vl-catalog-controls{align-items:stretch;flex-direction:column}.vl-catalog-controls select{width:100%!important}.vl-library-manager{width:100vw!important}.vl-library-card{grid-template-columns:38px minmax(0,1fr)}.vl-library-card button{grid-column:2;width:max-content}}
.vl-code-workspace .vl-library-manager{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;border:0!important;z-index:70!important}
.vl-information-panel{min-height:0;overflow:auto;padding:28px;background:#f8fbff;color:#17243a}.vl-information-panel header h2{margin:0 0 5px;color:#102a56;font-size:20px}.vl-information-panel header p{margin:0;color:#66758c}.vl-information-panel dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0}.vl-information-panel dl div{padding:14px;border:1px solid #d7e1ef;border-radius:10px;background:#fff}.vl-information-panel dt{font-size:11px;color:#66758c}.vl-information-panel dd{margin:5px 0 0;font-weight:800;color:#17325d}.vl-information-note{padding:14px;border-left:4px solid #1677ff;background:#eaf3ff;color:#36577d}.vl-sim-workspace.is-information #vlCanvas{display:none}.vl-sim-workspace.is-information #vlInformationPanel{display:block}.vl-sim-tabs button[aria-selected=true]{background:#fff;color:#102a56;box-shadow:inset 0 -3px #1677ff}
@media(max-width:700px){.vl-information-panel dl{grid-template-columns:1fr}}

/* Closed overlays must never intercept Virtual Lab controls. */
.vl-component-dialog{visibility:hidden!important;pointer-events:none!important;transition:opacity .16s ease,transform .16s ease,visibility 0s linear .16s!important}
.vl-component-dialog.is-open{visibility:visible!important;pointer-events:auto!important;transition-delay:0s!important}
.vl-drawer[aria-hidden="true"],.vl-drawer[hidden]{visibility:hidden!important;pointer-events:none!important}
.vl-drawer[aria-hidden="false"].is-open{visibility:visible!important;pointer-events:auto!important}
.vl-drawer-backdrop[hidden],.vl-drawer-backdrop:not(.is-open){display:none!important;visibility:hidden!important;pointer-events:none!important}
.vl-drawer-backdrop.is-open:not([hidden]){display:block!important;visibility:visible!important;pointer-events:auto!important}
.vl-brand{display:inline-flex!important;align-items:center;justify-content:flex-start;flex:0 0 auto;min-width:112px;min-height:44px;line-height:0}
.vl-brand-logo{display:block;width:152px;height:40px;max-width:100%;object-fit:contain;object-position:left center}
@media(max-width:1024px){.vl-brand-logo{width:136px;height:38px}}
@media(max-width:620px){.vl-brand{min-width:104px}.vl-brand-logo{width:112px;height:36px}.vl-project-identity>span{display:none}}
