/* ========================================
   三栏布局：大纲 | 编辑器 | AI 侧边栏
   ======================================== */

/* --- 顶栏 --- */
.topbar {
  height: var(--topbar-height);
  display: flex;
  align-items: center;
  padding: 0 var(--space-4);
  border-bottom: 1px solid var(--color-border-light);
  background: rgba(248, 252, 255, 0.94);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  z-index: 100;
  gap: var(--space-3);
  box-shadow: 0 1px 0 rgba(24, 50, 74, 0.04);
}

.topbar-logo {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-weight: 400;
  font-size: var(--text-lg);
  color: var(--color-text-primary);
  flex-shrink: 0;
  padding-right: var(--space-4);
  font-family: var(--font-display);
}

.topbar-logo svg {
  width: 28px;
  height: 28px;
  color: var(--color-accent);
}

.topbar-divider {
  width: 1px;
  height: 24px;
  background: var(--color-border);
  flex-shrink: 0;
}

.topbar-title {
  flex: 1;
  display: flex;
  align-items: center;
  min-width: 0;
}

.topbar-title input {
  width: 100%;
  max-width: 400px;
  border: 1px solid transparent;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: var(--text-md);
  font-weight: 500;
  color: var(--color-text-primary);
  background: transparent;
  transition: all var(--transition-fast);
}

.topbar-title input:hover {
  background: rgba(255, 255, 255, 0.8);
}

.topbar-title input:focus {
  background: white;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 1px var(--color-primary);
}

.topbar-actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
}

.topbar-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text-secondary);
  transition: all var(--transition-fast);
}

.topbar-btn:hover {
  background: rgba(255, 255, 255, 0.8);
  color: var(--color-text-primary);
  transform: none;
}

.topbar-btn:active {
  transform: scale(0.96);
}

.topbar-btn svg {
  width: 18px;
  height: 18px;
}

.topbar-btn--primary {
  background: var(--color-primary);
  color: var(--color-text-inverse);
  box-shadow: none;
  border: 1px solid var(--color-primary);
}

.topbar-btn--primary:hover {
  background: var(--color-primary-hover);
  color: var(--color-text-inverse);
  box-shadow: none;
  transform: none;
}

.topbar-avatar {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.75);
  color: var(--color-text-primary);
  border: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: var(--text-sm);
  cursor: pointer;
  transition: box-shadow var(--transition-fast);
}

.topbar-avatar:hover {
  box-shadow: 0 0 0 2px rgba(47, 111, 159, 0.12);
}

/* --- 主区域容器 --- */
.main-container {
  display: flex;
  height: calc(100vh - var(--topbar-height));
  overflow: hidden;
}

/* --- 大纲面板 --- */
.outline-panel {
  width: var(--outline-width);
  border-right: 1px solid var(--color-border-light);
  background: linear-gradient(180deg, #fafdff 0%, #eef5fa 100%);
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  transition: width var(--transition-normal), opacity var(--transition-normal);
  overflow: hidden;
}

.outline-panel.collapsed {
  width: 0;
  opacity: 0;
  border-right: none;
}

.outline-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid var(--color-border-light);
}

.outline-header h3 {
  font-size: 11px;
  font-weight: 700;
  color: var(--color-text-tertiary);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.outline-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: var(--radius-sm);
  color: var(--color-text-tertiary);
  transition: all var(--transition-fast);
}

.outline-toggle:hover {
  background: var(--color-bg-tertiary);
  color: var(--color-text-primary);
}

.outline-toggle svg {
  width: 16px;
  height: 16px;
}

.outline-list {
  flex: 1;
  overflow-y: auto;
  padding: var(--space-2) 0;
}

.outline-item {
  display: flex;
  align-items: center;
  padding: 7px 14px;
  cursor: pointer;
  color: var(--color-text-secondary);
  font-size: 13px;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  border-left: 3px solid transparent;
  border-radius: 0 6px 6px 0;
  margin: 1px 6px 1px 0;
}

.outline-item:hover {
  background: rgba(255, 255, 255, 0.65);
  color: var(--color-text-primary);
  transform: translateX(4px);
}

.outline-item.active {
  color: var(--color-text-primary);
  border-left-color: var(--color-accent);
  background: linear-gradient(90deg, rgba(47, 111, 159, 0.1) 0%, rgba(255,255,255,0.86) 100%);
  font-weight: 600;
  box-shadow: 0 1px 2px rgba(24, 50, 74, 0.06);
}

.outline-item[data-level="2"] { padding-left: calc(var(--space-4) + 12px); }
.outline-item[data-level="3"] { padding-left: calc(var(--space-4) + 24px); }
.outline-item[data-level="4"] { padding-left: calc(var(--space-4) + 36px); }

.outline-empty {
  padding: var(--space-6) var(--space-4);
  text-align: center;
  color: var(--color-text-tertiary);
  font-size: var(--text-sm);
}

/* --- 编辑器区域 --- */
.editor-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: linear-gradient(180deg, #f8fcff 0%, #eef5fa 100%);
}

/* --- AI侧边栏 --- */
.ai-sidebar {
  width: var(--sidebar-width);
  border-left: 1px solid var(--color-border-light);
  background: linear-gradient(180deg, #fbfeff 0%, #eef5fa 100%);
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  transition: width var(--transition-normal), opacity var(--transition-normal);
  overflow: hidden;
}

.ai-sidebar.collapsed {
  width: 0;
  opacity: 0;
  border-left: none;
}
