:root {
  font-family: "PingFang SC", "Microsoft YaHei UI", "Noto Sans CJK SC", sans-serif;
  font-size: 100%;
  line-height: 1.55;
  color-scheme: light;
  --base: #f5f5ee;
  --card: #fffef9;
  --ink: #17352d;
  --muted: #4f6056;
  --edge: #d7ded4;
  --solid: #18342e;
  --accent: #17624c;
  --tint: #e4f1e8;
  --focus: #14765c;
  --alert: #7c221b;
  --alert-bg: #fceae5;
  color: var(--ink);
  background: var(--base);
  scroll-padding-block: 1.5rem 5rem;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; }
button, input, textarea, select { font: inherit; font-size: max(1rem, 1em); }
button, input[type="checkbox"], select, summary { cursor: pointer; }
button:disabled { cursor: wait; opacity: .7; }
a { color: var(--accent); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
p, h1, h2, h3, h4, dl, ul, figure { margin: 0; }
h1, h2, h3, h4 { font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
h2 { font-size: 1.42rem; }
h3 { font-size: 1.13rem; }
h4 { font-size: 1rem; }
.wrapper { width: min(calc(100% - 2rem), 54rem); margin-inline: auto; }
.skip-link { position: fixed; inset: .45rem auto auto 1rem; z-index: 10; color: #fff; background: var(--solid); padding: .75rem 1rem; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.masthead { color: white; background: var(--solid); }
.masthead-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; padding-block: .8rem; }
.brand { display: flex; align-items: center; gap: .65rem; }
.brand h1 { font-size: 1.22rem; }
.mark { display: grid; place-items: center; inline-size: 2rem; block-size: 2rem; border-radius: .55rem; font-size: 1.25rem; font-weight: 800; color: var(--solid); background: #bfe4c9; }
.button { display: inline-flex; align-items: center; justify-content: center; min-block-size: 3rem; padding: .6rem .95rem; border: 1px solid #86958a; border-radius: .65rem; color: var(--ink); background: var(--card); font-weight: 650; text-align: center; }
.button:hover { background: var(--tint); }
.button.primary { border-color: var(--accent); color: #fff; background: var(--accent); }
.button.primary:hover { background: #104b3a; }
.button.masthead-button { min-block-size: 3rem; border-color: #a2b7ab; color: white; background: transparent; }
.button.masthead-button:hover { background: #2d4b41; }
.button.masthead-button:focus-visible { outline-color: #bfe4c9; }
main { min-block-size: 70vh; padding-block-end: calc(4rem + env(safe-area-inset-bottom)); }
.startup, .login { margin: 2rem auto; }
.login { max-inline-size: 25rem; padding: clamp(1rem, 5vw, 2rem); border: 1px solid var(--edge); border-radius: 1.1rem; background: var(--card); }
.login form { margin-block-start: 1.2rem; }
.login .button { inline-size: 100%; margin-block-start: 1rem; }
.domain-switch { display: flex; gap: .4rem; width: max-content; max-width: 100%; margin-block: 1.3rem .85rem; padding: .25rem; border: 1px solid var(--edge); border-radius: .85rem; background: #ebeee6; }
.domain-option { min-block-size: 3rem; min-inline-size: 4.6rem; padding: .45rem 1.12rem; border: 2px solid transparent; border-radius: .62rem; background: transparent; color: var(--muted); font-weight: 700; }
.domain-option[aria-pressed="true"] { border-color: var(--accent); background: var(--tint); color: var(--ink); }
.tabs { display: flex; gap: .25rem; overflow-x: auto; overscroll-behavior-inline: contain; padding-inline: .1rem; scrollbar-width: thin; border-block-end: 1px solid var(--edge); }
.tabs button { position: relative; flex: none; min-block-size: 3rem; padding: .6rem .7rem .8rem; border: 0; background: transparent; color: var(--muted); font-weight: 700; white-space: nowrap; }
.tabs button[aria-selected="true"] { color: var(--accent); }
.tabs button[aria-selected="true"]::after { content: ""; position: absolute; inset: auto .7rem .12rem; border-block-end: 3px solid currentColor; }
.tabs button:focus-visible { outline-offset: -3px; }
.panel { padding-block-start: 1.35rem; }
.section-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: .65rem; margin-block-end: 1.15rem; }
.hint { color: var(--muted); font-size: .92rem; margin-block-start: .3rem; overflow-wrap: anywhere; }
.item-list { display: grid; gap: .7rem; padding: 0; list-style: none; }
.card { min-inline-size: 0; padding: 1rem; border: 1px solid var(--edge); border-radius: .9rem; background: var(--card); }
.card > * + * { margin-block-start: .7rem; }
.card p, dd { overflow-wrap: anywhere; white-space: pre-wrap; }
.card-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: .7rem; }
.card-row > div:first-child { flex: 1 1 14rem; min-inline-size: 0; }
.pill { display: inline-block; padding: .17rem .55rem; border-radius: .35rem; color: #294e3e; background: var(--tint); font-size: .85rem; font-weight: 650; }
.pill.warning { color: var(--alert); background: var(--alert-bg); }
.actions button[aria-pressed="true"] { border-color: var(--accent); color: #fff; background: var(--accent); }
.empty { padding: 1rem; border: 1px dashed #a7b3a9; border-radius: .75rem; color: var(--muted); }
.field { display: grid; gap: .25rem; }
.field + .field { margin-block-start: .9rem; }
.field > label, legend, .search-form > label { font-weight: 650; }
input:not([type="checkbox"]), textarea, select { width: 100%; min-inline-size: 0; min-block-size: 3rem; padding: .55rem .7rem; color: var(--ink); border: 1px solid #829188; background: #fff; border-radius: .55rem; }
textarea { min-block-size: 5rem; resize: vertical; }
input[type="checkbox"] { inline-size: 1.3rem; block-size: 1.3rem; margin: 0; accent-color: var(--accent); }
:user-invalid, [aria-invalid="true"] { border-color: var(--alert) !important; }
fieldset { border: 1px solid var(--edge); border-radius: .68rem; margin: 0; padding: .4rem .75rem .6rem; min-inline-size: 0; }
.check-row { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.check { display: flex; gap: .5rem; align-items: center; min-block-size: 3rem; }
.actions { display: flex; gap: .55rem; flex-wrap: wrap; align-items: center; }
.search-form { display: grid; gap: .25rem; max-inline-size: 39rem; margin-block-end: 1rem; }
.search-line { display: flex; gap: .45rem; }
.search-line input { flex: 1; }
.history-type { margin-block-start: .55rem; max-inline-size: 15rem; }
.person-filter, .pagination { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin-block-start: .75rem; }
dialog { inline-size: min(calc(100% - 1rem), 37rem); max-block-size: calc(100% - 1rem); max-block-size: calc(100dvh - 1rem); border: 1px solid var(--edge); border-radius: 1.05rem; background: var(--card); color: var(--ink); padding: clamp(.85rem, 4vw, 1.35rem); }
dialog::backdrop { background: rgb(12 31 23 / .56); }
.dialog-head { display: flex; justify-content: space-between; gap: .6rem; align-items: flex-start; margin-block-end: 1rem; }
.dialog-head h2 { padding-block: .3rem; }
#editor-body form, .stack { display: grid; gap: .9rem; }
#editor-body form .field { margin: 0; }
.notice { position: fixed; z-index: 3; inset: auto max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left)); max-inline-size: 35rem; margin-inline: auto; border-radius: .65rem; overflow-wrap: anywhere; }
.notice:not(:empty) { padding: .7rem 1rem; border: 1px solid #99b6a2; background: var(--tint); color: var(--ink); }
.notice[data-kind="error"]:not(:empty) { border-color: #bd7e75; background: var(--alert-bg); color: var(--alert); }
.inline-notice { position: static; max-inline-size: none; margin: .65rem 0 0; }
.evidence-list { display: grid; gap: .45rem; padding: 0; list-style: none; }
.evidence-list li { border-inline-start: 3px solid #9abb9f; padding: .25rem .6rem; white-space: pre-wrap; overflow-wrap: anywhere; }
dl.data { display: grid; gap: .6rem; }
.data dt { font-size: .85rem; font-weight: 700; color: var(--muted); }
.data dd { margin: .12rem 0 0; }
.result-section { margin-block: 1rem 1.5rem; }
.result-section h3 { margin-block-end: .6rem; }
.conflict { display: grid; gap: .6rem; padding: .75rem; border: 1px solid #bd7e75; border-radius: .6rem; background: var(--alert-bg); color: var(--alert); }
.record-content { display: grid; gap: .5rem; }
.record-content > summary { display: flex; align-items: center; min-block-size: 3rem; text-decoration: underline; text-underline-offset: .17em; }

@media (min-width: 42rem) {
  .wrapper { width: min(calc(100% - 3rem), 54rem); }
  .tabs button { padding-inline: 1rem; }
  .item-list.people-grid, .item-list.term-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (forced-colors: active) {
  .domain-option[aria-pressed="true"] { border-color: Highlight; }
}
