/* Live Lab workbench: detector-style navigation, active workspace, diagnostics. */ .live-lab-page { overflow: hidden; } .live-lab-main-shell, .live-lab-workbench, .live-lab-workspace { height: 100vh; min-height: 0; } .live-lab-workbench { --live-lab-sidebar: 264px; background: var(--ks-lacquer); } .live-lab-nav { position: fixed; inset: 0 auto 0 0; z-index: 10; display: flex; flex-direction: column; width: var(--live-lab-sidebar); border-right: 1px solid var(--ks-rule); background: var(--ks-lacquer-deep); } .live-lab-nav-head { flex-shrink: 0; padding: var(--spacing-md); border-bottom: 1px solid var(--ks-rule); } .live-lab-brand { color: var(--ks-kinpaku); text-decoration: none; } .live-lab-brand .ks-mark { width: 30px; height: 30px; } .live-lab-brand .ks-mark svg { width: 26px; height: 26px; } .live-lab-brand .ks-wordmark { font-size: 1rem; letter-spacing: 0.16em; } .live-lab-nav-head h1 { margin: var(--spacing-md) 0 0; color: var(--ks-champagne); font-family: var(--ks-font); font-size: var(--ks-type-title-size); font-weight: 600; line-height: 1.15; } .live-lab-nav-head > p { margin: 6px 0 0; color: var(--ks-text-muted); font-size: var(--ks-type-body-size); line-height: 1.5; } .live-lab-panel-label, .live-lab-nav-group h2, .live-lab-diagnostic-panel dt { color: var(--ks-text-muted); font-family: var(--ks-mono); font-size: 0.75rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; } .live-lab-nav-scroll { min-height: 0; overflow: auto; padding-bottom: var(--spacing-md); } .live-lab-nav-group { padding: var(--spacing-sm); border-bottom: 1px solid var(--ks-rule); } .live-lab-nav-group h2 { margin: 0; color: var(--ks-kinpaku-deep); letter-spacing: 0.2em; } .live-lab-nav-list { display: grid; gap: 4px; margin-top: 10px; } .live-lab-nav-list button { display: flex; align-items: center; width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: var(--ks-text-muted); font: 500 0.875rem/1.3 var(--ks-font); text-align: left; text-decoration: none; cursor: pointer; } .live-lab-nav-list button:hover { background: var(--ks-graphite); color: var(--ks-champagne); } .live-lab-nav-list button:focus-visible { outline: 2px solid var(--ks-kinpaku); outline-offset: 2px; } .live-lab-nav-list button[aria-pressed='true'] { border-color: var(--ks-kinpaku); background: var(--ks-kinpaku); color: var(--ks-lacquer-deep); } .live-lab-workspace { display: flex; flex-direction: column; min-width: 0; margin-left: var(--live-lab-sidebar); overflow: hidden; } .live-lab-toolbar { position: relative; z-index: 8; display: flex; flex-shrink: 0; justify-content: space-between; gap: var(--spacing-md); align-items: center; min-height: 68px; padding: 10px var(--spacing-md); border-bottom: 1px solid var(--ks-rule); background: var(--ks-lacquer-deep); } .live-lab-toolbar h2, .live-lab-diagnostic-panel h2 { margin: 0; color: var(--ks-champagne); font: 600 1rem/1.2 var(--ks-font); } .live-lab-toolbar p:not(.live-lab-panel-label) { margin: 4px 0 0; color: var(--ks-text-muted); font-size: var(--ks-type-body-size); line-height: 1.4; } .live-lab-toolbar-actions { display: flex; flex-shrink: 0; gap: 10px; align-items: center; } .live-lab-toolbar-actions button { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 16px; border: 1px solid var(--ks-rule-strong); border-radius: 2px; background: transparent; color: var(--ks-kinpaku); font-size: var(--ks-type-body-size); font-weight: 600; cursor: pointer; } .live-lab-toolbar-actions button:hover { background: var(--ks-kinpaku); color: var(--ks-lacquer-deep); } .live-lab-toolbar-actions button:focus-visible { outline: 2px solid var(--ks-kinpaku); outline-offset: 2px; } .live-lab-workspace-scroll { flex: 1 1 auto; min-height: 0; overflow: auto; } .live-lab-content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: var(--spacing-sm); align-items: start; padding: var(--spacing-sm); } .live-lab-canvas, .live-lab-diagnostic-panel { min-width: 0; border: 1px solid var(--ks-rule); background: var(--ks-lacquer-raised); } .live-lab-ui-panel { min-width: 0; padding: clamp(24px, 4vw, 48px); } .live-lab-workbench[data-active-view='ui'] .live-lab-workspace-scroll { overflow: hidden; } .live-lab-workbench[data-active-view='ui'] .live-lab-content-grid { grid-template-columns: minmax(0, 1fr); height: 100%; padding: 0; } .live-lab-workbench[data-active-view='ui'] .live-lab-canvas, .live-lab-workbench[data-active-view='ui'] .live-lab-ui-panel { height: 100%; min-height: 0; } .live-lab-workbench[data-active-view='ui'] .live-lab-canvas { overflow: hidden; border: 0; } .live-lab-workbench[data-active-view='ui'] .live-lab-ui-panel { padding: 0; } .live-lab-workbench[data-active-view='ui'] .live-lab-diagnostics { display: none; } .live-lab-diagnostic-panel[hidden], .live-lab-toolbar-actions [hidden] { display: none; } .live-lab-canvas { padding-bottom: 0; } .live-lab-canvas [hidden] { display: none !important; } .live-lab-canvas .ks-section { width: auto; max-width: none; margin: 0; padding-right: clamp(20px, 3vw, 40px); padding-left: clamp(20px, 3vw, 40px); } .live-lab-canvas .live-performance-hero { padding-top: clamp(32px, 5vw, 56px); padding-bottom: clamp(32px, 5vw, 56px); } .live-lab-canvas .live-performance-hero::after { right: 0; left: 0; } .live-lab-canvas .live-performance-hero h1 { max-width: 720px; margin-top: 14px; font-family: var(--ks-font); font-size: var(--ks-type-headline-size); font-weight: 600; line-height: var(--ks-type-headline-line); } .live-lab-canvas .live-performance-lede { margin-top: 24px; font-size: 1rem; line-height: 1.6; } .live-lab-run-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 28px 0 0; border: 1px solid var(--ks-rule); } .live-lab-run-stats div { min-width: 0; padding: var(--spacing-sm); border-right: 1px solid var(--ks-rule); } .live-lab-run-stats div:last-child { border-right: 0; } .live-lab-run-stats dt { color: var(--ks-text-muted); font: 500 var(--ks-type-eyebrow-size)/1.4 var(--ks-mono); letter-spacing: var(--ks-type-eyebrow-track); text-transform: uppercase; } .live-lab-run-stats dd { margin: 6px 0 0; color: var(--ks-champagne); font-size: var(--ks-type-title-size); font-weight: 600; } .live-lab-canvas .live-performance-meta { margin-top: 24px; } .live-lab-canvas .live-performance-section { padding-top: clamp(30px, 4vw, 52px); padding-bottom: clamp(30px, 4vw, 52px); } .live-lab-canvas .live-performance-section-head { grid-template-columns: minmax(0, 1fr) minmax(220px, 360px); gap: 28px; } .live-lab-canvas .live-performance-section-head h2, .live-lab-canvas .live-performance-method h2 { margin-top: 8px; font-size: clamp(1.65rem, 3vw, 2.6rem); } .live-lab-canvas .latency-tape, .live-lab-canvas .scenario-comparison, .live-lab-canvas .harness-table-wrap, .live-lab-canvas .experiment-list, .live-lab-canvas .live-simulator { margin-top: 32px; } .live-lab-canvas .live-performance-finding { margin-top: 28px; } .live-lab-canvas .live-performance-method { gap: 28px; padding-top: 36px; padding-bottom: 36px; border-bottom: 0; } .live-lab-diagnostics { position: sticky; top: 0; display: grid; gap: var(--spacing-sm); max-height: calc(100vh - 106px); overflow: auto; } .live-lab-diagnostic-panel { overflow: hidden; } .live-lab-diagnostic-panel header { padding: var(--spacing-sm); border-bottom: 1px solid var(--ks-rule); } .live-lab-diagnostic-panel dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; } .live-lab-diagnostic-panel dl div { padding: var(--spacing-sm); border-right: 1px solid var(--ks-rule); border-bottom: 1px solid var(--ks-rule); } .live-lab-diagnostic-panel dl div:nth-child(2n) { border-right: 0; } .live-lab-diagnostic-panel dd { margin: 5px 0 0; color: var(--ks-champagne); font-size: var(--ks-type-title-size); font-weight: 600; } .live-lab-diagnostic-panel > p { margin: 0; padding: var(--spacing-sm); color: var(--ks-text-muted); font-size: var(--ks-type-body-size); line-height: 1.5; } .live-lab-strategy-list { margin: 0; padding: 0; list-style: none; } .live-lab-strategy-list li { display: grid; gap: 3px; padding: 11px var(--spacing-sm); border-bottom: 1px solid var(--ks-rule); } .live-lab-strategy-list strong { color: var(--ks-champagne); font-size: var(--ks-type-body-size); font-weight: 500; } .live-lab-strategy-list span { color: var(--ks-patina); font: 0.75rem/1.4 var(--ks-mono); } @media (max-width: 1180px) { .live-lab-workbench { --live-lab-sidebar: 244px; } .live-lab-content-grid { grid-template-columns: minmax(0, 1fr); } .live-lab-diagnostics { position: static; grid-template-columns: repeat(3, minmax(0, 1fr)); max-height: none; overflow: visible; } } @media (max-width: 860px) { .live-lab-page { overflow: auto; } .live-lab-main-shell, .live-lab-workbench, .live-lab-workspace { height: auto; min-height: 100vh; overflow: visible; } .live-lab-nav { position: static; width: auto; border-right: 0; border-bottom: 1px solid var(--ks-rule); } .live-lab-nav-scroll { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: none; } .live-lab-workspace { margin-left: 0; } .live-lab-workspace-scroll { overflow: visible; } .live-lab-toolbar { position: static; align-items: flex-start; } .live-lab-diagnostics { grid-template-columns: 1fr; } .live-lab-canvas .live-performance-section-head { grid-template-columns: 1fr; } .live-lab-run-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .live-lab-run-stats div:nth-child(2) { border-right: 0; } .live-lab-run-stats div:nth-child(-n + 2) { border-bottom: 1px solid var(--ks-rule); } } @media (max-width: 560px) { .live-lab-diagnostic-panel dl, .live-lab-nav-scroll, .live-lab-run-stats { grid-template-columns: 1fr; } .live-lab-summary-grid div, .live-lab-diagnostic-panel dl div, .live-lab-run-stats div { border-right: 0; } .live-lab-toolbar { flex-direction: column; align-items: stretch; } .live-lab-toolbar-actions { justify-content: space-between; } .live-lab-content-grid { padding: 0; } .live-lab-canvas, .live-lab-diagnostic-panel { border-right: 0; border-left: 0; } } @media (prefers-reduced-motion: reduce) { .live-lab-status i { animation: none; } }