:root {
  color-scheme: light;
  font-family: system-ui, "PingFang SC", "Microsoft YaHei", sans-serif;
  color: #172d31;
  background: #f3f7f6;
  --accent: #1a6154;
  --line: #d9e5e1;
  --muted: #526563;
}
* { box-sizing: border-box; }
body { margin: 0; line-height: 1.55; }
a { color: var(--accent); text-underline-offset: 3px; }
h1 { margin: 0 0 .4rem; font-size: clamp(1.65rem, 3vw, 2.25rem); letter-spacing: -.025em; }
h2 { margin: 0; font-size: 1.15rem; }
p { margin: 0 0 1rem; }
.bar { display: flex; justify-content: space-between; align-items: center; padding: .8rem max(1rem, calc((100vw - 1240px) / 2)); background: white; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: .7rem; color: inherit; font-weight: 700; text-decoration: none; }
.mark { display: inline-grid; width: 2.2rem; height: 2.2rem; place-items: center; background: #dcefe8; color: #164d41; border-radius: .45rem; }
.account, .section-header, .pager { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; }
.section-header { justify-content: space-between; }
.page { width: min(1240px, calc(100% - 2rem)); margin: 2rem auto 3rem; }
.detail-page { max-width: 840px; }
.detail-page h1 { margin-top: .65rem; }
.panel { background: #fff; border: 1px solid var(--line); border-radius: .75rem; }
.section { padding: clamp(.85rem, 2.3vw, 1.5rem); margin-top: 1rem; }
.auth-page { min-height: 100vh; display: grid; place-items: center; padding: 1rem; }
.auth-card { max-width: 430px; width: 100%; padding: clamp(1.2rem, 5vw, 2rem); }
.auth-card h1 { margin-top: 1.2rem; font-size: 1.55rem; }
.auth-card p:last-child { margin-bottom: 0; }
.muted, .empty { color: var(--muted); }
.empty { margin: 1rem 0 .15rem; }
.stack { display: grid; gap: .55rem; max-width: 34rem; }
.stack button { justify-self: start; margin: .55rem 0; }
label { font-size: .91rem; font-weight: 600; }
input, select, textarea, button, .button { font: inherit; border-radius: .4rem; padding: .5rem .7rem; }
input, select, textarea { background: white; border: 1px solid #a8bdb8; color: inherit; min-width: 0; }
textarea { resize: vertical; }
button, .button { background: var(--accent); border: 1px solid var(--accent); color: white; cursor: pointer; font-weight: 650; text-decoration: none; }
.quiet, .secondary { color: var(--accent); background: #fff; border-color: var(--line); }
:focus-visible { outline: 2px solid #167b66; outline-offset: 3px; }
.filters { display: flex; flex-wrap: wrap; gap: .8rem; align-items: end; margin: .85rem 0; }
.filters label { display: grid; gap: .3rem; }
.table-wrap { overflow-x: auto; margin-top: .8rem; }
table { width: 100%; border-collapse: collapse; font-size: .93rem; }
th, td { padding: .65rem .6rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
thead th { background: #eef5f2; white-space: nowrap; }
td:first-child, td:last-child { white-space: nowrap; }
td { overflow-wrap: anywhere; }
.number { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.badge { display: inline-block; color: #714612; background: #fff2db; padding: .08rem .38rem; border-radius: .3rem; font-size: .8rem; }
.notice { color: #824320; background: #fff2e4; padding: .55rem .65rem; border-radius: .4rem; }
.pager { margin-top: .85rem; }
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .85rem; margin: 0; }
.facts .wide { grid-column: 1 / -1; }
.facts dt { color: var(--muted); font-size: .85rem; }
.facts dd { margin: .18rem 0 0; overflow-wrap: anywhere; }
.audit { padding-left: 1.3rem; }
.audit li { margin-top: .65rem; }
.audit p { margin: .1rem 0; }
.section > .muted { margin-top: .45rem; }
