/* 青橙网后台 Element UI 主题扩展（主色 #00c250） */
:root {
  --qc-primary: #00c250;
  --qc-primary-light: #33ce73;
  --qc-primary-dark: #00a040;
}

.el-button--primary {
  background-color: var(--qc-primary);
  border-color: var(--qc-primary);
}
.el-button--primary:focus,
.el-button--primary:hover {
  background-color: var(--qc-primary-light);
  border-color: var(--qc-primary-light);
}
.el-button--primary.is-active,
.el-button--primary:active {
  background-color: var(--qc-primary-dark);
  border-color: var(--qc-primary-dark);
}
.el-button--text { color: var(--qc-primary); padding-left: 0; padding-right: 0; }
.el-button--text.danger { color: #f56c6c; }

.el-menu-item.is-active { color: var(--qc-primary); }
.el-menu-item.is-active i { color: var(--qc-primary); }

.admin-layout { min-height: 100vh; background: #f5f7fa; }
.admin-aside {
  width: 220px;
  background: #fff;
  border-right: 1px solid #e6e6e6;
  flex-shrink: 0;
}
.admin-aside__logo {
  padding: 20px 16px;
  font-weight: 700;
  color: var(--qc-primary);
  border-bottom: 1px solid #ebeef5;
  font-size: 15px;
}
.admin-aside .el-menu { border-right: none; }
.admin-aside .el-menu-item { height: auto; line-height: 1; padding: 0; }
.admin-aside .el-menu-item .el-menu-link {
  display: block;
  padding: 14px 20px;
  line-height: 1.4;
  color: #303133;
  text-decoration: none;
}
.admin-aside .el-menu-item.is-active .el-menu-link { color: var(--qc-primary); }
.admin-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.admin-header {
  background: #fff;
  border-bottom: 1px solid #ebeef5;
  padding: 0 20px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.admin-header__title { font-size: 16px; font-weight: 600; color: #303133; }
.admin-body { padding: 20px; flex: 1; }

.admin-flex { display: flex; }
.admin-toolbar { margin-bottom: 16px; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.admin-form { max-width: 640px; }
.admin-form--wide { max-width: 800px; }
.admin-form-actions { margin-top: 24px; padding-top: 8px; }

.admin-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.admin-table th {
  background: #fafafa;
  color: #909399;
  font-weight: 500;
  padding: 12px 10px;
  border-bottom: 1px solid #ebeef5;
  text-align: left;
}
.admin-table td {
  padding: 12px 10px;
  border-bottom: 1px solid #ebeef5;
  color: #606266;
}
.admin-table tr:hover td { background: #fafcff; }
.admin-table .cell-actions { white-space: nowrap; }
.admin-table .cell-actions form { display: inline; }

.admin-stat-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 16px; margin-bottom: 20px; }
.admin-stat-card {
  background: linear-gradient(135deg, #e8faf0, #fff);
  border: 1px solid #c8f0d8;
  border-radius: 4px;
  padding: 20px;
}
.admin-stat-card__num { font-size: 28px; font-weight: 700; color: var(--qc-primary); }
.admin-stat-card__label { font-size: 13px; color: #909399; margin-top: 8px; }

.el-form--label-top .el-form-item__label {
  display: block;
  float: none;
  text-align: left;
  padding: 0 0 8px;
  line-height: 1.4;
}
.el-form-item { margin-bottom: 22px; }
.el-form-item__label { line-height: 40px; color: #606266; font-size: 14px; }
.el-form-item.is-required .el-form-item__label:before {
  content: '*';
  color: #f56c6c;
  margin-right: 4px;
}
.el-form--inline .el-form-item { display: inline-block; vertical-align: top; margin-right: 12px; margin-bottom: 12px; }
.el-form--inline .el-form-item__label { float: left; padding-right: 12px; }
.el-form--inline .el-form-item__content { display: inline-block; vertical-align: top; }
.admin-form--inline .el-form-item__content { min-width: 160px; }

.admin-el-input,
.admin-el-textarea,
.admin-el-select,
.admin-el-date-picker { width: 100%; max-width: 100%; }
.admin-el-date-picker__inner .el-date-editor.el-input,
.admin-el-date-picker__inner .el-date-editor.el-input__inner {
  width: 100%;
}
.el-picker-panel__icon-btn:hover,
.el-date-picker__header-label:hover,
.el-picker-panel__link-btn {
  color: var(--qc-primary);
}
.el-date-table td.today span,
.el-date-table td.available:hover,
.el-month-table td.today .cell,
.el-month-table td .cell:hover,
.el-year-table td.today .cell,
.el-year-table td .cell:hover {
  color: var(--qc-primary);
}
.el-date-table td.current:not(.disabled) span,
.el-date-table td.end-date span,
.el-date-table td.start-date span {
  background-color: var(--qc-primary);
}
.el-time-panel__btn.confirm {
  color: var(--qc-primary);
}
.admin-el-input .el-input__inner,
.admin-el-textarea .el-textarea__inner {
  width: 100%;
  box-sizing: border-box;
}
.admin-el-textarea .el-textarea__inner {
  min-height: 80px;
  padding: 8px 12px;
  line-height: 1.5;
  resize: vertical;
}

.admin-el-select { position: relative; }
.admin-el-select .el-input { position: relative; }
.admin-el-select select.el-input__inner {
  appearance: none;
  -webkit-appearance: none;
  height: 40px;
  line-height: 40px;
  padding-right: 36px;
  cursor: pointer;
  background-color: #fff;
}
.admin-el-select .el-input__suffix {
  position: absolute;
  height: 100%;
  right: 8px;
  top: 0;
  pointer-events: none;
  display: flex;
  align-items: center;
  color: #c0c4cc;
}
.admin-el-select .el-select__caret {
  transform: rotate(180deg);
  font-size: 14px;
}

.admin-el-checkbox { cursor: pointer; user-select: none; }
.admin-el-checkbox .el-checkbox__original { opacity: 0; position: absolute; margin: 0; width: 0; height: 0; }
.admin-el-checkbox .el-checkbox__input.is-checked .el-checkbox__inner {
  background-color: var(--qc-primary);
  border-color: var(--qc-primary);
}
.admin-el-checkbox .el-checkbox__input.is-checked + .el-checkbox__label,
.admin-el-checkbox .el-checkbox__input.is-checked ~ .el-checkbox__label { color: var(--qc-primary); }

.el-upload-image { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; position: relative; }
.el-upload-image--single { flex-direction: column; gap: 12px; }
.el-upload-image__file-input {
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  opacity: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}
.el-upload-image--single .el-upload-preview {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
}
.el-upload-preview__side {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding-top: 4px;
}
.el-upload-preview__remove {
  font-size: 14px;
  color: #606266;
  cursor: pointer;
  user-select: none;
  line-height: 1.5;
}
.el-upload-preview__remove input { margin-right: 6px; vertical-align: middle; }
.el-upload-slot { display: flex; flex-direction: column; align-items: flex-start; }
.home-banner-pending { font-size: 14px; color: var(--qc-primary); margin: 8px 0 0; }
.home-banner-row-fields { max-width: 360px; }
.home-banner-row-form .el-form-item { margin-bottom: 8px; }
.el-upload--picture-card {
  width: 148px;
  height: 148px;
  line-height: 146px;
  border: 1px dashed #d9d9d9;
  border-radius: 6px;
  cursor: pointer;
  text-align: center;
  color: #8c939d;
  background: #fbfdff;
  position: relative;
  overflow: hidden;
}
.el-upload--picture-card:hover { border-color: var(--qc-primary); color: var(--qc-primary); }
.el-upload--picture-card input[type=file] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  width: 100%;
  height: 100%;
}
.el-upload--picture-card .el-upload__icon { font-size: 28px; }
.el-upload__tip { font-size: 12px; color: #909399; margin-top: 8px; line-height: 1.5; }
.el-upload-list__item-thumbnail {
  width: 148px;
  height: 148px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid #ebeef5;
  display: block;
}
.el-upload-list__item-thumbnail--banner { width: 240px; height: 120px; object-fit: cover; }
.el-checkbox { font-size: 14px; color: #606266; user-select: none; }
.el-checkbox input { margin-right: 6px; vertical-align: middle; }

.el-image__placeholder {
  width: 148px;
  height: 148px;
  background: #f5f7fa;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #c0c4cc;
  font-size: 12px;
  border-radius: 6px;
  border: 1px solid #ebeef5;
}

.pagination { margin-top: 16px; }

.el-section-title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid #ebeef5;
  color: #303133;
}
.el-section-title + .el-descriptions,
.el-section-title + .el-text { margin-top: 0; }
.el-card__body > .el-section-title:not(:first-child) { margin-top: 8px; }

.el-descriptions {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 10px 16px;
  font-size: 14px;
  line-height: 1.6;
  margin: 0 0 8px;
}
.el-descriptions__label { color: #909399; margin: 0; }
.el-descriptions__content { margin: 0; color: #303133; word-break: break-all; }

.el-avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: #e8faf0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: var(--qc-primary);
  font-size: 28px;
  font-weight: 600;
  flex-shrink: 0;
}
.el-avatar img { width: 100%; height: 100%; object-fit: cover; }
.el-avatar__text { line-height: 1; }

.user-head {
  display: flex;
  gap: 20px;
  align-items: center;
  margin-bottom: 20px;
}
.user-head__meta-title { font-size: 18px; font-weight: 600; color: #303133; }
.user-head__meta-sub { color: #909399; margin-top: 4px; font-size: 14px; }

.el-text { margin: 0 0 16px; font-size: 14px; line-height: 1.6; }
.el-text--secondary { color: #909399; }
.el-text--primary { color: #606266; }

.el-tag { margin-right: 6px; margin-bottom: 6px; display: inline-block; }

.el-menu-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.admin-checkbox-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 220px;
  overflow-y: auto;
  padding: 8px 0;
}
.admin-checkbox-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #606266;
  cursor: pointer;
}
.admin-checkbox-item input {
  margin: 0;
  accent-color: var(--qc-primary);
}
