:root{--primary: #4f46e5;--primary-hover: #4338ca;--secondary: #10b981;--bg-main: #f8fafc;--bg-surface: #ffffff;--text-main: #0f172a;--text-muted: #64748b;--border: #e2e8f0;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--radius-lg: 16px;--radius-md: 12px;--radius-sm: 8px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--header-height: 80px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Plus Jakarta Sans,sans-serif;background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{height:var(--header-height);background:var(--bg-surface);border-bottom:1px solid var(--border);padding:0 2.5rem;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}.app-header h1{font-size:1.5rem;font-weight:800;color:var(--primary);letter-spacing:-.025em}.app-main{flex:1;max-width:1400px;width:100%;margin:0 auto;padding:1.5rem 2rem;display:flex;flex-direction:column;gap:1.5rem}.main-tabs{display:inline-flex;gap:.5rem;background:#f1f5f9;padding:.375rem;border-radius:var(--radius-md)}.main-tab{padding:.625rem 1.25rem;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;font-weight:600;color:var(--text-muted);transition:all .2s ease}.main-tab.active{background:var(--bg-surface);color:var(--primary);box-shadow:var(--shadow-sm)}.content-container{flex:1;background:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-md);overflow-y:auto;display:flex;flex-direction:column}.chat-interface{display:flex;flex-direction:column;min-height:calc(100vh - var(--header-height) - 80px);min-height:500px}.chat-history{flex:1;min-height:0;overflow-y:auto;padding:2rem;display:flex;flex-direction:column;gap:1.5rem;background:#fafafa}.chat-bubble{max-width:85%;padding:1.25rem 1.5rem;border-radius:var(--radius-md);font-size:.9375rem;line-height:1.6;position:relative;animation:fadeIn .3s ease-out forwards}.chat-bubble.user{align-self:flex-end;background:var(--primary);color:#fff;border-bottom-right-radius:4px}.chat-bubble.bot{align-self:flex-start;background:var(--bg-surface);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-author{font-size:.75rem;font-weight:800;color:var(--primary);margin-bottom:.5rem;text-transform:uppercase}.chat-content{color:inherit}.empty-chat{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-weight:500}.progress-indicator{background:#f8fafc;border-top:1px solid var(--border);padding:.75rem 2rem;flex-shrink:0}.progress-timeline{display:none}.progress-stages{display:flex;align-items:center;justify-content:space-between;gap:1rem}.stage{display:flex;flex-direction:column;align-items:center;gap:.25rem;flex:1;opacity:.3;transition:all .3s ease}.stage.active{opacity:1;color:var(--primary);transform:scale(1.05)}.stage.complete{opacity:1;color:var(--success)}.stage-icon{font-size:1.25rem}.stage-name{font-size:.75rem;font-weight:700;white-space:nowrap}.stage-arrow{color:var(--border);font-size:1.25rem}.chat-input-area{padding:1rem 1.5rem;background:var(--bg-surface);border-top:1px solid var(--border);flex-shrink:0}.form-group textarea{width:100%;padding:1rem;border:1.5px solid var(--border);border-radius:var(--radius-md);font-family:inherit;font-size:.95rem;min-height:80px;resize:vertical}.billing-source-row{display:flex;gap:1.25rem;margin-top:1.5rem;align-items:flex-end}.billing-source-row .file-upload-group{flex:1.4;margin-bottom:0}.billing-source-row .client-id-group{flex:1;margin-bottom:0}@media(max-width:720px){.billing-source-row{flex-direction:column;align-items:stretch;gap:0}}.submit-button{padding:.75rem 1.5rem;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:700;cursor:pointer;transition:background .2s}.submit-button:hover{background:var(--primary-hover)}.reset-session-btn{padding:.5rem 1rem;background:#fee2e2;color:var(--error);border:1px solid #fca5a5;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;cursor:pointer}.error-section{padding:1rem 2rem}.error-banner{display:flex;align-items:center;gap:1rem;background:#fef2f2;border:1px solid #fee2e2;border-radius:var(--radius-sm);padding:1rem}.error-icon{font-size:1.25rem}.error-text{color:var(--error);font-size:.875rem;font-weight:500}.finops-dashboard{padding:2rem;display:flex;flex-direction:column;gap:2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.stat-card{padding:2rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.stat-value{font-size:2rem;font-weight:800;color:var(--primary)}@media(max-width:768px){.app-header{padding:0 1.25rem}.app-main,.chat-history{padding:1rem}.chat-bubble{max-width:95%}.finops-dashboard{padding:1rem}}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.quick-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.quick-action-btn{padding:.5rem 1.25rem;background:#fff;border:1.5px solid var(--border);border-radius:100px;font-size:.8125rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:all .2s ease}.quick-action-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:#4f46e50d}.file-upload-group{margin-top:1rem;margin-bottom:1.5rem}.submit-button{width:100%;display:flex;justify-content:center;align-items:center;gap:.5rem}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #4f46e5;--primary-hover: #4338ca;--success-color: #10b981;--error-color: #ef4444;--warning-color: #f59e0b;--bg-color: #f9fafb;--surface-color: #ffffff;--border-color: #e5e7eb;--text-primary: #111827;--text-secondary: #6b7280;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-color);color:var(--text-primary);line-height:1.6}code{font-family:Courier New,Courier,monospace}#root{min-height:100vh}
