*,:after,:before{box-sizing:border-box}html{font-size:14px}body{margin:0;font-family:Inter,Helvetica Neue,system-ui,-apple-system,Arial,sans-serif;background:#f8fafc;-webkit-font-smoothing:antialiased;line-height:1.5}.text-primary,body{color:#0f172a}.text-secondary{color:#64748b}.text-muted{color:#94a3b8;font-size:.8rem}code{font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-size:.85em;background:#f1f5f9;padding:.1em .35em;border-radius:3px;color:#334155}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.45rem .875rem;font-size:.875rem;font-family:inherit;font-weight:500;border-radius:5px;border:1px solid transparent;cursor:pointer;transition:background .12s,border-color .12s,color .12s;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1.4}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#1b1b1b;color:#fff;border-color:#1b1b1b}.btn-primary:hover:not(:disabled){background:#333;border-color:#333}.btn-primary:active:not(:disabled){background:#444}.btn-secondary{background:#fff;color:#334155;border-color:#cbd5e1}.btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.btn-secondary:active:not(:disabled){background:#f1f5f9}.btn-ghost{background:transparent;color:#64748b;border-color:transparent;padding:.3rem .6rem}.btn-ghost:hover:not(:disabled){background:#f1f5f9;color:#334155}.btn-danger{background:#fff;color:#dc2626;border-color:#fca5a5}.btn-danger:hover:not(:disabled){background:#fef2f2;border-color:#f87171}.btn-sm{padding:.3rem .65rem;font-size:.8rem}.input{display:block;width:100%;padding:.5rem .75rem;font-size:.875rem;font-family:inherit;color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:5px;outline:none;transition:border-color .12s,box-shadow .12s;line-height:1.5}.input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.input::placeholder{color:#94a3b8}textarea.input{resize:vertical;min-height:72px}.app-nav{display:flex;align-items:center;gap:1.5rem;padding:0 1.5rem;height:44px;border-bottom:1px solid #e2e8f0;background:#fff}.app-nav a{font-size:.875rem;color:#64748b;font-weight:500}.app-nav a:hover{color:#0f172a;text-decoration:none}.group-action-btn{background:none;border:none;cursor:pointer;font-size:.9rem;color:#94a3b8;padding:0 3px;line-height:1;flex-shrink:0;transition:color .1s;border-radius:3px}.group-action-btn:hover{color:#475569}.contact-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:4px;cursor:pointer;background:transparent;transition:background 80ms;outline:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative}.contact-row:hover{background:rgba(15,23,42,.05)}.contact-row:focus-visible{background:rgba(15,23,42,.06)}.contact-row.is-selected{background:rgba(37,99,235,.09)}.contact-row.has-unread{background:rgba(245,158,11,.07)}.contact-row.has-unread:hover{background:rgba(245,158,11,.12)}.contact-row.is-last-active{background:rgba(37,99,235,.04)}.contact-row:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 5px);left:0;background:#1e293b;color:#f1f5f9;font-size:.7rem;line-height:1.4;padding:4px 8px;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 60ms;transition-delay:0ms;z-index:50}.contact-row:hover:after{opacity:1;transition-delay:.35s}.contact-row:not([data-tooltip]):after{display:none}.presence-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;position:relative;top:0}.presence-dot.online{background:#22c55e}.presence-dot.offline{background:#cbd5e1}.badge{display:inline-flex;align-items:center;padding:.1rem .45rem;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.02em;line-height:1.4}.badge-amber{background:#f59e0b;color:#fff}.badge-blue{background:#2563eb;color:#fff}.contact-name{font-size:.875rem}.contact-subtext,.header-userid{font-size:.68rem}.menu-item-btn{font-size:.82rem}.status-label-text{font-size:.75rem}.chat-header-name{font-size:.95rem;font-weight:600;color:#0f172a}html[data-font-size=small] .msg-content{font-size:.79rem}html[data-font-size=small] .msg-sender{font-size:.76rem}html[data-font-size=small] .contact-name{font-size:.8rem}html[data-font-size=small] .chat-header-name{font-size:.86rem}html[data-font-size=small] .contact-subtext,html[data-font-size=small] .header-userid{font-size:.62rem}html[data-font-size=small] .menu-item-btn{font-size:.75rem}html[data-font-size=small] .status-label-text{font-size:.68rem}html[data-font-size=large] .msg-content{font-size:.98rem}html[data-font-size=large] .msg-sender{font-size:.91rem}html[data-font-size=large] .contact-name{font-size:.97rem}html[data-font-size=large] .chat-header-name{font-size:1.05rem}html[data-font-size=large] .contact-subtext,html[data-font-size=large] .header-userid{font-size:.76rem}html[data-font-size=large] .menu-item-btn{font-size:.92rem}html[data-font-size=large] .status-label-text{font-size:.84rem}.msg-item{padding:8px 0 4px}.msg-item+.msg-item{border-top:1px solid #f1f5f9}.msg-ts{font-size:.72rem;color:#94a3b8;margin-right:.5rem}.msg-sender{font-size:.82rem;font-weight:600;margin-right:.35rem}.msg-sender.is-me{color:#2563eb}.msg-sender.is-them{color:#334155}.msg-content{font-size:.875rem;color:#1e293b;line-height:1.55;word-break:break-word;display:block;padding-left:.05rem;margin-top:1px}.qs-overlay{position:fixed;inset:0;z-index:100;background:rgba(15,23,42,.4);display:flex;align-items:flex-start;justify-content:center;padding-top:14vh}.qs-panel{background:#fff;border-radius:8px;width:min(92vw,380px);border:1px solid #e2e8f0;overflow:hidden}.qs-input{display:block;width:100%;padding:14px 16px;font-size:.95rem;font-family:inherit;border:none;border-bottom:1px solid #f1f5f9;outline:none;color:#0f172a;background:#fff}.qs-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:.875rem;transition:background 80ms}.qs-item:hover{background:#f8fafc}.qs-item.is-active{background:#eff6ff}.qs-footer{padding:6px 16px;font-size:.7rem;color:#94a3b8;border-top:1px solid #f1f5f9;letter-spacing:.01em}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse-icon{0%,to{opacity:1;transform:scale(1)}45%,55%{opacity:.08;transform:scale(.88)}}@keyframes onlineArrival{0%,49%{opacity:1}50%,99%{opacity:0}to{opacity:1}}.icon-pulse{animation:pulse-icon 1.1s ease-in-out infinite;will-change:opacity,transform}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#e2e8f0;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#cbd5e1}@media (max-width:767px){.sidebar-panel{max-width:100%!important;width:100%!important;margin:0!important;border-right:none!important;height:100dvh!important}.contact-row{padding:8px 10px}.kb-hint{display:none!important}.chat-window{height:100dvh!important;min-height:100dvh!important}.chat-header-id{display:none!important}.chat-input-area{padding:8px 10px!important}.chat-header{padding:6px 10px!important}}