:root{--brand-900: #0a4a43;--brand-800: #075e54;--brand-700: #0b6b5f;--brand-600: #128c7e;--brand-500: #17a08f;--accent: #25d366;--accent-ink: #05603a;--bg: #eceef1;--bg-2: #f6f7f9;--surface: #ffffff;--surface-2: #f7f9fa;--surface-3: #eef1f3;--border: #e4e8ec;--border-strong: #d3d9df;--overlay: rgba(15, 32, 39, .48);--text: #111b21;--text-2: #54656f;--text-3: #8696a0;--on-brand: #ffffff;--on-brand-dim: #cfeae4;--danger: #c0392b;--danger-600: #b1382c;--danger-bg: #fdecea;--danger-border: #f5c6c0;--warning: #9a6a00;--warning-bg: #fff6e0;--warning-border: #f2d693;--success: #1a7a44;--success-bg: #e4f7ea;--success-border: #b7e6c6;--info: #1e5fbf;--info-bg: #e6effd;--info-border: #bcd6f7;--chat-bg: #eae6df;--bubble-in: #ffffff;--bubble-out: #d9fdd3;--r-xs: 5px;--r-sm: 7px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-pill: 999px;--sh-1: 0 1px 2px rgba(11, 27, 33, .06), 0 1px 1px rgba(11, 27, 33, .04);--sh-2: 0 2px 6px rgba(11, 27, 33, .08), 0 1px 2px rgba(11, 27, 33, .06);--sh-3: 0 10px 30px rgba(11, 27, 33, .14), 0 3px 8px rgba(11, 27, 33, .08);--sh-pop: 0 6px 22px rgba(11, 27, 33, .16);--ease: cubic-bezier(.2, .7, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-1: .09s;--dur-2: .13s;--dur-3: .18s;--ring: 0 0 0 3px rgba(18, 140, 126, .32);--ring-danger: 0 0 0 3px rgba(192, 57, 43, .28)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{line-height:1.25;color:var(--text)}h2{font-size:20px;font-weight:700;margin:0 0 4px}h3{font-size:15px;font-weight:700;letter-spacing:.01em}a{color:var(--brand-600);text-decoration:none}a:hover{text-decoration:underline}::selection{background:#25d36647}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}button{cursor:pointer;font:inherit;font-weight:600;border:1px solid transparent;border-radius:var(--r-sm);padding:8px 14px;background:var(--brand-600);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:7px;line-height:1.2;white-space:nowrap;transition:background var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),transform var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}button:hover{background:var(--brand-700)}button:active{transform:translateY(1px)}button:focus-visible{box-shadow:var(--ring)}button:disabled{opacity:.55;cursor:not-allowed;transform:none}button.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:var(--sh-1)}button.secondary:hover{background:var(--surface-2);border-color:var(--text-3)}button.ghost{background:transparent;color:var(--text-2);padding:6px 10px;border-color:transparent;box-shadow:none}button.ghost:hover{background:var(--surface-3);color:var(--text)}button.danger{background:var(--danger)}button.danger:hover{background:var(--danger-600)}button.danger:focus-visible{box-shadow:var(--ring-danger)}button.ghost.danger,button.danger.ghost{background:transparent;color:var(--danger)}button.ghost.danger:hover{background:var(--danger-bg)}button.danger-soft{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}button.danger-soft:hover{background:#fbd8d2;border-color:#eaa79e}button.danger-soft:focus-visible{box-shadow:var(--ring-danger)}button.btn-sm{padding:5px 10px;font-size:12.5px;border-radius:var(--r-xs)}.icon-btn{padding:0;width:40px;height:40px;flex:0 0 auto;border-radius:var(--r-sm)}.icon-btn.round{border-radius:var(--r-pill)}.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}input,select,textarea{font:inherit;padding:9px 11px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:#fff;color:var(--text);width:100%;transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}input::placeholder,textarea::placeholder{color:var(--text-3)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:var(--ring)}input:disabled,textarea:disabled,select:disabled{background:var(--surface-3);color:var(--text-3);cursor:not-allowed}select{cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2354656f' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;padding-right:30px}input[type=checkbox]{width:auto;accent-color:var(--brand-600);cursor:pointer}.field{display:flex;flex-direction:column;gap:5px}.field>label,.field-label{font-size:12px;font-weight:600;color:var(--text-2)}.check{display:inline-flex;gap:8px;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;color:var(--text)}.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);background:var(--surface-3);color:var(--text-2);white-space:nowrap;line-height:1.5}.badge.role-admin{background:#fdeccf;color:#9a5b00}.badge.role-atendente{background:#dcebff;color:#10559a}.badge.group-badge{background:#dbeeff;color:#0f5f9f}.badge.who-tag{background:#ebe3ff;color:#5b3ba8}.badge.stale-badge{background:var(--danger-bg);color:var(--danger)}.badge.lock-livre{background:var(--success-bg);color:var(--success)}.badge.lock-assumido{background:#fdeccf;color:#9a5b00}.badge.lock-encerrado{background:var(--surface-3);color:var(--text-2)}.chip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:3px 9px 3px 8px;border-radius:var(--r-pill);border:1px solid transparent;white-space:nowrap}.chip .dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}.chip.tone-success{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.chip.tone-warning{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.chip.tone-info{background:var(--info-bg);color:var(--info);border-color:var(--info-border)}.chip.tone-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.chip.tone-neutral{background:var(--surface-3);color:var(--text-2);border-color:var(--border)}.chip.pulse .dot{animation:dot-pulse 1.4s var(--ease) infinite}.pill{font-size:10.5px;padding:2px 9px;border-radius:var(--r-pill);font-weight:700;white-space:nowrap;letter-spacing:.01em}.pill-wait{background:var(--warning-bg);color:var(--warning)}.pill-done{background:var(--success-bg);color:var(--success)}.avatar{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;color:#fff;background:var(--brand-600);-webkit-user-select:none;user-select:none;letter-spacing:.01em}.avatar.sm{width:30px;height:30px;font-size:12px}.avatar.group{border-radius:var(--r-md)}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:14px;background:linear-gradient(90deg,var(--brand-900),var(--brand-800));color:#fff;padding:0 18px;height:56px;flex:0 0 auto;box-shadow:var(--sh-2);z-index:10}.topbar .brand{display:inline-flex;align-items:center;gap:9px;font-weight:800;letter-spacing:.2px;font-size:15.5px}.topbar .brand .brand-mark{width:28px;height:28px;border-radius:8px;background:#ffffff29;display:inline-flex;align-items:center;justify-content:center}.topbar nav{display:flex;gap:2px;margin-left:8px}.topbar nav{align-self:stretch;align-items:stretch}.topbar nav a{color:var(--on-brand-dim);text-decoration:none;padding:0 12px;display:inline-flex;align-items:center;border-radius:var(--r-sm) var(--r-sm) 0 0;font-weight:600;font-size:13.5px;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.topbar nav a:hover{background:#ffffff1a;color:#fff}.topbar nav a{position:relative}.topbar nav a.active{background:transparent;color:#fff}.topbar nav a.active:after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--accent)}.topbar nav a.active:hover{background:#ffffff14}.topbar .spacer{flex:1}.topbar .who{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25}.topbar .who strong{font-size:13.5px}.topbar .who .badge{margin-top:3px;background:#ffffff1f;color:#d9f6ee;border:1px solid rgba(255,255,255,.18);font-weight:600;letter-spacing:.02em}.topbar button.secondary{background:#ffffff1f;color:#fff;border-color:#ffffff38;box-shadow:none}.topbar button.secondary:hover{background:#fff3}.content{flex:1;min-height:0}.inbox{display:grid;grid-template-columns:360px 1fr;height:100%;min-height:0;overflow:hidden}.conv-list{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;overflow:hidden}.conv-list .filters{display:flex;gap:8px;padding:12px;border-bottom:1px solid var(--border);background:var(--surface);z-index:1}.conv-items-scroll{flex:1;min-height:0;overflow-y:auto}.side-content{animation:side-fade var(--dur-2) var(--ease)}@keyframes side-fade{0%{opacity:0}to{opacity:1}}.conv-item{display:flex;gap:11px;padding:11px 14px 11px 11px;border-bottom:1px solid var(--border);cursor:pointer;border-left:3px solid transparent;transition:background var(--dur-1) var(--ease)}.conv-item:hover{background:var(--surface-2)}.conv-item.active{background:var(--surface-3);border-left-color:var(--brand-600)}.conv-item.active .title{color:var(--brand-800)}.conv-item .conv-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.conv-item .row{display:flex;justify-content:space-between;align-items:center;gap:8px}.conv-item .title{font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.conv-item .title.strong{font-weight:700}.conv-item .time{font-size:11.5px;color:var(--text-3);flex:0 0 auto}.conv-item.unread-item{border-left-color:var(--accent)}.conv-item.unread-item .time{color:var(--accent-ink);font-weight:700}.conv-item .preview{color:var(--text-2);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.conv-item .preview .tick{color:var(--text-3);margin-right:3px}.conv-item .meta{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:1px}.conv-item .meta .line-name{font-size:11px;color:var(--text-3);font-weight:600}.conv-item.needs-reply{border-left-color:#f0ad4e}.conv-item.connection-stale{border-left-color:var(--danger)}.unread{background:var(--accent);color:#fff;border-radius:var(--r-pill);min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.list-load{padding:12px;display:flex;justify-content:center}.list-empty{padding:40px 24px;text-align:center;color:var(--text-3);display:flex;flex-direction:column;align-items:center;gap:10px}.list-empty svg{opacity:.5}.chat{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;background-color:var(--chat-bg);background-image:radial-gradient(rgba(11,27,33,.035) 1px,transparent 0);background-size:22px 22px}.chat .empty{margin:auto;color:var(--text-2);display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;padding:24px}.chat .empty .empty-badge{width:76px;height:76px;border-radius:50%;background:var(--surface);box-shadow:var(--sh-2);display:flex;align-items:center;justify-content:center;color:var(--brand-600)}.chat-header{background:var(--surface);border-bottom:1px solid var(--border);padding:9px 16px;display:flex;align-items:center;gap:12px;flex:0 0 auto;z-index:2;box-shadow:var(--sh-1)}.chat-header .info{display:flex;flex-direction:column;line-height:1.3;min-width:0}.chat-header .info .title-line{display:flex;align-items:center;gap:8px}.chat-header .info strong{font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header .info .sub{font-size:12.5px;color:var(--text-2)}.chat-header .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.admin-line{margin-top:3px}.admin-line summary{font-size:11.5px;color:var(--text-3);cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:4px;width:fit-content}.admin-line summary::-webkit-details-marker{display:none}.admin-line summary:hover{color:var(--text-2)}.admin-line .admin-line-body{margin-top:5px;font-size:11.5px;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:7px 10px;display:grid;gap:3px}.admin-line .admin-line-body code{font-size:11px;color:var(--text)}.messages{flex:1;min-height:0;overflow-y:auto;padding:18px clamp(16px,6%,64px);display:flex;flex-direction:column;gap:4px}.history-actions{align-self:center;display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:8px}.msg{position:relative;max-width:min(68%,560px);padding:7px 10px 8px;border-radius:9px;box-shadow:0 1px .5px #0b1b2121;white-space:pre-wrap;overflow-wrap:anywhere;animation:msg-in var(--dur-2) var(--ease-out);margin-top:2px}.msg.inbound{align-self:flex-start;background:var(--bubble-in);border-top-left-radius:3px}.msg.outbound{align-self:flex-end;background:var(--bubble-out);border-top-right-radius:3px}.msg .msg-meta{display:inline-flex;align-items:center;gap:4px;float:right;font-size:10.5px;color:var(--text-3);margin:6px 0 -2px 10px;-webkit-user-select:none;user-select:none}.msg .msg-meta .ticks{display:inline-flex;align-items:center}.msg .msg-meta .ticks.read{color:#53bdeb}.msg .msg-meta.failed{color:var(--danger);font-weight:600}.msg .sender{display:block;margin-bottom:2px;font-size:12px;font-weight:700;color:var(--brand-600)}.msg .sender.ext{color:var(--warning);font-weight:600;font-style:italic}.msg .hold-note{display:inline-flex;align-items:center;gap:5px;margin-top:5px;font-size:11.5px;color:var(--warning);background:var(--warning-bg);border-radius:var(--r-xs);padding:3px 7px}.media-error{color:var(--warning);background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--r-sm);padding:6px 9px;font-size:12px;display:inline-flex;gap:6px;align-items:center}.msg-quote{display:block;width:100%;text-align:left;border:none;box-shadow:none;background:#0b1b210f;border-left:3px solid var(--brand-500);border-radius:6px;padding:5px 9px 6px;margin:0 0 5px;cursor:pointer;font:inherit;color:inherit;transition:background var(--dur-1) var(--ease)}.msg-quote:hover{background:#0b1b211a}.msg-quote .q-sender{display:block;font-size:11.5px;font-weight:700;color:var(--brand-600);margin-bottom:1px}.msg-quote .q-body{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12.5px;color:var(--text-2);white-space:pre-wrap}.msg{--msg-actions-opacity: 0}.msg:hover{--msg-actions-opacity: 1}.msg-actions{position:absolute;top:-12px;display:flex;gap:2px;opacity:var(--msg-actions-opacity);transition:opacity var(--dur-1) var(--ease);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);box-shadow:var(--sh-2);padding:2px;z-index:2}.msg.inbound .msg-actions{right:-8px}.msg.outbound .msg-actions{left:-8px}.msg-actions button{background:transparent;border:none;box-shadow:none;color:var(--text-2);width:26px;height:26px;padding:0;border-radius:var(--r-pill)}.msg-actions button:hover{background:var(--surface-3);color:var(--text)}.msg.flash{animation:msg-flash 1.1s var(--ease)}@keyframes msg-flash{0%,60%{box-shadow:0 0 0 3px #128c7e73}to{box-shadow:0 1px .5px #0b1b2121}}.reply-bar{display:flex;align-items:center;gap:10px;padding:8px 12px 0}.reply-bar .reply-preview{flex:1;min-width:0;background:var(--surface-2);border-left:3px solid var(--brand-500);border-radius:6px;padding:6px 10px}.reply-bar .q-sender{display:block;font-size:11.5px;font-weight:700;color:var(--brand-600)}.reply-bar .q-body{display:block;font-size:12.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-desc{font-size:13px;color:var(--text-2);line-height:1.55;white-space:pre-wrap;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 12px;margin:0 0 12px}.member-list{list-style:none;margin:0;padding:0;max-height:300px;overflow-y:auto;display:flex;flex-direction:column}.member-list li{display:flex;align-items:center;gap:10px;padding:7px 4px;border-bottom:1px solid var(--border)}.member-list li:last-child{border-bottom:none}.member-list .member-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.member-list .member-phone{font-size:12px;color:var(--text-3)}.chat-header .info .sub .linklike{font-size:12.5px;font-weight:600}.day-sep{align-self:center;background:#ffffffe6;color:var(--text-2);font-size:11.5px;font-weight:600;padding:3px 12px;border-radius:var(--r-pill);box-shadow:var(--sh-1);margin:8px 0;text-transform:uppercase;letter-spacing:.03em}.attachment{margin-top:4px}.attachment img{max-width:240px;border-radius:var(--r-sm);display:block;cursor:zoom-in}.audio-player{display:flex;align-items:center;gap:11px;width:260px;max-width:100%;padding:4px 2px}.audio-player .ap-main{padding-top:2px}.audio-player .ap-play{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:var(--brand-600);color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--sh-1)}.audio-player .ap-play:hover:not(:disabled){background:var(--brand-700)}.audio-player .ap-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.audio-player .ap-track{position:relative;height:4px;border-radius:var(--r-pill);background:#0b1b2124;cursor:pointer}.msg.outbound .audio-player .ap-track{background:#0b1b211f}.audio-player .ap-fill{position:absolute;inset:0 auto 0 0;border-radius:var(--r-pill);background:var(--brand-600)}.audio-player .ap-knob{position:absolute;top:50%;width:11px;height:11px;border-radius:50%;background:var(--brand-600);transform:translate(-50%,-50%);box-shadow:0 1px 2px #00000040}.audio-player .ap-time{font-size:11px;color:var(--text-2);font-variant-numeric:tabular-nums}.viewer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#060f12e6;z-index:80;display:flex;align-items:center;justify-content:center;animation:fade-in var(--dur-2) var(--ease)}.viewer-stage{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;display:flex;align-items:center;justify-content:center;padding:64px 24px}.viewer-stage img{transform-origin:center center;transition:transform var(--dur-2) var(--ease);border-radius:var(--r-sm);box-shadow:0 16px 50px #00000080;-webkit-user-select:none;user-select:none}.viewer-toolbar{position:fixed;top:16px;right:16px;display:flex;gap:8px;z-index:81}.viewer-toolbar button{width:42px;height:42px;padding:0;border-radius:var(--r-md);background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.viewer-toolbar button:hover{background:#ffffff38}.viewer-hint{position:fixed;bottom:18px;left:50%;transform:translate(-50%);color:#fff9;font-size:12px;z-index:81}.chat-header .actions button{padding:8px 13px}.attachment video{max-width:320px;max-height:240px;border-radius:var(--r-sm);display:block}.attachment .file-link{display:inline-flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 11px;color:var(--text);font-weight:600;font-size:13px}.attachment .file-link:hover{background:var(--surface-3);text-decoration:none}.composer-wrap{background:var(--surface);border-top:1px solid var(--border);flex:0 0 auto}.composer-lock{display:flex;align-items:center;gap:8px;padding:10px 14px;font-size:13px;color:var(--text-2);background:var(--surface-2);border-top:1px solid var(--border)}.composer-lock.danger{color:var(--danger);background:var(--danger-bg)}.file-chip{display:flex;align-items:center;gap:10px;padding:10px 12px 2px;color:var(--text-2);font-size:12.5px}.file-chip .file-chip-name{display:inline-flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:6px 10px;max-width:min(520px,70vw)}.file-chip .file-chip-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer{display:flex;gap:9px;padding:11px 12px;align-items:center}.composer textarea{resize:none;min-height:42px;max-height:140px;border-radius:var(--r-lg);padding:10px 14px}.composer .icon-btn.secondary{color:var(--text-2)}.composer .send-btn{background:var(--brand-600);color:#fff}.composer .send-btn:hover:not(:disabled){background:var(--brand-700)}.composer .send-btn:disabled{background:var(--surface-3);color:var(--text-2);opacity:1}.page{padding:24px;max-width:1180px;margin:0 auto;overflow-y:auto;height:100%}.page-head{margin-bottom:18px}.page-head .sub{color:var(--text-2);font-size:13.5px;margin:2px 0 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px;margin-bottom:16px;box-shadow:var(--sh-1)}.card>h3:first-child{margin-top:0}.card-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.card-head h3{margin:0}.card-head .spacer{flex:1}.table-wrap{overflow-x:auto;border-radius:var(--r-md);border:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:13.5px}thead th{text-align:left;padding:10px 12px;background:var(--surface-2);color:var(--text-2);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1}tbody td{text-align:left;padding:12px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background var(--dur-1) var(--ease)}tbody tr:hover{background:var(--surface-2)}td select{width:auto;min-width:92px}.cell-actions{display:flex;gap:4px;flex-wrap:nowrap;align-items:center}.icon-btn.menu-open{background:var(--surface-3);color:var(--text)}.menu{position:fixed;z-index:60;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-pop);padding:6px;display:flex;flex-direction:column;gap:1px;animation:pop-in var(--dur-1) var(--ease-out)}.menu-item{display:flex;align-items:center;gap:10px;width:100%;justify-content:flex-start;background:transparent;color:var(--text);border:none;box-shadow:none;padding:8px 10px;border-radius:var(--r-sm);font-weight:500;font-size:13.5px}.menu-item:hover{background:var(--surface-2)}.menu-item .menu-ico{color:var(--text-2);display:flex}.menu-item.danger{background:transparent;color:var(--danger)}.menu-item.danger .menu-ico{color:var(--danger)}.menu-item.danger:hover{background:var(--danger-bg)}.menu-item.with-divider{margin-top:5px;padding-top:11px;border-top:1px solid var(--border);border-radius:0 0 var(--r-sm) var(--r-sm)}.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px 3px 9px;border-radius:var(--r-pill);border:1px solid transparent}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.status.connected{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.status.qr{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.status.connecting{background:var(--info-bg);color:var(--info);border-color:var(--info-border)}.status.connecting:before{animation:dot-pulse 1.4s var(--ease) infinite}.status.disconnected{background:var(--surface-3);color:var(--text-2);border-color:var(--border)}.status.error{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.form-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.form-row .field{flex:1;min-width:150px}.help-list{list-style:none;margin:0;padding:0;display:grid;gap:9px}.help-list li{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--text-2);line-height:1.5}.help-list li b{color:var(--text)}.help-list .k{flex:0 0 auto;color:var(--brand-600);margin-top:2px}.policy-details summary{cursor:pointer;color:var(--brand-600);font-size:12px;font-weight:600;list-style:none;display:inline-flex;align-items:center;gap:4px}.policy-details summary::-webkit-details-marker{display:none}.policy-details[open]>summary{margin-bottom:8px}.policy-grid{display:grid;grid-template-columns:repeat(2,minmax(92px,1fr));gap:8px;margin-top:6px;min-width:240px;padding:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm)}.policy-grid label{display:flex;flex-direction:column;gap:3px;color:var(--text-2);font-size:11px;font-weight:600}.policy-grid input,.policy-grid select{min-width:0;padding:5px 7px;font-size:12px}.policy-grid input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.policy-grid input[type=number]::-webkit-outer-spin-button,.policy-grid input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.linklike{background:transparent;border:none;box-shadow:none;color:var(--brand-600);font-weight:600;font-size:13px;padding:0;display:inline-flex}.linklike:hover{background:transparent;text-decoration:underline}.usage-meter{font-size:12px;color:var(--text-2);line-height:1.6}.usage-meter b{color:var(--text)}.login-wrap{display:flex;height:100%;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 50% -10%,#10645a 0%,var(--brand-900) 55%,#063b35 100%);padding:20px}.login-card{background:var(--surface);border-radius:var(--r-xl);padding:32px 30px;width:380px;max-width:100%;box-shadow:var(--sh-3);animation:pop-in var(--dur-3) var(--ease-out)}.login-card .login-logo{width:52px;height:52px;border-radius:var(--r-md);background:linear-gradient(135deg,var(--brand-600),var(--brand-800));color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.login-card h2{margin:0 0 2px;color:var(--text)}.login-card .login-tag{color:var(--text-2);font-size:13px;margin:0 0 22px}.login-card .field{margin-bottom:14px}.input-affix{position:relative;display:flex;align-items:center}.input-affix input{padding-right:42px}.input-affix .affix-btn{position:absolute;right:4px;background:transparent;border:none;color:var(--text-3);padding:6px;height:auto;box-shadow:none}.input-affix .affix-btn:hover{color:var(--text);background:var(--surface-3)}.login-card button[type=submit]{width:100%;padding:11px;margin-top:4px;font-size:14.5px}.hint{font-size:12px;color:var(--text-2);margin-top:16px;line-height:1.6;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px}.hint code{color:var(--text);background:var(--surface-3);padding:1px 5px;border-radius:var(--r-xs);font-size:11.5px}.error{color:var(--danger);font-size:13px;margin:8px 0;display:flex;align-items:flex-start;gap:7px}.alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-md);font-size:13px;line-height:1.5;margin-bottom:16px;border:1px solid transparent}.alert .alert-ico{flex:0 0 auto;margin-top:1px}.alert.warning,.alert-down{background:var(--warning-bg);border-color:var(--warning-border);color:#7a5b00}.alert.danger{background:var(--danger-bg);border-color:var(--danger-border);color:#842029}.alert.info{background:var(--info-bg);border-color:var(--info-border);color:#10437f}.alert.success{background:var(--success-bg);border-color:var(--success-border);color:#145c33}.alert-down{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-md);margin-bottom:16px;line-height:1.5}.connection-alert{background:var(--danger-bg);border-bottom:1px solid var(--danger-border);color:#842029;padding:11px 16px;font-size:13px;line-height:1.45;display:flex;gap:9px;align-items:flex-start;flex:0 0 auto}.connection-alert .alert-ico{flex:0 0 auto;margin-top:1px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px;animation:fade-in var(--dur-2) var(--ease);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--surface);border-radius:var(--r-lg);padding:22px;width:420px;max-width:100%;box-shadow:var(--sh-3);animation:pop-in var(--dur-2) var(--ease-out)}.modal.narrow{width:380px}.modal.wide{width:480px}.modal h3{margin:0 0 6px;font-size:17px}.modal .modal-body{color:var(--text-2);font-size:13.5px;line-height:1.55}.modal .modal-body p{margin:0 0 10px}.modal .field{margin-top:14px;text-align:left}.modal .modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px;flex-wrap:wrap}.modal.center{text-align:center}.modal.center .modal-actions{justify-content:center}.qr-frame{width:260px;height:260px;margin:6px auto 12px;border-radius:var(--r-md);border:1px solid var(--border);padding:10px;background:#fff;box-shadow:var(--sh-1)}.qr-frame img{width:100%;height:100%;object-fit:contain;display:block}.qr-skeleton{width:260px;height:260px;margin:6px auto 12px;border-radius:var(--r-md)}.toast-stack{position:fixed;top:16px;right:16px;z-index:100;display:flex;flex-direction:column;gap:10px;max-width:min(380px,calc(100vw - 32px))}.toast{display:flex;align-items:flex-start;gap:10px;background:#10231f;color:#fff;padding:12px 14px;border-radius:var(--r-md);box-shadow:var(--sh-pop);font-size:13.5px;font-weight:500;animation:toast-in var(--dur-2) var(--ease-out);border-left:4px solid var(--accent)}.toast.success{border-left-color:var(--accent)}.toast.error{border-left-color:#ff6b5e}.toast.info{border-left-color:#53bdeb}.toast .toast-ico{flex:0 0 auto;margin-top:1px}.toast .toast-msg{flex:1}.toast .toast-close{background:transparent;border:none;color:#ffffffa6;padding:2px;height:auto;box-shadow:none}.toast .toast-close:hover{background:#ffffff24;color:#fff}.spinner{width:16px;height:16px;border-radius:50%;border:2.5px solid currentColor;border-top-color:transparent;animation:spin .7s linear infinite;display:inline-block}.page-loading{display:flex;align-items:center;justify-content:center;gap:10px;height:100%;color:var(--text-2);font-size:14px}.skeleton{background:linear-gradient(90deg,var(--surface-3) 25%,#e9edf0 37%,var(--surface-3) 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite;border-radius:var(--r-sm)}.conv-skeleton{display:flex;gap:11px;padding:12px 14px;border-bottom:1px solid var(--border)}.conv-skeleton .sk-avatar{width:40px;height:40px;border-radius:50%;flex:0 0 auto}.conv-skeleton .sk-lines{flex:1;display:flex;flex-direction:column;gap:7px;padding-top:4px}.muted{color:var(--text-2)}.small{font-size:12px}.row-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:4px}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-pill);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--text-3);background-clip:padding-box;border:2px solid transparent}@keyframes toast-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes msg-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.side-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--surface);padding:0 6px}.side-tab{flex:1;position:relative;background:transparent;border:none;box-shadow:none;color:var(--text-2);font-weight:600;font-size:13px;padding:11px 4px;border-radius:0}.side-tab:hover{background:var(--surface-2);color:var(--text)}.side-tab.active{color:var(--brand-700)}.side-tab.active:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--brand-600)}.side-tab .tab-count{margin-left:5px;font-size:10.5px;font-weight:800;background:var(--surface-3);color:var(--text-2);border-radius:var(--r-pill);padding:1px 6px;vertical-align:1px}.side-tab.active .tab-count{background:var(--brand-600);color:#fff}.filters .filter-toggle{position:relative}.filters .filter-toggle .filter-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--accent);border:1.5px solid var(--surface)}.filter-row{display:flex;gap:8px;padding:4px 14px 12px;border-bottom:1px solid var(--border);background:var(--surface);align-items:center}.filter-row .segmented button:focus-visible,.filter-row select:focus-visible,.filters input:focus-visible{box-shadow:0 0 0 2px #128c7e66}.segmented{display:inline-flex;background:var(--surface-3);border-radius:var(--r-pill);padding:3px;gap:2px;flex:0 0 auto}.segmented button{background:transparent;border:none;box-shadow:none;color:var(--text-2);padding:4px 11px;font-size:12px;font-weight:600;border-radius:var(--r-pill)}.segmented button:hover{color:var(--text);background:#fff9}.segmented button.active{background:#fff;color:var(--brand-700);box-shadow:var(--sh-1)}.contact-item{display:flex;align-items:center;gap:11px;padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--dur-1) var(--ease);width:100%;background:transparent;border-radius:0;border-left:3px solid transparent;border-right:none;border-top:none;box-shadow:none;color:var(--text);font-weight:400;text-align:left;justify-content:flex-start}.contact-item:hover{background:var(--surface-2)}.contact-item:disabled{opacity:.6}.contact-item .contact-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.contact-item .contact-name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-item .contact-sub{font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg.internal{align-self:flex-end;background:#fff3bf;border-top-right-radius:3px}.msg.internal .note-head{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#8a6d00;margin-bottom:2px}.msg.internal .msg-meta{color:#9a7d1a}.edited-link{background:transparent;border:none;box-shadow:none;padding:0;font-size:10.5px;color:inherit;text-decoration:underline;font-weight:500}.edited-link:hover{background:transparent;color:var(--text)}.edit-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;max-height:320px;overflow-y:auto}.edit-history li{border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 12px;background:var(--surface-2)}.edit-history .eh-meta{font-size:11.5px;color:var(--text-3);margin-bottom:4px}.edit-history .eh-body{font-size:13px;white-space:pre-wrap}.composer-modes{display:flex;gap:2px;padding:8px 12px 0}.composer-mode{background:transparent;border:none;box-shadow:none;color:var(--text-3);font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:var(--r-pill)}.composer-mode:hover{background:var(--surface-3);color:var(--text)}.composer-mode.active{background:var(--brand-600);color:#fff}.composer-mode.active.note{background:#b58a00}.composer-wrap.note-mode{background:#fffbea}.composer-wrap.note-mode textarea{background:#fffdf4;border-color:#e5cf7c}.composer-wrap.note-mode textarea:focus{border-color:#c9a227;box-shadow:0 0 0 3px #b58a0038}.composer .send-btn.note{background:#b58a00}.composer .send-btn.note:hover:not(:disabled){background:#9a7400}.composer .send-btn.note:disabled{background:var(--surface-3);color:var(--text-2);opacity:1}.snippet-pop{position:fixed;z-index:60;width:340px;max-height:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-pop);display:flex;flex-direction:column;animation:pop-in var(--dur-2) var(--ease-out);overflow:hidden}.snippet-pop .snippet-search{padding:10px;border-bottom:1px solid var(--border)}.snippet-pop .snippet-list{overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px}.snippet-option{background:transparent;border:none;box-shadow:none;border-radius:var(--r-sm);padding:8px 10px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:2px;color:var(--text)}.snippet-option:hover{background:var(--surface-2)}.snippet-option .sn-title{font-weight:700;font-size:13px}.snippet-option .sn-preview{font-weight:400;font-size:12px;color:var(--text-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;text-align:left}.snippet-empty{padding:18px;text-align:center;color:var(--text-3);font-size:13px}.page-head-row{display:flex;align-items:flex-start;gap:12px}.page-head-row .page-head{flex:1}
