:root {
  --fg: #1a1a24; --bg: #ffffff; --muted: #5a5a6e;
  --accent: #2a5db0; --danger: #b02a2a; --line: #d8d8e0;
  --ok: #1f7a4d; --warnbg: #fff4e0; --warnfg: #7a4a00;
}
* { box-sizing: border-box; }
body {
  margin: 0; color: var(--fg); background: var(--bg);
  font-family: -apple-system, "Hiragino Sans", "Noto Sans JP", sans-serif;
  line-height: 1.7; font-size: 16px;
}
main { max-width: 720px; margin: 0 auto; padding: 1rem; }
header.site {
  display: flex; justify-content: space-between; align-items: center;
  padding: .6rem 1rem; border-bottom: 1px solid var(--line);
}
header.site .brand { font-weight: 700; text-decoration: none; color: var(--fg); }
header.site nav { display: flex; gap: .8rem; align-items: center; }
footer.site {
  margin-top: 2rem; padding: 1rem; border-top: 1px solid var(--line);
  color: var(--muted); font-size: .85rem; text-align: center;
}
a { color: var(--accent); }
a:focus, button:focus, input:focus, textarea:focus, select:focus {
  outline: 3px solid var(--accent); outline-offset: 2px;
}
.btn {
  display: inline-block; background: var(--accent); color: #fff;
  border: none; border-radius: 6px; padding: .55rem 1rem;
  font-size: 1rem; cursor: pointer; text-decoration: none;
}
.btn.danger { background: var(--danger); }
.btn.ghost { background: transparent; color: var(--accent); border: 1px solid var(--accent); }
.btn[disabled] { opacity: .5; cursor: not-allowed; }
.linklike {
  background: none; border: none; padding: 0; color: var(--accent);
  text-decoration: underline; cursor: pointer; font-size: 1rem;
}
.linklike.danger { color: var(--danger); }
form.stack { display: flex; flex-direction: column; gap: .5rem; max-width: 420px; }
form.row { display: flex; gap: .5rem; flex-wrap: wrap; margin: 1rem 0; }
form.inline { display: inline; }
input[type=text], input[type=email], textarea, select {
  padding: .5rem; border: 1px solid var(--line); border-radius: 6px;
  font-size: 1rem; width: 100%; max-width: 420px;
}
form.row input[type=text], form.row input[type=email] { flex: 1; min-width: 200px; }
ul.aliases { list-style: none; padding: 0; }
li.alias {
  border: 1px solid var(--line); border-radius: 8px;
  padding: .8rem; margin-bottom: .8rem;
}
li.alias.suspended { background: #f6f6fa; }
li.alias .addr { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
li.alias code { font-size: 1.05rem; word-break: break-all; }
li.alias .meta { display: flex; gap: .6rem; font-size: .85rem; color: var(--muted); flex-wrap: wrap; }
li.alias .actions { display: flex; gap: .8rem; margin-top: .3rem; font-size: .9rem; flex-wrap: wrap; }
li.alias .actions .danger { color: var(--danger); }
li.empty { color: var(--muted); }
.copy {
  border: 1px solid var(--line); background: #f4f4f8; border-radius: 6px;
  padding: .15rem .5rem; cursor: pointer; font-size: .85rem;
}
.pending { color: var(--warnfg); }
.applied { color: var(--ok); }
.count { font-size: 1rem; color: var(--muted); font-weight: 400; }
.warn {
  background: var(--warnbg); color: var(--warnfg);
  padding: .6rem .8rem; border-radius: 6px;
}
.note { color: var(--muted); font-size: .9rem; }
.tablewrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; font-size: .92rem; }
th, td { border-bottom: 1px solid var(--line); padding: .45rem .6rem; text-align: left; }
dl.kv { display: grid; grid-template-columns: max-content 1fr; gap: .3rem .8rem; }
dl.kv dt { color: var(--muted); }
dl.kv dd { margin: 0; }
nav.cards { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: 1rem; }
nav.cards a {
  border: 1px solid var(--line); border-radius: 8px; padding: .6rem .9rem;
  text-decoration: none;
}
.sr {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}
.hero h1 { font-size: 1.5rem; }
