:root {
            --bg: #0a0a1a;
            --surface: rgba(255,255,255,0.03);
            --surface-hover: rgba(255,255,255,0.06);
            --border: rgba(255,255,255,0.08);
            --primary: #7c3aed;
            --primary-glow: rgba(124,58,237,0.3);
            --secondary: #06b6d4;
            --text: #e2e8f0;
            --muted: #94a3b8;
            --success: #22c55e;
            --error: #ef4444;
            --warning: #f59e0b;
            --font: 'Inter', -apple-system, sans-serif;
        }
        *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
        body { background: var(--bg); color: var(--text); font-family: var(--font); min-height: 100vh; }

        /* SVG Icons styling */
        .icon {
            width: 18px;
            height: 18px;
            stroke-width: 2;
            stroke: currentColor;
            fill: none;
            stroke-linecap: round;
            stroke-linejoin: round;
            vertical-align: middle;
            display: inline-block;
            flex-shrink: 0;
        }
        .icon-lg { width: 24px; height: 24px; }
        .icon-xl { width: 32px; height: 32px; }

        /* ---- LOGIN SCREEN ---- */
        #login-screen {
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 2rem;
            background: radial-gradient(ellipse at 50% 0%, rgba(124,58,237,0.15) 0%, transparent 70%);
        }
        .login-box {
            background: var(--surface);
            border: 1px solid var(--border);
            border-radius: 24px;
            padding: 3rem 2.5rem;
            width: 100%;
            max-width: 420px;
            backdrop-filter: blur(20px);
        }
        .login-logo {
            text-align: center;
            margin-bottom: 2rem;
        }
        .login-logo .logo-circle {
            width: 64px; height: 64px;
            background: linear-gradient(135deg, var(--primary), var(--secondary));
            border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            font-size: 1.75rem; font-weight: 800; color: white;
            margin: 0 auto 1rem;
            box-shadow: 0 0 30px var(--primary-glow);
        }
        .login-logo h1 { font-size: 1.4rem; font-weight: 700; }
        .login-logo p { color: var(--muted); font-size: 0.9rem; margin-top: 0.25rem; }
        .form-group { margin-bottom: 1.25rem; }
        .form-group label { display: block; font-size: 0.85rem; font-weight: 500; margin-bottom: 0.5rem; color: var(--muted); }
        .form-control {
            width: 100%; background: rgba(255,255,255,0.05);
            border: 1px solid var(--border); border-radius: 10px;
            color: var(--text); font-family: var(--font); font-size: 0.95rem;
            padding: 0.75rem 1rem; outline: none;
            transition: border-color 0.2s;
        }
        .form-control:focus { border-color: var(--primary); }
        .btn {
            display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
            border: none; border-radius: 10px; cursor: pointer; font-family: var(--font);
            font-size: 0.95rem; font-weight: 600; padding: 0.75rem 1.5rem;
            text-decoration: none; transition: all 0.2s; width: 100%;
        }
        .btn-primary { background: linear-gradient(135deg, var(--primary), #6d28d9); color: white; }
        .btn-primary:hover { box-shadow: 0 4px 20px var(--primary-glow); transform: translateY(-1px); }
        .btn-ghost { background: var(--surface-hover); color: var(--text); border: 1px solid var(--border); }
        .btn-ghost:hover { border-color: var(--primary); }
        .auth-error { color: var(--error); font-size: 0.85rem; margin-top: 1rem; text-align: center; display: none; }
        .auth-notice { color: var(--warning); font-size: 0.8rem; margin-top: 1rem; text-align: center; display: none; }

                /* ---- SIDEBAR TOGGLE & RESPONSIVE COLLAPSE ---- */
        .sidebar-toggle-btn {
            background: var(--surface);
            border: 1px solid var(--border);
            color: var(--text);
            width: 36px;
            height: 36px;
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.2s;
        }
        .sidebar-toggle-btn:hover {
            background: var(--surface-hover);
            border-color: var(--primary);
        }

        .admin-layout {
            display: grid;
            grid-template-columns: 240px 1fr;
            min-height: calc(100vh - 65px);
            transition: grid-template-columns 0.3s cubic-bezier(0.16, 1, 0.3, 1);
        }

        /* Desktop Collapsed Sidebar Mode (Icons Only) */
        .admin-layout.collapsed {
            grid-template-columns: 68px 1fr;
        }
        .admin-layout.collapsed .sidebar-section-title {
            opacity: 0;
            height: 0;
            margin: 0;
            padding: 0;
            overflow: hidden;
            transition: all 0.2s;
        }
        .admin-layout.collapsed .nav-label {
            display: none;
        }
        .admin-layout.collapsed .nav-item {
            justify-content: center;
            padding: 0.75rem 0;
        }

/* Mobile Drawer Sidebar (Hidden by default, toggled via three bars button) */
@media (max-width: 768px) {
    html, body {
        max-width: 100vw;
        overflow-x: hidden;
        -webkit-text-size-adjust: 100%;
        -webkit-tap-highlight-color: transparent;
    }

    .form-control, input, select, textarea {
        font-size: 16px !important;
    }

    #login-screen, #change-password-screen {
        padding: 1rem;
    }
    .login-box {
        padding: 2rem 1.25rem;
        border-radius: 18px;
    }

    .admin-header { padding: 0.75rem 0.85rem; }
    .admin-header-left { gap: 0.5rem; }
    .admin-logo { font-size: 1rem; }
    .admin-badge { display: inline-block; font-size: 0.65rem; }
    .admin-email { display: none; }
    .logout-btn {
        padding: 0.35rem 0.6rem;
        font-size: 0.75rem;
    }

    /* Main layout takes 100% full screen width on mobile */
    .admin-layout {
        grid-template-columns: 1fr !important;
        position: relative;
    }

    /* Sidebar is completely hidden off-screen by default on mobile */
    .admin-sidebar {
        position: fixed;
        top: 60px;
        left: 0;
        bottom: 0;
        width: 250px;
        z-index: 1000;
        background: #0d0d22;
        border-right: 1px solid var(--border);
        box-shadow: 10px 0 30px rgba(0, 0, 0, 0.6);
        padding: 1.5rem 1rem;
        display: block !important;
        transform: translateX(-100%);
        transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
        overflow-y: auto;
    }

    /* Toggled state: slides out smoothly when three bars button is tapped */
    .admin-sidebar.open {
        transform: translateX(0);
    }

    /* Dark blur backdrop overlay behind mobile sidebar */
    .sidebar-backdrop {
        position: fixed;
        inset: 0;
        top: 60px;
        background: rgba(0, 0, 0, 0.65);
        backdrop-filter: blur(4px);
        z-index: 999;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s ease;
    }
    .sidebar-backdrop.active {
        opacity: 1;
        pointer-events: auto;
    }

    .sidebar-section-title {
        display: block !important;
        opacity: 1 !important;
        height: auto !important;
        margin-top: 1.25rem !important;
    }
    .nav-label {
        display: inline !important;
    }
    .nav-item {
        width: 100% !important;
        height: auto !important;
        justify-content: flex-start !important;
        padding: 0.75rem 1rem !important;
        margin: 0.25rem 0 !important;
    }
    .nav-item .icon {
        width: 20px !important;
        height: 20px !important;
        margin-right: 0.5rem;
    }

    .admin-main {
        padding: 1.25rem 0.85rem;
        overflow-x: hidden;
        width: 100%;
    }

    .page-header { margin-bottom: 1.25rem; }
    .page-header h2 { font-size: 1.25rem; }
    .page-header p { font-size: 0.82rem; }

    .stats-grid {
        grid-template-columns: 1fr 1fr;
        gap: 0.75rem;
        margin-bottom: 1.25rem;
    }
    .stat-card {
        padding: 1rem 0.85rem;
        border-radius: 14px;
    }
    .stat-label { font-size: 0.75rem; }
    .stat-value { font-size: 1.5rem; }
    .stat-trend { font-size: 0.7rem; }

    .app-cards {
        grid-template-columns: 1fr;
        gap: 0.85rem;
    }
    .app-card {
        padding: 1.1rem;
        border-radius: 14px;
    }

    /* Touch Table Scroll */
    .data-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        border-radius: 12px;
        max-width: 100%;
    }
    table {
        min-width: 560px;
    }
    th, td {
        padding: 0.75rem 0.85rem;
        font-size: 0.8rem;
    }

    .settings-grid {
        grid-template-columns: 1fr;
    }
    .settings-card {
        padding: 1.25rem;
    }
}

@media (max-width: 480px) {
    .stats-grid {
        grid-template-columns: 1fr;
    }
}
