.fhg{--g-ink:#172336;--g-muted:#5e6a79;--g-line:#dce2e9;--g-card:#fff;--g-soft:#f5f7fa;--g-red:#ce173c;--g-note:#edf6f1;--g-warn:#fff5e7;max-width:1200px;margin:auto;padding:20px 14px 64px;color:var(--g-ink);font:16px/1.75 "Segoe UI",Arial,sans-serif}
.dark-theme .fhg{--g-ink:#e7edf5;--g-muted:#abb7c7;--g-line:#334156;--g-card:#162234;--g-soft:#111b2b;--g-red:#ff718b;--g-note:#172e29;--g-warn:#34291c}
.fhg *{box-sizing:border-box}.fhg [hidden]{display:none!important}.fhg a{color:var(--g-red);text-underline-offset:3px}.fhg button,.fhg input{font:inherit}.fhg button,.fhg summary{cursor:pointer}.fhg :focus-visible{outline:3px solid #3585d5;outline-offset:4px}.fhg h1,.fhg h2,.fhg h3{color:var(--g-ink);line-height:1.2;letter-spacing:-.025em}.fhg h1{font-size:clamp(36px,5.8vw,66px);margin:18px 0 22px;max-width:780px}.fhg h2{font-size:clamp(25px,3vw,34px);margin:8px 0 22px}.fhg h3{font-size:21px;margin:32px 0 12px}.fhg p{margin:0 0 18px}.fhg li{padding-left:3px;margin:8px 0}.fhg ol,.fhg ul{padding-left:25px}.fhg-hero{padding:32px clamp(20px,4vw,50px);background:var(--g-soft);border:1px solid var(--g-line);border-radius:24px;margin-bottom:28px}.fhg-brand{display:flex;gap:13px;align-items:center;text-decoration:none;font-weight:750;color:var(--g-ink)!important;margin-bottom:32px}.fhg-brand img{flex:none;object-fit:contain}.fhg-brand small{display:block;color:var(--g-muted);font-weight:400;font-size:13px}.fhg-kicker,.fhg-number{font-size:12px;font-weight:750;letter-spacing:.09em;color:var(--g-red)}.fhg-lead{max-width:760px;font-size:19px;color:var(--g-muted)}.fhg-actions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 20px}.fhg-primary,.fhg-secondary{display:inline-flex;justify-content:center;align-items:center;border-radius:10px;padding:11px 19px;font-weight:650;text-decoration:none}.fhg a.fhg-primary{background:#cb143a;color:#fff;border:1px solid #cb143a}.fhg-secondary{border:1px solid var(--g-line);color:var(--g-ink)!important;background:var(--g-card)}.fhg-version{font-size:13px;color:var(--g-muted);margin:0!important}.fhg-search{padding:18px 0 24px}.fhg-search label{display:block;font-weight:700;margin-bottom:8px}.fhg-search>div{display:flex;gap:8px}.fhg-search input{width:100%;min-width:0;border:1px solid var(--g-line);background:var(--g-card);color:var(--g-ink);padding:13px 16px;border-radius:10px}.fhg-search button{border:1px solid var(--g-line);background:var(--g-soft);color:var(--g-ink);border-radius:8px;padding:8px}.fhg-search p{font-size:13px;margin:7px 0;color:var(--g-muted)}.fhg-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:42px;align-items:start}.fhg-toc{position:sticky;top:90px;max-height:calc(100vh - 108px);overflow:auto;font-size:13px;line-height:1.45;padding-right:7px}.fhg-toc summary{font-size:16px;font-weight:750;list-style:none;margin-bottom:13px}.fhg-toc ol{padding:0;list-style:none;margin:0}.fhg-toc li{margin:0;padding:0}.fhg-toc a{display:block;color:var(--g-muted);padding:8px 10px;border-left:2px solid transparent;text-decoration:none}.fhg-toc a:hover,.fhg-toc a[aria-current]{color:var(--g-red);background:var(--g-soft);border-color:var(--g-red)}.fhg-toc a.fhg-download{font-size:13px;margin-top:20px;border:1px solid var(--g-line);border-radius:8px;color:var(--g-ink)}.fhg-article{min-width:0}.fhg section{padding:8px 0 38px;margin-bottom:36px;border-bottom:1px solid var(--g-line);scroll-margin-top:92px}.fhg-note,.fhg-example{padding:18px 22px;border-radius:12px;margin:24px 0;background:var(--g-note);border-left:3px solid #3e9d6e}.fhg-warning{background:var(--g-warn);border-color:#df9b34}.fhg-example{background:var(--g-soft);border-color:var(--g-red)}.fhg-steps li{margin-bottom:18px}.fhg-flow{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:650;line-height:1.35;margin:24px 0}.fhg-flow span:not([aria-hidden]){border:1px solid var(--g-line);background:var(--g-soft);padding:14px;border-radius:10px;flex:1;text-align:center}.fhg-definitions{margin:24px 0}.fhg-definitions>div{display:grid;grid-template-columns:160px 1fr;gap:20px;padding:15px 0;border-bottom:1px solid var(--g-line)}.fhg dt{font-weight:700}.fhg dd{margin:0}.fhg-columns{display:grid;grid-template-columns:1fr 1fr;gap:25px}.fhg figure{margin:24px 0;border:1px solid var(--g-line);border-radius:12px;overflow:hidden;background:var(--g-soft)}.fhg figure button{display:block;border:0;padding:0;width:100%;background:none}.fhg figure img{display:block;width:100%;height:auto}.fhg figcaption{padding:13px 16px;font-size:13px;color:var(--g-muted);line-height:1.55}.fhg .fhg-narrow-image{max-width:340px;justify-self:center}.fhg .fhg-narrow-image img{max-height:540px;object-fit:contain}.fhg table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.6;margin:22px 0;table-layout:fixed}.fhg th,.fhg td{border-bottom:1px solid var(--g-line);text-align:left;vertical-align:top;padding:13px 12px;overflow-wrap:anywhere}.fhg th{background:var(--g-soft);font-size:13px}.fhg td:first-child{font-weight:650;width:30%}.fhg table th:first-child{width:29%}.fhg kbd{font:600 15px Consolas,monospace;border:1px solid var(--g-line);border-bottom-width:3px;border-radius:6px;padding:3px 9px;background:var(--g-soft)}.fhg section details{border:1px solid var(--g-line);border-radius:10px;margin:12px 0;padding:16px 18px;background:var(--g-card)}.fhg section summary{font-weight:700;line-height:1.5}.fhg section details[open] summary{margin-bottom:14px}.fhg section details p:last-child{margin-bottom:0}.fhg-switch{display:flex;gap:5px;flex-wrap:wrap;margin:20px 0 12px}.fhg-switch button{border:1px solid var(--g-line);border-radius:8px;padding:8px 12px;color:var(--g-ink);background:var(--g-card);font-size:13px}.fhg-switch button[aria-pressed=true]{color:#fff;background:#245345;border-color:#245345}.fhg-placement svg{display:block;width:100%;height:auto;border-radius:12px}.fhg-placement p{font-size:14px;color:var(--g-muted);padding:12px 0}.fhg-footer{margin-top:30px;border:1px solid var(--g-line);border-radius:16px;background:var(--g-soft);padding:25px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}.fhg-footer p{flex-basis:100%;margin:0}.fhg-empty{padding:40px;text-align:center;background:var(--g-soft);border-radius:12px}.fhg dialog{max-width:96vw;max-height:94vh;width:max-content;padding:16px;border:1px solid var(--g-line);border-radius:12px;background:var(--g-card);color:var(--g-ink)}.fhg dialog::backdrop{background:rgba(0,0,0,.8)}.fhg dialog img{display:block;max-width:88vw;max-height:78vh;width:auto;height:auto;margin:auto;object-fit:contain}.fhg dialog button{display:block;margin:0 0 12px auto;border:1px solid var(--g-line);background:var(--g-soft);color:var(--g-ink);padding:6px 14px;border-radius:8px}.fhg dialog p{font-size:13px;margin:10px 0 0;max-width:1000px}
@media(max-width:900px){.fhg-layout{grid-template-columns:1fr;gap:18px}.fhg-toc{position:static;max-height:none;padding:0;border:1px solid var(--g-line);border-radius:12px;background:var(--g-soft)}.fhg-toc details{padding:14px}.fhg-toc summary{list-style:revert;margin:0}.fhg-toc ol{columns:2;column-gap:14px;margin-top:12px}.fhg-toc li{break-inside:avoid}.fhg-toc .fhg-download{margin:0!important;border:0!important;border-top:1px solid var(--g-line)!important;border-radius:0!important}.fhg-hero{border-radius:16px}.fhg section{scroll-margin-top:85px}}
@media(max-width:540px){.fhg{padding:8px 10px 35px;font-size:15px}.fhg-hero{padding:24px 19px}.fhg-lead{font-size:17px}.fhg h1{font-size:37px}.fhg-actions>*{width:100%}.fhg-columns{grid-template-columns:1fr;gap:0}.fhg-definitions>div{grid-template-columns:1fr;gap:5px}.fhg-toc ol{columns:1}.fhg-flow{font-size:12px;gap:4px}.fhg-flow span:not([aria-hidden]){padding:9px 5px}.fhg td,.fhg th{padding:10px 7px;font-size:13px}.fhg-note,.fhg-example{padding:15px}.fhg dialog img{max-width:88vw;max-height:72vh}.fhg-version{font-size:12px}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media print{.fhg-toc,.fhg-search,.fhg-actions,.fhg-footer,.fhg-switch{display:none!important}.fhg-layout{display:block}.fhg section[hidden]{display:block!important}.fhg section{break-inside:auto}.fhg figure{break-inside:avoid}.fhg{color:#111;background:#fff;font-size:11pt}.fhg dialog{display:none!important}}
.fhg .fhg-result{border-left:3px solid #3e9d6e;padding:10px 16px;background:var(--g-note);border-radius:0 8px 8px 0}.fhg .fhg-next{margin:28px 0 0;font-size:14px;font-weight:650}
