/* ─────────────────────────────────────────────────────────────────────────
   MHT Behandlingsformular
   Design: Inspireret af praksisjordemoder.dk
   Palet: Skovgrøn #2d5a4e | Lys grøn #e8f5f0 | Accent #4a9b7f
   Typografi: Playfair Display (serif overskrifter) + system sans
───────────────────────────────────────────────────────────────────────── */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Source+Sans+3:wght@300;400;500;600&display=swap');

/* ── Tokens ──────────────────────────────────────────────────────────────── */
.mht-wrap {
    --mht-green-dark:   #425a4c;
    --mht-green-mid:    #768a7d;
    --mht-green-light:  #d6e2da;
    --mht-green-xlight: #edf2ef;
    --mht-amber:        #b45309;
    --mht-amber-bg:     #fffbeb;
    --mht-amber-border: #fde68a;
    --mht-red-dark:     #991b1b;
    --mht-red-bg:       #fef2f2;
    --mht-red-border:   #fecaca;
    --mht-blue-bg:      #eff6ff;
    --mht-blue-border:  #bfdbfe;
    --mht-blue-text:    #1e40af;
    --mht-note-bg:      #faf5ff;
    --mht-note-border:  #e9d5ff;
    --mht-note-text:    #6b21a8;
    --mht-border:       #c4d4cb;
    --mht-text:         #1a2a22;
    --mht-text-muted:   #768a7d;
    --mht-white:        #ffffff;
    --mht-shadow:       0 4px 24px rgba(45,90,78,.10);
    --mht-shadow-sm:    0 2px 8px rgba(45,90,78,.07);
    --mht-radius:       16px;
    --mht-radius-sm:    10px;
    --mht-font-serif:   'Playfair Display', Georgia, serif;
    --mht-font-sans:    'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    font-family: var(--mht-font-sans);
    color: var(--mht-text);
    max-width: 720px;
    margin: 0 auto;
    padding: 0 1rem 3rem;
}

/* ── Intro badge ─────────────────────────────────────────────────────────── */
.mht-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--mht-green-light);
    color: var(--mht-green-dark);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 5px 14px;
    border-radius: 100px;
    margin-bottom: 1.5rem;
}
.mht-intro-badge--pro {
    background: var(--mht-green-dark);
    color: var(--mht-white);
}

/* ── Progress bar ────────────────────────────────────────────────────────── */
.mht-progress {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 2rem;
    padding: 0 .5rem;
}
.mht-progress__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
}
.mht-progress__dot {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--mht-border);
    color: var(--mht-text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .85rem;
    font-weight: 700;
    font-family: var(--mht-font-serif);
    transition: background .25s, color .25s, transform .2s;
    border: 2.5px solid transparent;
}
.mht-progress__label {
    font-size: .72rem;
    font-weight: 500;
    color: var(--mht-text-muted);
    letter-spacing: .03em;
    white-space: nowrap;
    transition: color .25s;
}
.mht-progress__step.is-active .mht-progress__dot {
    background: var(--mht-green-dark);
    color: var(--mht-white);
    transform: scale(1.1);
    border-color: var(--mht-green-mid);
}
.mht-progress__step.is-active .mht-progress__label {
    color: var(--mht-green-dark);
    font-weight: 700;
}
.mht-progress__step.is-done .mht-progress__dot {
    background: var(--mht-green-mid);
    color: var(--mht-white);
}
.mht-progress__line {
    flex: 1;
    height: 2px;
    background: var(--mht-border);
    margin: 0 4px;
    border-radius: 2px;
    margin-bottom: 22px;
    transition: background .4s;
}
.mht-progress__line.is-done {
    background: var(--mht-green-mid);
}

/* ── Card ────────────────────────────────────────────────────────────────── */
.mht-card {
    background: var(--mht-white);
    border-radius: var(--mht-radius);
    border: 1.5px solid var(--mht-border);
    box-shadow: var(--mht-shadow);
    overflow: hidden;
    animation: mhtFadeUp .35s ease both;
}
@keyframes mhtFadeUp {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}
.mht-card__header {
    background: var(--mht-green-xlight);
    border-bottom: 1.5px solid var(--mht-border);
    padding: 1.5rem 2rem;
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}
.mht-step-num {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--mht-green-dark);
    color: var(--mht-white);
    font-family: var(--mht-font-serif);
    font-size: 1.1rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px;
}
.mht-card__title {
    font-family: var(--mht-font-serif);
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--mht-green-dark);
    margin: 0 0 .25rem;
    line-height: 1.3;
}
.mht-card__desc {
    font-size: .9rem;
    color: var(--mht-text-muted);
    margin: 0;
    line-height: 1.5;
}
.mht-card__body {
    padding: 1.75rem 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.mht-card__footer {
    padding: 1.25rem 2rem;
    border-top: 1.5px solid var(--mht-border);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem;
    background: var(--mht-green-xlight);
}

/* ── Fields ──────────────────────────────────────────────────────────────── */
.mht-field {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.mht-label {
    font-size: .95rem;
    font-weight: 600;
    color: var(--mht-text);
    line-height: 1.4;
}
.mht-field-help {
    font-size: .83rem;
    color: var(--mht-text-muted);
    margin: 0;
    line-height: 1.5;
    background: var(--mht-green-xlight);
    border-left: 3px solid var(--mht-green-mid);
    padding: .5rem .75rem;
    border-radius: 0 var(--mht-radius-sm) var(--mht-radius-sm) 0;
}
.mht-required { color: var(--mht-green-mid); margin-left: 2px; }

.mht-input {
    border: 1.5px solid var(--mht-border);
    border-radius: var(--mht-radius-sm);
    padding: .65rem 1rem;
    font-size: 1rem;
    font-family: var(--mht-font-sans);
    color: var(--mht-text);
    background: var(--mht-white);
    max-width: 180px;
    transition: border-color .2s, box-shadow .2s;
    outline: none;
}
.mht-input:focus {
    border-color: var(--mht-green-mid);
    box-shadow: 0 0 0 3px rgba(74,155,127,.18);
}
.mht-input.mht-input--error { border-color: var(--mht-red-dark); }

/* ── Radios ──────────────────────────────────────────────────────────────── */
.mht-radio-group {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.mht-radio {
    display: flex;
    align-items: center;
    gap: .75rem;
    cursor: pointer;
    padding: .65rem 1rem;
    border-radius: var(--mht-radius-sm);
    border: 1.5px solid var(--mht-border);
    background: var(--mht-white);
    transition: border-color .2s, background .2s, box-shadow .15s;
    -webkit-tap-highlight-color: transparent;
}
.mht-radio:hover {
    border-color: var(--mht-green-mid);
    background: var(--mht-green-xlight);
}
.mht-radio input[type="radio"] { display: none; }
.mht-radio__box {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid var(--mht-border);
    background: var(--mht-white);
    transition: border-color .2s, background .2s;
    position: relative;
}
.mht-radio__box::after {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%,-50%) scale(0);
    width: 10px; height: 10px;
    border-radius: 50%;
    background: var(--mht-green-dark);
    transition: transform .2s;
}
.mht-radio input[type="radio"]:checked + .mht-radio__box {
    border-color: var(--mht-green-dark);
    background: var(--mht-green-light);
}
.mht-radio input[type="radio"]:checked + .mht-radio__box::after {
    transform: translate(-50%,-50%) scale(1);
}
.mht-radio:has(input:checked) {
    border-color: var(--mht-green-dark);
    background: var(--mht-green-light);
    box-shadow: 0 0 0 3px rgba(45,90,78,.10);
}
.mht-radio__label {
    font-size: .93rem;
    color: var(--mht-text);
    line-height: 1.4;
}

/* ── Checkboxes ──────────────────────────────────────────────────────────── */
.mht-checkbox-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
}
@media (max-width: 600px) {
    .mht-checkbox-grid { grid-template-columns: 1fr; }
}
.mht-checkbox-grid--flags { grid-template-columns: 1fr; }
.mht-check {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    cursor: pointer;
    padding: .7rem 1rem;
    border-radius: var(--mht-radius-sm);
    border: 1.5px solid var(--mht-border);
    background: var(--mht-white);
    transition: border-color .2s, background .2s;
    -webkit-tap-highlight-color: transparent;
}
.mht-check:hover { border-color: var(--mht-green-mid); background: var(--mht-green-xlight); }
.mht-check input[type="checkbox"] { display: none; }
.mht-check__box {
    flex-shrink: 0;
    width: 20px; height: 20px;
    border-radius: 6px;
    border: 2px solid var(--mht-border);
    background: var(--mht-white);
    margin-top: 1px;
    transition: border-color .2s, background .2s;
    position: relative;
}
.mht-check__box::after {
    content: '';
    position: absolute;
    top: 3px; left: 6px;
    width: 5px; height: 9px;
    border: 2.5px solid var(--mht-white);
    border-top: none; border-left: none;
    transform: rotate(45deg) scale(0);
    transition: transform .15s;
}
.mht-check input:checked + .mht-check__box {
    background: var(--mht-green-dark);
    border-color: var(--mht-green-dark);
}
.mht-check input:checked + .mht-check__box::after {
    transform: rotate(45deg) scale(1);
}
.mht-check:has(input:checked) {
    border-color: var(--mht-green-dark);
    background: var(--mht-green-light);
}
.mht-check--flag:hover { border-color: var(--mht-amber); background: var(--mht-amber-bg); }
.mht-check--flag .mht-check__box--flag { border-radius: 6px; }
.mht-check--flag:hover .mht-check__box--flag { border-color: var(--mht-amber); }
.mht-check--flag:has(input:checked) {
    border-color: var(--mht-amber);
    background: var(--mht-amber-bg);
}
.mht-check--flag input:checked + .mht-check__box--flag {
    background: var(--mht-amber);
    border-color: var(--mht-amber);
}
.mht-check__label {
    font-size: .9rem;
    color: var(--mht-text);
    line-height: 1.5;
}

/* ── Buttons ─────────────────────────────────────────────────────────────── */
.mht-btn {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .65rem 1.4rem;
    border-radius: 100px;
    font-size: .9rem;
    font-weight: 600;
    font-family: var(--mht-font-sans);
    cursor: pointer;
    border: none;
    transition: background .2s, transform .15s, box-shadow .15s, opacity .2s;
    text-decoration: none;
    letter-spacing: .01em;
    line-height: 1;
    white-space: nowrap;
}
.mht-btn:active { transform: scale(.97); }
.mht-btn:disabled { opacity: .55; cursor: not-allowed; }

.mht-btn--primary {
    background: var(--mht-green-dark);
    color: var(--mht-white);
    box-shadow: 0 3px 12px rgba(45,90,78,.28);
}
.mht-btn--primary:hover {
    background: #235045;
    box-shadow: 0 5px 16px rgba(45,90,78,.36);
    transform: translateY(-1px);
}
.mht-btn--cta {
    background: linear-gradient(135deg, #2d5a4e 0%, #4a9b7f 100%);
    color: var(--mht-white);
    padding: .75rem 1.75rem;
    font-size: .95rem;
    box-shadow: 0 4px 16px rgba(45,90,78,.32);
}
.mht-btn--cta:hover {
    box-shadow: 0 6px 22px rgba(45,90,78,.42);
    transform: translateY(-2px);
}
.mht-btn--secondary {
    background: var(--mht-green-light);
    color: var(--mht-green-dark);
    border: 1.5px solid var(--mht-border);
}
.mht-btn--secondary:hover {
    background: #d0ebe2;
    border-color: var(--mht-green-mid);
}
.mht-btn--ghost {
    background: transparent;
    color: var(--mht-text-muted);
    border: 1.5px solid var(--mht-border);
}
.mht-btn--ghost:hover {
    background: var(--mht-green-xlight);
    color: var(--mht-green-dark);
    border-color: var(--mht-green-mid);
}

/* ── Alerts ──────────────────────────────────────────────────────────────── */
.mht-alert {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: 1rem 1.25rem;
    border-radius: var(--mht-radius-sm);
    font-size: .9rem;
    line-height: 1.55;
}
.mht-alert--danger {
    background: var(--mht-red-bg);
    border: 1.5px solid var(--mht-red-border);
    color: var(--mht-red-dark);
}
.mht-alert--info {
    background: var(--mht-blue-bg);
    border: 1.5px solid var(--mht-blue-border);
    color: var(--mht-blue-text);
}
.mht-alert svg { flex-shrink: 0; margin-top: 2px; }

/* ── Loading ─────────────────────────────────────────────────────────────── */
.mht-loading {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--mht-text-muted);
    font-size: .95rem;
}
.mht-spinner {
    width: 44px; height: 44px;
    border: 3px solid var(--mht-border);
    border-top-color: var(--mht-green-dark);
    border-radius: 50%;
    animation: mhtSpin .75s linear infinite;
    margin: 0 auto 1rem;
}
@keyframes mhtSpin { to { transform: rotate(360deg); } }

/* ── Result ──────────────────────────────────────────────────────────────── */
.mht-result-wrap { animation: mhtFadeUp .35s ease both; }

.mht-result {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.mht-result__header {
    background: var(--mht-green-xlight);
    border: 1.5px solid var(--mht-border);
    border-radius: var(--mht-radius);
    padding: 1.5rem 2rem;
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}
.mht-result--stop .mht-result__header {
    background: var(--mht-red-bg);
    border-color: var(--mht-red-border);
}
.mht-result__icon {
    flex-shrink: 0;
    width: 52px; height: 52px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.mht-result__icon--ok {
    background: var(--mht-green-dark);
    color: var(--mht-white);
}
.mht-result__icon--stop {
    background: var(--mht-red-bg);
    border: 2px solid var(--mht-red-border);
    color: var(--mht-red-dark);
}
.mht-result__label {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--mht-text-muted);
    margin: 0 0 .3rem;
}
.mht-result--stop .mht-result__label { color: var(--mht-red-dark); opacity: .7; }
.mht-result__title {
    font-family: var(--mht-font-serif);
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--mht-green-dark);
    margin: 0;
    line-height: 1.3;
}
.mht-result--stop .mht-result__title { color: var(--mht-red-dark); }

/* Sections */
.mht-result__sections {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.mht-result__section {
    background: var(--mht-white);
    border: 1.5px solid var(--mht-border);
    border-radius: var(--mht-radius-sm);
    overflow: hidden;
}
.mht-result__section--warn {
    border-color: var(--mht-amber-border);
}
.mht-result__section--note {
    border-color: var(--mht-note-border);
}
.mht-section__head {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .9rem 1.25rem;
    background: var(--mht-green-xlight);
    border-bottom: 1.5px solid var(--mht-border);
}
.mht-result__section--warn .mht-section__head {
    background: var(--mht-amber-bg);
    border-bottom-color: var(--mht-amber-border);
}
.mht-result__section--note .mht-section__head {
    background: var(--mht-note-bg);
    border-bottom-color: var(--mht-note-border);
}
.mht-section__num {
    flex-shrink: 0;
    width: 28px; height: 28px;
    border-radius: 50%;
    background: var(--mht-green-dark);
    color: var(--mht-white);
    font-family: var(--mht-font-serif);
    font-size: .85rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
.mht-result__section--warn .mht-section__num { background: var(--mht-amber); }
.mht-result__section--note .mht-section__num { background: var(--mht-note-text); }
.mht-section__head h3 {
    font-family: var(--mht-font-serif);
    font-size: 1rem;
    font-weight: 700;
    color: var(--mht-green-dark);
    margin: 0;
}
.mht-result__section--warn .mht-section__head h3 { color: var(--mht-amber); }
.mht-result__section--note .mht-section__head h3 { color: var(--mht-note-text); }
.mht-section__body {
    padding: 1rem 1.25rem;
}

/* Lists */
.mht-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.mht-list li {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    font-size: .9rem;
    line-height: 1.55;
    color: var(--mht-text);
}
.mht-list li::before {
    content: '';
    flex-shrink: 0;
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--mht-green-mid);
    margin-top: .45rem;
}
.mht-list--warn li::before { background: var(--mht-amber); }
.mht-list--note li::before { background: var(--mht-note-text); }

/* Products */
.mht-product-group-label {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--mht-text-muted);
    margin: .75rem 0 .4rem;
}
.mht-product-group-label:first-child { margin-top: 0; }
.mht-product-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
    margin-bottom: .25rem;
}
@media (max-width: 480px) { .mht-product-grid { grid-template-columns: 1fr; } }
.mht-product-card {
    background: var(--mht-green-xlight);
    border: 1.5px solid var(--mht-border);
    border-radius: var(--mht-radius-sm);
    padding: .65rem 1rem;
}
.mht-product-card__name {
    font-size: .88rem;
    font-weight: 600;
    color: var(--mht-green-dark);
    line-height: 1.4;
}
.mht-product-card__form {
    font-size: .78rem;
    color: var(--mht-text-muted);
    margin-top: 2px;
}

/* Dose table */
.mht-dose-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.mht-dose-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .875rem;
}
.mht-dose-table thead tr {
    background: var(--mht-green-xlight);
    border-bottom: 2px solid var(--mht-border);
}
.mht-dose-table th {
    text-align: left;
    padding: .65rem 1rem;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--mht-text-muted);
}
.mht-dose-table td {
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--mht-border);
    vertical-align: top;
    line-height: 1.5;
    color: var(--mht-text);
}
.mht-dose-table tbody tr:last-child td { border-bottom: none; }
.mht-dose-table tbody tr:hover td { background: var(--mht-green-xlight); }

/* Disclaimer */
.mht-disclaimer-box {
    background: #f8fafc;
    border: 1.5px solid #e2e8f0;
    border-radius: var(--mht-radius-sm);
    padding: 1rem 1.25rem;
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    color: #64748b;
    font-size: .82rem;
    line-height: 1.6;
}
.mht-disclaimer-box svg { flex-shrink: 0; margin-top: 2px; color: #94a3b8; }
.mht-disclaimer-box p { margin: 0; }

/* Result actions */
.mht-result-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    padding: 1.25rem 0 .5rem;
    align-items: center;
}
.mht-copy-toast {
    background: var(--mht-green-dark);
    color: var(--mht-white);
    padding: .5rem 1.25rem;
    border-radius: 100px;
    font-size: .85rem;
    font-weight: 600;
    animation: mhtFadeUp .25s ease both;
}

/* ── Mode-specific tweaks ────────────────────────────────────────────────── */
.mht-mode-lay .mht-card__header {
    background: linear-gradient(135deg, #f0faf6 0%, #e8f5f0 100%);
}
.mht-mode-lay .mht-intro-badge {
    background: linear-gradient(135deg, var(--mht-green-light) 0%, #d0ebe2 100%);
}

/* ── Print ───────────────────────────────────────────────────────────────── */
@media print {
    .mht-result-actions,
    .mht-progress,
    .mht-intro-badge,
    .mht-btn { display: none !important; }
    .mht-wrap { max-width: 100%; padding: 0; }
    .mht-result { gap: .75rem; }
    .mht-result__section { break-inside: avoid; page-break-inside: avoid; }
    .mht-card__header { background: #f4faf8 !important; -webkit-print-color-adjust: exact; }
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
    .mht-card__header,
    .mht-card__body,
    .mht-card__footer { padding-left: 1.25rem; padding-right: 1.25rem; }
    .mht-card__header { gap: .75rem; }
    .mht-step-num { width: 34px; height: 34px; font-size: 1rem; }
    .mht-card__title { font-size: 1.15rem; }
    .mht-result__header { padding: 1.25rem; }
    .mht-result__title { font-size: 1.15rem; }
    .mht-result-actions { gap: .5rem; }
    .mht-btn { padding: .6rem 1.1rem; font-size: .85rem; }
    .mht-progress__label { display: none; }
    .mht-progress__dot { width: 30px; height: 30px; font-size: .78rem; }
}

/* ── Triggered flags box (pro stop-result only) ──────────────────────────── */
.mht-flagbox {
    background: #fff8f0;
    border: 1.5px solid #f97316;
    border-radius: var(--mht-radius-sm);
    overflow: hidden;
}
.mht-flagbox__header {
    display: flex;
    align-items: center;
    gap: .5rem;
    background: #fff1e6;
    border-bottom: 1.5px solid #f97316;
    padding: .7rem 1.1rem;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #c2410c;
}
.mht-flagbox__header svg { flex-shrink: 0; color: #f97316; }
.mht-flagbox__list {
    list-style: none;
    margin: 0;
    padding: .5rem 1.1rem .75rem;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.mht-flagbox__list li {
    display: flex;
    align-items: center;
    gap: .55rem;
    font-size: .9rem;
    font-weight: 500;
    color: #7c2d12;
    line-height: 1.4;
}
.mht-flagbox__list li svg {
    flex-shrink: 0;
    color: #f97316;
}

/* ── Contrast overrides v1.1.0 ───────────────────────────────────────────── */
.mht-wrap { color: #111827; }
.mht-label { color: #111827 !important; font-weight: 600; }
.mht-radio__label { color: #111827 !important; }
.mht-field-help { color: #374151 !important; }
.mht-card__desc { color: #374151 !important; }
.mht-card__title { color: #111827 !important; }
.mht-check__label { color: #111827 !important; }
.mht-result__section h3 { color: #111827 !important; }
.mht-result__section p,
.mht-result__section li { color: #1f2937 !important; }
.mht-progress__step-label { color: #374151 !important; }
.mht-section__num { color: #fff !important; }
.mht-disclaimer { color: #374151 !important; }

/* ── Product card preferred state ────────────────────────────────────────── */
.mht-product-card--preferred {
    border: 2px solid #2d7a60 !important;
    background: #f0f9f5 !important;
    position: relative;
}
.mht-product-card__badge {
    display: inline-block;
    background: #2d7a60;
    color: #fff;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 20px;
    margin-bottom: .35rem;
}
.mht-row--preferred td:first-child { font-weight: 700; }
.mht-badge-inline {
    display: inline-block;
    background: #dcfce7;
    color: #166534;
    font-size: .7rem;
    font-weight: 700;
    padding: 1px 7px;
    border-radius: 20px;
    vertical-align: middle;
    margin-left: .4rem;
}

/* ── Mail overlay ────────────────────────────────────────────────────────── */
.mht-mail-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.mht-mail-dialog {
    background: #fff;
    border-radius: 14px;
    padding: 1.75rem 2rem;
    width: 100%;
    max-width: 420px;
    box-shadow: 0 20px 60px rgba(0,0,0,.25);
}
.mht-mail-dialog__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #111827;
    margin: 0 0 .5rem;
}
.mht-mail-dialog__note {
    font-size: .88rem;
    color: #374151;
    margin: 0 0 1rem;
}
.mht-mail-input {
    width: 100%;
    box-sizing: border-box;
    border: 1.5px solid #d1d5db;
    border-radius: 8px;
    padding: .65rem .85rem;
    font-size: .95rem;
    color: #111827;
    margin-bottom: .85rem;
}
.mht-mail-input:focus { outline: none; border-color: #2d7a60; box-shadow: 0 0 0 3px rgba(45,122,96,.15); }
.mht-mail-dialog__actions { display: flex; gap: .75rem; flex-wrap: wrap; }
.mht-mail-msg { font-size: .85rem; margin: .75rem 0 0; line-height: 1.4; }

