:root {
  --page: #F7FAFB; --card: #FFFFFF; --tint: #EAF4F5; --divider: #DCE6E9; --ink: #2B3A42; --ink-soft: #56666F;
  --action: #2A7482; --field-edge: #7B8C94; --pass: #2E7D4F; --attention: #9A5B00; --fail: #B3261E;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--page); color: var(--ink);
  font: 1rem/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
.top, main, .foot { max-width: 44rem; margin: 0 auto; padding: 0 1rem; }
.top { padding-top: 1rem; }
.brand { margin: 0; font-weight: 700; color: var(--action); }
main { padding-bottom: 2rem; }
h1 { font-size: 1.75rem; line-height: 1.2; margin: 1rem 0; }
h2 { font-size: 1.25rem; margin: 2rem 0 0.5rem; }
p { margin: 0.75rem 0; }
code { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 0.95em; }
.hash { overflow-wrap: anywhere; word-break: break-all; }
.status { display: flex; gap: 0.75rem; align-items: flex-start; background: var(--card); border: 2px solid; border-radius: 0.5rem; padding: 0.75rem 1rem; }
.status p { margin: 0; }
.status .icon { font-weight: 700; font-size: 1.25rem; line-height: 1.2; }
.pass { border-color: var(--pass); }
.pass .icon { color: var(--pass); }
.fail { border-color: var(--fail); }
.fail .icon { color: var(--fail); }
.attention { border-color: var(--attention); }
.attention .icon { color: var(--attention); }
.facts { margin: 1rem 0; background: var(--card); border: 1px solid var(--divider); border-radius: 0.5rem; padding: 0.25rem 1rem; }
.facts div { padding: 0.5rem 0; border-bottom: 1px solid var(--divider); }
.facts div:last-child { border-bottom: 0; }
.facts dt { font-weight: 600; }
.facts dd { margin: 0; }
.check { margin-top: 1rem; }
.drop { background: var(--card); border: 2px dashed var(--field-edge); border-radius: 0.5rem; padding: 1rem; }
.drop.over { background: var(--tint); border-color: var(--action); }
.drop label { display: block; font-weight: 600; margin-bottom: 0.5rem; }
.drop input { display: block; min-height: 48px; width: 100%; font: inherit; color: var(--ink); }
.drop input:focus-visible { outline: 3px solid var(--action); outline-offset: 2px; }
.small { font-size: 0.875rem; color: var(--ink-soft); }
.result { margin-top: 1rem; display: flex; gap: 0.75rem; align-items: flex-start; background: var(--card); border: 2px solid var(--divider); border-radius: 0.5rem; padding: 0.75rem 1rem; }
.result.pass { border-color: var(--pass); }
.result.fail { border-color: var(--fail); }
.result:empty { border: 0; padding: 0; margin: 0; }
.result p { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.result .icon { font-weight: 700; font-size: 1.25rem; line-height: 1.2; }
.result.pass .icon { color: var(--pass); }
.result.fail .icon { color: var(--fail); }
.test-system { margin: 0.5rem 0 0; background: var(--card); border: 2px solid var(--attention); border-radius: 0.5rem; padding: 0.5rem 0.75rem; }
.foot { border-top: 1px solid var(--divider); padding-top: 1rem; padding-bottom: 2rem; font-size: 0.875rem; color: var(--ink-soft); }
