#appRoot {
  height: 100vh;
  display: flex;
  flex-direction: column;
}

#topbar {
  flex: 0 0 78px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--line);
  background: var(--panel);
}

.workspace-grid {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: 336px minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: 12px;
  padding: 12px;
}

#leftPanel, #centerPanel, #rightPanel {
  min-height: 0;
  min-width: 0;
}

.panel-shell {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}

.panel-header {
  flex: 0 0 auto;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  background: var(--panel);
}

.sticky-header {
  position: relative;
  z-index: 2;
}

.panel-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 14px 16px 16px;
  background: #fff;
}

@media (max-width: 1100px) {
  body { overflow: auto; }
  .workspace-grid { grid-template-columns: 1fr; height: auto; }
  #leftPanel, #centerPanel, #rightPanel { min-height: 320px; }
}
