/* Quick CSS to make it look decent immediately - Move to your stylesheet later */
    .table-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 100%)); gap: 20px; margin-top: 20px; }
    .dashicons { font-size: 18px; width: 18px; height: 18px; }
    table > thead > tr {
        background-color: #f2f2f2;
        text-align: center;
    }

    .dataTables_filter{
        margin-bottom:1rem;
    }
    
    .tooltip_wrap {
        position: relative;            
    }
    .tooltip_wrap .tooltip_content {
        display: none;
        position: absolute;
        bottom: 5%;
        left: 5%;
        right: 5%;
        background-color: #ddd;
        color: black;
        padding: 1em;
        min-width: 20rem;
    }
    .tooltip_wrap:hover {
        cursor: pointer;
    }
    .tooltip_wrap:hover .tooltip_content {
        display: block;
    }

    /* State: Participating (Hollow Blue) */
    .pill{
        display:block;
        border: 1x solid black;
        padding: 2px 6px;
        margin: 2px auto;
    }
    .pill.participating {
        border-color: #007bff;
        color: #007bff;
        background: transparent;
    }

    /* State: Certified (Solid Green) */
    .pill.certified {
        border-color: #198754;
        background-color: #198754;
        color: white;
    }
    .pill.outdated {
        border-color: #874519ff;
        background-color: #874519ff;
        color: orange;
    }

    /* State: Not Participating (Hidden or Faded) */
    .pill.inactive {   
        display:none; /* Or use opacity: 0.2; display: inline-block; */    
    }


    /* --- OPTION 2: THE DOT MATRIX --- */
    .dot-container {
        display: flex;
        gap: 6px;
        align-items: center;
    }

    .dot {
        width: 12px;
        height: 12px;
        border-radius: 50%;
        background-color: #e0e0e0; /* Default Grey */
        position: relative;
        cursor: help;
    }

    /* Tooltip Logic (CSS Only) */
    .dot:hover::after {
        content: attr(data-tooltip);
        position: absolute;
        bottom: 120%;
        left: 50%;
        transform: translateX(-50%);
        background: #333;
        color: white;
        padding: 4px 8px;
        border-radius: 4px;
        font-size: 10px;
        white-space: nowrap;
        z-index: 10;
    }

    /* State: Participating (Blue Dot) */
    .dot.participating {
        background-color: #DB9B4A;
        box-shadow: 0 0 0 2px #FDC57D; /* Double ring effect */
    }

    .dot.outdated {
        background-color: #db4a4a;        
    }

    /* State: Certified (Green Dot with Checkmark logic) */
    .dot.certified {
        background-color: #198754;
        box-shadow: 0 0 0 2px #c3e6cb; /* Double ring effect */
    }
    
    /* Optional: Add a visual indicator inside the certified dot */
    .dot.certified::before {
        content: "✓";
        color: white;
        font-size: 8px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    
    /**
    * HEADER AND BUTTON STYLES
    */
    .studen-table-header, .archive-table-header{
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 24px;
    }
    .btn-add-user, .archive-table-header .btn-new {
        color: white;
        border: none;
        padding: 10px 18px;
        border-radius: 6px;
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 14px;
        font-weight: 500;
        transition: all 0.3s ease;
        box-shadow: 0 2px 5px rgba(102, 126, 234, 0.3);
        background-color: var(--ast-global-color-0);
    }

    .btn-add-user:hover, .archive-table-header .btn-new:hover {
        color: white;
        transform: translateY(-2px);
        box-shadow: 0 4px 8px rgba(102, 126, 234, 0.4);
        background-color: var(--ast-global-color-1);
        border-color: var(--ast-global-color-1);
    }

    /* Modal Styles */
    .modal-overlay {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.7);
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 9999;
        backdrop-filter: blur(3px);
    }

    .modal-content {
        background: white;
        width: 90%;
        max-width: 700px;
        max-height: 90vh;
        overflow-y: auto;
        border-radius: 12px;
        box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
        animation: fade 0.3s ease-out;
    }

    .modal-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 25px;
        border-bottom: 2px solid #f0f0f0;
        background: #f8f9fa;
        border-radius: 12px 12px 0 0;
    }

    .modal-header h3 {
        margin: 0;
        font-size: 1.4em;
        font-weight: 600;
        color: #2c3e50;
    }

    .modal-close {
        font-size: 30px;
        cursor: pointer;
        color: #6c757d !important;
        transition: all 0.3s ease;
        line-height: 1;
    }

    .modal-close:hover {
        color: #495057 !important;
    }

    .modal-body {
        padding: 25px;
    }

    .form-group {
        margin-bottom: 20px;
    }

    .form-group label {
        display: block;
        margin-bottom: 8px;
        font-weight: 600;
        color: #2c3e50;
        font-size: 14px;
    }

    .form-group-required{
        content: ' *';
        color: #ff6b6b;
    }

    .form-group label[for="org_address_2"]:after,
    .form-group label[for="password_confirm"]:after {
        content: '';
    }

    .form-group input {
        width: 100%;
        padding: 12px 15px;
        border: 2px solid #e9ecef;
        border-radius: 6px;
        font-size: 14px;
        transition: all 0.3s ease;
        background: #fff;
    }

    .form-group input:focus {
        outline: none;
        border-color: #667eea;
        box-shadow: 0 4px 8px rgba(102, 126, 234, 0.1);
        background: white;
    }

    .form-group input.error {
        border-color: #ff6b6b;
        background: #fff5f5;
    }

    .error-message {
        color: #ff6b6b;
        font-size: 12px;
        margin-top: 5px;
        font-weight: 500;
        display: none;
    }

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

    .form-row {
        display: flex;
        gap: 20px;
    }

    .form-row .form-group {
        flex: 1;
    }

    .modal-footer {
        display: flex;
        justify-content: flex-end;
        gap: 15px;
        padding-top: 25px;
        border-top: 2px solid #f0f0f0;
        margin-top: 25px;
    }

    .btn-cancel,
    .btn-save {
        padding: 12px 24px;
        border: none;
        border-radius: 6px;
        cursor: pointer;
        font-size: 14px;
        font-weight: 500;
        transition: all 0.3s ease;
    }

    .btn-cancel {
        background: linear-gradient(135deg, #6c757d 0%, #5a6268 100%);
        color: white;
    }

    .btn-save {
        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        color: white;
    }

    .btn-save-user {
        color: white;
    }

    .btn-cancel:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 8px rgba(108, 117, 125, 0.3);
    }

    .btn-save:hover,
    .btn-save-user:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 8px rgba(102, 126, 234, 0.3);
    }

    .select2-container .select2-selection--single{
        height: 32px;
    }
    