@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap";:root{--sat: env(safe-area-inset-top);--sab: env(safe-area-inset-bottom)}:root{--bg: #17212b;--sidebar-bg: #17212b;--sidebar-hover: #202e3c;--sidebar-active: #2b5278;--header-bg: #17212b;--chat-bg: #0e1621;--bubble-in: #182533;--bubble-out: #2b5278;--bubble-out-text: #ffffff;--bubble-in-text: #ffffff;--text-primary: #ffffff;--text-secondary: #708499;--text-muted: #4a5568;--accent: #2AABEE;--accent-hover: #1e98d5;--online: #0ac630;--border: #0e1621;--input-bg: #242f3d;--divider: #1c2836;--unread-bg: #2AABEE;--shadow: 0 2px 16px rgba(0,0,0,.4);--radius: 12px;--radius-sm: 8px;--font: "Inter", -apple-system, system-ui, sans-serif}[data-theme=light]{--bg: #f0f4f8;--bubble-out: #2AABEE;--sidebar-bg: #ffffff;--sidebar-hover: #f0f4f8;--sidebar-active: #d0e8ff;--header-bg: #ffffff;--chat-bg: #e8eef4;--bubble-in: #ffffff;--bubble-out: #2b5278;--bubble-out-text: #ffffff;--bubble-in-text: #1a1a2e;--text-primary: #1a1a2e;--text-secondary: #5a6a7e;--text-muted: #8a9ab0;--input-bg: #f8fafc;--divider: #dde5ee;--border: #dde5ee;--unread-bg: #2AABEE;--shadow: 0 2px 16px rgba(0,0,0,.1);--message-bg: #ffffff}*{box-sizing:border-box;margin:0;padding:0}html{height:100%;overflow:hidden}#root{height:100dvh;overflow:hidden;position:relative}body{font-family:var(--font);background:var(--bg);color:var(--text-primary);height:100%;overflow:hidden;font-size:14px;-webkit-font-smoothing:antialiased}.app-layout{display:flex;height:100dvh;overflow:hidden}.sidebar{width:320px;min-width:280px;max-width:320px;background:var(--sidebar-bg);display:flex;flex-direction:column;border-right:1px solid var(--border);position:relative;z-index:10;flex-shrink:0}.sidebar-header{display:flex;align-items:center;gap:10px;padding:14px 16px;height:56px;border-bottom:1px solid var(--divider);position:sticky;top:0;z-index:10;background:var(--sidebar-bg)}.sidebar-title{flex:1;font-weight:600;font-size:16px}.menu-btn,.icon-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.menu-btn:hover,.icon-btn:hover{color:var(--text-primary);background:var(--sidebar-hover)}.sidebar-menu{position:absolute;top:56px;left:8px;background:var(--sidebar-bg);border-radius:var(--radius);box-shadow:var(--shadow);z-index:100;padding:6px 0;min-width:180px;border:1px solid var(--divider)}.sidebar-menu button{display:block;width:100%;text-align:left;padding:10px 16px;background:none;border:none;color:var(--text-primary);cursor:pointer;font-size:14px;font-family:var(--font);transition:background .1s}.sidebar-menu button:hover{background:var(--sidebar-hover)}.sidebar-menu hr{border:none;border-top:1px solid var(--divider);margin:4px 0}.sidebar-menu .logout-btn{color:#ff6b6b}.search-container{padding:8px 12px;position:relative}.search-input{width:100%;background:var(--input-bg);border:none;border-radius:20px;padding:8px 12px 8px 34px;color:var(--text-primary);font-size:14px;font-family:var(--font);outline:none;transition:background .15s}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{background:#2d3f4f}.search-icon{position:absolute;left:22px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.view-toggle{display:flex;padding:0 12px 8px;gap:6px}.view-toggle button{flex:1;padding:6px 10px;border:none;border-radius:20px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:13px;font-family:var(--font);font-weight:500;transition:all .15s}.view-toggle button.active{background:var(--accent);color:#fff}.conv-list{flex:1;overflow-y:auto;overflow-x:hidden}.conv-list::-webkit-scrollbar{width:4px}.conv-list::-webkit-scrollbar-thumb{background:var(--divider);border-radius:4px}.conv-item{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;transition:background .1s;position:relative}.conv-item:hover{background:var(--sidebar-hover)}.conv-item.active{background:var(--sidebar-active)}.conv-info{flex:1;min-width:0;border-bottom:1px solid var(--divider);padding-bottom:8px}.conv-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.conv-name{font-weight:500;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:4px}.conv-time{font-size:11.5px;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.conv-preview{display:flex;align-items:center;justify-content:space-between;gap:6px}.conv-last-msg{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unread-badge{background:var(--unread-bg);color:#fff;border-radius:10px;padding:1px 6px;font-size:11px;font-weight:600;min-width:18px;text-align:center;flex-shrink:0}.task-badge-mini{font-size:12px}.task-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;transition:background .1s;border-bottom:1px solid var(--divider)}.task-item:hover{background:var(--sidebar-hover)}.task-item-left{display:flex;align-items:center;gap:10px;min-width:0}.task-priority-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.task-item-info{min-width:0}.task-item-title{font-size:13.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-item-meta{font-size:12px;color:var(--text-secondary);margin-top:2px}.sidebar-footer{display:flex;align-items:center;gap:10px;padding:12px 14px;padding-bottom:max(12px,var(--sab, 0px));border-top:1px solid var(--divider);background:var(--sidebar-bg)}.sidebar-footer-name{flex:1;font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer-role{font-size:11px;color:var(--text-secondary);background:var(--input-bg);padding:2px 8px;border-radius:10px}.main-content{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--chat-bg)}.chat-empty{flex:1;display:flex;align-items:center;justify-content:center;background:var(--chat-bg)}.chat-empty-content{text-align:center;color:var(--text-secondary)}.chat-empty-icon{font-size:64px;margin-bottom:16px;opacity:.5}.chat-empty-content h2{font-size:20px;font-weight:500;margin-bottom:8px;color:var(--text-primary)}.chat-empty-content p{font-size:14px}.chat-view{display:flex;flex-direction:column;height:100%;background:var(--chat-bg);position:relative;overflow:hidden}.chat-header{display:flex;align-items:center;justify-content:flex-start;padding:0 20px;height:56px;background:var(--header-bg);border-bottom:1px solid var(--divider);flex-shrink:0;position:relative;z-index:10}.chat-header-name{font-weight:600;font-size:15px}.chat-header-sub{font-size:12px;color:var(--text-secondary);margin-top:2px}.chat-header-sub.online{color:var(--online)}.chat-task-badge{display:flex;align-items:center}.task-status-chip{padding:3px 10px;border-radius:12px;font-size:12px;font-weight:500;border:1px solid currentColor}.messages-container{flex:1;min-height:0;overflow-y:auto;padding:12px 20px;display:flex;flex-direction:column;gap:2px;background:var(--chat-bg);background-image:radial-gradient(circle at 25% 25%,rgba(42,171,238,.03) 0%,transparent 50%),radial-gradient(circle at 75% 75%,rgba(42,171,238,.02) 0%,transparent 50%)}.messages-container::-webkit-scrollbar{width:4px}.messages-container::-webkit-scrollbar-thumb{background:var(--divider);border-radius:4px}@keyframes msgHighlight{0%{background:#2aabee59}70%{background:#2aabee33}to{background:transparent}}.msg-highlighted{animation:msgHighlight 1.8s ease forwards;border-radius:8px}.date-divider{display:flex;align-items:center;justify-content:center;margin:12px 0 8px}.date-divider span{background:var(--divider);color:var(--text-secondary);font-size:12px;padding:4px 12px;border-radius:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.system-message{text-align:center;color:var(--text-secondary);font-size:12.5px;padding:4px 16px;background:var(--divider);border-radius:12px;margin:6px auto;max-width:400px}.msg-row{display:flex;align-items:flex-end;gap:6px;max-width:75%;margin-bottom:1px}.msg-row.mine{margin-left:auto;flex-direction:row-reverse}.msg-row.theirs{margin-right:auto}.msg-avatar{flex-shrink:0}.bubble{padding:8px 12px;border-radius:16px;max-width:100%;word-break:break-word;position:relative;line-height:1.45}.bubble-theirs{background:var(--bubble-in);color:var(--bubble-in-text);border-bottom-left-radius:4px}.bubble-mine{background:var(--bubble-out);color:var(--bubble-out-text);border-bottom-right-radius:4px}.bubble-sender{font-size:12px;font-weight:600;color:var(--accent);margin-bottom:3px}.bubble-text{font-size:14.5px;white-space:pre-wrap}.bubble-meta{display:flex;align-items:center;justify-content:flex-end;gap:3px;margin-top:3px}.bubble-time{font-size:11px;color:#ffffff80}.read-ticks{font-size:12px;color:var(--accent)}.reply-preview{background:#0000002e;border-left:3px solid rgba(255,255,255,.5);padding:5px 8px;border-radius:4px;margin-bottom:6px;font-size:12px;cursor:pointer;max-width:100%;overflow:hidden}.bubble-mine .reply-preview{background:#0003;border-left-color:#fff9}.bubble-theirs .reply-preview{background:#ffffff14;border-left-color:var(--accent)}.reply-user{display:block;color:var(--accent);font-weight:600;margin-bottom:2px;font-size:12px}.bubble-mine .reply-user{color:#ffffffd9}.typing-indicator{display:flex;align-items:center;gap:6px;color:var(--accent);font-size:12px}.typing-dots{display:flex;gap:3px}.typing-dots span{width:4px;height:4px;border-radius:50%;background:var(--accent);animation:typingBounce 1.2s infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.reply-bar{display:flex;align-items:center;padding:8px 16px;background:var(--header-bg);border-top:1px solid var(--divider);gap:10px}.reply-bar-content{flex:1;border-left:3px solid var(--accent);padding-left:10px}.reply-bar-name{font-size:12px;color:var(--accent);font-weight:600}.reply-bar-text{font-size:13px;color:var(--text-secondary)}.reply-bar-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:16px;padding:4px;line-height:1}.scroll-to-bottom-btn{position:absolute;bottom:82px;right:16px;width:40px;height:40px;border-radius:50%;background:var(--header-bg);border:1px solid var(--divider);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px #0006;z-index:20;transition:background .15s,transform .15s}.scroll-to-bottom-btn:hover{background:var(--sidebar-hover);transform:scale(1.05)}.scroll-btn-badge{position:absolute;top:-6px;right:-6px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;font-family:var(--font)}.chat-input-area{padding:10px 16px;padding-bottom:max(10px,var(--sab, 0px));background:var(--header-bg);border-top:1px solid var(--divider)}.input-wrapper{display:flex;align-items:flex-end;gap:8px;background:var(--input-bg);border-radius:24px;padding:6px 6px 6px 16px}.chat-input{flex:1;background:none;border:none;color:var(--text-primary);font-size:15px;font-family:var(--font);resize:none;outline:none;line-height:1.4;max-height:120px;overflow-y:auto;padding:7px 0}.chat-input::placeholder{color:var(--text-muted)}.send-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--text-muted);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s;flex-shrink:0}.send-btn.active{background:var(--accent)}.send-btn:hover.active{background:var(--accent-hover);transform:scale(1.05)}.send-btn:disabled{cursor:default}.task-panel{flex:1;display:flex;flex-direction:column;overflow:hidden}.task-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;height:56px;background:var(--header-bg);border-bottom:1px solid var(--divider);flex-shrink:0;position:sticky;top:0;z-index:10}.task-panel-header h2{font-size:17px;font-weight:600}.task-filters{display:flex;gap:8px;padding:10px 16px;background:var(--header-bg);border-bottom:1px solid var(--divider);overflow-x:auto;flex-shrink:0}.task-filters::-webkit-scrollbar{display:none}.filter-chip{padding:5px 14px;border-radius:16px;border:1px solid var(--divider);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:13px;font-family:var(--font);white-space:nowrap;transition:all .15s}.filter-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.task-list{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.task-list::-webkit-scrollbar{width:4px}.task-list::-webkit-scrollbar-thumb{background:var(--divider);border-radius:4px}.task-card{background:var(--sidebar-bg);border-radius:var(--radius);padding:12px 14px;cursor:pointer;transition:background .15s,box-shadow .15s;border:1px solid var(--divider)}.task-card:hover{background:var(--sidebar-hover)}.task-card.selected{border-color:var(--accent)}.task-card-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.priority-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.task-card-title{font-weight:500;font-size:14px;flex:1;min-width:0}.task-card-desc{font-size:13px;color:var(--text-secondary);margin-bottom:8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px}.meta-chip{font-size:12px;color:var(--text-secondary);background:var(--input-bg);padding:2px 8px;border-radius:10px}.meta-chip.overdue{color:#f44}.task-card-actions{display:flex;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--divider);flex-wrap:wrap}.action-btn{padding:6px 14px;border:1px solid var(--divider);border-radius:16px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:12.5px;font-family:var(--font);transition:all .15s}.action-btn:hover{background:var(--input-bg)}.action-btn.chat-btn{color:var(--accent);border-color:var(--accent)}.status-pending{color:#888;border-color:#888}.status-in_progress{color:#2aabee;border-color:#2aabee}.status-completed{color:#0ac630;border-color:#0ac630}.status-cancelled{color:#f44;border-color:#f44}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:8px 16px;cursor:pointer;font-size:14px;font-family:var(--font);font-weight:500;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-primary.btn-sm{padding:6px 12px;font-size:13px}.btn-secondary{background:var(--input-bg);color:var(--text-secondary);border:none;border-radius:var(--radius-sm);padding:8px 16px;cursor:pointer;font-size:14px;font-family:var(--font)}.btn-secondary:hover{background:var(--sidebar-hover)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--sidebar-bg);border-radius:var(--radius);padding:24px;width:100%;max-width:460px;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow);border:1px solid var(--divider)}.modal h3{font-size:18px;font-weight:600;margin-bottom:20px}.task-modal{max-width:480px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.modal-close{display:block;width:100%;margin-top:12px;padding:10px;background:var(--input-bg);border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-family:var(--font)}.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-field label{font-size:12.5px;color:var(--text-secondary);font-weight:500}.form-field input,.form-field select,.form-field textarea{background:var(--input-bg);border:1px solid var(--divider);border-radius:var(--radius-sm);padding:10px 12px;color:var(--text-primary);font-size:14px;font-family:var(--font);outline:none;transition:border-color .15s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent)}.form-field select option{background:var(--sidebar-bg)}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px}.auth-card{background:var(--sidebar-bg);border-radius:var(--radius);padding:40px 36px;width:100%;max-width:380px;box-shadow:var(--shadow);border:1px solid var(--divider)}.auth-logo{text-align:center;margin-bottom:28px}.auth-logo h1{font-size:22px;font-weight:600;margin:12px 0 6px}.auth-logo p{color:var(--text-secondary);font-size:14px}.auth-form{display:flex;flex-direction:column;gap:12px}.input-group input,.input-group select{width:100%;background:var(--input-bg);border:1px solid var(--divider);border-radius:var(--radius-sm);padding:12px 14px;color:var(--text-primary);font-size:15px;font-family:var(--font);outline:none;transition:border-color .15s}.input-group input:focus,.input-group select:focus{border-color:var(--accent)}.input-group input::placeholder{color:var(--text-muted)}.auth-error{color:#ff6b6b;font-size:13px;text-align:center;padding:8px;background:#ff6b6b1a;border-radius:var(--radius-sm)}.auth-btn{width:100%;padding:13px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:15px;font-family:var(--font);font-weight:600;cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:4px}.auth-btn:hover{background:var(--accent-hover)}.auth-btn:disabled{opacity:.7;cursor:not-allowed}.auth-switch{text-align:center;margin-top:20px;font-size:14px;color:var(--text-secondary)}.auth-switch button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:14px;font-family:var(--font)}.user-list{display:flex;flex-direction:column;gap:4px;max-height:350px;overflow-y:auto;margin-bottom:12px}.user-list-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:background .1s}.user-list-item:hover{background:var(--sidebar-hover)}.user-list-name{font-weight:500;font-size:14px}.user-list-role{font-size:12px;color:var(--text-secondary)}.empty-state{text-align:center;padding:48px 20px;color:var(--text-secondary)}.empty-state p{margin-bottom:12px}.empty-state button{background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:8px 20px;cursor:pointer;font-family:var(--font)}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--divider);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.sidebar-wrapper{display:contents}@media (max-width: 768px){.app-layout{position:relative;height:100%;overflow:hidden}.app-layout{position:fixed!important;top:var(--vv-offset, 0px);left:0;right:0;height:var(--vv-height, 100dvh)!important}.sidebar-wrapper{display:flex;position:absolute;top:var(--sat, 0px);left:0;right:0;bottom:0;z-index:10;transition:transform .25s ease}.sidebar-wrapper.mobile-hidden{transform:translate(-100%);pointer-events:none}.sidebar{width:100%!important;max-width:100%!important;position:relative!important;height:100%!important}.main-content{position:absolute!important;top:var(--sat, 0px);left:0;right:0;bottom:0;z-index:5;transition:transform .25s ease;transform:translate(100%);overflow:hidden}.main-content:not(.mobile-hidden){transform:translate(0)}.mobile-hidden{transform:translate(100%);pointer-events:none}.chat-view{display:flex;flex-direction:column;height:100%;overflow:hidden}.chat-header{padding-left:8px;flex-shrink:0}.messages-container{flex:1!important;min-height:0!important;overflow-y:auto!important}.chat-input-area{flex-shrink:0;padding-bottom:10px}.chat-input{padding:13px 0}.chat-back-btn{display:flex!important}.conv-item{padding:10px 12px;min-height:64px}.send-btn{width:42px;height:42px}}@media (min-width: 769px){.chat-back-btn{display:none!important}}.attach-btn{width:36px;height:36px;border-radius:50%;border:none;background:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s}.attach-btn:hover{color:var(--accent)}.attach-btn:disabled{opacity:.5;cursor:default}
