.hani-tool, .hani-contact, .hani-local-tool { --hani-ink: #181715; --hani-paper: #f6f5f1; --hani-white: #fff; --hani-red: #c62d25; --hani-line: #d8d6cf; --hani-muted: #686761; color: var(--hani-ink); }
.hani-tool { padding: clamp(1.25rem, 4vw, 3rem); border: 1px solid var(--hani-line); background: var(--hani-white); }
.hani-local-tool { margin-block: 1.5rem; padding: clamp(1.25rem, 4vw, 2.5rem); border: 1px solid var(--hani-line); background: var(--hani-white); }
.hani-local-tool h2 { margin-top: .35rem; font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1.06; letter-spacing: -.055em; }
.hani-local-tool-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .2rem 1rem; }
.hani-local-tool-fields > p { min-width: 0; margin: .5rem 0 1rem; }
.hani-local-tool-fields textarea, .hani-local-tool-fields input:not([type=checkbox]) { box-sizing: border-box; width: 100%; min-width: 0; padding: .75rem .85rem; border: 1px solid #aaa89f; border-radius: 4px; color: var(--hani-ink); background: var(--hani-white); font: inherit; }
.hani-local-tool-fields textarea { resize: vertical; }
.hani-local-tool-fields [data-hani-field="text"], .hani-local-tool-fields [data-hani-field="html"], .hani-local-tool-fields [data-hani-field="json"] { min-height: 11rem; }
.hani-local-result { margin-top: .75rem; overflow-wrap: anywhere; }
.hani-local-result:empty { display: none; }
.hani-local-note { color: var(--hani-muted); font-size: .9rem; }
.hani-local-result .is-error { color: #a5201b; }
.hani-generated-url { box-sizing: border-box; width: 100%; min-height: 5rem; padding: .75rem; border: 1px solid var(--hani-line); background: var(--hani-paper); font: inherit; }
.hani-heading-list { padding-left: 1.5rem; }
.hani-heading-list .is-skipped-level { color: #a5201b; }
.hani-checklist-row { display: flex; align-items: flex-start; gap: .65rem; margin: .75rem 0; }
.hani-checklist-row input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin-top: .22rem; accent-color: var(--hani-red); }
.hani-checklist-row label { font-weight: 400; }
.hani-serp-preview { max-width: 40rem; padding: 1rem; border: 1px solid var(--hani-line); border-radius: 4px; background: var(--hani-white); }
.hani-serp-url { margin: 0 0 .3rem; color: #267043; font-size: .85rem; overflow-wrap: anywhere; }
.hani-serp-title { margin: 0; color: #174ea6; font-size: 1.25rem; font-weight: 500; letter-spacing: 0; }
.hani-serp-description { margin: .35rem 0 0; color: #45464a; font-size: .92rem; }
.hani-tool-intro { max-width: 66ch; margin-bottom: 2rem; }
.hani-tool-eyebrow { color: var(--hani-red); font-size: .76rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.hani-tool h2, .hani-contact h2 { margin-top: .35rem; font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.03; letter-spacing: -.06em; }
.hani-tool-form label, .hani-contact-form label { display: block; margin-bottom: .4rem; font-weight: 650; }
.hani-tool-form-row { display: flex; gap: .65rem; }
.hani-tool input, .hani-contact-form input:not([type=checkbox]), .hani-contact-form textarea { box-sizing: border-box; width: 100%; min-width: 0; padding: .8rem .9rem; border: 1px solid #aaa89f; border-radius: 4px; color: var(--hani-ink); background: var(--hani-white); font: inherit; }
.hani-tool-form-row input { flex: 1; }
.hani-tool button, .hani-contact-form button { min-height: 48px; padding: .8rem 1.15rem; border: 0; border-radius: 4px; color: var(--hani-white); background: var(--hani-ink); font: inherit; font-weight: 700; cursor: pointer; }
.hani-tool button:hover, .hani-contact-form button:hover { background: var(--hani-red); }
.hani-tool button:disabled { opacity: .65; cursor: wait; }
.hani-tool-help, .hani-tool-disclaimer, .hani-form-footnote { color: var(--hani-muted); font-size: .9rem; }
.hani-tool-status { min-height: 1.4em; color: var(--hani-ink); }
.hani-tool-status.is-error, .hani-form-message.is-error { color: #a5201b; }
.hani-tool-result { margin-top: 2rem; }
.hani-result-heading { display: flex; align-items: center; gap: 1.25rem; padding: 1.25rem; border: 1px solid var(--hani-line); background: var(--hani-paper); }
.hani-result-score { display: grid; place-items: center; flex: 0 0 auto; width: 96px; height: 96px; border: 4px solid var(--hani-red); border-radius: 50%; font-size: 1.65rem; font-weight: 800; letter-spacing: -.05em; }
.hani-result-summary h3 { margin: 0 0 .25rem; font-size: 1.35rem; }
.hani-result-summary p { margin: .25rem 0; }
.hani-result-coverage { color: var(--hani-muted); font-size: .9rem; }
.hani-result-url { overflow-wrap: anywhere; color: var(--hani-muted); font-size: .85rem; }
.hani-result-note { color: var(--hani-muted); font-size: .9rem; }
.hani-check-category { margin-top: 1.5rem; }
.hani-check-category h4, .hani-not-evaluated h4 { margin-bottom: .65rem; font-size: 1.1rem; }
.hani-check-item { padding: 1rem; border: 1px solid var(--hani-line); border-bottom: 0; background: var(--hani-white); }
.hani-check-item:last-child { border-bottom: 1px solid var(--hani-line); }
.hani-check-head { display: flex; justify-content: space-between; gap: 1rem; }
.hani-check-priority { color: var(--hani-muted); font-size: .82rem; white-space: nowrap; }
.hani-check-item.is-issue .hani-check-priority { color: #a5201b; }
.hani-check-detail, .hani-check-recommendation { margin: .4rem 0 0; }
.hani-check-recommendation { color: var(--hani-muted); }
.hani-check-why { margin: .5rem 0 0; font-size: .92rem; }
.hani-diagnostic { padding: .55rem 0; border-top: 1px solid var(--hani-line); font-size: .9rem; }
.hani-not-evaluated { margin-top: 1.5rem; padding: 1rem 1.2rem; background: var(--hani-paper); }
.hani-not-evaluated ul { margin-bottom: 0; }
.hani-result-next { margin-top: 1.5rem; font-weight: 700; }
.hani-contact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .2rem 1rem; }
.hani-contact-fields p { margin: .5rem 0 1rem; }
.hani-contact-fields .hani-contact-wide { grid-column: 1 / -1; }
.hani-contact-form textarea { display: block; resize: vertical; }
.hani-trap { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.hani-consent label { display: flex; align-items: flex-start; gap: .55rem; font-weight: 400; }
.hani-consent input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin-top: .2rem; accent-color: var(--hani-red); }
.hani-form-message { padding: .8rem 1rem; border-left: 4px solid var(--hani-red); background: var(--hani-paper); }
.hani-form-message.is-success { border-left-color: #267043; }
@media (max-width: 600px) {
  .hani-tool-form-row { flex-direction: column; }
  .hani-tool-form-row button, .hani-contact-form > button { width: 100%; }
  .hani-contact-fields { grid-template-columns: 1fr; }
  .hani-contact-fields .hani-contact-wide { grid-column: auto; }
  .hani-local-tool-fields { grid-template-columns: 1fr; }
  .hani-result-heading { align-items: flex-start; }
  .hani-result-score { width: 76px; height: 76px; font-size: 1.3rem; }
  .hani-check-head { align-items: flex-start; }
}
