/* 基础变量 - 管理系统风格 */
:root {
  --font-sans: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  --surface-solid: #ffffff;
  --surface-muted: #fafafa;
  --border-color: #f0f0f0;
  --text-primary: #262626;
  --text-secondary: #595959;
  --text-muted: #8c8c8c;
  --primary-color: #1890ff;
  --primary-hover: #40a9ff;
  --admin-primary: #722ed1;
  --admin-primary-hover: #9254de;
  --success-color: #52c41a;
  --warning-color: #faad14;
  --error-color: #f5222d;
  --shadow-sm: 0 1px 4px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.12);
  --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.15);
  --radius-sm: 4px;
  --radius-md: 8px;
  --topbar-height: 64px;
  /* 管理员菜单项较长，侧栏单独加宽以避免文字折成两行。 */
  --admin-sidebar-width: 240px;
  --sidebar-width: 200px;
}

html {
  font-size: 16px;
}

body {
  min-height: 100vh;
  font-family: var(--font-sans);
  color: var(--text-primary);
  background: #f5f5f5;
}

/* 全站统一兜底 hidden 状态，避免 display:flex / grid 的组件样式覆盖原生隐藏行为。 */
[hidden] {
  display: none !important;
}

button,
a {
  cursor: pointer;
}

.icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 1.25rem;
  height: 1.25rem;
  flex: 0 0 auto;
}

.icon::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: currentColor;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
}

/* 项目入口页 - 简化风格 */
.project-entry {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 32px;
}

.project-entry__panel {
  width: min(720px, 100%);
  padding: 40px;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  background: var(--surface-solid);
  box-shadow: var(--shadow-md);
}

.project-entry__eyebrow {
  margin-bottom: 12px;
  color: var(--admin-primary);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.project-entry__title {
  font-size: clamp(24px, 3vw, 32px);
  line-height: 1.3;
  font-weight: 600;
}

.project-entry__description {
  margin-top: 16px;
  max-width: 600px;
  color: var(--text-secondary);
  line-height: 1.6;
}

.project-entry__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 32px;
}

/* 按钮 - 管理系统风格 */
.primary-button,
.secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 24px;
  border-radius: 4px;
  font-weight: 500;
  font-size: 14px;
  transition: all 160ms ease;
}

.primary-button {
  color: #ffffff;
  background: var(--admin-primary);
  border: none;
  box-shadow: var(--shadow-sm);
}

.primary-button:hover {
  background: var(--admin-primary-hover);
}

.secondary-link {
  border: 1px solid var(--border-color);
  color: var(--text-primary);
  background: var(--surface-solid);
}

.secondary-link:hover {
  border-color: var(--admin-primary);
  color: var(--admin-primary);
}

.icon-spark::before { mask-image: url("../../images/admin/common/spark.svg"); -webkit-mask-image: url("../../images/admin/common/spark.svg"); }
.icon-brand-panel::before { mask-image: url("../../images/admin/common/brand-panel.svg"); -webkit-mask-image: url("../../images/admin/common/brand-panel.svg"); }
.icon-bell::before { mask-image: url("../../images/admin/common/bell.svg"); -webkit-mask-image: url("../../images/admin/common/bell.svg"); }
.icon-user::before { mask-image: url("../../images/admin/common/user.svg"); -webkit-mask-image: url("../../images/admin/common/user.svg"); }
.icon-logout::before { mask-image: url("../../images/admin/common/logout.svg"); -webkit-mask-image: url("../../images/admin/common/logout.svg"); }
.icon-dashboard::before { mask-image: url("../../images/admin/common/dashboard.svg"); -webkit-mask-image: url("../../images/admin/common/dashboard.svg"); }
.icon-users::before { mask-image: url("../../images/admin/common/users.svg"); -webkit-mask-image: url("../../images/admin/common/users.svg"); }
.icon-consumption::before { mask-image: url("../../images/admin/common/consumption.svg"); -webkit-mask-image: url("../../images/admin/common/consumption.svg"); }
.icon-model::before { mask-image: url("../../images/admin/common/model.svg"); -webkit-mask-image: url("../../images/admin/common/model.svg"); }
.icon-gallery::before { mask-image: url("../../images/admin/common/gallery.svg"); -webkit-mask-image: url("../../images/admin/common/gallery.svg"); }
.icon-authorization::before { mask-image: url("../../images/admin/common/authorization.svg"); -webkit-mask-image: url("../../images/admin/common/authorization.svg"); }
.icon-media::before { mask-image: url("../../images/admin/common/media.svg"); -webkit-mask-image: url("../../images/admin/common/media.svg"); }
.icon-task::before { mask-image: url("../../images/admin/common/task.svg"); -webkit-mask-image: url("../../images/admin/common/task.svg"); }
.icon-report::before { mask-image: url("../../images/admin/common/report.svg"); -webkit-mask-image: url("../../images/admin/common/report.svg"); }
.icon-settings::before { mask-image: url("../../images/admin/common/settings.svg"); -webkit-mask-image: url("../../images/admin/common/settings.svg"); }
.icon-logs::before { mask-image: url("../../images/admin/common/logs.svg"); -webkit-mask-image: url("../../images/admin/common/logs.svg"); }
.icon-activity::before { mask-image: url("../../images/admin/common/activity.svg"); -webkit-mask-image: url("../../images/admin/common/activity.svg"); }
.icon-wallet::before { mask-image: url("../../images/admin/common/wallet.svg"); -webkit-mask-image: url("../../images/admin/common/wallet.svg"); }
.icon-api::before { mask-image: url("../../images/admin/common/api.svg"); -webkit-mask-image: url("../../images/admin/common/api.svg"); }
.icon-trend-up::before { mask-image: url("../../images/admin/common/trend-up.svg"); -webkit-mask-image: url("../../images/admin/common/trend-up.svg"); }
.icon-trend-down::before { mask-image: url("../../images/admin/common/trend-down.svg"); -webkit-mask-image: url("../../images/admin/common/trend-down.svg"); }
.icon-search::before { mask-image: url("../../images/admin/common/search.svg"); -webkit-mask-image: url("../../images/admin/common/search.svg"); }
.icon-filter::before { mask-image: url("../../images/admin/common/filter.svg"); -webkit-mask-image: url("../../images/admin/common/filter.svg"); }
.icon-plus::before { mask-image: url("../../images/admin/common/plus.svg"); -webkit-mask-image: url("../../images/admin/common/plus.svg"); }
.icon-eye::before { mask-image: url("../../images/admin/common/eye.svg"); -webkit-mask-image: url("../../images/admin/common/eye.svg"); }
.icon-edit::before { mask-image: url("../../images/admin/common/edit.svg"); -webkit-mask-image: url("../../images/admin/common/edit.svg"); }
.icon-ban::before { mask-image: url("../../images/admin/common/ban.svg"); -webkit-mask-image: url("../../images/admin/common/ban.svg"); }
.icon-rotate-ccw::before { mask-image: url("../../images/admin/common/rotate-ccw.svg"); -webkit-mask-image: url("../../images/admin/common/rotate-ccw.svg"); }
.icon-chevron-down::before { mask-image: url("../../images/admin/common/chevron-down.svg"); -webkit-mask-image: url("../../images/admin/common/chevron-down.svg"); }
.icon-close::before { mask-image: url("../../images/admin/common/close.svg"); -webkit-mask-image: url("../../images/admin/common/close.svg"); }
.icon-more-horizontal::before { mask-image: url("../../images/admin/common/more-horizontal.svg"); -webkit-mask-image: url("../../images/admin/common/more-horizontal.svg"); }
.icon-calendar::before { mask-image: url("../../images/admin/common/calendar.svg"); -webkit-mask-image: url("../../images/admin/common/calendar.svg"); }
.icon-clock::before { mask-image: url("../../images/admin/common/clock.svg"); -webkit-mask-image: url("../../images/admin/common/clock.svg"); }
.icon-check::before { mask-image: url("../../images/admin/common/check.svg"); -webkit-mask-image: url("../../images/admin/common/check.svg"); }
.icon-download::before { mask-image: url("../../images/admin/common/download.svg"); -webkit-mask-image: url("../../images/admin/common/download.svg"); }
.icon-credit-card::before { mask-image: url("../../images/admin/common/credit-card.svg"); -webkit-mask-image: url("../../images/admin/common/credit-card.svg"); }
.icon-link::before { mask-image: url("../../images/admin/common/link.svg"); -webkit-mask-image: url("../../images/admin/common/link.svg"); }
.icon-alert-triangle::before { mask-image: url("../../images/admin/common/alert-triangle.svg"); -webkit-mask-image: url("../../images/admin/common/alert-triangle.svg"); }
.icon-trash::before { mask-image: url("../../images/admin/common/trash.svg"); -webkit-mask-image: url("../../images/admin/common/trash.svg"); }
.icon-shield-alert::before { mask-image: url("../../images/admin/common/shield-alert.svg"); -webkit-mask-image: url("../../images/admin/common/shield-alert.svg"); }
.icon-check-circle::before { mask-image: url("../../images/admin/common/check-circle.svg"); -webkit-mask-image: url("../../images/admin/common/check-circle.svg"); }
.icon-x-circle::before { mask-image: url("../../images/admin/common/x-circle.svg"); -webkit-mask-image: url("../../images/admin/common/x-circle.svg"); }

@media (max-width: 640px) {
  .project-entry__panel {
    padding: 1.5rem;
  }

  .project-entry__actions {
    flex-direction: column;
  }

  .primary-button,
  .secondary-link {
    width: 100%;
  }
}
