:root{--primary: #1976d2;--primary-dark: #0d47a1;--sidebar-bg: #1565c0;--sidebar-active: #1976d2;--sidebar-hover: rgba(255, 255, 255, .1);--sidebar-text: rgba(255, 255, 255, .85);--header-gradient: linear-gradient(135deg, #1976d2, #00acc1);--bg-main: #f5f6fa;--card-bg: #ffffff;--text-primary: #1a1a2e;--text-secondary: #6b7280;--success: #4caf50;--danger: #f44336;--warning: #ff9800;--border-radius: 8px;--border-radius-lg: 12px;--shadow: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .12)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg-main);color:var(--text-primary);line-height:1.5}a{text-decoration:none;color:inherit}button{cursor:pointer;border:none;outline:none;font-family:inherit;font-size:14px}input,textarea,select{font-family:inherit;font-size:14px;outline:none}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;font-size:18px;color:var(--text-secondary)}.app-layout{display:flex;min-height:100vh}.sidebar{width:190px;min-width:190px;background:var(--sidebar-bg);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;overflow-y:auto}.sidebar-logo{padding:16px 14px;background:var(--primary-dark);text-align:center}.sidebar-logo h1{color:#fff;font-size:18px;font-weight:700;letter-spacing:.5px}.sidebar-logo p{color:#fff9;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-top:2px}.sidebar-nav{flex:1;padding:8px 0}.sidebar-item{display:flex;align-items:center;gap:10px;padding:10px 14px;color:var(--sidebar-text);font-size:12.5px;transition:all .15s;border-left:3px solid transparent}.sidebar-item:hover{background:var(--sidebar-hover);color:#fff}.sidebar-item.active{background:var(--sidebar-active);color:#fff;border-left-color:#fff}.sidebar-item .icon{font-size:16px;width:20px;text-align:center;flex-shrink:0}.main-area{flex:1;margin-left:190px;display:flex;flex-direction:column;min-height:100vh}.top-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:50px;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:50}.connection-status{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.status-dot.connected{background:var(--success);box-shadow:0 0 6px #4caf5080}.status-dot.disconnected{background:var(--danger);box-shadow:0 0 6px #f4433680}.user-menu{display:flex;align-items:center;gap:10px;position:relative}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.user-email{font-size:13px;color:var(--text-secondary)}.logout-btn{padding:6px 12px;background:var(--danger);color:#fff;border-radius:var(--border-radius);font-size:12px;transition:opacity .15s}.logout-btn:hover{opacity:.9}.page-content{flex:1;padding:0}.section-header{background:var(--header-gradient);padding:24px 28px;color:#fff;display:flex;align-items:center;gap:16px}.section-header .header-icon{font-size:36px;opacity:.9}.section-header h2{font-size:22px;font-weight:600}.section-header p{font-size:13px;opacity:.85;margin-top:2px}.section-header .header-actions{margin-left:auto;display:flex;gap:8px}.card{background:var(--card-bg);border-radius:var(--border-radius);box-shadow:var(--shadow);padding:20px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--border-radius);font-size:13px;font-weight:500;transition:all .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{opacity:.9}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}.btn-warning{background:var(--warning);color:#fff}.btn-warning:hover{opacity:.9}.btn-outline{background:transparent;border:1px solid var(--primary);color:var(--primary)}.btn-outline:hover{background:var(--primary);color:#fff}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.form-control{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:var(--border-radius);font-size:14px;transition:border-color .15s}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1976d21a}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.section-body{padding:24px 28px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0d47a1,#1976d2,#00acc1)}.login-card{background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);padding:40px;width:380px;max-width:90vw}.login-card .logo{text-align:center;margin-bottom:30px}.login-card .logo h1{font-size:28px;color:var(--primary);font-weight:700}.login-card .logo p{color:var(--text-secondary);font-size:13px;margin-top:4px}.login-card .form-group{margin-bottom:20px}.login-card .btn-primary{width:100%;padding:12px;font-size:15px;justify-content:center}.login-error{background:#fef2f2;border:1px solid #fecaca;color:var(--danger);padding:10px 14px;border-radius:var(--border-radius);font-size:13px;margin-bottom:16px}.stat-card{display:flex;align-items:center;gap:14px;padding:18px}.stat-card .stat-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#1976d2,#00acc1);display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;flex-shrink:0}.stat-card .stat-info{flex:1}.stat-card .stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-weight:500}.stat-card .stat-value{font-size:28px;font-weight:700;color:var(--text-primary);line-height:1.2}.connection-card{display:flex;align-items:center;gap:12px;padding:18px}.connection-card .connection-dot{width:14px;height:14px;border-radius:50%}.connection-card .connection-dot.connected{background:var(--success);box-shadow:0 0 8px #4caf5080}.connection-card .connection-dot.disconnected{background:var(--danger);box-shadow:0 0 8px #f4433680}.connection-card .connection-text{font-size:16px;font-weight:600}.cloud-api-header{background:linear-gradient(135deg,#d32f2f,#f44336)!important}.config-section{margin-bottom:24px}.config-section h3{font-size:16px;font-weight:600;margin-bottom:14px;color:var(--text-primary);display:flex;align-items:center;gap:8px}.config-section h3 .dot{width:10px;height:10px;border-radius:50%;display:inline-block}.webhook-info{background:#f0f9ff;border:1px solid #bae6fd;border-radius:var(--border-radius);padding:14px;display:flex;align-items:center;gap:10px;margin-bottom:12px}.webhook-info code{background:#e0f2fe;padding:4px 8px;border-radius:4px;font-size:13px;flex:1;word-break:break-all}.webhook-info .copy-btn{padding:6px 10px;background:var(--primary);color:#fff;border-radius:4px;font-size:12px;white-space:nowrap}.terminal{background:#1a1a2e;border-radius:var(--border-radius);padding:16px;max-height:300px;overflow-y:auto;font-family:Courier New,monospace}.terminal .log-line{color:#4ade80;font-size:12px;line-height:1.8;white-space:pre-wrap;word-break:break-all}.terminal .log-line:nth-child(2n){color:#67e8f9}.terminal::-webkit-scrollbar{width:6px}.terminal::-webkit-scrollbar-track{background:#1a1a2e}.terminal::-webkit-scrollbar-thumb{background:#374151;border-radius:3px}.qr-container{text-align:center;padding:20px}.qr-container img{max-width:260px;border-radius:var(--border-radius);box-shadow:var(--shadow)}.qr-container p{margin-top:12px;color:var(--text-secondary);font-size:13px}.btn-group{display:flex;gap:8px;margin-top:16px}.drop-zone{border:2px dashed #d1d5db;border-radius:var(--border-radius-lg);padding:40px 20px;text-align:center;cursor:pointer;transition:all .2s}.drop-zone:hover{border-color:var(--primary);background:#f0f9ff}.drop-zone.drag-over{border-color:var(--primary);border-style:solid;background:#e3f2fd}.progress-bar{width:100%;height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .3s}.files-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.file-card{display:flex;flex-direction:column;align-items:center;padding:16px 12px;border:1px solid #e5e7eb;border-radius:var(--border-radius);transition:box-shadow .15s;position:relative}.file-card:hover{box-shadow:var(--shadow)}.file-icon{width:64px;height:64px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;overflow:hidden}.file-info{text-align:center;width:100%}.file-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px;margin:0 auto}.file-meta{font-size:11px;color:var(--text-secondary)}.file-delete{position:absolute;top:6px;right:6px;background:none;border:none;font-size:14px;cursor:pointer;opacity:0;transition:opacity .15s;padding:4px}.file-card:hover .file-delete{opacity:1}.file-delete:hover{transform:scale(1.2)}.flow-steps{display:flex;flex-direction:column;gap:10px}.flow-step{display:flex;align-items:flex-start;gap:10px;padding:14px;border-radius:var(--border-radius);border:1px solid #e5e7eb;background:#fff;position:relative}.flow-step-text{border-left:4px solid var(--primary)}.flow-step-file{border-left:4px solid var(--success)}.flow-step-pause{border-left:4px solid var(--warning)}.flow-step-drag{cursor:grab;font-size:18px;color:#9ca3af;padding:4px 2px;-webkit-user-select:none;user-select:none}.flow-step-drag:active{cursor:grabbing}.flow-step-content{flex:1}.flow-step-label{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.flow-step-delete{background:none;border:none;font-size:16px;color:#9ca3af;cursor:pointer;padding:4px}.flow-step-delete:hover{color:var(--danger)}.tool-btn{background:#e3f2fd;color:var(--primary);border:1px solid #bbdefb}.tool-btn:hover{background:#bbdefb}.tool-btn:disabled{opacity:.5;cursor:not-allowed}.toast{position:fixed;bottom:24px;right:24px;background:var(--success);color:#fff;padding:12px 24px;border-radius:var(--border-radius);font-size:14px;box-shadow:var(--shadow-lg);z-index:1000;animation:toast-in .3s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);padding:10px 14px;border-bottom:2px solid #e5e7eb}.data-table td{padding:12px 14px;border-bottom:1px solid #f3f4f6;font-size:13px}.data-table tr:hover td{background:#f9fafb}.badge{display:inline-block;font-size:11px;padding:3px 10px;border-radius:10px;font-weight:600}.badge-primary{background:#e3f2fd;color:var(--primary)}.badge-warning{background:#fff3e0;color:#e65100}.badge-success{background:#e8f5e9;color:var(--success)}.btn-sm{padding:4px 10px;font-size:12px}.chat-layout{display:flex;height:calc(100vh - 135px);min-height:500px}.chat-sidebar{width:320px;min-width:320px;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;background:#fff}.chat-search{padding:12px;border-bottom:1px solid #e5e7eb}.chat-search .form-control{font-size:13px}.chat-online-bar{padding:8px 14px;font-size:12px;color:var(--text-secondary);background:#f0f9ff;display:flex;align-items:center;gap:6px}.chat-list{flex:1;overflow-y:auto}.chat-item{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;border-bottom:1px solid #f3f4f6;transition:background .1s}.chat-item:hover{background:#f9fafb}.chat-item.active{background:#e3f2fd}.chat-item-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;flex-shrink:0}.chat-item-info{flex:1;min-width:0}.chat-item-name{font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px}.chat-item-last{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-item-time{font-size:11px;color:var(--text-secondary);flex-shrink:0}.chat-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-top:1px solid #e5e7eb;gap:8px}.chat-main{flex:1;display:flex;flex-direction:column;background:#f5f6fa}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.chat-empty h3{font-size:20px;color:var(--text-primary)}.chat-header{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fff;border-bottom:1px solid #e5e7eb}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}.chat-bubble{max-width:70%;display:flex;flex-direction:column}.chat-bubble.incoming{align-self:flex-start}.chat-bubble.outgoing{align-self:flex-end}.bubble-content{padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.5}.incoming .bubble-content{background:#fff;color:var(--text-primary);border-bottom-left-radius:4px;box-shadow:0 1px 2px #0000000d}.outgoing .bubble-content{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.bubble-content p{margin:0;white-space:pre-wrap;word-break:break-word}.bubble-time{font-size:10px;color:var(--text-secondary);margin-top:3px;padding:0 4px}.incoming .bubble-time{text-align:left}.outgoing .bubble-time{text-align:right}.chat-input{display:flex;gap:8px;padding:12px 16px;background:#fff;border-top:1px solid #e5e7eb}.chat-input .form-control{flex:1}.chat-input .btn{padding:10px 16px;font-size:16px}.toggle-switch{position:relative;display:inline-block;width:46px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#ccc;border-radius:24px;transition:.3s}.toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s}.toggle-switch input:checked+.toggle-slider{background:var(--success)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(22px)}.faq-item{border-bottom:1px solid #e5e7eb}.faq-item:last-child{border-bottom:none}.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 0;background:none;border:none;font-size:14px;font-weight:500;color:var(--text-primary);text-align:left;cursor:pointer;transition:color .15s}.faq-question:hover{color:var(--primary)}.faq-chevron{font-size:12px;color:var(--text-secondary);transition:transform .3s ease;flex-shrink:0}.faq-chevron.open{transform:rotate(180deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0}.faq-answer.open{max-height:300px;padding:0 0 16px}.faq-answer p{font-size:13px;color:var(--text-secondary);line-height:1.7}.toast-container{position:fixed;bottom:24px;right:24px;z-index:10000;display:flex;flex-direction:column;gap:8px}.toast-item{display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:var(--border-radius);font-size:13px;color:#fff;box-shadow:var(--shadow-lg);animation:toast-in .3s ease;min-width:200px}.toast-success{background:var(--success)}.toast-error{background:var(--danger)}.toast-warning{background:var(--warning)}.toast-info{background:var(--primary)}.toast-close{background:none;border:none;color:#ffffffb3;font-size:14px;cursor:pointer;margin-left:auto;padding:0 2px}.toast-close:hover{color:#fff}.user-dropdown{position:absolute;top:100%;right:0;background:#fff;border-radius:var(--border-radius);box-shadow:var(--shadow-lg);border:1px solid #e5e7eb;min-width:180px;z-index:200;overflow:hidden;margin-top:4px}.user-dropdown button{display:block;width:100%;text-align:left;padding:10px 16px;font-size:13px;color:var(--text-primary);background:none;border:none;cursor:pointer;border-bottom:1px solid #f3f4f6}.user-dropdown button:hover{background:#f9fafb}.user-dropdown button:last-child{border-bottom:none;color:var(--danger)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:5000}.modal-content{background:#fff;border-radius:var(--border-radius-lg);padding:28px;width:400px;max-width:90vw;box-shadow:var(--shadow-lg)}@media(max-width:1024px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.grid-4{grid-template-columns:1fr}.sidebar{width:60px;min-width:60px}.sidebar-item span:not(.icon){display:none}.main-area{margin-left:60px}}
