/* Isolated styles. Fonts are inherited; assets and calculations remain local. */
.pht {
    --pbmi-navy:#102a5e; --pbmi-button-ink:#fff; --pbmi-accent:#065be8;
    --pbmi-result:#102a5e; --pbmi-result-ink:#f6f9ff; --pbmi-result-muted:#c6d6ed;
    --pbmi-line:rgba(210,225,255,.24); --pbmi-highlight:rgba(191,213,244,.11);
    box-sizing:border-box; width:100%; max-width:1040px; margin:32px auto; padding:clamp(18px,4%,40px);
    border-radius:18px; background:#f5f8fb; color:#102a5e; font:inherit; line-height:1.55; text-align:left; isolation:isolate;
}
.pht--light { --pbmi-result:#fff; --pbmi-result-ink:#102a5e; --pbmi-result-muted:#49607c; --pbmi-line:#dce5ef; --pbmi-highlight:#f0f4f9; }
.pht *, .pht *::before, .pht *::after { box-sizing:border-box; }
.pht [hidden] { display:none !important; }
.pht .pht__header { margin:0 0 24px; padding:0; background:none; }
.pht .pht__header h2 { margin:0 0 10px; color:#102a5e; font:inherit; font-size:clamp(28px,3.2vw,42px); font-weight:650; letter-spacing:-.035em; line-height:1.16; }
.pht .pht__header p { max-width:720px; margin:0; font-size:17px; }
.pht .pht__scope { color:#526780; font-size:13px; margin:0 0 20px; }
.pht .pht__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; align-items:stretch; }
.pht .pht__entry { padding:24px; border:1px solid #dfe7f1; border-radius:12px; background:#fff; min-width:0; }
.pht .pht__units { display:inline-flex; gap:4px; padding:4px; margin:0 0 22px; border-radius:999px; background:#edf2f8; }
.pht button { appearance:none; font:inherit; cursor:pointer; min-height:44px; text-transform:none; letter-spacing:0; box-shadow:none; }
.pht .pht__units button { padding:8px 18px; border:0; margin:0; border-radius:999px; font-size:14px; font-weight:600; color:#435a7b; background:transparent; }
.pht .pht__units button[aria-pressed="true"] { background:var(--pbmi-navy); color:var(--pbmi-button-ink); }
.pht .pht__fields { display:grid; gap:16px; margin-bottom:16px; }
.pht .pht__height { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.pht .pht__field { min-width:0; }
.pht label { display:block; color:#233c60; margin:0 0 5px; font:inherit; font-size:14px; font-weight:600; }
.pht input, .pht select { display:block; width:100%; min-width:0; max-width:100%; min-height:46px; margin:0; padding:10px 12px; background:#fff; color:#102a5e; border:1px solid #9baec8; border-radius:7px; box-shadow:none; font:inherit; font-size:16px; line-height:1.3; }
.pht select { padding-right:24px; text-overflow:ellipsis; }
.pht input[aria-invalid="true"], .pht select[aria-invalid="true"] { border-color:#a32d39; }
.pht input::placeholder { color:#687b95; opacity:1; }
.pht .pht__error { display:block; margin:5px 0 0; color:#a32d39; font-size:13px; line-height:1.4; }
.pht button:focus-visible, .pht input:focus-visible, .pht select:focus-visible, .pht summary:focus-visible, .pht a:focus-visible { outline:3px solid var(--pbmi-accent); outline-offset:3px; }
.pht .pht__reset { border:0; padding:4px 0; margin:0; color:var(--pbmi-accent); background:none; font-size:14px; text-decoration:underline; text-underline-offset:3px; }
.pht .pht__result { display:flex; flex-direction:column; align-items:flex-start; gap:0; min-width:0; padding:28px; border:1px solid var(--pbmi-line); border-radius:12px; background:var(--pbmi-result); color:var(--pbmi-result-ink); }
.pht .pht__result p { color:inherit; margin:0 0 14px; font:inherit; font-size:15px; }
.pht .pht__result .pht__eyebrow { margin:0 0 12px; font-size:13px; font-weight:650; letter-spacing:.03em; }
.pht .pht__value { max-width:100%; font-size:clamp(42px,5vw,64px); font-weight:650; line-height:1.1; letter-spacing:-.04em; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.pht .pht__result .pht__unit { margin:6px 0 18px; color:var(--pbmi-result-muted); }
.pht .pht__category { font-weight:650 !important; }
.pht .pht__secondary { width:100%; padding:18px 0 0; margin:2px 0 12px; border-top:1px solid var(--pbmi-line); }
.pht .pht__result .pht__secondary-value { font-size:20px; font-weight:600; }
.pht .pht__result .pht__context { color:var(--pbmi-result-muted); font-size:13px; }
.pht .pht__print { margin:10px 0 0; padding:8px 14px; border:1px solid currentColor; border-radius:6px; background:transparent; color:var(--pbmi-result-ink); font-size:14px; }
.pht .pht__print:disabled { opacity:.55; cursor:default; }
.pht progress { display:block; width:100%; height:12px; margin:10px 0 14px; accent-color:#69c8c0; }
.pht .pht__method { margin:22px 0 0; padding:16px 0 0; border:0; border-top:1px solid #dce5ef; background:none; font-size:14px; }
.pht .pht__method summary { cursor:pointer; font-weight:650; min-height:32px; }
.pht .pht__method p { margin:12px 0 0; color:#334c70; font-size:14px; }
.pht .pht__method a { color:var(--pbmi-accent); text-decoration:underline; }
.pht .pht__privacy { margin:18px 0 0; color:#526780; font-size:12px; }
.pht .pht__sr { position:absolute !important; width:1px !important; height:1px !important; margin:-1px !important; padding:0 !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
.pht-print-root { display:none !important; }
@media(max-width:680px) { .pht .pht__grid { grid-template-columns:minmax(0,1fr); } .pht .pht__entry, .pht .pht__result { padding:20px; } }
@media(prefers-reduced-motion:reduce) { .pht *, .pht *::before, .pht *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media print {
    body.pht-printing > :not(.pht-print-root) { display:none !important; }
    body.pht-printing > .pht-print-root { display:block !important; width:100%; margin:0; padding:0; }
    .pht-print-root .pht { margin:0; padding:0; max-width:none; background:#fff; color:#111; font:14px/1.5 sans-serif; }
    .pht-print-root .pht__grid { display:block; }
    .pht-print-root .pht__entry, .pht-print-root .pht__result { padding:12px 0; border:0; border-radius:0; background:#fff; color:#111; }
    .pht-print-root .pht__result .pht__context, .pht-print-root .pht__result .pht__unit { color:#333; }
    .pht-print-root .pht__fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .pht-print-root .pht__value { font-size:36px; }
    .pht-print-root .pht__field { break-inside:avoid; }
    .pht-print-root .pht__printed { display:block; }
    .pht-print-root .pht__result, .pht-print-root .pht__method p { break-inside:avoid; }
}
