:root {
  --bg: #f7f1e8;
  --surface: #fdf6e8;
  --border: #d9c9ad;
  --text: #3a2f24;
  --muted: #6b4423;
  --accent: #8b5a2b;
  --accent-text: #fdf6e8;
  --error: #b94a3a;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

[x-cloak] { display: none !important; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: Georgia, "Songti SC", "SimSun", serif;
  line-height: 1.6;
  min-height: 100vh;
}

/* Buttons */
.btn-primary {
  background: var(--accent);
  color: var(--accent-text);
  border: none;
  padding: 10px 20px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  font-family: inherit;
}
.btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }

.btn-secondary {
  background: transparent;
  color: var(--accent);
  border: 1px solid var(--accent);
  padding: 10px 20px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  font-family: inherit;
}
.btn-link {
  background: none; border: none; color: var(--accent);
  cursor: pointer; font-size: 13px; text-decoration: underline;
  font-family: inherit;
}

/* Inputs */
.input {
  width: 100%;
  padding: 10px 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-size: 14px;
  font-family: inherit;
}
.input:focus { outline: none; border-color: var(--accent); }

/* Card */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
}

/* Error message */
.error-msg {
  color: var(--error);
  font-size: 13px;
  margin-top: 8px;
}

/* Toast */
.toast {
  position: fixed;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--accent);
  color: var(--accent-text);
  padding: 10px 20px;
  border-radius: 8px;
  font-size: 14px;
  z-index: 1000;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}