:root{--blue: #1B6BC4;--blue-dark: #144F94;--blue-mid: #2278D4;--blue-light: #E8F1FB;--orange: #F7A020;--green: #5DB329;--navy: #0A1628;--font-body: "DM Sans", "Plus Jakarta Sans", system-ui, sans-serif;--font-heading: "Plus Jakarta Sans", "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--sidebar-width: 280px;--radius: 8px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);font-size:14px;color:#1a1a2e;background:#f5f7fa;-webkit-font-smoothing:antialiased}.app{display:flex;height:100%}.sidebar{width:var(--sidebar-width);background:var(--navy);color:#fff;display:flex;flex-direction:column;flex-shrink:0}.sidebar-header{padding:24px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.logo{font-family:var(--font-heading);font-size:24px;font-weight:700;color:var(--orange);letter-spacing:-.5px}.logo-subtitle{display:block;font-size:11px;color:#ffffff80;margin-top:4px;letter-spacing:.3px}.sidebar-placeholder{font-size:13px;color:#ffffff59;font-style:italic}.chat-area{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.chat-messages{flex:1;min-height:0;overflow-y:auto;padding:24px 32px}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:#6b7280}.chat-empty h2{font-family:var(--font-heading);font-size:22px;font-weight:600;color:var(--navy);margin-bottom:8px}.chat-empty p{font-size:15px;color:#9ca3af}.message{display:flex;margin-bottom:16px;max-width:720px;min-width:0}.message--user{margin-left:auto;justify-content:flex-end}.message--assistant{margin-right:auto;justify-content:flex-start}.message-bubble{padding:12px 16px;border-radius:var(--radius);line-height:1.55;font-size:14px;max-width:85%;min-width:0;word-break:break-word}.message--user .message-bubble{white-space:pre-wrap;background:var(--blue);color:#fff;border-bottom-right-radius:2px;box-shadow:var(--shadow-sm)}.message--assistant .message-bubble{background:#fff;color:#1a1a2e;border:1px solid #e5e7eb;border-bottom-left-radius:2px;box-shadow:var(--shadow-sm)}.chat-input-container{padding:16px 32px 24px;border-top:1px solid #e5e7eb;background:#fff}.chat-input-wrapper{display:flex;gap:12px;align-items:flex-end}.chat-input{flex:1;padding:12px 16px;border:1px solid #d1d5db;border-radius:var(--radius);font-family:var(--font-body);font-size:14px;resize:none;outline:none;min-height:44px;max-height:160px;line-height:1.5;transition:border-color .15s}.chat-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1b6bc41a}.chat-input::placeholder{color:#9ca3af}.chat-send-btn{padding:10px 20px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius);font-family:var(--font-body);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s;white-space:nowrap;height:44px}.chat-send-btn:hover:not(:disabled){background:var(--blue-dark)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:#6b7280;font-size:15px}.loading-spinner{width:24px;height:24px;border:3px solid rgba(27,107,196,.2);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-screen{display:flex;align-items:center;justify-content:center;height:100%;background:linear-gradient(135deg,var(--navy) 0%,#1a2744 100%)}.login-card{background:#fff;border-radius:12px;padding:48px 40px;max-width:420px;width:100%;text-align:center;box-shadow:0 8px 32px #0003}.login-logo{font-family:var(--font-heading);font-size:36px;font-weight:700;color:var(--orange);letter-spacing:-1px;margin-bottom:4px}.login-subtitle{font-size:14px;color:#6b7280;margin-bottom:24px}.login-description{font-size:14px;color:#4b5563;line-height:1.6;margin-bottom:28px}.login-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:var(--radius);padding:10px 14px;font-size:13px;margin-bottom:20px;line-height:1.5}.login-btn{display:inline-block;padding:12px 32px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius);font-family:var(--font-body);font-size:15px;font-weight:600;cursor:pointer;transition:background .15s;width:100%}.login-btn:hover{background:var(--blue-dark)}.login-footer{margin-top:32px;font-size:12px;color:#9ca3af}.project-list{display:flex;flex-direction:column;gap:2px}.project-list-loading{display:flex;align-items:center;gap:10px;font-size:13px;color:#ffffff80;padding:8px 0}.project-list-loading .loading-spinner{width:16px;height:16px;border-width:2px;border-color:#fff3;border-top-color:#ffffffb3}.project-list-error{font-size:13px;color:#f87171;padding:8px 0}.project-list-empty{font-size:13px;color:#ffffff59;font-style:italic;padding:8px 0}.project-item{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 12px;background:transparent;border:none;border-left:3px solid transparent;border-radius:0 var(--radius) var(--radius) 0;color:#ffffffbf;font-family:var(--font-body);font-size:13px;text-align:left;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.project-item:hover{background:#ffffff0f;color:#fff}.project-item--selected{border-left-color:var(--orange);background:#ffffff14;color:#fff}.project-item-header{display:flex;align-items:center;gap:0;min-width:0;width:100%}.project-item-name{font-weight:500;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.project-item-status{font-size:11px;color:#fff6;text-transform:uppercase;letter-spacing:.3px}.project-item--selected .project-item-status{color:#ffffff8c}.user-info{padding:16px 20px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;gap:12px}.user-info-details{display:flex;flex-direction:column;min-width:0}.user-info-name{font-size:13px;font-weight:500;color:#ffffffd9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info-email{font-size:11px;color:#fff6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info-logout{background:transparent;border:1px solid rgba(255,255,255,.15);color:#fff9;font-family:var(--font-body);font-size:12px;padding:5px 10px;border-radius:var(--radius);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.user-info-logout:hover{background:#ffffff14;color:#ffffffd9;border-color:#ffffff40}.context-warning{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 32px;background:#fffbeb;border-bottom:1px solid #fde68a;color:#92400e;font-size:13px;line-height:1.5}.context-warning-text{flex:1}.context-warning-dismiss{background:transparent;border:none;color:#92400e;font-size:18px;cursor:pointer;padding:0 4px;line-height:1;opacity:.6;transition:opacity .15s}.context-warning-dismiss:hover{opacity:1}.sidebar-body{flex:1;overflow:hidden;display:flex;flex-direction:column}.project-list-scroll{flex:1;overflow-y:auto;padding:16px 12px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.project-switcher-container{position:relative;flex-shrink:0;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.06)}.project-switcher{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 16px;background:#ffffff0d;border:none;border-radius:var(--radius);color:#ffffffe6;font-family:var(--font-body);cursor:pointer;flex-shrink:0;transition:background .15s}.project-switcher:hover{background:#ffffff17}.project-switcher:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.project-switcher-name{flex:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-weight:600;font-size:13px;color:#ffffffe6;text-align:left}.project-switcher-chevron{font-size:10px;color:#fff6;flex-shrink:0;margin-left:8px;transition:transform .2s ease}.project-list-dropdown{position:absolute;top:calc(100% - 8px);left:12px;right:12px;background:#0d1b2a;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);z-index:100;max-height:240px;overflow-y:auto;padding:4px 0;list-style:none;box-shadow:0 8px 24px #0006;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.project-switcher-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 16px;background:transparent;border:none;border-left:3px solid transparent;color:#ffffffb3;font-family:var(--font-body);font-size:13px;text-align:left;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.project-switcher-option:hover{background:#ffffff0f;color:#fffffff2}.project-switcher-option--active{border-left-color:var(--orange);background:#ffffff14;color:#fff;font-weight:500}.project-switcher-option-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-section{flex:1;display:flex;flex-direction:column;overflow:hidden}.sidebar-section-header{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:#fff6;padding:12px 16px 6px;flex-shrink:0}.project-row{display:flex;flex-direction:column}.project-item-wrapper{display:flex;align-items:center}.project-item-wrapper .project-item{flex:1;min-width:0}.project-link-folder-btn{flex-shrink:0;padding:4px 6px;background:transparent;border:none;font-size:14px;cursor:pointer;opacity:.45;transition:opacity .15s;line-height:1}.project-link-folder-btn:hover{opacity:1}.project-settings-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:5px;color:#ffffff59;cursor:pointer;opacity:0;transition:opacity .15s,color .15s,background .15s}.project-item-wrapper:hover .project-settings-btn,.project-settings-btn--active{opacity:1}.project-settings-btn:hover{color:#fffc;background:#ffffff14}.project-settings-btn--active{color:var(--orange)}.project-settings-btn:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.project-settings-btn--switcher{opacity:1;margin-left:4px}.project-switcher-row{display:flex;align-items:center;gap:0}.project-switcher-row .project-switcher{flex:1;min-width:0}.project-settings-panel{background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius);box-shadow:0 8px 24px #00000026;z-index:1100;overflow:hidden;font-family:var(--font-body);font-size:13px;color:#111827}.project-settings-panel-header{padding:10px 14px 8px;border-bottom:1px solid #f3f4f6;background:#f9fafb}.project-settings-panel-title{display:block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:#9ca3af;margin-bottom:2px}.project-settings-panel-project{display:block;font-size:13px;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-settings-section{padding:8px 10px;border-bottom:1px solid #f3f4f6}.project-settings-section--last{border-bottom:none}.project-settings-section-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#9ca3af;margin-bottom:5px;padding:0 4px}.project-settings-last-synced{font-size:11px;color:#9ca3af;padding:0 4px;margin-bottom:6px}.project-settings-action{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;background:transparent;border:1px solid #e5e7eb;border-radius:5px;color:#374151;font-family:var(--font-body);font-size:13px;text-align:left;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.project-settings-action:hover:not(:disabled){background:#f3f4f6;border-color:#d1d5db;color:#111827}.project-settings-action:disabled{opacity:.45;cursor:not-allowed}.project-settings-action:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.project-settings-action-icon{flex-shrink:0;color:#6b7280}.project-settings-action:hover:not(:disabled) .project-settings-action-icon{color:#374151}.project-settings-action--destructive{color:#b91c1c;border-color:#fecaca}.project-settings-action--destructive:hover:not(:disabled){background:#fef2f2;border-color:#f87171;color:#991b1b}.project-settings-action--destructive .project-settings-action-icon{color:#ef4444}.project-settings-action--destructive:hover:not(:disabled) .project-settings-action-icon{color:#b91c1c}.project-settings-confirm{padding:4px 0}.project-settings-confirm--destructive .project-settings-confirm-text{color:#7f1d1d}.project-settings-confirm-text{font-size:12px;color:#4b5563;line-height:1.4;margin-bottom:8px;padding:0 2px}.project-settings-confirm-actions{display:flex;gap:6px}.project-settings-confirm-btn{flex:1;padding:5px 8px;border-radius:4px;font-family:var(--font-body);font-size:12px;font-weight:500;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.project-settings-confirm-btn--ok{background:var(--blue);border:1px solid var(--blue-dark);color:#fff}.project-settings-confirm-btn--ok:hover{background:var(--blue-dark)}.project-settings-confirm-btn--destructive{background:#dc2626;border:1px solid #b91c1c;color:#fff}.project-settings-confirm-btn--destructive:hover{background:#b91c1c}.project-settings-confirm-btn--cancel{background:transparent;border:1px solid #d1d5db;color:#6b7280}.project-settings-confirm-btn--cancel:hover{background:#f3f4f6;color:#374151}.project-settings-status{padding:7px 14px;font-size:12px;border-top:1px solid #f3f4f6}.project-settings-status--info{color:#374151;background:#f9fafb}.project-settings-status--success{color:#166534;background:#f0fdf4}.project-settings-status--error{color:#991b1b;background:#fef2f2}.folder-explorer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center}.folder-explorer-window{display:flex;flex-direction:column;width:680px;max-width:90vw;height:520px;max-height:80vh;background:#fff;border-radius:8px;box-shadow:0 8px 32px #0000004d;overflow:hidden;outline:none}.folder-explorer-titlebar{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--navy);border-radius:8px 8px 0 0;flex-shrink:0}.folder-explorer-titlebar-icon{font-size:15px;flex-shrink:0}.folder-explorer-titlebar-title{flex:1;font-family:var(--font-heading);font-size:14px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.folder-explorer-close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:#ffffffbf;font-size:20px;line-height:1;cursor:pointer;flex-shrink:0;transition:color .15s,background .15s}.folder-explorer-close-btn:hover{color:var(--orange);background:#ffffff14}.folder-explorer-toolbar{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid #e5e7eb;background:#f9fafb;flex-shrink:0}.folder-explorer-nav-btns{display:flex;align-items:center;gap:4px;flex-shrink:0}.folder-explorer-nav-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:#fff;border:1px solid #d1d5db;border-radius:5px;color:#374151;font-size:12px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.folder-explorer-nav-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af;color:#111827}.folder-explorer-nav-btn:disabled{opacity:.4;pointer-events:none}.folder-explorer-breadcrumb{display:flex;align-items:center;flex-wrap:nowrap;overflow:hidden;min-width:0;gap:2px}.folder-explorer-breadcrumb-segment{display:flex;align-items:center;gap:2px;min-width:0;white-space:nowrap}.folder-explorer-breadcrumb-sep{color:#9ca3af;font-size:13px;padding:0 2px;flex-shrink:0}.folder-explorer-breadcrumb-link{background:transparent;border:none;padding:2px 4px;border-radius:3px;color:var(--blue);font-family:var(--font-body);font-size:13px;cursor:pointer;transition:background .12s,color .12s;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-explorer-breadcrumb-link:hover{background:#e8f1fb;color:var(--blue-dark)}.folder-explorer-breadcrumb-current{font-size:13px;font-weight:600;color:#111827;padding:2px 4px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-explorer-col-headers{display:flex;align-items:center;padding:7px 16px;background:#f3f4f6;border-bottom:1px solid #e5e7eb;flex-shrink:0}.folder-explorer-col-name{flex:1;font-size:12px;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.4px}.folder-explorer-col-modified{width:110px;font-size:12px;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.4px;text-align:right;flex-shrink:0}.folder-explorer-content{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#d1d5db transparent}.folder-explorer-state-msg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%;min-height:100px;color:#6b7280;font-size:14px;padding:24px;text-align:center}.folder-explorer-error-msg{color:#991b1b}.folder-explorer-empty-msg{font-style:italic;color:#9ca3af}.folder-explorer-spinner{border-color:#1b6bc433;border-top-color:var(--blue)}.folder-explorer-retry-btn{padding:6px 16px;background:transparent;border:1px solid #d1d5db;border-radius:5px;color:#374151;font-family:var(--font-body);font-size:13px;cursor:pointer;transition:background .15s,border-color .15s}.folder-explorer-retry-btn:hover{background:#f3f4f6;border-color:#9ca3af}.folder-explorer-row{display:flex;align-items:center;padding:8px 16px;cursor:pointer;border-left:3px solid transparent;transition:background .1s,border-color .1s;outline:none}.folder-explorer-row:hover{background:#f3f4f6}.folder-explorer-row--selected{border-left-color:var(--orange);background:#f7a02014}.folder-explorer-row--selected:hover{background:#f7a02021}.folder-explorer-row-name{flex:1;display:flex;align-items:center;gap:7px;font-size:13px;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.folder-explorer-row-icon{font-size:14px;flex-shrink:0}.folder-explorer-row-modified{width:110px;font-size:12px;color:#6b7280;text-align:right;flex-shrink:0;white-space:nowrap}.folder-explorer-load-more-row{display:flex;justify-content:center;padding:10px 16px}.folder-explorer-load-more-btn{background:transparent;border:none;color:var(--blue);font-family:var(--font-body);font-size:13px;cursor:pointer;padding:4px 12px;border-radius:4px;transition:background .12s,color .12s}.folder-explorer-load-more-btn:hover:not(:disabled){background:#e8f1fb;color:var(--blue-dark)}.folder-explorer-load-more-btn:disabled{opacity:.5;cursor:not-allowed}.folder-explorer-statusbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;border-top:1px solid #e5e7eb;background:#f9fafb;flex-shrink:0}.folder-explorer-status-count{font-size:12px;color:#6b7280;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-explorer-status-selected{font-weight:500;color:#374151}.folder-explorer-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.folder-explorer-select-btn{padding:6px 20px;background:var(--orange);color:#fff;border:none;border-radius:5px;font-family:var(--font-body);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s;white-space:nowrap}.folder-explorer-select-btn:hover:not(:disabled){background:#d98010}.folder-explorer-select-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.folder-explorer-cancel-btn{padding:6px 16px;background:transparent;border:1px solid #d1d5db;border-radius:5px;color:#374151;font-family:var(--font-body);font-size:13px;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.folder-explorer-cancel-btn:hover{background:#f3f4f6;border-color:#9ca3af;color:#111827}.project-badge{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:6px;flex-shrink:0}.project-badge--ready{background:var(--green)}.project-badge--pending{background:var(--orange)}.session-list-container{display:flex;flex-direction:column;flex:1;overflow:hidden;padding:0 12px}.session-list-scroll{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.session-list{display:flex;flex-direction:column;gap:2px}.session-new-btn{display:flex;align-items:center;gap:6px;width:100%;padding:8px 12px;background:#ffffff0f;border:1px dashed rgba(255,255,255,.15);border-radius:var(--radius);color:#fff9;font-family:var(--font-body);font-size:13px;cursor:pointer;transition:background .15s,color .15s;margin-bottom:8px;flex-shrink:0}.session-new-btn:hover{background:#ffffff1a;color:#ffffffd9}.session-item-row{display:flex;align-items:center;position:relative}.session-item{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;padding:8px 12px;background:transparent;border:none;border-left:3px solid transparent;border-radius:0 var(--radius) var(--radius) 0;color:#fff9;font-family:var(--font-body);font-size:13px;text-align:left;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.session-item:hover{background:#ffffff0f;color:#ffffffd9}.session-item--active{border-left-color:var(--orange);background:#ffffff14;color:#fff}.session-item-title{font-weight:500;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-item-time{font-size:11px;color:#ffffff59}.session-item--active .session-item-time{color:#ffffff80}.session-delete-btn{background:transparent;border:none;color:#ffffff4d;font-size:16px;cursor:pointer;padding:2px 4px;line-height:1;opacity:0;transition:opacity .15s,color .15s;flex-shrink:0}.session-item-row:hover .session-delete-btn{opacity:1}.session-delete-btn:hover{color:#f87171}.session-list-empty{font-size:13px;color:#ffffff59;font-style:italic;padding:8px 0}.session-list-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:#ffffff80;padding:8px 0}.session-list-loading .loading-spinner{width:14px;height:14px;border-width:2px;border-color:#fff3;border-top-color:#ffffffb3}.project-item:focus-visible,.project-link-folder-btn:focus-visible,.project-switcher-option:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.folder-explorer-close-btn:focus-visible,.folder-explorer-nav-btn:focus-visible,.folder-explorer-breadcrumb-link:focus-visible,.folder-explorer-retry-btn:focus-visible,.folder-explorer-load-more-btn:focus-visible,.folder-explorer-select-btn:focus-visible,.folder-explorer-cancel-btn:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.folder-explorer-row:focus-visible{outline:2px solid var(--orange);outline-offset:-2px}.session-new-btn:focus-visible,.session-item:focus-visible{outline:2px solid var(--orange);outline-offset:-2px}.session-delete-btn:focus-visible{outline:2px solid var(--orange);outline-offset:1px;opacity:1}.message-pia-avatar{width:26px;height:26px;border-radius:6px;background:linear-gradient(135deg,#0a1628,#142240);display:flex;align-items:center;justify-content:center;flex-shrink:0}.message-pia-avatar svg{width:12px;height:12px}.message-assistant-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.message-assistant-name{font-weight:700;font-size:13px;color:#0f1923}.message-content{line-height:1.6;font-size:14px;color:#1a1a2e;word-break:break-word}.message-thinking-dots{display:flex;align-items:center;gap:7px;padding:4px 0}.message-thinking-dot{width:10px;height:10px;border-radius:50%;background:#1b6bc4;opacity:.35;animation:message-thinking-wave 1.4s ease-in-out infinite}.message-thinking-dot:nth-child(2){animation-delay:.16s}.message-thinking-dot:nth-child(3){animation-delay:.32s}@keyframes message-thinking-wave{0%,60%,to{transform:translateY(0);opacity:.35}30%{transform:translateY(-10px);opacity:1}}.retrieval-card{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:500;margin-bottom:8px;animation:retrieval-card-fadein .2s ease}@keyframes retrieval-card-fadein{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.retrieval-card--searching{background:#f0f4ff;color:#3b5bdb;border:1px solid #c5d2f6;background-size:200% 100%;background-image:linear-gradient(90deg,#f0f4ff,#dce6ff,#f0f4ff 80%);animation:retrieval-card-fadein .2s ease,retrieval-shimmer 1.6s ease-in-out infinite}@keyframes retrieval-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.retrieval-card-icon--searching{animation:retrieval-spin 1.2s linear infinite}@keyframes retrieval-spin{to{transform:rotate(360deg)}}.retrieval-card--found{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.retrieval-card--none{background:#f9fafb;color:#6b7280;border:1px solid #e5e7eb}.retrieval-card--unavailable{background:#fffbeb;color:#d97706;border:1px solid #fde68a}.retrieval-card-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.retrieval-card-text{white-space:nowrap;letter-spacing:.1px}@media (prefers-reduced-motion: reduce){.retrieval-card--searching{animation:retrieval-card-fadein .2s ease;background-image:none;background:#f0f4ff}.retrieval-card-icon--searching,.retrieval-card{animation:none}}.message-routing-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:4px;font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.2px}.message-routing-badge--flash{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.message-routing-badge--pro{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.message-cursor{display:inline-block;width:2px;height:14px;background:#1b6bc4;margin-left:1px;vertical-align:text-bottom;animation:message-cursor-blink .9s step-end infinite}@keyframes message-cursor-blink{0%,to{opacity:1}50%{opacity:0}}.message-sources{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid #edf2f7}.message-source-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:500;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-source-pill--document{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.message-source-pill--live{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.message-error-block{background:#fff1f2;border:1px solid #fecaca;border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:8px}.message-error-header{display:flex;align-items:center;gap:8px}.message-error-icon{width:28px;height:28px;background:#fee2e2;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.message-error-title{font-weight:700;font-size:13px;color:#be123c}.message-error-text{font-size:12px;color:#9f1239;line-height:1.5;margin:0}.new-chat-title-overlay{flex:1;display:flex;align-items:center;justify-content:center;padding:32px;background:#f5f7fa}.new-chat-title-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:40px 36px 32px;width:100%;max-width:480px;box-shadow:var(--shadow-md)}.new-chat-title-heading{font-family:var(--font-heading);font-size:20px;font-weight:700;color:var(--navy);margin-bottom:6px;letter-spacing:-.3px}.new-chat-title-hint{font-size:13px;color:#6b7280;line-height:1.5;margin-bottom:24px}.new-chat-title-form{display:flex;flex-direction:column;gap:0}.new-chat-title-input{width:100%;padding:11px 14px;border:1px solid #d1d5db;border-radius:var(--radius);font-family:var(--font-body);font-size:14px;color:var(--navy);outline:none;transition:border-color .15s,box-shadow .15s;background:#fff}.new-chat-title-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1b6bc41f}.new-chat-title-input::placeholder{color:#9ca3af}.new-chat-title-input:disabled{background:#f9fafb;color:#6b7280;cursor:not-allowed}.new-chat-title-char-count{font-size:11px;color:#9ca3af;text-align:right;margin-top:5px;margin-bottom:20px}.new-chat-title-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.new-chat-title-cancel-btn{padding:9px 18px;background:transparent;border:1px solid #d1d5db;border-radius:var(--radius);font-family:var(--font-body);font-size:14px;font-weight:500;color:#4b5563;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.new-chat-title-cancel-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af;color:#111827}.new-chat-title-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.new-chat-title-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 22px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius);font-family:var(--font-body);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.new-chat-title-btn:hover:not(:disabled){background:var(--blue-dark)}.new-chat-title-btn:disabled{opacity:.5;cursor:not-allowed}.new-chat-title-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.new-chat-title-input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.new-chat-title-btn:focus-visible,.new-chat-title-cancel-btn:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.session-new-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}@media (prefers-reduced-motion: reduce){.message-thinking-dot{animation:none;opacity:.7}.message-cursor{animation:none;opacity:1}}@keyframes ingestion-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}@keyframes ingestion-slide-down{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.ingestion-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 32px;font-size:13px;line-height:1.5;border-bottom:1px solid transparent;animation:ingestion-slide-down .22s ease;transition:opacity .4s ease}.ingestion-banner--fading{opacity:0}.ingestion-banner--active{background:#eff6ff;border-bottom-color:#bfdbfe;color:#1e40af}.ingestion-banner--complete{background:#f0fdf4;border-bottom-color:#bbf7d0;color:#15803d}.ingestion-banner--warning{background:#fffbeb;border-bottom-color:#fde68a;color:#92400e}.ingestion-banner--stale{background:#f9fafb;border-bottom-color:#e5e7eb;color:#4b5563}.ingestion-banner-body{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.ingestion-banner--active{align-items:flex-start}.ingestion-banner--active .ingestion-banner-body{flex-direction:column;align-items:stretch;gap:6px}.ingestion-banner-row{display:flex;align-items:center;gap:8px}.ingestion-progress-track{width:100%;height:5px;background:#bfdbfe;border-radius:9999px;overflow:hidden}.ingestion-progress-fill{position:relative;height:100%;background:#1b6bc4;border-radius:9999px;transition:width .6s ease}.ingestion-progress-failed{position:absolute;top:0;right:0;height:100%;background:#dc2626;border-radius:0 9999px 9999px 0}@media (prefers-reduced-motion: reduce){.ingestion-progress-fill{transition:none}.ingestion-banner{animation:none}.ingestion-banner-pulse{animation:none;opacity:.8}}.ingestion-banner-pulse{display:inline-block;flex-shrink:0;width:8px;height:8px;border-radius:50%;background:#1b6bc4;animation:ingestion-pulse 1.4s ease-in-out infinite}.ingestion-banner-icon{display:inline-block;flex-shrink:0;font-style:normal;font-size:13px;line-height:1}.ingestion-banner-dismiss{background:transparent;border:none;font-size:18px;line-height:1;padding:0 4px;cursor:pointer;opacity:.5;flex-shrink:0;transition:opacity .15s;color:inherit}.ingestion-banner-dismiss:hover{opacity:1}.ingestion-banner-dismiss:focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:2px}@media (prefers-reduced-motion: reduce){.ingestion-banner{animation:none}.ingestion-banner-pulse{animation:none;opacity:.8}.ingestion-banner--fading{display:none}}.message-content--markdown p{margin-bottom:.65em;line-height:1.6}.message-content--markdown p:last-child{margin-bottom:0}.message-content--markdown h1,.message-content--markdown h2,.message-content--markdown h3,.message-content--markdown h4{font-family:var(--font-heading);font-weight:600;color:var(--navy);margin-top:1em;margin-bottom:.4em;line-height:1.3}.message-content--markdown h1{font-size:1.2em}.message-content--markdown h2{font-size:1.1em}.message-content--markdown h3{font-size:1em}.message-content--markdown h4{font-size:.95em}.message-content--markdown h1:first-child,.message-content--markdown h2:first-child,.message-content--markdown h3:first-child,.message-content--markdown h4:first-child{margin-top:0}.message-content--markdown ul,.message-content--markdown ol{padding-left:1.4em;margin-bottom:.65em}.message-content--markdown ul:last-child,.message-content--markdown ol:last-child{margin-bottom:0}.message-content--markdown li{margin-bottom:.25em;line-height:1.55}.message-content--markdown li:last-child{margin-bottom:0}.message-content--markdown li>ul,.message-content--markdown li>ol{margin-top:.25em;margin-bottom:.25em}.message-content--markdown code{font-family:var(--font-mono);font-size:.85em;background:#f0f4f8;color:#1a5f7a;padding:.15em .4em;border-radius:4px;border:1px solid #d8e3ef}.message-content--markdown pre{background:#0f1923;border-radius:6px;padding:12px 14px;margin-bottom:.65em;overflow-x:auto;border:1px solid rgba(255,255,255,.06)}.message-content--markdown pre:last-child{margin-bottom:0}.message-content--markdown pre code{font-family:var(--font-mono);font-size:.82em;background:transparent;color:#cdd6f4;padding:0;border:none;border-radius:0}.message-content--markdown blockquote{margin:.5em 0 .65em;padding:8px 12px;border-left:3px solid var(--blue);background:var(--blue-light);border-radius:0 4px 4px 0;color:#374151;font-style:italic}.message-content--markdown blockquote p{margin-bottom:0}.message-content--markdown hr{border:none;border-top:1px solid #e5e7eb;margin:.8em 0}.message-content--markdown strong{font-weight:600;color:#111827}.message-content--markdown em{font-style:italic;color:#374151}.message-content--markdown table{width:100%;border-collapse:collapse;margin-bottom:.65em;font-size:13px}.message-content--markdown table:last-child{margin-bottom:0}.message-content--markdown th{background:#f0f4f8;font-weight:600;text-align:left;padding:7px 10px;border:1px solid #d8e3ef;color:var(--navy)}.message-content--markdown td{padding:6px 10px;border:1px solid #e5e7eb;vertical-align:top}.message-content--markdown tr:nth-child(2n) td{background:#f9fafb}.message-content--markdown .message-cursor{display:inline-block;vertical-align:middle;margin-left:1px}@keyframes source-modal-enter{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes source-modal-backdrop-enter{0%{opacity:0}to{opacity:1}}.source-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a16288c;display:flex;align-items:center;justify-content:center;z-index:900;padding:24px;animation:source-modal-backdrop-enter .18s ease}.source-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0a162838;width:100%;max-width:700px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;animation:source-modal-enter .22s cubic-bezier(.22,1,.36,1)}.source-modal-header{display:flex;align-items:flex-start;gap:12px;padding:18px 20px 14px;border-bottom:1px solid #e5e7eb;flex-shrink:0}.source-modal-header-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.source-modal-filename{font-family:var(--font-heading);font-size:14px;font-weight:600;color:var(--navy);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.source-modal-type-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;width:fit-content}.source-modal-type-badge--pdf{background:#fee2e2;color:#991b1b}.source-modal-type-badge--word{background:#dbeafe;color:#1e40af}.source-modal-type-badge--transcript{background:#f3e8ff;color:#6b21a8}.source-modal-type-badge--email{background:#fef3c7;color:#92400e}.source-modal-type-badge--text{background:#f0fdf4;color:#166534}.source-modal-type-badge--default{background:#f3f4f6;color:#374151}.source-modal-close-btn{background:transparent;border:none;padding:6px;cursor:pointer;color:#6b7280;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s,color .12s}.source-modal-close-btn:hover{background:#f3f4f6;color:var(--navy)}.source-modal-close-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.source-modal-content{flex:1;overflow-y:auto;padding:16px 20px;overscroll-behavior:contain}.source-modal-chunk-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.source-modal-chunk{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:12px 14px;transition:background .12s}.source-modal-chunk--matched{background:#eff6ff;border-color:#bfdbfe;border-left:3px solid var(--blue);padding-left:12px}.source-modal-chunk-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.source-modal-chunk-index{font-size:10px;font-weight:700;color:#9ca3af;letter-spacing:.3px;text-transform:uppercase}.source-modal-similarity{display:inline-flex;align-items:center;padding:1px 7px;border-radius:20px;font-size:10px;font-weight:600;background:#dbeafe;color:#1d4ed8;border:1px solid #bfdbfe}.source-modal-similarity--matched{background:#dcfce7;color:#15803d;border-color:#bbf7d0}.source-modal-chunk-text{font-size:12.5px;line-height:1.65;color:#374151;margin:0;white-space:pre-wrap;word-break:break-word}.source-modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;color:#6b7280;font-size:13px}.source-modal-spinner{width:28px;height:28px;border:3px solid #e5e7eb;border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite}.source-modal-error{padding:32px 24px;text-align:center;color:#be123c}.source-modal-error p{font-size:13px;margin:0 0 6px;font-weight:600}.source-modal-error-detail{font-size:12px;color:#9f1239;font-weight:400!important}.source-modal-empty{padding:32px 24px;text-align:center;color:#9ca3af;font-size:13px}.source-modal-footer{padding:12px 20px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;flex-shrink:0}.source-modal-workdrive-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#f8fafc;border:1px solid #d1d5db;border-radius:var(--radius);font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--navy);text-decoration:none;transition:background .12s,border-color .12s,color .12s}.source-modal-workdrive-btn:hover{background:var(--blue-light);border-color:var(--blue);color:var(--blue-dark)}.source-modal-workdrive-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.message-source-pill--clickable{cursor:pointer;background:none;font-family:var(--font-body);transition:background .12s,border-color .12s,color .12s}.message-source-pill--document.message-source-pill--clickable:hover{background:#dcfce7;border-color:#86efac}.message-source-pill--clickable:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.message-source-pill--clickable:active{transform:scale(.97)}.message-chart-container{margin-bottom:14px;border-radius:8px;overflow:hidden;border:1px solid #e5e7eb;max-width:100%;contain:layout style}.message-chart-container .chart-container{margin-top:0}.message-chart-loading{display:flex;align-items:center;gap:10px;padding:14px 16px;background:#f0f6ff;border:1px solid #bfdbfe;border-radius:8px;color:var(--blue);font-size:13px;font-weight:500;margin-bottom:12px;animation:retrieval-shimmer 1.6s ease-in-out infinite}.message-chart-loading-icon{display:flex;align-items:center;flex-shrink:0}@media (prefers-reduced-motion: reduce){.source-modal,.source-modal-backdrop{animation:none}.source-modal-spinner{animation:none;opacity:.6}.message-chart-loading{animation:none}.message-source-pill--clickable:active{transform:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.chart-container{background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius);padding:16px;margin-top:12px;box-shadow:var(--shadow-sm);max-width:100%;overflow:hidden}.chart-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.chart-title{font-family:var(--font-heading);font-size:14px;font-weight:600;color:var(--navy);margin:0;letter-spacing:-.2px;line-height:1.3}.chart-body{width:100%;overflow:hidden}.chart-body svg{max-width:100%}.chart-empty-state{padding:32px 16px;text-align:center;color:#9ca3af;font-size:13px}.chart-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.chart-action-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;background:transparent;border:1px solid #d1d5db;border-radius:6px;font-family:var(--font-body);font-size:11px;font-weight:500;color:#6b7280;cursor:pointer;transition:background .14s,border-color .14s,color .14s;white-space:nowrap}.chart-action-btn:hover{background:#f3f4f6;border-color:#9ca3af;color:#374151}.chart-action-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.chart-action-btn:active{background:#e5e7eb}.chart-action-btn--icon{padding:5px 7px}.chart-download-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius);box-shadow:var(--shadow-md);min-width:160px;z-index:20;overflow:hidden;animation:chart-fadein .12s ease}.chart-download-option{display:block;width:100%;padding:9px 14px;background:transparent;border:none;font-family:var(--font-body);font-size:13px;color:#374151;text-align:left;cursor:pointer;transition:background .12s}.chart-download-option:hover{background:#f3f4f6;color:#111827}.chart-download-option:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.chart-download-dropdown-wrapper{display:flex;align-items:center;gap:4px}.chart-tooltip{position:fixed;pointer-events:none;background:#0a1628e0;color:#fff;font-family:var(--font-body);font-size:12px;line-height:1.5;padding:7px 10px;border-radius:6px;box-shadow:0 4px 12px #0000002e;z-index:9000;max-width:200px;transition:opacity .1s ease}.chart-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:10px;padding-top:8px;border-top:1px solid #f0f0f0}.chart-legend-item{display:flex;align-items:center;gap:6px}.chart-legend-swatch{display:inline-block;width:10px;height:10px;border-radius:3px;flex-shrink:0}.chart-legend-label{font-size:11px;color:#4b5563;font-family:var(--font-body)}.chart-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a162899;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;animation:chart-backdrop-enter .18s ease}.chart-modal{background:#fff;border-radius:12px;box-shadow:0 24px 72px #0a162847;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:chart-modal-enter .22s cubic-bezier(.22,1,.36,1)}.chart-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px 16px;border-bottom:1px solid #e5e7eb;flex-shrink:0}.chart-modal-title-group{flex:1;min-width:0}.chart-modal-title{font-family:var(--font-heading);font-size:16px;font-weight:700;color:var(--navy);margin:0 0 4px;letter-spacing:-.3px;line-height:1.3}.chart-modal-description{font-size:12px;color:#6b7280;margin:0;line-height:1.5}.chart-modal-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.chart-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;color:#6b7280;transition:background .12s,color .12s,border-color .12s}.chart-modal-close:hover{background:#fee2e2;border-color:#fca5a5;color:#dc2626}.chart-modal-close:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.chart-modal-body{flex:1;overflow-y:auto;padding:20px 24px;overscroll-behavior:contain}@keyframes chart-fadein{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes chart-backdrop-enter{0%{opacity:0}to{opacity:1}}@keyframes chart-modal-enter{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes chart-bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes chart-arc-spin{0%{transform:rotate(-90deg);opacity:0}to{transform:rotate(0);opacity:1}}@media (prefers-reduced-motion: reduce){.chart-modal,.chart-modal-backdrop,.chart-download-dropdown{animation:none}.chart-tooltip{transition:none}}
