@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-primary:#f8f9fb;--bg-secondary:#fff;--bg-tertiary:#f0f2f5;--bg-chat-user:#4f46e5;--bg-chat-bot:#f0f2f5;--bg-hover:#e8eaef;--text-primary:#1a1d26;--text-secondary:#5f6577;--text-tertiary:#9096a8;--text-on-primary:#fff;--accent:#4f46e5;--accent-hover:#4338ca;--accent-light:#eef2ff;--accent-glow:#4f46e526;--border-color:#e2e4ea;--border-light:#eef0f4;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 30px #0000001a;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.5rem;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--dragger-width:6px;--dragger-color:#e2e4ea;--dragger-hover:#4f46e5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}#root{width:100%;height:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login-container{width:100vw;min-height:100vh;font-family:var(--font-family,sans-serif);background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 50%,#0f172a 100%);justify-content:center;align-items:center;padding:20px;display:flex;position:relative;overflow:hidden}.login-bg-glow{filter:blur(100px);opacity:.45;pointer-events:none;border-radius:50%;position:absolute}.login-bg-glow-1{background:radial-gradient(circle,#4f46e5 0%,#06b6d4 100%);width:450px;height:450px;top:-100px;left:-100px}.login-bg-glow-2{background:radial-gradient(circle,#818cf8 0%,#c084fc 100%);width:400px;height:400px;bottom:-100px;right:-100px}.login-card{-webkit-backdrop-filter:blur(20px);z-index:10;background:#0f172abf;border:1px solid #ffffff1f;border-radius:24px;width:100%;max-width:440px;padding:40px;animation:.5s ease-out forwards loginCardFadeIn;box-shadow:0 25px 50px -12px #00000080,0 0 30px #4f46e533}@keyframes loginCardFadeIn{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.login-header{text-align:center;margin-bottom:28px}.login-logo{color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#06b6d4 100%);border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 16px;display:flex;box-shadow:0 10px 25px -5px #4f46e566}.login-logo svg{width:30px;height:30px}.login-title{color:#f8fafc;letter-spacing:-.02em;margin-bottom:6px;font-size:1.5rem;font-weight:700}.login-subtitle{color:#94a3b8;font-size:.875rem}.login-error-alert{color:#fca5a5;background:#ef444426;border:1px solid #ef44444d;border-radius:12px;align-items:center;gap:10px;margin-bottom:20px;padding:12px 16px;font-size:.875rem;animation:.3s ease-in-out shake;display:flex}.login-error-icon{color:#f87171;flex-shrink:0;width:20px;height:20px}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.login-form{flex-direction:column;gap:20px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:#cbd5e1;letter-spacing:.01em;font-size:.8125rem;font-weight:600}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:#64748b;pointer-events:none;width:18px;height:18px;transition:color .2s;position:absolute;left:14px}.input-wrapper input{color:#f8fafc;background:#1e293bb3;border:1px solid #ffffff1a;border-radius:12px;outline:none;width:100%;padding:12px 14px 12px 42px;font-size:.9375rem;transition:all .2s}.input-wrapper input::placeholder{color:#64748b}.input-wrapper input:focus{background:#1e293be6;border-color:#6366f1;box-shadow:0 0 0 3px #6366f140}.input-wrapper input:focus+.input-icon,.input-wrapper input:focus~.input-icon{color:#818cf8}.toggle-password-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:color .2s;display:flex;position:absolute;right:12px}.toggle-password-btn:hover{color:#cbd5e1}.toggle-password-btn svg{width:18px;height:18px}.login-submit-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4f46e5 0%,#06b6d4 100%);border:none;border-radius:12px;width:100%;margin-top:8px;padding:14px;font-size:.9375rem;font-weight:600;transition:all .2s;box-shadow:0 4px 15px #4f46e54d}.login-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #4f46e573}.login-submit-btn:active:not(:disabled){transform:translateY(0)}.login-submit-btn:disabled{opacity:.7;cursor:not-allowed}.btn-loading{justify-content:center;align-items:center;gap:10px;display:flex}.spinner-sm{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}:root{--meter-healthy:#10b981;--meter-moderate:#6366f1;--meter-warning:#f59e0b;--meter-critical:#ef4444}.token-meter{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:5px 12px;display:flex;position:relative}.token-meter:hover,.token-meter:focus-visible{background:var(--bg-secondary);box-shadow:var(--shadow-sm);border-color:#cbd5e1}.token-meter--healthy{border-color:#10b98140}.token-meter--moderate{border-color:#6366f140}.token-meter--warning{background:#fffbeb;border-color:#f59e0b66}.token-meter--critical{background:#fef2f2;border-color:#ef444466;animation:2s ease-in-out infinite meterPulse}@keyframes meterPulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 4px #ef444426}}.token-meter__info{font-size:var(--font-size-xs);color:var(--text-secondary);align-items:center;gap:6px;display:flex}.token-meter__icon{width:14px;height:14px;color:var(--accent);flex-shrink:0}.token-meter--healthy .token-meter__icon{color:var(--meter-healthy)}.token-meter--moderate .token-meter__icon{color:var(--meter-moderate)}.token-meter--warning .token-meter__icon{color:var(--meter-warning)}.token-meter--critical .token-meter__icon{color:var(--meter-critical)}.token-meter__count{font-size:var(--font-size-xs);white-space:nowrap}.token-meter__count strong{color:var(--text-primary);font-weight:600}.token-meter__unit{color:var(--text-tertiary);font-size:.6875rem}.token-meter__track{border-radius:var(--radius-full);background:#00000014;width:70px;height:6px;position:relative;overflow:hidden}.token-meter__fill{border-radius:var(--radius-full);height:100%;transition:width .4s cubic-bezier(.4,0,.2,1),background .3s}.token-meter__fill--healthy{background:linear-gradient(90deg,#10b981 0%,#06b6d4 100%)}.token-meter__fill--moderate{background:linear-gradient(90deg,#6366f1 0%,#8b5cf6 100%)}.token-meter__fill--warning{background:linear-gradient(90deg,#f59e0b 0%,#ea580c 100%)}.token-meter__fill--critical{background:linear-gradient(90deg,#ef4444 0%,#b91c1c 100%)}.token-meter__badge{border-radius:var(--radius-full);white-space:nowrap;padding:2px 7px;font-size:.6875rem;font-weight:600}.token-meter__badge--healthy{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.token-meter__badge--moderate{background:var(--accent-light);color:var(--accent);border:1px solid #c7d2fe}.token-meter__badge--warning{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.token-meter__badge--critical{color:#b91c1c;background:#fee2e2;border:1px solid #fecaca}.token-tooltip{border:1px solid var(--border-color);border-radius:var(--radius-lg);z-index:100;cursor:default;background:#fff;width:320px;padding:16px;animation:.2s cubic-bezier(.16,1,.3,1) tooltipFadeIn;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 12px 36px #0f172a29,0 0 0 1px #0000000a}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.token-tooltip__header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.token-tooltip__title{font-size:var(--font-size-sm);color:var(--text-primary);align-items:center;gap:6px;font-weight:700;display:flex}.token-tooltip__title svg{width:16px;height:16px;color:var(--accent)}.token-pill{border-radius:var(--radius-full);padding:2px 8px;font-size:.6875rem;font-weight:700}.token-pill--healthy{color:#065f46;background:#d1fae5}.token-pill--moderate{color:#3730a3;background:#e0e7ff}.token-pill--warning{color:#92400e;background:#fef3c7}.token-pill--critical{color:#991b1b;background:#fee2e2}.token-tooltip__progress{margin-bottom:14px}.token-tooltip__progress-bar{border-radius:var(--radius-full);background:#f1f5f9;height:8px;margin-bottom:6px;overflow:hidden}.token-tooltip__progress-fill{border-radius:var(--radius-full);height:100%;transition:width .3s}.token-tooltip__progress-fill--healthy{background:linear-gradient(90deg,#10b981 0%,#06b6d4 100%)}.token-tooltip__progress-fill--moderate{background:linear-gradient(90deg,#6366f1 0%,#8b5cf6 100%)}.token-tooltip__progress-fill--warning{background:linear-gradient(90deg,#f59e0b 0%,#ea580c 100%)}.token-tooltip__progress-fill--critical{background:linear-gradient(90deg,#ef4444 0%,#b91c1c 100%)}.token-tooltip__progress-labels{color:var(--text-tertiary);justify-content:space-between;font-size:.6875rem;display:flex}.token-tooltip__rows{flex-direction:column;gap:8px;display:flex}.token-tooltip__row{font-size:var(--font-size-xs);color:var(--text-secondary);justify-content:space-between;align-items:center;display:flex}.row-label{align-items:center;gap:6px;display:flex}.row-dot{border-radius:50%;width:6px;height:6px}.row-dot--doc{background:#3b82f6}.row-dot--chat{background:#8b5cf6}.row-dot--sys{background:#94a3b8}.row-dot--reserved{background:#cbd5e1}.row-dot--highlight{background:#10b981}.row-val{color:var(--text-primary);font-weight:500}.token-tooltip__divider{background:var(--border-light);height:1px;margin:4px 0}.token-tooltip__row--highlight{border-radius:var(--radius-sm);background:#f0fdf4;border:1px dashed #bbf7d0;padding:6px 8px;font-weight:600}.row-val--highlight{color:#15803d;font-weight:700}.token-tooltip__footer{border-top:1px solid var(--border-light);color:var(--text-tertiary);margin-top:12px;padding-top:10px;font-size:.6875rem;line-height:1.4}.token-card{padding:var(--space-md);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;gap:12px;animation:.3s ease-out messageSlideIn;display:flex}.token-card--healthy{border-color:#e2e8f0}.token-card--warning{background:#fffdf5;border-color:#fde68a}.token-card--critical{background:#fff5f5;border-color:#fecaca}.token-card__header{justify-content:space-between;align-items:center;display:flex}.token-card__title{font-size:var(--font-size-sm);color:var(--text-primary);align-items:center;gap:8px;font-weight:700;display:flex}.token-card__icon{width:18px;height:18px;color:var(--accent)}.token-card__bar-container{border-radius:var(--radius-full);background:#f1f5f9;height:8px;overflow:hidden}.token-card__bar-fill{border-radius:var(--radius-full);height:100%;transition:width .4s}.token-card__bar-fill--healthy{background:linear-gradient(90deg,#10b981 0%,#06b6d4 100%)}.token-card__bar-fill--moderate{background:linear-gradient(90deg,#6366f1 0%,#8b5cf6 100%)}.token-card__bar-fill--warning{background:linear-gradient(90deg,#f59e0b 0%,#ea580c 100%)}.token-card__bar-fill--critical{background:linear-gradient(90deg,#ef4444 0%,#b91c1c 100%)}.token-card__grid{background:var(--bg-tertiary);border-radius:var(--radius-md);grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px;display:grid}.token-card__stat{flex-direction:column;gap:2px;display:flex}.token-card__stat-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.02em;font-size:.6875rem;font-weight:600}.token-card__stat-value{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.token-card__stat-value--highlight{color:#16a34a;font-weight:700}.token-card__breakdown{font-size:var(--font-size-xs);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:0 4px;display:flex}.token-breakdown-item{align-items:center;gap:6px;display:flex}.breakdown-dot{border-radius:50%;width:6px;height:6px}.breakdown-dot--doc{background:#3b82f6}.breakdown-dot--chat{background:#8b5cf6}.breakdown-dot--free{background:#10b981}@media (width<=900px){.token-meter__count{display:none}}.app-navbar{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);width:100%;height:60px;padding:0 var(--space-lg);z-index:20;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.navbar-brand{align-items:center;gap:12px;display:flex}.navbar-logo{background:linear-gradient(135deg, var(--accent) 0%, #06b6d4 100%);border-radius:var(--radius-md);color:#fff;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.navbar-logo svg{width:20px;height:20px}.navbar-title{align-items:center;gap:8px;display:flex}.navbar-title h1{font-size:var(--font-size-md);color:var(--text-primary);letter-spacing:-.01em;font-weight:700}.navbar-tag{background:var(--accent-light);color:var(--accent);font-size:var(--font-size-xs);border-radius:var(--radius-full);padding:2px 8px;font-weight:600}.navbar-actions{align-items:center;gap:16px;display:flex}.session-badge{border-radius:var(--radius-full);background:var(--bg-tertiary);font-size:var(--font-size-xs);color:var(--text-secondary);align-items:center;gap:6px;padding:4px 10px;font-weight:500;display:flex}.session-dot{background:var(--text-tertiary);border-radius:50%;width:7px;height:7px}.session-active{color:#047857;background:#ecfdf5}.session-active .session-dot{background:#10b981;box-shadow:0 0 6px #10b981}.user-profile{border-radius:var(--radius-md);background:var(--bg-tertiary);align-items:center;gap:10px;padding:4px 8px;display:flex}.user-avatar{background:var(--accent);color:#fff;width:28px;height:28px;font-weight:700;font-size:var(--font-size-xs);border-radius:50%;justify-content:center;align-items:center;display:flex}.user-info{flex-direction:column;line-height:1.1;display:flex}.user-name{font-size:var(--font-size-xs);color:var(--text-primary);font-weight:600}.user-role{color:var(--text-secondary);text-transform:capitalize;font-size:.6875rem}.logout-btn{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:6px;padding:6px 12px;font-weight:600;display:flex}.logout-btn svg{width:14px;height:14px}.logout-btn:hover{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.split-layout{background:var(--bg-primary);width:100%;height:100%;display:flex}.split-layout__left{background:var(--bg-secondary);border-right:1px solid var(--border-light);min-width:0;height:100%;overflow:hidden}.split-layout__right{background:var(--bg-secondary);flex:1;min-width:0;height:100%;overflow:hidden}.split-layout__dragger{width:var(--dragger-width);background:var(--bg-primary);cursor:col-resize;height:100%;transition:background var(--transition-fast);z-index:10;flex-shrink:0;position:relative}.split-layout__dragger:after{content:"";background:var(--dragger-color);width:2px;transition:background var(--transition-fast), width var(--transition-fast);position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.split-layout__dragger:hover:after,.split-layout__dragger--active:after{background:var(--dragger-hover);width:3px}.split-layout__dragger:hover,.split-layout__dragger--active{background:var(--accent-light)}.split-layout__dragger-grip{opacity:0;transition:opacity var(--transition-fast);flex-direction:column;gap:3px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.split-layout__dragger:hover .split-layout__dragger-grip,.split-layout__dragger--active .split-layout__dragger-grip{opacity:1}.split-layout__dragger-grip span{background:var(--accent);border-radius:50%;width:3px;height:3px}.chat-panel{background:var(--bg-secondary);flex-direction:column;height:100%;display:flex}.chat-panel__header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-light);align-items:center;gap:var(--space-md);flex-shrink:0;display:flex}.chat-panel__avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--accent), #7c3aed);color:#fff;width:38px;height:38px;font-weight:700;font-size:var(--font-size-md);flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-panel__header-info h2{font-size:var(--font-size-md);color:var(--text-primary);font-weight:600;line-height:1.3}.chat-panel__header-info p{font-size:var(--font-size-xs);color:var(--text-tertiary);align-items:center;gap:var(--space-xs);display:flex}.chat-panel__status-dot{background:#22c55e;border-radius:50%;width:6px;height:6px;display:inline-block}.chat-panel__token-indicator{color:var(--accent);font-size:.6875rem;font-weight:500}.chat-panel__messages{padding:var(--space-lg);gap:var(--space-md);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-message{flex-direction:column;max-width:85%;animation:.3s ease-out messageSlideIn;display:flex}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-message--user{align-self:flex-end}.chat-message--bot{align-self:flex-start}.chat-message__bubble{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);font-size:var(--font-size-base);word-wrap:break-word;line-height:1.6}.chat-message__bubble p{margin-bottom:var(--space-xs)}.chat-message__bubble p:last-child{margin-bottom:0}.chat-message__bubble ul,.chat-message__bubble ol{margin:var(--space-xs) 0 var(--space-xs) var(--space-lg);padding:0}.chat-message__bubble li{margin-bottom:4px}.chat-message--user .chat-message__bubble{background:var(--bg-chat-user);color:var(--text-on-primary);border-bottom-right-radius:var(--space-xs)}.chat-message--bot .chat-message__bubble{background:var(--bg-chat-bot);color:var(--text-primary);border-bottom-left-radius:var(--space-xs)}.chat-message__time{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:var(--space-xs);padding:0 var(--space-xs)}.chat-message--user .chat-message__time{text-align:right}.typing-indicator{padding:var(--space-sm) var(--space-md);background:var(--bg-chat-bot);border-radius:var(--radius-lg);border-bottom-left-radius:var(--space-xs);align-self:flex-start;align-items:center;gap:4px;max-width:60px;display:flex}.typing-indicator span{background:var(--text-tertiary);border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite typingBounce}.typing-indicator span:first-child{animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}.chat-panel__input-area{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-light);background:var(--bg-secondary);flex-shrink:0}.chat-panel__input-form{gap:var(--space-sm);align-items:flex-end;display:flex}.chat-panel__input{padding:var(--space-sm) var(--space-md);border:1.5px solid var(--border-color);border-radius:var(--radius-lg);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-primary);resize:none;min-height:42px;max-height:120px;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex:1;line-height:1.5}.chat-panel__input::placeholder{color:var(--text-tertiary)}.chat-panel__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.chat-panel__send-btn{border-radius:var(--radius-full);background:var(--accent);color:#fff;cursor:pointer;width:42px;height:42px;transition:background var(--transition-fast), transform var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-panel__send-btn:hover:not(:disabled){background:var(--accent-hover);transform:scale(1.05)}.chat-panel__send-btn:active:not(:disabled){transform:scale(.95)}.chat-panel__send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-panel__send-btn svg{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.chat-message--welcome .chat-message__bubble{background:linear-gradient(135deg, var(--accent-light), #faf5ff);border:1px solid var(--border-light);color:var(--text-primary);border-bottom-left-radius:var(--space-xs)}.chat-panel__mic-btn{border-radius:var(--radius-full);background:var(--bg-chat-bot);width:42px;height:42px;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-panel__mic-btn svg{width:18px;height:18px}.chat-panel__mic-btn:hover:not(:disabled){background:var(--accent-light);color:var(--accent);transform:scale(1.05)}.chat-panel__mic-btn:active:not(:disabled){transform:scale(.95)}.chat-panel__mic-btn:disabled{opacity:.4;cursor:not-allowed}.chat-panel__mic-btn--active{color:#dc2626;background:#fee2e2;animation:1.5s ease-out infinite micPulse;box-shadow:0 0 #dc262680}@keyframes micPulse{0%{box-shadow:0 0 #dc262673}70%{box-shadow:0 0 0 8px #dc262600}to{box-shadow:0 0 #dc262600}}.chat-panel__input--listening{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.chat-message__meta{margin-top:var(--space-xs);padding:0 var(--space-xs);align-items:center;gap:8px;display:flex}.chat-message__proc-time{font-size:var(--font-size-xs);color:#6366f1;background:var(--accent-light);border-radius:var(--radius-full);padding:1px 6px;font-weight:500}.chat-suggestions{padding:var(--space-xs) var(--space-lg);background:var(--bg-secondary);flex-direction:column;gap:6px;display:flex}.chat-suggestions__label{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.chat-suggestions__pills{flex-wrap:wrap;gap:8px;display:flex}.chat-suggestion-pill{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-full);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast);padding:6px 12px;font-weight:500}.chat-suggestion-pill:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.image-preview-modal{z-index:100;padding:var(--space-xl);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;animation:.2s ease-out modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.image-preview-modal__content{background:var(--bg-secondary);border-radius:var(--radius-lg);width:100%;max-width:90vw;height:90vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.image-preview-modal__header{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border-bottom:1px solid var(--border-light);flex-shrink:0;display:flex}.image-preview-modal__controls{align-items:center;gap:var(--space-sm);display:flex}.image-preview-modal__zoom-text{font-size:var(--font-size-sm);color:var(--text-primary);text-align:center;min-width:45px;font-weight:500}.image-preview-modal__divider{background:var(--border-color);width:1px;height:20px;margin:0 var(--space-xs)}.image-preview-modal__btn{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);font-weight:500;display:flex}.image-preview-modal__btn:hover:not(:disabled){background:var(--bg-hover)}.image-preview-modal__btn:disabled{opacity:.5;cursor:not-allowed}.image-preview-modal__btn--close:hover{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.image-preview-modal__body{padding:var(--space-xl);background:var(--bg-tertiary);flex:1;display:flex;overflow:auto}.image-preview-modal__img{object-fit:contain;transition:transform var(--transition-normal), width var(--transition-normal), height var(--transition-normal);box-shadow:var(--shadow-md);background:#fff;margin:auto}.upload-panel{background:var(--bg-secondary);flex-direction:column;height:100%;display:flex}.upload-panel__header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-light);flex-shrink:0}.upload-panel__header h2{font-size:var(--font-size-md);color:var(--text-primary);font-weight:600}.upload-panel__header p{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:2px}.upload-panel__content{padding:var(--space-lg);gap:var(--space-lg);flex-direction:column;flex:1;display:flex;overflow-y:auto}.dropzone{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-lg);text-align:center;cursor:pointer;transition:all var(--transition-normal);background:var(--bg-primary);justify-content:center;align-items:center;gap:var(--space-md);flex-direction:column;min-height:180px;display:flex}.dropzone--active{border-color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 4px var(--accent-glow);animation:1.5s ease-in-out infinite dropzonePulse}@keyframes dropzonePulse{0%,to{box-shadow:0 0 0 4px var(--accent-glow)}50%{box-shadow:0 0 0 8px var(--accent-glow)}}.dropzone:hover{border-color:var(--accent);background:var(--accent-light)}.dropzone__icon{border-radius:var(--radius-lg);background:var(--accent-light);width:56px;height:56px;transition:transform var(--transition-normal);justify-content:center;align-items:center;display:flex}.dropzone:hover .dropzone__icon,.dropzone--active .dropzone__icon{transform:scale(1.1)}.dropzone__icon svg{width:28px;height:28px;stroke:var(--accent);fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.dropzone__text{font-size:var(--font-size-base);color:var(--text-secondary)}.dropzone__text strong{color:var(--accent);font-weight:600}.dropzone__hint{font-size:var(--font-size-xs);color:var(--text-tertiary)}.upload-panel__file-info{padding:var(--space-sm) var(--space-md);background:var(--accent-light);border-radius:var(--radius-md);border:1px solid var(--border-light);justify-content:space-between;align-items:center;animation:.3s ease-out messageSlideIn;display:flex}.upload-panel__file-details{align-items:center;gap:var(--space-sm);display:flex}.upload-panel__file-icon{border-radius:var(--radius-sm);background:var(--accent);color:#fff;width:32px;height:32px;font-size:var(--font-size-xs);justify-content:center;align-items:center;font-weight:700;display:flex}.upload-panel__file-name{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:500}.upload-panel__file-meta{font-size:var(--font-size-xs);color:var(--text-tertiary)}.upload-panel__clear-btn{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-secondary);font-size:var(--font-size-xs);font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast)}.upload-panel__clear-btn:hover{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.image-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.image-grid__item{border-radius:var(--radius-md);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal), box-shadow var(--transition-normal);cursor:pointer;animation:.4s ease-out backwards imageFadeIn;position:relative;overflow:hidden}.image-grid__item:first-child{animation-delay:50ms}.image-grid__item:nth-child(2){animation-delay:.1s}.image-grid__item:nth-child(3){animation-delay:.15s}.image-grid__item:nth-child(4){animation-delay:.2s}.image-grid__item:nth-child(5){animation-delay:.25s}.image-grid__item:nth-child(6){animation-delay:.3s}.image-grid__item:nth-child(7){animation-delay:.35s}.image-grid__item:nth-child(8){animation-delay:.4s}@keyframes imageFadeIn{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.image-grid__item:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.image-grid__item img{width:100%;height:auto;display:block}.image-grid__label{padding:var(--space-xs) var(--space-sm);color:#fff;font-size:var(--font-size-xs);text-align:center;background:linear-gradient(#0000,#0009);font-weight:500;position:absolute;bottom:0;left:0;right:0}.upload-panel__loading{justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space-xl);color:var(--text-secondary);font-size:var(--font-size-sm);flex-direction:column;display:flex}.upload-panel__spinner{border:3px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}.upload-panel__empty{text-align:center;color:var(--text-tertiary);padding:var(--space-xl);font-size:var(--font-size-sm)}.upload-panel__error{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:#dc2626;font-size:var(--font-size-sm);background:#fef2f2;border:1px solid #fca5a5;animation:.3s ease-out messageSlideIn}.docx-preview-container{padding:var(--space-xl) var(--space-md);justify-content:center;align-items:center;animation:.4s ease-out imageFadeIn;display:flex}.docx-preview-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center;width:100%;max-width:420px;box-shadow:var(--shadow-sm);align-items:center;gap:var(--space-sm);transition:transform var(--transition-normal), box-shadow var(--transition-normal);flex-direction:column;display:flex}.docx-preview-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.docx-preview-icon{border-radius:var(--radius-md);color:#2563eb;width:64px;height:64px;margin-bottom:var(--space-xs);background:#2563eb1a;justify-content:center;align-items:center;display:flex}.docx-preview-title{font-size:var(--font-size-base);color:var(--text-primary);word-break:break-all;font-weight:600}.docx-preview-badge{font-size:var(--font-size-xs);color:#2563eb;background:#2563eb1f;border-radius:9999px;padding:4px 10px;font-weight:600;display:inline-block}.docx-preview-desc{font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:var(--space-xs);line-height:1.5}.app-container{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.app-workspace{flex:1;width:100%;height:calc(100vh - 60px);overflow:hidden}.app-loading-screen{background:var(--bg-primary);width:100vw;height:100vh;color:var(--text-secondary);font-family:var(--font-family);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.app-loading-spinner{border:3px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite appSpin}@keyframes appSpin{to{transform:rotate(360deg)}}
