/* ═══════════════════════════════════════════════════════════
   4566 WingApp — 主应用样式 / Main Application Styles
   纯增量 / Pure incremental: 仅新增此文件，不修改任何原始文件
   Clone note: Layout values mirror 4567 (Next.js) Tailwind output.
   ═══════════════════════════════════════════════════════════ */

/* ── 全局重置与根容器 / Global reset & root containers ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; overflow-x: hidden; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif; -webkit-font-smoothing: antialiased; }

.wing-root {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: var(--glass-bg-canvas, #111114);
  color: var(--glass-text-primary, #e8e8ed);
}

/* ── 顶部导航栏 / Top Navbar ── */
/* 复刻 4567 Navbar.tsx: h-16, border-b, backdrop-blur */
.wing-navbar {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  height: 64px;
  padding: 0 16px;
  border-bottom: 1px solid var(--glass-stroke-base, rgba(255,255,255,0.08));
  background: var(--glass-bg-nav, rgba(17,17,20,0.85));
  backdrop-filter: blur(var(--glass-blur-nav, 12px));
  -webkit-backdrop-filter: blur(var(--glass-blur-nav, 12px));
  gap: 12px;
  flex-shrink: 0;
}
.wing-navbar__logo {
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: #e8c26a;
  text-decoration: none;
  transition: opacity 0.2s;
  white-space: nowrap;
  user-select: none;
}
.wing-navbar__logo:hover { opacity: 0.8; }
.wing-navbar__links {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1;
  overflow-x: auto;
  scrollbar-width: none;
}
.wing-navbar__links::-webkit-scrollbar { display: none; }
.wing-navbar__link {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--glass-text-secondary, #a1a1aa);
  text-decoration: none;
  padding: 6px 10px;
  border-radius: 8px;
  transition: color 0.2s, background 0.2s;
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.wing-navbar__link:hover { color: var(--glass-text-primary, #e8e8ed); background: rgba(255,255,255,0.04); }
.wing-navbar__link--active {
  font-weight: 600;
  color: #e8c26a;
  text-shadow: 0 0 14px rgba(232,194,106,0.45);
  filter: drop-shadow(0 0 10px rgba(232,194,106,0.65));
}
.wing-navbar__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* ── 主内容区 / Main content ── */
.wing-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 64px);
}
.wing-page {
  flex: 1;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 32px 16px;
}
@media (min-width: 640px) { .wing-page { padding: 32px 24px; } }
@media (min-width: 1024px) { .wing-page { padding: 32px 32px; } }

/* ── 模态框根 / Modal root ── */
.wing-modal-root {
  position: fixed;
  inset: 0;
  z-index: 120;
  pointer-events: none;
}
.wing-modal-root > * { pointer-events: auto; }

/* ── TipsAlert 根 / TipsAlert root ── */
.wing-tips-alert-root {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.wing-tips-alert-root > * { pointer-events: auto; }

/* ── TipsConfirm 根 / TipsConfirm root ── */
.wing-tips-confirm-root {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.wing-tips-confirm-root > * { pointer-events: auto; }

/* ── GlassModalShell 样式 / Modal shell styles ── */
/* 复刻 GlassModalShell.tsx 的 sm/md/lg/xl 尺寸 */
.wm-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: wm-fade-in 0.18s ease-out;
}
@keyframes wm-fade-in { from { opacity: 0; } to { opacity: 1; } }
.wm-panel {
  background: var(--glass-bg-modal, #1c1c21);
  border: 1px solid var(--glass-stroke-base, rgba(255,255,255,0.08));
  border-radius: var(--glass-radius-modal, 16px);
  box-shadow: var(--glass-shadow-modal, 0 24px 80px rgba(0,0,0,0.6));
  display: flex;
  flex-direction: column;
  max-height: 85vh;
  overflow: hidden;
  animation: wm-slide-up 0.22s ease-out;
}
@keyframes wm-slide-up { from { transform: translateY(12px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.wm-panel--sm { width: 400px; max-width: 92vw; }
.wm-panel--md { width: 560px; max-width: 92vw; }
.wm-panel--lg { width: 720px; max-width: 94vw; }
.wm-panel--xl { width: 960px; max-width: 96vw; }
.wm-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--glass-stroke-base, rgba(255,255,255,0.06));
  flex-shrink: 0;
}
.wm-title { font-size: 1rem; font-weight: 600; color: var(--glass-text-primary, #e8e8ed); }
.wm-close {
  width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  border: none; background: transparent;
  color: var(--glass-text-tertiary, #71717a);
  cursor: pointer; border-radius: 6px;
  transition: background 0.15s, color 0.15s;
  font-size: 16px;
}
.wm-close:hover { background: rgba(255,255,255,0.06); color: var(--glass-text-primary, #e8e8ed); }
.wm-body {
  padding: 20px;
  overflow-y: auto;
  flex: 1;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.12) transparent;
}
.wm-footer {
  padding: 12px 20px;
  border-top: 1px solid var(--glass-stroke-base, rgba(255,255,255,0.06));
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-shrink: 0;
}

/* ── TipsAlert 弹窗 / TipsAlert dialog ── */
.ta-dialog {
  width: 420px;
  max-width: 92vw;
  background: var(--glass-bg-modal, #1c1c21);
  border: 1px solid var(--glass-stroke-base, rgba(255,255,255,0.08));
  border-radius: var(--glass-radius-modal, 16px);
  box-shadow: var(--glass-shadow-modal, 0 24px 80px rgba(0,0,0,0.6));
  padding: 24px;
  animation: wm-slide-up 0.22s ease-out;
}
.ta-title { font-size: 1rem; font-weight: 600; margin-bottom: 12px; color: var(--glass-text-primary); }
.ta-message { font-size: 0.875rem; color: var(--glass-text-secondary); line-height: 1.6; word-break: break-word; white-space: pre-wrap; }
.ta-copy-btn {
  margin-top: 12px;
  font-size: 0.75rem;
  color: var(--glass-tone-info-fg, #60a5fa);
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: underline;
}
.ta-actions { margin-top: 16px; display: flex; justify-content: flex-end; gap: 8px; }

/* ── TipsConfirm 弹窗 / TipsConfirm dialog ── */
.tc-dialog {
  width: 400px;
  max-width: 92vw;
  background: var(--glass-bg-modal, #1c1c21);
  border: 1px solid var(--glass-stroke-base, rgba(255,255,255,0.08));
  border-radius: var(--glass-radius-modal, 16px);
  box-shadow: var(--glass-shadow-modal, 0 24px 80px rgba(0,0,0,0.6));
  padding: 24px;
  animation: wm-slide-up 0.22s ease-out;
}
.tc-message { font-size: 0.875rem; color: var(--glass-text-secondary); line-height: 1.6; margin-bottom: 16px; }
.tc-actions { display: flex; justify-content: flex-end; gap: 8px; }

/* ── 工作台页面 / Workspace page ── */
.ws-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  gap: 12px;
  flex-wrap: wrap;
}
.ws-title { font-size: 1.5rem; font-weight: 700; color: var(--glass-text-primary); }
.ws-search {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  max-width: 320px;
}
.ws-grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 20px;
}
@media (min-width: 768px) { .ws-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ws-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1280px) { .ws-grid { grid-template-columns: repeat(4, 1fr); } }

/* ── 项目卡片 / Project card ── */
.ws-card {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.3s;
  border-left: 2px solid rgba(232,194,106,0.3);
}
.ws-card:hover { border-color: rgba(96,165,250,0.4); }
.ws-card__glow {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(245,158,11,0.05), rgba(202,138,4,0.05));
  opacity: 0;
  transition: opacity 0.5s;
  pointer-events: none;
}
.ws-card:hover .ws-card__glow { opacity: 1; }
.ws-card__body { padding: 20px; position: relative; z-index: 1; }
.ws-card__name {
  font-size: 1rem;
  font-weight: 700;
  color: var(--glass-text-primary);
  margin-bottom: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ws-card__desc {
  font-size: 0.75rem;
  color: var(--glass-text-secondary);
  line-height: 1.5;
  margin-bottom: 12px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ws-card__stats {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.875rem;
  font-weight: 600;
  background: linear-gradient(to right, #3b82f6, #06b6d4);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.ws-card__time {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 12px;
  font-size: 0.625rem;
  color: var(--glass-text-tertiary);
}

/* ── 空状态 / Empty state ── */
.ws-empty {
  text-align: center;
  padding: 48px 0;
}
.ws-empty__icon {
  width: 64px; height: 64px;
  background: var(--glass-bg-muted, rgba(255,255,255,0.04));
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 16px;
  font-size: 32px;
  color: var(--glass-text-tertiary);
}
.ws-empty__title { font-size: 1.125rem; font-weight: 500; color: var(--glass-text-primary); margin-bottom: 8px; }
.ws-empty__desc { color: var(--glass-text-secondary); margin-bottom: 24px; }

/* ── 分页 / Pagination ── */
.ws-pagination {
  margin-top: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

/* ── 加载骨架 / Loading skeleton ── */
.ws-skeleton {
  padding: 20px;
  animation: pulse 2s cubic-bezier(0.4,0,0.6,1) infinite;
}
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
.ws-skeleton__line {
  height: 12px;
  background: var(--glass-bg-muted, rgba(255,255,255,0.04));
  border-radius: 4px;
  margin-bottom: 8px;
}
.ws-skeleton__line--short { width: 66%; }

/* ── 分段选择器 / Segmented control ── */
.ws-segmented {
  display: inline-flex;
  border-radius: 10px;
  border: 1px solid var(--glass-stroke-base, rgba(255,255,255,0.08));
  background: var(--glass-bg-muted, rgba(255,255,255,0.02));
  padding: 2px;
  gap: 2px;
}
.ws-segmented__btn {
  padding: 6px 14px;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--glass-text-secondary);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: all 0.15s;
}
.ws-segmented__btn:hover { color: var(--glass-text-primary); }
.ws-segmented__btn--active {
  background: var(--glass-bg-elevated, rgba(255,255,255,0.06));
  color: var(--glass-text-primary);
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}

/* ── 主题切换 / Theme toggle ── */
.wing-theme-toggle {
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  border: none; background: transparent;
  color: var(--glass-text-secondary);
  cursor: pointer; border-radius: 8px;
  transition: background 0.15s, color 0.15s;
  font-size: 18px;
}
.wing-theme-toggle:hover { background: rgba(255,255,255,0.06); color: var(--glass-text-primary); }

/* ── 语言切换 / Language switch ── */
.wing-lang-select {
  font-size: 0.75rem;
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px solid var(--glass-stroke-base, rgba(255,255,255,0.08));
  background: var(--glass-bg-muted, rgba(255,255,255,0.02));
  color: var(--glass-text-secondary);
  cursor: pointer;
  outline: none;
}
.wing-lang-select:focus { border-color: var(--glass-tone-info-fg, #60a5fa); }

/* ── 响应式导航 / Responsive nav ── */
@media (max-width: 768px) {
  .wing-navbar { padding: 0 12px; gap: 8px; }
  .wing-navbar__logo { font-size: 1rem; }
  .wing-navbar__link { font-size: 0.8rem; padding: 4px 8px; }
  .ws-title { font-size: 1.25rem; }
}

/* ── 滚动条 / Scrollbar (app-scrollbar mirror) ── */
.app-scrollbar::-webkit-scrollbar { width: 6px; height: 6px; }
.app-scrollbar::-webkit-scrollbar-track { background: transparent; }
.app-scrollbar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 3px; }
.app-scrollbar::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.2); }

/* ── 浅色主题覆盖 / Light theme overrides ── */
[data-visual-theme='light'] .wing-navbar {
  background: rgba(255,255,255,0.85);
  border-bottom-color: rgba(0,0,0,0.06);
}
[data-visual-theme='light'] .wm-panel,
[data-visual-theme='light'] .ta-dialog,
[data-visual-theme='light'] .tc-dialog {
  background: #ffffff;
  border-color: rgba(0,0,0,0.08);
}

/* ═══════════════════════════════════════════════════════════
   项目详情页 / Project Detail Page (pd-*)
   Clone note: mirrors workspace/[projectId]/page.tsx + Sidebar.tsx + CapsuleNav
   ═══════════════════════════════════════════════════════════ */

/* ── 外层容器 / Outer container ── */
.pd-container {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 64px);
  width: 100%;
}

/* ── 顶部项目信息栏 / Project info bar ── */
.pd-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  border-bottom: 1px solid var(--glass-stroke-base, rgba(255,255,255,0.08));
  background: var(--glass-bg-nav, rgba(17,17,20,0.6));
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  flex-shrink: 0;
  gap: 12px;
}
.pd-bar__left {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1;
}
.pd-bar__name {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--glass-text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pd-bar__right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* ── 侧边栏切换按钮 / Sidebar toggle ── */
.pd-toggle-btn {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--glass-stroke-base, rgba(255,255,255,0.08));
  background: var(--glass-bg-muted, rgba(255,255,255,0.02));
  color: var(--glass-text-tertiary, #71717a);
  cursor: pointer;
  border-radius: 6px;
  font-size: 12px;
  transition: background 0.15s, color 0.15s;
  flex-shrink: 0;
}
.pd-toggle-btn:hover {
  background: rgba(255,255,255,0.06);
  color: var(--glass-text-primary);
}

/* ── 主体区域 / Main area (sidebar + content) ── */
.pd-main {
  display: flex;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

/* ── 侧边栏 / Sidebar ── */
.pd-sidebar {
  width: 240px;
  min-width: 240px;
  border-right: 1px solid var(--glass-stroke-base, rgba(255,255,255,0.08));
  background: var(--glass-bg-surface, rgba(255,255,255,0.02));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  flex-shrink: 0;
}
.pd-sidebar__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid var(--glass-stroke-base, rgba(255,255,255,0.06));
}
.pd-sidebar__title {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--glass-text-primary);
}
.pd-sidebar__count {
  font-size: 0.6875rem;
  color: var(--glass-text-tertiary);
  background: var(--glass-bg-muted, rgba(255,255,255,0.04));
  padding: 2px 8px;
  border-radius: 10px;
}
.pd-sidebar__add-btn {
  margin: 8px 12px;
  padding: 7px 12px;
  font-size: 0.75rem;
  font-weight: 500;
  border: 1px dashed var(--glass-stroke-base, rgba(255,255,255,0.08));
  background: transparent;
  color: var(--glass-text-secondary);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s;
  text-align: center;
}
.pd-sidebar__add-btn:hover {
  border-color: var(--glass-tone-info-fg, #60a5fa);
  color: var(--glass-tone-info-fg, #60a5fa);
  background: rgba(96,165,250,0.05);
}
.pd-sidebar__list {
  flex: 1;
  overflow-y: auto;
  padding: 4px 8px 12px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.1) transparent;
}
.pd-sidebar__empty {
  text-align: center;
  padding: 24px 12px;
  font-size: 0.75rem;
  color: var(--glass-text-tertiary);
}

/* ── 剧集列表项 / Episode item ── */
.pd-ep-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  font-size: 0.8125rem;
  color: var(--glass-text-secondary);
  margin-bottom: 2px;
}
.pd-ep-item:hover {
  background: var(--glass-bg-muted, rgba(255,255,255,0.04));
}
.pd-ep-item--active {
  background: rgba(96,165,250,0.1);
  color: var(--glass-tone-info-fg, #60a5fa);
  font-weight: 600;
}
.pd-ep-item__num {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 0.6875rem;
  font-weight: 700;
  background: var(--glass-bg-muted, rgba(255,255,255,0.04));
  flex-shrink: 0;
}
.pd-ep-item--active .pd-ep-item__num {
  background: rgba(96,165,250,0.2);
}
.pd-ep-item__name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
}

/* ── 内容区 / Content area ── */
.pd-content {
  flex: 1;
  overflow-y: auto;
  padding: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

/* ── 阶段导航 / Stage navigation (CapsuleNav mirror) ── */
/* 复刻 CapsuleNav.tsx: rounded-full, backdrop-blur, capsule items */
.pd-stage-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px 16px 0;
  gap: 4px;
  flex-shrink: 0;
}
.pd-stage-btn {
  padding: 8px 20px;
  border-radius: 12px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--glass-text-secondary);
  background: var(--glass-bg-muted, rgba(255,255,255,0.04));
  border: none;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}
.pd-stage-btn:hover {
  background: rgba(255,255,255,0.08);
  color: var(--glass-text-primary);
}
.pd-stage-btn--active {
  background: var(--glass-accent-from, #3b82f6);
  color: #ffffff;
  box-shadow: 0 4px 12px rgba(59,130,246,0.3);
}
.pd-stage-btn--active:hover {
  background: var(--glass-accent-from, #3b82f6);
  color: #ffffff;
}
.pd-stage-sep {
  color: var(--glass-text-tertiary, #71717a);
  font-size: 0.875rem;
  user-select: none;
  padding: 0 2px;
}

/* ── 阶段内容 / Stage content ── */
.pd-stage-content {
  flex: 1;
  padding: 24px;
}
.pd-stage-wrap {
  max-width: 960px;
  margin: 0 auto;
}
.pd-stage-title {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--glass-text-primary);
  margin-bottom: 8px;
}
.pd-stage-desc {
  font-size: 0.8125rem;
  color: var(--glass-text-secondary);
  line-height: 1.6;
  margin-bottom: 16px;
}
.pd-textarea {
  width: 100%;
  min-height: 200px;
  resize: vertical;
  padding: 12px;
  font-size: 0.875rem;
  line-height: 1.6;
  border-radius: 10px;
}

/* ── 加载态 / Loading ── */
.pd-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40vh;
  padding: 32px;
  width: 100%;
}

/* ── 项目详情响应式 / Project detail responsive ── */
@media (max-width: 768px) {
  .pd-sidebar {
    width: 200px;
    min-width: 200px;
  }
  .pd-stage-btn {
    padding: 6px 12px;
    font-size: 0.75rem;
  }
  .pd-stage-content {
    padding: 16px;
  }
  .pd-bar {
    padding: 8px 12px;
  }
}
@media (max-width: 480px) {
  .pd-sidebar {
    width: 160px;
    min-width: 160px;
  }
  .pd-stage-nav {
    flex-wrap: wrap;
    gap: 6px;
  }
}

/* ═══════════════════════════════════════════════════════════
   资源库页面 / Resource Library Pages (rl-*)
   Clone note: mirrors style-library, point-library, negative-prompt-library, rewriting-assistant-library
   ═══════════════════════════════════════════════════════════ */

.rl-container { display:flex;flex-direction:column;min-height:calc(100vh - 64px);width:100% }
.rl-header {
  display:flex;align-items:center;justify-content:space-between;padding:16px 24px;
  border-bottom:1px solid var(--glass-stroke-base,rgba(255,255,255,0.08));gap:12px;flex-wrap:wrap
}
.rl-header__left { display:flex;align-items:center;gap:8px;min-width:0;flex:1 }
.rl-header__title { font-size:1.25rem;font-weight:700;color:var(--glass-text-primary);white-space:nowrap }
.rl-header__right { display:flex;align-items:center;gap:8px;flex-shrink:0 }
.rl-search { width:200px;font-size:0.8125rem;padding:6px 10px }
.rl-main { display:flex;flex:1;min-height:0 }

/* 文件夹侧栏 / Folder sidebar */
.rl-sidebar {
  width:180px;min-width:180px;border-right:1px solid var(--glass-stroke-base,rgba(255,255,255,0.08));
  background:var(--glass-bg-surface,rgba(255,255,255,0.02));padding:12px 8px;
  display:flex;flex-direction:column;gap:4px;flex-shrink:0;overflow-y:auto
}
.rl-sidebar__title { font-size:0.75rem;font-weight:600;color:var(--glass-text-secondary);padding:4px 8px;margin-bottom:4px }
.rl-folder-btn {
  display:block;width:100%;text-align:left;padding:6px 10px;border:none;background:transparent;
  color:var(--glass-text-secondary);font-size:0.8125rem;border-radius:6px;cursor:pointer;transition:all 0.15s
}
.rl-folder-btn:hover { background:rgba(255,255,255,0.04);color:var(--glass-text-primary) }
.rl-folder-btn--active { background:rgba(96,165,250,0.1);color:var(--glass-tone-info-fg,#60a5fa);font-weight:600 }
.rl-folder-btn--add { color:var(--glass-text-tertiary);font-style:italic;margin-top:8px }
.rl-folder-btn--add:hover { color:var(--glass-tone-info-fg,#60a5fa) }

/* 内容区 / Content */
.rl-content { flex:1;padding:24px;overflow-y:auto;min-width:0 }
.rl-grid {
  display:grid;grid-template-columns:repeat(1,1fr);gap:16px
}
@media (min-width:640px) { .rl-grid { grid-template-columns:repeat(2,1fr) } }
@media (min-width:1024px) { .rl-grid { grid-template-columns:repeat(3,1fr) } }
@media (min-width:1280px) { .rl-grid { grid-template-columns:repeat(4,1fr) } }

/* 卡片 / Card */
.rl-card { padding:16px;cursor:default;transition:border-color 0.2s }
.rl-card:hover { border-color:rgba(96,165,250,0.3) }
.rl-card__header { display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px }
.rl-card__name { font-size:0.875rem;font-weight:700;color:var(--glass-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 }
.rl-card__body { }
.rl-card__preview { font-size:0.75rem;color:var(--glass-text-secondary);line-height:1.5;max-height:80px;overflow:hidden }
.rl-card__folder { display:inline-block;font-size:0.6875rem;color:var(--glass-text-tertiary);margin-top:6px }
.rl-card__actions { display:flex;justify-content:flex-end;margin-top:8px;gap:4px }

/* ═══════════════════════════════════════════════════════════
   资产中心 / Asset Hub (ah-*)
   ═══════════════════════════════════════════════════════════ */

.ah-container { display:flex;flex-direction:column;min-height:calc(100vh - 64px);width:100% }
.ah-header {
  display:flex;align-items:center;justify-content:space-between;padding:16px 24px;
  border-bottom:1px solid var(--glass-stroke-base,rgba(255,255,255,0.08));gap:12px;flex-wrap:wrap
}
.ah-header__left { display:flex;align-items:center;gap:16px;min-width:0;flex:1 }
.ah-header__title { font-size:1.25rem;font-weight:700;color:var(--glass-text-primary);white-space:nowrap }
.ah-header__right { display:flex;align-items:center;gap:8px;flex-shrink:0 }
.ah-search { width:200px;font-size:0.8125rem;padding:6px 10px }
.ah-tabs { display:flex;gap:4px }
.ah-tab {
  padding:6px 14px;border-radius:8px;font-size:0.8125rem;font-weight:500;
  color:var(--glass-text-secondary);background:transparent;border:none;cursor:pointer;transition:all 0.15s
}
.ah-tab:hover { background:rgba(255,255,255,0.04) }
.ah-tab--active { background:rgba(96,165,250,0.1);color:var(--glass-tone-info-fg,#60a5fa);font-weight:600 }
.ah-main { display:flex;flex:1;min-height:0 }

.ah-sidebar {
  width:180px;min-width:180px;border-right:1px solid var(--glass-stroke-base,rgba(255,255,255,0.08));
  background:var(--glass-bg-surface,rgba(255,255,255,0.02));padding:12px 8px;
  display:flex;flex-direction:column;gap:4px;flex-shrink:0;overflow-y:auto
}
.ah-sidebar__title { font-size:0.75rem;font-weight:600;color:var(--glass-text-secondary);padding:4px 8px;margin-bottom:4px }
.ah-folder-btn {
  display:block;width:100%;text-align:left;padding:6px 10px;border:none;background:transparent;
  color:var(--glass-text-secondary);font-size:0.8125rem;border-radius:6px;cursor:pointer;transition:all 0.15s
}
.ah-folder-btn:hover { background:rgba(255,255,255,0.04) }
.ah-folder-btn--active { background:rgba(96,165,250,0.1);color:var(--glass-tone-info-fg);font-weight:600 }
.ah-folder-btn--add { color:var(--glass-text-tertiary);font-style:italic;margin-top:8px }

.ah-content { flex:1;padding:24px;overflow-y:auto;min-width:0 }
.ah-grid {
  display:grid;grid-template-columns:repeat(1,1fr);gap:12px
}
@media (min-width:640px) { .ah-grid { grid-template-columns:repeat(2,1fr) } }
@media (min-width:1024px) { .ah-grid { grid-template-columns:repeat(3,1fr) } }
@media (min-width:1280px) { .ah-grid { grid-template-columns:repeat(4,1fr) } }

.ah-card { padding:14px;transition:border-color 0.2s }
.ah-card:hover { border-color:rgba(96,165,250,0.3) }
.ah-card__body { display:flex;align-items:center;gap:12px }
.ah-card__avatar {
  width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(96,165,250,0.15);color:var(--glass-tone-info-fg);font-size:1.125rem;font-weight:700;flex-shrink:0
}
.ah-card__info { flex:1;min-width:0 }
.ah-card__name { font-size:0.875rem;font-weight:700;color:var(--glass-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.ah-card__type { font-size:0.6875rem;color:var(--glass-text-tertiary);margin-top:2px }
.ah-card__del {
  width:24px;height:24px;display:flex;align-items:center;justify-content:center;
  font-size:16px;padding:0;border-radius:4px;flex-shrink:0;opacity:0;transition:opacity 0.15s
}
.ah-card:hover .ah-card__del { opacity:1 }

/* ═══════════════════════════════════════════════════════════
   历史知识库 / Historical KB (hk-*)
   ═══════════════════════════════════════════════════════════ */

.hk-container { max-width:960px;margin:0 auto;padding:24px 16px;width:100% }
.hk-header {
  display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:12px
}
.hk-header__title { font-size:1.5rem;font-weight:700;color:var(--glass-text-primary) }
.hk-header__subtitle { font-size:0.8125rem;color:var(--glass-text-secondary);margin-top:4px }
.hk-filters { display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap }
.hk-filters__search { flex:1;min-width:200px;font-size:0.8125rem;padding:8px 12px }
.hk-filters__select { min-width:120px;padding:8px 12px;font-size:0.8125rem }
.hk-list { display:flex;flex-direction:column;gap:12px }
.hk-card { padding:16px;cursor:pointer;transition:border-color 0.2s }
.hk-card:hover { border-color:rgba(96,165,250,0.3) }
.hk-card__body { }
.hk-card__name-row { display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap }
.hk-card__name { font-size:0.9375rem;font-weight:700;color:var(--glass-text-primary) }
.hk-card__desc { font-size:0.8125rem;color:var(--glass-text-secondary);line-height:1.5 }
.hk-card__meta { font-size:0.6875rem;color:var(--glass-text-tertiary);margin-top:8px }

/* ── 资源库响应式 / Resource library responsive ── */
@media (max-width:768px) {
  .rl-sidebar,.ah-sidebar { width:140px;min-width:140px }
  .rl-header,.ah-header { padding:12px 16px }
  .rl-content,.ah-content { padding:16px }
  .hk-container { padding:16px 12px }
}
@media (max-width:480px) {
  .rl-sidebar,.ah-sidebar { display:none }
  .rl-header__left,.ah-header__left { flex-direction:column;align-items:flex-start }
  .rl-search,.ah-search { width:100% }
}

/* ═══════════════════════════════════════════════════════════
   设置页面 / Profile Settings Page (pf-*)
   Clone note: mirrors profile/page.tsx
   ═══════════════════════════════════════════════════════════ */

.pf-container { max-width:800px;margin:0 auto;padding:32px 16px;width:100% }
.pf-header {
  display:flex;align-items:center;gap:16px;margin-bottom:24px;padding:20px;
  background:var(--glass-bg-surface,rgba(255,255,255,0.02));
  border:1px solid var(--glass-stroke-base,rgba(255,255,255,0.08));
  border-radius:16px
}
.pf-avatar {
  width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(96,165,250,0.15);color:var(--glass-tone-info-fg);
  font-size:1.5rem;font-weight:700;flex-shrink:0;
  border:1px solid var(--glass-stroke-base,rgba(255,255,255,0.08))
}
.pf-header__info { min-width:0 }
.pf-header__name { font-size:1.25rem;font-weight:700;color:var(--glass-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.pf-header__role { font-size:0.75rem;font-weight:500;color:var(--glass-tone-info-fg);margin-top:2px;display:block }

.pf-tabs {
  display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--glass-stroke-base,rgba(255,255,255,0.08));
  padding-bottom:0;overflow-x:auto;scrollbar-width:none
}
.pf-tabs::-webkit-scrollbar { display:none }
.pf-tab {
  padding:10px 16px;font-size:0.8125rem;font-weight:500;color:var(--glass-text-secondary);
  background:transparent;border:none;border-bottom:2px solid transparent;
  cursor:pointer;transition:all 0.15s;white-space:nowrap
}
.pf-tab:hover { color:var(--glass-text-primary) }
.pf-tab--active { color:var(--glass-tone-info-fg,#60a5fa);border-bottom-color:var(--glass-tone-info-fg,#60a5fa);font-weight:600 }

.pf-content { }
.pf-section {
  background:var(--glass-bg-surface,rgba(255,255,255,0.02));
  border:1px solid var(--glass-stroke-base,rgba(255,255,255,0.08));
  border-radius:12px;padding:20px;margin-bottom:16px
}
.pf-section__title { font-size:0.9375rem;font-weight:600;color:var(--glass-text-primary);margin-bottom:16px }
.pf-section__desc { font-size:0.8125rem;color:var(--glass-text-secondary);line-height:1.5 }

.pf-row {
  display:flex;align-items:center;justify-content:space-between;padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,0.04);gap:12px
}
.pf-row:last-child { border-bottom:none }
.pf-row__label { font-size:0.8125rem;color:var(--glass-text-secondary);flex-shrink:0 }
.pf-row__value { font-size:0.8125rem;color:var(--glass-text-primary);text-align:right }
.pf-row__value--mono { font-family:monospace;font-size:0.75rem;color:var(--glass-text-tertiary) }
.pf-row__select { min-width:120px }

.pf-capabilities { display:flex;flex-direction:column;gap:8px }
.pf-cap-row {
  display:flex;align-items:center;justify-content:space-between;padding:6px 0;
  font-size:0.8125rem;gap:12px
}
.pf-cap-row__label { color:var(--glass-text-secondary) }
.pf-cap-row__value { color:var(--glass-text-primary);font-weight:500 }

@media (max-width:480px) {
  .pf-container { padding:16px 12px }
  .pf-header { padding:16px;gap:12px }
  .pf-avatar { width:44px;height:44px;font-size:1.125rem }
}

/* ═══════════════════════════════════════════════════════════
   浅色主题覆盖 / Light theme overrides for all 4566 pages
   ═══════════════════════════════════════════════════════════ */

[data-visual-theme='light'] .pd-bar {
  background:rgba(255,255,255,0.6);
  border-bottom-color:rgba(0,0,0,0.06)
}
[data-visual-theme='light'] .pd-sidebar,
[data-visual-theme='light'] .rl-sidebar,
[data-visual-theme='light'] .ah-sidebar {
  background:rgba(0,0,0,0.02)
}
[data-visual-theme='light'] .pd-sidebar,
[data-visual-theme='light'] .pd-main,
[data-visual-theme='light'] .rl-main,
[data-visual-theme='light'] .ah-main {
  border-color:rgba(0,0,0,0.06)
}
[data-visual-theme='light'] .pf-header,
[data-visual-theme='light'] .pf-section {
  background:rgba(0,0,0,0.02);
  border-color:rgba(0,0,0,0.08)
}

/* ── 危险按钮（确认弹窗用） / Danger button (for confirm dialogs) ── */
.glass-btn-danger {
  padding:8px 20px;border-radius:8px;font-size:0.875rem;font-weight:600;
  background:rgba(239,68,68,0.15);color:#ef4444;border:1px solid rgba(239,68,68,0.3);
  cursor:pointer;transition:all 0.15s
}
.glass-btn-danger:hover {
  background:rgba(239,68,68,0.25);border-color:rgba(239,68,68,0.5)
}
