:root{--bg:#F6F7F5;--surface:#FFFFFF;--surface-2:#F1F2F0;--surface-3:#E9EBE8;--border:#E7E9E7;--border-2:#D7DAD7;--text:#0B1220;--text-2:#5B6472;--muted:#7A8494;--faint:#A8B0BC;--primary:#0B1220;--primary-contrast:#ffffff;--green:#00A884;--green-hover:#00916F;--green-soft:#E4F7F0;--green-soft-text:#046C4E;--amber:#d97706;--amber-soft:#fdf3e5;--red:#dc2626;--red-soft:#fdeceb;--blue:#2563eb;--blue-soft:#eaf1fe;--r-sm:7px;--r:10px;--r-lg:14px;--r-xl:18px;--sh-sm:0 1px 2px rgba(0,0,0,.04);--sh:0 2px 8px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--sh-lg:0 12px 32px rgba(0,0,0,.10);--rail:60px;--panel:260px;--ease:cubic-bezier(.4,0,.2,1)}[data-theme=dark]{--bg:#0B1220;--surface:#121A29;--surface-2:#1A2436;--surface-3:#223049;--border:#233046;--border-2:#2C3B54;--text:#EEF2F7;--text-2:#A5AFBF;--muted:#8A94A6;--faint:#5B6472;--primary:#EEF2F7;--primary-contrast:#0B1220;--green:#00C795;--green-hover:#00B085;--green-soft:#0C2A22;--green-soft-text:#00C795;--amber:#f59e0b;--amber-soft:#241a08;--red:#ef4444;--red-soft:#241010;--blue:#3b82f6;--blue-soft:#0d1a2e;--sh-sm:0 1px 2px rgba(0,0,0,.3);--sh:0 2px 8px rgba(0,0,0,.4);--sh-lg:0 12px 32px rgba(0,0,0,.6)}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;letter-spacing:-.01em}a{color:inherit;text-decoration:none}button{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:8px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--faint)}::selection{background:color-mix(in srgb,var(--green) 25%,transparent)}.shell{display:flex;height:100vh;overflow:hidden}.rail{width:var(--rail);background:#0B1220;border-right:none;display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:4px;flex-shrink:0}.rail .logo{width:34px;height:34px;background:#00A884;color:#fff;place-items:center;font-weight:700;font-size:16px;margin-bottom:12px;letter-spacing:-.03em}.rail .ico-btn,.rail .logo{border-radius:9px;display:grid}.rail .ico-btn{width:40px;height:40px;place-items:center;color:#8A94A6;transition:all .15s var(--ease);position:relative}.rail .ico-btn.active,.rail .ico-btn:hover{background:rgba(255,255,255,.12);color:#fff}.rail .spacer{flex:1 1}.rail .avatar{width:32px;height:32px;border-radius:50%;background:#1E293B;color:#B7C0CE;display:grid;place-items:center;font-weight:600;font-size:12px;cursor:pointer;border:none}.content{flex:1 1;overflow:auto;display:flex;flex-direction:column}.topbar{height:56px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:space-between;padding:0 24px;position:-webkit-sticky;position:sticky;top:0;z-index:10;flex-shrink:0}.topbar,.topbar .tt{display:flex;align-items:center}.topbar .tt{gap:12px}.topbar h1{font-size:15px;font-weight:600;margin:0;letter-spacing:-.02em}.topbar .sub{color:var(--muted);font-size:13px}.page{padding:28px 32px;max-width:1180px;width:100%;margin:0 auto}@media (max-width:640px){.page{padding:18px}}h1{font-size:22px;font-weight:640;letter-spacing:-.025em;margin:0}h2{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}h2,h3{font-weight:600;margin:0 0 14px}h3{font-size:14px;letter-spacing:-.01em}.muted{color:var(--muted);font-size:13px}.dim{color:var(--text-2)}.grid{display:grid;grid-gap:14px;gap:14px}.grid.c4{grid-template-columns:repeat(4,1fr)}.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c2{grid-template-columns:repeat(2,1fr)}@media (max-width:900px){.grid.c3,.grid.c4{grid-template-columns:repeat(2,1fr)}.grid.c2{grid-template-columns:1fr}}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px;transition:border-color .15s var(--ease)}.metric:hover{border-color:var(--border-2)}.metric .label{color:var(--muted);font-size:12.5px;font-weight:500}.metric .value{font-size:30px;font-weight:660;margin-top:8px;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metric.inverted{background:#0B1220;border-color:#0B1220}.metric.inverted .label{color:#8A94A6}.metric.inverted .value{color:#00E5A8}.metric.inverted .delta{color:#8A94A6}.metric .delta{font-size:12px;margin-top:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px;margin-bottom:14px}.card-link{display:block;transition:all .15s var(--ease)}.card-link:hover{transform:translateY(-1px)}.card-link:hover .card{border-color:var(--border-2);box-shadow:var(--sh)}.row{justify-content:space-between;align-items:center}.row,.stack{display:flex}.stack{flex-direction:column;gap:2px}.ava{width:38px;height:38px;border-radius:10px;background:var(--surface-2);color:var(--text-2);display:grid;place-items:center;font-weight:600;font-size:14px;flex-shrink:0;border:1px solid var(--border)}.badge{font-size:11.5px;font-weight:550;padding:3px 9px 3px 7px;border-radius:99px;display:inline-flex;align-items:center;gap:5px;border:1px solid transparent}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge.connected,.badge.green,.badge.open{color:var(--green-soft-text);background:var(--green-soft)}.badge.connected .dot,.badge.green .dot,.badge.open .dot{background:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 20%,transparent)}.badge.amber,.badge.connecting{color:var(--amber);background:var(--amber-soft)}.badge.close,.badge.disconnected,.badge.gray,.badge.pending{color:var(--muted);background:var(--surface-2)}.badge.blue{color:var(--blue);background:var(--blue-soft)}.tag{font-size:11.5px;font-weight:500;padding:2px 8px;border-radius:6px;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--primary);color:var(--primary-contrast);font-weight:550;font-size:13.5px;padding:8px 15px;border-radius:var(--r-sm);border:1px solid var(--primary);cursor:pointer;transition:all .13s var(--ease);white-space:nowrap}.btn:hover{opacity:.88}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border-2)}.btn.secondary:hover{background:var(--surface-2);opacity:1}.btn.ghost{background:transparent;color:var(--text-2);border-color:transparent}.btn.ghost:hover{background:var(--surface-2);color:var(--text);opacity:1}.btn.danger{background:var(--surface);color:var(--red);border-color:var(--border-2)}.btn.danger:hover{background:var(--red-soft);border-color:color-mix(in srgb,var(--red) 30%,transparent);opacity:1}.btn.sm{padding:5px 10px;font-size:12.5px}.btn.icon{padding:7px}.btn.block{width:100%}label{display:block;margin:16px 0 7px;font-size:13px;color:var(--text-2);font-weight:500}input,select,textarea{width:100%;background:var(--surface);border:1px solid var(--border-2);color:var(--text);padding:9px 12px;border-radius:var(--r-sm);font-size:13.5px;font-family:inherit;transition:border-color .13s var(--ease),box-shadow .13s var(--ease)}input::placeholder,textarea::placeholder{color:var(--faint)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--text-2);box-shadow:0 0 0 3px color-mix(in srgb,var(--text) 8%,transparent)}textarea{min-height:84px;resize:vertical;line-height:1.55}.switch,select{cursor:pointer}.switch{position:relative;display:inline-flex;align-items:center;gap:10px}.switch input{position:absolute;opacity:0;width:0;height:0}.switch .track{width:38px;height:22px;border-radius:99px;background:var(--surface-3);transition:background .2s var(--ease);flex-shrink:0;position:relative}.switch .track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--sh-sm);transition:transform .2s var(--ease)}.switch input:checked+.track{background:var(--green)}.switch input:checked+.track:after{transform:translateX(16px)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:var(--bg)}.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:34px 30px;box-shadow:var(--sh-lg)}.auth-card .brand{font-size:21px;font-weight:680;text-align:center;letter-spacing:-.03em}.auth-card .brand b{color:var(--green)}.auth-card .sub{text-align:center;color:var(--muted);margin:6px 0 24px;font-size:13px}.error-msg{background:var(--red-soft);border:1px solid color-mix(in srgb,var(--red) 22%,transparent);color:var(--red);border-radius:var(--r-sm)}.error-msg,.ok-msg{padding:9px 12px;font-size:12.5px;margin-bottom:12px}.ok-msg{background:var(--green-soft);border:1px solid color-mix(in srgb,var(--green) 22%,transparent);color:var(--green);border-radius:var(--r-sm)}.inbox{display:grid;grid-template-columns:320px 1fr 280px;height:calc(100vh - 56px)}.inbox-list{border-right:1px solid var(--border);background:var(--surface);overflow-y:auto}.inbox-search{padding:12px;border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;background:var(--surface);z-index:2}.inbox-search .box{display:flex;align-items:center;gap:8px;background:var(--surface-2);border-radius:var(--r-sm);padding:7px 10px;color:var(--muted)}.inbox-search input{border:none;background:transparent;padding:0;font-size:13px}.inbox-search input:focus{box-shadow:none}.conv{display:flex;gap:11px;padding:12px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s var(--ease)}.conv.active,.conv:hover{background:var(--surface-2)}.conv.active:before{content:"";position:absolute;left:0;width:2px;height:44px;background:var(--text);border-radius:2px}.conv .body{flex:1 1;min-width:0}.conv .nm{font-weight:600;font-size:13.5px;display:flex;justify-content:space-between;align-items:center}.conv .nm .t{font-size:11px;color:var(--muted);font-weight:400}.conv .pv{color:var(--text-2);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.inbox-chat{display:flex;flex-direction:column;background:var(--bg)}.chat-head{height:56px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:11px;padding:0 20px;background:var(--surface)}.chat-body{flex:1 1;overflow-y:auto;padding:22px;display:flex;flex-direction:column;gap:6px}.bubble{max-width:64%;padding:9px 12px;border-radius:11px 11px 11px 3px;font-size:13.5px;white-space:pre-wrap;line-height:1.45}.bubble.user{align-self:flex-start;background:#F1F3F1}.bubble.assistant{align-self:flex-end;background:#DCFCE9;color:#14532D;border-radius:11px 11px 3px 11px}.bubble .time{display:block;font-size:10px;opacity:.55;margin-top:3px;text-align:right}.bubble .check{color:var(--green);font-size:10px;margin-left:4px}[data-theme=dark] .bubble.user{background:#1B2537;color:#EEF2F7}[data-theme=dark] .bubble.assistant{background:#0E3B2E;color:#B5F0D7}.chat-empty{flex:1 1;display:grid;place-items:center;color:var(--muted);text-align:center}.inbox-ctx{border-left:1px solid var(--border);background:var(--surface);overflow-y:auto;padding:18px}.kanban{display:flex;gap:14px;overflow-x:auto;padding:2px}.kcol{min-width:270px;width:270px}.kcol .khead{justify-content:space-between;margin-bottom:10px;padding:0 2px}.kcol .khead,.kcol .khead .kt{display:flex;align-items:center}.kcol .khead .kt{font-weight:600;font-size:13px;gap:7px}.kcol .kcount{color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:12px;margin-bottom:9px;cursor:pointer;transition:all .13s var(--ease)}.kcard:hover{border-color:var(--border-2);box-shadow:var(--sh);transform:translateY(-1px)}.kcard .knm{font-weight:600;font-size:13px}.kcard .kpv{color:var(--text-2);font-size:12px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.divider{border-bottom:1px solid var(--border);padding:11px 0}.divider:last-child{border-bottom:none}.qr-box{text-align:center;padding:24px}.qr-box img{width:220px;height:220px;border-radius:var(--r);border:1px solid var(--border);padding:8px;background:#fff}.dropzone{border:1.5px dashed var(--border-2);border-radius:var(--r);padding:22px;text-align:center;cursor:pointer;transition:all .13s var(--ease);color:var(--text-2);background:var(--surface-2);font-size:13px}.dropzone:hover{border-color:var(--text-2);background:var(--surface-3)}.empty{text-align:center;padding:48px 20px;color:var(--muted)}.empty .ico{opacity:.4;margin-bottom:12px;display:inline-flex}.chip-toggle{display:inline-flex;gap:2px;background:var(--surface-2);padding:3px;border-radius:var(--r-sm)}.chip-toggle a{padding:5px 12px;border-radius:5px;font-size:12.5px;color:var(--muted);font-weight:500}.chip-toggle a.on{background:var(--surface);color:var(--text);box-shadow:var(--sh-sm)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.pulse{animation:pulse 2s var(--ease) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}