/* === MODAL === */
.modal-overlay {
    position:fixed;
    top:0;
    left:0;
    right:0;
    bottom:0;
    background:rgba(0,0,0,0.5);
    z-index:10000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:20px;
}

.modal-overlay.active {
    display:flex;
}

.modal-card {
    background:white;
    border-radius:var(--radius-lg);
    width:100%;
    max-width:400px;
    box-shadow:var(--shadow-lg);
    animation:modalSlideUp 0.3s ease;
}

@keyframes modalSlideUp {
    from {
        transform:translateY(50px);
        opacity:0;
    }
    to {
        transform:translateY(0);
        opacity:1;
    }
}

.modal-header {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:20px 24px;
    border-bottom:1px solid var(--border-light);
}

.modal-header h3 {
    font-size:1.1rem;
    font-weight:700;
    color:var(--miare-purple);
}

.modal-close {
    background:none;
    border:none;
    color:var(--text-tertiary);
    cursor:pointer;
    padding:4px;
    border-radius:8px;
    transition:all 0.2s;
    display:flex;
    align-items:center;
    justify-content:center;
}

.modal-close:hover {
    background:var(--bg-hover);
    color:var(--text-primary);
}

.modal-body {
    padding:24px;
}

.modal-footer {
    display:flex;
    gap:12px;
    padding:16px 24px;
    border-top:1px solid var(--border-light);
}

.modal-btn-cancel,
.modal-btn-submit {
    flex:1;
    padding:12px 20px;
    border-radius:var(--radius-sm);
    font-family:inherit;
    font-size:0.9rem;
    font-weight:600;
    cursor:pointer;
    transition:all 0.2s;
    border:none;
}

.modal-btn-cancel {
    background:white;
    border:2px solid var(--border-light);
    color:var(--text-secondary);
}

.modal-btn-cancel:hover {
    border-color:var(--text-secondary);
    color:var(--text-primary);
}

.modal-btn-submit {
    background:var(--miare-purple);
    color:white;
    box-shadow:0 2px 8px rgba(112,31,131,0.3);
}

.modal-btn-submit:hover {
    background:#5a186a;
    transform:translateY(-1px);
    box-shadow:0 4px 12px rgba(112,31,131,0.4);
}

.modal-btn-submit:active {
    transform:translateY(0);
}

.password-error {
    background:#fef2f2;
    border:1px solid #fecaca;
    color:#dc2626;
    padding:12px 16px;
    border-radius:var(--radius-sm);
    font-size:0.85rem;
    margin-top:12px;
    display:none;
}

.password-error.show {
    display:block;
}
