.jlhc-tool {
        --bg: #ffffff;
        --panel: #faf8fd;
        --lav: #efe6fb;
        --ink: #1a1523;
        --muted: #6b6478;
        --line: #e7e1f2;
        --accent: #8855e6;
        --accent-dark: #6934c4;
        --good: #1fae7a;
        --good-bg: #e6f7f0;
        box-sizing: border-box;
        scroll-margin-top: 110px;
        max-width: 700px;
        margin: 0 auto;
        padding: clamp(24px, 5vw, 52px) clamp(18px, 5vw, 28px) 72px;
        background: var(--bg);
        color: var(--ink);
        font-family: 'Instrument Sans', sans-serif;
        -webkit-font-smoothing: antialiased
    }

    .jlhc-tool *,
    .jlhc-tool *::before,
    .jlhc-tool *::after {
        box-sizing: border-box
    }

    .jlhc-tool .jlhc-mono {
        font-family: 'Satoshi Variable', 'Satoshi', sans-serif
    }

    .jlhc-tool .jlhc-eyebrow {
        font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
        font-size: 11.5px;
        font-weight: 600;
        letter-spacing: .14em;
        color: var(--accent-dark);
        background: var(--lav);
        padding: 4px 10px;
        border-radius: 20px;
        display: inline-block
    }

    .jlhc-tool .jlhc-tool-title {
        font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
        font-weight: 700;
        font-size: clamp(26px, 4.2vw, 36px);
        line-height: 1.15;
        margin: 14px 0 10px;
        color: var(--accent)
    }

    .jlhc-tool .jlhc-sub {
        color: var(--muted);
        font-size: 15px;
        line-height: 1.6;
        max-width: 56ch;
        margin: 0 0 26px
    }

    .jlhc-tool .jlhc-field {
        display: flex;
        flex-direction: column;
        gap: 6px;
        margin-bottom: 8px
    }

    .jlhc-tool .jlhc-field label {
        font-size: 12.5px;
        font-weight: 600;
        color: var(--muted)
    }

    .jlhc-tool .jlhc-field input[type="text"] {
        background: #fff;
        border: 1px solid var(--line);
        border-radius: 10px;
        padding: 11px 13px;
        color: var(--ink);
        font-family: 'Instrument Sans', sans-serif;
        font-size: 14px;
        width: 100%
    }

    .jlhc-tool .jlhc-field input:focus-visible {
        outline: 2px solid var(--accent);
        outline-offset: 1px
    }

    .jlhc-tool .jlhc-gauge-band {
        display: flex;
        align-items: center;
        gap: 22px;
        background: var(--panel);
        border: 1px solid var(--line);
        border-radius: 18px;
        padding: 20px 24px;
        margin: 28px 0 34px
    }

    .jlhc-tool .jlhc-gauge-wrap {
        position: relative;
        width: 96px;
        height: 96px;
        flex: 0 0 auto
    }

    .jlhc-tool .jlhc-gauge {
        width: 96px;
        height: 96px;
        transform: rotate(-90deg)
    }

    .jlhc-tool .jlhc-gauge-track {
        fill: none;
        stroke: var(--lav);
        stroke-width: 9
    }

    .jlhc-tool .jlhc-gauge-fill {
        fill: none;
        stroke: var(--accent);
        stroke-width: 9;
        stroke-linecap: round;
        stroke-dasharray: 251.3;
        stroke-dashoffset: 251.3;
        transition: stroke-dashoffset .35s ease, stroke .3s ease
    }

    .jlhc-tool .jlhc-gauge-center {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
        font-weight: 700;
        font-size: 19px
    }

    .jlhc-tool .jlhc-gauge-info {
        flex: 1;
        min-width: 0
    }

    .jlhc-tool .jlhc-gauge-count {
        font-size: 13px;
        color: var(--muted)
    }

    .jlhc-tool .jlhc-gauge-status {
        font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
        font-weight: 700;
        font-size: 16px;
        margin-top: 2px;
        color: var(--muted)
    }

    .jlhc-tool .jlhc-gauge-status.jlhc-ready {
        color: var(--good)
    }

    @media (max-width:380px) {
        .jlhc-tool .jlhc-gauge-band {
            flex-direction: column;
            text-align: center
        }

        .jlhc-tool .jlhc-gauge-info {
            width: 100%
        }
    }

    .jlhc-tool section.jlhc-card {
        background: var(--panel);
        border: 1px solid var(--line);
        border-radius: 18px;
        padding: 20px clamp(18px, 4vw, 24px);
        margin-bottom: 16px
    }

    .jlhc-tool .jlhc-sec-head {
        display: flex;
        align-items: baseline;
        gap: 10px;
        margin-bottom: 4px
    }

    .jlhc-tool .jlhc-sec-head .jlhc-num {
        font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
        font-size: 12px;
        font-weight: 600;
        color: var(--accent-dark)
    }

    .jlhc-tool .jlhc-sec-head h3 {
        font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
        font-weight: 700;
        font-size: 16px;
        line-height: 1.3;
        margin: 0
    }

    .jlhc-tool ul.jlhc-items {
        list-style: none;
        margin: 8px 0 0;
        padding: 0
    }

    .jlhc-tool ul.jlhc-items li {
        margin: 0;
        padding: 0;
        list-style: none
    }

    .jlhc-tool ul.jlhc-items li::before,
    .jlhc-tool ul.jlhc-items li::marker {
        content: none
    }

    .jlhc-tool label.jlhc-item {
        display: flex;
        align-items: flex-start;
        gap: 12px;
        padding: 9px 0;
        cursor: pointer;
        border-bottom: 1px dashed var(--line);
        margin: 0
    }

    .jlhc-tool ul.jlhc-items li:last-child label.jlhc-item {
        border-bottom: none
    }

    /* Restore real browser checkboxes even when a theme hides/replaces form inputs. */
    html body .jlhc-tool[data-jlhc-checklist] ul.jlhc-items label.jlhc-item > input[type="checkbox"] {
        all: revert !important;
        -webkit-appearance: checkbox !important;
        appearance: auto !important;
        accent-color: #8855e6 !important;
        display: inline-block !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: static !important;
        width: 19px !important;
        height: 19px !important;
        min-width: 19px !important;
        min-height: 19px !important;
        max-width: 19px !important;
        max-height: 19px !important;
        flex: 0 0 19px !important;
        margin: 2px 0 0 !important;
        padding: 0 !important;
        transform: none !important;
        clip: auto !important;
        clip-path: none !important;
        pointer-events: auto !important;
        cursor: pointer !important;
    }

    html body .jlhc-tool[data-jlhc-checklist] ul.jlhc-items label.jlhc-item > input[type="checkbox"]::before,
    html body .jlhc-tool[data-jlhc-checklist] ul.jlhc-items label.jlhc-item > input[type="checkbox"]::after {
        content: none !important;
        display: none !important;
    }

    html body .jlhc-tool[data-jlhc-checklist] ul.jlhc-items label.jlhc-item > input[type="checkbox"]:focus-visible {
        outline: 2px solid #8855e6 !important;
        outline-offset: 3px !important;
    }

    .jlhc-tool label.jlhc-item span {
        font-size: 14.5px;
        line-height: 1.45;
        color: var(--ink);
        flex: 1;
        min-width: 0;
        overflow-wrap: break-word
    }

    .jlhc-tool input[type="checkbox"]:checked+span {
        color: var(--muted);
        text-decoration: line-through;
        text-decoration-color: #c9bfe0
    }

    .jlhc-tool .jlhc-actions {
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
        justify-content: center;
        margin-top: 24px
    }

    .jlhc-tool button {
        font-family: 'Instrument Sans', sans-serif;
        font-weight: 600;
        font-size: 13.5px;
        padding: 11px 18px;
        border-radius: 10px;
        cursor: pointer;
        line-height: 1.2;
        text-transform: none;
        letter-spacing: normal
    }

    .jlhc-tool button.jlhc-primary {
        border: none;
        background: linear-gradient(135deg, var(--accent), var(--accent-dark));
        color: #fff
    }

    .jlhc-tool button.jlhc-primary:hover {
        opacity: .92
    }

    .jlhc-tool button.jlhc-ghost {
        border: 1px solid var(--line);
        background: #fff;
        color: var(--muted)
    }

    .jlhc-tool button.jlhc-ghost:hover {
        border-color: var(--accent)
    }

    .jlhc-tool button:focus-visible {
        outline: 2px solid var(--accent);
        outline-offset: 2px
    }

    .jlhc-tool .jlhc-gate-panel {
        background: var(--panel);
        border: 1px solid var(--line);
        border-radius: 14px;
        padding: 18px 20px;
        margin-top: 14px;
        text-align: left
    }

    .jlhc-tool .jlhc-gate-panel[hidden],
    .jlhc-tool [hidden] {
        display: none !important
    }

    .jlhc-tool .jlhc-gate-text {
        font-size: 13.5px;
        color: var(--muted);
        margin: 0 0 10px
    }

    .jlhc-tool .jlhc-gate-row {
        display: flex;
        gap: 10px;
        flex-wrap: wrap
    }

    .jlhc-tool .jlhc-gate-row input[type="email"] {
        flex: 1;
        min-width: 180px;
        background: #fff;
        border: 1px solid var(--line);
        border-radius: 10px;
        padding: 11px 13px;
        font-family: 'Instrument Sans', sans-serif;
        font-size: 14px;
        color: var(--ink)
    }

    .jlhc-tool .jlhc-gate-row input:focus-visible {
        outline: 2px solid var(--accent);
        outline-offset: 1px
    }

    .jlhc-tool .jlhc-gate-error {
        color: #d3453b;
        font-size: 12.5px;
        margin: 8px 0 0
    }

    .jlhc-tool .jlhc-gate-success {
        color: var(--good);
        font-size: 13px;
        margin: 4px 0 0
    }

    .jlhc-tool button.jlhc-linklike {
        border: none;
        background: none;
        padding: 0;
        margin-left: 2px;
        color: var(--accent-dark);
        font-weight: 600;
        text-decoration: underline;
        cursor: pointer;
        font-size: 13px
    }

    .jlhc-tool .jlhc-toast {
        position: fixed;
        left: 50%;
        bottom: 26px;
        transform: translate(-50%, 20px);
        background: var(--ink);
        color: #fff;
        padding: 10px 18px;
        border-radius: 8px;
        font-size: 13px;
        opacity: 0;
        pointer-events: none;
        transition: opacity .25s ease, transform .25s ease;
        z-index: 9999
    }

    .jlhc-tool .jlhc-toast.jlhc-show {
        opacity: 1;
        transform: translate(-50%, 0)
    }

    @media (prefers-reduced-motion:reduce) {
        .jlhc-tool * {
            transition: none !important
        }
    }

    @media (max-width:420px) {
        .jlhc-tool .jlhc-actions button {
            flex: 1 1 100%
        }
    }

    /* hardening against host theme colours */
    .jlhc-tool .jlhc-tool-title {
        color: var(--accent) !important
    }

    .jlhc-tool .jlhc-sec-head h3 {
        color: var(--ink) !important
    }

    .jlhc-tool .jlhc-sub,
    .jlhc-tool .jlhc-field label,
    .jlhc-tool .jlhc-gauge-count,
    .jlhc-tool .jlhc-gate-text {
        color: var(--muted) !important
    }

    .jlhc-tool label.jlhc-item span {
        color: var(--ink) !important
    }

    .jlhc-tool input[type="checkbox"]:checked+span {
        color: var(--muted) !important
    }

    .jlhc-tool .jlhc-eyebrow,
    .jlhc-tool .jlhc-sec-head .jlhc-num {
        color: var(--accent-dark) !important
    }

    .jlhc-tool button.jlhc-primary {
        color: #fff !important
    }

    .jlhc-tool button.jlhc-ghost {
        color: var(--muted) !important
    }

    .jlhc-tool .jlhc-gate-error {
        color: #d3453b !important
    }

    .jlhc-tool .jlhc-field input[type="text"],
    .jlhc-tool .jlhc-gate-row input[type="email"] {
        color: var(--ink) !important
    }

    /* solid colours (no CSS variables) so theme, dark-mode or accessibility plugins can't hide text */
    html body .jlhc-tool label.jlhc-item>span,
    html body .jlhc-tool .jlhc-sec-head h3,
    html body .jlhc-tool .jlhc-field input,
    html body .jlhc-tool .jlhc-gate-row input {
        color: #111111 !important;
        -webkit-text-fill-color: #111111 !important;
        opacity: 1 !important;
        visibility: visible !important;
        background-clip: border-box !important;
        text-shadow: none !important;
        font-size: 14.5px
    }

    html body .jlhc-tool .jlhc-sec-head h3 {
        font-size: 16px
    }

    html body .jlhc-tool .jlhc-field input,
    html body .jlhc-tool .jlhc-gate-row input {
        font-size: 14px;
        background: #ffffff !important
    }

    html body .jlhc-tool label.jlhc-item>input[type="checkbox"]:checked+span {
        color: #6b6478 !important;
        -webkit-text-fill-color: #6b6478 !important
    }

    html body .jlhc-tool .jlhc-sub,
    html body .jlhc-tool .jlhc-field label,
    html body .jlhc-tool .jlhc-gauge-count,
    html body .jlhc-tool .jlhc-gate-text,
    html body .jlhc-tool .jlhc-gauge-status {
        color: #555555 !important;
        -webkit-text-fill-color: #555555 !important;
        opacity: 1 !important;
        visibility: visible !important
    }

    html body .jlhc-tool .jlhc-gauge-status.jlhc-ready,
    html body .jlhc-tool .jlhc-gate-success {
        color: #1fae7a !important;
        -webkit-text-fill-color: #1fae7a !important
    }

    html body .jlhc-tool .jlhc-tool-title {
        color: #8855e6 !important;
        -webkit-text-fill-color: #8855e6 !important;
        opacity: 1 !important;
        visibility: visible !important
    }

    html body .jlhc-tool .jlhc-eyebrow,
    html body .jlhc-tool .jlhc-sec-head .jlhc-num,
    html body .jlhc-tool button.jlhc-linklike {
        color: #6934c4 !important;
        -webkit-text-fill-color: #6934c4 !important;
        opacity: 1 !important
    }

    html body .jlhc-tool button.jlhc-primary {
        color: #ffffff !important;
        -webkit-text-fill-color: #ffffff !important;
        opacity: 1 !important
    }

    html body .jlhc-tool button.jlhc-ghost {
        color: #555555 !important;
        -webkit-text-fill-color: #555555 !important;
        background: #ffffff !important;
        opacity: 1 !important
    }

    html body .jlhc-tool .jlhc-gate-error {
        color: #d3453b !important;
        -webkit-text-fill-color: #d3453b !important
    }

    html body .jlhc-tool .jlhc-toast {
        color: #ffffff !important;
        -webkit-text-fill-color: #ffffff !important;
        background: #1a1523 !important
    }

    html body .jlhc-tool section.jlhc-card {
        background: #faf8fd !important
    }

    html body .jlhc-tool label.jlhc-item {
        opacity: 1 !important;
        visibility: visible !important
    }

.jlhc-tool button:disabled { opacity: .65 !important; cursor: wait; }
.jlhc-tool .jlhc-manual-copy { margin-top: 16px; }
.jlhc-tool .jlhc-manual-copy label { display: block; margin-bottom: 8px; }
.jlhc-tool .jlhc-manual-copy textarea { width: 100%; color: #1a1523; background: #fff; }
.jlhc-tool .jlhc-gauge { display: block; max-width: none; }
.jlhc-tool .jlhc-script-status { color: #555; font-size: 13px; line-height: 1.5; margin-top: 16px; }
.jlhc-tool .jlhc-toast { max-width: calc(100vw - 32px); }
.jlhc-tool .jlhc-gate-row input[type="email"] { min-width: 0; width: 100%; flex-basis: 180px; }
