        :root {
            --primary: #4f46e5;
            --primary-hover: #4338ca;
            --secondary: #64748b;
            --success: #10b981;
            --danger: #ef4444;
            --bg-main: #f8fafc;
        }
        body {
            font-family: 'Inter', sans-serif;
            background-color: var(--bg-main);
            color: #1e293b;
            -webkit-font-smoothing: antialiased;
        }
        
        /* Glassmorphism & Cards */
        .card {
            background: #ffffff;
            border: 1px solid #f1f5f9;
            border-radius: 2rem;
            box-shadow: 0 8px 30px rgba(0, 0, 0, 0.04);
            padding: 2rem;
            transition: box-shadow 300ms ease, border-color 300ms ease, transform 300ms ease;
        }
        .card:hover {
            box-shadow: 0 10px 35px rgba(0, 0, 0, 0.08);
            border-color: #e0e7ff;
        }

        /* Buttons */
        .btn,
        .btn-primary,
        .btn-secondary,
        .btn-success,
        .btn-danger,
        .btn-outline {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            font-weight: 800;
            padding: 0.95rem 1.5rem;
            border-radius: 1.25rem;
            border: 0;
            cursor: pointer;
            text-decoration: none;
            user-select: none;
            transition: transform 200ms ease, background-color 200ms ease, box-shadow 200ms ease, color 200ms ease, border-color 200ms ease, opacity 200ms ease;
        }
        .btn:active,
        .btn-primary:active,
        .btn-secondary:active,
        .btn-success:active,
        .btn-danger:active,
        .btn-outline:active {
            transform: scale(0.98);
        }
        .btn[disabled],
        .btn:disabled,
        .btn-primary[disabled],
        .btn-primary:disabled,
        .btn-secondary[disabled],
        .btn-secondary:disabled,
        .btn-success[disabled],
        .btn-success:disabled,
        .btn-danger[disabled],
        .btn-danger:disabled,
        .btn-outline[disabled],
        .btn-outline:disabled {
            opacity: 0.55;
            cursor: not-allowed;
        }
        .btn-primary {
            background: var(--primary);
            color: #ffffff;
            box-shadow: 0 18px 40px rgba(79, 70, 229, 0.25);
        }
        .btn-primary:hover {
            background: var(--primary-hover);
            box-shadow: 0 20px 45px rgba(79, 70, 229, 0.32);
        }
        .btn-secondary {
            background: #f1f5f9;
            color: #475569;
        }
        .btn-secondary:hover {
            background: #e2e8f0;
        }
        .btn-success {
            background: #10b981;
            color: #ffffff;
            box-shadow: 0 18px 40px rgba(16, 185, 129, 0.18);
        }
        .btn-success:hover {
            background: #059669;
            box-shadow: 0 20px 45px rgba(16, 185, 129, 0.24);
        }
        .btn-danger {
            background: #f43f5e;
            color: #ffffff;
            box-shadow: 0 18px 40px rgba(244, 63, 94, 0.18);
        }
        .btn-danger:hover {
            background: #e11d48;
            box-shadow: 0 20px 45px rgba(244, 63, 94, 0.22);
        }
        .btn-outline {
            background: transparent;
            border: 2px solid #e2e8f0;
            color: #64748b;
        }
        .btn-outline:hover {
            border-color: var(--primary);
            color: var(--primary);
        }

        /* Inputs */
        .form-group {
            margin-bottom: 1.5rem;
        }
        .label-custom {
            display: block;
            font-size: 0.75rem;
            font-weight: 900;
            color: #94a3b8;
            text-transform: uppercase;
            letter-spacing: 0.14em;
            margin-left: 0.25rem;
        }
        .input-custom {
            width: 100%;
            background: #f8fafc;
            border: 2px solid #f1f5f9;
            border-radius: 1.25rem;
            padding: 1rem 1.25rem;
            color: #334155;
            outline: none;
            transition: border-color 200ms ease, background-color 200ms ease, box-shadow 200ms ease;
        }
        .input-custom:focus {
            border-color: var(--primary);
            background: #ffffff;
            box-shadow: 0 18px 45px rgba(79, 70, 229, 0.08);
        }
        .input-main {
            width: 100%;
            background: #f8fafc;
            border: 4px solid #f1f5f9;
            border-radius: 2.5rem;
            padding: 1.75rem 2rem;
            font-size: 2rem;
            line-height: 1.2;
            font-weight: 900;
            text-align: center;
            color: #0f172a;
            outline: none;
            transition: border-color 250ms ease, background-color 250ms ease, box-shadow 250ms ease, transform 250ms ease;
        }
        .input-main::placeholder {
            color: #cbd5e1;
        }
        .input-main:focus {
            border-color: var(--primary);
            background: #ffffff;
            box-shadow: 0 22px 60px rgba(79, 70, 229, 0.10);
        }
        .input-main-emerald:focus {
            border-color: #10b981;
            box-shadow: 0 22px 60px rgba(16, 185, 129, 0.12);
        }

        /* Animations */
        .shake {
            animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both;
        }
        @keyframes shake {
            10%, 90% { transform: translate3d(-1px, 0, 0); }
            20%, 80% { transform: translate3d(2px, 0, 0); }
            30%, 50%, 70% { transform: translate3d(-4px, 0, 0); }
            40%, 60% { transform: translate3d(4px, 0, 0); }
        }

        /* Utils */
        .text-gradient {
            background-image: linear-gradient(90deg, #4f46e5, #7c3aed);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
        }
        .nav-link {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0.55rem 1rem;
            border-radius: 0.9rem;
            color: #475569;
            font-weight: 700;
            text-decoration: none;
            transition: background-color 200ms ease, color 200ms ease, transform 200ms ease;
        }
        .nav-link:hover {
            background: #f8fafc;
            color: var(--primary);
        }

        html.dark body {
            background-color: #0b1220;
            color: #e2e8f0;
        }
        html.dark .card {
            background: #0f172a;
            border-color: #1e293b;
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.35);
        }
        html.dark .card:hover {
            border-color: #334155;
            box-shadow: 0 12px 44px rgba(0, 0, 0, 0.45);
        }
        html.dark nav {
            background: rgba(15, 23, 42, 0.8) !important;
            border-bottom-color: #1e293b !important;
        }
        html.dark footer {
            background: rgba(15, 23, 42, 0.55) !important;
            border-top-color: #1e293b !important;
        }
        html.dark .nav-link {
            color: #cbd5e1;
        }
        html.dark .nav-link:hover {
            background: rgba(30, 41, 59, 0.6);
            color: #c7d2fe;
        }
        html.dark .bg-white { background-color: #0f172a !important; }
        html.dark .bg-slate-50,
        html.dark .bg-slate-50\/50,
        html.dark .bg-slate-50\/60,
        html.dark .bg-slate-50\/70,
        html.dark .bg-indigo-50,
        html.dark .bg-indigo-50\/50 { background-color: rgba(30, 41, 59, 0.45) !important; }
        html.dark .text-slate-900,
        html.dark .text-slate-800,
        html.dark .text-gray-800 { color: #e5e7eb !important; }
        html.dark .text-slate-700,
        html.dark .text-slate-600,
        html.dark .text-gray-600 { color: #cbd5e1 !important; }
        html.dark .text-slate-500,
        html.dark .text-slate-400,
        html.dark .text-gray-500 { color: #94a3b8 !important; }
        html.dark .border-slate-100,
        html.dark .border-slate-200 { border-color: #1e293b !important; }
        html.dark .input-custom,
        html.dark .input-main {
            background: rgba(15, 23, 42, 0.6);
            border-color: #1e293b;
            color: #e5e7eb;
        }
        html.dark .input-custom::placeholder,
        html.dark .input-main::placeholder {
            color: #64748b;
        }