/**
 * App-wide confirm / alert dialogs (CodePen rppld/vOvdyQ inspired).
 * White card, circular icon ring (#48DB71), black primary button with hover invert.
 */
.ho-modal-backdrop {
    box-sizing: border-box;
    display: none;
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(17, 17, 17, 0.45);
    -webkit-font-smoothing: antialiased;
    opacity: 0;
    transition: opacity 0.22s ease;
}

.ho-modal-backdrop.ho-modal-active {
    display: flex;
    opacity: 1;
}

.ho-modal-panel {
    box-sizing: border-box;
    background: #fff;
    padding: 2em clamp(1.25rem, 4vw, 3rem);
    text-align: center;
    border-radius: 0.5em;
    max-width: 26rem;
    width: 100%;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.18), 0 0 0 1px rgba(0, 0, 0, 0.04);
    transform: scale(0.92) translateY(12px);
    opacity: 0;
    transition:
        transform 0.38s cubic-bezier(0.34, 1.35, 0.64, 1),
        opacity 0.28s ease;
}

.ho-modal-backdrop.ho-modal-active .ho-modal-panel {
    transform: scale(1) translateY(0);
    opacity: 1;
}

.ho-modal-symbol {
    width: 40px;
    height: 40px;
    margin: 0 auto 1.75rem;
    border-radius: 50%;
    box-shadow: 0 0 0 2px #48db71;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: #111;
    background: #fff;
}

.ho-modal-symbol--info {
    box-shadow: 0 0 0 2px #3b82f6;
    color: #1d4ed8;
}

.ho-modal-title {
    font-size: 1.5em;
    font-weight: 700;
    margin: 0 0 0.5em;
    color: #111;
    line-height: 1.25;
}

.ho-modal-message {
    margin: 0 0 1.75em;
    color: #666;
    line-height: 1.55;
    font-size: 1rem;
    white-space: pre-wrap;
}

.ho-modal-actions {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
}

.ho-modal-btn {
    font-size: 1.05em;
    font-weight: 700;
    background-color: #000;
    border: none;
    padding: 0.5em 1.15em;
    color: #fff;
    box-shadow: 0 0 0 2px #000 inset;
    border-radius: 0.25em;
    cursor: pointer;
    transition: background 0.35s ease, color 0.35s ease;
    font-family: inherit;
}

.ho-modal-btn:hover {
    color: #000;
    background-color: transparent;
}

.ho-modal-btn--secondary {
    background-color: transparent;
    color: #000;
    box-shadow: 0 0 0 2px #000 inset;
}

.ho-modal-btn--secondary:hover {
    background-color: #000;
    color: #fff;
}

.ho-modal-btn:focus-visible {
    outline: 2px solid #48db71;
    outline-offset: 2px;
}
