/* Visual styles only: callers own focus management, Escape and restoring focus. */
.hn-dialog-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    overflow-y: auto;
    background: var(--ui-overlay);
}
.hn-dialog {
    width: min(100%, 560px);
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    border: 1px solid var(--ui-border);
    border-radius: var(--ui-radius);
    background: var(--ui-panel);
    color: var(--ui-text);
    box-shadow: var(--ui-shadow);
}
.hn-dialog-header, .hn-dialog-footer { display: flex; align-items: center; gap: 12px; padding: 16px; }
.hn-dialog-header { justify-content: space-between; border-bottom: 1px solid var(--ui-border); }
.hn-dialog-header :is(h2, h3) { margin: 0; font-size: 18px; }
.hn-dialog-body { padding: 16px; }
.hn-dialog-footer { justify-content: flex-end; flex-wrap: wrap; border-top: 1px solid var(--ui-border); background: var(--ui-panel-soft); }
