:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--bg:#f8fafc;--panel:#ffffff;--text:#1e293b;--muted:#64748b;--brand:#3b82f6;--ok:#10b981;--warn:#f59e0b;--err:#ef4444;--border:1px solid #e2e8f0;--radius:12px;--shadow:0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app{max-width:1200px;margin:0 auto;padding:16px;display:grid;gap:16px;grid-template-areas:"heading" "controls" "actions" "numbers" "charts"}@media (min-width: 1024px){.app{gap:20px;grid-template-columns:1fr 1fr;grid-template-areas:"heading  heading" "controls actions" "numbers  charts" "numbers  charts"}}.heading{grid-area:heading}.controls{grid-area:controls}.actions{grid-area:actions}.numbers{grid-area:numbers}.charts{grid-area:charts}.panel{background:var(--panel);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.heading h1{margin:0 0 6px;font-size:clamp(22px,3.4vw,34px);letter-spacing:.2px}.heading p{margin:0;color:var(--muted)}.controls .upload-section{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.controls .upload-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.upload-item{flex:1 1 280px;min-width:200px;display:flex;flex-direction:column;gap:8px}.upload-item label{font-size:12px;color:var(--muted);font-weight:600}.upload-item input[type=file]{display:none}.btn-group{display:flex;gap:8px;flex-wrap:wrap}button.btn{padding:10px 14px;border-radius:10px;border:1px solid transparent;background:#f1f5f9;color:var(--text);cursor:pointer;transition:transform .06s ease,border-color .2s ease,background .2s ease}button.btn:hover{transform:translateY(-1px);background:#e2e8f0}button.btn:active{transform:translateY(0)}button.primary{background:var(--brand);color:#fff}button.ghost{background:#f8fafc;border-color:#cbd5e1}button.success{background:var(--ok);color:#fff}button.warn{background:var(--warn);color:#fff}button.error{background:var(--err);color:#fff}.messages{width:100%;display:grid;gap:8px;margin-top:10px}.alert{border-radius:10px;padding:10px 12px;border:1px solid #e2e8f0;background:#f8fafc;display:flex;gap:8px;align-items:flex-start;font-size:13px}.alert .title{font-weight:600}.alert.success{border-color:#bbf7d0;background:#dcfce7}.alert.warn{border-color:#fed7aa;background:#fef3c7}.alert.error{border-color:#fecaca;background:#fee2e2}.actions{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:12px}.actions .cta{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%}.actions .cta button{font-size:16px;padding:14px 20px;min-width:200px}.actions .cta button:disabled{background:#0f1117;color:var(--muted);cursor:not-allowed;transform:none}.actions .secondary-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.actions .secondary-actions button{font-size:13px;padding:8px 12px}.actions .hint{color:var(--muted);font-size:12px;margin-top:8px}.numbers .grid{display:grid;gap:12px;grid-template-columns:1fr 1fr}@media (min-width: 1024px){.numbers .grid{grid-template-columns:repeat(3,1fr)}}.stat{background:#fff;border:var(--border);border-radius:12px;padding:12px}.stat .label{color:var(--muted);font-size:12px;margin-bottom:4px}.stat .value{font-size:22px;font-weight:700}.charts .grid{display:grid;gap:12px;grid-template-columns:1fr}@media (min-width: 1200px){.charts .grid{grid-template-columns:1fr 1fr}}.chart-card{min-height:400px;min-width:500px;background:#fff;border:var(--border);border-radius:12px;padding:16px;overflow:hidden}.chart-card h3{margin:0 0 12px;font-size:14px;color:var(--text)}.controls h2,.actions h2,.numbers h2,.charts h2{margin:0 0 16px;font-size:18px}.analysis-controls{margin-top:20px;padding-top:20px;border-top:var(--border)}.analysis-controls .control-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:12px}.analysis-controls label{font-size:13px;color:var(--muted);font-weight:600;white-space:nowrap}.analysis-controls select{padding:8px 10px;border-radius:8px;border:var(--border);background:#fff;color:var(--text);outline:none}.analysis-controls input[type=range]{flex:1;min-width:120px}.status-pending{color:var(--muted)}.status-success{color:var(--ok)}.status-error{color:var(--err)}.status-uploading{color:var(--brand)}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}@tailwind base;@tailwind components;@tailwind utilities;@layer base{*{@apply box-border;}html,body{@apply h-full;}body{@apply bg-gray-50 text-gray-900 font-sans antialiased;}}@layer components{.btn-primary{@apply inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-lg shadow-sm text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-all duration-200;}.btn-secondary{@apply inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-lg shadow-sm text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-all duration-200;}.card{@apply bg-white rounded-xl shadow-lg border border-gray-200 overflow-hidden;}.stat-card{@apply bg-white p-6 rounded-xl shadow-lg border border-gray-200 hover:shadow-xl transition-all duration-300;}.chart-container{@apply bg-white p-6 rounded-xl shadow-lg border border-gray-200;}}@layer utilities{.text-gradient{@apply bg-gradient-to-r from-primary-600 to-blue-600 bg-clip-text text-transparent;}.bg-gradient-primary{@apply bg-gradient-to-br from-primary-500 to-blue-600;}}.card{@apply bg-white rounded-lg shadow-md;}.btn-primary{@apply bg-blue-600 hover:bg-blue-700 text-white font-medium py-2 px-4 rounded-lg transition-colors duration-200 flex items-center;}.stat-card{@apply bg-white rounded-lg shadow-md p-6 border border-gray-200;}.text-gradient{@apply bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent;}.chart-container{@apply bg-white rounded-lg shadow-md p-6 border border-gray-200;}.slider{background:linear-gradient(to right,#3b82f6 0%,#3b82f6 var(--value),#e5e7eb var(--value),#e5e7eb 100%)}.animate-fade-in{animation:fadeIn .6s ease-in}.animate-slide-up{animation:slideUp .6s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
