:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@property --angle{syntax: "<angle>"; initial-value: 53deg; inherits: false;}:root{--elevation-level-1-dark: #151d28;--elevation-level-2-dark: #1d2837;--elevation-level-3-dark: #243247;--elevation-level-4-dark: #2c3d56;--elevation-level-5-dark: #344865;--elevation-level-1-light: #e3e7eb;--elevation-level-2-light: #d4d8db;--elevation-level-3-light: #c5c8cc;--elevation-level-4-light: #b6b9bc;--elevation-level-5-light: #a7aaad;--dark-info-color: #008BD7;--light-info-color: #009CE7;--dark-success-color: #29903B;--light-success-color: #1C8139;--dark-warning-color: #E3B341;--light-warning-color: #EAC54F;--dark-danger-color: #B62324;--light-danger-color: #A40E26;--dark-text-color: #EFEFF6;--light-text-color: #27313f;--brand-color-light: #756CB1;--brand-color-dark: #795EA9;--brand-color-extra-light: #A69BF5;--brand-gradient: linear-gradient(135deg, #756CB1 0%, #795EA9 100%);--color-border-gradient: linear-gradient(135deg, #756CB1 0%, #795EA9 100%)}html[data-theme=light]{--color-bg: var(--elevation-level-1-light);--color-fg: var(--light-text-color);--color-border: var(--elevation-level-3-light);--color-error: var(--light-danger-color)}html[data-theme=dark],html{--color-bg: var(--elevation-level-1-dark);--color-fg: var(--dark-text-color);--color-border: var(--elevation-level-3-dark);--color-error: var(--dark-danger-color)}.app{height:100vh;width:100%}.chat-container{max-width:none;margin:0;padding:0;height:100vh;width:100vw;display:flex;flex-direction:column}.chat-layout{display:flex;height:100vh;width:100%;background:var(--color-bg);color:var(--color-fg);overflow:hidden}.chat-layout{max-width:none!important;width:100vw!important;margin:0!important;padding:0!important}.chat-main{flex:1;display:flex;flex-direction:column;background-color:var(--color-bg);border:none;outline:none;overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:20px;margin-bottom:0;display:flex;flex-direction:column;gap:15px;background-color:var(--color-bg);border:none;outline:none;align-items:center}.messages-container{max-width:60em;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:15px;padding-bottom:3rem}.landing-page{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;text-align:center;gap:40px}.chat-input-container{padding:20px;border-top:none;background:transparent;position:relative;display:flex;flex-direction:column;align-items:center;overflow:visible}.chat-input-container:before{content:"";position:absolute;top:-60px;left:0;right:0;height:60px;background:linear-gradient(to bottom,transparent,var(--elevation-level-1-dark));pointer-events:none;z-index:1}.knowledge-base-content{padding:40px;width:100%;height:100%;overflow-y:auto;display:flex;flex-direction:column;align-items:center;box-sizing:border-box}.knowledge-base-content.centered{justify-content:center}.knowledge-base-inner{max-width:1200px;width:100%;box-sizing:border-box}.libraries-content{padding:40px;width:100%;height:100%;overflow-y:auto;display:flex;flex-direction:column;align-items:center;box-sizing:border-box}.libraries-inner{max-width:1200px;width:100%;box-sizing:border-box}.library-detail-content{padding:40px;width:100%;height:100%;overflow-y:auto;display:flex;flex-direction:column;align-items:center;box-sizing:border-box}.library-detail-inner{max-width:1200px;width:100%;box-sizing:border-box}.chat-header{display:flex;justify-content:flex-end;padding:15px 20px;border-bottom:1px solid var(--color-border);background-color:var(--elevation-level-2-dark)}.header-actions{display:flex;gap:10px}.knowledge-base-header{text-align:center;margin-bottom:32px}.libraries-header{text-align:center;margin-bottom:48px}.knowledge-base-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:32px}.libraries-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.libraries-section{margin-bottom:56px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}.library-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:40px;gap:24px;flex-wrap:wrap}.library-header-main{display:flex;align-items:flex-start;gap:20px;flex:1;min-width:0}.library-header-info{flex:1;min-width:0}.library-title-row{display:flex;align-items:center;gap:16px;margin-bottom:12px;flex-wrap:wrap}.library-badges{display:flex;gap:8px;flex-wrap:wrap}.library-actions{display:flex;gap:1rem;flex-shrink:0}.breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:32px;color:var(--color-fg);opacity:.7;font-size:.875rem}.files-section{margin-bottom:32px}.files-header{margin-bottom:24px}.files-table{background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.files-table-header{display:grid;grid-template-columns:1fr auto auto auto auto;gap:16px;padding:16px 20px;background:var(--elevation-level-3-dark);border-bottom:1px solid var(--color-border)}.files-table-body{max-height:600px;overflow-y:auto}.file-row{display:grid;grid-template-columns:1fr auto auto auto auto;gap:16px;padding:16px 20px;border-bottom:1px solid var(--color-border);transition:background-color .2s}.file-row:hover{background:var(--elevation-level-3-dark)}.file-row:last-child{border-bottom:none}.file-cell{display:flex;align-items:center;color:var(--color-fg);font-size:.875rem;min-width:0}.file-name-cell{gap:12px;min-width:200px}.file-name-info{display:flex;flex-direction:column;min-width:0}.file-actions{display:flex;gap:.75rem;justify-content:flex-end}.upload-progress-section{margin-bottom:32px;background:var(--dark-bg-secondary);border:1px solid var(--dark-border);border-radius:12px;padding:24px}.upload-queue{display:flex;flex-direction:column;gap:16px}.upload-item{background:var(--dark-bg);border:1px solid var(--dark-border);border-radius:8px;padding:16px;transition:all .2s ease}.upload-item-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.upload-file-name{display:flex;align-items:center;gap:8px;flex:1;min-width:0}@media (max-width: 768px){.chat-main{margin-left:0}.knowledge-base-content,.libraries-content,.library-detail-content{padding:16px}.knowledge-base-sections,.libraries-grid{grid-template-columns:1fr;gap:16px}.library-header{flex-direction:column;align-items:stretch}.library-header-main{flex-direction:column;align-items:center;text-align:center}.library-title-row{justify-content:center}.library-actions{align-self:stretch;justify-content:center}.section-header{flex-direction:column;align-items:stretch;gap:12px}.files-table-header,.file-row{grid-template-columns:1fr auto auto;gap:8px}.file-cell:nth-child(2),.file-cell:nth-child(3),.table-header-cell:nth-child(2),.table-header-cell:nth-child(3){display:none}.file-name-cell{min-width:0}.file-name-info{display:flex;flex-direction:column;gap:4px;min-width:0}.upload-progress-section{padding:16px;margin-bottom:24px}.upload-item{padding:12px}.upload-item-info{flex-direction:column;align-items:flex-start;gap:8px}.upload-file-name .file-name{max-width:200px}.libraries-header{margin-top:32px}}@media (max-width: 480px){.knowledge-base-content,.libraries-content,.library-detail-content{padding:12px}.files-table-header,.file-row{padding:12px 16px}.library-title-row{flex-direction:column;gap:8px}}.chat-button{padding:12px 24px;background-color:#007bff;color:#fff;border:none;border-radius:8px;font-size:16px;cursor:pointer;transition:background-color .2s}.chat-button:hover:not(:disabled){background-color:#0056b3}.chat-button:disabled{background-color:#6c757d;cursor:not-allowed}.chat-nav-button{padding:20px 60px;background-color:#007bff;color:#fff;border:none;border-radius:12px;font-size:20px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px #007bff4d}.chat-nav-button:hover{background-color:#0056b3;transform:translateY(-2px);box-shadow:0 6px 12px #007bff66}.top-nav-button{background:none;border:none;padding:8px;border-radius:6px;cursor:pointer;transition:background-color .2s;display:flex;align-items:center;justify-content:center;color:var(--color-fg)}.top-nav-button:hover{background-color:var(--elevation-level-3-dark)}.mobile-menu-button{position:fixed;top:16px;right:16px;z-index:1001;background:none;border:none;padding:12px;cursor:pointer;color:var(--color-fg);transition:opacity .2s}.mobile-menu-button:hover{opacity:.7}.mobile-menu-button.hidden{display:none!important}.send-button{background:var(--elevation-level-3-dark);color:var(--color-fg);border:1px solid rgba(255,255,255,.3);border-radius:50%;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:all .2s;box-sizing:border-box;flex-shrink:0;padding:0;margin:0}.send-button svg{color:var(--color-fg);stroke:var(--color-fg);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.send-button:hover:not(:disabled){background:var(--elevation-level-4-dark);border:1px solid rgba(255,255,255,.5);transform:translateY(-1px)}.send-button:disabled{background-color:var(--elevation-level-4-dark);color:var(--color-fg);opacity:.5;cursor:not-allowed;transform:none}.action-icon{background:none;border:none;font-size:18px;color:var(--color-fg);cursor:pointer;padding:6px;border-radius:50%;transition:background-color .2s}.action-icon:hover{background-color:var(--elevation-level-4-dark)}.header-icon{background:none;border:none;font-size:18px;color:var(--color-fg);cursor:pointer;padding:8px;border-radius:6px;transition:background-color .2s}.header-icon:hover{background-color:var(--elevation-level-3-dark)}.scroll-down-btn{position:absolute;top:-15px;left:50%;transform:translate(-50%);background-color:var(--elevation-level-3-dark);border:1px solid var(--color-border);border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;color:var(--color-fg);box-shadow:0 2px 4px #0000004d}.scroll-down-btn:hover{background-color:var(--elevation-level-4-dark)}.login-button{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;background:var(--brand-gradient);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;margin-top:8px}.login-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #795ea94d}.login-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--color-fg);opacity:.6;cursor:pointer;padding:4px;border-radius:4px;transition:opacity .2s,background-color .2s;z-index:1}.password-toggle:hover:not(:disabled){opacity:1;background:var(--elevation-level-4-dark)}.password-toggle:disabled{cursor:not-allowed}.refresh-button{background:none;border:none;color:var(--color-fg);opacity:.6;cursor:pointer;padding:4px;border-radius:4px;transition:opacity .2s,background-color .2s;display:flex;align-items:center;justify-content:center}.refresh-button:hover:not(:disabled){opacity:1;background:var(--elevation-level-4-dark)}.refresh-button:disabled{cursor:not-allowed}.upload-button{background:var(--brand-gradient);color:#fff;border:none;border-radius:8px;padding:12px 32px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #795ea933}.upload-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #795ea94d}.upload-btn{background:var(--brand-gradient);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #795ea933;display:inline-block;text-decoration:none}.upload-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #795ea94d}.create-library-btn{display:flex;align-items:center;gap:8px;background:var(--brand-gradient);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #795ea933}.create-library-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #795ea94d}.action-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.action-btn.primary{background:var(--brand-gradient);color:#fff;box-shadow:0 2px 8px #795ea933}.action-btn.primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #795ea94d}.action-btn.secondary{background:var(--elevation-level-3-dark);color:var(--color-fg);border:1px solid var(--color-border)}.action-btn.secondary:hover{background:var(--elevation-level-4-dark)}.file-action-btn{background:none;border:none;color:var(--color-fg);opacity:.6;cursor:pointer;padding:6px;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.file-action-btn:hover{opacity:1;background:var(--elevation-level-4-dark)}.file-action-btn.delete:hover{background:#b623241a;color:var(--dark-danger-color)}.modal-close-btn{background:none;border:none;color:var(--color-fg);opacity:.6;cursor:pointer;padding:8px;border-radius:6px;transition:all .2s;display:flex;align-items:center;justify-content:center}.modal-close-btn:hover:not(:disabled){opacity:1;background:var(--elevation-level-3-dark)}.modal-close-btn:disabled{cursor:not-allowed}.modal-btn{padding:10px 20px;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.modal-btn.secondary{background:var(--elevation-level-3-dark);color:var(--color-fg);border:1px solid var(--color-border)}.modal-btn.secondary:hover{background:var(--elevation-level-4-dark)}.modal-btn.danger{background:var(--dark-danger-color);color:#fff}.modal-btn.danger:hover{background:var(--light-danger-color);transform:translateY(-1px)}.modal-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.modal-btn:disabled:hover{transform:none!important}.cancel-btn{padding:12px 24px;background:none;border:1px solid var(--color-border);border-radius:8px;color:var(--color-fg);font-size:.9rem;cursor:pointer;transition:all .2s}.cancel-btn:hover:not(:disabled){background:var(--elevation-level-3-dark)}.cancel-btn:disabled{opacity:.6;cursor:not-allowed}.create-btn{padding:12px 24px;background:var(--brand-gradient);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #795ea933}.create-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #795ea94d}.create-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.breadcrumb-link{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--brand-color-extra-light);cursor:pointer;padding:4px 8px;border-radius:4px;transition:background-color .2s;font-size:.875rem}.breadcrumb-link:hover{background:var(--elevation-level-3-dark)}.grant-permission-btn{width:100%;padding:12px;background:var(--brand-color);border:none;border-radius:8px;color:#fff;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.grant-permission-btn:hover:not(:disabled){background:var(--brand-color-light);transform:translateY(-1px)}.grant-permission-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.revoke-permission-btn{background:none;border:none;color:var(--dark-danger-color);padding:6px;cursor:pointer;border-radius:4px;transition:all .2s}.revoke-permission-btn:hover{background:#b623241a;transform:scale(1.05)}.clear-selection-btn{background:none;border:none;color:var(--color-fg);opacity:.7;padding:4px;cursor:pointer;border-radius:4px;transition:all .2s}.clear-selection-btn:hover{opacity:1;background:var(--elevation-level-3-dark)}.error-fallback button{background:var(--brand-color-light);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:.95rem;cursor:pointer;transition:background .2s ease}.error-fallback button:hover{background:var(--dark-primary-hover)}.upload-btn.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}@media (max-width: 768px){.mobile-only{display:block!important}.desktop-only{display:none!important}.modal-actions{flex-direction:column}.cancel-btn,.create-btn{width:100%;justify-content:center}.create-library-btn,.library-actions{align-self:stretch;justify-content:center}}@media (min-width: 769px){.mobile-only{display:none!important}.desktop-only{display:block!important}}.chat-input-form{display:flex;align-items:center;background:transparent;border:none;padding:0;gap:0;max-width:60em;width:100%;position:relative}.login-form{display:flex;flex-direction:column;gap:20px}.modal-form{padding:0 24px 24px;display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:.875rem;font-weight:500;color:var(--color-fg);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.chat-input{flex:1;border:none;outline:none;font-size:16px;background:var(--elevation-level-2-dark);color:var(--color-fg);border:1px solid var(--color-border);border-radius:25px;padding:14px 50px 18px 16px;resize:none;font-family:inherit;line-height:1.4;min-height:48px;max-height:120px;overflow-y:auto;box-sizing:border-box;vertical-align:middle}.chat-input::-webkit-scrollbar{display:none}.chat-input{-ms-overflow-style:none;scrollbar-width:none}.chat-input::placeholder{color:var(--color-fg);opacity:.6}.chat-input:focus{outline:none;border-color:var(--elevation-level-4-dark);box-shadow:0 0 8px 2px #795ea926}.chat-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-group input{padding:12px 16px;border:1px solid var(--color-border);border-radius:8px;background:var(--elevation-level-3-dark);color:var(--color-fg);font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:var(--elevation-level-4-dark);box-shadow:0 0 8px 2px #795ea926}.form-group input::placeholder{color:var(--color-fg);opacity:.5}.form-group input:disabled{opacity:.6;cursor:not-allowed}.password-input-container{position:relative;width:100%}.password-input-container input{width:100%;padding-right:40px;box-sizing:border-box}.form-input,.form-textarea{padding:12px 16px;border:1px solid var(--color-border);border-radius:8px;background:var(--elevation-level-3-dark);color:var(--color-fg);font-size:.9rem;transition:border-color .2s,box-shadow .2s;font-family:inherit}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--brand-color-light);box-shadow:0 0 8px 2px #795ea926}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-fg);opacity:.5}.form-input:disabled,.form-textarea:disabled{opacity:.6;cursor:not-allowed}.form-input.error,.form-textarea.error{border-color:var(--dark-danger-color)}.form-textarea{resize:vertical;min-height:80px}.search-input{width:100%;padding:12px 16px 12px 44px;background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:8px;color:var(--color-fg);font-size:.9rem;box-sizing:border-box}.search-input:focus{outline:none;border-color:var(--brand-color-light);box-shadow:0 0 0 2px #8b5cf61a}.search-input-container{position:relative;margin-bottom:12px}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-fg);opacity:.5}.search-loading{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:.8rem;color:var(--color-fg);opacity:.7}.model-selector{background:none;border:none;color:var(--color-fg);font-size:14px;padding:4px 8px;border-radius:12px;background-color:var(--elevation-level-4-dark);cursor:pointer}.permission-select{width:100%;padding:10px 12px;background:var(--elevation-level-1-dark);border:1px solid var(--color-border);border-radius:6px;color:var(--color-fg);font-size:.9rem;cursor:pointer}.permission-select.small{width:auto;min-width:100px;padding:6px 10px;font-size:.8rem}.permission-select:focus{outline:none;border-color:var(--brand-color-light);box-shadow:0 0 0 2px #8b5cf61a}.input-actions{position:absolute;right:8px;bottom:10px;z-index:1}.error-message{color:var(--dark-danger-color);font-size:.75rem;margin-top:4px}.character-count{color:var(--color-fg);opacity:.5;font-size:.75rem;text-align:right}.submit-error{background:#b623241a;border:1px solid rgba(182,35,36,.3);border-radius:8px;padding:12px 16px;color:var(--dark-danger-color);font-size:.875rem}.login-error{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#b623241a;border:1px solid rgba(182,35,36,.3);border-radius:8px;color:var(--dark-danger-color);font-size:.875rem}.search-error{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#b623241a;border:1px solid var(--dark-danger-color);border-radius:6px;color:var(--dark-danger-color);font-size:.85rem;margin-bottom:12px}.privacy-toggle{display:flex;flex-direction:column;gap:8px}.privacy-option{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border:1px solid var(--color-border);border-radius:8px;background:var(--elevation-level-3-dark);cursor:pointer;transition:all .2s}.privacy-option:hover{background:var(--elevation-level-4-dark)}.privacy-option.active{border-color:var(--brand-color-extra-light);background:#795ea91a}.privacy-option svg{margin-top:2px;flex-shrink:0;color:var(--color-fg);opacity:.7}.privacy-option.active svg{color:var(--brand-color-extra-light);opacity:1}.privacy-option>div{flex:1}.privacy-title{display:block;color:var(--color-fg);font-weight:500;margin-bottom:2px}.privacy-subtitle{display:block;color:var(--color-fg);opacity:.6;font-size:.8rem}.privacy-option.active .privacy-title{color:var(--brand-color-extra-light)}.permission-selection{margin-bottom:20px}.permission-selection label{display:block;margin-bottom:8px;color:var(--color-fg);font-size:.9rem;font-weight:500}@media (max-width: 768px){.chat-input{font-size:16px}.modal-actions{flex-direction:column}.cancel-btn,.create-btn{width:100%;justify-content:center}}@media (max-width: 480px){.form-group{gap:6px}.form-input,.form-textarea,.form-group input{font-size:16px}}.chat-sidebar{width:280px;background-color:var(--elevation-level-2-dark);border-right:1px solid var(--color-border);display:flex;flex-direction:column;transition:width .3s ease}.chat-sidebar.collapsed{width:60px}.sidebar-top{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--color-border)}.chat-sidebar.collapsed .sidebar-top{justify-content:center}.sidebar-header{margin-bottom:30px;padding:20px 20px 0}.chat-sidebar.collapsed .sidebar-header{padding:20px 10px 0}.sidebar-header{margin-bottom:30px}.sidebar-nav{display:flex;flex-direction:column;gap:10px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background-color .2s;color:var(--color-fg)}.nav-item:hover{background-color:var(--elevation-level-3-dark)}.chat-sidebar.collapsed .nav-item{justify-content:center;padding:10px}.nav-icon{font-size:18px}.nav-item.active{background-color:var(--elevation-level-3-dark);color:var(--brand-color-extra-light)}.nav-item.active .nav-icon{color:var(--brand-color-extra-light)}.preview-tag{background-color:var(--dark-success-color);color:#fff;padding:2px 8px;border-radius:12px;font-size:.75rem;margin-left:auto}.sidebar-content{flex:1;padding:0 20px 20px}.today-section{display:flex;flex-direction:column;gap:.5rem}.today-section h3{color:var(--color-fg);font-size:.875rem;font-weight:600;text-transform:uppercase;margin-bottom:8px;opacity:.7}.search-tip{padding:8px 12px;background-color:var(--elevation-level-3-dark);border-radius:8px;margin-bottom:8px;cursor:pointer;transition:background-color .2s;color:var(--color-fg);font-size:.875rem}.search-tip:hover{background-color:var(--elevation-level-4-dark)}.chat-history-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background-color:var(--elevation-level-3-dark);border-radius:8px;margin-bottom:8px;cursor:pointer;transition:background-color .2s;color:var(--color-fg)}.chat-history-item:hover{background-color:var(--elevation-level-4-dark)}.dots{color:var(--color-fg);font-size:18px;opacity:.6}.sidebar-footer{margin-top:auto;padding:20px;border-top:1px solid var(--color-border);text-align:center;font-size:.875rem;color:var(--color-fg);opacity:.7}.upgrade-link{color:var(--dark-info-color);text-decoration:none;font-weight:500}.upgrade-link:hover{text-decoration:underline}.quick-action-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:var(--elevation-level-3-dark);border-radius:8px;cursor:pointer;transition:background-color .2s;color:var(--color-fg);font-size:.875rem}.quick-action-item:hover{background-color:var(--elevation-level-4-dark)}.action-icon{display:flex;align-items:center;justify-content:center;color:var(--brand-color-light)}@media (max-width: 768px){.sidebar-top,.chat-sidebar.collapsed .sidebar-top{justify-content:space-between}.chat-sidebar{position:fixed;top:0;left:0;height:100vh;z-index:1000;transform:translate(-100%);transition:transform .3s ease;width:280px}.chat-sidebar.collapsed{transform:translate(-100%)}.chat-sidebar:not(.collapsed){transform:translate(0)}.chat-sidebar:not(.collapsed):before{content:"";position:fixed;inset:0 0 0 280px;background:#00000080;z-index:-1}}@media (min-width: 769px){.chat-sidebar{position:relative;transform:none}.chat-sidebar.collapsed{width:60px;transform:none}}.chat-container h1{text-align:center;color:#333;margin-bottom:20px;font-size:2rem}.message{display:flex;align-items:flex-start;max-width:70%;gap:10px;padding:12px 16px;border-radius:18px;line-height:1.4;word-wrap:break-word;margin-bottom:15px}.user-message{align-self:flex-end;flex-direction:row-reverse;background-color:var(--elevation-level-2-dark);border:1px solid var(--color-border);color:var(--color-fg);text-align:left}.ai-message{align-self:flex-start;background:none;border:none;padding:0;color:var(--color-fg);opacity:.95}.ai-message .ai-icon{flex-shrink:0;margin-top:1px}.ai-message span:last-child{flex:1;line-height:1.5}.ai-message .react-markdown{margin:0;padding:0}.ai-message .react-markdown p{margin:0!important;padding:0}.ai-message .react-markdown p:not(:last-child){margin-bottom:8px!important}.ai-icon{font-size:20px;flex-shrink:0;width:30px;display:flex;align-items:center;justify-content:center}.ai-icon svg{display:block;vertical-align:middle}.invisible-icon{visibility:hidden}.message.error-message{opacity:.7}.message.error-message span{color:var(--color-fg)!important;font-size:1rem!important;line-height:1.5}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:var(--elevation-level-2-dark);border-radius:4px}.chat-messages::-webkit-scrollbar-thumb{background:var(--elevation-level-4-dark);border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:var(--elevation-level-5-dark)}.chat-health-notification{align-self:stretch;margin-bottom:16px;box-shadow:0 4px 12px #00000026;transition:opacity .5s ease-out}@media (max-width: 768px){.chat-health-notification{margin-top:60px}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:var(--color-bg);color:var(--color-fg);gap:16px}.loading-spinner{width:32px;height:32px;border:3px solid var(--elevation-level-3-dark);border-top:3px solid var(--brand-color-light);border-radius:50%;animation:spin 1s linear infinite}.loading-container p{margin:0;font-size:.875rem;opacity:.7}.library-loading,.files-loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px 20px;color:var(--color-fg);opacity:.7}.libraries-loading{display:contents}.permissions-loading{text-align:center;padding:20px;color:var(--color-fg);opacity:.7}.skeleton-card{background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden}.skeleton-card:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%);animation:shimmer 2s infinite;z-index:1}.skeleton-header{display:flex;align-items:center;gap:12px}.skeleton-icon{width:40px;height:40px;background:var(--elevation-level-1-dark);border-radius:8px;flex-shrink:0}.skeleton-title{height:20px;background:var(--elevation-level-1-dark);border-radius:4px;flex:1;max-width:200px}.skeleton-description{height:16px;background:var(--elevation-level-1-dark);border-radius:4px;margin:4px 0}.skeleton-description.short{width:80%}.skeleton-metadata{display:flex;align-items:center;gap:8px;margin-top:8px}.skeleton-meta-item{height:12px;background:var(--elevation-level-1-dark);border-radius:4px}.skeleton-meta-item.medium{width:60px}.skeleton-meta-item.long{width:120px}.skeleton-library-header{background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:12px;padding:24px;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;position:relative;overflow:hidden}.skeleton-library-header:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%);animation:shimmer 2s infinite;z-index:1}.skeleton-library-main{display:flex;gap:20px;flex:1}.skeleton-library-icon-large{width:56px;height:56px;background:var(--elevation-level-1-dark);border-radius:12px;flex-shrink:0}.skeleton-library-info{flex:1;display:flex;flex-direction:column;gap:16px}.skeleton-library-title-row{display:flex;align-items:center;gap:12px}.skeleton-library-title{height:28px;width:250px;background:var(--elevation-level-1-dark);border-radius:6px}.skeleton-library-badges{display:flex;gap:8px}.skeleton-badge{height:20px;width:60px;background:var(--elevation-level-1-dark);border-radius:10px}.skeleton-library-description{height:16px;width:400px;background:var(--elevation-level-1-dark);border-radius:4px}.skeleton-library-stats{display:flex;align-items:center;gap:8px}.skeleton-stat{height:14px;background:var(--elevation-level-1-dark);border-radius:4px}.skeleton-stat.short{width:50px}.skeleton-stat.medium{width:80px}.skeleton-stat.long{width:120px}.skeleton-library-actions{display:flex;gap:12px}.skeleton-action-btn{height:36px;width:100px;background:var(--elevation-level-1-dark);border-radius:8px}.skeleton-files-table{background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.skeleton-file-row{display:grid;grid-template-columns:1fr auto auto auto auto;padding:16px 20px;border-bottom:1px solid var(--color-border);position:relative;overflow:hidden}.skeleton-file-row:last-child{border-bottom:none}.skeleton-file-row:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.05) 50%,transparent 100%);animation:shimmer 2.5s infinite;z-index:1}.skeleton-file-name-cell{display:flex;align-items:center;gap:12px}.skeleton-file-icon{width:24px;height:24px;background:var(--elevation-level-1-dark);border-radius:4px;flex-shrink:0}.skeleton-file-name{height:16px;width:180px;background:var(--elevation-level-1-dark);border-radius:4px}.skeleton-file-cell{display:flex;align-items:center}.skeleton-file-size{height:16px;width:60px;background:var(--elevation-level-1-dark);border-radius:4px}.skeleton-file-date{height:16px;width:100px;background:var(--elevation-level-1-dark);border-radius:4px}.skeleton-file-actions{display:flex;gap:8px;align-items:center}.skeleton-action-icon{width:32px;height:32px;background:var(--elevation-level-1-dark);border-radius:6px}@keyframes shimmer{0%{left:-100%}to{left:100%}}.animate-spin{animation:spin 1s linear infinite}@media (max-width: 768px){.skeleton-library-header{flex-direction:column;align-items:stretch}.skeleton-library-actions{align-self:stretch;justify-content:center}.skeleton-file-row{grid-template-columns:1fr auto auto;gap:8px}.skeleton-file-name{width:200px}}.modal-backdrop{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;box-sizing:border-box}.modal-container{background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0006;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 0;border-bottom:1px solid var(--color-border);margin-bottom:24px}.modal-title{display:flex;align-items:center;gap:12px;color:var(--color-fg)}.modal-title svg{color:var(--brand-color-light)}.modal-title h2{font-size:1.25rem;font-weight:600;margin:0}.modal-body{padding:0 20px 20px}.modal-body p{margin:0 0 12px;color:var(--color-fg);line-height:1.5}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:20px;border-top:1px solid var(--color-border)}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.delete-confirmation-modal{max-width:420px}.delete-confirmation-modal .modal-header{padding:20px 20px 0;border-bottom:none;margin-bottom:0}.delete-confirmation-modal .modal-header h2{font-size:1.125rem;font-weight:600;margin:0;color:var(--color-fg)}.delete-warning{color:var(--color-fg);opacity:.7;font-size:.875rem;margin-top:8px;margin-bottom:0}.share-modal{width:100%;max-width:600px;max-height:80vh;overflow-y:auto}.library-info{margin-bottom:32px;padding:20px;background:var(--elevation-level-2-dark);border-radius:8px;border-left:4px solid var(--brand-color-light)}.library-info h3{margin:0 0 8px;color:var(--color-fg);font-size:1.25rem;font-weight:600}.library-info p{margin:0;color:var(--color-fg);opacity:.7;font-size:.9rem}.add-user-section,.existing-permissions-section{margin-bottom:32px}.add-user-section h4,.existing-permissions-section h4{margin:0 0 16px;color:var(--color-fg);font-size:1.1rem;font-weight:600}.search-results{background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:8px;max-height:200px;overflow-y:auto}.search-result-item{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background-color .2s}.search-result-item:hover{background:var(--elevation-level-3-dark)}.search-result-item:not(:last-child){border-bottom:1px solid var(--color-border)}.user-info .user-name{color:var(--color-fg);font-weight:500;font-size:.9rem}.user-info .user-email{color:var(--color-fg);opacity:.7;font-size:.8rem;margin-top:2px}.selected-user{padding:20px;background:var(--elevation-level-2-dark);border-radius:8px;border:1px solid var(--brand-color-light)}.user-selection{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.selected-user-info{display:flex;align-items:center;gap:12px}.no-permissions{text-align:center;padding:40px 20px;color:var(--color-fg);opacity:.7}.permissions-list{space-y:1px}.permission-item{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:8px;margin-bottom:8px}.permission-item:last-child{margin-bottom:0}.permission-item .user-info{display:flex;align-items:center;gap:12px;flex:1}.permission-controls{display:flex;align-items:center;gap:12px}.permissions-error{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--dark-danger-color);opacity:1;text-align:center;padding:20px}@media (max-width: 768px){.modal-backdrop{padding:16px}.modal-container{max-height:95vh}.modal-header{padding:20px 20px 0}.modal-form{padding:0 20px 20px}.modal-actions{flex-direction:column}}@media (max-width: 480px){.modal-backdrop{padding:12px}.modal-header{padding:16px 16px 0}.modal-form{padding:0 16px 16px}.modal-title h2{font-size:1.125rem}}.service-health-notification{background:var(--elevation-level-2-dark);border:1px solid var(--elevation-level-3-dark);border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:.875rem;transition:all .2s ease}.service-health-notification.status-healthy{border-color:#10b981;background:#10b9811a}.service-health-notification.status-unhealthy{border-color:#ef4444;background:#ef44441a}.service-health-notification.status-loading{border-color:#f59e0b;background:#f59e0b1a}.notification-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.status-info{display:flex;align-items:center;gap:8px;flex:1}.status-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.status-healthy .status-icon{color:#10b981}.status-unhealthy .status-icon{color:#ef4444}.status-loading .status-icon{color:#f59e0b}.status-text{color:var(--color-fg);font-weight:500}.notification-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.last-updated{color:var(--color-fg);opacity:.5;font-size:.75rem}.unhealthy-services{margin-top:12px;padding-top:12px;border-top:1px solid var(--elevation-level-3-dark)}.services-header{color:var(--color-fg);font-weight:500;margin-bottom:8px;font-size:.8rem}.services-list{display:flex;flex-direction:column;gap:6px}.service-item{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:4px;background:var(--elevation-level-3-dark)}.service-item.unhealthy{border-left:3px solid #ef4444}.service-header{display:flex;align-items:center;justify-content:space-between;gap:8px;transition:background-color .2s}.service-header:hover{background-color:var(--elevation-level-4-dark);border-radius:4px;margin:-2px;padding:2px}.service-name{color:var(--color-fg);font-weight:500;font-size:.8rem;flex:1}.expand-icon{color:var(--color-fg);opacity:.6;transition:opacity .2s}.service-header:hover .expand-icon{opacity:1}.service-error-details{margin-top:4px;padding-top:4px;border-top:1px solid var(--elevation-level-4-dark);animation:fadeIn .2s ease-in}.service-error{color:#ef4444;font-size:.75rem;opacity:.8;line-height:1.3}.health-check-error{margin-top:8px;padding:8px 12px;background:#ef44441a;border:1px solid #ef4444;border-radius:4px}.error-text{color:#ef4444;font-size:.8rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.service-health-notification.fade-out{opacity:0;transition:opacity .5s ease-out}@media (max-width: 768px){.service-health-notification{margin:4px;padding:8px 10px}.notification-header{flex-direction:row;align-items:center;gap:6px;flex-wrap:wrap}.status-info{flex:1;min-width:0}.status-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-actions{flex-shrink:0;display:flex;align-items:center;gap:6px}.last-updated{white-space:nowrap}.services-list{gap:4px}.service-item{padding:4px 6px}}.markdown-viewer{line-height:1.6;color:var(--color-fg)}.markdown-paragraph{margin:0 0 1rem;color:inherit}.markdown-paragraph:last-child{margin-bottom:0}.markdown-h1{font-size:2rem;font-weight:600;margin:0 0 1.5rem;color:var(--color-fg);border-bottom:2px solid var(--color-border);padding-bottom:.5rem}.markdown-h2{font-size:1.5rem;font-weight:600;margin:2rem 0 1rem;color:var(--color-fg);border-bottom:1px solid var(--color-border);padding-bottom:.25rem}.markdown-h3{font-size:1.25rem;font-weight:600;margin:1.5rem 0 .75rem;color:var(--color-fg)}.markdown-h4{font-size:1.125rem;font-weight:600;margin:1.25rem 0 .5rem;color:var(--color-fg)}.markdown-h5{font-size:1rem;font-weight:600;margin:1rem 0 .5rem;color:var(--color-fg)}.markdown-h6{font-size:.875rem;font-weight:600;margin:1rem 0 .5rem;color:var(--color-fg);opacity:.8}.markdown-code-inline{background:var(--elevation-level-3-dark);color:var(--brand-color-extra-light);padding:.125rem .375rem;border-radius:4px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.875em;border:1px solid var(--color-border)}.markdown-pre{background:var(--elevation-level-3-dark);border:1px solid var(--color-border);border-radius:8px;padding:1rem;overflow-x:auto;margin:1rem 0}.markdown-code-block{color:var(--color-fg);font-family:Consolas,Monaco,Courier New,monospace;font-size:.875rem;line-height:1.4}.markdown-list{margin:.5rem 0 1rem;padding-left:1.5rem}.markdown-ordered-list{list-style-type:decimal}.markdown-list ul,.markdown-list ol{margin:.25rem 0}.markdown-list-item{margin:.25rem 0;color:var(--color-fg)}.markdown-link{color:var(--brand-color-extra-light);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s,opacity .2s}.markdown-link:hover{border-bottom-color:var(--brand-color-extra-light);opacity:.8}.markdown-link:visited{color:var(--brand-color-light)}.markdown-blockquote{margin:1rem 0;padding:.75rem 1rem;border-left:4px solid var(--brand-color-light);background:var(--elevation-level-2-dark);border-radius:0 8px 8px 0;color:var(--color-fg);opacity:.9}.markdown-blockquote p:last-child{margin-bottom:0}.markdown-table{width:100%;border-collapse:collapse;margin:1rem 0;background:var(--elevation-level-2-dark);border-radius:8px;overflow:hidden;border:1px solid var(--color-border)}.markdown-table-head{background:var(--elevation-level-3-dark)}.markdown-table-header{padding:.75rem;text-align:left;font-weight:600;color:var(--color-fg);border-bottom:1px solid var(--color-border)}.markdown-table-cell{padding:.75rem;color:var(--color-fg);border-bottom:1px solid var(--color-border)}.markdown-table-row:last-child .markdown-table-cell{border-bottom:none}.markdown-table-row:nth-child(2n){background:var(--elevation-level-1-dark)}.markdown-hr{border:none;height:1px;background:var(--color-border);margin:2rem 0}@media (max-width: 768px){.markdown-viewer{font-size:.9rem}.markdown-h1{font-size:1.5rem}.markdown-h2{font-size:1.25rem}.markdown-h3{font-size:1.125rem}.markdown-pre{padding:.75rem;font-size:.8rem}.markdown-table{font-size:.875rem}.markdown-table-header,.markdown-table-cell{padding:.5rem}}.markdown-viewer.compact{font-size:.9rem}.markdown-viewer.compact .markdown-h1{font-size:1.5rem;margin:0 0 1rem}.markdown-viewer.compact .markdown-h2{font-size:1.25rem;margin:1.5rem 0 .75rem}.markdown-viewer.compact .markdown-h3{font-size:1.125rem;margin:1.25rem 0 .5rem}.markdown-viewer.compact .markdown-paragraph{margin:0 0 .75rem}.markdown-viewer.compact .markdown-list{margin:.25rem 0 .75rem}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;height:100vh;background:var(--color-bg);color:var(--color-fg);padding:0;gap:32px;overflow:hidden}.login-logo{display:flex;align-items:center;justify-content:center;z-index:10;position:relative;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;transition:all .6s cubic-bezier(.4,0,.2,1)}.animated-border{position:absolute;inset:-3px;z-index:-1;background:conic-gradient(from var(--angle),#9333ea,#7c3aed,#8b5cf6,#a855f7,#c084fc,#9333ea);border-radius:21px;opacity:0;transform:scale(1);transition:all .6s cubic-bezier(.4,0,.2,1),opacity .4s ease-in;pointer-events:none}.animated-border.border-visible{opacity:1;transform:scale(1.2);animation:cool-spin 1s linear infinite}.animated-border.border-visible:after{content:"";position:absolute;inset:0;background:inherit;border-radius:inherit;filter:blur(1rem);opacity:.4;z-index:-1}@keyframes cool-spin{0%{--angle: 53deg}to{--angle: 413deg}}.login-logo img{width:128px;height:128px;transition:transform .6s cubic-bezier(.4,0,.2,1)}.login-logo.logo-merge img{transform:scale(1.2)}.login-container{background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:0 8px 32px #0000004d;transition:all .6s cubic-bezier(.4,0,.2,1);transform-origin:center top;z-index:1;position:relative}.login-container.login-collapse{transform:scale(.1) translateY(-600px);opacity:0;pointer-events:none}.login-header{text-align:center;margin-bottom:32px}.login-subtitle{color:var(--color-fg);opacity:.7;margin:0;font-size:.875rem}.login-footer{margin-top:24px;text-align:center}.login-footer p{color:var(--color-fg);opacity:.6;font-size:.75rem;margin:0}@media (max-width: 480px){.login-container{padding:24px;margin:16px;max-width:280px;width:calc(100% - 32px)}.login-logo h1{font-size:1.25rem}}.knowledge-base-header h1{color:var(--color-fg);font-size:2.5rem;font-weight:300}.knowledge-base-header p{color:var(--color-fg);opacity:.7;font-size:1.125rem;margin:0}.upload-zone{width:100%;margin-bottom:48px}.upload-zone-content{background:var(--elevation-level-2-dark);border:2px dashed var(--color-border);border-radius:16px;padding:48px 32px;text-align:center;transition:all .2s ease;cursor:pointer}.upload-zone-content:hover{border-color:var(--brand-color-light);background:var(--elevation-level-3-dark);transform:translateY(-2px)}.upload-zone-content svg{color:var(--brand-color-light);margin-bottom:16px}.upload-zone-content h3{color:var(--color-fg);font-size:1.25rem;font-weight:500;margin:0 0 8px}.upload-zone-content p{color:var(--color-fg);opacity:.7;font-size:.9rem;margin:0 0 24px}.kb-section{background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:12px;padding:1.5rem 1.5rem 1rem;text-align:left;transition:all .2s ease;cursor:pointer;display:flex;flex-direction:column;height:20rem}.kb-section:hover{background:var(--elevation-level-3-dark);transform:translateY(-2px);box-shadow:0 8px 24px #0003}.kb-section-header{display:flex;align-items:center;justify-content:flex-start;gap:12px;margin-bottom:16px}.kb-section-header h2{color:var(--color-fg);font-size:1.2rem;font-weight:500;margin:0;text-align:left}.kb-section-header svg{color:var(--brand-color-light);stroke-width:1.5}.kb-section p{color:var(--color-fg);opacity:.7;font-size:.9rem;line-height:1.5;margin:0 0 24px;text-align:left;flex:1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical}.kb-section-button{background:var(--brand-gradient);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #795ea933}.kb-section-footer{margin-top:auto;display:flex;justify-content:flex-end;font-size:.875rem;color:var(--text-secondary)}.kb-section-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #795ea94d}.search-results-section{margin-top:32px}.search-results-header{margin-bottom:24px}.search-error{display:flex;align-items:center;gap:12px;padding:20px;background:#ef44441a;border:1px solid #ef4444;border-radius:12px;color:#ef4444}.error-content{display:flex;flex-direction:column;gap:4px}.error-title{font-weight:600;font-size:.9rem}.error-message{font-size:.85rem;opacity:.9}.no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:80px 20px;color:var(--color-fg);opacity:.6;text-align:center}.no-results svg{opacity:.4}.no-results-title{font-size:1.1rem;font-weight:500;margin-bottom:4px}.no-results-message{font-size:.9rem;line-height:1.4;max-width:400px}.similarity-score{font-size:.75rem;color:var(--text-primary);opacity:.8;font-weight:500}.card-flip-container{perspective:1000px;width:100%}.card-flip-inner{position:relative;width:100%;text-align:left;transition:transform .4s ease-in-out;transform-style:preserve-3d}.card-flip-container.flipped .card-flip-inner{transform:rotateY(180deg)}.card-flip-front,.card-flip-back{width:100%;backface-visibility:hidden;border-radius:12px}.card-flip-front{transform:rotateY(0)}.card-flip-back{position:absolute;top:0;left:0;transform:rotateY(180deg)}@keyframes flipCard{0%{transform:rotateY(0)}to{transform:rotateY(180deg)}}@media (max-width: 768px){.knowledge-base-header h1{font-size:2rem}.upload-zone-content{padding:32px 20px}.kb-section{padding:24px 20px;height:14rem}}@media (max-width: 480px){.knowledge-base-header h1{font-size:1.75rem}.upload-zone-content{padding:24px 16px}.upload-zone-content svg{width:36px;height:36px}.kb-section{padding:20px 16px}}.libraries-header h1{color:var(--color-fg);font-size:2.5rem;font-weight:300;margin:0 0 12px}.libraries-header p{color:var(--color-fg);opacity:.7;font-size:1.125rem;margin:0}.section-title{display:flex;align-items:center;gap:12px;color:var(--color-fg)}.section-title h2{font-size:1.5rem;font-weight:500;margin:0}.section-title svg{color:var(--brand-color-light)}.section-count{color:var(--color-fg);opacity:.6;font-size:.9rem;font-weight:400}.library-card{background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:12px;padding:20px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;gap:12px}.library-card:hover{background:var(--elevation-level-3-dark);transform:translateY(-2px);box-shadow:0 8px 24px #0003}.library-card-header{display:flex;align-items:center;gap:12px}.library-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--elevation-level-4-dark);border-radius:8px;flex-shrink:0}.library-icon svg{color:var(--brand-color-light)}.library-card-header h3{color:var(--color-fg);font-size:1.125rem;font-weight:600;margin:0;flex:1;word-break:break-word}.library-description{color:var(--color-fg);opacity:.7;font-size:.9rem;line-height:1.4;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.library-metadata{display:flex;flex-direction:column;gap:6px;margin-top:auto;border-top:1px solid var(--color-border);padding-top:12px}.library-stats{display:flex;align-items:center;gap:8px;color:var(--color-fg);opacity:.6;font-size:.8rem}.library-owner{color:var(--color-fg);opacity:.6;font-size:.75rem;font-style:italic}.library-icon-large{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--elevation-level-3-dark);border-radius:12px;flex-shrink:0}.library-icon-large svg{color:var(--brand-color-light)}.library-header-info h1{color:var(--color-fg);font-size:2rem;font-weight:600;margin:0;word-break:break-word}.privacy-badge,.permission-badge{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:uppercase}.privacy-badge.private{background:#ffc1071a;color:var(--dark-warning-color);border:1px solid rgba(255,193,7,.3)}.privacy-badge.public{background:#10b9811a;color:var(--dark-success-color);border:1px solid rgba(16,185,129,.3)}.permission-badge{background:#795ea91a;color:var(--brand-color-extra-light);border:1px solid rgba(121,94,169,.3)}.library-description{color:var(--color-fg);opacity:.8;font-size:1rem;line-height:1.5;margin:0 0 16px}.library-stats{display:flex;align-items:center;gap:8px;color:var(--color-fg);opacity:.6;font-size:.875rem}.file-upload-area{background:var(--elevation-level-2-dark);border:2px dashed var(--color-border);border-radius:16px;padding:48px 32px;text-align:center;margin-bottom:48px;transition:all .2s;cursor:pointer;position:relative}.file-upload-area:hover,.file-upload-area.drag-over{border-color:var(--brand-color-light);background:var(--elevation-level-3-dark);transform:translateY(-2px)}.file-upload-area.drag-over{border-color:var(--brand-color-light);background:var(--elevation-level-3-dark);transform:scale(1.02)}.file-upload-area:hover{border-color:var(--brand-color-light);background:var(--elevation-level-3-dark)}.file-upload-area.uploading{opacity:.6;pointer-events:none}.file-upload-area svg{color:var(--brand-color-light);margin-bottom:16px}.file-upload-area h3{color:var(--color-fg);font-size:1.25rem;font-weight:500;margin:0 0 8px}.file-upload-area p{color:var(--color-fg);opacity:.7;font-size:.9rem;margin:0 0 24px}.files-header h2{color:var(--color-fg);font-size:1.5rem;font-weight:500;margin:0}.table-header-cell{color:var(--color-fg);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.table-header-cell.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s}.table-header-cell.sortable:hover,.table-header-cell.active{color:var(--brand-color-extra-light)}.file-icon{font-size:1.125rem;flex-shrink:0;transform:translateY(1px)}.file-name{word-break:break-word;line-height:1.3}.libraries-error{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px 20px;color:var(--dark-danger-color);grid-column:1 / -1;background:#b623241a;border:1px solid rgba(182,35,36,.3);border-radius:12px}.libraries-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 20px;color:var(--color-fg);opacity:.6;text-align:center;grid-column:1 / -1}.libraries-empty svg{opacity:.4}.libraries-empty span{font-size:.9rem;line-height:1.4;max-width:300px}.library-error,.files-error{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px 20px;color:var(--dark-danger-color);background:#b623241a;border:1px solid rgba(182,35,36,.3);border-radius:12px}.files-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:80px 20px;color:var(--color-fg);opacity:.6;text-align:center;grid-column:1 / -1}.files-empty svg{opacity:.4}.files-empty span{font-size:.9rem;line-height:1.4}.file-meta{font-size:.75rem;color:var(--color-fg);opacity:.6;line-height:1.2}.upload-progress-bar{width:100%;height:4px;background:var(--dark-border);border-radius:2px;overflow:hidden}.upload-progress-fill{height:100%;transition:width .3s ease;border-radius:2px}.upload-progress-fill.uploading{background:var(--brand-color-light)}.upload-progress-fill.completed{background:var(--dark-success-color)}.upload-progress-fill.error{background:var(--dark-danger-color)}.upload-status .uploading{color:var(--brand-color-light)}.upload-status .completed{color:var(--dark-success-color)}.upload-status .error{color:var(--dark-danger-color);font-weight:500}.upload-file-name .file-name{font-weight:500;color:var(--color-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-file-name .file-size{color:var(--color-fg-secondary);font-size:.85rem;flex-shrink:0}.upload-status{flex-shrink:0;font-size:.85rem;font-weight:500}@media (max-width: 768px){.libraries-header h1{font-size:2rem}.library-icon-large{display:none}.file-upload-area{padding:32px 20px}.section-title{justify-content:center}}@media (max-width: 480px){.libraries-header h1{font-size:1.75rem}.library-card{padding:16px}.section-title h2{font-size:1.25rem}.library-header-info h1{font-size:1.5rem}.file-upload-area{padding:24px 16px}.file-upload-area svg{width:24px;height:24px}}.connection-error{display:flex;align-items:center;gap:12px;padding:20px;background:#ef44441a;border:1px solid #ef4444;border-radius:12px;color:#ef4444;margin-bottom:24px}.connection-status{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;font-size:.875rem;font-weight:500;margin-bottom:12px}.connection-status.connected{background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.2)}.connection-status.disconnected{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.status-indicator{display:flex;align-items:center}.current-progress-card{background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:12px;padding:24px;margin-bottom:32px;box-shadow:0 4px 12px #0000001a}.progress-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}.progress-title{display:flex;align-items:center;gap:12px;color:var(--color-fg)}.progress-title h2{margin:0;font-size:1.25rem;font-weight:500}.progress-title svg{color:var(--brand-color-light)}.progress-badge{padding:6px 12px;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.progress-badge.active{background:#fbbf241a;color:#fbbf24;border:1px solid rgba(251,191,36,.2)}.progress-badge.completed{background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.2)}.progress-details{display:flex;flex-direction:column;gap:20px}.progress-bar-container{display:flex;align-items:center;gap:16px}.progress-bar{flex:1;height:8px;background:var(--elevation-level-3-dark);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--brand-gradient);transition:width .5s ease;border-radius:4px}.progress-percentage{font-weight:600;color:var(--color-fg);min-width:50px;text-align:right}.progress-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:.75rem;color:var(--color-fg);opacity:.6;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.stat-value{font-size:.875rem;color:var(--color-fg);font-weight:500}.stat-value.file-name{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8rem;color:var(--brand-color-light);word-break:break-all}.current-progress-sidebar{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border)}.progress-stat{font-size:.8rem;color:var(--color-fg);opacity:.8}.progress-log-section{background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.log-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:var(--elevation-level-3-dark);border-bottom:1px solid var(--color-border)}.log-header h2{margin:0;font-size:1.1rem;font-weight:500;color:var(--color-fg)}.log-stats{font-size:.875rem;color:var(--color-fg);opacity:.6}.progress-log{max-height:600px;overflow-y:auto}.log-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:var(--color-fg);opacity:.5;text-align:center}.log-empty svg{opacity:.3}.log-entries{display:flex;flex-direction:column}.log-entry{display:flex;flex-direction:column;gap:8px;padding:16px 24px;border-bottom:1px solid var(--color-border);transition:background-color .2s}.log-entry:hover{background:var(--elevation-level-3-dark)}.log-entry:last-child{border-bottom:none}.log-entry-header{display:flex;align-items:center;gap:12px}.log-icon{display:flex;align-items:center;flex-shrink:0}.log-timestamp{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.75rem;color:var(--color-fg);opacity:.6;margin-left:auto}.log-message{font-size:.875rem;color:var(--color-fg);line-height:1.4;margin-left:28px}.log-entry.info .log-icon{color:#3b82f6}.log-entry.progress .log-icon{color:#fbbf24}.log-entry.completed .log-icon{color:#22c55e}.log-entry.error .log-icon{color:#ef4444}.log-progress-bar{margin-left:28px;height:3px;background:var(--elevation-level-3-dark);border-radius:2px;overflow:hidden;margin-top:8px}.log-progress-fill{height:100%;background:var(--brand-gradient);transition:width .3s ease}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.text-blue{color:#3b82f6}.text-yellow{color:#fbbf24}.text-green{color:#22c55e}.text-red{color:#ef4444}.progress-log::-webkit-scrollbar{width:8px}.progress-log::-webkit-scrollbar-track{background:var(--elevation-level-2-dark);border-radius:4px}.progress-log::-webkit-scrollbar-thumb{background:var(--elevation-level-4-dark);border-radius:4px}.progress-log::-webkit-scrollbar-thumb:hover{background:var(--elevation-level-5-dark)}@media (max-width: 768px){.current-progress-card{padding:20px 16px;margin-bottom:24px}.progress-card-header{flex-direction:column;align-items:stretch;gap:12px}.progress-title{justify-content:center}.progress-stats{grid-template-columns:1fr;gap:12px}.progress-bar-container{flex-direction:column;gap:8px}.progress-percentage{text-align:center;min-width:auto}.log-header{padding:16px 20px}.log-entry{padding:12px 20px}.log-message,.log-progress-bar{margin-left:24px}}@media (max-width: 480px){.current-progress-card{padding:16px 12px}.log-header{flex-direction:column;gap:8px;align-items:flex-start}.log-entry{padding:12px 16px}.log-entry-header{flex-wrap:wrap}.log-timestamp{margin-left:0;order:2;flex:1}.log-message,.log-progress-bar{margin-left:20px}}.landing-page h1{color:#333;font-size:3rem;margin:0;font-weight:300}.error-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;min-height:400px}.error-fallback h2{color:var(--dark-danger-color);margin:0 0 16px;font-size:1.5rem}.error-fallback p{color:var(--color-fg);margin:0 0 24px;font-size:1rem;line-height:1.5;max-width:500px}.hardware-content{padding:40px;width:100%;height:100%;overflow-y:auto;display:flex;flex-direction:column;align-items:center;box-sizing:border-box}.hardware-inner{max-width:1200px;width:100%;box-sizing:border-box}.hardware-header{text-align:center;margin-bottom:48px}.hardware-header h1{color:var(--color-fg);font-size:2.5rem;font-weight:300;margin:0 0 16px}.hardware-header p{color:var(--color-fg);opacity:.7;font-size:1.125rem;margin:0}.hardware-section{margin-bottom:48px;background:var(--elevation-level-2-dark);border:1px solid var(--color-border);border-radius:16px;padding:32px}.hardware-section .section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}.hardware-section .section-header h2{color:var(--color-fg);font-size:1.5rem;font-weight:500;margin:0}.status-meta{display:flex;align-items:center;gap:16px;font-size:.875rem;color:var(--color-fg);opacity:.7}.auto-refresh-indicator{display:flex;align-items:center;gap:4px;color:var(--brand-color-light);font-weight:500}.auto-refresh-indicator:before{content:"●";font-size:.6rem;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}.status-card{background:var(--elevation-level-3-dark);border:1px solid var(--color-border);border-radius:12px;padding:24px;transition:all .2s ease}.status-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0003}.status-card-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.status-card-header svg{color:var(--brand-color-light);stroke-width:1.5}.status-card-header h3{color:var(--color-fg);font-size:1.1rem;font-weight:500;margin:0}.status-card-content{display:flex;flex-direction:column;gap:12px}.status-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.status-label{color:var(--color-fg);opacity:.7;font-size:.9rem}.status-value{color:var(--color-fg);font-weight:500;font-size:1rem}.display-controls{display:flex;flex-direction:column;gap:16px}.display-form{width:100%}.clear-display-button{align-self:flex-start;display:flex;align-items:center;gap:8px;background:var(--elevation-level-3-dark);color:var(--color-fg);border:1px solid var(--color-border);border-radius:8px;padding:12px 20px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.clear-display-button:hover{background:var(--elevation-level-4-dark);transform:translateY(-1px)}.clear-display-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.display-message{padding:12px 16px;background:var(--elevation-level-3-dark);border:1px solid var(--color-border);border-radius:8px;color:var(--color-fg);font-size:.9rem}.logs-container{max-height:600px;overflow-y:auto}.logs-count{color:var(--color-fg);opacity:.7;font-size:.9rem;font-weight:400}.logs-list{display:flex;flex-direction:column;gap:8px}.log-entry{display:grid;grid-template-columns:auto auto 1fr auto;gap:16px;padding:12px 16px;background:var(--elevation-level-3-dark);border:1px solid var(--color-border);border-radius:8px;font-family:Courier New,monospace;font-size:.85rem;align-items:start}.log-timestamp{color:var(--color-fg);opacity:.6;font-weight:500;white-space:nowrap}.log-level{font-weight:600;padding:2px 8px;border-radius:4px;font-size:.75rem;text-align:center;white-space:nowrap}.log-category{color:var(--color-fg);opacity:.8;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-message{color:var(--color-fg);word-break:break-word;line-height:1.4}.log-exception{grid-column:1 / -1;margin-top:8px;padding:8px 12px;background:#ef44441a;border:1px solid #ef4444;border-radius:6px;color:#ef4444;font-size:.8rem;word-break:break-word}.log-trace .log-level{background:#9ca3af33;color:#9ca3af}.log-debug .log-level{background:#3b82f633;color:#3b82f6}.log-info .log-level{background:#22c55e33;color:#22c55e}.log-warning .log-level{background:#f59e0b33;color:#f59e0b}.log-error .log-level{background:#ef444433;color:#ef4444}.log-critical .log-level{background:#dc267f33;color:#dc2626}.no-logs{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:80px 20px;color:var(--color-fg);opacity:.6;text-align:center}.no-logs svg{opacity:.4}.no-logs span{font-size:1.1rem;font-weight:500}.hardware-loading{display:flex;justify-content:center;align-items:center;min-height:400px}.loading-content{display:flex;flex-direction:column;align-items:center;gap:16px;color:var(--color-fg)}.hardware-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:80px 20px;color:var(--color-fg);text-align:center}.hardware-error svg{color:var(--color-error)}.error-content{display:flex;flex-direction:column;gap:8px}.error-title{font-size:1.25rem;font-weight:600;color:var(--color-error)}.error-message{font-size:.9rem;opacity:.8;max-width:400px;line-height:1.4}.retry-button{display:flex;align-items:center;gap:8px;background:var(--brand-gradient);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;margin-top:16px}.retry-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #795ea94d}.hardware-control-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:var(--elevation-level-3-dark);border-radius:8px;cursor:pointer;transition:background-color .2s;color:var(--color-fg);font-size:.875rem;margin-bottom:8px}.hardware-control-item:hover{background-color:var(--elevation-level-4-dark)}@media (max-width: 768px){.hardware-content{padding:16px}.hardware-header h1{font-size:2rem}.hardware-section{padding:20px;margin-bottom:32px}.status-grid{grid-template-columns:1fr;gap:16px}.status-card{padding:20px}.log-entry{grid-template-columns:1fr;gap:8px;padding:12px}.log-timestamp,.log-level,.log-category{display:inline;margin-right:8px}.log-message{grid-column:1;margin-top:4px}.hardware-section .section-header{flex-direction:column;align-items:flex-start;gap:8px}.status-meta{flex-direction:column;align-items:flex-start;gap:4px}}@media (max-width: 480px){.hardware-content{padding:12px}.hardware-header h1{font-size:1.75rem}.hardware-section,.status-card{padding:16px}}
