.hap{background:#faf8f4;border-radius:12px;--navy:#14213d;--green:#2f7d4f;--bd:#d9dde3;font:16px/1.6 Georgia,'Times New Roman',serif;color:#2b2f36;max-width:980px;margin:0 auto;padding:20px 16px 48px}
.hap *{box-sizing:border-box}.hap h2,.hap h3,.hap h4,.hap h5,.hap button,.hap label,.hap legend,.hap small,.hap .prog{font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
.hap .hap-title{color:var(--navy);font-size:clamp(1.9rem,5vw,2.9rem);line-height:1.15;margin:.4em 0 .3em}.hap h2,.hap h4{color:var(--navy);font-size:1.45rem;margin:0 0 .6em}.hap h3,.hap h5{color:var(--navy);font-size:1.1rem;margin:1.2em 0 .4em}
.hap .brand{color:var(--navy);font:700 1.05rem system-ui,sans-serif;display:flex;gap:8px;align-items:center}
.hap .hero{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;align-items:center;padding:28px 0}.hap .hero p{font-size:1.1rem;max-width:56ch}
.hap .card{background:#fff;border:1px solid var(--bd);border-radius:14px;box-shadow:0 1px 3px rgba(20,33,61,.08);padding:22px;margin:18px 0}
.hap .btn{min-height:46px;padding:10px 20px;border-radius:10px;border:1px solid var(--navy);background:#fff;color:var(--navy);font-size:1rem;font-weight:600;cursor:pointer}
.hap .btn.pri{background:var(--navy);color:#fff}.hap .btn:disabled{opacity:.45;cursor:not-allowed}.hap .row{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.hap :focus-visible{outline:3px solid #1d4ed8;outline-offset:2px}
.hap .prog{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 6px}.hap .prog li{flex:1;text-align:center;font-size:.8rem;padding:6px 2px;border-bottom:4px solid var(--bd);color:#555}.hap .prog li[aria-current]{border-color:var(--navy);color:var(--navy);font-weight:700}.hap .prog li.d{border-color:var(--green)}
.hap .fld{margin:14px 0}.hap label,.hap legend{font-weight:600;color:var(--navy)}.hap small{display:block;color:#555;margin:2px 0 4px}
.hap input[type=text],.hap select{width:100%;min-height:46px;padding:9px 12px;border:1px solid #8a93a0;border-radius:8px;font:inherit;background:#fff}.hap input[aria-invalid=true]{border:2px solid #b42318}
.hap .err{color:#b42318;font:600 .9rem system-ui,sans-serif;min-height:0}.hap .err:not(:empty)::before{content:"Error: "}
.hap .opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;border:0;padding:0;margin:0}
.hap .opt{display:flex;gap:10px;border:1px solid var(--bd);border-radius:10px;padding:12px;cursor:pointer;font-weight:400}.hap .opt:has(input:checked){border:2px solid var(--green);background:#f1f8f3}.hap .opt b{display:block;color:var(--navy)}.hap .opt span{font-size:.92rem}
.hap input[type=radio],.hap input[type=checkbox]{width:22px;height:22px;flex:none;margin-top:3px;accent-color:var(--green)}
.hap .res{border-left:5px solid var(--green);background:#f1f8f3;padding:10px 14px;border-radius:8px;font-weight:600}
.hap table{width:100%;border-collapse:collapse;font-family:system-ui,sans-serif}.hap td,.hap th{padding:8px 4px;border-bottom:1px solid var(--bd);text-align:left}.hap td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.hap .tag{font:.75rem system-ui,sans-serif;background:#eef1f6;border-radius:6px;padding:1px 6px;margin-left:6px;color:#333}
.hap .ck{display:flex;gap:10px;align-items:center;margin:8px 0}.hap .ck input[type=text]{flex:1}
.hap details{border:1px solid var(--bd);border-radius:10px;background:#fff;padding:10px 16px}.hap summary{font:700 1.1rem system-ui,sans-serif;color:var(--navy);cursor:pointer}
.hap .note{font-size:.92rem;color:#444}
@media(max-width:700px){.hap .hero{grid-template-columns:1fr}.hap .prog li{font-size:.7rem}.hap .btn{flex:1}}
@media print{.hap .np{display:none!important}.hap .card{box-shadow:none;break-inside:avoid}}
/* isolation from theme styles */
.hap h2,.hap h3,.hap h4,.hap h5,.hap .hap-title{text-transform:none;letter-spacing:normal;font-style:normal}
.hap button,.hap input,.hap select{text-transform:none;letter-spacing:normal;text-shadow:none;box-shadow:none}
.hap input[type=text],.hap select{height:auto;line-height:1.4;color:#2b2f36}
.hap input[type=radio],.hap input[type=checkbox]{padding:0;min-height:0}
.hap table{table-layout:auto;border:0;margin:0}.hap td,.hap th{border-left:0;border-right:0;background:none}
.hap ol:not(.prog),.hap ul{margin:.6em 0 .6em 1.4em;padding:0}.hap li{margin:.2em 0}
.hap a{color:#1d4ed8;text-decoration:underline}.hap fieldset{min-width:0}.hap legend{padding:0}.hap p{margin:.6em 0}
.hap .brand svg{flex:none}
@media print{body *{visibility:hidden!important}.hap,.hap *{visibility:visible!important}.hap{position:absolute;left:0;top:0;width:100%}}
