.knowledge-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.knowledge-workspace.panel-open {
  grid-template-columns: minmax(0, 1fr) minmax(360px, var(--source-panel-width, 42%));
}

.source-panel {
  display: none;
  position: sticky;
  top: 18px;
  height: calc(100vh - 36px);
  min-width: 360px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(31, 48, 79, .12);
}

.source-panel-resizer { position: absolute; inset: 0 auto 0 0; width: 7px; cursor: col-resize; z-index: 2; }
.source-panel-resizer:hover { background: rgba(49, 93, 168, .18); }

.panel-open .source-panel { display: grid; grid-template-rows: auto 1fr; position: sticky; }
.source-panel.fullscreen { position: fixed; inset: 12px; width: auto; height: auto; z-index: 80; }
.source-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-bottom: 1px solid var(--border); }
.source-panel-actions { display: flex; gap: 6px; }
.source-panel iframe { width: 100%; height: 100%; border: 0; background: #fff; }
.source-open { cursor: pointer; }

.source-preview-page { margin: 0; background: #fff; }
.source-preview-head { display: flex; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--border); }
.source-preview-head span { color: var(--muted); font-size: 12px; }
.source-preview-body { min-height: calc(100vh - 50px); }
.source-preview-body iframe { width: 100%; height: calc(100vh - 50px); border: 0; }
.source-preview-body img { display: block; max-width: 100%; margin: 0 auto; }
.source-preview-body .reading-content, .source-preview-body .plain-text { padding: 20px; }

@media (max-width: 900px) {
  .knowledge-workspace.panel-open { grid-template-columns: 1fr; }
  .source-panel { display: none !important; }
}
