/* =========================================================
 * 注册 / 登录 / 后台 - 共用表单样式
 * ========================================================= */
.auth-page {
  background: linear-gradient(135deg, #EAF1FB 0%, #F9F9F9 100%);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 80px 20px 40px;
}
.auth-card {
  width: 100%;
  max-width: 460px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(1,77,178,.10), 0 1px 3px rgba(10,22,40,.05);
  padding: 40px 36px;
}
.auth-card h1 {
  font-size: 26px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 8px;
}
.auth-card .sub {
  font-size: 14px;
  color: var(--ink-2);
  margin: 0 0 28px;
}
.auth-card .logo {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 28px;
}
.auth-card .logo img { height: 28px; }
.auth-card .logo .brand {
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
}
.field { margin-bottom: 18px; }
.field label {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  margin-bottom: 8px;
}
.field label .req { color: #E53935; margin-left: 4px; }
.field input,
.field select,
.field textarea {
  width: 100%;
  padding: 12px 14px;
  font-size: 14px;
  font-family: inherit;
  color: var(--ink);
  background: #fff;
  border: 1px solid #D5DEEA;
  border-radius: 8px;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
  box-sizing: border-box;
}
.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(1,77,178,.12);
}
.field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.btn-block {
  width: 100%;
  padding: 14px 24px;
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  background: var(--brand);
  border: none;
  border-radius: 100px;
  cursor: pointer;
  transition: background .15s, transform .1s, box-shadow .15s;
  box-shadow: 0 6px 16px rgba(1,77,178,.20);
  font-family: inherit;
}
.btn-block:hover { background: #013f93; }
.btn-block:active { transform: translateY(1px); }
.btn-block:disabled { background: #8FB4E8; cursor: not-allowed; box-shadow: none; }
.auth-foot {
  margin-top: 22px;
  text-align: center;
  font-size: 13px;
  color: var(--ink-2);
}
.auth-foot a { color: var(--brand); text-decoration: none; font-weight: 500; }
.auth-foot a:hover { text-decoration: underline; }
.flash {
  padding: 12px 16px;
  border-radius: 8px;
  font-size: 14px;
  margin-bottom: 18px;
  border-left: 3px solid;
}
.flash-info  { background: #EAF1FB; color: #0A1628; border-color: var(--brand); }
.flash-warn  { background: #FFF5E0; color: #6E4A00; border-color: #F0A030; }
.flash-error { background: #FDECEA; color: #8A1B14; border-color: #E53935; }
.flash-ok    { background: #E6F4EA; color: #1B5E20; border-color: #43A047; }
.field-error { color: #C62828; font-size: 12px; margin-top: 4px; }

/* 顶部已登录胶囊 */
.nav-user {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 100px;
  background: var(--subtle);
  font-size: 14px;
  color: var(--ink);
  font-weight: 500;
}
.nav-user a { color: var(--brand); text-decoration: none; }
.nav-user a:hover { text-decoration: underline; }

/* 后台 dashboard */
.dash-shell {
  max-width: 1080px;
  margin: 32px auto 80px;
  padding: 0 20px;
}
.dash-hello {
  font-size: 28px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 8px;
}
.dash-sub {
  font-size: 14px;
  color: var(--ink-2);
  margin: 0 0 32px;
}
.dash-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.dash-card {
  background: #fff;
  border: 1px solid #E5EBF3;
  border-radius: 14px;
  padding: 24px 28px;
}
.dash-card h3 {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.dash-card .badge {
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 100px;
  background: #E6F4EA;
  color: #1B5E20;
  font-weight: 600;
}
.dash-card .badge.pending { background: #FFF5E0; color: #6E4A00; }
.dash-row {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-top: 1px dashed #E5EAF0;
  font-size: 14px;
}
.dash-row:first-of-type { border-top: none; }
.dash-row .k { color: var(--ink-2); }
.dash-row .v { color: var(--ink); font-weight: 500; }

/* =========================================================
 * Footer 适配：将页脚推到底部
 * ========================================================= */
html, body { height: 100%; }
body { display: flex; flex-direction: column; }
body > header, body > main { flex-shrink: 0; }
body > footer { margin-top: auto; }
@media (max-width: 720px) {
  .field-row, .dash-grid { grid-template-columns: 1fr; }
}

/* =========================================================
 * 快捷操作（dashboard）
 * ========================================================= */
.quick-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.quick-btn {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  min-height: 108px;
  padding: 16px 16px 14px;
  border-radius: 12px;
  border: 1px solid var(--brand);
  background: var(--brand);
  color: #fff;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: background .15s, transform .1s, box-shadow .15s;
  box-shadow: 0 6px 16px rgba(1, 77, 178, .18);
}
.quick-btn:not(.is-disabled):hover  { background: #013f93; transform: translateY(-1px); }
.quick-btn:not(.is-disabled):active { transform: translateY(0); }

.quick-btn .quick-icon {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: rgba(255, 255, 255, .18);
  color: #fff;
}
.quick-btn .quick-title {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
}
.quick-btn .quick-sub {
  font-size: 12px;
  opacity: .85;
}

/* 审核中：灰化不可点 */
.quick-btn.is-disabled,
.quick-btn:disabled {
  background: #F4F7FB;
  color: #95A7C2;
  border: 1px dashed #C7D3E6;
  box-shadow: none;
  cursor: not-allowed;
}
.quick-btn.is-disabled:hover {
  background: #F4F7FB;
  transform: none;
}
.quick-btn.is-disabled .quick-icon {
  background: #E5EBF3;
  color: #95A7C2;
}
.quick-btn.is-disabled .quick-sub {
  opacity: 1;
  color: #95A7C2;
}

.quick-tip {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--ink-2);
  margin: 16px 0 0;
  line-height: 1.5;
}
.quick-tip svg { color: var(--brand); flex-shrink: 0; }

@media (max-width: 900px) {
  .quick-grid { grid-template-columns: 1fr; }
}