
        /* Registration form styling */
        .registration-container {
            min-height: calc(100vh - 80px);
            background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
            font-family: 'Poppins', sans-serif;
            padding: 2rem 1rem;
        }

        .registration-wrapper {
            max-width: 900px;
            margin: 0 auto;
        }

        .registration-card {
            background: white;
            border-radius: 20px;
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
            border: 1px solid #e2e8f0;
            padding: 3rem 2.5rem;
        }

        .registration-header {
            text-align: center;
            margin-bottom: 2.5rem;
            position: relative;
        }

        .user-type-badge {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            background: transparent;
            color: #1a1640;
            padding: 0.5rem 1rem;
            border-radius: 50px;
            font-size: 0.9rem;
            font-weight: 600;
            margin-bottom: 1rem;
        }

        .registration-title {
            font-size: 2rem;
            font-weight: 700;
            color: #1e293b;
            margin-bottom: 0.5rem;
            font-family: 'Inter', sans-serif;
        }

        .registration-subtitle {
            color: #64748b;
            font-size: 1rem;
            line-height: 1.5;
        }

        .form-section {
            margin-bottom: 2.5rem;
            padding: 1.5rem;
            background: #f8fafc;
            border-radius: 12px;
        }

        .form-section-title {
            font-size: 1.2rem;
            font-weight: 600;
            color: #1e293b;
            margin-bottom: 1rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .form-group {
            margin-bottom: 1.5rem;
        }

        .form-label {
            display: block;
            margin-bottom: 0.5rem;
            font-weight: 600;
            color: #374151;
            font-size: 0.9rem;
        }

        .form-control-lg {
            font-size: 0.95rem !important;
            line-height: 1.5 !important;
            border: 2px solid #e2e8f0 !important;
            border-radius: 12px !important;
            background: white !important;
            padding: 0.875rem 1rem !important;
            transition: all 0.3s ease !important;
        }

        .form-control {
            border: 2px solid #e2e8f0 !important;
            border-radius: 12px !important;
            background: white !important;
            transition: all 0.3s ease !important;
        }

        .form-control-lg:focus,
        .form-control:focus {
            outline: none !important;
            border-color: #ff6b35 !important;
            background: white !important;
            box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1) !important;
        }

        .submit-btn {
            width: 100%;
            padding: 1rem 1.5rem;
            background: #ff6b35;
            color: white !important;
            border: none;
            border-radius: 12px;
            font-size: 1.1rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s ease;
            font-family: 'Poppins', sans-serif;
            margin-top: 1rem;
        }

        .submit-btn:hover {
            background: #e55a2b;
            transform: translateY(-2px);
            box-shadow: 0 10px 25px rgba(255, 107, 53, 0.3);
        }

        .form-text {
            font-size: 0.85rem;
            color: #64748b;
            margin-top: 0.5rem;
        }

        .invalid-feedback {
            color: #dc2626;
            font-size: 0.85rem;
            margin-top: 0.25rem;
        }

        .alert {
            border-radius: 12px;
            padding: 1rem;
            margin-bottom: 1.5rem;
        }

        .alert-danger {
            background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);
            border: 1px solid #f87171;
            color: #dc2626;
        }

        @media (max-width: 768px) {
            .registration-card {
                padding: 1rem;
            }

            .registration-title {
                font-size: 1.8rem;
            }

            .form-section {
                padding: 1rem;
            }
        }

        /* Class Selection Styles */
        .classes-grid,
        #classesGrid {
            display: grid !important;
            grid-template-columns: repeat(4, 1fr) !important;
            gap: 1rem !important;
            margin-top: 1rem !important;
        }

        .class-card {
            border: 2px solid #e2e8f0;
            border-radius: 8px;
            padding: 1rem;
            cursor: pointer;
            transition: all 0.3s ease;
            background: white;
            text-align: center;
            min-height: 70px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .class-card:hover {
            border-color: #ff6b35;
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(255, 107, 53, 0.1);
        }

        .class-card.selected {
            border-color: #22c55e;
            background: #f0fdf4;
        }

        .class-title {
            font-weight: 600;
            color: #1a1640;
            margin: 0;
            font-size: 0.9rem;
        }

        @media (max-width: 768px) {
            .classes-grid,
            #classesGrid {
                grid-template-columns: repeat(2, 1fr) !important;
                gap: 0.75rem !important;
            }
            
            .class-card {
                padding: 0.75rem;
                min-height: 60px;
            }
            
            .class-title {
                font-size: 0.85rem;
            }
        }

        @media (max-width: 480px) {
            .classes-grid,
            #classesGrid {
                grid-template-columns: repeat(1, 1fr) !important;
            }
        }

        .selected-establishment,
        .selected-class {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 1rem;
            background: #f8fafc;
            border: 2px solid #22c55e;
            border-radius: 12px;
            margin-bottom: 1rem;
        }

        .establishment-info,
        .class-info {
            display: flex;
            align-items: center;
            gap: 0.75rem;
        }

        .establishment-name,
        .class-name {
            font-weight: 600;
            color: #1a1640;
        }

        .establishment-sector,
        .class-students-count {
            font-size: 0.85rem;
            color: #64748b;
        }

        /* Establishment Search Button */
        .establishment-search-btn {
            width: 100%;
            padding: 0.875rem 1.25rem;
            background: #f8fafc;
            color: #64748b !important;
            border: 2px solid #e2e8f0;
            border-radius: 12px;
            font-size: 0.95rem;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.3s ease;
            font-family: 'Poppins', sans-serif;
            display: flex;
            align-items: center;
            justify-content: center;
            text-decoration: none;
            box-shadow: none;
        }

        .establishment-search-btn:hover {
            background: #f1f5f9;
            border-color: #cbd5e1;
            color: #475569 !important;
            transform: none;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
        }

        .establishment-search-btn:active {
            transform: none;
            box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
        }

        .establishment-search-btn i {
            color: #64748b;
        }

        /* Password Toggle Styles */
        .password-input-container {
            position: relative;
            display: flex;
            align-items: center;
        }

        .password-input-container input {
            padding-right: 3rem !important;
        }

        .password-toggle-btn {
            position: absolute;
            right: 12px;
            top: 50%;
            transform: translateY(-50%);
            background: none;
            border: none;
            color: #64748b;
            cursor: pointer;
            padding: 0.5rem;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: color 0.3s ease;
            z-index: 10;
        }

        .password-toggle-btn:hover {
            color: #ff6b35;
        }

        .password-toggle-btn:focus {
            outline: none;
            color: #ff6b35;
        }

        .password-toggle-btn i {
            font-size: 1rem;
        }

        /* Custom select for sectors */
        .sectors-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 0.75rem;
            margin-top: 0.75rem;
        }

        @media (max-width: 768px) {
            .sectors-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }

        @media (max-width: 480px) {
            .sectors-grid {
                grid-template-columns: repeat(1, minmax(0, 1fr));
            }
        }

        .sector-card {
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0.85rem 1rem;
            border-radius: 10px;
            border: 2px solid #e2e8f0;
            background: #ffffff;
            cursor: pointer;
            transition: all 0.2s ease;
            text-align: center;
        }

        .sector-card:hover {
            border-color: #ff6b35;
            box-shadow: 0 4px 15px rgba(255, 107, 53, 0.12);
            transform: translateY(-1px);
        }

        /* On masque la checkbox native mais elle reste accessible */
        .sector-card .sector-checkbox {
            position: absolute;
            opacity: 0;
            pointer-events: none;
        }

        .sector-label {
            font-size: 0.9rem;
            font-weight: 600;
            color: #1a1640;
        }

        /* Style quand la case est cochée */
        .sector-card .sector-checkbox:checked + .sector-label,
        .sector-card input[type="checkbox"]:checked + .sector-label {
            color: #16a34a;
        }

        .sector-card input[type="checkbox"]:checked ~ .sector-label::before {
            /* si tu veux un petit indicateur à gauche, tu peux l'ajouter ici */
        }

        /* Variante : border et fond quand c'est sélectionné */
        .sector-card input[type="checkbox"]:checked ~ .sector-label,
        .sector-card input[type="checkbox"]:checked ~ .sector-label + * {
            /* rien ici, on gère sur le parent via :has ci-dessous si supporté */
        }

        /* Si ton navigateur cible supporte :has, tu peux faire ça pour la carte entière */
        .sector-card:has(input[type="checkbox"]:checked) {
            border-color: #22c55e;
            background: #f0fdf4;
        }
        
    