.h-hidden { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.h-modal { position: fixed; inset: 0; display: none; z-index: 9999; }
.h-modal.is-open { display: block; }
.h-modal__overlay { position:absolute; inset:0; background: rgba(0,0,0,.5); }
.h-modal__dialog {
  position: relative; max-width: 560px; margin: 6vh auto; background: #fff; border-radius: 14px;
  padding: 24px; box-shadow: 0 20px 60px rgba(0,0,0,.25); animation: modalIn .18s ease-out;
}
@keyframes modalIn { from{ transform: translateY(10px); opacity: .7; } to{ transform:none; opacity:1; } }
.h-modal__close { position:absolute; top:8px; right:12px; border:0; background:transparent; font-size:24px; line-height:1; cursor:pointer; }
.h-modal__title { margin: 0 0 6px; }
.h-modal__subtitle { margin: 0 0 14px; color: #6c757d; }
.h-form .h-field { margin-bottom: 12px; }
.h-form label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600; 
    padding-top: .3rem;
}
.h-form input[type="text"],
.h-form input[type="email"],
.h-form input[type="file"] { width: 100%; padding: 10px 12px; border: 1px solid #ddd; border-radius: 8px; }
.h-actions { display:flex; gap:8px; justify-content:flex-end; margin-top: 10px; }
.h-feedback { margin-top: 10px; font-size: .95rem; }
.h-feedback.error { color: #b00020; }
.h-feedback.ok { color: #1a7f37; }

/* Grupo de checkboxes */
.h-checkgroup { margin-top: .25rem; }
.h-check { display: flex; align-items: center; gap: .5rem; margin: .25rem 0; }
.h-check__input { inline-size: 1rem; block-size: 1rem; }
.h-check__label {
    cursor: pointer;
    font-weight: 400 !important;
    font-size: .9rem;
}
.h-invalid { color: #b00020; font-size: .875rem; margin-top: .5rem; }

@media screen and (max-width: 520px) {
    .h-modal__dialog {
        position: relative;
        max-width: 560px; 
        min-height: 100vh;
        margin: 0; 
        background: #fff;
        border-radius: 14px;
        padding: 24px;
        box-shadow: 0 20px 60px rgba(0, 0, 0, .25);
        animation: modalIn .18s ease-out;
    }
}