/* fixed: previously had malformed tag which broke all styles */
.img-preview.size-100{
    width:80px !important;
    height:80px !important;
}
.swal2-popup .swal2-header {
    margin-bottom: 18px !important;
}
.swal2-popup{
    width: 80% !important;
}
.btn-hidden{
    visibility: hidden;
}
#std-nic-gen{
    background-color:rgba(231,231,231,0.55);
    border-radius: 6% 0% 0% 6%;
}
.readonly{
    pointer-events: none;
}

/* Stepper styles (restored / improved) */
.dm-stepper {
    display:flex;
    gap:12px;
    justify-content:center;
    align-items:center;
    margin: 8px 0 6px;
    padding: 6px;
    background: transparent;
    z-index: 2;
    flex-wrap:wrap;
}
.dm-stepper .step {
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 12px;
    border-radius:999px;
    background:#ffffff;
    color:#374151;
    border:1px solid rgba(15,23,42,0.06);
    box-shadow:0 2px 6px rgba(16,24,40,0.04);
    cursor:pointer;
    transition:all .15s ease;
    font-weight:600;
}
.dm-stepper .step .num {
    width:30px;height:30px;border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;
    background:#e6eef5;color:#0ea5a0;font-weight:700;
    border:1px solid rgba(14,165,160,0.08);
    font-size:13px;
}
.dm-stepper .step .label {
    display:inline-block;
    font-size:14px;
    color : black;
    white-space:nowrap;
}
.dm-stepper .step.active {
    background:#f08400;
    color:#ffffff;
    transform:translateY(-3px);
    box-shadow:0 10px 30px rgba(6,182,212,0.12);
}
.dm-stepper .step.active .num {
    background:rgba(255,255,255,0.16);
    color:#fff;
    border-color: rgba(255,255,255,0.12);
}
.dm-stepper .step.active .label {
    background:rgba(255,255,255,0.16);
    color:#fff;
    border-color: rgba(255,255,255,0.12);
}

.dm-steps-progress {
    position:relative;
    height:6px;
    background:#f1f5f9;
    border-radius:6px;
    margin:10px auto 20px;
    max-width:900px;
    width:100%;
    overflow:hidden;
}
.dm-steps-progress > i {
    display:block;
    height:100%;
    background:linear-gradient(90deg,#06b6d4,#0ea5a0);
    width:0%;
    transition:width .35s ease;
}

/* step pane animations */
.step-pane { display:none; opacity:0; transform:translateY(6px); transition:all .25s ease; }
.step-pane.active { display:block; opacity:1; transform:translateY(0); }

/* keep cards gentle */
.card { border-radius:10px; box-shadow:0 6px 20px rgba(7, 22, 48, 0.04); }

/* Footer step buttons */
.step-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:18px; }
.step-actions .btn { min-width:120px; }

@media (max-width:768px){
    .dm-stepper { gap:8px; padding:6px; }
    .dm-stepper .step { padding:8px 10px; font-size:14px; }
    .dm-stepper .step .label { display:none; } /* small screens hide labels */
    .dm-steps-progress { max-width:420px; }
}

/* ===============================================
MOBILE RESPONSIVE - BOOTSTRAP GRID FIX
=============================================== */

@media (max-width: 992px) {

    .col-md-1,
    .col-md-2,
    .col-md-3,
    .col-md-4,
    .col-md-5,
    .col-md-6,
    .col-md-12,
    .col-18 {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
        padding: 10px !important;
        margin-bottom: 10px !important;
    }
}

@media (max-width: 768px) {

    * {
        box-sizing: border-box;
    }

    html, body {
        width: 100%;
        overflow-x: hidden;
    }

    .container-fluid {
        padding-left: 8px !important;
        padding-right: 8px !important;
        overflow-x: hidden;
    }

    .row {
        margin-left: -8px !important;
        margin-right: -8px !important;
    }

    [class*='col-'] {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
        padding: 8px !important;
    }

    .col-md-3,
    .col-md-4,
    .col-md-6 {
        width: 100% !important;
    }

    .form-group {
        margin-bottom: 15px;
        width: 100%;
    }

    .form-label {
        font-size: 13px;
        font-weight: 500;
        margin-bottom: 8px;
        display: block;
        color: #333;
    }

    .form-control,
    .form-select,
    input[type="text"],
    input[type="email"],
    input[type="number"],
    input[type="phone"],
    input[type="password"],
    textarea,
    select {
        width: 100% !important;
        padding: 12px 10px !important;
        font-size: 16px !important;
        border: 1px solid #ddd;
        border-radius: 4px;
        display: block;
        margin: 0 !important;
    }

    textarea {
        resize: vertical;
        min-height: 100px;
    }

    .select2-container {
        width: 100% !important;
    }

    .select2-container .select2-selection--single {
        height: auto !important;
        min-height: 40px;
        border: 1px solid #ddd;
        border-radius: 4px;
    }

    .select2-container--open .select2-dropdown {
        position: fixed !important;
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%) !important;
        width: 90vw !important;
        max-width: 500px !important;
        z-index: 9999 !important;
        max-height: 300px;
        overflow-y: auto;
    }

    .select2-results__option {
        padding: 10px !important;
        font-size: 14px;
    }

    .input-group {
        display: flex !important;
        flex-wrap: wrap;
        width: 100%;
    }

    .input-group-prepend,
    .input-group-append {
        width: 100%;
        margin-bottom: 5px;
    }

    .input-group > .form-control {
        width: 100% !important;
    }

    .card {
        margin-bottom: 15px;
        border: 1px solid #e0e0e0;
        border-radius: 4px;
    }

    .card-body {
        padding: 15px !important;
    }

    .card-title {
        font-size: 16px !important;
        margin-bottom: 15px;
        font-weight: 600;
    }

    .accordion-button {
        font-size: 14px;
        padding: 12px;
        text-align: left;
    }

    .accordion-button span {
        font-size: 15px !important;
    }

    .btn {
        width: 100% !important;
        padding: 12px 10px !important;
        font-size: 14px;
        margin-bottom: 10px;
        border-radius: 4px;
        display: block;
        text-align: center;
    }

    .btn i {
        margin-right: 5px;
    }

    .btn-group {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    .btn-group .btn {
        width: 100% !important;
        margin-bottom: 8px;
    }

    .clone-rows {
        display: flex;
        flex-direction: column;
        gap: 10px;
        padding: 15px;
        border: 1px solid #e0e0e0;
        border-radius: 4px;
        margin-bottom: 15px;
    }

    .clone-rows [class*='col-'] {
        width: 100% !important;
        margin-bottom: 10px;
    }

    .clone-rows .col-md-1 {
        width: 100% !important;
    }

    .education_fields {
        padding: 15px;
        border: 1px solid #e0e0e0;
        border-radius: 4px;
        margin-bottom: 15px;
    }

    .education_fields .col-md-12 {
        width: 100% !important;
        margin-bottom: 10px;
    }

    .education_fields h5 {
        font-size: 18px !important;
        margin: 15px 0 10px 0 !important;
    }

    .attachment_fields {
        margin-bottom: 15px;
        border: 1px solid #e0e0e0;
        border-radius: 4px;
        padding: 10px;
    }

    .attachment_fields .row {
        display: flex;
        flex-direction: column;
    }

    .attachment_fields [class*='col-'] {
        width: 100% !important;
        margin-bottom: 10px;
    }

    .photoviewer {
        width: 100%;
        text-align: center;
    }

    .photoviewer img {
        max-width: 100%;
        height: auto;
    }

    .img-preview.size-100 {
        width: 60px !important;
        height: 60px !important;
        display: inline-block;
        margin: 5px;
    }

    .text-danger,
    small.text-danger {
        font-size: 12px;
        display: block;
        margin-top: 5px;
        color: #dc3545;
    }

    .modal-dialog {
        width: 95vw !important;
        max-width: 100%;
        margin: 10px auto;
    }

    .modal-content {
        border-radius: 8px;
    }

    .modal-header {
        padding: 15px !important;
    }

    .modal-body {
        padding: 15px !important;
        max-height: 70vh;
        overflow-y: auto;
    }

    .modal-footer {
        display: flex;
        flex-wrap: wrap;
        gap: 5px;
        padding: 15px !important;
    }

    .modal-footer .btn {
        width: calc(50% - 2.5px) !important;
        margin: 5px 0 !important;
    }

    .form-check {
        padding-left: 30px;
        margin-bottom: 15px;
    }

    .form-check-input {
        width: 20px;
        height: 20px;
        cursor: pointer;
        margin-left: -30px;
    }

    .form-check-label {
        cursor: pointer;
        margin-left: 10px;
    }

    h3 {
        font-size: 18px !important;
    }

    h4 {
        font-size: 16px !important;
    }

    h5 {
        font-size: 15px !important;
    }

    p {
        font-size: 14px;
    }

    .p-t-20 {
        padding-top: 10px !important;
    }

    .m-2 {
        margin: 10px !important;
    }

    .mt-1,
    .mt-2,
    .mt-3 {
        margin-top: 8px !important;
    }

    .border {
        border: 1px solid #e0e0e0 !important;
        border-radius: 4px;
        padding: 10px;
    }

    hr {
        margin: 15px 0 !important;
    }

    .text-center {
        text-align: center;
    }

    [style*="float:right"],
    [style*="float: right"] {
        float: none !important;
        width: 100% !important;
    }
}

@media (max-width: 480px) {

    body {
        padding: 8px;
    }

    .container-fluid {
        padding: 8px !important;
    }

    .form-label {
        font-size: 12px;
    }

    .form-control,
    .form-select,
    input,
    textarea {
        font-size: 15px !important;
        padding: 10px !important;
    }

    .card-body {
        padding: 10px !important;
    }

    .btn {
        padding: 10px !important;
        font-size: 13px;
    }

    .modal-footer .btn {
        width: 100% !important;
        margin: 5px 0 !important;
    }
}

/* Stepper / modern multi-step form styles */
.dm-stepper {
    display:flex;
    gap:12px;
    justify-content:center;
    align-items:center;
    margin-bottom:18px;
    flex-wrap:wrap;
}
.dm-stepper .step {
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 14px;
    border-radius:12px;
    background:#f4f6fb;
    color:#6b7280;
    box-shadow:0 2px 6px rgba(16,24,40,0.03);
    cursor:pointer;
    transition:all .18s ease;
}
/*.dm-stepper .step.active {*/
/*    background:linear-gradient(90deg,#0ea5a0,#06b6d4);*/
/*    color:#fff;*/
/*    transform:translateY(-2px);*/
/*    box-shadow:0 8px 20px rgba(14,165,160,0.18);*/
/*}*/
.dm-stepper .step .num {
    width:32px;height:32px;border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,0.12);
    font-weight:700;
}
.dm-steps-progress {
    height:6px;background:#e6eef5;border-radius:4px;margin:10px auto 20px;max-width:720px;
    overflow:hidden;
}
.dm-steps-progress > i {
    display:block;height:100%;background:#004274;width:0%;
    transition:width .35s ease;
}

.swal2-popup{
    width: 569px !important;
}

/* step pane animations */
.step-pane { display:none; opacity:0; transform:translateY(6px); transition:all .25s ease; }
.step-pane.active { display:block; opacity:1; transform:translateY(0); }

/* modern card slight change */
.card { border-radius:12px; box-shadow:0 6px 24px rgba(7, 22, 48, 0.06); }

/* Footer step buttons */
.step-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:18px; }
.step-actions .btn { min-width:120px; }

@media (max-width:768px){
    .dm-stepper { gap:8px; }
    .dm-stepper .step { padding:8px 10px; font-size:14px; }
    .dm-stepper .step .label { display:none; }
}
.select2-container {  width: 100% !important; }

/* Review */
.review-scroll-container {
    max-height: 80vh !important;
    overflow-y: auto !important;
    padding-right: 10px !important;
}

.review-scroll-container::-webkit-scrollbar {
    width: 8px;
}

.review-scroll-container::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

.review-scroll-container::-webkit-scrollbar-thumb {
    background: #004274;
    border-radius: 10px;
}

.review-scroll-container::-webkit-scrollbar-thumb:hover {
    background: #004274;
}

.review-section {
    background: white;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    transition: all 0.3s ease;
}

.review-section:hover {
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.review-header {
    border-bottom: 2px solid #f5f5f5;
    padding-bottom: 15px;
    margin-bottom: 15px;
}

.review-header h5 {
    margin: 0;
    color: #333;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 17px;
    font-weight: 600;
}

.review-header h5 i {
    margin-right: 8px;
    color: #004274;
}

.review-content p {
    margin: 10px 0;
    font-size: 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.review-content strong {
    color: #555;
    min-width: 150px;
}

.review-content span {
    color: #333;
    font-weight: 500;
}

/* New styling for review fields */
.review-field {
    margin-bottom: 15px;
    padding-bottom: 12px;
    border-bottom: 1px solid #f0f0f0;
}

.review-field label {
    display: block;
    font-weight: 700;
    color: #555;
    margin-bottom: 6px;
    font-size: 15px;
}

.review-value {
    display: block;
    color: #333;
    font-weight: 500;
    font-size: 15px;
    padding: 6px 0;
}

.badge-status {
    display: inline-block;
    padding: 7px 14px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    background-color: #e8f4f1 !important;
    color: #0ea5a0 !important;
}

.badge-year {
    display: inline-block;
    padding: 7px 14px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    background-color: #e3f2fd !important;
    color: #1976d2 !important;
}

.badge {
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 600;
}

.review-programs-list,
.review-education-list,
.review-attachments-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 15px;
}

.program-card,
.education-card,
.attachment-card {
    background: #f9f9f9;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 15px;
    border-left: 4px solid #004274;
}

.program-card h6,
.education-card h6,
.attachment-card h6 {
    margin-top: 0;
    color: #004274;
    font-weight: 600;
    font-size: 16px;
    margin-bottom: 10px;
}

.program-card p,
.education-card p,
.attachment-card p {
    margin: 8px 0;
    font-size: 14px;
    color: #666;
    display: flex;
    gap: 8px;
}

.education-card label,
.program-card label,
.attachment-card label {
    font-weight: 700;
    color: #555;
    min-width: 100px;
    flex-shrink: 0;
    font-size: 14px;
}

.education-card span,
.program-card span,
.attachment-card span {
    color: #333;
    font-weight: 500;
    font-size: 14px;
}

.attachment-preview {
    max-width: 120px;
    max-height: 120px;
    border-radius: 4px;
    margin-top: 10px;
    border: 1px solid #ddd;
}

hr {
    border: none;
    border-top: 1px solid #e0e0e0;
    margin: 15px 0;
}

@media (max-width: 768px) {
    .review-section {
        padding: 15px;
    }

    .review-programs-list,
    .review-education-list,
    .review-attachments-list {
        grid-template-columns: 1fr;
    }

    .review-content {
        font-size: 12px;
    }

    .review-content strong {
        min-width: auto;
        display: block;
        margin-bottom: 5px;
    }
}
