/* Center Stage — tabbed app area */ .stage { flex: 1; height: 100dvh; display: flex; flex-direction: column; min-width: 0; overflow: hidden; } /* Tab bar */ .stage-tabbar { height: var(--tab-height); min-height: var(--tab-height); background: var(--bg-dock); border-bottom: 1px solid var(--border-structural); display: flex; align-items: center; padding: 0 8px; gap: 4px; } .stage-tabs { flex: 1; display: flex; gap: 2px; overflow-x: auto; -webkit-overflow-scrolling: touch; } .stage-tab { display: flex; align-items: center; gap: 6px; padding: 0 12px; height: 32px; background: none; border: none; border-radius: var(--radius-sm); color: var(--text-secondary); font-family: var(--font-ui); font-size: 12px; font-weight: 500; cursor: pointer; white-space: nowrap; transition: background var(--transition-fast), color var(--transition-fast); min-height: 32px; } .stage-tab:hover { background: var(--accent-hover); color: var(--text-primary); } .stage-tab.active { background: var(--bg-stage); color: var(--text-primary); } .stage-tab .tab-close { width: 16px; height: 16px; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-size: 11px; color: var(--text-muted); cursor: pointer; line-height: 1; } .stage-tab .tab-close:hover { background: var(--status-red); color: #fff; } /* Layout controls */ .stage-controls { display: flex; gap: 2px; flex-shrink: 0; } .layout-btn { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; background: none; border: none; border-radius: var(--radius-sm); color: var(--text-muted); cursor: pointer; transition: background var(--transition-fast), color var(--transition-fast); } .layout-btn:hover { background: var(--accent-hover); color: var(--text-primary); } .layout-btn.active { color: var(--accent); } /* Panes */ .stage-panes { flex: 1; display: flex; overflow: hidden; } .stage-pane { flex: 1; display: flex; flex-direction: column; min-width: 0; overflow: hidden; } .stage-pane + .stage-pane { border-left: 1px solid var(--border-structural); } /* Titlebar */ .pane-titlebar { height: var(--titlebar-height); min-height: var(--titlebar-height); background: var(--bg-titlebar); border-bottom: 1px solid var(--border-structural); display: flex; align-items: center; padding: 0 12px; gap: 8px; } .pane-dots { display: flex; gap: 6px; } .dot { width: 10px; height: 10px; border-radius: 50%; } .dot-red { background: var(--status-red); } .dot-amber { background: var(--status-amber); } .dot-green { background: var(--status-green); } .pane-title { font-family: var(--font-ui); font-size: 12px; font-weight: 500; color: var(--text-secondary); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* Pane content */ .pane-content { flex: 1; overflow: auto; -webkit-overflow-scrolling: touch; position: relative; } /* App container */ .app-view { width: 100%; height: 100%; display: flex; flex-direction: column; }