/* ==============================
   CUSTOM MODAL COMPONENT
   Per docs/technical/CUSTOM_MODAL_SPEC.md
   Consolidated: .modal-overlay and .wl-modal-overlay share base styles
================================ */

/* Overlay — unified (modal-overlay = ui_components, wl-modal-overlay = spec) */
.modal-overlay,
.wl-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10001;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

.modal-overlay.active,
.wl-modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* Container */
.modal-overlay .wl-modal,
.wl-modal-overlay .wl-modal {
    max-width: 440px;
    width: 90%;
    background: var(--color-bg-800);
    border: 1px solid var(--color-accent-600);
    border-radius: var(--radius-md);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
    padding: var(--space-4, 24px);
}

.modal-overlay.wl-modal-content-size .wl-modal,
.wl-modal-overlay.wl-modal-content-size .wl-modal {
    max-width: 520px;
}

/* Header */
.wl-modal-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.wl-modal-header h3 {
    margin: 0;
    font-weight: 600;
    color: var(--color-text-100);
    flex: 1;
}

.wl-modal-icon {
    font-size: 1.25rem;
    width: 1.5em;
    text-align: center;
}

.wl-modal-icon.success { color: var(--color-success); }
.wl-modal-icon.error { color: var(--color-danger-text); }
.wl-modal-icon.warning { color: var(--color-warning); }
.wl-modal-icon.info { color: var(--color-info); }

.wl-modal-close {
    background: none;
    border: none;
    color: var(--color-text-300);
    font-size: 1.5rem;
    cursor: pointer;
    padding: 0 4px;
    line-height: 1;
}

.wl-modal-close:hover {
    color: var(--color-text-100);
}

/* Body */
.wl-modal-body {
    color: var(--color-text-300);
    line-height: 1.5;
    margin-bottom: 20px;
}

.wl-modal-body p {
    margin: 0 0 12px 0;
}

.wl-modal-body p:last-child {
    margin-bottom: 0;
}

.wl-modal-body .form-control {
    width: 100%;
    padding: 10px 12px;
    margin-top: 8px;
    border: 1px solid var(--color-accent-600);
    background: var(--color-bg-700);
    color: var(--color-text-100);
    border-radius: var(--radius-sm);
}

.wl-modal-body textarea.form-control {
    min-height: 80px;
    resize: vertical;
}

/* Footer */
.wl-modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

/* Modal content (ui_components uses .modal-content, spec uses .wl-modal) */
.modal-overlay .modal-content,
.modal-overlay .wl-modal,
.wl-modal-overlay .modal-content,
.wl-modal-overlay .wl-modal {
    max-width: 440px;
    width: 90%;
    background: var(--color-bg-800);
    border: 1px solid var(--color-accent-600);
    border-radius: var(--radius-md);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
    padding: var(--space-4, 24px);
}

.modal-overlay .modal-header {
    margin-bottom: 16px;
}

.modal-overlay .modal-header h3 {
    margin: 0;
    font-weight: 600;
    color: var(--color-text-100);
}

.modal-overlay .modal-body {
    color: var(--color-text-300);
    line-height: 1.5;
    margin-bottom: 20px;
}

.modal-overlay .modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}

/* Curriculum editor drag lists */
.curriculum-drag-list {
    list-style: none;
    padding: 0;
    margin: 0 0 0.75rem 0;
}
.curriculum-drag-item {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.5rem;
    margin-bottom: 0.5rem;
    background: rgba(0,0,0,0.2);
    border-radius: var(--radius-sm, 4px);
}
.curriculum-drag-item .drag-handle {
    cursor: grab;
    color: var(--color-gray-400);
    padding: 0.25rem;
    user-select: none;
}
.curriculum-drag-item .drag-handle:active {
    cursor: grabbing;
}
.curriculum-drag-item .curriculum-item-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.curriculum-drag-item .curriculum-item-body input,
.curriculum-drag-item .curriculum-item-body textarea {
    width: 100%;
}
