/* 子页面共用壳层：与 starvault-redesign 对齐的背景与基础排版（知识库页独立浅色主题，见 knowledge.html） */
html:not([data-app-rail="knowledge"]) body.has-app-rail {
  background: linear-gradient(135deg, #050606, #0b0c0c 58%, #070808);
  color: var(--text);
  font-family: var(--font);
}

html:not([data-app-rail="knowledge"]) body.has-app-rail .page,
html:not([data-app-rail="knowledge"]) body.has-app-rail .skills-shell,
html:not([data-app-rail="knowledge"]) body.has-app-rail .kb-layout,
html:not([data-app-rail="knowledge"]) body.has-app-rail .agent-shell,
html:not([data-app-rail="knowledge"]) body.has-app-rail .agent-page,
html:not([data-app-rail="knowledge"]) body.has-app-rail .xhs-main {
  min-height: 100vh;
  box-sizing: border-box;
}

.app-top-user-btn {
  /* 已改用图库同款 sv-avatar 下拉，旧字母链隐藏 */
  display: none !important;
}

/* —— 小红书采集页 —— */
.xhs-page .page-box {
  background: var(--panel-strong) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  color: var(--muted) !important;
  font-size: 12px !important;
}

.xhs-page .page-box.active {
  border-color: var(--sv-color-selection-border) !important;
  color: var(--text) !important;
  background: var(--sv-color-selection-bg) !important;
}

.xhs-page .xhs-link {
  color: var(--muted) !important;
}

.xhs-page .xhs-link:hover {
  color: var(--text) !important;
}

.xhs-page .top-dashboard {
  background: var(--panel) !important;
  border-color: var(--border) !important;
}

.xhs-page .metric-card {
  background: linear-gradient(180deg, var(--panel-strong), var(--panel)) !important;
  border-color: var(--border) !important;
}

.xhs-page .batch-panel,
.xhs-page .xhs-panel {
  background: var(--panel) !important;
  border-color: var(--border) !important;
}

.xhs-page .robot-pill {
  background: var(--panel-strong) !important;
  border-color: var(--border) !important;
}

.xhs-page .robot-icon {
  color: var(--text) !important;
}

.xhs-page input,
.xhs-page select,
.xhs-page textarea {
  background: var(--panel-strong) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  border-radius: 6px !important;
}

.xhs-page .progress-fill {
  background: linear-gradient(90deg, var(--accent-dim), var(--accent)) !important;
}

.xhs-page .progress-shell {
  background: rgba(0, 0, 0, 0.35) !important;
  border-color: var(--border) !important;
}

.xhs-page .table-row {
  border-bottom-color: var(--line-soft) !important;
}

.xhs-page .table-row:not(.head):hover,
.xhs-page .table-row.active {
  background: var(--sv-color-selection-bg) !important;
  outline-color: var(--sv-color-selection-border) !important;
}

.xhs-page .industry-pill {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--muted) !important;
}

.xhs-page .badge {
  background: rgba(255, 255, 255, 0.05) !important;
  border-color: var(--border) !important;
}

.xhs-page .badge.ok {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--muted) !important;
}

.xhs-page .badge.fail {
  background: rgba(201, 104, 104, 0.12) !important;
  border-color: rgba(201, 104, 104, 0.3) !important;
  color: #f0a0a0 !important;
}

.xhs-page .tab {
  background: var(--panel-strong) !important;
  border-color: var(--border) !important;
  color: var(--muted) !important;
  border-radius: 6px 6px 0 0;
}

.xhs-page .tab.active {
  background: var(--sv-color-selection-bg) !important;
  border-color: var(--sv-color-selection-border) !important;
  color: var(--text) !important;
}

.xhs-page .preview-filter {
  background: var(--panel-strong) !important;
  border-color: var(--border) !important;
}

.xhs-page .preview-filter.active {
  background: var(--sv-color-selection-bg) !important;
  border-color: var(--sv-color-selection-border) !important;
  color: var(--text) !important;
}

.xhs-page .work-card {
  background: var(--panel-strong) !important;
  border-color: var(--border) !important;
}

.xhs-page .detail-url {
  background: var(--panel-strong) !important;
  border-color: var(--border) !important;
}

.xhs-page .account-row {
  background: var(--panel-strong) !important;
  border-color: var(--border) !important;
}

.xhs-page .xhs-empty,
.xhs-page #batchResult,
.xhs-page #notifyResult,
.xhs-page #accountResult {
  border-color: var(--border) !important;
}

.xhs-page .nav-group-title {
  color: var(--faint) !important;
}

.xhs-page .nav-count {
  color: var(--muted) !important;
}

.xhs-page .xhs-source-card {
  background: var(--panel-strong) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

.xhs-page .xhs-source-card.active {
  border-color: var(--sv-color-selection-border) !important;
  box-shadow: inset 2px 0 0 var(--accent) !important;
}

/* 采集列表折叠 */
.xhs-page .workbench {
  grid-template-columns: 1fr !important;
}

.xhs-page .workbench.has-detail {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 400px) !important;
}

.xhs-page .workbench.is-list-expanded.has-detail {
  grid-template-columns: minmax(380px, 1.2fr) minmax(320px, 400px) !important;
}

.xhs-page .xhs-panel-sources:not(.is-expanded):not(.has-detail) {
  /* collapsed list only */
}

.xhs-page #detailSection[hidden] {
  display: none !important;
}

.xhs-page .panel-head {
  gap: 10px;
}

.xhs-page .xhs-collapse-trigger {
  align-items: center;
  background: none;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  flex: 1;
  gap: 8px;
  min-width: 0;
  padding: 0;
  text-align: left;
}

.xhs-page .xhs-collapse-trigger h2 {
  margin: 0;
  font-size: 15px;
}

.xhs-page .xhs-chevron {
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  display: inline-block;
  flex-shrink: 0;
  height: 7px;
  transform: rotate(-45deg);
  transition: transform 0.18s ease;
  width: 7px;
}

.xhs-page .xhs-panel-sources.is-expanded .xhs-chevron {
  transform: rotate(45deg);
}

.xhs-page .xhs-panel-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  flex-shrink: 0;
}

.xhs-page .xhs-panel-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}

.xhs-page .xhs-panel-body .source-card-grid {
  min-height: 280px;
}

.xhs-page .source-object-card {
  background: var(--panel-strong);
  border-color: var(--border);
}

.xhs-page .source-object-card:hover,
.xhs-page .source-object-card.active {
  border-color: var(--sv-color-selection-border);
  box-shadow: none;
}

.xhs-page .source-object-card.active {
  box-shadow: inset 2px 0 0 var(--accent);
}

.xhs-page .source-object-thumb-empty {
  background: rgba(255, 255, 255, 0.025);
}

.xhs-page #btnNewSource,
.xhs-page #btnNewSourceTop {
  background: var(--sv-color-emphasis-bg) !important;
  border-color: var(--sv-color-emphasis-bg) !important;
  color: var(--sv-color-emphasis-text) !important;
}

.xhs-page .detail-actions {
  gap: 6px;
}

.xhs-page .detail-actions .btn {
  min-height: 32px;
}

.xhs-page .batch-row .btn {
  min-height: 32px;
}

.xhs-page .top-actions .btn {
  min-height: 32px;
}

.xhs-page .notify-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

/* 通知 / 账号池：按需弹出，不占主栏位 */
.xhs-page .workbench > .notify-panel[hidden] {
  display: none !important;
}

.xhs-page .workbench > .notify-panel:not([hidden]) {
  position: fixed;
  z-index: 45;
  top: 16px;
  right: 16px;
  bottom: 16px;
  width: min(440px, calc(100vw - 96px));
  overflow: auto;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.48);
}

html:not([data-app-rail="knowledge"]) body.has-app-rail .kb-sidebar,
body.has-app-rail .skills-sidebar,
body.has-app-rail .tasks-shell {
  background: var(--panel) !important;
  border-color: var(--border) !important;
}

body.has-app-rail .skill-card {
  background: linear-gradient(180deg, var(--sv-color-surface-strong), var(--sv-color-surface));
  border-color: var(--sv-color-border-soft);
}

/* Shared spatial motion for legacy overlays. Opening is anchored and restrained;
   reduced-motion is handled globally in starvault-theme.css. */
:where(.image-modal, .drawer):not([hidden]),
:where(.skill-modal, .agent-infer-modal):not(.hidden) {
  animation: sv-overlay-in 180ms var(--sv-ease-out) both;
}

:where(.image-modal, .drawer):not([hidden]) > :where(.image-modal-panel, .drawer-panel),
:where(.skill-modal, .agent-infer-modal):not(.hidden) > :where(.skill-modal-panel, .agent-infer-panel) {
  transform-origin: 50% 18%;
  animation: sv-surface-in var(--sv-duration-sheet) var(--sv-ease-out) both;
}

@keyframes sv-overlay-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes sv-surface-in {
  from {
    opacity: 0;
    transform: translate3d(0, 14px, 0) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

body.has-app-rail .tasks-table th {
  background: rgba(255, 255, 255, 0.04) !important;
  color: var(--muted);
}

body.has-app-rail .agent-composer {
  border-color: var(--border);
  background: var(--panel);
}
