:root {
  --dashu-forest-950: #102d24;
  --dashu-forest-900: #173b2f;
  --dashu-forest-800: #20503e;
  --dashu-forest-700: #2d6a51;
  --dashu-forest-600: #3c8163;
  --dashu-sage-100: #e7f0e4;
  --dashu-sage-50: #f4f7ef;
  --dashu-paper: #fcfaf4;
  --dashu-cream: #f5f0e5;
  --dashu-amber: #e9a847;
  --dashu-ink: #1c3028;
  --dashu-muted: #6f7d75;
  --dashu-line: rgba(28, 67, 51, .14);
  --dashu-shadow: 0 22px 60px rgba(30, 61, 45, .11);
}

body {
  color: var(--dashu-ink) !important;
  background-color: var(--dashu-sage-50) !important;
  font-family: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif !important;
}

.topbar {
  background: linear-gradient(128deg, var(--dashu-forest-900), var(--dashu-forest-700)) !important;
  box-shadow: 0 10px 30px rgba(23, 59, 47, .16);
}

.login-box, .panel, .card {
  border: 1px solid var(--dashu-line) !important;
  box-shadow: var(--dashu-shadow) !important;
}

.login-box { border-radius: 22px !important; }

.btn-primary, button.btn-primary, .lbtn {
  background: var(--dashu-forest-700) !important;
  color: #fff !important;
  border-color: var(--dashu-forest-700) !important;
}

.btn-primary:hover, button.btn-primary:hover, .lbtn:hover { background: var(--dashu-forest-800) !important; }
.btn-sm { border-color: var(--dashu-line) !important; color: var(--dashu-forest-800) !important; }

input:focus, select:focus, textarea:focus, .rich-editor:focus {
  border-color: var(--dashu-forest-600) !important;
  box-shadow: 0 0 0 3px rgba(60, 129, 99, .12);
  outline: none;
}

.tab.on { color: var(--dashu-forest-700) !important; border-bottom-color: var(--dashu-forest-700) !important; }

.dashu-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 22px;
  color: var(--dashu-forest-800);
}

.dashu-brand-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(145deg, var(--dashu-forest-700), var(--dashu-forest-600));
  box-shadow: 0 10px 24px rgba(45, 106, 81, .2);
  font-size: 22px;
}

.dashu-brand-copy { display: grid; text-align: left; }
.dashu-brand-copy b { font-size: 17px; }
.dashu-brand-copy small { color: var(--dashu-muted); font-size: 11px; }

.dashu-login-link {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 12px 18px;
  border: 0;
  border-radius: 12px;
  color: #fff !important;
  background: var(--dashu-forest-700);
  font-size: 15px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
}

.dashu-login-tip {
  margin: 12px 0 0;
  color: var(--dashu-muted);
  font-size: 12px;
  line-height: 1.7;
  text-align: center;
}

@media (max-width: 720px) {
  .login-box { margin: 8vh 14px !important; }
  .topbar { padding-left: 14px !important; padding-right: 14px !important; }
}
