            /* Overlay covers the entire plugin content area including fixed tabs */
            .abj404-setup-overlay {
                position: fixed;
                top: var(--admin-bar-height, 32px);
                left: 160px; /* WordPress admin menu width */
                right: 0;
                bottom: 0;
                background: rgba(255, 255, 255, 0.85);
                z-index: 200;
                display: flex;
                align-items: flex-start;
                justify-content: center;
                padding-top: 50px;
            }

            /* Adjust for folded menu */
            @media screen and (max-width: 960px) {
                .abj404-setup-overlay {
                    left: 36px;
                }
            }

            /* Adjust for mobile */
            @media screen and (max-width: 782px) {
                .abj404-setup-overlay {
                    left: 0;
                    top: 46px; /* Mobile admin bar height */
                }
            }

            .abj404-setup-modal {
                background: #fff;
                border-radius: 8px;
                box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
                max-width: 500px;
                width: 95%;
                max-height: calc(100vh - 150px);
                overflow-y: auto;
                position: relative;
                border: 1px solid #c3c4c7;
            }

            .abj404-setup-header {
                background: #2271b1;
                color: #fff;
                padding: 16px 20px;
                border-radius: 8px 8px 0 0;
                display: flex;
                justify-content: space-between;
                align-items: center;
            }

            .abj404-setup-header h2 {
                margin: 0;
                font-size: 18px;
                font-weight: 600;
                color: #fff;
            }

            .abj404-setup-close {
                background: rgba(255, 255, 255, 0.1);
                border: 1px solid rgba(255, 255, 255, 0.3);
                border-radius: 4px;
                color: #fff;
                font-size: 20px;
                cursor: pointer;
                padding: 2px 8px;
                line-height: 1;
                opacity: 0.9;
            }

            .abj404-setup-close:hover {
                opacity: 1;
                background: rgba(255, 255, 255, 0.2);
            }

            .abj404-setup-close:focus {
                outline: 2px solid rgba(255, 255, 255, 0.5);
                outline-offset: 1px;
            }

            .abj404-setup-content {
                padding: 16px 24px 10px 24px;
            }

            .abj404-setup-intro {
                margin-bottom: 24px;
                color: #50575e;
                font-size: 14px;
                line-height: 1.5;
            }

            .abj404-setup-question {
                margin-bottom: 24px;
            }

            .abj404-setup-question h3 {
                margin: 0 0 12px 0;
                font-size: 14px;
                font-weight: 600;
                color: #1d2327;
            }

            .abj404-setup-options {
                display: flex;
                flex-direction: column;
                gap: 8px;
            }

            .abj404-setup-option {
                display: flex;
                align-items: flex-start;
                padding: 10px 12px;
                background: #f6f7f7;
                border-radius: 4px;
                cursor: pointer;
                transition: background 0.2s;
            }

            .abj404-setup-option:hover {
                background: #eef0f0;
            }

            .abj404-setup-option:has(input:checked) {
                background: #e6f2ff;
                border: 1px solid #2271b1;
                margin: -1px;
            }

            .abj404-setup-option:focus-within {
                outline: 2px solid #2271b1;
                outline-offset: 1px;
            }

            .abj404-setup-option input[type="radio"] {
                margin: 2px 10px 0 0;
                flex-shrink: 0;
                accent-color: #2271b1;
            }

            .abj404-setup-option input[type="radio"],
            .abj404-setup-option input[type="radio"]:focus,
            .abj404-setup-option input[type="radio"]:checked,
            .abj404-setup-option input[type="radio"]:checked:focus {
                outline: none !important;
                box-shadow: none !important;
                border-color: #2271b1 !important;
            }

            .abj404-setup-option-text {
                flex: 1;
            }

            .abj404-setup-option-label {
                display: block;
                font-weight: 500;
                color: #1d2327;
                margin-bottom: 2px;
            }

            .abj404-setup-option-desc {
                display: block;
                font-size: 12px;
                color: #646970;
            }

            .abj404-setup-footer {
                padding: 16px 24px;
                background: #f6f7f7;
                border-radius: 0 0 8px 8px;
                display: flex;
                justify-content: space-between;
                align-items: center;
                gap: 12px;
            }

            .abj404-setup-footer .button {
                padding: 6px 16px;
            }

            .abj404-setup-skip {
                background: #f6f7f7;
                border: 1px solid #c3c4c7;
                border-radius: 3px;
                color: #50575e;
                padding: 6px 16px;
                font-size: 13px;
                cursor: pointer;
                text-decoration: none;
                line-height: 1.5;
            }

            .abj404-setup-skip:hover {
                background: #f0f0f1;
                border-color: #8c8f94;
                color: #1d2327;
            }

            .abj404-setup-skip:focus {
                outline: 2px solid #2271b1;
                outline-offset: 1px;
            }

            .abj404-setup-primary {
                background: #2271b1 !important;
                border-color: #2271b1 !important;
                color: #fff !important;
            }

            .abj404-setup-primary:hover {
                background: #135e96 !important;
                border-color: #135e96 !important;
            }

            /* Loading overlay */
            .abj404-setup-loading {
                position: absolute;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                background: rgba(255, 255, 255, 0.9);
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                gap: 12px;
                border-radius: 8px;
                z-index: 10;
            }

            /* Toast notification for AJAX errors */
            .abj404-toast {
                position: fixed;
                bottom: 20px;
                right: 20px;
                background: #d63638;
                color: #fff;
                padding: 12px 16px;
                border-radius: 4px;
                box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
                z-index: 9999;
                max-width: 350px;
                font-size: 13px;
                line-height: 1.4;
                animation: abj404-toast-slide 0.3s ease-out;
            }

            @keyframes abj404-toast-slide {
                from {
                    opacity: 0;
                    transform: translateY(20px);
                }
                to {
                    opacity: 1;
                    transform: translateY(0);
                }
            }

            .abj404-toast-close {
                background: none;
                border: none;
                color: #fff;
                font-size: 16px;
                cursor: pointer;
                float: right;
                margin: -4px -4px 0 8px;
                padding: 0 4px;
                opacity: 0.8;
            }

            .abj404-toast-close:hover {
                opacity: 1;
            }

            body.abj404-dark-mode .abj404-toast {
                background: #dc3545;
            }

            .abj404-setup-loading span {
                color: #1d2327;
                font-size: 14px;
            }

            .abj404-setup-spinner {
                width: 24px;
                height: 24px;
                border: 3px solid #c3c4c7;
                border-top-color: #2271b1;
                border-radius: 50%;
                animation: abj404-setup-spin 0.8s linear infinite;
            }

            @keyframes abj404-setup-spin {
                to { transform: rotate(360deg); }
            }

            /* Dark mode support */
            body.abj404-dark-mode .abj404-setup-overlay {
                background: rgba(0, 0, 0, 0.75);
            }

            body.abj404-dark-mode .abj404-setup-modal {
                background: #1e1e1e;
                border-color: #3d3d3d;
            }

            body.abj404-dark-mode .abj404-setup-content {
                color: #e0e0e0;
            }

            body.abj404-dark-mode .abj404-setup-intro {
                color: #b0b0b0;
            }

            body.abj404-dark-mode .abj404-setup-question h3 {
                color: #e0e0e0;
            }

            body.abj404-dark-mode .abj404-setup-option {
                background: #2d2d2d;
            }

            body.abj404-dark-mode .abj404-setup-option:hover {
                background: #3d3d3d;
            }

            body.abj404-dark-mode .abj404-setup-option:has(input:checked) {
                background: #1a3a5c;
                border-color: #5aa2ff;
            }

            body.abj404-dark-mode .abj404-setup-option:focus-within {
                outline-color: #5aa2ff;
            }

            body.abj404-dark-mode .abj404-setup-option input[type="radio"],
            body.abj404-dark-mode .abj404-setup-option input[type="radio"]:focus,
            body.abj404-dark-mode .abj404-setup-option input[type="radio"]:checked,
            body.abj404-dark-mode .abj404-setup-option input[type="radio"]:checked:focus {
                accent-color: #5aa2ff;
                border-color: #5aa2ff !important;
            }

            body.abj404-dark-mode .abj404-setup-option-label {
                color: #e0e0e0;
            }

            body.abj404-dark-mode .abj404-setup-option-desc {
                color: #a0a0a0;
            }

            body.abj404-dark-mode .abj404-setup-footer {
                background: #2d2d2d;
            }

            body.abj404-dark-mode .abj404-setup-skip {
                background: #3d3d3d;
                border-color: #505050;
                color: #b0b0b0;
            }

            body.abj404-dark-mode .abj404-setup-skip:hover {
                background: #4d4d4d;
                border-color: #606060;
                color: #e0e0e0;
            }

            body.abj404-dark-mode .abj404-setup-loading {
                background: rgba(30, 30, 30, 0.9);
            }

            body.abj404-dark-mode .abj404-setup-loading span {
                color: #e0e0e0;
            }

            body.abj404-dark-mode .abj404-setup-spinner {
                border-color: #505050;
                border-top-color: #5aa2ff;
            }
        
