        :root {
            --background-color: #F8F9FA;
            /* A very light, clean gray, not stark white */
            --nav-background: #FFFFFF;
            --nav-border: #E5E7EB;
            --text-primary: #1E293B;
            /* A dark charcoal, softer than pure black */
            --text-secondary: #6B7280;
            /* A standard gray for supporting text */

            --brand-accent: #0D6EFD;
            /* A classic, strong "finance" blue */
            --brand-accent-light: #7EADF8;
            /* A softer, sky blue for the gradient highlight */
            --color-good: #198754;
            /* A deeper, more confident green */
            --color-bad: #DC3545;
            /* A standard, strong red */
            --color-neutral: #FFC107;
            /* A clear, visible amber */
            --heading-color: #0F172A; 
            /* A darker, richer navy-black than standard Slate */
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            background-color: var(--background-color);
            background: var(--background-color);
            color: var(--text-primary);
            min-height: 100vh;
        }

        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 20px;
        }

        nav {
            position: relative;
            z-index: 1100;
            background: var(--nav-background);
            /* Replace glassmorphism with a clean shadow for a more professional light-mode look */
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
            padding: 1rem 0;
            border-top: 1px solid var(--nav-border);
            border-bottom: 1px solid var(--nav-border);
        }

        .logo {
            font-size: 1.5rem;
            font-weight: bold;
            color: var(--brand-accent);
            text-decoration: none;
            z-index: 2000;
            margin-bottom: 8px;
        }

        main {
            padding: 4rem 0;
            min-height: calc(100vh - 80px);
        }

        .page {
            background: rgba(255, 255, 255, 0.95);
            border-radius: 16px;
            padding: 3rem;
            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.2);
        }

        h1 {
            color: var(--text-primary);
            margin-bottom: 2rem;
            font-size: 2.5rem;
            text-align: center;
        }

        h2 {
            color: var(--text-secondary);
            margin-bottom: 1.5rem;
            font-size: 1.8rem;
        }

        h3 {
            color: var(--text-secondary);
            margin-bottom: 1rem;
            font-size: 1.4rem;
        }

        h4 {
            color: var(--text-secondary);
            margin-bottom: 1rem;
            font-size: 500;
        }

        h1.headline, h2.subheadline, h3.subheadline {
            font-family: 'Plus Jakarta Sans', sans-serif;
            color: var(--heading-color);
            line-height: 1.2; /* Tighter leading makes headlines feel punchier */
        }
        h1.headline {
            font-weight: 800; /* Extra Bold */
            letter-spacing: -0.025em; /* Tight tracking for impact */
            font-size: 3.5rem; /* Make it BIG */
        }
        h2.subheadline {
            font-weight: 700;
            letter-spacing: -0.015em;
            font-size: 2.25rem;
        }
        h3.subheadline {
            font-weight: 600;
            font-size: 1.5rem;
            color: #334155; /* Slightly lighter for hierarchy */
        }



        p {
            color: #718096;
            line-height: 1.6;
            margin-bottom: 1.5rem;
            font-size: 1.1rem;
        }

        .cautionDiv {
            color: sienna;
            padding-left: 20px 0px;
            font-weight: bold;
        }

        .feature-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 2rem;
            margin-top: 3rem;
        }

        .feature-card {
            /* Use a very subtle gradient from a light version of your brand color to white */
            background: linear-gradient(135deg, #E7F0FF 0%, #FFFFFF 100%);
            /* Light Blue to White */

            color: var(--text-primary);
            padding: 2rem;
            border-radius: 12px;
            text-align: center;
            border: 1px solid var(--nav-border);
            transform: translateY(0);
            transition: transform 0.3s ease;
        }

        .feature-card:hover {
            transform: translateY(-5px);
        }

        .feature-card h3 {
            margin-bottom: 1rem;
            font-size: 1.3rem;
            color: var(--text-primary);
        }

        .feature-card p {
            color: var(--text-primary);
        }

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

        label {
            display: block;
            margin-bottom: 0.5rem;
            color: #4a5568;
            font-weight: 500;
        }

        input[type="text"],
        input[type="email"],
        input[type="password"],
        textarea {
            width: 100%;
            padding: 1rem;
            border: 2px solid #e2e8f0;
            border-radius: 8px;
            font-size: 1rem;
            transition: border-color 0.3s ease;
        }

        input[type="text"]:focus,
        input[type="email"]:focus,
        input[type="password"]:focus,
        textarea:focus {
            outline: none;
            border-color: #667eea;
            box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
        }

        textarea {
            height: 120px;
            resize: vertical;
        }

        .file-upload {
            display: flex;
            align-items: center;
            gap: 1rem;
            margin-bottom: 1.5rem;
        }

        .file-input {
            display: none;
        }

        .file-button {
            background: #4299e1;
            color: white;
            padding: 0.75rem 1.5rem;
            border: none;
            border-radius: 8px;
            cursor: pointer;
            font-size: 1rem;
            transition: all 0.3s ease;
        }

        .file-button:hover {
            background: #3182ce;
            transform: translateY(-2px);
        }

        .file-name {
            color: #4a5568;
            font-style: italic;
        }

        .submit-btn {
            background: linear-gradient(135deg, #0D6EFD 0%, #3B82F6 100%);
            color: var(--nav-background);
            padding: 1rem 2rem;
            border: none;
            border-radius: 8px;
            font-size: 1.1rem;
            cursor: pointer;
            transition: all 0.3s ease-in-out;
            /* width: 100%; */
            margin-top: 1rem;
             /* --- Effects --- */
            transform: translateY(0);
            box-shadow: 0 4px 12px rgba(13, 110, 253, 0.3);
            /* A blue-tinted shadow */
        }

        .submit-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 16px rgba(13, 110, 253, 0.4);
        }

        .success-message {
            background: #48bb78;
            color: white;
            padding: 1rem;
            border-radius: 8px;
            margin-top: 1rem;
            text-align: center;
        }

        .example-content {
            background: #f7fafc;
            padding: 2rem;
            border-radius: 8px;
            margin: 2rem 0;
            /* border-left: 4px solid #667eea; */
        }

        .auth-form {
            max-width: 400px;
            margin: 0 auto;
        }

        .error-message {
            background: #fed7d7;
            color: #c53030;
            padding: 1rem;
            border-radius: 8px;
            margin-bottom: 1rem;
            border-left: 4px solid #c53030;
        }

        .chart-placeholder {
            background: #e2e8f0;
            height: 300px;
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #4a5568;
            font-size: 1.2rem;
            margin: 2rem 0;
        }

        #finEx,
        #techEx,
        #patEx {
            margin: 20px;
        }


        .linkBtn {
            display: inline-block;
            margin-top: 1rem;
            padding: 0.5rem 1rem;
            background: linear-gradient(135deg, #0D6EFD 0%, #3B82F6 100%);
            color: var(--nav-background);
            border-radius: 8px;
            text-decoration: none;
            font-weight: bold;
            transition: all 0.3s ease;
        }

        .linkBtn:hover {
            background: rgb(104, 78, 162);
            transform: translateY(-2px);
        }

        .analysis-report-container {
            margin-top: 1rem;
            padding-top: 1rem;
            border: 1px solid #afafaf;
            border-radius: 8px;
        }
        #analysis-report {
            margin-top: .1rem;
            padding: 1rem;
        }
        #resultDiv {
            margin-top: .1rem;
            padding: 1rem;
            border: 0px solid #afafaf;
            border-radius: 8px;
            /* background: #f9f9f9; */
        }

        .drop-zone {
            border: 3px dashed #ddd;
            border-radius: 8px;
            padding: 40px 20px;
            text-align: center;
            background: #fafafa;
            cursor: pointer;
            transition: all 0.3s ease;
            min-height: 200px;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            margin-bottom: 16px;
        }

        .drop-zone:hover {
            border-color: #007bff;
            background: #f0f8ff;
        }

        .drop-zone.dragover {
            border-color: #007bff;
            background: #e3f2fd;
            transform: scale(1.02);
        }

        .drop-zone.has-image {
            border-color: #28a745;
            background: #f8fff9;
            padding: 20px;
        }

        .drop-text {
            color: #666;
            font-size: 18px;
            margin-bottom: 10px;
        }

        .drop-subtext {
            color: #999;
            font-size: 14px;
        }

        .preview-image {
            max-width: 100%;
            max-height: 400px;
            border-radius: 8px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
            margin: 20px 0;
        }

        .copyButton {
            background: none;
            border: none;
            cursor: pointer;
            padding: 0;
            margin: 0;
        }

        #copyBtnDiv {
            text-align: right;
            display: none;
        }

        li {
            margin-bottom: 0.5rem;
        }

        #status-message {
            border-radius: 8px;
            border: #999 1px solid;
            font-size: large;
            font-weight: normal;
            font-family: Lato, Futura, 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
            color: #7254B0;
            padding: 20px;
            opacity: 0;
            display: none;
        }

            #status-message-stream {
            border-radius: 8px;
            border: #999 1px solid;
            font-size: large;
            font-weight: normal;
            font-family: Lato, Futura, 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
            color: #7254B0;
            padding: 20px;
        }
        /* Footer Styles */
        .site-footer {
            background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
            color: #e2e8f0;
            padding: 30px 20px 20px;
            margin-top: auto;
        }

        .footer-content {
            max-width: 1200px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 40px;
            margin-bottom: 10px;
        }

        .footer-section h3,
        .footer-section h4 {
            margin-top: 0;
            margin-bottom: 16px;
            color: #f8fafc;
        }

        .footer-brand {
            font-size: 24px;
            font-weight: 700;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }

        .footer-tagline {
            color: #94a3b8;
            font-size: 14px;
            margin: 0;
        }

        .footer-links {
            list-style: none;
            padding: 0;
            margin: 0;
        }

        .footer-links li {
            margin-bottom: 12px;
        }

        .footer-links a {
            color: #cbd5e1;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            transition: all 0.2s;
            font-size: 14px;
        }

        .footer-links a:hover {
            color: #667eea;
            transform: translateX(4px);
        }

        /* --- Gradient Text Class --- */
        /* This class can be applied to any text element (h1, p, span) inside the footer */
        .footer-logo-gradient {
            /* 1. Create the Gradient Background */
            /* We use the two gold tones to create a subtle, premium shimmer */
            background: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-accent-light) 100%);

            /* 2. Clip the background to the text */
            /* This makes the gradient only visible where there is text */
            -webkit-background-clip: text;
            background-clip: text;
            /* Standard property */

            /* 3. Make the text color transparent */
            /* This makes the gradient background visible through the text */
            -webkit-text-fill-color: transparent;

            /* Optional: Add a subtle glow for better readability on a dark background */
            filter: drop-shadow(0 0 5px rgba(242, 204, 143, 0.2));

            /* Ensure it's an inline element to play nicely with other text if needed */
            display: inline-block;
        }

        .contact-link {
            font-weight: 600;
            cursor: pointer;
        }

        .newsletter-text {
            color: #94a3b8;
            font-size: 14px;
            margin-bottom: 12px;
        }

        .newsletter-form {
            display: flex;
            gap: 8px;
        }

        .newsletter-form input {
            flex: 1;
            padding: 10px 12px;
            border: 2px solid #334155;
            border-radius: 6px;
            background: #1e293b;
            color: #e2e8f0;
            font-size: 14px;
            outline: none;
            transition: border-color 0.2s;
        }

        .newsletter-form input:focus {
            border-color: #667eea;
        }

        .newsletter-form input::placeholder {
            color: #64748b;
        }

        .newsletter-form button {
            padding: 10px 20px;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            border: none;
            border-radius: 6px;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s;
            white-space: nowrap;
        }

        .newsletter-form button:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
        }

        #newsletterDiv {
            display: none;
        }

        .footer-bottom {
            max-width: 1200px;
            margin: 0 auto;
            padding-top: 10px;
            border-top: 1px solid #334155;
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 16px;
        }

        .footer-bottom p {
            margin: 0;
            color: #94a3b8;
            font-size: 14px;
        }

        .footer-bottom-links {
            display: flex;
            align-items: center;
            gap: 12px;
            font-size: 14px;
        }

        .footer-bottom-links a {
            color: #cbd5e1;
            text-decoration: none;
            transition: color 0.2s;
        }

        .footer-bottom-links a:hover {
            color: #667eea;
        }

        .separator {
            color: #475569;
        }

        @media (max-width: 768px) {
            .site-footer {
                padding: 40px 20px 20px;
            }

            .footer-content {
                grid-template-columns: 1fr;
                gap: 30px;
            }

            .footer-bottom {
                flex-direction: column;
                text-align: center;
            }

            .newsletter-form {
                flex-direction: column;
            }

            .newsletter-form button {
                width: 100%;
            }
        }

        .bodyCopy {
            font-size: 1.1rem;
            line-height: 1.6;
            color: #4a5568;
            margin: 1.5rem 3rem;
            text-align: center;
        }

        .pulsing-dots-loader {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 10px;
            /* Space between dots */
        }

        .pulsing-dots-loader div {
            width: 12px;
            height: 12px;
            background-color: #42b883;
            /* <-- CHANGE THIS to your brand color */
            border-radius: 50%;
            /* Animation: name, duration, timing-function, iteration-count, direction */
            animation: pulse 1.4s ease-in-out infinite alternate;
        }

        /* Stagger the animation start for each dot */
        .pulsing-dots-loader div:nth-child(2) {
            animation-delay: 0.2s;
        }

        .pulsing-dots-loader div:nth-child(3) {
            animation-delay: 0.4s;
        }

        .thinking-flex-container {
            display: flex; /* Makes the div a flex container */
            flex-direction: row;
            justify-content: left; /* Aligns items horizontally in the center */
            align-items: center; /* Aligns items vertically in the center */
            /* Add other styling as needed, e.g., height, border */
            
        }

        .mini-loader {
            text-align: center;
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 10px;
            font-size: 1rem;
            color: #555;
            margin-bottom: 20px;
        }

        @keyframes pulse {
            from {
                opacity: 1;
                transform: scale(1);
            }

            to {
                opacity: 0.5;
                transform: scale(0.75);
            }
        }

        /*
 * This is the main container for the inline loader.
 * It uses Flexbox to align items horizontally.
*/
        .loading-container-inline {
            display: flex;
            /* CRITICAL: This makes children align horizontally */
            flex-direction: row;
            /* This is the default, but it's good to be explicit */
            justify-content: flex-start;
            /* CRITICAL CHANGE: This aligns the group to the left */
            align-items: center;
            /* CRITICAL: This aligns the text and dots vertically in the middle */
            padding: 10px;
            min-height: 100px;
        }

        .two-column-list {
            /* --- Mobile First Styles (Default) --- */
            /* By default, it's a single column. */
            column-count: 1;

            /* Optional styling */
            list-style-position: inside;
            padding-left: 0;
        }

        /* --- Media Query for Wider Screens --- */
        /* This block of CSS will ONLY apply when the screen width is 768px or wider. */
        @media (min-width: 768px) {
            .two-column-list {
                /* Switch to two columns on tablets and desktops */
                column-count: 2;

                /* Add a gap between the columns */
                column-gap: 40px;
            }
        }

        /* Badges */
        .badge {
            display: inline-block;
            padding: 4px 10px;
            border-radius: 99px;
            font-size: 1rem;
            font-weight: 600;
        }

        .badge-bullish {
            background: green;
            color: white;
        }

        .badge-bearish {
            background: red;
            color: white;
        }

        .badge-neutral {
            background: #4b5563;
            color: white;
        }

        .badge-valid {
            background: #dbeafe;
            color: #1e40af;
            border: 1px solid #bfdbfe;
        }

        .badge-invalid {
            background: #f3f4f6;
            color: #9ca3af;
            border: 1px solid #e5e7eb;
        }
        .summary-label {
            display: block;
            font-size: 0.75rem;
            text-transform: uppercase;
            color: #64748b;
            font-weight: 700;
            margin-bottom: 0.5rem;
        }
        .summary-text {
            background-color: #eaf3ff;
            padding: 15px;
            border-left: 5px solid #0056b3;
            border-radius: 5px;
            margin-bottom: 20px;
        }
        table {
            width: 100%;
            border-collapse: collapse;
        }
        th, td {
            border: 1px solid #ddd;
            padding: 8px;
            text-align: left;
        }
        th {
            background-color: #f2f2f2;
        }

/* Annotation box with arrow pointer */
.annotation-box-echarts {
    position: absolute;
    transform: translate(-50%, -100%);
    padding: 8px 12px;
    font-size: 12px;
    color: white;
    white-space: pre-line;
    border-radius: 6px;
    /* pointer-events: none; */
    max-width: 220px;
    box-shadow: 0 3px 8px rgba(0,0,0,0.45);
}

/* Automatic arrow pointing to candle */
.annotation-box-echarts::after {
    content: "";
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 8px solid inherit;
}
