.bmi-utility-host[hidden],
.bmi-utility [hidden] { display: none !important; }
.bmi-utility-host {
    position: fixed;
    inset: 0;
    z-index: 10030;
    background: var(--bg-light, #f7f9fb);
    overflow: auto;
    overscroll-behavior: contain;
}
.bmi-utility-host,
.bmi-utility-host *,
.bmi-utility-host *::before,
.bmi-utility-host *::after { box-sizing: border-box; }
.bmi-utility {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    color: var(--text-primary, #142033);
    font-family: inherit;
}
.bmi-utility__header {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px clamp(16px, 3vw, 40px);
    border-bottom: 1px solid var(--border-color, #dce3ea);
    background: #fff;
}
.bmi-utility__back {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border: 1px solid var(--border-color, #dce3ea);
    border-radius: 12px;
    background: #fff;
    color: inherit;
    cursor: pointer;
    font-size: 1.3rem;
}
.bmi-utility__heading { min-width: 0; }
.bmi-utility__eyebrow {
    display: block;
    color: var(--brand-primary, #ef572c);
    font-size: .75rem;
    font-weight: 700;
}
.bmi-utility__heading h2 {
    margin: 2px 0 0;
    font-size: clamp(1.15rem, 2vw, 1.5rem);
    line-height: 1.3;
}
.bmi-utility__body {
    flex: 1;
    width: min(100%, 1280px);
    margin: 0 auto;
    padding: clamp(16px, 3vw, 32px);
}
.bmi-utility__footer { padding: 8px 16px max(8px, env(safe-area-inset-bottom)); text-align: center; }
.bmi-utility__exit {
    min-height: 44px;
    padding: 8px 16px;
    font: inherit;
    font-size: .8rem;
    color: var(--text-secondary, #64748b);
    background: transparent;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
}
.bmi-utility__exit:focus-visible { outline: 3px solid #60a5fa; outline-offset: 2px; }
.bmi-utility[data-bmi-entry-mode="direct"] .bmi-utility__picker > :not(.bmi-utility__status):not(.bmi-utility__actions) { display: none; }
.bmi-utility[data-bmi-entry-mode="direct"] .bmi-utility__continue { display: none; }
@media (max-width: 700px) {
    .bmi-utility__header { display: none; }
    .bmi-utility__body { width: 100%; padding: env(safe-area-inset-top) 0 0; }
    .bmi-utility__picker { max-width: none; border: 0; border-radius: 0; padding: 16px 12px; }
    .bmi-utility__footer { position: sticky; bottom: 0; background: var(--bg-light, #f7f9fb); }
}
.bmi-utility__picker {
    max-width: 680px;
    padding: clamp(18px, 3vw, 28px);
    border: 1px solid var(--border-color, #dce3ea);
    border-radius: 20px;
    background: #fff;
}
.bmi-utility__picker h3 { margin: 0 0 8px; font-size: 1.25rem; }
.bmi-utility__picker p { margin: 0 0 20px; color: var(--text-secondary, #64748b); }
.bmi-utility__picker label { display: block; margin-bottom: 8px; font-weight: 700; }
.bmi-utility__picker select {
    width: 100%;
    min-height: 48px;
    padding: 10px 14px;
    border: 1px solid var(--border-color, #cbd5e1);
    border-radius: 12px;
    background: #fff;
    color: inherit;
    font: inherit;
}
.bmi-utility__status { min-height: 1.5em; margin-top: 12px; color: var(--text-secondary, #64748b); }
.bmi-utility__status[data-kind="error"] { color: #b42318; }
.bmi-utility__actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }
.bmi-utility__actions button {
    min-height: 44px;
    padding: 0 20px;
    border-radius: 12px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.bmi-utility__retry { border: 1px solid var(--border-color, #cbd5e1); background: #fff; color: inherit; }
.bmi-utility__continue { border: 1px solid var(--brand-primary, #ef572c); background: var(--brand-primary, #ef572c); color: #fff; }
.bmi-utility__continue:disabled { opacity: .55; cursor: not-allowed; }
.bmi-utility__back:focus-visible,
.bmi-utility__actions button:focus-visible,
.bmi-utility__picker select:focus-visible { outline: 3px solid #60a5fa; outline-offset: 2px; }
@media (max-width: 390px) {
    .bmi-utility__picker { padding: 16px 12px; }
}
