            /* 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: var(--abj404-wizard-overlay-bg);
                z-index: 200;
                display: flex;
                align-items: center;
                justify-content: center;
                padding: 16px;
                box-sizing: border-box;
            }

            /* 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 */
                }
            }

            /* Same shape as the block editor's modal (components-modal): white,
               thin border, small radius, header and footer separated by hairlines. */
            .abj404-setup-modal {
                background: var(--abj404-wizard-modal-bg);
                border: 1px solid var(--abj404-wizard-modal-border);
                border-radius: 2px;
                box-shadow: var(--abj404-wizard-modal-shadow);
                box-sizing: border-box;
                color: var(--abj404-wizard-content-text);
                display: flex;
                flex-direction: column;
                font-size: 13px;
                max-height: 100%;
                max-width: 520px;
                position: relative;
                width: 100%;
            }

            .abj404-setup-modal:focus {
                outline: none;
            }

            /* The form is the flex column so the footer stays visible while
               only the questions scroll (small screens). */
            .abj404-setup-modal form {
                display: flex;
                flex-direction: column;
                min-height: 0;
            }

            .abj404-setup-header {
                border-bottom: 1px solid var(--abj404-wizard-modal-border);
                flex-shrink: 0;
                padding: 16px 24px;
            }

            .abj404-setup-header h2 {
                color: var(--abj404-wizard-heading-text);
                font-size: 18px;
                font-weight: 600;
                line-height: 1.4;
                margin: 0;
            }

            .abj404-setup-content {
                flex: 1 1 auto;
                min-height: 0;
                overflow-y: auto;
                padding: 16px 24px 4px 24px;
            }

            .abj404-setup-intro {
                color: var(--abj404-wizard-intro-text);
                font-size: 13px;
                line-height: 1.5;
                margin: 0 0 20px 0;
            }

            .abj404-setup-question {
                border: 0;
                margin: 0 0 20px 0;
                min-width: 0;
                padding: 0;
            }

            .abj404-setup-question legend {
                color: var(--abj404-wizard-heading-text);
                font-size: 14px;
                font-weight: 600;
                margin: 0 0 8px 0;
                padding: 0;
            }

            .abj404-setup-option {
                margin: 0 0 8px 0;
            }

            .abj404-setup-option label {
                color: var(--abj404-wizard-label-text);
                line-height: 1.6;
            }

            .abj404-setup-option .description {
                color: var(--abj404-wizard-desc-text);
                font-size: 13px;
                margin: 2px 0 0 25px;
            }

            .abj404-setup-q3-unavailable {
                margin: 0;
            }

            .abj404-setup-question:disabled legend,
            .abj404-setup-question:disabled label {
                color: var(--abj404-wizard-desc-text);
            }

            .abj404-setup-footer {
                border-top: 1px solid var(--abj404-wizard-modal-border);
                display: flex;
                flex-shrink: 0;
                gap: 8px;
                justify-content: flex-end;
                padding: 12px 24px;
            }

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

            /* Toast notification for AJAX errors */
            .abj404-toast {
                position: fixed;
                bottom: 20px;
                right: 20px;
                background: var(--abj404-wizard-toast-bg);
                color: var(--abj404-wizard-toast-text);
                padding: 12px 16px;
                border-radius: 4px;
                box-shadow: var(--abj404-wizard-toast-shadow);
                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: var(--abj404-wizard-toast-text);
                font-size: 16px;
                cursor: pointer;
                float: right;
                margin: -4px -4px 0 8px;
                padding: 0 4px;
                opacity: 0.8;
            }

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

            .abj404-setup-loading span {
                color: var(--abj404-wizard-loading-text);
                font-size: 14px;
            }

            .abj404-setup-spinner {
                width: 24px;
                height: 24px;
                border: 3px solid var(--abj404-wizard-spinner-track);
                border-top-color: var(--abj404-wizard-spinner-head);
                border-radius: 50%;
                animation: abj404-setup-spin 0.8s linear infinite;
            }

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

