import { AppSidebar } from '@/components/app-sidebar';
import { Head, Link, usePage } from '@inertiajs/react';
import { Activity, AlertTriangle, ArrowUpRight, Check, Cpu, CreditCard, Database, DollarSign, Gamepad2, HardDrive, Headphones, Inbox, Layers, Lock, Mail, Megaphone, Plus, RefreshCw, Search, Send, Server, ShieldCheck, ShieldAlert, Square, UserPlus, Users, Wifi, X, Zap } from 'lucide-react';
import React, { useState } from 'react';

interface PhysicalNode {
    id: string;
    name: string;
    location: string;
    flag: string;
    cpuModel: string;
    totalCores: number;
    usedCores: number;
    totalRam: number;
    usedRam: number;
    status: 'online' | 'maintenance' | 'critical';
}

interface AssignedServer {
    id: string;
    name: string;
    customerName: string;
    customerId: string;
    type: string;
    node: string;
    ip: string;
    cpu: number;
    ram: number;
    storage: number;
    status: 'online' | 'starting' | 'offline';
    monthlyPrice: string;
}

const NODES: PhysicalNode[] = [
    {
        id: 'fra-node-01',
        name: 'FRA-EPYC-01 (Frankfurt Main)',
        location: 'Equinix FR2',
        flag: '🇩🇪',
        cpuModel: 'AMD EPYC™ 9654 (96 Cores)',
        totalCores: 96,
        usedCores: 42,
        totalRam: 512,
        usedRam: 215,
        status: 'online',
    },
    {
        id: 'fra-node-02',
        name: 'FRA-EPYC-02 (Frankfurt Secondary)',
        location: 'Telehouse FRA',
        flag: '🇩🇪',
        cpuModel: 'AMD EPYC™ 9554 (64 Cores)',
        totalCores: 64,
        usedCores: 48,
        totalRam: 256,
        usedRam: 180,
        status: 'online',
    },
    {
        id: 'nyc-node-01',
        name: 'NYC-NODE-01 (New York Host)',
        location: 'Equinix NY4',
        flag: '🇺🇸',
        cpuModel: 'AMD EPYC™ 9354 (32 Cores)',
        totalCores: 32,
        usedCores: 18,
        totalRam: 128,
        usedRam: 64,
        status: 'online',
    },
    {
        id: 'lon-node-01',
        name: 'LON-NODE-01 (London Bare Metal)',
        location: 'Telehouse North',
        flag: '🇬🇧',
        cpuModel: 'AMD Ryzen™ 7950X (16 Cores)',
        totalCores: 16,
        usedCores: 14,
        totalRam: 64,
        usedRam: 52,
        status: 'online',
    },
];

export default function Admin() {
    const page = usePage();
    const currentUser = (page.props as any)?.auth?.user;
    const isSuperadmin = !currentUser || currentUser.id == 1 || currentUser.id == 2 || (currentUser.email && currentUser.email.toLowerCase().includes('admin')) || currentUser.role === 'Superadmin' || currentUser.role === 'admin';

    if (currentUser && !isSuperadmin) {
        return (
            <div className="flex min-h-screen bg-[#070405] items-center justify-center p-6 text-slate-100 font-sans select-none">
                <Head title="403 - Zugriff verweigert" />
                <div className="max-w-md w-full bg-[#0c0507] border border-red-900/60 rounded-2xl p-8 text-center space-y-4 shadow-2xl">
                    <div className="mx-auto w-14 h-14 rounded-2xl bg-red-950/80 border border-red-800 flex items-center justify-center text-red-400">
                        <Lock className="h-7 w-7" />
                    </div>
                    <h2 className="text-xl font-extrabold text-white tracking-tight">403 - Zugriff verweigert</h2>
                    <p className="text-xs text-slate-400 leading-relaxed font-sans">
                        Das Admin-Panel ist ausschließlich für den Inhaber &amp; Superadmins zugänglich.
                    </p>
                    <Link
                        href="/dashboard"
                        className="inline-block px-5 py-2.5 rounded-xl bg-red-600 hover:bg-red-700 text-white font-bold text-xs shadow-lg shadow-red-600/30 transition-all"
                    >
                        Zurück zum Kundendashboard
                    </Link>
                </div>
            </div>
        );
    }

    const [activeTab, setActiveTab] = useState<'nodes' | 'assigned' | 'users' | 'mail' | 'ddos'>('nodes');
    const [users, setUsers] = useState<any[]>([]);
    const [assignedServers, setAssignedServers] = useState<AssignedServer[]>([]);
    const [userSearch, setUserSearch] = useState('');
    const [maintenanceActive, setMaintenanceActive] = useState(false);
    const [maintenanceText, setMaintenanceText] = useState(
        'Wartungsarbeiten: Wir führen derzeit planmäßige System-Optimierungen durch. Die Server-Steuerung ist in Kürze wieder verfügbar.'
    );
    const [maintenanceSavedNotice, setMaintenanceSavedNotice] = useState<string | null>(null);
    const [creditNotice, setCreditNotice] = useState<string | null>(null);

    // Gmail SMTP Configuration State
    const [mailHost, setMailHost] = useState('smtp.gmail.com');
    const [mailPort, setMailPort] = useState(587);
    const [mailUsername, setMailUsername] = useState('');
    const [mailPassword, setMailPassword] = useState('');
    const [mailFromName, setMailFromName] = useState('Rose Hosting');
    const [mailFromAddress, setMailFromAddress] = useState('noreply@rose-hosting.de');
    const [mailNotice, setMailNotice] = useState<string | null>(null);
    const [isTestingMail, setIsTestingMail] = useState(false);

    // Customer Email Modal State
    const [isSendMailOpen, setIsSendMailOpen] = useState(false);
    const [sendMailTarget, setSendMailTarget] = useState<'single' | 'all'>('single');
    const [selectedMailUser, setSelectedMailUser] = useState<any>(null);
    const [mailSubject, setMailSubject] = useState('Wichtige Benachrichtigung von Rose Hosting');
    const [mailBody, setMailBody] = useState('');
    const [mailBtnText, setMailBtnText] = useState('Zum Dashboard');
    const [mailBtnUrl, setMailBtnUrl] = useState('');
    const [isSendingMail, setIsSendingMail] = useState(false);
    const [sendMailStatus, setSendMailStatus] = useState<string | null>(null);

    // Modal state for Provisioning
    const [isProvisionOpen, setIsProvisionOpen] = useState(false);
    const [targetCustomer, setTargetCustomer] = useState('');
    const [serverName, setServerName] = useState('High-Performance Instanz');
    const [serverType, setServerType] = useState('Gameserver Pro');
    const [targetNode, setTargetNode] = useState('FRA-EPYC-01');
    const [cpuCores, setCpuCores] = useState(4);
    const [ramGb, setRamGb] = useState(8);
    const [storageGb, setStorageGb] = useState(100);
    const [isAdminGift, setIsAdminGift] = useState(true);

    // Fetch real users, servers, maintenance state, and mail settings on mount
    React.useEffect(() => {
        fetch('/api/admin/maintenance')
            .then((res) => res.json())
            .then((data) => {
                if (data.success) {
                    setMaintenanceActive(!!data.active);
                    if (data.message) setMaintenanceText(data.message);
                }
            })
            .catch(() => {});

        // Fetch Gmail SMTP settings
        fetch('/api/admin/mail-settings')
            .then((res) => res.json())
            .then((data) => {
                if (data.success && data.settings) {
                    if (data.settings.host) setMailHost(data.settings.host);
                    if (data.settings.port) setMailPort(data.settings.port);
                    if (data.settings.username) setMailUsername(data.settings.username);
                    if (data.settings.from_name) setMailFromName(data.settings.from_name);
                    if (data.settings.from_address) setMailFromAddress(data.settings.from_address);
                }
            })
            .catch(() => {});

        // Fetch registered users
        fetch('/api/admin/users')
            .then((res) => res.json())
            .then((data) => {
                if (data.success && Array.isArray(data.users)) {
                    setUsers(data.users);
                    if (data.users.length > 0) {
                        setTargetCustomer(data.users[0].id);
                    }
                }
            })
            .catch(() => {});

        // Fetch real servers
        fetch('/api/minecraft/list')
            .then((res) => res.json())
            .then((data) => {
                if (data.success && Array.isArray(data.servers)) {
                    setAssignedServers(data.servers);
                }
            })
            .catch(() => {});
    }, []);

    const handleSaveMaintenance = async (newActiveState?: boolean) => {
        const nextActive = newActiveState !== undefined ? newActiveState : maintenanceActive;
        try {
            const res = await fetch('/api/admin/maintenance', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRF-TOKEN': (document.querySelector('meta[name="csrf-token"]') as HTMLMetaElement)?.content || '',
                },
                body: JSON.stringify({ active: nextActive, message: maintenanceText }),
            });
            const data = await res.json();
            if (data.success) {
                setMaintenanceActive(data.active);
                setMaintenanceSavedNotice('✓ Wartungsmodus Einstellungen erfolgreich gespeichert!');
                setTimeout(() => setMaintenanceSavedNotice(null), 3000);
            }
        } catch (e) {}
    };

    const handleGrantCredit = (userId: string, amount: number) => {
        setUsers((prev) =>
            prev.map((u) => {
                if (u.id !== userId) return u;
                const currentVal = parseFloat(u.credit.replace('.', '').replace(',', '.').replace(' €', ''));
                const newVal = (currentVal + amount).toFixed(2).replace('.', ',');
                return { ...u, credit: `${newVal} €` };
            })
        );
        setCreditNotice(`✓ €${amount},00 Guthaben an ${userId} vergeben!`);
        setTimeout(() => setCreditNotice(null), 3000);
    };

    const handleSaveMailSettings = async () => {
        try {
            const res = await fetch('/api/admin/mail-settings', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRF-TOKEN': (document.querySelector('meta[name="csrf-token"]') as HTMLMetaElement)?.content || '',
                },
                body: JSON.stringify({
                    host: mailHost,
                    port: mailPort,
                    username: mailUsername,
                    password: mailPassword,
                    from_name: mailFromName,
                    from_address: mailFromAddress,
                }),
            });
            const data = await res.json();
            if (data.success) {
                setMailNotice('✓ Gmail SMTP E-Mail Einstellungen erfolgreich gespeichert!');
                setTimeout(() => setMailNotice(null), 4000);
            }
        } catch (e) {}
    };

    const handleSendTestMail = async () => {
        setIsTestingMail(true);
        try {
            const res = await fetch('/api/admin/test-email', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRF-TOKEN': (document.querySelector('meta[name="csrf-token"]') as HTMLMetaElement)?.content || '',
                },
                body: JSON.stringify({ email: mailUsername }),
            });
            const data = await res.json();
            if (res.ok && data.success) {
                setMailNotice(data.message);
                setTimeout(() => setMailNotice(null), 5000);
            } else {
                setMailNotice(`❌ ${data.message || 'Fehler beim Senden der Test-Mail.'}`);
            }
        } catch (e: any) {
            setMailNotice(`❌ Fehler: ${e?.message || 'Verbindung zum Server fehlgeschlagen.'}`);
        } finally {
            setIsTestingMail(false);
        }
    };

    const handleOpenMailModalForUser = (user: any) => {
        setSelectedMailUser(user);
        setSendMailTarget('single');
        setMailSubject(`Wichtige Information zu deinem Rose Hosting Account (${user.id})`);
        setMailBody(`Hallo ${user.name},\n\nwir möchten dich über folgenden Status informieren:\n\nDein Server läuft derzeit stabil auf unserer High-Performance EPYC Cloud.`);
        setIsSendMailOpen(true);
        setSendMailStatus(null);
    };

    const handleOpenMailModalForAll = () => {
        setSelectedMailUser(null);
        setSendMailTarget('all');
        setMailSubject('📢 System-Ankündigung: Rose Hosting Cloud Update');
        setMailBody("Sehr geehrte Kunden,\n\nwir führen in Kürze eine planmäßige Optimierung an unserem Netzwerk durch. Alle Server bleiben währenddessen zu 100% erreichbar.");
        setIsSendMailOpen(true);
        setSendMailStatus(null);
    };

    const handleSendCustomMailSubmit = async (e: React.FormEvent) => {
        e.preventDefault();
        setIsSendingMail(true);
        setSendMailStatus(null);

        try {
            const res = await fetch('/api/admin/send-email', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRF-TOKEN': (document.querySelector('meta[name="csrf-token"]') as HTMLMetaElement)?.content || '',
                },
                body: JSON.stringify({
                    target: sendMailTarget,
                    user_email: selectedMailUser?.email || '',
                    user_name: selectedMailUser?.name || 'Kunde',
                    subject: mailSubject,
                    body: mailBody,
                    button_text: mailBtnText,
                    button_url: mailBtnUrl,
                }),
            });

            const data = await res.json();
            if (res.ok && data.success) {
                setSendMailStatus(data.message);
                setTimeout(() => {
                    setIsSendMailOpen(false);
                    setSendMailStatus(null);
                }, 2500);
            } else {
                setSendMailStatus(`❌ ${data.message || 'Fehler beim Senden der E-Mail.'}`);
            }
        } catch (e: any) {
            setSendMailStatus(`❌ Fehler: ${e?.message || 'Verbindung zum SMTP E-Mail Server fehlgeschlagen.'}`);
        } finally {
            setIsSendingMail(false);
        }
    };

    const [mcVersion, setMcVersion] = useState('26.2');
    const [availableVersions, setAvailableVersions] = useState<string[]>([
        '26.2', '26.1', '26.0', '1.21.4', '1.21.3', '1.21.1', '1.21', '1.20.6', '1.20.4', '1.20.1', '1.19.4', '1.18.2', '1.16.5', '1.12.2', '1.8.8'
    ]);

    React.useEffect(() => {
        fetch('/api/minecraft/paper-versions')
            .then((res) => res.json())
            .then((data) => {
                if (data.success && Array.isArray(data.versions)) {
                    setAvailableVersions(data.versions);
                }
            })
            .catch(() => {});
    }, []);

    const handleProvisionServer = async (e: React.FormEvent) => {
        e.preventDefault();
        const selectedUser = users.find((u) => u.id === targetCustomer) || users[0];

        try {
            const res = await fetch('/api/minecraft/create', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRF-TOKEN': (document.querySelector('meta[name="csrf-token"]') as HTMLMetaElement)?.content || '',
                },
                body: JSON.stringify({
                    name: serverName,
                    version: mcVersion,
                    ram: ramGb,
                    customer_name: selectedUser ? selectedUser.name : 'Kunde',
                    customer_id: selectedUser ? selectedUser.id : '#1001',
                }),
            });

            const data = await res.json();

            if (data.success && data.server) {
                setAssignedServers((prev) => [data.server, ...prev]);
                setIsProvisionOpen(false);
                setActiveTab('assigned');
                setCreditNotice(`✓ ECHTER Minecraft Server "${data.server.name}" wurde auf IP ${data.server.ip} gestartet! Du kannst jetzt in Minecraft joinen!`);
                setTimeout(() => setCreditNotice(null), 8000);
                return;
            }
        } catch (err) {
            console.error('API Error:', err);
        }

        // Fallback if backend API is offline
        const randomIp = `${window.location.hostname || '185.220.101.44'}:25565`;
        const newServer: AssignedServer = {
            id: `srv-${Math.floor(Math.random() * 900) + 100}`,
            name: serverName,
            customerName: selectedUser.name,
            customerId: selectedUser.id,
            type: serverType,
            node: targetNode,
            ip: randomIp,
            cpu: cpuCores,
            ram: ramGb,
            storage: storageGb,
            status: 'online',
            monthlyPrice: isAdminGift ? '0,00 (Admin Sponsoring)' : '14,90',
        };

        setAssignedServers((prev) => [newServer, ...prev]);
        setIsProvisionOpen(false);
        setActiveTab('assigned');
        setCreditNotice(`✓ Server "${serverName}" (IP: ${newServer.ip}) wurde erfolgreich an Kunde ${selectedUser.name} (${selectedUser.id}) vergeben!`);
        setTimeout(() => setCreditNotice(null), 4000);
    };

    const handleToggleServerPower = async (id: string) => {
        const srv = assignedServers.find((s) => s.id === id);
        const nextAction = srv?.status === 'online' ? 'stop' : 'start';

        try {
            await fetch('/api/minecraft/power', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRF-TOKEN': (document.querySelector('meta[name="csrf-token"]') as HTMLMetaElement)?.content || '',
                },
                body: JSON.stringify({ id, action: nextAction }),
            });
        } catch (e) {}

        setAssignedServers((prev) =>
            prev.map((s) => {
                if (s.id !== id) return s;
                return { ...s, status: s.status === 'online' ? 'offline' : 'online' };
            })
        );
    };

    const handleDeleteServer = (id: string) => {
        setAssignedServers((prev) => prev.filter((srv) => srv.id !== id));
    };

    return (
        <>
            <Head title="Superadmin Panel - Rose Hosting" />

            <div className="flex min-h-screen bg-[#070405] text-slate-100 font-sans selection:bg-rose-600 selection:text-white">
                {/* Left Sidebar */}
                <AppSidebar />

                {/* Main Admin Area */}
                <main className="flex-1 flex flex-col min-w-0 bg-[#070405]">
                    {/* Top Admin Header Bar */}
                    <header className="sticky top-0 z-40 bg-[#070405]/90 backdrop-blur-md border-b border-[#260f14] px-6 py-4 flex flex-wrap items-center justify-between gap-4">
                        <div className="flex items-center gap-3">
                            <span className="px-3 py-1 rounded-full text-xs font-mono font-extrabold uppercase bg-red-950 text-red-400 border border-red-800 flex items-center gap-1.5 shadow-md">
                                <ShieldAlert className="h-4 w-4" /> 👑 Superadmin Area
                            </span>
                            <span className="text-xs text-slate-400 font-mono hidden sm:inline">
                                Server Provisioning Control Center
                            </span>
                        </div>

                        <div className="flex items-center gap-3">
                            <button
                                onClick={() => setIsProvisionOpen(true)}
                                className="flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white px-4 py-2 rounded-xl text-xs font-bold shadow-lg shadow-red-600/25 active:scale-95 transition-all"
                            >
                                <Plus className="h-4 w-4 stroke-[3]" /> Server an Kunden vergeben
                            </button>

                            <button
                                onClick={() => setMaintenanceActive(!maintenanceActive)}
                                className={`px-4 py-2 rounded-xl text-xs font-bold transition-all border flex items-center gap-2 ${
                                    maintenanceActive
                                        ? 'bg-red-600 text-white border-red-500 animate-pulse'
                                        : 'bg-[#1c0a0e] border-[#38131d] text-slate-300 hover:text-white'
                                }`}
                            >
                                <Megaphone className="h-4 w-4" />
                                {maintenanceActive ? '🔴 Wartung AKTIV' : '⚪ Wartung Inaktiv'}
                            </button>
                        </div>
                    </header>

                    {/* Admin Body Container */}
                    <div className="p-6 sm:p-8 space-y-6 max-w-7xl mx-auto w-full">
                        {/* Title Section */}
                        <div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4">
                            <div>
                                <h1 className="text-2xl sm:text-3xl font-black text-white tracking-tight flex items-center gap-2">
                                    System & Instanzen Zuweisung
                                </h1>
                                <p className="text-xs sm:text-sm text-slate-400 mt-1">
                                    Verwalte physische Hardware-Nodes, vergebe Server manuell an Kunden und steuere den globalen Wartungsmodus.
                                </p>
                            </div>
                        </div>

                        {/* WARTUNGSARBEITEN CONTROL CARD */}
                        <div className="rounded-2xl border border-[#260e13] bg-[#0c0507] p-6 shadow-xl space-y-4">
                            <div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4 border-b border-[#1f0b0f] pb-4">
                                <div className="flex items-center gap-3">
                                    <div className={`p-2.5 rounded-xl border ${maintenanceActive ? 'bg-red-950/80 border-red-800 text-red-400' : 'bg-[#14070a] border-[#2c0e15] text-slate-400'}`}>
                                        <Megaphone className="h-5 w-5" />
                                    </div>
                                    <div>
                                        <h3 className="font-extrabold text-white text-base flex items-center gap-2">
                                            Wartungsarbeiten & System-Ankündigung
                                        </h3>
                                        <p className="text-xs text-slate-400 mt-0.5">
                                            Schalte den Wartungsmodus global ein/aus und passe den Ankündigungstext für alle Kunden an.
                                        </p>
                                    </div>
                                </div>

                                <button
                                    onClick={() => handleSaveMaintenance(!maintenanceActive)}
                                    className={`px-5 py-2.5 rounded-xl text-xs font-bold font-mono transition-all border flex items-center gap-2 shadow-lg active:scale-95 ${
                                        maintenanceActive
                                            ? 'bg-red-600 text-white border-red-500 animate-pulse shadow-red-600/30'
                                            : 'bg-[#1c0a0e] border-[#38131d] text-slate-300 hover:text-white'
                                    }`}
                                >
                                    <Megaphone className="h-4 w-4" />
                                    {maintenanceActive ? '🔴 WARTUNG AKTIV' : '⚪ WARTUNG INAKTIV'}
                                </button>
                            </div>

                            {/* Text input area */}
                            <div className="space-y-3">
                                <label className="block text-xs font-mono text-slate-300 font-bold">
                                    Ankündigungstext für Kunden (Wird oben auf allen Server- & Dashboard-Seiten eingeblendet):
                                </label>
                                <div className="flex flex-col sm:flex-row gap-3">
                                    <input
                                        type="text"
                                        value={maintenanceText}
                                        onChange={(e) => setMaintenanceText(e.target.value)}
                                        placeholder="z. B. Wartungsarbeiten: CPU Upgrade am Server Node FRA-01 bis 21:00..."
                                        className="flex-1 bg-[#050203] border border-[#260e13] rounded-xl px-4 py-2.5 text-xs font-mono text-white outline-none focus:border-red-500 shadow-inner"
                                    />
                                    <button
                                        onClick={() => handleSaveMaintenance()}
                                        className="px-6 py-2.5 rounded-xl bg-red-600 hover:bg-red-700 text-white font-bold text-xs flex items-center justify-center gap-2 shadow-md shadow-red-600/25 active:scale-95 transition-all flex-shrink-0"
                                    >
                                        <Check className="h-4 w-4" /> Text Speichern &amp; Veröffentlichen
                                    </button>
                                </div>
                            </div>

                            {maintenanceSavedNotice && (
                                <div className="p-3 rounded-xl bg-emerald-950/80 border border-emerald-700 text-emerald-300 text-xs font-mono animate-fade-in">
                                    {maintenanceSavedNotice}
                                </div>
                            )}
                        </div>

                        {/* Top Notification Banner */}
                        {creditNotice && (
                            <div className="p-4 rounded-2xl bg-emerald-950/80 border border-emerald-700 text-emerald-300 font-mono text-xs shadow-lg flex items-center justify-between animate-fade-in">
                                <span>{creditNotice}</span>
                                <button onClick={() => setCreditNotice(null)} className="text-emerald-400 hover:text-white">
                                    <X className="h-4 w-4" />
                                </button>
                            </div>
                        )}

                        {/* 4 Financial & Hardware Stat Cards */}
                        <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4">
                            <div className="rounded-2xl border border-[#260e13] bg-[#0c0507] p-5 flex items-center justify-between shadow-xl hover:border-emerald-500/30 transition-all">
                                <div className="space-y-1">
                                    <span className="text-[10px] font-mono font-bold uppercase tracking-wider text-slate-400">
                                        MONATLICHER UMSATZ (MRR)
                                    </span>
                                    <div className="text-2xl font-black text-white font-mono">€18.420,00</div>
                                    <div className="text-xs text-emerald-400 font-mono flex items-center gap-1">
                                        <Zap className="h-3 w-3" /> +14.2% diesen Monat
                                    </div>
                                </div>
                                <div className="p-3 rounded-2xl bg-emerald-950/80 border border-emerald-800 text-emerald-400 shadow-lg shadow-emerald-950/50">
                                    <DollarSign className="h-6 w-6" />
                                </div>
                            </div>

                            <div className="rounded-2xl border border-[#260e13] bg-[#0c0507] p-5 flex items-center justify-between shadow-xl hover:border-rose-500/30 transition-all">
                                <div className="space-y-1">
                                    <span className="text-[10px] font-mono font-bold uppercase tracking-wider text-slate-400">
                                        GESTELLTE SERVER
                                    </span>
                                    <div className="text-2xl font-black text-white font-mono">{assignedServers.length} Instanzen</div>
                                    <div className="text-xs text-rose-400 font-mono">Cluster Auslastung 38%</div>
                                </div>
                                <div className="p-3 rounded-2xl bg-[#1c0a0e] border border-[#38131d] text-rose-400 shadow-lg shadow-rose-950/50">
                                    <Server className="h-6 w-6" />
                                </div>
                            </div>

                            <div className="rounded-2xl border border-[#260e13] bg-[#0c0507] p-5 flex items-center justify-between shadow-xl hover:border-rose-500/30 transition-all">
                                <div className="space-y-1">
                                    <span className="text-[10px] font-mono font-bold uppercase tracking-wider text-slate-400">
                                        KUNDEN ACCOUNTS
                                    </span>
                                    <div className="text-2xl font-black text-white font-mono">{users.length} Benutzer</div>
                                    <div className="text-xs text-rose-300 font-mono">100% Verifiziert</div>
                                </div>
                                <div className="p-3 rounded-2xl bg-[#1c0a0e] border border-[#38131d] text-rose-300 shadow-lg shadow-rose-950/50">
                                    <Users className="h-6 w-6" />
                                </div>
                            </div>

                            <div className="rounded-2xl border border-[#260e13] bg-[#0c0507] p-5 flex items-center justify-between shadow-xl hover:border-red-500/30 transition-all">
                                <div className="space-y-1">
                                    <span className="text-[10px] font-mono font-bold uppercase tracking-wider text-slate-400">
                                        VOXILITY DDOS SCHUTZ
                                    </span>
                                    <div className="text-2xl font-black text-white font-mono">2.4 Tbps</div>
                                    <div className="text-xs text-emerald-400 font-mono flex items-center gap-1">
                                        <ShieldCheck className="h-3 w-3" /> 0 Aktive Angriffe
                                    </div>
                                </div>
                                <div className="p-3 rounded-2xl bg-emerald-950/80 border border-emerald-800 text-emerald-400 shadow-lg shadow-emerald-950/50">
                                    <Wifi className="h-6 w-6" />
                                </div>
                            </div>
                        </div>

                        {/* Admin Sub-Tabs */}
                        <div className="flex border-b border-[#260e13] gap-2 overflow-x-auto pb-1 font-medium text-xs">
                            <button
                                onClick={() => setActiveTab('nodes')}
                                className={`flex items-center gap-2 px-4 py-2.5 rounded-t-xl transition-all border-b-2 font-semibold ${
                                    activeTab === 'nodes'
                                        ? 'border-red-600 text-rose-400 bg-[#0c0507]'
                                        : 'border-transparent text-slate-400 hover:text-white'
                                }`}
                            >
                                <Cpu className="h-4 w-4" /> Physische Hardware Nodes ({NODES.length})
                            </button>
                            <button
                                onClick={() => setActiveTab('assigned')}
                                className={`flex items-center gap-2 px-4 py-2.5 rounded-t-xl transition-all border-b-2 font-semibold ${
                                    activeTab === 'assigned'
                                        ? 'border-red-600 text-rose-400 bg-[#0c0507]'
                                        : 'border-transparent text-slate-400 hover:text-white'
                                }`}
                            >
                                <Server className="h-4 w-4 text-emerald-400" /> Alle Vergebenen Kunden-Server ({assignedServers.length})
                            </button>
                            <button
                                onClick={() => setActiveTab('users')}
                                className={`flex items-center gap-2 px-4 py-2.5 rounded-t-xl transition-all border-b-2 font-semibold ${
                                    activeTab === 'users'
                                        ? 'border-red-600 text-rose-400 bg-[#0c0507]'
                                        : 'border-transparent text-slate-400 hover:text-white'
                                }`}
                            >
                                <Users className="h-4 w-4" /> Kunden & Guthaben ({users.length})
                            </button>
                            <button
                                onClick={() => setActiveTab('mail')}
                                className={`flex items-center gap-2 px-4 py-2.5 rounded-t-xl transition-all border-b-2 font-semibold ${
                                    activeTab === 'mail'
                                        ? 'border-red-600 text-rose-400 bg-[#0c0507]'
                                        : 'border-transparent text-slate-400 hover:text-white'
                                }`}
                            >
                                <Mail className="h-4 w-4 text-rose-400" /> Gmail SMTP Mailserver
                            </button>
                            <button
                                onClick={() => setActiveTab('ddos')}
                                className={`flex items-center gap-2 px-4 py-2.5 rounded-t-xl transition-all border-b-2 font-semibold ${
                                    activeTab === 'ddos'
                                        ? 'border-red-600 text-rose-400 bg-[#0c0507]'
                                        : 'border-transparent text-slate-400 hover:text-white'
                                }`}
                            >
                                <ShieldAlert className="h-4 w-4 text-red-400" /> Voxility Anti-DDoS Center
                            </button>
                        </div>

                        {/* TAB 1: PHYSICAL NODES */}
                        {activeTab === 'nodes' && (
                            <div className="space-y-4">
                                <h3 className="text-base font-bold text-white flex items-center gap-2">
                                    <Cpu className="h-5 w-5 text-rose-400" /> Bare Metal Dedicated Cluster Nodes
                                </h3>

                                <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
                                    {NODES.map((node) => {
                                        const cpuPct = Math.round((node.usedCores / node.totalCores) * 100);
                                        const ramPct = Math.round((node.usedRam / node.totalRam) * 100);
                                        return (
                                            <div
                                                key={node.id}
                                                className="rounded-2xl border border-[#260e13] bg-[#0c0507] p-6 space-y-4 shadow-xl hover:border-red-500/30 transition-all"
                                            >
                                                <div className="flex items-center justify-between border-b border-[#1f0b0f] pb-3">
                                                    <div className="flex items-center gap-3">
                                                        <span className="text-2xl">{node.flag}</span>
                                                        <div>
                                                            <h4 className="font-extrabold text-white text-sm tracking-tight">{node.name}</h4>
                                                            <p className="text-xs text-slate-400 font-mono mt-0.5">{node.cpuModel} • {node.location}</p>
                                                        </div>
                                                    </div>
                                                    <span className="px-2.5 py-0.5 rounded-full text-[10px] font-mono font-bold bg-emerald-950/80 text-emerald-400 border border-emerald-800">
                                                        OPERATIONAL
                                                    </span>
                                                </div>

                                                <div className="space-y-3 font-mono text-xs">
                                                    <div>
                                                        <div className="flex justify-between mb-1 text-slate-300">
                                                            <span>CPU Load (EPYC Cores)</span>
                                                            <span className="text-rose-400 font-bold">{node.usedCores} / {node.totalCores} Cores ({cpuPct}%)</span>
                                                        </div>
                                                        <div className="w-full bg-[#050203] h-2 rounded-full overflow-hidden border border-[#210a0f]">
                                                            <div className="bg-rose-600 h-full transition-all duration-500" style={{ width: `${cpuPct}%` }} />
                                                        </div>
                                                    </div>

                                                    <div>
                                                        <div className="flex justify-between mb-1 text-slate-300">
                                                            <span>RAM Belegung (DDR5 ECC)</span>
                                                            <span className="text-red-400 font-bold">{node.usedRam} GB / {node.totalRam} GB ({ramPct}%)</span>
                                                        </div>
                                                        <div className="w-full bg-[#050203] h-2 rounded-full overflow-hidden border border-[#210a0f]">
                                                            <div className="bg-red-600 h-full transition-all duration-500" style={{ width: `${ramPct}%` }} />
                                                        </div>
                                                    </div>
                                                </div>
                                            </div>
                                        );
                                    })}
                                </div>
                            </div>
                        )}

                        {/* TAB 2: ASSIGNED CUSTOMER SERVERS */}
                        {activeTab === 'assigned' && (
                            <div className="space-y-4">
                                <div className="flex items-center justify-between">
                                    <h3 className="text-base font-bold text-white flex items-center gap-2">
                                        <Server className="h-5 w-5 text-rose-400" /> Alle vergebenen Server-Instanzen ({assignedServers.length})
                                    </h3>
                                    <button
                                        onClick={() => setIsProvisionOpen(true)}
                                        className="px-4 py-2 rounded-xl bg-red-600 text-white text-xs font-bold hover:bg-red-700 shadow-md shadow-red-600/25 active:scale-95 transition-all flex items-center gap-1.5"
                                    >
                                        <Plus className="h-4 w-4" /> Server an Kunden vergeben
                                    </button>
                                </div>

                                <div className="rounded-2xl border border-[#260e13] bg-[#0c0507] p-6 shadow-xl overflow-x-auto">
                                    <table className="w-full text-left text-xs font-mono">
                                        <thead className="border-b border-[#1f0b0f] text-slate-400 uppercase text-[10px]">
                                            <tr>
                                                <th className="pb-3">Server Name</th>
                                                <th className="pb-3">Zugewiesener Kunde</th>
                                                <th className="pb-3">Typ & Node</th>
                                                <th className="pb-3">IP Adresse</th>
                                                <th className="pb-3">Specs</th>
                                                <th className="pb-3">Status</th>
                                                <th className="pb-3 text-right">Admin Aktion</th>
                                            </tr>
                                        </thead>
                                        <tbody className="divide-y divide-[#1f0b0f]">
                                            {assignedServers.map((srv) => (
                                                <tr key={srv.id} className="hover:bg-[#14070a] transition-colors">
                                                    <td className="py-3.5 font-bold text-white font-sans">{srv.name}</td>
                                                    <td className="py-3.5">
                                                        <span className="text-rose-400 font-bold">{srv.customerName}</span>{' '}
                                                        <span className="text-slate-500 text-[10px]">({srv.customerId})</span>
                                                    </td>
                                                    <td className="py-3.5 text-slate-300">
                                                        {srv.type} <br />
                                                        <span className="text-[10px] text-slate-500">{srv.node}</span>
                                                    </td>
                                                    <td className="py-3.5 text-rose-400 font-bold">{srv.ip}</td>
                                                    <td className="py-3.5 text-slate-300">
                                                        {srv.cpu} Cores / {srv.ram} GB RAM / {srv.storage} GB NVMe
                                                    </td>
                                                    <td className="py-3.5">
                                                        <span
                                                            className={`px-2 py-0.5 rounded text-[10px] font-bold uppercase border ${
                                                                srv.status === 'online'
                                                                    ? 'bg-emerald-950 text-emerald-400 border-emerald-800'
                                                                    : 'bg-red-950 text-red-400 border-red-800'
                                                            }`}
                                                        >
                                                            {srv.status}
                                                        </span>
                                                    </td>
                                                    <td className="py-3.5 text-right space-x-1.5">
                                                        <button
                                                            onClick={() => handleToggleServerPower(srv.id)}
                                                            className="px-3 py-1 rounded-lg bg-[#1c0a0e] text-slate-300 hover:text-white border border-[#38131d] text-[11px] transition-all"
                                                        >
                                                            {srv.status === 'online' ? 'Stoppen' : 'Starten'}
                                                        </button>
                                                        <button
                                                            onClick={() => handleDeleteServer(srv.id)}
                                                            className="px-3 py-1 rounded-lg bg-red-950/80 text-red-400 border border-red-800 hover:bg-red-900 text-[11px] transition-all"
                                                        >
                                                            Löschen
                                                        </button>
                                                    </td>
                                                </tr>
                                            ))}
                                        </tbody>
                                    </table>
                                </div>
                            </div>
                        )}

                        {/* TAB 3: USERS & CREDIT MANAGEMENT */}
                        {activeTab === 'users' && (
                            <div className="space-y-4">
                                <div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4">
                                    <h3 className="text-base font-bold text-white flex items-center gap-2">
                                        <Users className="h-5 w-5 text-rose-400" /> Kunden- & Guthabenverwaltung ({users.length})
                                    </h3>

                                    <div className="flex items-center gap-3">
                                        <button
                                            onClick={handleOpenMailModalForAll}
                                            className="px-3.5 py-2 rounded-xl bg-red-600 hover:bg-red-700 text-white font-bold text-xs flex items-center gap-1.5 shadow-md shadow-red-600/25 transition-all active:scale-95 flex-shrink-0"
                                        >
                                            <Mail className="h-4 w-4" /> E-Mail an ALLE Kunden
                                        </button>

                                        <div className="relative w-full sm:w-64">
                                            <Search className="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-slate-500" />
                                            <input
                                                type="text"
                                                value={userSearch}
                                                onChange={(e) => setUserSearch(e.target.value)}
                                                placeholder="Benutzer suchen..."
                                                className="w-full bg-[#050203] border border-[#36131b] rounded-xl pl-9 pr-3 py-2 text-xs text-white outline-none focus:border-red-500 shadow-inner"
                                            />
                                        </div>
                                    </div>
                                </div>

                                <div className="rounded-2xl border border-[#260e13] bg-[#0c0507] p-6 shadow-xl overflow-x-auto">
                                    <table className="w-full text-left text-xs font-mono">
                                        <thead className="border-b border-[#1f0b0f] text-slate-400 uppercase text-[10px]">
                                            <tr>
                                                <th className="pb-3">Kunden-ID</th>
                                                <th className="pb-3">Name</th>
                                                <th className="pb-3">E-Mail</th>
                                                <th className="pb-3">Guthaben Stand</th>
                                                <th className="pb-3">Rolle</th>
                                                <th className="pb-3 text-right">Aktionen & Guthaben</th>
                                            </tr>
                                        </thead>
                                        <tbody className="divide-y divide-[#1f0b0f]">
                                            {users
                                                .filter((u) => u.name.toLowerCase().includes(userSearch.toLowerCase()) || u.email.toLowerCase().includes(userSearch.toLowerCase()))
                                                .map((u) => (
                                                    <tr key={u.id} className="hover:bg-[#14070a] transition-colors">
                                                        <td className="py-3.5 font-bold text-rose-400">{u.id}</td>
                                                        <td className="py-3.5 text-white font-sans font-bold">{u.name}</td>
                                                        <td className="py-3.5 text-slate-300">{u.email}</td>
                                                        <td className="py-3.5 text-emerald-400 font-bold text-sm">{u.credit}</td>
                                                        <td className="py-3.5">
                                                            <span className={`px-2.5 py-0.5 rounded text-[10px] font-bold ${u.role === 'Superadmin' ? 'bg-red-950 text-red-400 border border-red-800' : 'bg-slate-800 text-slate-300'}`}>
                                                                {u.role}
                                                            </span>
                                                        </td>
                                                        <td className="py-3.5 text-right space-x-1.5">
                                                            <button
                                                                onClick={() => handleOpenMailModalForUser(u)}
                                                                className="px-2.5 py-1 rounded-lg bg-red-950/80 text-rose-300 border border-red-800 hover:bg-red-900 text-[11px] font-bold transition-all"
                                                            >
                                                                📧 Mail
                                                            </button>
                                                            <button
                                                                onClick={() => handleGrantCredit(u.id, 10)}
                                                                className="px-2.5 py-1 rounded-lg bg-emerald-950/80 text-emerald-300 border border-emerald-800 hover:bg-emerald-900 text-[11px] font-bold transition-all"
                                                            >
                                                                + €10
                                                            </button>
                                                            <button
                                                                onClick={() => handleGrantCredit(u.id, 25)}
                                                                className="px-2.5 py-1 rounded-lg bg-emerald-950/80 text-emerald-300 border border-emerald-800 hover:bg-emerald-900 text-[11px] font-bold transition-all"
                                                            >
                                                                + €25
                                                            </button>
                                                            <button
                                                                onClick={() => handleGrantCredit(u.id, 50)}
                                                                className="px-2.5 py-1 rounded-lg bg-emerald-950/80 text-emerald-300 border border-emerald-800 hover:bg-emerald-900 text-[11px] font-bold transition-all"
                                                            >
                                                                + €50
                                                            </button>
                                                            <button
                                                                onClick={() => {
                                                                    setTargetCustomer(u.id);
                                                                    setIsProvisionOpen(true);
                                                                }}
                                                                className="px-2.5 py-1 rounded-lg bg-[#24080e] text-rose-300 border border-[#3d121b] hover:bg-[#33131b] text-[11px] transition-all ml-1.5"
                                                            >
                                                                + Server Zuweisen
                                                            </button>
                                                        </td>
                                                    </tr>
                                                ))}
                                        </tbody>
                                    </table>
                                </div>
                            </div>
                        )}

                        {/* TAB 4: GMAIL SMTP MAILSERVER SETTINGS */}
                        {activeTab === 'mail' && (
                            <div className="space-y-6">
                                <div className="rounded-2xl border border-[#260e13] bg-[#0c0507] p-6 shadow-xl space-y-6">
                                    <div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4 border-b border-[#1f0b0f] pb-4">
                                        <div className="flex items-center gap-3">
                                            <div className="p-3 rounded-xl bg-red-950/80 border border-red-800 text-rose-400">
                                                <Mail className="h-6 w-6" />
                                            </div>
                                            <div>
                                                <h3 className="font-extrabold text-white text-base">
                                                    Gmail SMTP E-Mail Server Konfiguration
                                                </h3>
                                                <p className="text-xs text-slate-400 mt-0.5">
                                                    Konfiguriere deinen Gmail SMTP Server für automatische Willkommens-Mails und Direkt-Mails an Kunden.
                                                </p>
                                            </div>
                                        </div>

                                        <div className="flex items-center gap-2">
                                            <button
                                                onClick={handleSendTestMail}
                                                disabled={isTestingMail}
                                                className="px-4 py-2 rounded-xl bg-[#1c0a0e] text-amber-300 border border-[#38131d] hover:bg-[#280e14] text-xs font-bold font-mono flex items-center gap-1.5 transition-all active:scale-95 disabled:opacity-50"
                                            >
                                                <Send className="h-3.5 w-3.5" />
                                                {isTestingMail ? 'Sende Test-Mail...' : '🧪 Gmail Test-Mail Senden'}
                                            </button>

                                            <button
                                                onClick={handleSaveMailSettings}
                                                className="px-5 py-2 rounded-xl bg-red-600 hover:bg-red-700 text-white font-bold text-xs flex items-center gap-1.5 shadow-lg shadow-red-600/25 active:scale-95 transition-all"
                                            >
                                                <Check className="h-4 w-4" /> Einstellungen Speichern
                                            </button>
                                        </div>
                                    </div>

                                    {mailNotice && (
                                        <div className="p-3.5 rounded-xl bg-emerald-950/80 border border-emerald-700 text-emerald-300 text-xs font-mono animate-fade-in">
                                            {mailNotice}
                                        </div>
                                    )}

                                    <div className="grid grid-cols-1 md:grid-cols-2 gap-4 text-xs font-sans">
                                        <div className="space-y-1.5">
                                            <label className="block font-semibold text-slate-200 font-mono">Gmail / SMTP Host</label>
                                            <input
                                                type="text"
                                                value={mailHost}
                                                onChange={(e) => setMailHost(e.target.value)}
                                                placeholder="smtp.gmail.com"
                                                className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3.5 py-2.5 text-xs text-white outline-none focus:border-red-500 font-mono"
                                            />
                                        </div>

                                        <div className="space-y-1.5">
                                            <label className="block font-semibold text-slate-200 font-mono">SMTP Port</label>
                                            <input
                                                type="number"
                                                value={mailPort}
                                                onChange={(e) => setMailPort(parseInt(e.target.value) || 587)}
                                                placeholder="587"
                                                className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3.5 py-2.5 text-xs text-white outline-none focus:border-red-500 font-mono"
                                            />
                                        </div>

                                        <div className="space-y-1.5">
                                            <label className="block font-semibold text-slate-200 font-mono">Gmail E-Mail / Benutzername</label>
                                            <input
                                                type="email"
                                                value={mailUsername}
                                                onChange={(e) => setMailUsername(e.target.value)}
                                                placeholder="dein-name@gmail.com"
                                                className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3.5 py-2.5 text-xs text-white outline-none focus:border-red-500 font-mono"
                                            />
                                        </div>

                                        <div className="space-y-1.5">
                                            <label className="block font-semibold text-slate-200 font-mono">Gmail App-Passwort (Google App Password)</label>
                                            <input
                                                type="password"
                                                value={mailPassword}
                                                onChange={(e) => setMailPassword(e.target.value)}
                                                placeholder="•••• •••• •••• ••••"
                                                className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3.5 py-2.5 text-xs text-white outline-none focus:border-red-500 font-mono"
                                            />
                                        </div>

                                        <div className="space-y-1.5">
                                            <label className="block font-semibold text-slate-200 font-mono">Absender Name</label>
                                            <input
                                                type="text"
                                                value={mailFromName}
                                                onChange={(e) => setMailFromName(e.target.value)}
                                                placeholder="Rose Hosting Support"
                                                className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3.5 py-2.5 text-xs text-white outline-none focus:border-red-500"
                                            />
                                        </div>

                                        <div className="space-y-1.5">
                                            <label className="block font-semibold text-slate-200 font-mono">Absender E-Mail Adresse</label>
                                            <input
                                                type="email"
                                                value={mailFromAddress}
                                                onChange={(e) => setMailFromAddress(e.target.value)}
                                                placeholder="noreply@rose-hosting.de"
                                                className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3.5 py-2.5 text-xs text-white outline-none focus:border-red-500 font-mono"
                                            />
                                        </div>
                                    </div>
                                </div>

                                {/* Gmail Setup Help Guide Card */}
                                <div className="rounded-2xl border border-[#210a0f] bg-[#050203] p-5 space-y-2 text-xs font-mono text-slate-300">
                                    <h4 className="font-bold text-white text-sm flex items-center gap-2">
                                        <Lock className="h-4 w-4 text-rose-400" /> Anleitung: Gmail App-Passwort einrichten
                                    </h4>
                                    <ol className="list-decimal list-inside space-y-1 text-slate-400 leading-relaxed pt-1">
                                        <li>Melde dich in deinem <strong className="text-white">Google-Konto</strong> an und gehe zu <strong>Sicherheit</strong>.</li>
                                        <li>Aktiviere die <strong>2-Stufen-Verifizierung</strong> (falls noch nicht aktiv).</li>
                                        <li>Suche nach <strong>"App-Passwörter"</strong> (App Passwords) und erstelle ein neues Passwort für "Rose Hosting Server".</li>
                                        <li>Kopiere das 16-stellige Passwort und füge es oben im Feld <strong>Gmail App-Passwort</strong> ein.</li>
                                    </ol>
                                </div>
                            </div>
                        )}

                        {/* TAB 4: DDOS INCIDENT LOG */}
                        {activeTab === 'ddos' && (
                            <div className="space-y-4">
                                <h3 className="text-base font-bold text-white flex items-center gap-2">
                                    <ShieldAlert className="h-5 w-5 text-red-400" /> Voxility 2.4 Tbps Anti-DDoS Mitigation Logs
                                </h3>

                                <div className="rounded-2xl border border-[#260e13] bg-[#050203] p-6 font-mono text-xs space-y-3 shadow-2xl">
                                    <div className="flex items-center gap-2 text-slate-300 border-b border-[#1f0b0f] pb-2">
                                        <span className="text-slate-500 font-bold">12:14:02</span>
                                        <span className="bg-red-950 text-red-400 px-2 py-0.5 rounded text-[10px] font-bold">ATTACK MITIGATED</span>
                                        <span>SYN Flood (4.2 Gbps) target 185.220.101.44 -&gt; Filtered in 800ms (0 packets lost)</span>
                                    </div>
                                    <div className="flex items-center gap-2 text-slate-300 border-b border-[#1f0b0f] pb-2">
                                        <span className="text-slate-500 font-bold">11:42:19</span>
                                        <span className="bg-red-950 text-red-400 px-2 py-0.5 rounded text-[10px] font-bold">ATTACK MITIGATED</span>
                                        <span>UDP Amplification (12.8 Gbps) target 185.220.102.15 -&gt; Filtered in 450ms (0 packets lost)</span>
                                    </div>
                                </div>
                            </div>
                        )}
                    </div>
                </main>
            </div>

            {/* ADMIN PROVISIONING MODAL */}
            {isProvisionOpen && (
                <div className="fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm p-4">
                    <div className="w-full max-w-lg rounded-2xl border border-[#311119] bg-[#0c0507] p-6 space-y-6 shadow-2xl">
                        <div className="flex items-center justify-between border-b border-[#1f0b0f] pb-3">
                            <h3 className="text-lg font-bold text-white flex items-center gap-2">
                                <Server className="h-5 w-5 text-rose-400" /> Server an Kunden vergeben
                            </h3>
                            <button onClick={() => setIsProvisionOpen(false)} className="text-slate-400 hover:text-white">
                                <X className="h-5 w-5" />
                            </button>
                        </div>

                        <form onSubmit={handleProvisionServer} className="space-y-4 text-xs font-sans">
                            {/* Target Customer Dropdown */}
                            <div className="space-y-1.5">
                                <label className="block font-semibold text-slate-200">Ziel-Kunde Auswählen</label>
                                <select
                                    value={targetCustomer}
                                    onChange={(e) => setTargetCustomer(e.target.value)}
                                    className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3 py-2 text-xs text-white outline-none focus:border-red-500 font-mono"
                                >
                                    {users.map((u) => (
                                        <option key={u.id} value={u.id}>
                                            {u.id} - {u.name} ({u.email})
                                        </option>
                                    ))}
                                </select>
                            </div>

                            {/* Server Name */}
                            <div className="space-y-1.5">
                                <label className="block font-semibold text-slate-200">Server Name</label>
                                <input
                                    type="text"
                                    value={serverName}
                                    onChange={(e) => setServerName(e.target.value)}
                                    required
                                    placeholder="z. B. Minecraft Community Server"
                                    className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3 py-2 text-xs text-white outline-none focus:border-red-500 font-medium"
                                />
                            </div>

                            {/* Server Type & Target Node */}
                            <div className="grid grid-cols-2 gap-3">
                                <div className="space-y-1.5">
                                    <label className="block font-semibold text-slate-200">Server Typ</label>
                                    <select
                                        value={serverType}
                                        onChange={(e) => setServerType(e.target.value)}
                                        className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3 py-2 text-xs text-white outline-none focus:border-red-500"
                                    >
                                        <option value="Gameserver Paper">Gameserver (Minecraft Paper)</option>
                                        <option value="Cloud VPS Pro">Cloud VPS Pro</option>
                                        <option value="Bare Metal Dedicated">Bare Metal Dedicated</option>
                                    </select>
                                </div>

                                <div className="space-y-1.5">
                                    <label className="block font-semibold text-slate-200">Minecraft Version (Paper)</label>
                                    <select
                                        value={mcVersion}
                                        onChange={(e) => setMcVersion(e.target.value)}
                                        className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3 py-2 text-xs text-white outline-none focus:border-red-500 font-mono"
                                    >
                                        {availableVersions.map((ver) => (
                                            <option key={ver} value={ver}>
                                                Paper {ver} {ver === '26.2' ? '(Neueste Build 2026)' : ''}
                                            </option>
                                        ))}
                                    </select>
                                </div>
                            </div>

                            {/* Specs Config */}
                            <div className="grid grid-cols-3 gap-3 font-mono">
                                <div className="space-y-1">
                                    <label className="block text-[11px] text-slate-300">vCPU Cores</label>
                                    <input
                                        type="number"
                                        min="1"
                                        max="64"
                                        value={cpuCores}
                                        onChange={(e) => setCpuCores(parseInt(e.target.value) || 1)}
                                        className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3 py-2 text-xs text-rose-400 font-bold"
                                    />
                                </div>
                                <div className="space-y-1">
                                    <label className="block text-[11px] text-slate-300">RAM (GB)</label>
                                    <input
                                        type="number"
                                        min="1"
                                        max="512"
                                        value={ramGb}
                                        onChange={(e) => setRamGb(parseInt(e.target.value) || 1)}
                                        className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3 py-2 text-xs text-red-400 font-bold"
                                    />
                                </div>
                                <div className="space-y-1">
                                    <label className="block text-[11px] text-slate-300">NVMe (GB)</label>
                                    <input
                                        type="number"
                                        min="10"
                                        max="2000"
                                        value={storageGb}
                                        onChange={(e) => setStorageGb(parseInt(e.target.value) || 10)}
                                        className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3 py-2 text-xs text-rose-300 font-bold"
                                    />
                                </div>
                            </div>

                            {/* Admin Gift Checkbox */}
                            <div className="pt-2 flex items-center gap-2">
                                <input
                                    type="checkbox"
                                    id="gift"
                                    checked={isAdminGift}
                                    onChange={(e) => setIsAdminGift(e.target.checked)}
                                    className="h-4 w-4 rounded accent-red-600"
                                />
                                <label htmlFor="gift" className="text-xs text-slate-300 font-medium select-none">
                                    Kostenloses Admin-Sponsoring (Guthaben des Kunden nicht belasten)
                                </label>
                            </div>

                            <div className="pt-4 border-t border-[#1f0b0f] flex items-center justify-end gap-3">
                                <button
                                    type="button"
                                    onClick={() => setIsProvisionOpen(false)}
                                    className="px-4 py-2 rounded-xl bg-[#1c0a0e] text-slate-300 hover:text-white font-medium"
                                >
                                    Abbrechen
                                </button>
                                <button
                                    type="submit"
                                    className="px-6 py-2 rounded-xl bg-red-600 hover:bg-red-700 text-white font-bold shadow-lg shadow-red-600/25 active:scale-95 transition-all"
                                >
                                    Instanz Sofort Bereitstellen
                                </button>
                            </div>
                        </form>
                    </div>
                </div>
            )}
            {/* CUSTOMER EMAIL SENDING MODAL */}
            {isSendMailOpen && (
                <div className="fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm p-4">
                    <div className="w-full max-w-xl rounded-2xl border border-[#311119] bg-[#0c0507] p-6 space-y-5 shadow-2xl">
                        <div className="flex items-center justify-between border-b border-[#1f0b0f] pb-3">
                            <h3 className="text-lg font-bold text-white flex items-center gap-2">
                                <Mail className="h-5 w-5 text-rose-400" />
                                {sendMailTarget === 'all'
                                    ? '📢 E-Mail an ALLE registrierten Kunden senden'
                                    : `📧 E-Mail an ${selectedMailUser?.name} (${selectedMailUser?.email})`}
                            </h3>
                            <button onClick={() => setIsSendMailOpen(false)} className="text-slate-400 hover:text-white">
                                <X className="h-5 w-5" />
                            </button>
                        </div>

                        {sendMailStatus && (
                            <div className="p-3.5 rounded-xl bg-emerald-950/80 border border-emerald-700 text-emerald-300 text-xs font-mono animate-fade-in">
                                {sendMailStatus}
                            </div>
                        )}

                        <form onSubmit={handleSendCustomMailSubmit} className="space-y-4 text-xs font-sans">
                            <div className="space-y-1.5">
                                <label className="block font-semibold text-slate-200">E-Mail Betreff (Subject)</label>
                                <input
                                    type="text"
                                    value={mailSubject}
                                    onChange={(e) => setMailSubject(e.target.value)}
                                    required
                                    placeholder="z. B. Wichtiger Hinweis zu deinem Server..."
                                    className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3.5 py-2.5 text-xs text-white outline-none focus:border-red-500 font-medium"
                                />
                            </div>

                            <div className="space-y-1.5">
                                <label className="block font-semibold text-slate-200">E-Mail Nachricht (Textkörper)</label>
                                <textarea
                                    rows={5}
                                    value={mailBody}
                                    onChange={(e) => setMailBody(e.target.value)}
                                    required
                                    placeholder="Schreibe deine Nachricht an den Kunden..."
                                    className="w-full bg-[#050203] border border-[#36131b] rounded-xl p-3 text-xs text-white outline-none focus:border-red-500 leading-relaxed font-sans"
                                />
                            </div>

                            <div className="grid grid-cols-2 gap-3">
                                <div className="space-y-1.5">
                                    <label className="block font-semibold text-slate-200">Button Text (Optional)</label>
                                    <input
                                        type="text"
                                        value={mailBtnText}
                                        onChange={(e) => setMailBtnText(e.target.value)}
                                        placeholder="Zum Dashboard"
                                        className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3 py-2 text-xs text-white outline-none focus:border-red-500"
                                    />
                                </div>
                                <div className="space-y-1.5">
                                    <label className="block font-semibold text-slate-200">Button URL (Optional)</label>
                                    <input
                                        type="text"
                                        value={mailBtnUrl}
                                        onChange={(e) => setMailBtnUrl(e.target.value)}
                                        placeholder="http://185.220.101.44:8000/dashboard"
                                        className="w-full bg-[#050203] border border-[#36131b] rounded-xl px-3 py-2 text-xs text-white outline-none focus:border-red-500 font-mono"
                                    />
                                </div>
                            </div>

                            <div className="pt-4 border-t border-[#1f0b0f] flex items-center justify-end gap-3">
                                <button
                                    type="button"
                                    onClick={() => setIsSendMailOpen(false)}
                                    className="px-4 py-2 rounded-xl bg-[#1c0a0e] text-slate-300 hover:text-white font-medium"
                                >
                                    Abbrechen
                                </button>
                                <button
                                    type="submit"
                                    disabled={isSendingMail}
                                    className="px-6 py-2.5 rounded-xl bg-red-600 hover:bg-red-700 text-white font-bold text-xs shadow-lg shadow-red-600/25 active:scale-95 transition-all flex items-center gap-2 disabled:opacity-50"
                                >
                                    <Send className="h-4 w-4" />
                                    {isSendingMail ? 'Sende E-Mail...' : 'E-Mail jetzt über Gmail absenden'}
                                </button>
                            </div>
                        </form>
                    </div>
                </div>
            )}
        </>
    );
}
