:root {
  font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  color: #252525;
  background: #f7f6f2;
  font-synthesis: none;
}
* { box-sizing: border-box; }
body { margin: 0; }
button, input, textarea, select { font: inherit; }
.page { min-height: 100vh; padding: 28px 16px 64px; }
.shell { width: min(1240px, 100%); margin: 0 auto; }
.hero { margin-bottom: 20px; }
.hero h1 { margin: 6px 0 8px; font-size: clamp(26px, 4vw, 38px); }
.hero p { margin: 0; color: #6f6a64; }
.eyebrow { font-size: 13px; letter-spacing: .08em; color: #7d7468; }
.card { margin-top: 18px; background: #fff; border: 1px solid #e9e5de; border-radius: 14px; padding: 20px; box-shadow: 0 4px 20px rgba(0,0,0,.035); }
.card-title { font-size: 17px; font-weight: 700; margin-bottom: 14px; }
.api-card { padding-top: 16px; padding-bottom: 16px; }
label { display: block; font-size: 13px; font-weight: 600; margin: 14px 0 7px; color: #55504b; }
input, textarea, select { width: 100%; border: 1px solid #d9d4cd; border-radius: 10px; padding: 11px 12px; background: #fff; outline: none; }
input:focus, textarea:focus, select:focus { border-color: #7c746c; box-shadow: 0 0 0 3px rgba(124,116,108,.09); }
textarea { resize: vertical; }
button { border: 0; border-radius: 10px; padding: 10px 16px; cursor: pointer; transition: .18s ease; }
button:hover { transform: translateY(-1px); }
button:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.primary { background: #292725; color: #fff; margin-top: 14px; }
.secondary { background: #6f675f; color: #fff; }
.ghost { background: #efede9; color: #4c4844; }
.inline-row { display: flex; gap: 10px; align-items: center; }
.inline-row input { flex: 1; }
.inline-row select { width: min(340px, 100%); }
.muted { color: #77716a; font-size: 13px; }
.status { margin-top: 8px; }
.steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 18px; }
.step { background: #ece9e4; border-radius: 999px; padding: 8px 10px; text-align: center; color: #77716a; font-size: 13px; white-space: nowrap; }
.step span { display: inline-flex; width: 20px; height: 20px; border-radius: 50%; align-items: center; justify-content: center; background: #d8d3cc; margin-right: 4px; }
.step.active { background: #ded9d1; color: #2c2926; font-weight: 700; }
.step.done { background: #e4eee8; color: #315f43; }
.notice { border-radius: 10px; padding: 10px 12px; font-size: 13px; }
.notice.info { background: #eef3f7; color: #38556b; }
.notice.success { background: #edf6ef; color: #2f6741; }
.gate-row { margin-top: 14px; }
.table-wrap { overflow-x: auto; margin-top: 12px; }
table { width: 100%; border-collapse: collapse; min-width: 900px; }
th, td { text-align: left; padding: 11px 10px; border-bottom: 1px solid #eeeae4; vertical-align: top; }
th { font-size: 12px; color: #6f6a64; background: #faf9f7; }
td { font-size: 13px; }
.tag { display: inline-block; padding: 3px 8px; border-radius: 999px; background: #efede9; white-space: nowrap; }
.grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .85fr); gap: 16px; }
.grid .card { margin-top: 18px; }
.draft-body { white-space: pre-wrap; line-height: 1.8; color: #403d39; }
.meta { margin: 0 0 12px; }
.meta div { display: grid; grid-template-columns: 80px 1fr; gap: 8px; padding: 7px 0; border-bottom: 1px solid #f0ede9; }
dt { color: #7b756f; } dd { margin: 0; }
.hidden { display: none !important; }
.toast { position: fixed; right: 22px; bottom: 22px; max-width: min(420px, calc(100vw - 32px)); background: #2d2a27; color: #fff; padding: 12px 15px; border-radius: 10px; box-shadow: 0 10px 35px rgba(0,0,0,.16); z-index: 20; }
.toast.error { background: #7d2d2d; }
@media (max-width: 820px) {
  .page { padding: 18px 10px 40px; }
  .steps { overflow-x: auto; display: flex; padding-bottom: 4px; }
  .step { min-width: 128px; }
  .inline-row { align-items: stretch; flex-direction: column; }
  .inline-row select { width: 100%; }
  .grid { grid-template-columns: 1fr; gap: 0; }
  .card { padding: 16px; }
}
