:root{--color-blue-darkest: #0F2C4F;--color-blue-dark: #1D58A6;--color-blue-light: #91BEEB;--color-blue-lightest: #C5DCF2;--color-orange-darkest: #A5493E;--color-orange-dark: #DB6024;--color-orange-medium: #ED9D44;--color-orange-light: #F3B560;--color-primary: #0F2C4F;--color-secondary: #DB6024;--color-tertiary: #ED9D44;--color-primary-light: rgba(15, 44, 79, .1);--color-primary-alpha-20: rgba(15, 44, 79, .2);--color-secondary-light: rgba(219, 96, 36, .1);--color-secondary-alpha-15: rgba(219, 96, 36, .15);--color-secondary-alpha-30: rgba(219, 96, 36, .3);--color-tertiary-light: rgba(237, 157, 68, .1);--color-tertiary-alpha-15: rgba(237, 157, 68, .15);--color-bg-page: #f3f4f6;--color-bg-primary: #FFFFFF;--color-bg-secondary: #FFFAF5;--color-bg-tertiary: #f9fafb;--color-bg-quaternary: #f3f4f6;--color-bg-overlay: rgba(255, 255, 255, .2);--color-bg-overlay-30: rgba(255, 255, 255, .3);--color-text-primary: #10101;--color-text-secondary: #6b7280;--color-text-tertiary: #9ca3af;--color-text-placeholder: #888888;--color-text-inverse: #ffffff;--color-border-primary: #0F2C4F;--color-border-light: #e5e7eb;--color-border-lighter: #d1d5db;--color-border-lightest: #f3f4f6;--color-border-alpha: rgba(255, 255, 255, .3);--color-border-alpha-50: rgba(255, 255, 255, .5);--color-border-alpha-60: rgba(255, 255, 255, .6);--color-error: #dc2626;--color-error-light: #ef4444;--color-error-bg: #fef2f2;--color-error-border: #fecaca;--color-error-text: #f87171;--color-gray-scrollbar-track: #f1f1f1;--color-gray-scrollbar-thumb: #c1c1c1;--color-gray-scrollbar-hover: #a8a8a8;--color-gray-disabled: #CCCCCC;--chart-color-1: var(--color-orange-dark);--chart-color-2: var(--color-blue-darkest);--chart-color-3: var(--color-orange-medium);--chart-color-4: var(--color-blue-dark);--chart-color-5: var(--color-orange-light);--chart-color-6: var(--color-blue-light);--chart-color-7: var(--color-orange-darkest);--chart-color-8: var(--color-blue-lightest);--chart-color-9: #059669;--chart-color-10: #8b5cf6;--chart-color-11: #ec4899;--chart-color-12: #14b8a6;--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-headings: "Sora", sans-serif;--font-size-xs: .65rem;--font-size-sm: .75rem;--font-size-base: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.75rem;--font-size-3xl: 2.5rem;--font-size-4xl: 3.5rem;--font-size-display: 3rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.1;--line-height-snug: 1.2;--line-height-normal: 1.3;--line-height-relaxed: 1.4;--line-height-loose: 1.5;--line-height-body: 1.6;--letter-spacing-tight: -.01em;--letter-spacing-normal: 0em;--letter-spacing-wide: .01em;--letter-spacing-wider: .05em;--type-h1-family: var(--font-headings);--type-h1-weight: var(--font-weight-bold);--type-h1-size: var(--font-size-4xl);--type-h1-line-height: var(--line-height-tight);--type-h1-letter-spacing: var(--letter-spacing-normal);--type-h2-family: var(--font-headings);--type-h2-weight: var(--font-weight-semibold);--type-h2-size: var(--font-size-3xl);--type-h2-line-height: var(--line-height-snug);--type-h2-letter-spacing: var(--letter-spacing-normal);--type-h3-family: var(--font-headings);--type-h3-weight: var(--font-weight-medium);--type-h3-size: var(--font-size-2xl);--type-h3-line-height: var(--line-height-normal);--type-h3-letter-spacing: var(--letter-spacing-normal);--type-body-family: var(--font-primary);--type-body-weight: var(--font-weight-normal);--type-body-size: var(--font-size-lg);--type-body-line-height: var(--line-height-body);--type-body-letter-spacing: var(--letter-spacing-normal);--type-ui-1-family: var(--font-primary);--type-ui-1-weight: var(--font-weight-medium);--type-ui-1-size: var(--font-size-md);--type-ui-1-line-height: var(--line-height-relaxed);--type-ui-1-letter-spacing: var(--letter-spacing-wide);--type-ui-2-family: var(--font-primary);--type-ui-2-weight: var(--font-weight-medium);--type-ui-2-size: var(--font-size-base);--type-ui-2-line-height: var(--line-height-relaxed);--type-ui-2-letter-spacing: var(--letter-spacing-normal);--spacing-1: 2px;--spacing-2: 4px;--spacing-3: 6px;--spacing-4: 8px;--spacing-5: 10px;--spacing-6: 12px;--spacing-8: 16px;--spacing-10: 20px;--spacing-12: 24px;--spacing-14: 28px;--spacing-16: 32px;--spacing-20: 40px;--spacing-24: 48px;--spacing-28: 56px;--spacing-32: 64px;--spacing-36: 72px;--spacing-40: 80px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 50%;--radius-pill: 100px;--box-radius: var(--radius-xl);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(219, 96, 36, .1);--shadow-md: 0 2px 8px rgba(219, 96, 36, .15);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .15);--shadow-xl: 0 4px 16px rgba(219, 96, 36, .15);--shadow-2xl: 0 8px 24px rgba(0, 0, 0, .2);--shadow-focus: 0 0 0 3px rgba(237, 157, 68, .1);--shadow-focus-primary: 0 0 0 3px rgba(15, 44, 79, .1);--shadow-focus-secondary: 0 0 0 3px rgba(219, 96, 36, .1);--shadow-button-hover: 0 4px 12px rgba(219, 96, 36, .3);--shadow-logo: drop-shadow(0 2px 4px rgba(0, 0, 0, .3));--shadow-logo-light: drop-shadow(0 2px 4px rgba(0, 0, 0, .1));--shadow-text: 0 1px 2px rgba(0, 0, 0, .1);--box-shadow: var(--shadow-sm);--z-base: 1;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 500;--z-modal: 1000;--z-toast: 1100;--z-tooltip: 1200;--transition-fast: .1s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--transition-bounce: .5s cubic-bezier(.68, -.55, .265, 1.55);--duration-instant: .1s;--duration-fast: .2s;--duration-base: .3s;--duration-slow: .5s;--duration-slower: 1s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--breakpoint-sm: 480px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--header-height: 72px;--sidebar-width: 280px;--content-max-width: 1440px;--input-height: 44px;--button-height: 44px}body{margin:0;font-family:var(--font-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg-primary);color:var(--color-text-primary);line-height:var(--line-height-body);font-size:var(--font-size-lg);letter-spacing:var(--letter-spacing-normal)}code{font-family:var(--font-code)}*{box-sizing:border-box}::-webkit-scrollbar{width:var(--spacing-4)}::-webkit-scrollbar-track{background:var(--color-gray-scrollbar-track);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:var(--color-gray-scrollbar-thumb);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-scrollbar-hover)}h1{font-family:var(--font-headings);font-weight:var(--font-weight-bold);font-size:var(--font-size-4xl);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-normal);color:var(--color-text-primary)}h2{font-family:var(--font-headings);font-weight:var(--font-weight-semibold);font-size:var(--font-size-3xl);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-normal);color:var(--color-text-primary)}h3{font-family:var(--font-headings);font-weight:var(--font-weight-medium);font-size:var(--font-size-2xl);line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-normal);color:var(--color-text-primary)}.small-ul-1{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--font-size-md);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-wide);color:var(--color-text-primary)}.small-ul-2{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-normal);color:var(--color-text-primary)}*:focus{outline:2px solid var(--color-primary);outline-offset:var(--spacing-1)}button,input,textarea,select{font-family:inherit;font-size:inherit;line-height:inherit}.app-header{background:var(--color-primary);color:var(--color-text-inverse);padding:var(--spacing-8) 0;box-shadow:var(--shadow-md);position:fixed;top:0;left:0;right:0;width:100%;z-index:var(--z-sticky)}.header-content{max-width:100%;margin:0;padding:0 2% 0 var(--spacing-10);display:flex;justify-content:space-between;align-items:center}.logo-container{display:flex;align-items:center}.logo-with-wordmark{height:16px;width:auto;filter:var(--shadow-logo)}.header-info{display:flex;align-items:center;gap:var(--spacing-8)}.company-info{display:flex;align-items:center}.user-info{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-2)}.user-email{font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);font-weight:var(--type-ui-2-weight);color:var(--color-text-inverse);opacity:.95}.company-name{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);color:var(--color-text-inverse)}.company-dropdown-container{position:relative}.company-selector{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);background:transparent;color:var(--color-text-inverse);border:none;padding:var(--spacing-4) var(--spacing-6);padding-right:calc(var(--spacing-6) + 30px);border-radius:0;cursor:pointer;transition:var(--transition-base);min-width:120px;text-align:center;position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.company-selector-text{display:inline-block}.company-selector:after{content:"";position:absolute;right:var(--spacing-6);top:50%;transform:translateY(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid white;pointer-events:none}.company-selector:hover{opacity:.8}.company-selector:focus{outline:none;opacity:.8}.company-dropdown-menu{position:absolute;right:0;top:calc(100% + 4px);background:var(--color-primary);border:1px solid var(--color-border-alpha);border-radius:var(--radius-md);min-width:180px;box-shadow:0 4px 12px #00000026;z-index:calc(var(--z-sticky) + 1);overflow:visible;display:flex;flex-direction:column}.company-dropdown-item{display:flex;width:100%;padding:var(--spacing-4) var(--spacing-6);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);background:transparent;border:none;color:var(--color-text-inverse)!important;text-align:left;cursor:pointer;transition:var(--transition-base);position:relative;white-space:nowrap;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.company-dropdown-item:hover{background:var(--color-bg-overlay-30)}.company-dropdown-item:first-child{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.company-dropdown-item:last-child{border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.company-dropdown-item.active{background:var(--color-bg-overlay-30);font-weight:var(--font-weight-bold)}.language-selector{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);background:var(--color-bg-overlay);color:var(--color-text-inverse);border:1px solid var(--color-border-alpha);padding:var(--spacing-4) var(--spacing-6);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-base);-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;min-width:80px;text-align:center}.language-selector:after{content:"";position:absolute;right:var(--spacing-4);top:50%;transform:translateY(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid white;pointer-events:none}.language-selector:hover{background:var(--color-bg-overlay-30);border-color:var(--color-border-alpha-50)}.language-selector:focus{outline:none;background:var(--color-bg-overlay-30);border-color:var(--color-border-alpha-60)}.language-selector option{background:var(--color-quaternary);color:var(--color-text-inverse);padding:var(--spacing-4)}.settings-dropdown-container{position:relative}.settings-selector{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);background:transparent;color:var(--color-text-inverse);border:none;padding:var(--spacing-4) var(--spacing-6);padding-right:calc(var(--spacing-6) + 30px);border-radius:0;cursor:pointer;transition:var(--transition-base);min-width:120px;text-align:center;position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.settings-selector-text{display:inline-block}.settings-selector:after{content:"";position:absolute;right:var(--spacing-6);top:50%;transform:translateY(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid white;pointer-events:none}.settings-selector:hover{opacity:.8}.settings-selector:focus{outline:none;opacity:.8}.settings-dropdown-menu{position:absolute;right:0;top:calc(100% + 4px);background:var(--color-primary);border:1px solid var(--color-border-alpha);border-radius:var(--radius-md);min-width:180px;box-shadow:0 4px 12px #00000026;z-index:calc(var(--z-sticky) + 1);overflow:visible;display:flex;flex-direction:column}.settings-dropdown-item{display:flex;width:100%;padding:var(--spacing-4) var(--spacing-6);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);background:transparent;border:none;color:var(--color-text-inverse)!important;text-align:left;cursor:pointer;transition:var(--transition-base);position:relative;white-space:nowrap;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.settings-dropdown-item:hover{background:var(--color-bg-overlay-30)}.settings-dropdown-item:first-child{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.settings-dropdown-item:last-child{border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.settings-dropdown-item-with-submenu{display:flex;justify-content:space-between;align-items:center;color:var(--color-text-inverse)!important}.settings-dropdown-item-with-submenu span{color:var(--color-text-inverse)!important}.submenu-arrow{margin-left:auto;font-size:1.2rem}.settings-submenu{position:absolute;right:100%;top:0;margin-right:4px;background:var(--color-primary);border:1px solid var(--color-border-alpha);border-radius:var(--radius-md);min-width:160px;box-shadow:0 4px 12px #00000026;z-index:calc(var(--z-sticky) + 2)}.settings-submenu-item{display:block;width:100%;padding:var(--spacing-4) var(--spacing-6);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);background:transparent;border:none;color:var(--color-text-inverse);text-align:left;cursor:pointer;transition:var(--transition-base)}.settings-submenu-item:hover{background:var(--color-bg-overlay-30)}.settings-submenu-item.active{background:var(--color-bg-overlay-30);font-weight:var(--font-weight-bold)}@media (max-width: 1024px){.header-content{padding:0 2% 0 15px}}@media (max-width: 768px){.header-content{flex-direction:row;gap:12px;text-align:left;padding:0 4%;justify-content:space-between}.logo-with-wordmark{height:16px}.header-info{flex-direction:row;align-items:center;gap:8px}.user-info{align-items:flex-end}.company-selector{min-width:100px;font-size:.75rem;padding:6px 28px 6px 8px}.company-dropdown-menu{min-width:160px}.user-email{font-size:.8rem}.settings-selector{min-width:100px;font-size:.75rem;padding:6px 28px 6px 8px}.settings-dropdown-menu{min-width:160px}.settings-submenu{min-width:140px}}.sidebar{width:64px;background:var(--color-bg-primary);border-right:1px solid var(--color-border-light);padding:var(--spacing-12) 0;display:flex;flex-direction:column;min-height:calc(100vh - var(--header-height));position:sticky;top:var(--header-height);align-self:flex-start;flex-shrink:0;transition:width .4s cubic-bezier(.4,0,.2,1),box-shadow .4s cubic-bezier(.4,0,.2,1);overflow:hidden;z-index:var(--z-base);will-change:width}.sidebar:hover{width:200px;box-shadow:var(--box-shadow)}.sidebar-nav{flex:1;display:flex;flex-direction:column;padding:0;width:100%}.sidebar-nav{transition:padding .4s cubic-bezier(.4,0,.2,1)}.sidebar:hover .sidebar-nav{padding:0 var(--spacing-2)}.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-4);width:100%}.nav-item{margin:0;width:100%}.nav-button{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:center;padding:var(--spacing-6) 0;font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);font-weight:var(--type-ui-2-weight);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);color:var(--color-text-secondary);position:relative;min-height:64px;outline:none;gap:0;white-space:nowrap}.sidebar:hover .nav-button{justify-content:flex-start;padding:var(--spacing-3) var(--spacing-4);gap:var(--spacing-4);min-height:48px;margin:var(--spacing-3) var(--spacing-4);width:calc(100% - var(--spacing-8))}.sidebar:hover .nav-button.active{padding:var(--spacing-3) var(--spacing-4)}.nav-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;background:var(--color-primary-light)}.nav-button:hover{background:var(--color-tertiary-alpha-15);color:var(--color-text-primary);transform:translateY(-1px);padding:var(--spacing-3) 0;min-height:48px;margin:var(--spacing-3) var(--spacing-4);width:calc(100% - var(--spacing-8))}.nav-button.active{background:var(--color-tertiary-alpha-15);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);padding:var(--spacing-3) 0;min-height:48px;margin:var(--spacing-3) var(--spacing-4);width:calc(100% - var(--spacing-8))}.nav-button.active .nav-icon{transform:scale(1.05)}.nav-icon{font-size:24px;display:flex;align-items:center;justify-content:center;height:28px;width:28px;min-width:28px;max-width:28px;transition:transform var(--transition-base);flex-shrink:0;margin:0;padding:0}.nav-icon-svg{width:24px;height:24px;object-fit:contain;opacity:.7;transition:opacity var(--transition-base);display:block;margin:0 auto}.nav-button.active .nav-icon-svg{opacity:1}.nav-button:hover .nav-icon-svg{opacity:.9}.nav-icon-component{display:block;margin:0 auto;opacity:.8;transition:opacity var(--transition-base),transform var(--transition-base)}.nav-button.active .nav-icon-component{opacity:1}.nav-button:hover .nav-icon-component{opacity:1;transform:scale(1.05)}.nav-label{text-align:left;line-height:var(--line-height-tight);opacity:0;width:0;max-width:0;overflow:hidden;transform:translate(-10px);transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1),max-width .4s cubic-bezier(.4,0,.2,1);white-space:nowrap;flex:0 0 0;margin:0;padding:0}.sidebar:hover .nav-label{opacity:1;width:auto;max-width:none;flex:1;transform:translate(0)}@media (max-width: 1024px){.sidebar{width:64px;padding:var(--spacing-10) 0}.sidebar:hover{width:180px}.nav-button{min-height:60px;padding:var(--spacing-5) var(--spacing-3)}.nav-button.active{padding:var(--spacing-2) 0;min-height:46px;margin:var(--spacing-3) var(--spacing-4)}.nav-label{font-size:var(--font-size-xs)}.nav-icon{font-size:22px;height:26px;width:26px}.nav-icon-svg,.nav-icon-component{width:22px;height:22px}}@media (max-width: 768px){.sidebar{width:100%;height:auto;min-height:auto;flex-direction:row;padding:var(--spacing-6) 0;border-right:none;border-bottom:1px solid var(--color-border-light);overflow:visible}.sidebar:hover{width:100%;box-shadow:none}.sidebar-nav{width:100%;padding:0 var(--spacing-4)}.nav-list{flex-direction:row;justify-content:center;gap:var(--spacing-8);width:100%}.nav-item{flex:1;max-width:200px}.nav-button{flex-direction:column;min-height:56px;padding:var(--spacing-4) var(--spacing-6);gap:var(--spacing-2);justify-content:center}.nav-button.active{padding:var(--spacing-2) var(--spacing-3);min-height:46px;margin:var(--spacing-2) var(--spacing-3)}.nav-button.active{background:var(--color-secondary)}.nav-label{opacity:1;transform:translate(0);text-align:center;font-size:var(--font-size-xs)}.nav-icon{font-size:20px;height:24px;width:24px}.nav-icon-svg,.nav-icon-component{width:20px;height:20px}}@media (max-width: 480px){.nav-list{gap:var(--spacing-4)}.nav-button{padding:var(--spacing-3) var(--spacing-4);min-height:52px}.nav-button.active{padding:var(--spacing-2) var(--spacing-2);min-height:44px;margin:var(--spacing-2) var(--spacing-2)}.nav-label{font-size:var(--font-size-xs)}.nav-icon{font-size:18px;height:22px;width:22px}.nav-icon-svg,.nav-icon-component{width:18px;height:18px}}.chat-message{padding:var(--spacing-6);border-radius:var(--box-radius);max-width:85%;word-wrap:break-word;box-shadow:var(--box-shadow)}.chat-message.user{align-self:flex-end;background:var(--color-bg-tertiary);color:var(--color-text-primary);margin-left:auto;border:none}.chat-message.assistant{align-self:flex-start;background:var(--color-tertiary-alpha-15);color:var(--color-text-primary);border:none}.chat-message.error{background:var(--color-error-bg);color:var(--color-error);border:none}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-3);font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size)}.message-role{font-weight:var(--font-weight-semibold);opacity:.9}.message-time{font-family:var(--type-ui-2-family);font-size:var(--font-size-xs);opacity:.7;margin-left:auto}.message-content{font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);line-height:var(--type-ui-2-line-height);white-space:pre-wrap;text-align:justify}.message-table-container{margin:var(--spacing-6) 0;overflow-x:auto}.message-table{width:100%;border-collapse:collapse;font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);background:var(--color-bg-primary);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--box-shadow)}.message-table th{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--font-weight-semibold);background:var(--color-secondary);color:var(--color-text-inverse);padding:var(--spacing-4) var(--spacing-6);text-align:left;border-bottom:none}.message-table td{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);padding:var(--spacing-3) var(--spacing-6);border-bottom:1px solid var(--color-border-light);color:var(--color-text-primary)}.message-table tbody tr:hover{background:var(--color-bg-secondary)}.message-table tbody tr:last-child td{border-bottom:none}.message-table td:last-child{text-align:right;font-family:var(--font-mono)}.message-table th:last-child{text-align:right}.message-table td:not(:first-child){text-align:right;font-family:var(--font-mono)}.message-table th:not(:first-child){text-align:right}.message-metadata{margin-top:var(--spacing-4);padding:var(--spacing-2) 0;background:transparent;border-radius:0;border:none;font-family:var(--type-ui-2-family);font-size:var(--font-size-xs);color:var(--color-text-secondary);display:flex;flex-wrap:wrap;gap:var(--spacing-3)}.message-metadata .metadata-item{display:inline-block}.message-metadata .metadata-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-right:var(--spacing-2)}.chat-message.user .message-role{color:var(--color-text-secondary)}.chat-message.user .message-time{color:var(--color-text-tertiary)}.chat-message.assistant .message-role{color:var(--color-text-secondary)}.chat-message.assistant .message-time{color:var(--color-text-tertiary)}.chat-message.error .message-role{color:var(--color-error)}.chat-message.error .message-time{color:var(--color-error-text)}.chat-message.error .message-metadata{background:transparent;border:none}.chat-message.error .message-metadata small{color:var(--color-error)}.chat-message.clickable{cursor:pointer;transition:all var(--transition-base);position:relative}.chat-message.clickable:hover{background:var(--color-secondary-light);transform:translate(-2px);box-shadow:var(--shadow-md)}.chat-message.selected{background:var(--color-secondary-alpha-30);box-shadow:var(--shadow-md)}@media (max-width: 768px){.chat-message{max-width:90%;padding:var(--spacing-6)}.message-header{font-size:.8rem}.message-time{font-size:var(--font-size-sm)}}.query-input{width:100%}.input-container{display:flex;gap:var(--spacing-6);align-items:center}.query-textarea{flex:1;padding:var(--spacing-5) var(--spacing-6);font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);line-height:var(--type-ui-2-line-height);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);background:var(--color-bg-primary);box-shadow:none;resize:vertical;min-height:50px;transition:var(--transition-base)}.query-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus-primary)}.query-textarea:disabled{background:var(--color-bg-quaternary);color:var(--color-text-placeholder);cursor:not-allowed}.query-textarea::placeholder{color:var(--color-text-placeholder)}.send-button{padding:var(--spacing-6) var(--spacing-12);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-lg);box-shadow:none;cursor:pointer;transition:var(--transition-base);white-space:nowrap;min-width:80px}.send-button:hover:not(:disabled){background:var(--color-primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.send-button:disabled{background:var(--color-gray-disabled);cursor:not-allowed;transform:none;box-shadow:none}@media (max-width: 768px){.input-container{flex-direction:column;align-items:stretch}.send-button{align-self:flex-end;padding:10px 20px}.query-textarea{min-height:50px}}.session-sidebar{width:200px;background:var(--color-bg-primary);border-radius:var(--box-radius);box-shadow:var(--box-shadow);border:none;display:flex;flex-direction:column;height:100%;margin-right:0}.session-header{padding:var(--spacing-6);border-bottom:1px solid var(--color-border-light);background:var(--color-bg-primary);border-radius:var(--box-radius) var(--box-radius) 0 0;position:relative}.session-header h3{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);color:var(--color-text-primary);margin:0}.new-session-btn{position:absolute;top:4px;right:4px;width:20px;height:20px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:16px;font-weight:400;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;line-height:1;opacity:.7}.new-session-btn:hover{background:var(--color-bg-secondary);color:var(--color-primary);opacity:1}.session-list{flex:1;overflow-y:auto;padding:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-3);border-radius:0 0 var(--box-radius) var(--box-radius)}.session-item{padding:var(--spacing-4) var(--spacing-6);cursor:pointer;border:none;border-radius:var(--radius-lg);background:var(--color-bg-tertiary);box-shadow:var(--box-shadow);transition:all .2s;position:relative}.session-item:hover{background:var(--color-bg-secondary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.session-item.active{background:var(--color-tertiary-alpha-15);box-shadow:var(--shadow-md)}.session-item.active .session-title{color:var(--color-text-primary);font-weight:var(--font-weight-normal)}.session-item.active .session-meta{color:var(--color-text-secondary);opacity:.8}.session-content{display:flex;flex-direction:column;gap:2px}.session-title{font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);font-weight:var(--font-weight-normal);color:var(--color-text-primary);line-height:1.2}.session-meta{display:flex;justify-content:flex-start;align-items:center;font-family:var(--type-ui-2-family);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.message-count{flex:1}.delete-session-btn{position:absolute;top:var(--spacing-2);right:var(--spacing-2);width:20px;height:20px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:14px;font-weight:400;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;opacity:.6;line-height:1}.delete-session-btn:hover{background:var(--color-error-bg);color:var(--color-error);opacity:1}.no-sessions{padding:var(--spacing-10) var(--spacing-6);text-align:center;color:var(--color-text-secondary)}.no-sessions p{font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);margin:0 0 var(--spacing-3) 0}.no-sessions small{font-family:var(--type-ui-2-family);font-size:var(--font-size-xs);opacity:.8}.session-list::-webkit-scrollbar{width:6px}.session-list::-webkit-scrollbar-track{background:transparent;margin:var(--spacing-2) 0}.session-list::-webkit-scrollbar-thumb{background:var(--color-border-lighter);border-radius:var(--radius-full);border:1px solid var(--color-bg-primary)}.session-list::-webkit-scrollbar-thumb:hover{background:var(--color-border-light)}@media (max-width: 1024px){.session-sidebar{width:180px}}@media (max-width: 768px){.session-sidebar{width:100%;height:auto;max-height:200px;margin-right:0;margin-bottom:8px;border-radius:8px}.session-header{padding:8px}.session-header h3{font-size:.75rem}.new-session-btn{width:20px;height:20px;font-size:12px}.session-item{padding:var(--spacing-3) var(--spacing-4)}.session-title{font-size:.6875rem}.session-meta{font-size:.625rem}.session-list{max-height:120px;padding:var(--spacing-3);gap:var(--spacing-2)}}.chat-interface{display:flex;flex-direction:row;height:100%;gap:var(--spacing-6);overflow:hidden;background:transparent;padding:0}.chat-content-wrapper{flex:1;display:flex;flex-direction:column;height:100%;gap:var(--spacing-6);overflow:hidden}.chat-messages-box{flex:1;display:flex;flex-direction:column;background:var(--color-bg-primary);border-radius:var(--box-radius);box-shadow:var(--box-shadow);border:none;overflow:hidden;min-height:0}.chat-input-box{background:var(--color-bg-primary);border-radius:var(--box-radius);box-shadow:var(--box-shadow);border:none;padding:var(--spacing-6)}.messages-container{flex:1;overflow-y:auto;padding:var(--spacing-6);display:flex;flex-direction:column;gap:var(--spacing-6)}.messages-container::-webkit-scrollbar{width:6px}.messages-container::-webkit-scrollbar-track{background:transparent;margin:var(--spacing-4) 0}.messages-container::-webkit-scrollbar-thumb{background:var(--color-border-lighter);border-radius:var(--radius-full);border:1px solid var(--color-bg-primary)}.messages-container::-webkit-scrollbar-thumb:hover{background:var(--color-border-light)}.welcome-message{text-align:center;padding:30px var(--spacing-10);font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);color:var(--color-text-primary)}.welcome-logo{width:48px;height:48px;margin-bottom:var(--spacing-4)}.welcome-message h3{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--font-weight-semibold);line-height:var(--type-ui-1-line-height);letter-spacing:var(--type-ui-1-letter-spacing);color:var(--color-text-primary);margin-bottom:var(--spacing-4)}.welcome-message ul{text-align:left;max-width:400px;margin:var(--spacing-8) auto;padding-left:var(--spacing-10)}.welcome-message li{margin-bottom:var(--spacing-3);font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);line-height:var(--type-ui-2-line-height);color:var(--color-text-primary)}.loading-message{display:flex;align-items:center;gap:var(--spacing-6);padding:var(--spacing-10);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);color:var(--color-text-secondary);font-style:italic}.loading-fox{width:24px;height:24px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.loading-spinner{width:var(--spacing-10);height:var(--spacing-10);border:2px solid var(--color-border-light);border-top:2px solid var(--color-primary);border-radius:var(--radius-full);animation:spin 1s linear infinite}@media (max-width: 1024px){.chat-interface{flex-direction:column}.session-sidebar{order:1;width:100%;max-height:150px}.chat-content-wrapper{order:2;gap:var(--spacing-4)}}@media (max-width: 768px){.chat-interface{flex-direction:column}.chat-content-wrapper{gap:var(--spacing-4)}.chat-messages-box{min-height:300px}.messages-container{padding:var(--spacing-6)}.welcome-message{padding:var(--spacing-10) var(--spacing-6)}.welcome-logo{width:40px;height:40px}.chat-input-box{padding:var(--spacing-4)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--color-bg-primary);border-radius:var(--box-radius);box-shadow:var(--shadow-xl);border:none;width:90%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:var(--spacing-8) var(--spacing-10);border-bottom:1px solid var(--color-border-light);display:flex;align-items:center;justify-content:space-between}.modal-header h2{font-family:var(--type-h3-family);font-size:var(--type-h3-size);font-weight:var(--type-h3-weight);line-height:var(--type-h3-line-height);letter-spacing:var(--type-h3-letter-spacing);color:var(--color-text-primary);margin:0}.modal-close{background:none;border:none;font-size:28px;line-height:1;color:var(--color-text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base)}.modal-close:hover:not(:disabled){background:var(--color-bg-secondary);color:var(--color-text-primary)}.modal-close:disabled{cursor:not-allowed;opacity:.5}.modal-body{padding:var(--spacing-10);overflow-y:auto;flex:1}.modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-12) 0;gap:var(--spacing-4)}.modal-loading .loading-spinner{width:32px;height:32px;border:3px solid var(--color-border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.modal-loading p{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);color:var(--color-text-secondary);margin:0}.form-group{margin-bottom:var(--spacing-8)}.form-group:last-child{margin-bottom:0}.form-group select,.form-group input{width:100%;padding:var(--spacing-4) var(--spacing-5);font-family:var(--type-body-family);font-size:var(--type-body-size);color:var(--color-text-primary);background:var(--color-bg-primary);border:none;border-radius:var(--radius-md);box-shadow:var(--box-shadow);transition:all var(--transition-base)}.form-group select:focus,.form-group input:focus{outline:none;box-shadow:var(--shadow-focus-primary)}.form-group select:disabled,.form-group input:disabled{background:var(--color-bg-secondary);cursor:not-allowed;opacity:.6}.error-message{margin-top:var(--spacing-6);padding:var(--spacing-4) var(--spacing-5);background:var(--color-error-bg);border-left:3px solid var(--color-error);border-radius:var(--radius-sm);color:var(--color-error);font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size)}.modal-footer{padding:var(--spacing-8) var(--spacing-10);border-top:1px solid var(--color-border-light);display:flex;gap:var(--spacing-4);justify-content:flex-end}.modal-footer button{padding:var(--spacing-4) var(--spacing-8);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--box-shadow)}.btn-secondary{background:var(--color-bg-secondary);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-tertiary);box-shadow:var(--shadow-md)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark, #0a1f3a);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-md)}.modal-footer button:disabled{cursor:not-allowed;opacity:.5}@media (max-width: 768px){.modal-content{width:95%;max-height:95vh}.modal-header,.modal-body,.modal-footer{padding:var(--spacing-6) var(--spacing-8)}.modal-header h2{font-size:var(--font-size-lg)}.modal-footer{flex-direction:column-reverse}.modal-footer button{width:100%}}.add-to-dashboard-container{display:flex;align-items:center;gap:var(--spacing-4)}.add-to-dashboard-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-2) var(--spacing-3);height:auto;background:transparent;border:1px solid var(--color-border-lighter);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base);line-height:1;outline:none}.add-to-dashboard-btn:focus{outline:none}.add-to-dashboard-btn:active{outline:none}.add-to-dashboard-btn img{width:16px;height:16px;display:block;opacity:.7;transition:opacity var(--transition-base),transform var(--transition-base)}.add-to-dashboard-btn:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary);transform:translateY(-1px)}.add-to-dashboard-btn:hover:not(:disabled) img{opacity:1;transform:scale(1.1)}.add-to-dashboard-btn:active:not(:disabled){transform:translateY(0)}.add-to-dashboard-btn:disabled{background:var(--color-bg-tertiary);border-color:var(--color-border-lightest);cursor:not-allowed;opacity:.5}.add-to-dashboard-btn:disabled img{opacity:.4}.success-message{display:inline-flex;align-items:center;padding:var(--spacing-3) var(--spacing-5);background:var(--color-success-light);color:var(--color-success-dark);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);animation:slideInRight .3s ease-out}@keyframes slideInRight{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@media (max-width: 768px){.add-to-dashboard-container{flex-direction:column;align-items:stretch}.add-to-dashboard-btn{padding:var(--spacing-2)}.add-to-dashboard-btn img{width:14px;height:14px}.success-message{text-align:center}}.chart-renderer{width:100%;height:100%;display:flex;flex-direction:column}.chart-header{text-align:center;margin-bottom:var(--spacing-6);flex-shrink:0}.chart-with-legend{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.chart-with-legend g[transform]{overflow:visible!important}.chart-with-legend svg{overflow:visible}.chart-with-legend .recharts-responsive-container{flex:1;min-height:200px}.chart-with-legend .custom-series-legend{flex-shrink:0}.chart-title-row{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-8);margin-bottom:var(--spacing-3)}.chart-header-actions{display:flex;align-items:center;gap:var(--spacing-3)}.inline-chart-type-selector{display:flex;align-items:center}.chart-type-select{padding:var(--spacing-2) var(--spacing-4);border:1px solid var(--color-border-lighter);border-radius:var(--radius-sm);background:var(--color-text-inverse);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;min-width:80px;outline:none}.chart-type-select:focus{outline:none;border-color:var(--color-primary)}.chart-header small{color:var(--color-text-secondary);font-size:var(--font-size-sm);background:var(--color-bg-quaternary);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-lg)}.chart-error{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary);text-align:center}.chart-error p{margin:0;font-size:var(--font-size-md)}.data-table{width:100%;overflow-x:auto;border:1px solid var(--color-border-light);border-radius:var(--radius-lg);background:var(--color-bg-primary)}.data-table table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.data-table th{background:var(--color-bg-tertiary);padding:var(--spacing-6) var(--spacing-8);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);border-bottom:1px solid var(--color-border-light);border-right:1px solid var(--color-border-light);white-space:nowrap}.data-table th:last-child{border-right:none}.data-table td{padding:var(--spacing-6) var(--spacing-8);border-bottom:1px solid var(--color-border-lightest);border-right:1px solid var(--color-border-lightest);color:var(--color-text-primary)}.data-table td:last-child{border-right:none}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover{background:var(--color-bg-tertiary)}.recharts-wrapper{margin:0 auto}.recharts-cartesian-axis-tick-value{font-size:var(--font-size-sm);fill:var(--color-text-secondary)}.recharts-tooltip-wrapper{outline:none}.recharts-tooltip-content{background:var(--color-bg-primary)!important;border:1px solid var(--color-border-light)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-lg)!important}.recharts-tooltip-item{color:var(--color-text-primary)!important;font-size:var(--font-size-base)!important}.recharts-legend-item-text{font-family:var(--type-ui-2-family)!important;font-size:var(--type-ui-2-size)!important;font-weight:var(--type-ui-2-weight)!important;color:var(--color-text-primary)!important}.recharts-legend-item,.recharts-legend-item .recharts-legend-item-text,.recharts-wrapper .recharts-legend-wrapper .recharts-legend .recharts-legend-item .recharts-legend-item-text,.recharts-legend-wrapper .recharts-legend .recharts-legend-item .recharts-legend-item-text,.recharts-legend-item span{font-family:var(--type-ui-2-family)!important;color:var(--color-text-primary)!important}.recharts-scatter-symbol{stroke-width:2}.recharts-scatter-symbol:hover{stroke-width:3;cursor:pointer}@media (max-width: 1024px){.chart-header{margin-bottom:8px}.chart-title-row{gap:12px}.chart-type-select{font-size:.7rem;padding:3px 6px;min-width:70px}.data-table{font-size:.7rem}.data-table th,.data-table td{padding:6px 8px}}@media (max-width: 768px){.chart-header{margin-bottom:6px}.chart-title-row{flex-direction:column;gap:6px;justify-content:center}.chart-header-actions{width:100%;justify-content:center}.chart-type-select{font-size:.65rem;padding:2px 4px;min-width:60px}.data-table{font-size:.65rem}.data-table th,.data-table td{padding:4px 6px}}.chart-info-drawer{flex-shrink:0;background:var(--color-bg-primary);border-radius:var(--box-radius);box-shadow:var(--box-shadow);border:none;overflow:hidden;margin-top:var(--spacing-6)}.drawer-header{display:flex;justify-content:space-between;align-items:center;padding:0;background:var(--color-bg-primary);border-bottom:none}.drawer-title{padding:var(--spacing-4) var(--spacing-6);margin:0;font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);font-weight:var(--type-ui-2-weight);color:var(--color-text-secondary);flex:1}.drawer-toggle{background:none;border:none;border-left:1px solid var(--color-border-light);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;padding:var(--spacing-3) var(--spacing-4);display:flex;align-items:center;justify-content:center;transition:background-color var(--transition-base),color var(--transition-base);min-width:36px;height:100%;outline:none}.drawer-toggle:hover{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.drawer-toggle:focus{outline:none}.drawer-toggle:active{outline:none}.drawer-content{background:var(--color-bg-primary);max-height:0;overflow:hidden;padding:0 var(--spacing-8);transition:max-height var(--transition-slow),padding var(--transition-slow)}.chart-info-drawer.open .drawer-content{max-height:500px;padding:var(--spacing-6) var(--spacing-8);border-top:1px solid var(--color-border-light)}.metadata-content{display:flex;flex-direction:column;gap:var(--spacing-3)}.metadata-row{display:flex;gap:var(--spacing-3);align-items:flex-start}.metadata-label{font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);min-width:120px}.metadata-value{font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);color:var(--color-text-secondary);flex:1}@media (max-width: 768px){.chart-info-drawer{margin-top:var(--spacing-4)}.chart-info-drawer.open .drawer-content{padding:var(--spacing-4)}.drawer-title{padding:var(--spacing-3) var(--spacing-4)}.metadata-row{flex-direction:column;gap:var(--spacing-1)}.metadata-label{min-width:auto}}.chart-display{display:flex;flex-direction:column;height:100%;padding:0;overflow:hidden;background:transparent}.chart-content{flex:1;display:flex;align-items:center;justify-content:center;min-height:400px;overflow:auto;background:var(--color-bg-primary);border-radius:var(--box-radius);box-shadow:var(--box-shadow);border:none;padding:var(--spacing-6)}.chart-content::-webkit-scrollbar{width:6px;height:6px}.chart-content::-webkit-scrollbar-track{background:transparent;margin:var(--spacing-4) 0}.chart-content::-webkit-scrollbar-thumb{background:var(--color-border-lighter);border-radius:var(--radius-full);border:1px solid var(--color-bg-primary)}.chart-content::-webkit-scrollbar-thumb:hover{background:var(--color-border-light)}.data-summary,.columns-info{display:flex;align-items:center;gap:6px;margin-bottom:4px}.data-summary strong,.columns-info strong{color:#101010;min-width:60px;font-size:.75rem}.no-data-message{text-align:center;padding:30px var(--spacing-10);padding-top:100px;font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);color:var(--color-text-primary)}.chart-logo{width:48px;height:48px;margin-bottom:var(--spacing-4)}.no-data-message h3{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--font-weight-semibold);line-height:var(--type-ui-1-line-height);letter-spacing:var(--type-ui-1-letter-spacing);color:var(--color-text-primary);margin-bottom:var(--spacing-4)}.no-data-message p{font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);line-height:var(--type-ui-2-line-height);margin-bottom:var(--spacing-6)}.example-queries h4{font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:10px}.example-queries ul{text-align:left;max-width:400px;margin:0 auto;padding-left:20px}.example-queries li{font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin-bottom:6px}@media (max-width: 1024px){.chart-content{min-height:250px;padding:var(--spacing-4)}.data-summary,.columns-info{margin-bottom:3px;gap:4px}.data-summary strong,.columns-info strong{min-width:50px;font-size:.7rem}}@media (max-width: 768px){.chart-content{min-height:200px;padding:var(--spacing-4)}.data-summary,.columns-info{flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:2px}}.tripletex-integration{padding:var(--spacing-12)}.integration-header{margin-bottom:var(--spacing-12);padding-bottom:var(--spacing-8);border-bottom:1px solid var(--color-border-light)}.integration-header h2{font-family:var(--type-h3-family);font-size:var(--type-h3-size);font-weight:var(--type-h3-weight);line-height:var(--type-h3-line-height);letter-spacing:var(--type-h3-letter-spacing);color:var(--color-text-primary);margin:0 0 var(--spacing-4) 0}.integration-description{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);color:var(--color-text-secondary);margin:0}.secrets-status{margin-bottom:var(--spacing-16);padding:var(--spacing-10);background-color:var(--color-bg-primary);border-radius:var(--radius-lg);border:none;box-shadow:var(--box-shadow)}.status-title{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);color:var(--color-text-primary);margin:0 0 var(--spacing-8) 0}.status-cards{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.status-card{background-color:var(--color-bg-tertiary);border:none;border-radius:var(--radius-lg);padding:var(--spacing-8);box-shadow:var(--box-shadow)}.status-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-6)}.status-card-name{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);color:var(--color-text-primary);flex:1}.status-badge{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-pill);font-family:var(--type-ui-2-family);font-size:var(--font-size-xs);font-weight:var(--type-ui-2-weight);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.status-badge.active{background-color:#d1fae5;color:#065f46;border:none}.status-card-details{display:flex;flex-direction:column;gap:var(--spacing-3)}.status-card-description{font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.status-card-date{font-family:var(--type-ui-2-family);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.no-secrets-message{text-align:center;padding:var(--spacing-12);font-family:var(--type-ui-1-family);color:var(--color-text-secondary)}.no-secrets-message p{font-size:var(--type-ui-1-size);margin:0 0 var(--spacing-4) 0}.no-secrets-subtitle{font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size)!important;color:var(--color-text-tertiary)!important}.integration-form{max-width:500px}.form-group{margin-bottom:20px}.form-label{display:block;margin-bottom:var(--spacing-3);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);color:var(--color-text-primary)}.form-input{width:100%;padding:var(--spacing-5) var(--spacing-6);font-family:var(--type-body-family);font-size:var(--type-ui-1-size);border:none;border-radius:var(--radius-md);box-shadow:var(--box-shadow);transition:box-shadow .2s ease;box-sizing:border-box}.form-input:focus{outline:none;box-shadow:var(--shadow-focus-primary)}.form-input:disabled{background-color:var(--color-bg-quaternary);color:var(--color-text-secondary);cursor:not-allowed}.field-help{margin:var(--spacing-2) 0 0 0;font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);color:var(--color-text-secondary)}.message{padding:var(--spacing-6);border-radius:var(--radius-md);margin-bottom:var(--spacing-8);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size)}.message.success{background-color:#d1fae5;color:#065f46;border:none}.message.error{background-color:var(--color-error-bg);color:var(--color-error);border:none}.form-actions{display:flex;flex-direction:column;gap:12px}.submit-button{padding:var(--spacing-6) var(--spacing-12);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);box-shadow:var(--box-shadow);cursor:pointer;transition:all var(--transition-base);align-self:flex-start}.submit-button:hover:not(:disabled){background-color:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.submit-button:disabled{background-color:var(--color-gray-disabled);cursor:not-allowed;transform:none}.submit-button.disabled{background-color:var(--color-bg-quaternary);color:var(--color-text-tertiary)}.admin-notice{font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);color:var(--color-text-secondary);font-style:italic;margin:0}@media (max-width: 768px){.tripletex-integration{padding:16px}.secrets-status{margin-bottom:24px;padding:16px}.status-cards{grid-template-columns:1fr;gap:8px}.status-card{padding:12px}.status-card-header{flex-direction:column;align-items:flex-start;gap:8px}.status-badge{align-self:flex-end}.integration-form{max-width:none}.submit-button{width:100%}}.settings{background:var(--color-bg-primary);border-radius:var(--box-radius);box-shadow:var(--box-shadow);border:none;margin:var(--spacing-6) auto;padding:var(--spacing-12);max-width:800px;height:calc(100vh - 124px);overflow-y:auto}.settings-header{margin-bottom:var(--spacing-16)}.settings-header h1{font-family:var(--type-h2-family);font-size:var(--type-h2-size);font-weight:var(--type-h2-weight);line-height:var(--type-h2-line-height);letter-spacing:var(--type-h2-letter-spacing);color:var(--color-text-primary);margin:0 0 var(--spacing-4) 0}.settings-description{font-family:var(--type-body-family);font-size:var(--type-body-size);color:var(--color-text-secondary);margin:0}.settings-content{display:flex;flex-direction:column;gap:var(--spacing-12)}.settings-section{background:var(--color-bg-tertiary);border:none;border-radius:var(--box-radius);box-shadow:var(--box-shadow);overflow:hidden}@media (max-width: 1024px){.settings{margin:8px;padding:20px}}@media (max-width: 768px){.settings{margin:8px 4%;padding:16px;height:calc(100vh - 180px)}.settings-header h1{font-size:1.75rem}.settings-description{font-size:.875rem}}.cash-balance-dashboard{padding:var(--spacing-16);width:100%;max-width:var(--content-max-width);margin:0 auto;min-height:100%;overflow-y:auto;background:transparent;box-sizing:border-box}.cash-balance-dashboard-header{margin-bottom:var(--spacing-8)}.cash-balance-header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-4)}.header-company-name{font-family:var(--type-h3-family);font-size:var(--type-h3-size);font-weight:var(--type-h3-weight);line-height:var(--type-h3-line-height);letter-spacing:var(--type-h3-letter-spacing);color:var(--color-text-primary);margin:0}.cash-balance-date-indicator{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-3) var(--spacing-6);background:var(--color-bg-primary);border-radius:var(--radius-md);border:none;box-shadow:var(--box-shadow)}.date-indicator-text{font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);font-weight:var(--type-ui-2-weight);line-height:var(--type-ui-2-line-height);letter-spacing:var(--type-ui-2-letter-spacing);color:var(--color-text-secondary)}.date-indicator-reset{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-1);font-size:var(--font-size-lg);line-height:1;transition:color var(--transition-base);display:flex;align-items:center;justify-content:center}.date-indicator-reset:hover{color:var(--color-text-primary)}.cash-balance-dashboard-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.cash-balance-dashboard-content{display:flex;flex-direction:column;gap:var(--spacing-12);width:100%}.cash-balance-dashboard-main{display:flex;gap:var(--spacing-8);width:100%;align-items:stretch}.cash-balance-chart-section{flex:1;min-width:0}.cash-balance-kpi-section{flex:0 0 320px;display:flex;flex-direction:column}.kpi-cards-vertical{display:flex;flex-direction:column;gap:var(--spacing-4);height:100%}.kpi-card{background:var(--color-bg-primary);border-radius:var(--box-radius);padding:var(--spacing-8) var(--spacing-6);box-shadow:var(--box-shadow);border:none;transition:transform var(--transition-base),box-shadow var(--transition-base);flex:1;display:flex;flex-direction:column;justify-content:space-between;min-height:0}.kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.kpi-card.highlight{background:var(--color-bg-primary);box-shadow:var(--shadow-md)}.kpi-label{font-family:var(--type-ui-2-family);font-size:var(--font-size-xs);font-weight:var(--type-ui-2-weight);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);margin-bottom:var(--spacing-3)}.kpi-value{font-family:var(--type-h3-family);font-size:var(--font-size-xl);font-weight:var(--type-h3-weight);color:var(--color-text-primary);margin-bottom:var(--spacing-2);line-height:var(--line-height-tight);word-break:break-word}.kpi-description{font-family:var(--type-body-family);font-size:var(--font-size-xs);color:var(--color-text-tertiary);line-height:var(--line-height-normal)}.chart-card{background:var(--color-bg-primary);border-radius:var(--box-radius);padding:var(--spacing-12);box-shadow:var(--box-shadow);border:none;height:100%;outline:none}.chart-card:focus,.chart-card:focus-visible{outline:none}.chart-card.stacked-bar-chart{display:flex;flex-direction:column;height:100%}.chart-card.area-chart{display:flex;flex-direction:column;height:100%;min-height:500px}.chart-title{font-family:var(--type-h3-family);font-size:var(--font-size-xl);font-weight:var(--type-h3-weight);line-height:var(--type-h3-line-height);letter-spacing:var(--type-h3-letter-spacing);color:var(--color-text-primary);margin:0 0 var(--spacing-6) 0}.chart-container{flex:1;min-height:400px;display:flex;align-items:center;justify-content:center;outline:none}.chart-container:focus,.chart-container:focus-visible,.chart-container svg:focus{outline:none}.chart-empty{font-family:var(--type-body-family);font-size:var(--type-body-size);color:var(--color-text-tertiary)}.cash-balance-dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--spacing-8)}.cash-balance-dashboard-loading .loading-spinner{width:48px;height:48px;border:4px solid var(--color-border-light);border-top:4px solid var(--color-secondary);border-radius:var(--radius-full);animation:spin 1s linear infinite}.cash-balance-dashboard-loading p{font-family:var(--type-body-family);font-size:var(--type-body-size);color:var(--color-text-secondary)}.cash-balance-dashboard-error{background:var(--color-error-bg);border:none;border-radius:var(--box-radius);box-shadow:var(--box-shadow);padding:var(--spacing-16);text-align:center;margin:var(--spacing-16) 0}.cash-balance-dashboard-error .error-message{font-family:var(--type-body-family);font-size:var(--type-body-size);font-weight:var(--font-weight-medium);color:var(--color-error);margin:0 0 var(--spacing-4) 0}.cash-balance-dashboard-error .error-hint{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);color:var(--color-error);margin:0;opacity:.8}.cash-balance-dashboard-empty{background:var(--color-bg-primary);border:none;border-radius:var(--box-radius);box-shadow:var(--box-shadow);padding:var(--spacing-24);text-align:center;margin:var(--spacing-16) 0}.cash-balance-dashboard-empty p{font-family:var(--type-body-family);font-size:var(--type-body-size);color:var(--color-text-secondary);margin:var(--spacing-4) 0}.cash-balance-dashboard-empty .empty-hint{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);color:var(--color-text-tertiary)}@media (max-width: 1024px){.cash-balance-dashboard-main{flex-direction:column}.cash-balance-kpi-section{flex:1;width:100%}.kpi-cards-vertical{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-6)}.kpi-card{min-height:auto}.chart-card.area-chart{min-height:400px}}@media (max-width: 768px){.cash-balance-dashboard{padding:var(--spacing-8)}.cash-balance-dashboard-content{height:auto}.cash-balance-dashboard-main{flex-direction:column;gap:var(--spacing-6)}.cash-balance-kpi-section{flex:1;width:100%}.kpi-cards-vertical{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-4)}.kpi-card{min-height:auto}.kpi-value{font-size:var(--font-size-lg)}.header-company-name{font-size:var(--font-size-xl)}.cash-balance-dashboard-header{margin-bottom:var(--spacing-6)}.chart-card.area-chart{min-height:350px}}@media (max-width: 480px){.kpi-cards-vertical{grid-template-columns:1fr}}.recharts-tooltip-wrapper{z-index:var(--z-tooltip)}.recharts-cartesian-axis-tick-value{font-family:var(--font-primary)}.recharts-legend-item-text{font-family:var(--type-ui-2-family)!important;font-size:var(--type-ui-2-size)!important;font-weight:var(--type-ui-2-weight)!important;color:var(--color-text-secondary)!important}.recharts-default-legend{font-family:var(--font-primary)}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-page);padding:var(--spacing-10)}.login-card{background:var(--color-bg-primary);border-radius:var(--box-radius);box-shadow:var(--box-shadow);border:none;padding:var(--spacing-20);width:100%;max-width:400px}.login-header{text-align:center;margin-bottom:var(--spacing-16)}.login-logo{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-8)}.login-logo-icon{width:64px;height:64px;filter:var(--shadow-logo-light)}.login-logo-text h1{font-family:var(--type-h2-family);font-size:var(--type-h2-size);font-weight:var(--type-h2-weight);line-height:var(--type-h2-line-height);letter-spacing:var(--type-h2-letter-spacing);color:var(--color-primary);text-shadow:var(--shadow-text);margin:0}.login-tagline{display:block;font-family:var(--type-body-family);font-size:var(--type-body-size);color:var(--color-text-secondary);margin-top:var(--spacing-2);font-weight:var(--font-weight-light)}.login-form h2{font-family:var(--type-h3-family);font-size:var(--type-h3-size);font-weight:var(--type-h3-weight);line-height:var(--type-h3-line-height);letter-spacing:var(--type-h3-letter-spacing);color:var(--color-text-primary);text-align:center;margin:0 0 var(--spacing-12) 0}.login-error{background:var(--color-error-bg);border:none;color:var(--color-error);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);padding:var(--spacing-6);border-radius:var(--radius-lg);margin-bottom:var(--spacing-10)}.form-group{margin-bottom:var(--spacing-10)}.form-group label{display:block;margin-bottom:var(--spacing-3);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);color:var(--color-text-primary)}.form-group input{width:100%;padding:var(--spacing-6) var(--spacing-8);font-family:var(--type-body-family);font-size:var(--type-body-size);background:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--box-shadow);transition:var(--transition-base);box-sizing:border-box;color:var(--color-text-primary)}.form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus-primary)}.form-group input:hover:not(:disabled){border-color:var(--color-border-lighter);box-shadow:var(--shadow-md)}.form-group input:disabled{background-color:var(--color-bg-quaternary);cursor:not-allowed}.login-button{width:100%;font-family:var(--type-body-family);font-size:var(--type-body-size);font-weight:var(--font-weight-semibold);background:var(--color-primary);color:var(--color-text-inverse);border:none;padding:var(--spacing-8) var(--spacing-12);border-radius:var(--radius-lg);box-shadow:var(--box-shadow);cursor:pointer;transition:var(--transition-base);margin-top:var(--spacing-4)}.login-button:hover:not(:disabled){background:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.login-button:disabled{background:var(--color-gray-disabled);cursor:not-allowed;transform:none}.login-footer{text-align:center;margin-top:var(--spacing-12);padding-top:var(--spacing-12);border-top:1px solid var(--color-border-light)}.login-footer p{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);color:var(--color-text-secondary);margin:0}@media (max-width: 480px){.login-container{padding:var(--spacing-8)}.login-card{padding:var(--spacing-16) var(--spacing-12)}.login-logo-text h1{font-size:2rem}.login-tagline{font-size:.9rem}}.no-access-container{display:flex;justify-content:center;align-items:center;height:100%;min-height:400px;padding:var(--spacing-10);background:transparent;border-radius:0;box-shadow:none;margin:var(--spacing-6)}.no-access-content{background:var(--color-bg-primary);border-radius:var(--box-radius);box-shadow:var(--box-shadow);border:none;padding:var(--spacing-16);max-width:500px;width:100%;text-align:center}.no-access-icon{margin-bottom:2rem}.no-access-icon .logo-icon{width:80px;height:80px;filter:grayscale(20%)}.no-access-content h2{font-family:var(--type-h3-family);font-size:var(--type-h3-size);font-weight:var(--type-h3-weight);line-height:var(--type-h3-line-height);letter-spacing:var(--type-h3-letter-spacing);color:var(--color-primary);margin-bottom:var(--spacing-8);text-align:center}.error-message{background:#fff3cd;border:none;border-radius:var(--radius-lg);padding:var(--spacing-6);margin-bottom:var(--spacing-10)}.error-message p{font-family:var(--type-body-family);font-size:var(--type-body-size);color:#856404;margin:0;font-weight:var(--font-weight-medium)}.contact-info{text-align:left;margin-bottom:var(--spacing-10);padding:var(--spacing-8);background:var(--color-bg-tertiary);border-radius:var(--radius-lg);border-left:4px solid var(--color-primary)}.contact-info h3{font-family:var(--type-h3-family);font-size:var(--font-size-xl);font-weight:var(--type-h3-weight);line-height:var(--type-h3-line-height);letter-spacing:var(--type-h3-letter-spacing);color:var(--color-primary);margin-bottom:var(--spacing-6);text-align:center}.contact-info p{font-family:var(--type-body-family);font-size:var(--type-body-size);color:var(--color-text-secondary);margin-bottom:var(--spacing-6);text-align:center}.contact-info ul{list-style:none;padding:0;margin:0}.contact-info li{font-family:var(--type-body-family);font-size:var(--type-body-size);color:var(--color-text-primary);margin-bottom:var(--spacing-3);padding-left:var(--spacing-6);position:relative}.contact-info li:before{content:"•";color:var(--color-primary);position:absolute;left:0;font-weight:700}.help-actions{display:flex;justify-content:center}.contact-button{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);background:var(--color-primary);color:#fff;text-decoration:none;padding:var(--spacing-6) var(--spacing-12);border-radius:var(--radius-lg);box-shadow:var(--box-shadow);transition:all var(--transition-base);border:none;cursor:pointer;display:inline-block}.contact-button:hover{background:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-md);text-decoration:none;color:#fff}@media (max-width: 1024px){.no-access-container{padding:1.5rem}}@media (max-width: 768px){.no-access-container{padding:1rem 4%;min-height:calc(100vh - 180px)}.no-access-content{padding:1.5rem}.no-access-content h2{font-size:1.5rem}.no-access-icon .logo-icon{width:60px;height:60px}.contact-info{padding:1rem}}body{font-family:var(--type-body-family);font-weight:var(--type-body-weight);font-size:var(--type-body-size);line-height:var(--type-body-line-height);letter-spacing:var(--type-body-letter-spacing);color:var(--color-text-primary)}h1{font-family:var(--type-h1-family);font-weight:var(--type-h1-weight);font-size:var(--type-h1-size);line-height:var(--type-h1-line-height);letter-spacing:var(--type-h1-letter-spacing);color:var(--color-text-primary);margin:0 0 var(--spacing-8) 0}h2{font-family:var(--type-h2-family);font-weight:var(--type-h2-weight);font-size:var(--type-h2-size);line-height:var(--type-h2-line-height);letter-spacing:var(--type-h2-letter-spacing);color:var(--color-text-primary);margin:0 0 var(--spacing-6) 0}h3{font-family:var(--type-h3-family);font-weight:var(--type-h3-weight);font-size:var(--type-h3-size);line-height:var(--type-h3-line-height);letter-spacing:var(--type-h3-letter-spacing);color:var(--color-text-primary);margin:0 0 var(--spacing-4) 0}p{margin:0 0 var(--spacing-4) 0}.card,.box{background:var(--color-bg-primary);border-radius:var(--box-radius);box-shadow:var(--box-shadow);padding:var(--spacing-12);border:none}.App{min-height:100vh;display:flex;flex-direction:column;background-color:var(--color-bg-page);padding-top:var(--header-height)}.app-layout{display:flex;flex:1;min-height:calc(100vh - var(--header-height));align-items:stretch}.main-content{flex:1;padding:var(--spacing-6) var(--spacing-6) var(--spacing-6) var(--spacing-6);max-width:100%;margin:0;width:100%;overflow-y:auto;display:flex;flex-direction:column;background-color:var(--color-bg-page)}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-6);height:calc(100vh - 100px);min-height:0}@media (max-width: 1024px){.content-grid{grid-template-columns:1fr;height:calc(100vh - 100px);min-height:0}.chat-panel,.chart-panel{height:50%;min-height:300px}}@media (max-width: 768px){.app-layout{flex-direction:column}.main-content{padding:8px 4%;margin-left:0}.content-grid{gap:8px;height:calc(100vh - 140px);min-height:0}.chat-panel,.chart-panel{height:50%;min-height:250px}}.chat-panel,.chart-panel{background:transparent;border-radius:0;box-shadow:none;border:none;overflow:hidden;display:flex;flex-direction:column}.error-banner{position:fixed;bottom:var(--spacing-10);left:50%;transform:translate(-50%);background:var(--color-error-light);color:var(--color-text-inverse);padding:var(--spacing-6) var(--spacing-12);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-modal)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:400px}.loading-spinner{width:var(--spacing-20);height:var(--spacing-20);border:3px solid var(--color-bg-quaternary);border-top:3px solid var(--color-primary);border-radius:var(--radius-full);animation:spin 1s linear infinite;margin-bottom:var(--spacing-8)}.loading-text{color:var(--color-text-secondary);font-size:var(--font-size-base);margin:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 1024px){.content-grid{grid-template-columns:1fr;height:auto}.chat-panel,.chart-panel{min-height:500px}}@media (max-width: 768px){.main-content{padding:8px 1.5%}.content-grid{gap:8px}}.delete-widget-modal{background:var(--color-bg-primary);border-radius:var(--box-radius);padding:var(--spacing-8);width:90%;max-width:480px;box-shadow:var(--shadow-xl);border:none;animation:modalSlideIn .3s ease-out;position:relative}.delete-widget-modal .modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-4);border-bottom:1px solid var(--color-border-light);position:relative}.delete-widget-modal .modal-header h2{font-family:var(--type-h3-family);font-size:var(--type-h3-size);font-weight:var(--type-h3-weight);line-height:var(--type-h3-line-height);letter-spacing:var(--type-h3-letter-spacing);color:var(--color-text-primary);margin:0}.delete-widget-modal .modal-close-btn{background:none;border:none;font-size:32px;line-height:1;color:var(--color-text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base);margin-left:auto}.delete-widget-modal .modal-close-btn:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.delete-widget-modal .modal-content{margin-bottom:var(--spacing-8);background:none!important;border-radius:0!important;box-shadow:none!important;padding:0!important;max-width:none!important;width:auto!important}.delete-confirmation-text{font-family:var(--type-body-family);font-size:var(--type-body-size);color:var(--color-text-primary);line-height:var(--line-height-relaxed);margin:0;padding:0;background:none}.delete-warning-text{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:var(--spacing-3) 0 0 0;padding:0;background:none}.delete-widget-modal .modal-actions{display:flex;gap:var(--spacing-4);justify-content:flex-end}.delete-widget-modal .cancel-btn{padding:var(--spacing-3) var(--spacing-6);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);color:var(--color-text-primary);background:var(--color-bg-tertiary);border:none;border-radius:var(--radius-md);box-shadow:var(--box-shadow);cursor:pointer;transition:all var(--transition-base)}.delete-widget-modal .cancel-btn:hover:not(:disabled){background:var(--color-bg-quaternary);box-shadow:var(--shadow-md)}.delete-widget-modal .cancel-btn:disabled{opacity:.5;cursor:not-allowed}.delete-widget-modal .delete-btn{padding:var(--spacing-3) var(--spacing-6);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);color:#fff;background:var(--color-error);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--box-shadow)}.delete-widget-modal .delete-btn:hover:not(:disabled){background:var(--color-error-light);transform:translateY(-2px);box-shadow:var(--shadow-md)}.delete-widget-modal .delete-btn:active:not(:disabled){transform:translateY(0);box-shadow:var(--box-shadow)}.delete-widget-modal .delete-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}@media (max-width: 768px){.delete-widget-modal{padding:var(--spacing-6);max-width:95%}.delete-widget-modal .modal-header h2{font-size:var(--font-size-lg)}.delete-widget-modal .modal-actions{flex-direction:column-reverse}.delete-widget-modal .cancel-btn,.delete-widget-modal .delete-btn{width:100%;justify-content:center}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.dashboard-widget{background:var(--color-bg-primary);border:none;border-radius:var(--box-radius);padding:var(--spacing-8);display:flex;flex-direction:column;gap:var(--spacing-5);box-shadow:var(--box-shadow);transition:box-shadow .2s ease,opacity .2s ease;overflow:hidden}.dashboard-widget:hover{box-shadow:var(--shadow-md)}.dashboard-widget.dragging{opacity:.5;box-shadow:var(--shadow-lg);z-index:1000}.widget-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4);padding-bottom:var(--spacing-4);border-bottom:1px solid var(--color-border-light);cursor:grab;-webkit-user-select:none;user-select:none}.widget-header:active{cursor:grabbing}.widget-title{font-family:var(--type-h3-family);font-size:var(--font-size-xl);font-weight:var(--type-h3-weight);line-height:var(--line-height-tight);color:var(--color-text-primary);margin:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.widget-delete-btn{background:none;border:none;padding:var(--spacing-1);cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);flex-shrink:0;font-size:24px;line-height:1;color:var(--color-text-secondary);width:28px;height:28px;pointer-events:auto}.widget-delete-btn:hover{background:var(--color-error-bg);color:var(--color-error)}.widget-metadata{display:flex;flex-wrap:wrap;gap:var(--spacing-4);padding:var(--spacing-3) var(--spacing-4);background:var(--color-bg-secondary);border-radius:var(--radius-md);font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);font-weight:var(--type-ui-2-weight)}.metadata-item{color:var(--color-text-secondary);line-height:var(--line-height-tight)}.metadata-item strong{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.widget-chart{flex:1;min-height:250px;display:flex;flex-direction:column;overflow:hidden;cursor:default}.widget-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:var(--spacing-4);padding:var(--spacing-10)}.widget-loading .loading-spinner{width:32px;height:32px;border:3px solid var(--color-border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.widget-loading p{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);color:var(--color-text-secondary);margin:0}.widget-error{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:var(--spacing-4);padding:var(--spacing-10);text-align:center}.widget-error p{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);color:var(--color-error);margin:0}.retry-btn{padding:var(--spacing-3) var(--spacing-5);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);color:var(--color-primary);background:var(--color-primary-light);border:none;border-radius:var(--radius-md);box-shadow:var(--box-shadow);cursor:pointer;transition:all var(--transition-base)}.widget-no-data{display:flex;align-items:center;justify-content:center;flex:1;padding:var(--spacing-10)}.widget-no-data p{font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);color:var(--color-text-secondary);margin:0}.widget-description{padding-top:var(--spacing-4);border-top:1px solid var(--color-border-light);font-family:var(--type-ui-2-family);font-size:var(--type-ui-2-size);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.widget-description p{margin:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}@media (max-width: 1024px){.dashboard-widget{padding:var(--spacing-5);gap:var(--spacing-4)}.widget-title{font-size:var(--font-size-base)}.widget-chart{min-height:220px}}@media (max-width: 768px){.dashboard-widget{padding:var(--spacing-4);gap:var(--spacing-3)}.widget-metadata{flex-direction:column;gap:var(--spacing-2)}.widget-chart{min-height:200px}.widget-description p{-webkit-line-clamp:3}}.dashboard-view{display:flex;flex-direction:column;height:100%;padding:var(--spacing-8);gap:var(--spacing-8);overflow:auto}.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-6);flex-wrap:wrap}.dashboard-header h1{font-family:var(--type-h2-family);font-size:var(--type-h2-size);font-weight:var(--type-h2-weight);line-height:var(--type-h2-line-height);letter-spacing:var(--type-h2-letter-spacing);color:var(--color-text-primary);margin:0}.dashboard-selector{display:flex;align-items:center;gap:var(--spacing-3)}.dashboard-select{padding:var(--spacing-3) var(--spacing-5);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);color:var(--color-text-primary);background:var(--color-bg-primary);border:none;border-radius:var(--radius-md);box-shadow:var(--box-shadow);cursor:pointer;transition:all var(--transition-base)}.dashboard-select:hover{box-shadow:var(--shadow-md)}.dashboard-select:focus{outline:none;box-shadow:var(--shadow-focus-primary)}.dashboard-content{flex:1;display:flex;flex-direction:column;overflow:auto}.dashboard-grid{display:grid;gap:var(--spacing-6);min-height:500px;flex:1;position:relative}.dashboard-grid[data-structure="2x2"]{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}.dashboard-grid[data-structure="3x2"]{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,1fr)}.dashboard-grid[data-structure="2x3"]{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr)}.empty-dashboard,.empty-dashboard-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-16);text-align:center;flex:1;min-height:400px}.empty-icon{font-size:64px;margin-bottom:var(--spacing-6);opacity:.5;display:flex;align-items:center;justify-content:center}.empty-icon img{width:80px;height:80px;object-fit:contain;opacity:.7}.empty-dashboard h3,.empty-dashboard-state h3{font-family:var(--type-h3-family);font-size:var(--type-h3-size);font-weight:var(--type-h3-weight);line-height:var(--type-h3-line-height);letter-spacing:var(--type-h3-letter-spacing);color:var(--color-text-primary);margin:0 0 var(--spacing-4) 0}.empty-dashboard p,.empty-dashboard-state p{font-family:var(--type-body-family);font-size:var(--type-body-size);color:var(--color-text-secondary);margin:0 0 var(--spacing-8) 0;max-width:500px}.go-to-deepdive-btn{padding:var(--spacing-4) var(--spacing-8);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--box-shadow)}.go-to-deepdive-btn:hover{background:var(--color-primary-dark, #0a1f3a);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-md)}.go-to-deepdive-btn:active{transform:translateY(0);box-shadow:var(--box-shadow)}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-16);gap:var(--spacing-6);flex:1;min-height:400px}.dashboard-loading .loading-spinner{width:48px;height:48px;border:4px solid var(--color-border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dashboard-loading p{font-family:var(--type-body-family);font-size:var(--type-body-size);color:var(--color-text-secondary);margin:0}.dashboard-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-16);gap:var(--spacing-6);flex:1;min-height:400px;text-align:center}.dashboard-error p{font-family:var(--type-body-family);font-size:var(--type-body-size);color:var(--color-error);margin:0;max-width:500px}.retry-btn{padding:var(--spacing-3) var(--spacing-6);font-family:var(--type-ui-1-family);font-size:var(--type-ui-1-size);font-weight:var(--type-ui-1-weight);color:var(--color-primary);background:var(--color-primary-light);border:none;border-radius:var(--radius-md);box-shadow:var(--box-shadow);cursor:pointer;transition:all var(--transition-base)}.retry-btn:hover{background:var(--color-primary);color:#fff!important;box-shadow:var(--shadow-md)}@media (max-width: 1024px){.dashboard-view{padding:var(--spacing-6);gap:var(--spacing-6)}.dashboard-header h1{font-size:var(--font-size-xl)}.dashboard-grid{grid-template-columns:1fr!important;grid-template-rows:auto!important;min-height:auto}.dashboard-grid>*{grid-row:auto!important;grid-column:auto!important}}@media (max-width: 768px){.dashboard-view{padding:var(--spacing-4);gap:var(--spacing-4)}.dashboard-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-4)}.dashboard-header h1{font-size:var(--font-size-lg)}.dashboard-selector,.dashboard-select{width:100%}.empty-dashboard,.empty-dashboard-state,.dashboard-loading,.dashboard-error{padding:var(--spacing-10);min-height:300px}.empty-icon{font-size:48px}.empty-icon img{width:60px;height:60px}}@media (max-width: 480px){.dashboard-view{padding:var(--spacing-3)}.dashboard-grid{gap:var(--spacing-4)}}
