*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #F5F8FB; }
[id] { scroll-margin-top: 16px; }
a { color: #0A6F6A; }
a:hover { color: #005C58; }
.nav-link { color: #3A4A60; text-decoration: none; font-weight: 500; padding: 10px 12px; border-radius: 10px; }
.nav-link:hover { color: #102A4C; background: #F1FBFA; }
.foot-link { color: #3A4A60; text-decoration: none; }
.foot-link:hover { color: #0A6F6A; text-decoration: underline; }
.toc-link { color: #3A4A60; text-decoration: none; padding: 8px 12px; border-radius: 10px; display: block; }
.toc-link:hover { color: #102A4C; background: #F1FBFA; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
[hidden] { display: none !important; }
.chip { cursor: pointer; display: inline-flex; }
.chip > span { cursor: pointer !important; }
.chip > span:last-child, .chip input:checked ~ span:first-of-type { display: none !important; }
.chip input:checked ~ span:last-child { display: inline-flex !important; }
.chip input:focus-visible ~ span { outline: 2px solid var(--color-teal-600); outline-offset: 2px; }
.check { display: flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; font-family: var(--font-sans); font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); line-height: 1.45; color: var(--text-primary); }
.check input { flex: none; width: 18px; height: 18px; margin: 3px; accent-color: var(--color-teal-600); cursor: pointer; }
.dv-box:focus-within, textarea.dv-box:focus, input.dv-box:focus { border-color: var(--color-teal-600) !important; outline: 2px solid var(--color-teal-100); outline-offset: 0; }
form button[type="submit"]:disabled { opacity: 0.6; cursor: wait; }
