@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap";:root{--color-primary:#6366f1;--color-primary-dark:#4f46e5;--color-primary-light:#818cf8;--color-primary-lighter:#a5b4fc;--color-primary-bg:#eef2ff;--color-secondary:#14b8a6;--color-secondary-dark:#0d9488;--color-secondary-light:#2dd4bf;--color-secondary-bg:#f0fdfa;--color-white:#fff;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-success:#10b981;--color-success-bg:#d1fae5;--color-warning:#f59e0b;--color-warning-bg:#fef3c7;--color-error:#ef4444;--color-error-bg:#fee2e2;--color-info:#3b82f6;--color-info-bg:#dbeafe;--color-bg-primary:#fff;--color-bg-secondary:#f9fafb;--color-bg-tertiary:#f3f4f6;--color-text-primary:#111827;--color-text-secondary:#4b5563;--color-text-tertiary:#6b7280;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:16px;--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--spacing-3xl:64px;--font-primary:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-heading:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.75;--transition-fast:.15s cubic-bezier(.4,0,.2,1);--transition-base:.2s cubic-bezier(.4,0,.2,1);--transition-slow:.3s cubic-bezier(.4,0,.2,1);--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal:1040}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-primary);line-height:var(--leading-normal);background-color:var(--color-bg-secondary);color:var(--color-text-primary);min-height:100vh}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--color-text-primary)}h1{font-size:var(--text-4xl);margin-bottom:var(--spacing-lg)}h2{font-size:var(--text-3xl);margin-bottom:var(--spacing-md)}h3{font-size:var(--text-2xl);margin-bottom:var(--spacing-md)}h4{font-size:var(--text-xl);margin-bottom:var(--spacing-sm)}p{margin-bottom:var(--spacing-md);color:var(--color-text-secondary)}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-dark)}button{font-family:var(--font-primary);font-weight:var(--font-medium);font-size:var(--text-base);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);background-color:var(--color-primary);color:var(--color-white);border:none;padding:10px 20px}button:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-md)}input[type=text],input[type=email],input[type=password],input[type=file],select,textarea{width:100%;font-family:var(--font-primary);font-size:var(--text-base);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);background-color:var(--color-white);color:var(--color-text-primary);transition:all var(--transition-base);padding:10px 12px}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg);outline:none}.form-group label{margin-bottom:var(--spacing-sm);font-weight:var(--font-medium);color:var(--color-text-primary);font-size:var(--text-sm);display:block}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-gray-100)}::-webkit-scrollbar-thumb{background:var(--color-gray-400);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-500)}::selection{background-color:var(--color-primary-light);color:var(--color-white)}.nav-brand{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-primary);text-decoration:none}@media (max-width:768px){.navbar{gap:var(--spacing-md);flex-direction:column}.nav-links{gap:var(--spacing-sm);flex-direction:column;width:100%}.nav-links a{text-align:center}.app-content{padding:var(--spacing-lg)var(--spacing-md)}}.home-page{padding:var(--spacing-2xl)0;text-align:center}.home-page h1{font-size:var(--text-5xl);font-weight:var(--font-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.home-page>p{font-size:var(--text-lg);color:var(--color-text-secondary);max-width:600px;margin:0 auto var(--spacing-3xl);line-height:var(--leading-relaxed)}.features{gap:var(--spacing-xl);margin-top:var(--spacing-3xl);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.feature-card{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);padding:var(--spacing-2xl);box-shadow:var(--shadow-sm);transition:all var(--transition-base);text-align:center}.feature-card:hover{box-shadow:var(--shadow-lg);border-color:var(--color-primary-light);transform:translateY(-4px)}.feature-card h2{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.feature-card p{font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin:0}@media (max-width:768px){.home-page h1{font-size:var(--text-4xl)}.features{grid-template-columns:1fr}}.upload-page{max-width:600px;margin:0 auto;padding:2rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.upload-page h1{text-align:center;color:#333;margin-bottom:2rem}.upload-container{background:#f8f9fa;border-radius:8px;padding:2rem;box-shadow:0 2px 10px #0000001a}.upload-section{margin-bottom:1.5rem}.file-select-button{color:#fff;cursor:pointer;background-color:#6c757d;border:none;border-radius:6px;margin-bottom:1rem;padding:12px 24px;font-size:16px;transition:background-color .2s}.file-select-button:hover:not(:disabled){background-color:#5a6268}.file-select-button:disabled{cursor:not-allowed;background-color:#adb5bd}.file-info{background:#fff;border:1px solid #dee2e6;border-radius:6px;margin-top:1rem;padding:1rem}.file-info p{margin:.5rem 0;font-size:14px}.upload-button{color:#fff;cursor:pointer;background-color:#007bff;border:none;border-radius:6px;width:100%;margin-bottom:1rem;padding:15px;font-size:18px;font-weight:600;transition:background-color .2s}.upload-button:hover:not(:disabled){background-color:#0056b3}.upload-button:disabled{cursor:not-allowed;background-color:#6c757d}.upload-button.uploading{color:#212529;background-color:#ffc107}.upload-status{border-radius:6px;margin-bottom:1rem;padding:12px;font-weight:500}.upload-status.success{color:#155724;background-color:#d4edda;border:1px solid #c3e6cb}.upload-status.error{color:#721c24;background-color:#f8d7da;border:1px solid #f5c6cb}.upload-status.info{color:#0c5460;background-color:#d1ecf1;border:1px solid #bee5eb}.upload-instructions{background:#fff;border:1px solid #dee2e6;border-radius:6px;padding:1.5rem}.upload-instructions h3{color:#495057;margin-top:0}.upload-instructions ul{margin:0;padding-left:1.5rem}.upload-instructions li{color:#6c757d;margin-bottom:.5rem}input[type=file]{display:none}.selected-file{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-success-bg);border-radius:var(--radius-md);border-left:4px solid var(--color-success)}.selected-file p{color:var(--color-text-primary);font-size:var(--text-sm);margin:0}.selected-file .file-name{color:var(--color-success);font-weight:var(--font-semibold)}button{background-color:var(--color-primary);width:100%;color:var(--color-white);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-base);margin-top:var(--spacing-lg);border:none;padding:12px 24px}button:hover:not(:disabled){background-color:var(--color-primary-dark)}button:disabled{opacity:.5;cursor:not-allowed}.upload-status{margin-top:var(--spacing-lg);padding:var(--spacing-md);border-radius:var(--radius-md);font-weight:var(--font-medium);font-size:var(--text-sm)}.upload-status.success{background-color:var(--color-success-bg);color:var(--color-success);border-left:4px solid var(--color-success)}.upload-status.error{background-color:var(--color-error-bg);color:var(--color-error);border-left:4px solid var(--color-error)}.upload-status.uploading{background-color:var(--color-info-bg);color:var(--color-info);border-left:4px solid var(--color-info)}@media (max-width:768px){.upload-page h1{font-size:var(--text-3xl)}.upload-container,.upload-area{padding:var(--spacing-xl)}}.analyze-page{padding:var(--spacing-xl)0}.analyze-page h1{font-size:var(--text-4xl);font-weight:var(--font-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-2xl);text-align:center}.analysis-container{max-width:900px;margin:0 auto}.query-section{background:var(--color-white);padding:var(--spacing-2xl);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-bottom:var(--spacing-2xl);border:1px solid var(--color-gray-200)}.analysis-controls{max-width:100%}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{margin-bottom:var(--spacing-sm);font-weight:var(--font-medium);color:var(--color-text-primary);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.5px;display:block}.form-group select{border:1px solid var(--color-gray-300);border-radius:var(--radius-md);background-color:var(--color-white);width:100%;color:var(--color-text-primary);font-size:var(--text-base);font-family:var(--font-primary);transition:all var(--transition-base);cursor:pointer;padding:12px 16px}.form-group select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg);outline:none}.analysis-controls button{background-color:var(--color-primary);width:100%;color:var(--color-white);border-radius:var(--radius-md);font-weight:var(--font-semibold);font-size:var(--text-base);cursor:pointer;transition:all var(--transition-base);margin-top:var(--spacing-md);border:none;padding:12px 24px}.analysis-controls button:hover:not(:disabled){background-color:var(--color-primary-dark)}.analysis-controls button:disabled{opacity:.5;cursor:not-allowed}.analysis-results{background:var(--color-white);padding:var(--spacing-2xl);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--color-gray-200)}.analysis-results h2{font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--color-gray-200)}.result-section{margin-bottom:var(--spacing-xl)}.result-section h3{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.result-section p{color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--spacing-md)}.result-section pre{background:var(--color-gray-50);padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--color-gray-200);font-size:var(--text-sm);color:var(--color-text-primary);overflow-x:auto}.chart-container{margin-bottom:var(--spacing-xl);text-align:center}.chart-container img{border:1px solid var(--color-gray-300);border-radius:var(--radius-md);max-width:100%;height:auto;box-shadow:var(--shadow-md)}.chart-container canvas{border-radius:var(--radius-md);max-width:100%;box-shadow:var(--shadow-md);height:auto!important}.chart-error{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--color-error-bg);border-radius:var(--radius-md);border-left:4px solid var(--color-error);text-align:center}.text-result{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--color-gray-50);border-radius:var(--radius-md);border-left:4px solid var(--color-primary)}.text-result p{line-height:var(--leading-relaxed);color:var(--color-text-primary);margin:0}.error-result{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--color-error-bg);border-radius:var(--radius-md);border-left:4px solid var(--color-error)}.error-result p{color:var(--color-error);margin:0}.debug-info{margin-top:var(--spacing-xl);padding:var(--spacing-lg);background:var(--color-gray-100);border-radius:var(--radius-md);border:1px solid var(--color-gray-300)}.debug-info pre{background:var(--color-gray-800);color:var(--color-gray-100);padding:var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--text-xs);margin:0;overflow-x:auto}.loading-message{text-align:center;font-size:var(--text-lg);color:var(--color-primary);padding:var(--spacing-3xl)}.error-message{text-align:center;font-size:var(--text-base);color:var(--color-error);padding:var(--spacing-xl);background:var(--color-error-bg);border-radius:var(--radius-md);border-left:4px solid var(--color-error)}@media (max-width:768px){.analyze-page h1{font-size:var(--text-3xl)}.query-section,.analysis-results{padding:var(--spacing-lg)}}.app-layout{flex-direction:column;min-height:100vh;display:flex}.app-header{background-color:var(--color-white);box-shadow:var(--shadow-sm);z-index:var(--z-sticky);padding:1rem 2rem;position:sticky;top:0}.navbar{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.nav-brand{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-primary);align-items:center;gap:var(--spacing-sm);text-decoration:none;display:flex}.nav-brand:hover{color:var(--color-primary-dark)}.nav-links{gap:var(--spacing-lg);margin:0;padding:0;list-style:none;display:flex}.nav-links a{color:var(--color-text-secondary);font-weight:var(--font-medium);font-size:var(--text-base);border-radius:var(--radius-md);transition:all var(--transition-base);padding:8px 16px;text-decoration:none}.nav-links a:hover{color:var(--color-primary);background-color:var(--color-primary-bg)}.app-content{padding:var(--spacing-2xl)var(--spacing-lg);flex-grow:1;width:100%;max-width:1200px;margin:0 auto}.app-footer{background-color:var(--color-white);color:var(--color-text-secondary);text-align:center;padding:var(--spacing-xl)var(--spacing-lg);border-top:1px solid var(--color-gray-200);margin-top:auto}.app-footer p{font-size:var(--text-sm);margin:0}.card{background:var(--color-white);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-md);border:1px solid var(--color-gray-200)}.widget-card{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.widget-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.widget-card h2{color:var(--color-text-primary);margin-bottom:var(--spacing-lg);font-size:var(--text-xl);font-weight:var(--font-semibold)}.widget-card ul{padding:0;list-style:none}.widget-card li{padding:var(--spacing-sm)0;border-bottom:1px solid var(--color-gray-100);color:var(--color-text-secondary)}.widget-card li:last-child{border-bottom:none}.message{padding:var(--spacing-md);border-radius:var(--radius-md);margin-top:var(--spacing-md);font-weight:var(--font-medium)}.message.success{background-color:var(--color-success-bg);color:var(--color-success);border-left:4px solid var(--color-success)}.message.error{background-color:var(--color-error-bg);color:var(--color-error);border-left:4px solid var(--color-error)}.message.info{background-color:var(--color-info-bg);color:var(--color-info);border-left:4px solid var(--color-info)}@media (max-width:768px){.navbar{gap:var(--spacing-md);flex-direction:column}.nav-links{gap:var(--spacing-sm);flex-direction:column;width:100%}.nav-links a{text-align:center}.app-content{padding:var(--spacing-lg)var(--spacing-md)}}
