@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--color-primary-50: #EEF2FF;--color-primary-100: #E0E7FF;--color-primary-200: #C7D2FE;--color-primary-300: #A5B4FC;--color-primary-400: #818CF8;--color-primary-500: #4169E1;--color-primary-600: #3B5BD9;--color-primary-700: #3149C4;--color-primary-800: #2A3FA8;--color-primary-900: #1E3A8A;--color-bg-primary: #D8E4F8;--color-bg-secondary: #E4ECFA;--color-bg-tertiary: #EEF3FC;--color-bg-gradient: linear-gradient(135deg, #D8E4F8 0%, #E4ECFA 50%, #EEF3FC 100%);--color-surface-primary: #FFFFFF;--color-surface-secondary: #FAFBFF;--color-surface-hover: #F0F4FF;--color-surface-active: #E8EEFF;--color-text-primary: #1e293b;--color-text-secondary: #64748b;--color-text-tertiary: #94a3b8;--color-text-inverse: #FFFFFF;--color-text-link: #4169E1;--color-text-link-hover: #3149C4;--color-border-light: #E2E8F0;--color-border-medium: #CBD5E1;--color-border-dark: #94A3B8;--color-border-focus: #4169E1;--color-success: #10B981;--color-success-light: #D1FAE5;--color-warning: #F59E0B;--color-warning-light: #FEF3C7;--color-error: #EF4444;--color-error-light: #FEE2E2;--color-info: #3B82F6;--color-info-light: #DBEAFE;--font-family-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;--font-family-mono: "Fira Code", "JetBrains Mono", "SF Mono", Monaco, Consolas, monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .025em;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.25rem;--radius-3xl: 1.5rem;--radius-4xl: 2rem;--radius-full: 9999px;--radius-bubble: 1.25rem;--radius-bubble-tail: .25rem;--radius-card: 1.5rem;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--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);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-primary: 0 4px 14px 0 rgb(65 105 225 / .25);--shadow-primary-lg: 0 10px 25px -3px rgb(65 105 225 / .3);--shadow-input: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-input-focus: 0 0 0 3px rgb(65 105 225 / .15);--shadow-card: 0 2px 8px -2px rgb(0 0 0 / .08), 0 4px 12px -4px rgb(0 0 0 / .05);--shadow-card-hover: 0 4px 12px -2px rgb(0 0 0 / .12), 0 8px 16px -4px rgb(0 0 0 / .08);--shadow-floating: 0 4px 20px -4px rgb(0 0 0 / .08), 0 8px 32px -8px rgb(0 0 0 / .06);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--transition-slower: .4s ease;--transition-colors: color .15s ease, background-color .15s ease, border-color .15s ease;--transition-transform: transform .2s ease;--transition-opacity: opacity .2s ease;--transition-shadow: box-shadow .2s ease;--transition-all: all .2s ease;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--sidebar-width: 300px;--sidebar-width-collapsed: 72px;--header-height: 64px;--input-height: 56px;--max-chat-width: 1400px;--max-content-width: 1400px;--app-padding: 1rem;--message-user-max-width: 55%;--message-assistant-max-width: 100%;--message-user-bg: var(--color-primary-500);--message-user-text: var(--color-text-inverse);--message-user-radius: var(--radius-bubble) var(--radius-bubble) var(--radius-bubble-tail) var(--radius-bubble);--message-assistant-bg: var(--color-surface-primary);--message-assistant-text: var(--color-text-primary);--message-assistant-radius: var(--radius-bubble) var(--radius-bubble) var(--radius-bubble) var(--radius-bubble-tail)}:root{font-family:var(--font-family-sans);line-height:var(--line-height-normal);font-weight:var(--font-weight-normal);color-scheme:light;color:var(--color-text-primary);background-color:var(--color-bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;display:flex;min-width:320px;min-height:100vh;background:var(--color-bg-gradient);color:var(--color-text-primary)}#root{width:100%;height:100vh}a{color:var(--color-text-link);text-decoration:none;transition:var(--transition-colors)}a:hover{color:var(--color-text-link-hover)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--color-border-medium);border-radius:var(--radius-full);border:2px solid var(--color-bg-secondary)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-dark)}::selection{background:var(--color-primary-200);color:var(--color-primary-900)}:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea{font-family:inherit;font-size:inherit}.app{display:flex;height:100vh;width:100%;padding:var(--app-padding, 1rem);gap:var(--app-padding, 1rem);background:var(--color-bg-primary, #D8E4F8);color:var(--color-text-primary, #1e293b);font-family:var(--font-family-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif);box-sizing:border-box}@media (max-width: 768px){.app{flex-direction:column;padding:var(--space-2, 8px);gap:var(--space-2, 8px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{transform:translate(-10px);opacity:0}to{transform:translate(0);opacity:1}}.fade-in{animation:fadeIn .3s ease-out}.slide-in{animation:slideIn .3s ease-out}.btn{padding:10px 20px;border:none;border-radius:8px;background:#4169e1;color:#fff;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px;text-transform:uppercase}.btn:hover{background:#3456c7;transform:translateY(-1px);box-shadow:0 2px 8px #4169e14d}.btn:active{transform:translateY(0)}.btn:disabled{background:#ccc;color:#666;cursor:not-allowed;transform:none}.btn-secondary{background:#fff;color:#333;border:1px solid #e0e0e0;text-transform:none}.btn-secondary:hover{background:#f5f5f5;border-color:#ccc}.input{background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:12px;color:#333;font-size:14px;transition:all .2s ease}.input:focus{outline:none;border-color:#4169e1;box-shadow:0 0 0 3px #4169e11a}.input::placeholder{color:#999}.card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000000d}.spinner{width:20px;height:20px;border:2px solid #45475a;border-top-color:#89b4fa;border-radius:50%;animation:spin 1s linear infinite}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#181825;color:#cdd6f4;padding:4px 8px;border-radius:4px;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;z-index:1000}.tooltip:hover:after{opacity:1}.sidebar{width:var(--sidebar-width, 300px);min-width:var(--sidebar-width, 300px);background:var(--color-surface-primary, #FFFFFF);border-radius:var(--radius-card, 24px);display:flex;flex-direction:column;height:100%;box-shadow:var(--shadow-floating, 0 4px 20px -4px rgb(0 0 0 / .08));overflow:hidden;transition:var(--transition-base, all .2s ease)}.sidebar.closed{width:0;min-width:0;padding:0;opacity:0}.sidebar-header{padding:var(--space-5, 20px) var(--space-5, 20px) var(--space-4, 16px)}.logo-section{display:flex;align-items:center;justify-content:center}.logo-icon{width:120px;height:auto;flex-shrink:0}.logo-text{font-size:var(--font-size-xl, 20px);font-weight:var(--font-weight-bold, 700);color:var(--color-primary-500, #4169E1);letter-spacing:.05em}.action-buttons-row{display:flex;gap:var(--space-2, 8px);padding:0 var(--space-5, 20px);margin-bottom:var(--space-3, 12px)}.new-chat-btn{flex:1;padding:var(--space-3, 12px) var(--space-4, 16px);display:flex;align-items:center;justify-content:center;gap:var(--space-2, 8px);background:var(--color-primary-500, #4169E1);color:var(--color-text-inverse, #FFFFFF);border:none;border-radius:var(--radius-full, 9999px);font-size:var(--font-size-sm, 14px);font-weight:var(--font-weight-semibold, 600);cursor:pointer;transition:var(--transition-all, all .2s ease);box-shadow:var(--shadow-primary, 0 4px 14px 0 rgb(65 105 225 / .25))}.new-chat-btn:hover{background:var(--color-primary-600, #3B5BD9);transform:translateY(-1px);box-shadow:var(--shadow-primary-lg, 0 10px 25px -3px rgb(65 105 225 / .3))}.new-chat-btn:active{transform:translateY(0)}.search-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-500, #4169E1);color:var(--color-text-inverse, #FFFFFF);border:none;border-radius:var(--radius-full, 9999px);cursor:pointer;transition:var(--transition-all, all .2s ease);box-shadow:var(--shadow-primary, 0 4px 14px 0 rgb(65 105 225 / .25));flex-shrink:0}.search-btn:hover{background:var(--color-primary-600, #3B5BD9);transform:translateY(-1px)}.search-section{padding:0 var(--space-5, 20px);margin-bottom:var(--space-3, 12px)}.search-toggle-btn{width:100%;display:flex;align-items:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);background:var(--color-surface-hover, #F0F4FF);border:1px solid var(--color-border-light, #E2E8F0);border-radius:var(--radius-lg, 12px);color:var(--color-text-secondary, #64748b);font-size:var(--font-size-sm, 14px);cursor:pointer;transition:var(--transition-colors, color .15s ease, background-color .15s ease, border-color .15s ease)}.search-toggle-btn:hover{background:var(--color-surface-active, #E8EEFF);border-color:var(--color-border-medium, #CBD5E1)}.search-input-container{display:flex;align-items:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);background:var(--color-surface-primary, #FFFFFF);border:2px solid var(--color-primary-500, #4169E1);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-input-focus, 0 0 0 3px rgb(65 105 225 / .15))}.search-icon{color:var(--color-text-tertiary, #94a3b8);flex-shrink:0}.search-input{flex:1;border:none;outline:none;background:transparent;font-size:var(--font-size-sm, 14px);color:var(--color-text-primary, #1e293b)}.search-input::placeholder{color:var(--color-text-tertiary, #94a3b8)}.search-close-btn{background:none;border:none;padding:var(--space-1, 4px);color:var(--color-text-tertiary, #94a3b8);cursor:pointer;border-radius:var(--radius-sm, 4px);transition:var(--transition-colors, color .15s ease, background-color .15s ease, border-color .15s ease)}.search-close-btn:hover{background:var(--color-surface-hover, #F0F4FF);color:var(--color-text-secondary, #64748b)}.selector-section{padding:0 var(--space-5, 20px);display:flex;flex-direction:column;gap:var(--space-2, 8px);margin-bottom:var(--space-4, 16px);padding-bottom:var(--space-4, 16px);border-bottom:1px solid var(--color-border-light, #E2E8F0)}.conversations-section{flex:1;display:flex;flex-direction:column;min-height:0;padding:0 var(--space-3, 12px)}.conversations-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3, 12px) var(--space-2, 8px) var(--space-2, 8px);font-size:var(--font-size-xs, 12px);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-secondary, #64748b);text-transform:uppercase;letter-spacing:.05em}.clear-all-btn{background:none;border:none;font-size:var(--font-size-xs, 12px);color:var(--color-primary-500, #4169E1);cursor:pointer;padding:var(--space-1, 4px) var(--space-2, 8px);border-radius:var(--radius-sm, 4px);transition:var(--transition-colors, color .15s ease, background-color .15s ease, border-color .15s ease);font-weight:var(--font-weight-medium, 500)}.clear-all-btn:hover{background:var(--color-error-light, #FEE2E2);color:var(--color-error, #EF4444)}.thread-list{flex:1;overflow-y:auto;padding-bottom:var(--space-4, 16px)}.thread-list::-webkit-scrollbar{width:6px}.thread-list::-webkit-scrollbar-track{background:transparent}.thread-list::-webkit-scrollbar-thumb{background:var(--color-border-medium, #CBD5E1);border-radius:var(--radius-full, 9999px)}.thread-list::-webkit-scrollbar-thumb:hover{background:var(--color-border-dark, #94A3B8)}.thread-group{margin-bottom:var(--space-3, 12px)}.thread-group-label{font-size:var(--font-size-xs, 12px);font-weight:var(--font-weight-medium, 500);color:var(--color-text-tertiary, #94a3b8);padding:var(--space-2, 8px);padding-left:var(--space-2, 8px)}.thread-item{display:flex;align-items:center;gap:var(--space-3, 12px);padding:var(--space-3, 12px);padding-left:var(--space-3, 12px);border-radius:var(--radius-lg, 12px);cursor:pointer;transition:var(--transition-all, all .2s ease);margin-bottom:var(--space-1, 4px);border-left:3px solid transparent;border-top-left-radius:var(--radius-sm, 4px);border-bottom-left-radius:var(--radius-sm, 4px)}.thread-item:hover{background:var(--color-surface-hover, #F0F4FF)}.thread-item.active{background:var(--color-surface-active, #E8EEFF)}.thread-icon{color:var(--color-text-tertiary, #94a3b8);flex-shrink:0}.thread-item.active .thread-icon{color:var(--color-primary-500, #4169E1)}.thread-content{flex:1;min-width:0;position:relative}.thread-context-tooltip{position:absolute;left:0;top:100%;margin-top:4px;padding:4px 8px;background:var(--color-surface-inverse, #1e293b);color:var(--color-text-inverse, #ffffff);font-size:11px;font-weight:500;border-radius:var(--radius-sm, 4px);white-space:nowrap;z-index:100;box-shadow:var(--shadow-lg, 0 10px 15px -3px rgb(0 0 0 / .1));animation:tooltipFadeIn .15s ease-out}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.thread-title{font-size:var(--font-size-sm, 14px);font-weight:var(--font-weight-medium, 500);color:var(--color-text-primary, #1e293b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-item.active .thread-title{color:var(--color-primary-700, #3149C4);font-weight:var(--font-weight-semibold, 600)}.thread-title-input{width:100%;padding:var(--space-1, 4px) var(--space-2, 8px);border:2px solid var(--color-primary-500, #4169E1);border-radius:var(--radius-md, 8px);font-size:var(--font-size-sm, 14px);font-weight:var(--font-weight-medium, 500);color:var(--color-text-primary, #1e293b);background:var(--color-surface-primary, #FFFFFF);outline:none;box-shadow:var(--shadow-input-focus, 0 0 0 3px rgb(65 105 225 / .15))}.thread-actions{display:flex;gap:var(--space-1, 4px);opacity:0;transition:var(--transition-opacity, opacity .2s ease)}.thread-item:hover .thread-actions{opacity:1}.thread-action-btn{background:none;border:none;padding:var(--space-1, 4px);color:var(--color-text-tertiary, #94a3b8);cursor:pointer;border-radius:var(--radius-sm, 4px);transition:var(--transition-all, all .2s ease);display:flex;align-items:center;justify-content:center}.thread-action-btn:hover{background:var(--color-primary-100, #E0E7FF);color:var(--color-primary-500, #4169E1)}.thread-action-btn.delete:hover{background:var(--color-error-light, #FEE2E2);color:var(--color-error, #EF4444)}.no-threads{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8, 32px) var(--space-4, 16px);text-align:center;color:var(--color-text-tertiary, #94a3b8)}.no-threads svg{margin-bottom:var(--space-3, 12px);opacity:.5}.no-threads p{font-size:var(--font-size-sm, 14px);font-weight:var(--font-weight-medium, 500);color:var(--color-text-secondary, #64748b);margin-bottom:var(--space-1, 4px)}.no-threads span{font-size:var(--font-size-xs, 12px)}.sidebar-footer{padding:var(--space-4, 16px) var(--space-5, 20px);border-top:1px solid var(--color-border-light, #E2E8F0);display:flex;flex-direction:column;gap:var(--space-2, 8px)}.connected-status{display:flex;align-items:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);background:var(--color-surface-secondary, #FAFBFF);border-radius:var(--radius-md, 8px);font-size:var(--font-size-xs, 12px);color:var(--color-text-secondary, #64748b)}.connected-status .status-dot{width:8px;height:8px;background:var(--color-success, #10B981);border-radius:var(--radius-full, 9999px);animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.logout-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);background:transparent;border:1px solid var(--color-border-light, #E2E8F0);border-radius:var(--radius-md, 8px);color:var(--color-text-secondary, #64748b);font-size:var(--font-size-sm, 14px);font-weight:var(--font-weight-medium, 500);cursor:pointer;transition:var(--transition-all, all .2s ease)}.logout-btn:hover{background:var(--color-error-light, #FEE2E2);border-color:var(--color-error, #EF4444);color:var(--color-error, #EF4444)}@media (max-width: 768px){.sidebar{position:fixed;left:var(--app-padding, 1rem);top:var(--app-padding, 1rem);bottom:var(--app-padding, 1rem);height:calc(100vh - var(--app-padding, 1rem) * 2);z-index:1000;transform:translate(calc(-100% - var(--app-padding, 1rem)))}.sidebar.open{transform:translate(0)}}.tenant-selector{position:relative}.tenant-selector-loading{padding:var(--space-2, 8px) var(--space-3, 12px);font-size:var(--font-size-sm, 14px);color:var(--color-text-tertiary, #94a3b8)}.tenant-badge{display:flex;align-items:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);font-size:var(--font-size-sm, 14px);color:var(--color-text-primary, #1e293b);background:var(--color-surface-secondary, #FAFBFF);border:1px solid var(--color-border-light, #E2E8F0);border-left:3px solid transparent;border-radius:var(--radius-md, 8px)}.tenant-icon{width:16px;height:16px;flex-shrink:0;color:var(--color-text-tertiary, #94a3b8)}.tenant-dropdown-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);font-size:var(--font-size-sm, 14px);font-weight:var(--font-weight-medium, 500);color:var(--color-text-primary, #1e293b);background:var(--color-surface-secondary, #FAFBFF);border:1px solid var(--color-border-light, #E2E8F0);border-left:3px solid transparent;border-radius:var(--radius-md, 8px);cursor:pointer;transition:var(--transition-all, all .2s ease);outline:none}.tenant-dropdown-button:hover{background:var(--color-surface-hover, #F0F4FF);border-color:var(--color-border-medium, #CBD5E1)}.tenant-dropdown-button:focus{border-color:var(--color-primary-500, #4169E1);box-shadow:var(--shadow-input-focus, 0 0 0 3px rgb(65 105 225 / .15))}.tenant-dropdown-button-content{display:flex;align-items:center;gap:var(--space-2, 8px)}.tenant-dropdown-icon{width:16px;height:16px;transition:transform .2s ease;color:var(--color-text-tertiary, #94a3b8);flex-shrink:0}.tenant-dropdown-icon.open{transform:rotate(180deg)}.tenant-dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10}.tenant-dropdown-menu{position:absolute;left:0;right:0;margin-top:var(--space-2, 8px);background:var(--color-surface-primary, #FFFFFF);border:1px solid var(--color-border-light, #E2E8F0);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-lg, 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1));z-index:20;overflow:hidden}.tenant-dropdown-item{width:100%;display:flex;align-items:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);font-size:var(--font-size-sm, 14px);color:var(--color-text-primary, #1e293b);background:transparent;border:none;border-left:3px solid transparent;cursor:pointer;transition:var(--transition-all, all .2s ease);text-align:left;outline:none}.tenant-dropdown-item:hover{background:var(--color-surface-hover, #F0F4FF)}.tenant-dropdown-item:focus{background:var(--color-surface-active, #E8EEFF);outline:none}.tenant-dropdown-item.selected{background:var(--color-surface-active, #E8EEFF);font-weight:var(--font-weight-semibold, 600);border-left-color:var(--color-primary-500, #4169E1)}.tenant-dropdown-item-name{flex:1}.tenant-dropdown-checkmark{margin-left:auto;color:var(--color-primary-500, #4169E1);font-size:var(--font-size-xs, 12px);font-weight:var(--font-weight-bold, 700)}@media (max-width: 768px){.tenant-selector{padding:0}}.project-selector{position:relative}.project-selector-loading{padding:var(--space-2, 8px) var(--space-3, 12px);color:var(--color-text-tertiary, #94a3b8);font-size:var(--font-size-sm, 14px)}.project-badge-empty{display:flex;align-items:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);color:var(--color-text-tertiary, #94a3b8);font-size:var(--font-size-sm, 14px);background:var(--color-surface-secondary, #FAFBFF);border:1px solid var(--color-border-light, #E2E8F0);border-radius:var(--radius-md, 8px)}.project-icon{width:16px;height:16px;flex-shrink:0;color:var(--color-text-tertiary, #94a3b8)}.project-dropdown-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);font-size:var(--font-size-sm, 14px);font-weight:var(--font-weight-medium, 500);color:var(--color-text-primary, #1e293b);background:var(--color-surface-secondary, #FAFBFF);border:1px solid var(--color-border-light, #E2E8F0);border-radius:var(--radius-md, 8px);cursor:pointer;transition:var(--transition-all, all .2s ease);outline:none}.project-dropdown-button:hover{background:var(--color-surface-hover, #F0F4FF);border-color:var(--color-border-medium, #CBD5E1)}.project-dropdown-button:focus{border-color:var(--color-primary-500, #4169E1);box-shadow:var(--shadow-input-focus, 0 0 0 3px rgb(65 105 225 / .15))}.project-dropdown-button-content{display:flex;align-items:center;gap:var(--space-2, 8px);flex:1;min-width:0}.project-dropdown-button-content span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-dropdown-icon{width:16px;height:16px;flex-shrink:0;transition:transform .2s ease;color:var(--color-text-tertiary, #94a3b8)}.project-dropdown-icon.open{transform:rotate(180deg)}.project-dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10}.project-dropdown-menu{position:absolute;left:0;right:0;margin-top:var(--space-2, 8px);background:var(--color-surface-primary, #FFFFFF);border:1px solid var(--color-border-light, #E2E8F0);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-lg, 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1));z-index:20;max-height:300px;overflow-y:auto}.project-dropdown-item{display:flex;align-items:center;gap:var(--space-2, 8px);width:100%;padding:var(--space-2, 8px) var(--space-3, 12px);background:transparent;border:none;cursor:pointer;transition:var(--transition-all, all .2s ease);font-size:var(--font-size-sm, 14px);color:var(--color-text-primary, #1e293b);text-align:left;outline:none}.project-dropdown-item:hover{background:var(--color-surface-hover, #F0F4FF)}.project-dropdown-item:focus{background:var(--color-surface-active, #E8EEFF);outline:none}.project-dropdown-item.selected{background:var(--color-surface-active, #E8EEFF);font-weight:var(--font-weight-semibold, 600)}.project-dropdown-item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-dropdown-checkmark{margin-left:auto;color:var(--color-primary-500, #4169E1);font-size:var(--font-size-xs, 12px);font-weight:var(--font-weight-bold, 700)}.project-dropdown-divider{height:1px;background:var(--color-border-light, #E2E8F0);margin:var(--space-1, 4px) 0}@media (max-width: 768px){.project-selector{padding:0}.project-dropdown-menu{max-height:250px}}.table-container{margin:16px 0;background:#fff!important;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.table-title{font-size:16px;font-weight:600;color:#333!important;margin:0;padding:16px 20px 12px;border-bottom:1px solid #f0f0f0;background:#fafafa!important}.table-wrapper{overflow-x:auto;max-width:100%}.data-table{width:100%;border-collapse:collapse;font-size:14px;background:#fff!important}.data-table thead th{background:#f8f9fa!important;color:#495057!important;font-weight:600;padding:12px 16px;text-align:left;border-bottom:2px solid #dee2e6;border-right:1px solid #dee2e6;white-space:nowrap;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.data-table thead th:last-child{border-right:none}.data-table tbody td{padding:12px 16px;border-bottom:1px solid #f0f0f0;border-right:1px solid #f0f0f0;color:#333!important;vertical-align:top;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table tbody td:last-child{border-right:none}.data-table tbody tr:hover{background-color:#f8f9fa!important}.data-table tbody tr:last-child td{border-bottom:none}.table-footer{padding:12px 20px;background:#f8f9fa!important;border-top:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}.table-info{font-size:12px;color:#6c757d;font-weight:500}.table-empty{padding:40px 20px;text-align:center;color:#6c757d;font-style:italic}@media (max-width: 768px){.table-wrapper{overflow-x:scroll;-webkit-overflow-scrolling:touch}.data-table{min-width:600px}.data-table thead th,.data-table tbody td{padding:8px 12px;font-size:12px}.table-title{padding:12px 16px 8px;font-size:14px}}.table-container,.table-container *{color-scheme:light!important}.table-container,.data-table,.data-table *{background:#fff!important;color:#333!important}.data-table thead th{background:#f8f9fa!important;color:#495057!important}.data-table tbody td{background:#fff!important;color:#333!important}.data-table tbody tr:hover td{background:#f8f9fa!important;color:#333!important}.failure-report-container{background:#fefefe;border:1px solid #e5e7eb;border-radius:12px;padding:16px;margin:12px 0;box-shadow:0 1px 3px #0000000d}.report-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}.report-icon{color:#f59e0b}.report-title{margin:0;font-size:16px;font-weight:600;color:#1f2937}.report-summary{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap}.summary-stat{flex:1;min-width:100px;background:#f9fafb;border-radius:8px;padding:12px;text-align:center}.summary-stat.critical{background:#fef2f2;border:1px solid #fecaca}.summary-stat.recovered{background:#f0fdf4;border:1px solid #bbf7d0}.stat-value{display:block;font-size:24px;font-weight:700;color:#1f2937}.summary-stat.critical .stat-value{color:#dc2626}.summary-stat.recovered .stat-value{color:#16a34a}.truncation-notice{width:100%;text-align:center;font-size:12px;color:#6b7280;background:#f3f4f6;padding:6px 12px;border-radius:6px;margin-top:8px}.stat-label{display:block;font-size:12px;color:#6b7280;margin-top:4px}.report-section{margin-bottom:16px}.section-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;margin:0 0 12px;padding:8px 12px;border-radius:6px}.section-title.critical-title{background:#fef2f2;color:#dc2626}.section-title.warning-title{background:#f0fdf4;color:#16a34a}.task-list{display:flex;flex-direction:column;gap:10px}.failure-task-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px;transition:box-shadow .2s}.failure-task-card:hover{box-shadow:0 2px 8px #00000014}.failure-task-card.critical{border-left:3px solid #dc2626}.failure-task-card.warning{border-left:3px solid #16a34a}.task-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.task-status-icon{flex-shrink:0}.icon-critical{color:#dc2626}.icon-recovered,.icon-success{color:#16a34a}.task-info{flex:1;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-alias{font-weight:600;color:#1f2937;font-size:14px}.status-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:12px;text-transform:uppercase}.badge-critical{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.badge-recovered{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.task-links{display:flex;gap:4px;margin-left:auto}.task-link{color:#6b7280;padding:4px;border-radius:4px;transition:all .2s;display:flex;align-items:center}.task-link:hover,.task-link.execution-link:hover{color:#3b82f6;background:#eff6ff}.task-link.config-link:hover{color:#8b5cf6;background:#f5f3ff}.task-details{display:flex;flex-wrap:wrap;gap:12px;font-size:13px}.detail-row{display:flex;gap:4px}.detail-label{color:#6b7280}.detail-value{color:#374151;font-weight:500}.detail-value.failure-count{color:#dc2626;font-weight:600}.error-preview{margin-top:8px;padding:8px;background:#f9fafb;border-radius:4px;overflow:hidden}.error-preview code{font-size:11px;color:#6b7280;word-break:break-word;white-space:pre-wrap}.no-failures{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;color:#16a34a;text-align:center}.no-failures p{margin:0;color:#6b7280}.summary-stat.clickable{cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.summary-stat.clickable:hover{transform:scale(1.03);box-shadow:0 2px 8px #0000001a}.summary-stat.clickable:focus{outline:2px solid #3b82f6;outline-offset:2px}.summary-stat.clickable.active{box-shadow:0 0 0 2px #3b82f6}.report-controls{display:flex;gap:16px;margin-bottom:16px;padding:12px;background:#f9fafb;border-radius:8px;flex-wrap:wrap;align-items:center}.control-group{display:flex;align-items:center;gap:8px}.control-group label{font-size:13px;color:#6b7280;font-weight:500}.control-group select{padding:6px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;background:#fff;cursor:pointer}.control-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.sort-buttons{display:flex;gap:4px}.sort-buttons button{padding:6px 12px;border:1px solid #d1d5db;background:#fff;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s}.sort-buttons button:hover{background:#f3f4f6}.sort-buttons button.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.sort-buttons button:focus{outline:none;box-shadow:0 0 0 2px #3b82f64d}.expand-button{margin-left:auto;padding:6px;background:transparent;border:none;border-radius:4px;cursor:pointer;color:#9ca3af;transition:all .2s;display:flex;align-items:center;justify-content:center}.expand-button:hover{background:#f3f4f6;color:#3b82f6}.expand-button:focus{outline:none;box-shadow:0 0 0 2px #3b82f64d}.failure-report-overlay{position:fixed;top:0;left:250px;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow-y:auto}.failure-report-expanded{background:#fff;border-radius:16px;width:100%;max-width:1200px;max-height:calc(100vh - 48px);overflow-y:auto;box-shadow:0 25px 50px -12px #00000040;animation:slideUp .2s ease-out}.expanded-header{display:flex;align-items:center;gap:12px;padding:20px 24px;border-bottom:1px solid #e5e7eb;position:sticky;top:0;background:#fff;z-index:10}.expanded-title{margin:0;font-size:20px;font-weight:600;flex:1;color:#1f2937}.close-button{padding:8px;background:transparent;border:none;border-radius:6px;cursor:pointer;color:#6b7280;transition:all .2s;display:flex;align-items:center;justify-content:center}.close-button:hover{background:#fee2e2;color:#dc2626}.close-button:focus{outline:none;box-shadow:0 0 0 2px #dc26264d}.expanded-content{padding:24px}.expanded-sections .task-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media (max-width: 900px){.expanded-sections .task-list{grid-template-columns:1fr}}@media (max-width: 768px){.failure-report-overlay{left:0;padding:16px}}@media (max-width: 480px){.report-summary{flex-direction:column}.summary-stat{min-width:auto}.task-details{flex-direction:column;gap:4px}.report-controls{flex-direction:column;align-items:stretch}.control-group{justify-content:space-between}.sort-buttons,.sort-buttons button{flex:1}}.control-icon{vertical-align:middle;margin-right:4px;color:#9ca3af}.date-range-select{min-width:140px}.badge-unknown{background:#f3f4f6;color:#6b7280;border:1px solid #d1d5db}.failure-task-card.unknown{border-left:3px solid #9ca3af}.failure-task-card.clickable-card{cursor:pointer;position:relative;transition:all .2s}.failure-task-card.clickable-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.failure-task-card.clickable-card:focus{outline:2px solid #3b82f6;outline-offset:2px}.view-history-hint{position:absolute;right:12px;bottom:12px;font-size:11px;color:#9ca3af;opacity:0;transition:opacity .2s;display:flex;align-items:center;gap:2px}.failure-task-card.clickable-card:hover .view-history-hint{opacity:1}.task-history-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:1100}.task-history-panel{position:fixed;top:0;right:0;width:480px;max-width:100vw;height:100vh;background:#fff;box-shadow:-4px 0 24px #00000026;z-index:1101;display:flex;flex-direction:column;animation:slideInFromRight .3s ease-out}@keyframes slideInFromRight{0%{transform:translate(100%)}to{transform:translate(0)}}.task-history-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.back-button{display:flex;align-items:center;gap:4px;padding:8px 12px;background:transparent;border:none;border-radius:6px;cursor:pointer;color:#374151;font-size:14px;font-weight:500;transition:all .2s}.back-button:hover{background:#e5e7eb}.back-button .back-icon{transform:rotate(180deg)}.task-history-content{flex:1;padding:24px;overflow-y:auto}.task-history-title{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.task-history-title h3{margin:0;font-size:18px;font-weight:600;color:#1f2937;word-break:break-word}.task-history-meta{display:flex;flex-direction:column;gap:8px;margin-bottom:24px;padding:16px;background:#f9fafb;border-radius:8px}.meta-item{display:flex;justify-content:space-between;font-size:14px}.meta-label{color:#6b7280}.meta-value{color:#1f2937;font-weight:500}.task-history-error{margin-bottom:24px}.task-history-error h4{margin:0 0 8px;font-size:14px;font-weight:600;color:#dc2626}.task-history-placeholder{display:flex;flex-direction:column;align-items:center;padding:32px;background:#f9fafb;border-radius:8px;text-align:center;margin-bottom:24px}.placeholder-icon{color:#9ca3af;margin-bottom:12px}.task-history-placeholder p{margin:0;color:#6b7280}.placeholder-hint{font-size:12px;margin-top:8px!important;color:#9ca3af!important}.view-in-nomnom-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s}.view-in-nomnom-button:hover{background:#2563eb}.task-action-buttons{display:flex;gap:8px;margin-top:16px}.task-action-buttons .view-in-nomnom-button{flex:1}.view-in-nomnom-button.primary{background:#3b82f6}.view-in-nomnom-button.primary:hover{background:#2563eb}.view-in-nomnom-button.secondary{background:#6b7280}.view-in-nomnom-button.secondary:hover{background:#4b5563}@media (max-width: 520px){.task-history-panel{width:100vw}}.load-more-button{width:100%;padding:12px;margin-top:12px;background:#f3f4f6;border:1px dashed #d1d5db;border-radius:8px;color:#4b5563;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.load-more-button:hover{background:#e5e7eb;border-color:#9ca3af;color:#374151}.load-more-button:focus{outline:none;box-shadow:0 0 0 2px #3b82f64d;border-color:#3b82f6}.load-more-button:active{transform:scale(.99)}.collapsible-sql{margin:16px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;background:#f9f9f9;clear:both}.collapsible-sql-header{width:100%;display:flex;align-items:center;gap:8px;padding:12px 16px;background:#f9f9f9;border:none;cursor:pointer;font-family:inherit;font-size:14px;text-align:left;transition:background-color .2s ease}.collapsible-sql-header:hover{background:#f0f0f0}.collapsible-sql-header:focus{outline:2px solid #4169E1;outline-offset:-2px}.collapsible-sql-icon{display:flex;align-items:center;color:#666;transition:transform .2s ease}.collapsible-sql-emoji{font-size:16px}.collapsible-sql-label{flex:1;font-weight:600;color:#333}.collapsible-sql-description{font-weight:400;color:#666;margin-left:4px}.collapsible-sql-hint{font-size:12px;color:#999;font-weight:400}.collapsible-sql-content{background:#f6f8fa;border-top:1px solid #e0e0e0;padding:16px;margin:0;overflow-x:auto;max-width:100%;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4;color:#333;white-space:pre;word-wrap:normal}.collapsible-sql-content code{background:none;padding:0;border:none;font-family:inherit;font-size:inherit;color:inherit}.collapsible-sql-content{animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:2000px}}@media (max-width: 768px){.collapsible-sql-header{padding:10px 12px;font-size:13px}.collapsible-sql-content{padding:12px;font-size:12px}.collapsible-sql-hint{display:none}}.feedback-buttons{margin-top:12px;padding-top:8px;border-top:1px solid #e5e7eb}.feedback-button-group{display:flex;gap:8px}.feedback-button{background:transparent;border:1px solid #d1d5db;border-radius:6px;padding:6px 10px;cursor:pointer;display:flex;align-items:center;gap:4px;font-size:14px;color:#6b7280;transition:all .2s ease}.feedback-button:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af;color:#374151}.feedback-button:disabled{opacity:.5;cursor:not-allowed}.feedback-button svg{width:16px;height:16px}.feedback-button.positive:hover:not(:disabled){border-color:#10b981;color:#10b981;background:#ecfdf5}.feedback-button.negative:hover:not(:disabled){border-color:#ef4444;color:#ef4444;background:#fef2f2}.feedback-comment-box{display:flex;flex-direction:column;gap:var(--space-5, 20px);padding:var(--space-5, 20px);background:var(--color-surface-secondary, #FAFBFF);border-radius:var(--radius-xl, 16px);border:1px solid var(--color-border-light, #E2E8F0);margin-top:var(--space-3, 12px)}.feedback-header{display:flex;flex-direction:column;gap:var(--space-2, 8px)}.feedback-prompt{font-size:var(--font-size-lg, 18px);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary, #1e293b);margin:0;line-height:var(--line-height-tight, 1.25)}.feedback-subtitle{font-size:var(--font-size-sm, 14px);color:var(--color-text-secondary, #64748b);margin:0;line-height:var(--line-height-normal, 1.5)}.feedback-input-wrapper{display:flex;flex-direction:column;gap:var(--space-2, 8px)}.feedback-textarea{width:100%;padding:var(--space-4, 16px);border:2px solid var(--color-border-light, #E2E8F0);border-radius:var(--radius-lg, 12px);font-size:var(--font-size-base, 16px);font-family:var(--font-family-sans, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif);line-height:var(--line-height-relaxed, 1.625);color:var(--color-text-primary, #1e293b);resize:vertical;min-height:120px;background:var(--color-surface-primary, #FFFFFF);transition:var(--transition-all, all .2s ease);box-shadow:var(--shadow-input, 0 1px 2px 0 rgb(0 0 0 / .05))}.feedback-textarea::placeholder{color:var(--color-text-tertiary, #94a3b8);line-height:var(--line-height-relaxed, 1.625)}.feedback-textarea:focus{outline:none;border-color:var(--color-primary-500, #4169E1);box-shadow:var(--shadow-input-focus, 0 0 0 3px rgb(65 105 225 / .15)),var(--shadow-sm, 0 1px 3px 0 rgb(0 0 0 / .1))}.feedback-textarea:disabled{background:var(--color-surface-secondary, #FAFBFF);color:var(--color-text-tertiary, #94a3b8);cursor:not-allowed;opacity:.6}.feedback-char-count{font-size:var(--font-size-xs, 12px);color:var(--color-text-tertiary, #94a3b8);text-align:right;font-weight:var(--font-weight-medium, 500);transition:var(--transition-colors, color .15s ease)}.feedback-char-count:has(~.feedback-textarea:focus){color:var(--color-text-secondary, #64748b)}.feedback-actions{display:flex;gap:var(--space-3, 12px);justify-content:flex-end;margin-top:var(--space-2, 8px)}.feedback-submit,.feedback-cancel{padding:var(--space-3, 12px) var(--space-6, 24px);border-radius:var(--radius-lg, 12px);font-size:var(--font-size-base, 16px);font-weight:var(--font-weight-medium, 500);cursor:pointer;transition:var(--transition-all, all .2s ease);border:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2, 8px);min-height:44px;white-space:nowrap}.feedback-submit{background:var(--color-primary-500, #4169E1);color:var(--color-text-inverse, #FFFFFF);box-shadow:var(--shadow-primary, 0 4px 14px 0 rgb(65 105 225 / .25))}.feedback-submit:hover:not(:disabled){background:var(--color-primary-600, #3B5BD9);transform:translateY(-1px);box-shadow:var(--shadow-primary-lg, 0 10px 25px -3px rgb(65 105 225 / .3))}.feedback-submit:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-primary, 0 4px 14px 0 rgb(65 105 225 / .25))}.feedback-submit:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.feedback-cancel{background:var(--color-surface-primary, #FFFFFF);color:var(--color-text-secondary, #64748b);border:2px solid var(--color-border-light, #E2E8F0);box-shadow:none}.feedback-cancel:hover:not(:disabled){background:var(--color-surface-hover, #F0F4FF);border-color:var(--color-border-medium, #CBD5E1);color:var(--color-text-primary, #1e293b);transform:translateY(-1px);box-shadow:var(--shadow-sm, 0 1px 3px 0 rgb(0 0 0 / .1))}.feedback-cancel:active:not(:disabled){transform:translateY(0);box-shadow:none}.feedback-cancel:disabled{opacity:.6;cursor:not-allowed;transform:none}.feedback-buttons.submitted{border-top:none;margin-top:8px;padding-top:0}.feedback-thanks{display:inline-block;font-size:13px;color:#059669;font-weight:500;padding:4px 0}.feedback-error{color:var(--color-error, #EF4444);font-size:var(--font-size-sm, 14px);margin:var(--space-3, 12px) 0 0 0;padding:var(--space-3, 12px);background:var(--color-error-light, #FEE2E2);border-radius:var(--radius-md, 8px);border-left:3px solid var(--color-error, #EF4444);font-weight:var(--font-weight-medium, 500)}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--color-text-inverse, #FFFFFF);border-radius:var(--radius-full, 9999px);animation:spin .8s linear infinite;display:inline-block}@media (max-width: 768px){.feedback-comment-box{padding:var(--space-4, 16px);gap:var(--space-4, 16px)}.feedback-prompt{font-size:var(--font-size-base, 16px)}.feedback-subtitle{font-size:var(--font-size-xs, 12px)}.feedback-textarea{font-size:var(--font-size-sm, 14px);padding:var(--space-3, 12px);min-height:100px}.feedback-actions{flex-direction:column-reverse;gap:var(--space-2, 8px)}.feedback-submit,.feedback-cancel{width:100%;justify-content:center;font-size:var(--font-size-sm, 14px);padding:var(--space-3, 12px) var(--space-4, 16px)}.feedback-char-count{font-size:11px}}@media (prefers-reduced-motion: reduce){.feedback-submit,.feedback-cancel,.feedback-textarea,.feedback-char-count{transition:none}.spinner{animation:none;border-top-color:#ffffff4d}.feedback-submit:hover:not(:disabled),.feedback-cancel:hover:not(:disabled){transform:none}}@media (prefers-contrast: high){.feedback-textarea{border-width:3px}.feedback-submit{border:2px solid transparent}.feedback-cancel{border-width:3px}}.feedback-submit:focus-visible,.feedback-cancel:focus-visible{outline:3px solid var(--color-primary-500, #4169E1);outline-offset:2px}.feedback-textarea:focus-visible{outline:none}.message-list{padding:var(--space-6, 24px);padding-bottom:var(--space-8, 32px);display:flex;flex-direction:column;gap:var(--space-4, 16px);min-height:100%;max-width:var(--max-chat-width, 800px);margin:0 auto;width:100%}.message-wrapper{display:flex;gap:var(--space-3, 12px);animation:slideInUp .4s ease-out}.user-wrapper{flex-direction:row-reverse;justify-content:flex-start}.assistant-wrapper{flex-direction:row;width:100%}.assistant-wrapper .message-bubble{flex:1}.system-wrapper{justify-content:center;width:100%}.system-message{display:inline-flex;align-items:center;gap:var(--space-3, 12px);padding:var(--space-2, 8px) var(--space-4, 16px);background:var(--color-surface-secondary, #FAFBFF);border:1px solid var(--color-border-light, #E2E8F0);border-radius:var(--radius-full, 9999px);font-size:var(--font-size-sm, 14px);color:var(--color-text-secondary, #64748b);animation:fadeIn .3s ease-out}.system-message-content{font-weight:var(--font-weight-medium, 500)}.system-message-time{font-size:var(--font-size-xs, 12px);opacity:.6;font-family:var(--font-family-mono, "Fira Code", "JetBrains Mono", "SF Mono", Monaco, Consolas, monospace)}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.message-avatar{width:40px;height:40px;border-radius:var(--radius-full, 9999px);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:var(--space-1, 4px)}.user-wrapper .message-avatar{background:var(--color-primary-500, #4169E1);color:var(--color-text-inverse, #FFFFFF);box-shadow:var(--shadow-primary, 0 4px 14px 0 rgb(65 105 225 / .25))}.assistant-wrapper .message-avatar{background:var(--color-surface-primary, #FFFFFF);border:2px solid var(--color-border-light, #E2E8F0);box-shadow:var(--shadow-sm, 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1))}.avatar-icon{width:24px;height:24px;object-fit:contain}.message-bubble{border-radius:var(--radius-bubble, 20px);padding:var(--space-4, 16px) var(--space-5, 20px);position:relative;word-wrap:break-word}.user-message{max-width:var(--message-user-max-width, 55%);background:var(--message-user-bg, #4169E1);color:var(--message-user-text, #FFFFFF);border-radius:var(--message-user-radius, 20px 20px 4px 20px);box-shadow:var(--shadow-primary, 0 4px 14px 0 rgb(65 105 225 / .25))}.assistant-message{max-width:var(--message-assistant-max-width, 100%);width:100%;background:var(--message-assistant-bg, #FFFFFF);color:var(--message-assistant-text, #1e293b);border-radius:var(--radius-xl, 16px);box-shadow:0 1px 3px #0000000a,0 4px 12px #00000008;border:1px solid var(--color-border-light, #E2E8F0);padding:var(--space-5, 20px) var(--space-6, 24px)}.assistant-message.streaming{border:2px solid var(--color-primary-400, #818CF8);box-shadow:var(--shadow-input-focus, 0 0 0 3px rgb(65 105 225 / .15))}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2, 8px);gap:var(--space-3, 12px)}.message-sender-info{display:flex;align-items:center;gap:var(--space-1, 4px)}.message-sender{font-weight:var(--font-weight-semibold, 600);font-size:var(--font-size-sm, 14px)}.user-message .message-sender{color:#fffffff2}.assistant-message .message-sender{color:var(--color-primary-700, #3149C4);font-weight:var(--font-weight-bold, 700);letter-spacing:.02em}.verified-badge{color:var(--color-primary-500, #4169E1)}.message-timestamp{font-size:var(--font-size-xs, 12px);opacity:.6;font-family:var(--font-family-mono, "Fira Code", "JetBrains Mono", "SF Mono", Monaco, Consolas, monospace)}.message-content{line-height:var(--line-height-relaxed, 1.625);position:relative;word-wrap:break-word;overflow-wrap:break-word}.message-content pre,.message-content code{white-space:pre-wrap}.message-content h1,.message-content h2,.message-content h3,.message-content h4,.message-content h5,.message-content h6{margin:var(--space-4, 16px) 0 var(--space-2, 8px) 0;font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary, #1e293b)}.message-content h1{font-size:var(--font-size-xl, 20px)}.message-content h2{font-size:var(--font-size-lg, 18px)}.message-content h3{font-size:var(--font-size-base, 16px)}.user-message .message-content h1,.user-message .message-content h2,.user-message .message-content h3{color:var(--color-text-inverse, #FFFFFF)}.message-content p{margin:var(--space-2, 8px) 0}.message-content p:first-child{margin-top:0}.message-content p:last-child{margin-bottom:0}.inline-code{background:var(--color-bg-secondary, #F0F4FF);padding:2px 6px;border-radius:var(--radius-sm, 4px);font-family:var(--font-family-mono, "Fira Code", "JetBrains Mono", "SF Mono", Monaco, Consolas, monospace);font-size:var(--font-size-sm, 14px);border:1px solid var(--color-border-light, #E2E8F0);color:var(--color-primary-700, #3149C4)}.user-message .inline-code{background:#fff3;border-color:#ffffff4d;color:var(--color-text-inverse, #FFFFFF)}.code-block{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid var(--color-border-light, #E2E8F0);border-radius:var(--radius-lg, 12px);padding:var(--space-5, 20px);margin:var(--space-4, 16px) 0;overflow-x:auto;max-width:100%;font-family:var(--font-family-mono, "Fira Code", "JetBrains Mono", "SF Mono", Monaco, Consolas, monospace);font-size:13px;line-height:1.6;color:var(--color-text-primary, #1e293b);white-space:pre;word-wrap:normal;scrollbar-width:thin;scrollbar-color:var(--color-border-medium, #CBD5E1) transparent}.code-block::-webkit-scrollbar{height:6px}.code-block::-webkit-scrollbar-track{background:transparent}.code-block::-webkit-scrollbar-thumb{background:var(--color-border-medium, #CBD5E1);border-radius:3px}.code-block::-webkit-scrollbar-thumb:hover{background:var(--color-border-dark, #94A3B8)}.user-message .code-block{background:#ffffff1a;border-color:#fff3;color:var(--color-text-inverse, #FFFFFF)}.markdown-list{margin:var(--space-3, 12px) 0;padding-left:var(--space-6, 24px)}.markdown-list li{margin:var(--space-1, 4px) 0;line-height:1.6;padding-left:var(--space-1, 4px)}.markdown-list li p:empty,.message-content p:empty{display:none}.message-content p+p{margin-top:var(--space-2, 8px)}.markdown-list li strong{color:var(--color-primary-700, #3149C4);font-weight:var(--font-weight-semibold, 600)}.markdown-list .markdown-list{margin:var(--space-2, 8px) 0}.assistant-message a{color:var(--color-primary-500, #4169E1);text-decoration:none;font-weight:var(--font-weight-medium, 500);padding:2px 0;border-bottom:1px solid transparent;transition:var(--transition-colors, color .15s ease, background-color .15s ease, border-color .15s ease)}.assistant-message a:hover{color:var(--color-primary-700, #3149C4);border-bottom-color:var(--color-primary-500, #4169E1)}.markdown-quote{border-left:3px solid var(--color-primary-500, #4169E1);padding-left:var(--space-4, 16px);margin:var(--space-3, 12px) 0;opacity:.9;font-style:italic;color:var(--color-text-secondary, #64748b)}.user-message .markdown-quote{border-left-color:#fff9;color:#ffffffe6}.message-actions{display:flex;align-items:center;gap:var(--space-2, 8px);margin-top:var(--space-3, 12px);padding-top:var(--space-3, 12px);border-top:1px solid var(--color-border-light, #E2E8F0);opacity:.7;transition:var(--transition-opacity, opacity .2s ease)}.message-bubble:hover .message-actions{opacity:1}.action-btn{display:flex;align-items:center;gap:var(--space-1, 4px);padding:var(--space-1, 4px) var(--space-2, 8px);border:none;background:transparent;color:var(--color-text-tertiary, #94a3b8);font-size:var(--font-size-xs, 12px);font-weight:var(--font-weight-medium, 500);border-radius:var(--radius-md, 8px);cursor:pointer;transition:var(--transition-all, all .2s ease)}.action-btn:hover{background:var(--color-surface-hover, #F0F4FF);color:var(--color-primary-500, #4169E1)}.action-btn.copy-btn.copied{color:var(--color-success, #10B981)}.typing-cursor{display:inline-block;background:var(--color-primary-500, #4169E1);width:2px;height:20px;margin-left:2px;animation:blink 1s infinite;position:relative;top:3px}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.message-content .typing-indicator{color:var(--color-primary-500, #4169E1);font-style:italic;opacity:.9;position:relative;animation:typing-pulse 1.5s ease-in-out infinite}.message-content .typing-indicator:after{content:"";animation:typing-dots 1.5s ease-in-out infinite}.message-content em{font-style:italic}@keyframes typing-pulse{0%,to{opacity:.7}50%{opacity:1}}@keyframes typing-dots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1024px){.message-list{padding:var(--space-5, 20px)}.user-message{max-width:70%}}@media (max-width: 768px){.message-list{padding:var(--space-4, 16px);gap:var(--space-4, 16px)}.user-message{max-width:85%;padding:var(--space-3, 12px) var(--space-4, 16px)}.assistant-message{padding:var(--space-4, 16px)}.message-avatar{width:36px;height:36px}.code-block{padding:var(--space-3, 12px);font-size:12px}.message-actions{opacity:1}}.message-input-container{padding:var(--space-5, 20px) var(--space-6, 24px);background:transparent;max-width:var(--max-chat-width, 800px);margin:0 auto;width:100%}.message-input-wrapper{display:flex;align-items:flex-end;gap:var(--space-3, 12px);background:var(--color-surface-primary, #FFFFFF);border:1px solid var(--color-border-light, #E2E8F0);border-radius:var(--radius-3xl, 24px);padding:var(--space-3, 12px) var(--space-4, 16px);transition:var(--transition-all, all .2s ease);box-shadow:var(--shadow-card, 0 2px 8px -2px rgb(0 0 0 / .08), 0 4px 12px -4px rgb(0 0 0 / .05))}.message-input-wrapper:focus-within{border-color:var(--color-primary-500, #4169E1);box-shadow:var(--shadow-input-focus, 0 0 0 3px rgb(65 105 225 / .15)),var(--shadow-card, 0 2px 8px -2px rgb(0 0 0 / .08), 0 4px 12px -4px rgb(0 0 0 / .05))}.message-input{flex:1;background:transparent;border:none;outline:none;color:var(--color-text-primary, #1e293b);font-size:var(--font-size-base, 16px);line-height:var(--line-height-normal, 1.5);resize:none;min-height:24px;max-height:120px;overflow-y:auto;font-family:var(--font-family-sans, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif);padding:var(--space-1, 4px) 0}.message-input::placeholder{color:var(--color-text-tertiary, #94a3b8)}.message-input:disabled{color:var(--color-text-tertiary, #94a3b8);cursor:not-allowed}.send-button{width:44px;height:44px;border-radius:var(--radius-full, 9999px);display:flex;align-items:center;justify-content:center;gap:var(--space-1, 4px);flex-shrink:0;transition:var(--transition-all, all .2s ease);background:var(--color-primary-500, #4169E1);color:var(--color-text-inverse, #FFFFFF);border:none;cursor:pointer;box-shadow:var(--shadow-primary, 0 4px 14px 0 rgb(65 105 225 / .25))}.send-button:hover:not(:disabled){background:var(--color-primary-600, #3B5BD9);transform:scale(1.05);box-shadow:var(--shadow-primary-lg, 0 10px 25px -3px rgb(65 105 225 / .3))}.send-button:active:not(:disabled){transform:scale(.98)}.send-button:disabled{background:var(--color-border-medium, #CBD5E1);color:var(--color-text-inverse, #FFFFFF);cursor:not-allowed;transform:none;box-shadow:none}.stop-button{background:var(--color-error, #EF4444)!important;color:var(--color-text-inverse, #FFFFFF)!important;width:auto;padding:var(--space-2, 8px) var(--space-4, 16px);border-radius:var(--radius-xl, 16px)}.stop-button:hover:not(:disabled){background:#dc2626!important;box-shadow:0 4px 12px #ef44444d!important}.stop-button:active:not(:disabled){background:#b91c1c!important}.button-label{font-size:var(--font-size-sm, 14px);font-weight:var(--font-weight-medium, 500);white-space:nowrap}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.input-hint{margin-top:var(--space-2, 8px);font-size:var(--font-size-xs, 12px);color:var(--color-text-tertiary, #94a3b8);text-align:center}@media (max-width: 768px){.message-input-container{padding:var(--space-4, 16px) var(--space-5, 20px)}.message-input-wrapper{padding:var(--space-2, 8px) var(--space-3, 12px);border-radius:var(--radius-2xl, 20px)}.message-input{font-size:var(--font-size-sm, 14px)}.send-button{width:40px;height:40px}.input-hint{font-size:11px}}@media (prefers-reduced-motion: reduce){.send-button{transition:none}.animate-spin{animation:none}}.message-input:focus{outline:none}.message-input::-webkit-scrollbar{width:4px}.message-input::-webkit-scrollbar-track{background:transparent}.message-input::-webkit-scrollbar-thumb{background:var(--color-border-medium, #CBD5E1);border-radius:var(--radius-full, 9999px)}.message-input::-webkit-scrollbar-thumb:hover{background:var(--color-border-dark, #94A3B8)}.chat-container{flex:1;display:flex;flex-direction:column;height:100%;background:var(--color-surface-primary, #FFFFFF);border-radius:var(--radius-card, 24px);box-shadow:var(--shadow-floating, 0 4px 20px -4px rgb(0 0 0 / .08));overflow:hidden;position:relative}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4, 16px) var(--space-5, 20px);background:var(--color-surface-primary, #FFFFFF);border-bottom:1px solid var(--color-border-light, #E2E8F0);position:relative;z-index:10}.header-brand{display:flex;align-items:center;gap:var(--space-3, 12px)}.header-logo{width:48px;height:48px;flex-shrink:0;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(65,105,225,.15))}.header-brand-text{display:flex;flex-direction:column;gap:2px}.header-brand-name{font-size:var(--font-size-xl, 20px);font-weight:var(--font-weight-bold, 700);color:var(--color-text-primary, #1e293b);letter-spacing:var(--letter-spacing-tight, -.025em);line-height:1.1}.header-brand-tagline{font-size:var(--font-size-xs, 12px);color:var(--color-text-tertiary, #94a3b8);font-weight:var(--font-weight-normal, 400)}.header-right{display:flex;align-items:center;gap:var(--space-3, 12px)}.connected-badge{display:flex;align-items:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);background:var(--color-surface-secondary, #FAFBFF);border:1px solid var(--color-border-light, #E2E8F0);border-radius:var(--radius-full, 9999px);font-size:var(--font-size-sm, 14px);font-weight:var(--font-weight-medium, 500);color:var(--color-text-secondary, #64748b);transition:var(--transition-all, all .2s ease)}.connected-badge:hover{background:var(--color-surface-hover, #F0F4FF);border-color:var(--color-border-medium, #CBD5E1)}.connected-dot{width:8px;height:8px;background:var(--color-success, #10B981);border-radius:var(--radius-full, 9999px);flex-shrink:0;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 #10b98166}50%{opacity:.8;box-shadow:0 0 0 4px #10b98100}}.thread-title-section{min-width:200px;max-width:400px}.thread-title-display{display:flex;align-items:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);background:var(--color-surface-secondary, #FAFBFF);border:1px solid var(--color-border-light, #E2E8F0);border-radius:var(--radius-md, 8px);transition:var(--transition-all, all .2s ease)}.thread-title-display:hover{background:var(--color-surface-hover, #F0F4FF);border-color:var(--color-primary-500, #4169E1)}.thread-title{font-size:var(--font-size-sm, 14px);font-weight:var(--font-weight-medium, 500);color:var(--color-text-primary, #1e293b);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.edit-title-btn{background:none;border:none;color:var(--color-text-tertiary, #94a3b8);cursor:pointer;padding:var(--space-1, 4px);border-radius:var(--radius-sm, 4px);transition:var(--transition-all, all .2s ease);display:flex;align-items:center;justify-content:center;opacity:0}.thread-title-display:hover .edit-title-btn{opacity:1}.edit-title-btn:hover{background:var(--color-primary-100, #E0E7FF);color:var(--color-primary-500, #4169E1)}.thread-title-edit{display:flex;align-items:center;gap:var(--space-2, 8px);padding:var(--space-1, 4px);background:var(--color-surface-primary, #FFFFFF);border:2px solid var(--color-primary-500, #4169E1);border-radius:var(--radius-md, 8px);box-shadow:var(--shadow-input-focus, 0 0 0 3px rgb(65 105 225 / .15))}.thread-title-input{background:none;border:none;color:var(--color-text-primary, #1e293b);font-size:var(--font-size-sm, 14px);font-weight:var(--font-weight-medium, 500);padding:var(--space-1, 4px) var(--space-2, 8px);border-radius:var(--radius-sm, 4px);width:100%;outline:none;min-width:150px}.save-title-btn,.cancel-title-btn{background:none;border:none;cursor:pointer;padding:var(--space-1, 4px);border-radius:var(--radius-sm, 4px);transition:var(--transition-all, all .2s ease);display:flex;align-items:center;justify-content:center}.save-title-btn{color:var(--color-success, #10B981)}.save-title-btn:hover{background:var(--color-success-light, #D1FAE5)}.cancel-title-btn{color:var(--color-error, #EF4444)}.cancel-title-btn:hover{background:var(--color-error-light, #FEE2E2)}.chat-content{flex:1;overflow-y:auto;padding:0;scroll-behavior:smooth;position:relative;background:var(--color-surface-secondary, #FAFBFF)}.welcome-message{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:100%;text-align:center;padding:80px 40px 60px;animation:fadeInUp .6s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.welcome-logo{width:64px;height:64px;margin-bottom:var(--space-6, 24px);object-fit:contain;filter:drop-shadow(0 4px 12px rgba(65,105,225,.2))}.welcome-message h3{font-size:var(--font-size-3xl, 30px);color:var(--color-text-primary, #1e293b);margin-bottom:var(--space-3, 12px);font-weight:var(--font-weight-bold, 700);letter-spacing:var(--letter-spacing-tight, -.025em)}.welcome-message p{font-size:var(--font-size-lg, 18px);color:var(--color-text-secondary, #64748b);margin-bottom:var(--space-6, 24px);font-weight:var(--font-weight-normal, 400)}.welcome-capabilities{list-style:none;padding:var(--space-6, 24px) var(--space-8, 32px);margin:0 0 var(--space-8, 32px) 0;text-align:left;max-width:480px;background:var(--color-surface-primary, #FFFFFF);border-radius:var(--radius-2xl, 20px);box-shadow:var(--shadow-card, 0 2px 8px -2px rgb(0 0 0 / .08), 0 4px 12px -4px rgb(0 0 0 / .05))}.welcome-capabilities li{padding:var(--space-3, 12px) 0;position:relative;padding-left:var(--space-8, 32px);font-size:var(--font-size-base, 16px);color:var(--color-text-primary, #1e293b);font-weight:var(--font-weight-medium, 500);transition:var(--transition-colors, color .15s ease, background-color .15s ease, border-color .15s ease)}.welcome-capabilities li:not(:last-child){border-bottom:1px solid var(--color-border-light, #E2E8F0)}.welcome-capabilities li:before{content:"✓";color:var(--color-primary-500, #4169E1);position:absolute;left:0;font-weight:var(--font-weight-bold, 700);font-size:var(--font-size-lg, 18px)}.welcome-prompt{font-size:var(--font-size-lg, 18px);color:var(--color-text-secondary, #64748b);font-weight:var(--font-weight-medium, 500)}.human-assistance-bar{background:var(--color-warning-light, #FEF3C7);border-top:1px solid var(--color-warning, #F59E0B);padding:var(--space-4, 16px) var(--space-6, 24px);display:flex;align-items:center;gap:var(--space-4, 16px)}.assistance-info{display:flex;align-items:center;gap:var(--space-2, 8px);color:#92400e;font-weight:var(--font-weight-medium, 500);font-size:var(--font-size-sm, 14px);min-width:200px}.assistance-info svg{flex-shrink:0;color:var(--color-warning, #F59E0B)}@media (max-width: 768px){.chat-header{padding:var(--space-4, 16px) var(--space-5, 20px)}.header-logo{width:36px;height:36px}.header-brand-name{font-size:var(--font-size-lg, 18px)}.header-brand-tagline{display:none}.connected-badge{font-size:var(--font-size-xs, 12px);padding:var(--space-1, 4px) var(--space-2, 8px)}.welcome-message{padding:var(--space-8, 32px) var(--space-5, 20px)}.welcome-message h3{font-size:var(--font-size-2xl, 24px)}.welcome-capabilities{padding:var(--space-4, 16px) var(--space-5, 20px)}.human-assistance-bar{flex-direction:column;align-items:stretch;gap:var(--space-3, 12px)}.assistance-info{min-width:auto}}.login-page{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--color-bg-gradient, linear-gradient(135deg, #D8E4F8 0%, #E4ECFA 50%, #EEF3FC 100%));padding:24px;overflow:hidden}.login-container{display:flex;width:100%;max-width:960px;min-height:560px;background:var(--color-surface-primary, #FFFFFF);border-radius:var(--radius-2xl, 20px);box-shadow:0 25px 50px -12px #4169e126,0 0 0 1px #4169e10d;overflow:hidden;animation:slideUp .6s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-brand-panel{flex:1;background:linear-gradient(145deg,#4169e1,#3149c4,#2a3fa8);padding:48px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.brand-content{position:relative;z-index:2;animation:fadeIn .8s ease-out .2s both}@keyframes fadeIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.brand-logo{display:flex;align-items:center;gap:12px;margin-bottom:32px}.brand-icon{width:52px;height:52px;background:#fff;border-radius:50%;padding:8px;box-sizing:border-box;box-shadow:0 4px 12px #00000026}.brand-name{font-size:28px;font-weight:700;color:#fff;letter-spacing:.02em}.brand-headline{font-size:32px;font-weight:700;color:#fff;line-height:1.2;margin:0 0 16px;letter-spacing:-.02em}.brand-description{font-size:16px;color:#ffffffd9;line-height:1.6;margin:0 0 32px;max-width:320px}.environment-badge{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-full, 9999px);font-size:14px;font-weight:500;color:#fff}.env-dot{width:8px;height:8px;background:#10b981;border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 #10b98166}50%{opacity:.8;box-shadow:0 0 0 6px #10b98100}}.brand-decoration{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.deco-circle{position:absolute;border:1px solid rgba(255,255,255,.1);border-radius:50%}.deco-circle-1{width:300px;height:300px;bottom:-100px;left:-80px;animation:float 20s ease-in-out infinite}.deco-circle-2{width:200px;height:200px;bottom:-40px;left:60px;animation:float 15s ease-in-out infinite reverse}.deco-line{position:absolute;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent)}.deco-line-1{width:200px;bottom:120px;left:-40px;transform:rotate(-15deg)}.deco-line-2{width:150px;bottom:80px;left:20px;transform:rotate(-15deg)}@keyframes float{0%,to{transform:translate(0)}50%{transform:translate(10px,-10px)}}.login-form-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:48px;background:var(--color-surface-primary, #FFFFFF)}.form-content{width:100%;max-width:340px;animation:fadeIn .8s ease-out .4s both}.form-header{text-align:center;margin-bottom:36px}.form-header h2{font-size:28px;font-weight:700;color:var(--color-text-primary, #1e293b);margin:0 0 8px;letter-spacing:-.02em}.form-header p{font-size:15px;color:var(--color-text-secondary, #64748b);margin:0}.login-form{display:flex;flex-direction:column;gap:16px}.input-group{position:relative}.input-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary, #94a3b8);display:flex;align-items:center;justify-content:center;pointer-events:none;transition:color .2s ease}.input-group:focus-within .input-icon{color:var(--color-primary-500, #4169E1)}.input-group input{width:100%;padding:14px 16px 14px 48px;font-size:15px;color:var(--color-text-primary, #1e293b);background:var(--color-surface-secondary, #FAFBFF);border:1.5px solid var(--color-border-light, #E2E8F0);border-radius:var(--radius-xl, 16px);outline:none;transition:all .2s ease;box-sizing:border-box}.input-group input::placeholder{color:var(--color-text-tertiary, #94a3b8)}.input-group input:hover{border-color:var(--color-border-medium, #CBD5E1)}.input-group input:focus{border-color:var(--color-primary-500, #4169E1);background:var(--color-surface-primary, #FFFFFF);box-shadow:0 0 0 3px #4169e11f}.input-group input:disabled{background:var(--color-surface-secondary, #FAFBFF);color:var(--color-text-tertiary, #94a3b8);cursor:not-allowed}.error-message{padding:12px 16px;background:var(--color-error-light, #FEE2E2);color:var(--color-error, #EF4444);border-radius:var(--radius-lg, 12px);font-size:14px;font-weight:500;text-align:center;animation:shake .4s ease-out}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.login-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 24px;margin-top:8px;font-size:15px;font-weight:600;color:var(--color-text-inverse, #FFFFFF);background:var(--color-primary-500, #4169E1);border:none;border-radius:var(--radius-xl, 16px);cursor:pointer;transition:all .2s ease;box-shadow:0 4px 14px #4169e14d}.login-button:hover:not(:disabled){background:var(--color-primary-600, #3B5BD9);transform:translateY(-1px);box-shadow:0 6px 20px #4169e159}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{background:var(--color-border-medium, #CBD5E1);cursor:not-allowed;box-shadow:none}.loading-text{display:flex;align-items:center;gap:8px}.loading-text:after{content:"";width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.alternative-action{margin-top:24px;text-align:center}.text-button{background:none;border:none;color:var(--color-primary-500, #4169E1);font-size:14px;font-weight:500;cursor:pointer;padding:8px 16px;border-radius:var(--radius-md, 8px);transition:all .2s ease}.text-button:hover{background:var(--color-surface-hover, #F0F4FF);color:var(--color-primary-600, #3B5BD9)}.login-footer{margin-top:40px;padding-top:24px;border-top:1px solid var(--color-border-light, #E2E8F0);display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:var(--color-text-tertiary, #94a3b8)}.footer-logo{height:14px;width:auto;opacity:.6;transition:opacity .2s ease}.footer-logo:hover{opacity:1}@media (max-width: 768px){.login-page{padding:16px}.login-container{flex-direction:column;max-width:440px;min-height:auto}.login-brand-panel{padding:32px 24px;min-height:200px}.brand-headline{font-size:24px}.brand-description{font-size:14px;margin-bottom:20px}.deco-circle-1,.deco-circle-2{display:none}.login-form-panel{padding:32px 24px}.form-header h2{font-size:24px}}@media (max-width: 480px){.login-page{padding:0}.login-container{border-radius:0;min-height:100vh}.login-brand-panel{border-radius:0}}@media (prefers-reduced-motion: reduce){.login-container,.brand-content,.form-content,.env-dot,.deco-circle-1,.deco-circle-2{animation:none}.loading-text:after{animation:none}}
