/* ========================================
   Data Management CSS - 数据管理二级页
   ======================================== */

/* ---- 页面容器 ---- */
.data-screen {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #ffffff;
  z-index: var(--z-drawer);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  display: none;
}

.data-screen.is-active {
  display: flex;
}

/* ---- 顶部导航栏 ---- */
.data-nav {
  height: var(--status-bar-height);
  margin-top: var(--safe-area-top);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--spacing-lg);
  background-color: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(20px) saturate(1.2);
  -webkit-backdrop-filter: blur(20px) saturate(1.2);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  flex-shrink: 0;
}

.data-nav__back {
  display: flex;
  align-items: center;
  color: var(--color-text-primary);
  font-size: var(--font-size-md);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  margin-left: -8px;
}

.data-nav__back svg {
  width: 24px;
  height: 24px;
  margin-right: 2px;
}

.data-nav__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.data-nav__right {
  width: 60px;
}

/* ---- 可滚动内容区 ---- */
.data-content {
  flex: 1;
  overflow-y: auto;
  padding: var(--spacing-lg);
  padding-bottom: calc(var(--spacing-3xl) + 40px + var(--safe-area-bottom));
  -webkit-overflow-scrolling: touch;
}

/* ---- 数据可视化卡片 ---- */
.data-chart {
  background-color: rgba(0, 0, 0, 0.02);
  border-radius: 20px;
  box-shadow: none;
  padding: var(--spacing-lg);
  margin-bottom: var(--spacing-xl);
}

.data-chart__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--spacing-lg);
}

.data-chart__title {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
}

.data-chart__total {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

/* 横向柱状图 */
.data-chart__bars {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.data-bar {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.data-bar__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.data-bar__name {
  font-size: var(--font-size-sm);
  color: var(--color-text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
}

.data-bar__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.data-bar__size {
  font-size: var(--font-size-xs);
  color: var(--color-text-hint);
}

.data-bar__track {
  width: 100%;
  height: 6px;
  background-color: var(--color-capsule-bg);
  border-radius: 3px;
  overflow: hidden;
}

.data-bar__fill {
  height: 100%;
  border-radius: 3px;
  transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1);
  min-width: 2px;
}

/* 柱状图颜色 */
.data-bar--messages .data-bar__dot,
.data-bar--messages .data-bar__fill { background-color: #5856d6; }

.data-bar--characters .data-bar__dot,
.data-bar--characters .data-bar__fill { background-color: #007aff; }

.data-bar--worldbook .data-bar__dot,
.data-bar--worldbook .data-bar__fill { background-color: #34c759; }

.data-bar--image .data-bar__dot,
.data-bar--image .data-bar__fill { background-color: #ff9500; }

.data-bar--favorites .data-bar__dot,
.data-bar--favorites .data-bar__fill { background-color: #ffcc00; }

.data-bar--offline .data-bar__dot,
.data-bar--offline .data-bar__fill { background-color: #30b0c7; }

.data-bar--appearance .data-bar__dot,
.data-bar--appearance .data-bar__fill { background-color: #af52de; }

.data-bar--system .data-bar__dot,
.data-bar--system .data-bar__fill { background-color: #ff2d55; }

/* 加载中状态 */
.data-chart__loading {
  text-align: center;
  padding: var(--spacing-xl) 0;
  font-size: var(--font-size-sm);
  color: var(--color-text-hint);
}

/* ---- 操作区 ---- */
.data-actions {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md);
}

.data-action-item {
  background-color: rgba(0, 0, 0, 0.02);
  border-radius: 20px;
  box-shadow: none;
  display: flex;
  align-items: center;
  padding: var(--spacing-lg);
  cursor: pointer;
  transition: background-color var(--transition-fast);
  border: none;
  width: 100%;
  text-align: left;
  font-family: var(--font-family);
}

.data-action-item:active {
  background-color: rgba(0, 0, 0, 0.05);
}

.data-action-item__icon {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  background-color: var(--color-capsule-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-right: var(--spacing-md);
}

.data-action-item__icon svg {
  width: 20px;
  height: 20px;
  color: var(--color-icon-primary);
}

.data-action-item__info {
  flex: 1;
  min-width: 0;
}

.data-action-item__title {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-regular);
  color: var(--color-text-primary);
}

.data-action-item__desc {
  font-size: var(--font-size-xs);
  color: var(--color-text-hint);
  margin-top: 2px;
}

.data-action-item__arrow {
  width: 16px;
  height: 16px;
  color: var(--color-text-hint);
  flex-shrink: 0;
  margin-left: var(--spacing-sm);
}

/* 危险操作样式 */
.data-action-item--danger .data-action-item__icon {
  background-color: rgba(255, 59, 48, 0.08);
}

.data-action-item--danger .data-action-item__icon svg {
  color: #ff3b30;
}

.data-action-item--danger .data-action-item__title {
  color: #ff3b30;
}

/* 禁用 / 占位态 */
.data-action-item--placeholder {
  opacity: 0.7;
}

/* ---- 确认弹窗 ---- */
.data-confirm-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--color-overlay);
  z-index: var(--z-overlay);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.data-confirm-overlay.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.data-confirm {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.95);
  width: 270px;
  background-color: var(--color-frost-heavy);
  backdrop-filter: var(--blur-heavy);
  -webkit-backdrop-filter: var(--blur-heavy);
  border-radius: var(--radius-modal);
  z-index: var(--z-modal);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  overflow: hidden;
}

.data-confirm.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, -50%) scale(1);
}

.data-confirm__body {
  padding: 20px var(--spacing-lg) var(--spacing-lg);
  text-align: center;
}

.data-confirm__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: 6px;
}

.data-confirm__msg {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
  line-height: 1.4;
}

.data-confirm__actions {
  display: flex;
  border-top: 1px solid var(--color-border);
}

.data-confirm__btn {
  flex: 1;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  font-size: var(--font-size-lg);
  font-family: var(--font-family);
  cursor: pointer;
  transition: background-color var(--transition-fast);
}

.data-confirm__btn:active {
  background-color: var(--color-accent-active);
}

.data-confirm__btn--cancel {
  color: var(--color-accent);
  font-weight: var(--font-weight-regular);
  border-right: 1px solid var(--color-border);
}

.data-confirm__btn--ok {
  color: var(--color-accent);
  font-weight: var(--font-weight-semibold);
}

.data-confirm__btn--danger {
  color: #ff3b30;
  font-weight: var(--font-weight-semibold);
}

/* ---- Toast（复用 api-settings 的 toast 样式） ---- */
.data-toast {
  position: absolute;
  top: 60px;
  left: 50%;
  transform: translateX(-50%) translateY(-20px);
  padding: 10px 20px;
  border-radius: var(--radius-sm);
  font-size: var(--font-size-sm);
  font-family: var(--font-family);
  color: #fff;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
  z-index: var(--z-toast);
  max-width: 280px;
  text-align: center;
  white-space: nowrap;
}

.data-toast.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.data-toast--success { background-color: #34c759; }
.data-toast--error   { background-color: #ff3b30; }
.data-toast--info    { background-color: var(--color-text-primary); }

/* ---- 隐藏文件输入 ---- */
.data-file-input {
  display: none;
}
