        :root {
            --primary: 221 83% 53%;
        }
        body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }

        /* Logo Glow Effect */
        .logo-glow {
            /* Base glow: subtle shadow - Black for Light Mode */
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
            transition: box-shadow 0.3s ease-in-out;
            border: none; /* Ensure no outline */
            background-color: black; /* Prevent white halo from transparency */
        }

        .logo-glow:hover {
            /* Hover state: intensified - Black for Light Mode */
            box-shadow: 0 0 50px rgba(0, 0, 0, 0.6);
        }

        /* Dark Mode Glow - White */
        .dark .logo-glow {
            box-shadow: 0 0 20px rgba(255, 255, 255, 0.3);
        }

        .dark .logo-glow:hover {
            box-shadow: 0 0 50px rgba(255, 255, 255, 0.6);
        }

        .cursor-wait { cursor: wait; }
        /* Simple spinner */
        .spinner {
            animation: spin 1s linear infinite;
        }
        @keyframes spin {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }

        /* Custom scrollbar for dark mode aesthetics */
        .dark ::-webkit-scrollbar {
            width: 8px;
            height: 8px;
        }
        .dark ::-webkit-scrollbar-track {
            background: #262626;
        }
        .dark ::-webkit-scrollbar-thumb {
            background: #525252;
            border-radius: 4px;
        }
        .dark ::-webkit-scrollbar-thumb:hover {
            background: #737373;
        }

        /* PrismJS Custom Overrides for Notebook Look */
        code[class*="language-"],
        pre[class*="language-"] {
            color: #24292e;
            background: none;
            text-shadow: none;
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
            font-size: 0.875rem; /* text-sm */
            line-height: 1.625; /* relaxed */
            direction: ltr;
            text-align: left;
            white-space: pre;
            word-spacing: normal;
            word-break: normal;
            tab-size: 4;
            hyphens: none;
            margin: 0;
            padding: 0;
        }

        /* Light Mode Prism Colors (Colorful match for Light Mode) */
        .token.comment, .token.prolog, .token.doctype, .token.cdata { color: #6a737d; }
        .token.punctuation { color: #24292e; }
        .token.namespace { opacity: .7; }
        .token.property, .token.tag, .token.boolean, .token.number, .token.constant, .token.symbol, .token.deleted { color: #005cc5; }
        .token.selector, .token.attr-name, .token.string, .token.char, .token.builtin, .token.inserted { color: #032f62; }
        .token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string { color: #d73a49; background: transparent; }
        .token.atrule, .token.attr-value, .token.keyword { color: #d73a49; }
        .token.function, .token.class-name { color: #6f42c1; }
        .token.regex, .token.important, .token.variable { color: #e36209; }

        /* Custom Colorful Light Theme for CodeMirror (overrides eclipse) */
        /* Aiming for Monokai-ish vibes on Light Background: Pink Functions, Blue Keywords, Green Strings */
        .cm-s-eclipse .cm-keyword { color: #0077aa !important; font-weight: bold; } /* Vibrant Blue */
        .cm-s-eclipse .cm-atom { color: #ae81ff !important; } /* Purple */
        .cm-s-eclipse .cm-number { color: #aa5d00 !important; } /* Orange-ish */
        .cm-s-eclipse .cm-def { color: #e91e63 !important; font-weight: bold; } /* Pink/Magenta (Functions) */
        .cm-s-eclipse .cm-variable { color: #333333; }
        .cm-s-eclipse .cm-variable-2 { color: #e91e63 !important; } /* Pink (Function calls) */
        .cm-s-eclipse .cm-variable-3 { color: #22863a !important; }
        .cm-s-eclipse .cm-property { color: #e91e63 !important; } /* Pink (Properties like .choice) */
        .cm-s-eclipse .cm-operator { color: #d73a49 !important; }
        .cm-s-eclipse .cm-comment { color: #75715e !important; font-style: italic; }
        .cm-s-eclipse .cm-string { color: #22863a !important; } /* Green */
        .cm-s-eclipse .cm-string-2 { color: #22863a !important; }
        .cm-s-eclipse .cm-meta { color: #0077aa !important; }
        .cm-s-eclipse .cm-builtin { color: #e91e63 !important; }
        .cm-s-eclipse .cm-tag { color: #e91e63 !important; }
        .cm-s-eclipse .cm-attribute { color: #e91e63 !important; }
        .cm-s-eclipse .cm-header { color: #0077aa !important; }
        .cm-s-eclipse .cm-hr { color: #999 !important; }
        .cm-s-eclipse .cm-link { color: #0077aa !important; }

        /* Pandas Dataframe Styling */
        .dataframe th, .dataframe td {
            padding: 0.5rem;
            border: 1px solid #e5e7eb; /* gray-200 */
        }
        .dark .dataframe th, .dark .dataframe td {
            border-color: #374151; /* gray-700 */
        }
        .dataframe thead th {
            background-color: #f9fafb; /* gray-50 */
            font-weight: 600;
        }
        .dark .dataframe thead th {
            background-color: #1f2937; /* gray-800 */
        }

        /* Dark mode overrides for Prism */
        .dark code[class*="language-"],
        .dark pre[class*="language-"] {
            color: #e5e7eb;
        }

        .dark .token.comment,
        .dark .token.prolog,
        .dark .token.doctype,
        .dark .token.cdata {
            color: #9ca3af;
        }

        .dark .token.punctuation {
            color: #d1d5db;
        }

        .dark .token.namespace {
            opacity: .7;
        }

        .dark .token.property,
        .dark .token.tag,
        .dark .token.boolean,
        .dark .token.number,
        .dark .token.constant,
        .dark .token.symbol,
        .dark .token.deleted {
            color: #f87171;
        }

        .dark .token.selector,
        .dark .token.attr-name,
        .dark .token.string,
        .dark .token.char,
        .dark .token.builtin,
        .dark .token.inserted {
            color: #a7f3d0;
        }

        .dark .token.entity,
        .dark .token.url,
        .dark .language-css .token.string,
        .dark .style .token.string {
            color: #fcd34d;
        }

        .token.operator,
        .dark .token.operator {
            color: inherit;
            background: none;
        }

        .dark .token.atrule,
        .dark .token.attr-value,
        .dark .token.keyword {
            color: #60a5fa;
        }

        .dark .token.function,
        .dark .token.class-name {
            color: #f472b6;
        }

        .dark .token.regex,
        .dark .token.important,
        .dark .token.variable {
            color: #fbbf24;
        }

        /* CodeMirror Custom Overrides */
        .CodeMirror {
            height: auto !important;
            min-height: 50px;
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
            font-size: 0.875rem !important; /* text-sm */
            line-height: 1.625 !important;
            padding: 4px 0;
            background: transparent !important;
        }

        /* Light mode default adjustment */
        .CodeMirror-gutters {
            border-right: none !important;
            background: transparent !important;
        }

        /* Dark mode overrides (Ensure vibrant colors for Monokai) */
        .dark .CodeMirror {
            color: #e5e7eb !important;
        }
        .dark .CodeMirror-cursor {
            border-left: 1px solid white !important;
        }

        /* Force vibrant colors in Dark Mode for properties/functions if Monokai misses them */
        .cm-s-monokai .cm-property { color: #f92672 !important; } /* Vibrant Pink */
        .cm-s-monokai .cm-operator { color: #fd971f !important; } /* Vibrant Orange for operators */
        .cm-s-monokai .cm-variable-2 { color: #a6e22e !important; } /* Greenish for vars/funcs or use Pink if preferred */
        /* Actually Monokai uses #a6e22e (Green) for function names usually, and #66d9ef (Blue) for library/builtins.
           The user wants ".choice" (property) to be unique/colored.
           In standard Monokai, properties might be plain white. Let's make them Pink (#f92672) or Blue (#66d9ef).
           User liked the "unique color" in Light Mode (which I made Pink #e91e63).
           So let's use Pink (#f92672) for properties in Dark Mode too.
        */
        .cm-s-monokai .cm-variable-2 { color: #66d9ef !important; } /* Blue for function calls usually looks good, or match property? */
        /* Let's stick to the User's specific request: ".choice ... has a nice colour ... dark mode ... all black" */
        /* So target .cm-property specifically. */

        /* Placeholder color */
        .CodeMirror-placeholder {
            color: #9ca3af !important;
        }

        /* --- Auth Screen Styles (Blue/Black Theme) --- */
        .main-gradient-text {
            background: -webkit-linear-gradient(45deg, #3b82f6, #60a5fa);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }
        .main-gradient-bg {
            background: linear-gradient(to right, #1d4ed8, #3b82f6);
        }
        .main-gradient-box {
            background: linear-gradient(to right, #2563eb, #1d4ed8);
        }
        .auth-form-container {
            min-height: 100vh;
            min-height: 100dvh; /* Mobile viewport fix */
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 1rem;
            /* Subtle background pattern for auth screen */
            background-image: radial-gradient(circle at 50% 50%, rgba(59, 130, 246, 0.05) 0%, transparent 50%);
        }
        .dark .auth-form-container {
            background-image: radial-gradient(circle at 50% 50%, rgba(29, 78, 216, 0.1) 0%, transparent 60%);
        }

        /* Search Highlight */
        .search-highlight {
            background-color: rgba(253, 224, 71, 0.5); /* yellow-300 with opacity */
        }
        .dark .search-highlight {
            background-color: rgba(251, 191, 36, 0.6); /* amber-400 */
        }

        /* CodeMirror Hints */
        .CodeMirror-hints {
            position: absolute;
            z-index: 100;
            overflow: hidden;
            list-style: none;
            margin: 0;
            padding: 2px;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
            border-radius: 0.375rem;
            border: 1px solid #e5e7eb;
            background: white;
            font-size: 0.875rem;
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
            max-height: 20em;
            overflow-y: auto;
        }
        .dark .CodeMirror-hints {
            background: #1f2937;
            border-color: #374151;
            color: #e5e5e5;
        }

        .CodeMirror-hint {
            margin: 0;
            padding: 4px 8px;
            border-radius: 0.25rem;
            white-space: pre;
            color: #374151;
            cursor: pointer;
        }
        .dark .CodeMirror-hint {
            color: #d1d5db;
        }

        li.CodeMirror-hint-active {
            background: #3b82f6;
            color: white;
        }
        .dark li.CodeMirror-hint-active {
            background: #2563eb;
            color: white;
        }

        /* Docstring Tooltip */
        .doc-tooltip {
            position: absolute;
            z-index: 110;
            background: #ffffff;
            border: 1px solid #e5e7eb;
            padding: 8px;
            font-size: 0.8rem;
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
            max-width: 400px;
            max-height: 200px;
            overflow: auto;
            white-space: pre-wrap;
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
            border-radius: 0.375rem;
        }
        .dark .doc-tooltip {
            background: #111827;
            border: 1px solid #374151;
            color: #e5e5e5;
        }

        /* Traceback Styling */
        .traceback-container {
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
            white-space: pre-wrap;
            font-size: 0.875rem;
            line-height: 1.5;
            color: #1f2937;
        }
        .dark .traceback-container {
            color: #e5e5e5;
        }

        .tb-header {
            color: #dc2626; /* red-600 */
            font-weight: bold;
        }
        .dark .tb-header {
            color: #f87171; /* red-400 */
        }

        .tb-frame-header {
             color: #4b5563; /* gray-600 */
        }
        .dark .tb-frame-header {
             color: #9ca3af; /* gray-400 */
        }

        .tb-arrow {
            color: #2563eb; /* blue-600 */
            font-weight: bold;
        }
        .dark .tb-arrow {
            color: #60a5fa; /* blue-400 */
        }
