@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_f367f3{--font-inter:"Inter","Inter Fallback"}:root{--navy:#0c1b38;--brand:#2563eb;--brand-700:#1d4ed8;--brand-50:#eef4ff;--bg:#f4f7fb;--surface:#ffffff;--border:#e6eaf0;--border-2:#eef1f6;--text:#0f1b2d;--muted:#6b7787;--faint:#9aa6b4;--danger:#c0392b;--radius:12px;--shadow-sm:0 1px 2px rgba(16,30,54,.06);--shadow:0 1px 2px rgba(16,30,54,.06),0 10px 30px rgba(16,30,54,.06);--font:var(--font-inter),system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:var(--text)}.app-shell{display:flex;flex-direction:column;height:100vh}.avatar{align-items:center;justify-content:center;color:#fff;font-weight:700;letter-spacing:.02em;line-height:1}.avatar,.avatar-wrap{display:inline-flex;flex:none}.avatar-wrap{position:relative}.avatar-img{object-fit:cover;display:block;background:#e6eaf0}.presence-dot{position:absolute;right:-1px;bottom:-1px;border-radius:50%;border:2px solid #fff}.presence-dot.online{background:#22c55e}.presence-dot.away{background:#f59e0b}.topbar{gap:26px;padding:0 20px;height:60px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);z-index:5}.brand,.topbar{display:flex;align-items:center}.brand{gap:9px}.brand-logo{height:26px;width:auto;display:block}.brand-sub{font-weight:700;color:var(--navy);font-size:15px;padding:2px 9px;background:var(--brand-50);border-radius:7px;letter-spacing:.01em}.tabs{display:flex;gap:4px}.tabs button{padding:8px 14px;background:none;border:none;border-radius:9px;color:var(--muted);font-weight:600;font-size:14px}.tabs button:hover{background:var(--bg);color:var(--text)}.tabs button.active{color:var(--brand-700);background:var(--brand-50)}.topbar-right{margin-left:auto;gap:14px}.me,.topbar-right{display:flex;align-items:center}.me{gap:8px;font-weight:600;font-size:14px;color:var(--navy);background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:9px}.me:hover{background:var(--bg)}.ghost{background:none;border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:7px 12px;font-weight:600}.ghost:hover{border-color:#cfd6e0;color:var(--text)}.content{flex:1 1;overflow:hidden;display:flex}.btn-primary{width:100%;background:var(--brand);color:#fff;border:none;border-radius:10px;padding:12px;font-weight:700;box-shadow:0 2px 8px rgba(37,99,235,.25);transition:background .15s}.btn-primary:hover{background:var(--brand-700)}.btn-primary:disabled{opacity:.55;box-shadow:none}.btn-primary.inline{width:auto;padding:10px 18px}.mini{font-size:12px;padding:6px 12px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--muted);font-weight:600}.mini:hover{border-color:#cfd6e0;color:var(--text)}.mini.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.mini:disabled{opacity:.5}.login-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,#e8f0ff 0,var(--bg) 55%)}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:32px 28px;box-shadow:var(--shadow)}.login-logo{height:34px;width:auto;display:block;margin-bottom:20px}.login-card h1{font-size:22px;margin:0 0 4px;color:var(--navy)}.login-card p.sub{color:var(--muted);margin:0 0 22px;font-size:14px}.field{display:flex;flex-direction:column;margin-bottom:14px}.field label{font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:600}.field input,.field select,.field textarea,.picker>input,.search-bar input,.server-row input{padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus,.picker>input:focus,.server-row input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-50)}.server-row{margin:-4px 0 14px}.server-row summary{font-size:13px;color:var(--faint);cursor:pointer}.server-row input{width:100%;margin-top:8px}.login-foot{font-size:12px;color:var(--faint)}.error{color:var(--danger);font-size:14px;margin:8px 0}.conflict{background:#fff8e9;border:1px solid #f0d9a8;color:#8a6312;font-size:13px;padding:10px 12px;border-radius:8px;margin:8px 0}.rooms{width:300px;border-right:1px solid var(--border);overflow-y:auto;flex-direction:column}.rooms,.rooms-actions{background:var(--surface);display:flex}.rooms-actions{gap:8px;padding:12px;border-bottom:1px solid var(--border-2);position:-webkit-sticky;position:sticky;top:0;z-index:1}.rooms-actions button{flex:1 1;background:var(--brand-50);border:1px solid #dbe6ff;color:var(--brand-700);border-radius:9px;padding:9px 6px;font-size:13px;font-weight:700}.rooms-actions button:hover{background:#e1ebff}.room-group{padding:6px 0 4px}.room-group-title{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);padding:10px 14px 4px;font-weight:700}.room-empty{padding:4px 14px 8px;font-size:13px;color:var(--faint)}.room-item{display:flex;align-items:center;gap:10px;padding:9px 12px;margin:1px 8px;border-radius:10px;cursor:pointer}.room-item:hover{background:var(--bg)}.room-item.active{background:var(--brand-50)}.ri-main{display:flex;align-items:center;gap:10px;flex:1 1}.ri-main,.ri-text{min-width:0}.room-item .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.room-item.unread .name{font-weight:800;color:var(--navy)}.room-item .preview{font-size:12.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{background:var(--brand);color:#fff;font-size:11px;font-weight:700;min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center}.room-item.invite{flex-direction:column;align-items:stretch;background:#fffaf0;border:1px solid #f3e3c0}.invite-actions{display:flex;gap:8px;margin-top:8px}.timeline{flex:1 1;display:flex;flex-direction:column;position:relative;background:var(--bg)}.room-header{justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--border);background:var(--surface)}.rh-left,.room-header{display:flex;align-items:center}.rh-left{gap:11px}.rh-name{font-weight:700;color:var(--navy)}.rh-sub{font-size:12px;color:var(--faint)}.icon-btn{width:36px;height:36px;border-radius:9px;border:1px solid var(--border);background:#fff;color:var(--muted);font-size:18px}.icon-btn:hover{color:var(--text);border-color:#cfd6e0}.icon-btn.on{background:var(--brand-50);border-color:#cfe0ff;color:var(--brand-700)}.search-bar{display:flex;align-items:center;gap:12px;padding:10px 18px;border-bottom:1px solid var(--border);background:var(--surface)}.search-bar input{flex:1 1}.search-count{font-size:12px;color:var(--faint);white-space:nowrap}.banner{background:#fdecea;color:#b3261e;padding:10px 18px;font-size:14px;border-bottom:1px solid #f6cdc8}.messages{flex:1 1;overflow-y:auto;padding:18px 22px;display:flex;flex-direction:column}.day-sep{display:flex;align-items:center;gap:12px;margin:14px 0 8px;color:var(--faint);font-size:12px;font-weight:600}.day-sep:after,.day-sep:before{content:"";height:1px;background:var(--border);flex:1 1}.row{display:flex;gap:10px;margin-top:10px}.row.grouped{margin-top:2px}.row.mine{justify-content:flex-end}.row-gutter{width:34px;flex:none}.row-col{max-width:70%;display:flex;flex-direction:column}.row.mine .row-col{align-items:flex-end}.row-head{display:flex;gap:8px;align-items:baseline;margin-bottom:3px;padding:0 2px}.row-head.right{justify-content:flex-end}.row-sender{font-weight:700;font-size:13px;color:var(--navy)}.row-time{font-size:11px;color:var(--faint)}.bubble{background:var(--surface);border:1px solid var(--border);padding:8px 13px;border-radius:16px 16px 16px 5px;box-shadow:var(--shadow-sm);width:-moz-fit-content;width:fit-content}.row.grouped.other .bubble{border-top-left-radius:16px}.row.mine .bubble{background:var(--brand);color:#fff;border:none;border-radius:16px 16px 5px 16px;box-shadow:0 2px 8px rgba(37,99,235,.22)}.row.grouped.mine .bubble{border-top-right-radius:16px}.bubble-body{white-space:pre-wrap;word-break:break-word;font-size:14.5px;line-height:1.45}.bubble.media{padding:4px;border:none}.bubble.media,.row.mine .bubble.media{background:transparent;box-shadow:none}.msg-image{max-width:340px;max-height:340px;border-radius:12px;display:block}.msg-image.loading{width:220px;height:150px;background:linear-gradient(110deg,#eef1f6 30%,#f6f8fb 50%,#eef1f6 70%);background-size:200% 100%;animation:shimmer 1.2s infinite}.msg-image.failed{width:220px;padding:24px;text-align:center;color:var(--faint);background:#eef1f6;border-radius:12px;font-size:13px}@keyframes shimmer{to{background-position:-200% 0}}.msg-file{display:inline-flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px;text-decoration:none;color:var(--text);box-shadow:var(--shadow-sm)}.msg-file:hover{border-color:#cfd6e0}.file-ic{font-size:20px}.file-meta{display:flex;flex-direction:column}.file-meta .fn{font-weight:600;font-size:14px}.file-meta .fs{font-size:12px;color:var(--faint)}.composer{display:flex;gap:10px;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface);align-items:center}.composer .attach{width:40px;height:40px;flex:none;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--muted);font-size:22px;line-height:1}.composer .attach:hover{border-color:var(--brand);color:var(--brand)}.composer>input{flex:1 1;padding:11px 14px;border:1px solid var(--border);border-radius:22px;background:#fff}.composer>input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-50)}.composer .send{background:var(--brand);color:#fff;border:none;border-radius:22px;padding:0 20px;height:42px;font-weight:700}.composer .send:hover{background:var(--brand-700)}.composer .send:disabled{opacity:.5}.placeholder{margin:auto;color:var(--muted);text-align:center}.empty-chat{display:flex;flex-direction:column;align-items:center;gap:10px}.empty-mark{font-size:40px;opacity:.5}.conn-state{display:flex;flex-direction:column;align-items:center;gap:12px}.conn-state p{margin:0}.conn-detail{font-size:13px;color:var(--faint)}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.modal-overlay{position:fixed;inset:0;background:rgba(12,27,56,.5);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:#fff;width:100%;max-width:460px;border-radius:16px;padding:22px;box-shadow:0 24px 60px rgba(0,0,0,.28);max-height:90vh;overflow:auto}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.modal-head h2{margin:0;color:var(--navy);font-size:20px}.modal-x{background:none;border:none;font-size:24px;line-height:1;color:var(--faint)}.modal-x:hover{color:var(--text)}.modal-sub{color:var(--muted);margin:0 0 14px;font-size:14px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.modal-actions button:not(.btn-primary){padding:10px 16px;border-radius:9px;border:1px solid var(--border);background:#fff;color:var(--muted);font-weight:600}.checkrow{display:flex;align-items:center;gap:8px;margin:4px 0 14px;font-size:14px;color:var(--text)}.checkrow input{width:16px;height:16px}.picker{position:relative}.picker>input{width:100%}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.chip{background:var(--brand-50);border-radius:16px;padding:3px 8px 3px 4px;font-size:13px;display:inline-flex;align-items:center;gap:6px;font-weight:600}.chip,.chip button{color:var(--brand-700)}.chip button{background:none;border:none;font-size:15px;line-height:1;padding:0 2px}.picker-hint{font-size:13px;color:var(--faint);margin-top:6px}.picker-results{margin-top:6px;border:1px solid var(--border);border-radius:10px;overflow:hidden;max-height:240px;overflow-y:auto}.picker-result{padding:9px 12px;cursor:pointer;display:flex;align-items:center;gap:10px}.picker-result:hover{background:var(--brand-50)}.r-col{display:flex;flex-direction:column;min-width:0}.r-name{font-weight:600}.r-id{font-size:12px;color:var(--faint)}.tab-pane{flex:1 1;display:flex;flex-direction:column;overflow:hidden}.pane-head{justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--surface)}.pane-head,.scope{display:flex;align-items:center}.scope{gap:9px}.scope label{font-size:13px;color:var(--muted);font-weight:600}select{padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:#fff}textarea{padding:10px 12px;border:1px solid var(--border);border-radius:10px;resize:vertical}.form-row{display:flex;gap:12px}.form-row .field{flex:1 1}.col-empty{font-size:13px;color:var(--faint);padding:8px 2px}.tag{font-size:11px;padding:3px 9px;border-radius:10px;background:#eef1f6;color:var(--muted);font-weight:600}.tag.room{background:var(--brand-50);color:var(--brand-700)}.tag.who{background:#e9f7ee;color:#1f8a4c}.tag.due{background:#fff3e0;color:#9a6a16}.tag.due.overdue{background:#fdecea;color:var(--danger)}.board{gap:16px;padding:18px 20px;overflow-x:auto;align-items:flex-start}.board,.board-col{flex:1 1;display:flex}.board-col{min-width:250px;background:#eef1f6;border-radius:14px;flex-direction:column;max-height:100%}.board-col-head{padding:12px 15px;font-weight:700;color:var(--navy);font-size:14px}.board-col-head .count{color:var(--faint);font-weight:700;margin-left:6px}.board-col-body{padding:0 10px 10px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.task-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 13px;box-shadow:var(--shadow-sm)}.task-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.task-title{font-weight:600;cursor:pointer;word-break:break-word}.task-title:hover{color:var(--brand)}.card-x{background:none;border:none;color:#b3bcc8;font-size:18px;line-height:1}.card-x:hover{color:var(--danger)}.task-desc{font-size:13px;color:var(--muted);margin:5px 0;white-space:pre-wrap;word-break:break-word}.task-meta{margin:9px 0 7px}.task-meta,.task-move{display:flex;flex-wrap:wrap;gap:6px}.cal-pane{flex-direction:row}.cal-main{flex:1 1;display:flex;flex-direction:column;overflow:hidden}.cal-nav{display:flex;align-items:center;gap:10px}.cal-title{font-weight:700;color:var(--navy);min-width:160px;text-align:center}.cal-grid{flex:1 1;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;grid-gap:1px;gap:1px;background:var(--border);overflow:auto}.cal-dow{text-align:center;padding:9px 0;font-size:11px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.05em}.cal-cell,.cal-dow{background:var(--surface)}.cal-cell{min-height:86px;padding:5px 7px;cursor:pointer;overflow:hidden}.cal-cell.empty{background:#fafbfd;cursor:default}.cal-cell:hover:not(.empty){background:var(--bg)}.cal-cell.today .cal-daynum{background:var(--brand);color:#fff}.cal-cell.selected{box-shadow:inset 0 0 0 2px var(--brand)}.cal-daynum{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:13px;font-weight:600;color:var(--text);border-radius:50%}.cal-chips{display:flex;flex-direction:column;gap:2px;margin-top:3px}.cal-chip{font-size:11px;padding:2px 6px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-chip.event{background:var(--brand-50);color:var(--brand-700)}.cal-chip.task{background:#fff3e0;color:#9a6a16}.cal-more{font-size:10px;color:var(--faint)}.cal-side{width:310px;border-left:1px solid var(--border);display:flex;flex-direction:column;background:var(--surface)}.cal-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border);font-weight:700;color:var(--navy)}.cal-side-head span{font-size:14px}.cal-side-body{flex:1 1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:10px}.side-item{border:1px solid var(--border);border-radius:12px;padding:11px 13px;box-shadow:var(--shadow-sm)}.side-item.event{border-left:3px solid var(--brand)}.side-item.task{border-left:3px solid #e0a020}.side-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.side-title{font-weight:600;word-break:break-word}.side-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.side-desc{font-size:13px;color:var(--muted);margin-top:7px;white-space:pre-wrap}.rh-actions{display:flex;gap:8px}.timeline-body{flex:1 1;display:flex;overflow:hidden}.bubble-wrap{position:relative;width:-moz-fit-content;width:fit-content}.row.mine .bubble-wrap{margin-left:auto}.msg-actions{position:absolute;top:-15px;display:none;gap:1px;background:#fff;border:1px solid var(--border);border-radius:9px;box-shadow:var(--shadow-sm);padding:2px;z-index:3}.row.other .msg-actions{right:6px}.row.mine .msg-actions{left:6px}.bubble-wrap:hover .msg-actions{display:flex}.msg-actions button{border:none;background:none;font-size:14px;padding:3px 5px;border-radius:6px;line-height:1}.msg-actions button:hover{background:var(--bg)}.react-pop{position:absolute;top:-46px;left:0;z-index:20;display:flex;gap:2px;background:#fff;border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);padding:4px 8px}.react-pop button{border:none;background:none;font-size:19px;padding:2px 4px;border-radius:7px}.react-pop button:hover{background:var(--bg)}.react-pop .more{font-weight:800;color:var(--muted);font-size:18px}.react-full{position:absolute;top:-8px;left:0;z-index:30}.reactions{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.row.mine .reactions{justify-content:flex-end}.reaction{display:inline-flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--border);border-radius:13px;padding:1px 9px;font-size:13px;cursor:pointer}.reaction:hover{border-color:#cfd6e0}.reaction.mine{background:var(--brand-50);border-color:#bcd4ff}.reaction .rc{color:var(--muted);font-weight:700;font-size:12px}.reply-quote{border-left:3px solid rgba(255,255,255,.55);padding-left:8px;margin-bottom:5px;font-size:12.5px;opacity:.9}.row.other .reply-quote{border-left-color:var(--brand)}.rq-name{font-weight:700;margin-right:6px}.edited{font-size:11px;opacity:.6;margin-left:6px}.md-code{background:rgba(0,0,0,.08);padding:1px 5px;border-radius:5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}.row.mine .md-code{background:rgba(255,255,255,.22)}.md-pre{background:rgba(0,0,0,.08);padding:9px 11px;border-radius:8px;overflow-x:auto;margin:5px 0}.row.mine .md-pre{background:rgba(255,255,255,.16)}.md-pre code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.md-link{color:inherit;text-decoration:underline}.md-mention{background:var(--brand-50);color:var(--brand-700);border-radius:4px;padding:0 3px;font-weight:700}.row.mine .md-mention{background:rgba(255,255,255,.25);color:#fff}.typing{padding:2px 18px 6px;font-size:12px;color:var(--faint);font-style:italic}.reply-banner{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 16px;background:var(--brand-50);border-top:1px solid var(--border);font-size:13px;color:var(--navy)}.reply-banner.editing{background:#fff7e6}.reply-banner button{border:none;background:none;font-size:18px;color:var(--muted)}.composer-input{flex:1 1;position:relative}.composer-input>input{width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:22px;background:#fff}.composer-input>input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-50)}.composer-emoji{position:absolute;bottom:50px;right:0;z-index:40}.emoji-toggle{width:40px;height:40px;flex:none;border-radius:50%;border:1px solid var(--border);background:#fff;font-size:18px}.emoji-toggle:hover{border-color:var(--brand)}.mention-pop{position:absolute;bottom:50px;left:0;z-index:40;background:#fff;border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow);overflow:hidden;min-width:220px}.mention-item{display:flex;align-items:center;gap:9px;padding:8px 12px;cursor:pointer;font-weight:600;font-size:14px}.mention-item:hover{background:var(--brand-50)}.emoji-pop{width:326px;max-height:360px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.emoji-search{margin:8px;padding:8px 10px;border:1px solid var(--border);border-radius:8px}.emoji-scroll{overflow-y:auto;padding:0 8px 8px}.emoji-cat-name{font-size:11px;text-transform:uppercase;color:var(--faint);font-weight:700;margin:8px 2px 4px;letter-spacing:.05em}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);grid-gap:2px;gap:2px}.emoji-btn{border:none;background:none;font-size:20px;padding:4px;border-radius:6px}.emoji-btn:hover{background:var(--bg)}.profile-photo-row{display:flex;align-items:center;gap:16px;margin-bottom:16px}.hint{font-size:12px;color:var(--faint);margin-top:6px}.field input:disabled{background:var(--bg);color:var(--muted)}.member-panel{width:300px;flex:none;border-left:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;overflow:hidden}.mp-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);font-weight:700;color:var(--navy)}.mp-topic{padding:12px 16px;font-size:13px;color:var(--muted);border-bottom:1px solid var(--border-2);white-space:pre-wrap}.mp-count{padding:12px 16px 6px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);font-weight:700}.mp-list{flex:1 1;overflow-y:auto;padding:0 8px 12px}.mp-item{display:flex;gap:11px;padding:9px 8px}.mp-text{min-width:0}.mp-name{font-weight:600;font-size:14px}.mp-pron{color:var(--faint);font-weight:400;font-size:13px}.mp-admin{margin-left:6px;font-size:10px;background:var(--brand-50);color:var(--brand-700);padding:1px 6px;border-radius:8px;font-weight:700;text-transform:uppercase}.mp-title{font-size:12.5px;color:var(--muted)}.mp-status{font-size:12.5px;color:var(--faint);font-style:italic}.mp-presence{font-size:11px;color:var(--faint);margin-top:2px}.rooms-tools{display:flex;gap:8px;padding:0 12px 10px}.rooms-tools button{flex:1 1;background:none;border:1px solid var(--border);color:var(--muted);border-radius:9px;padding:7px 6px;font-size:12.5px;font-weight:600}.rooms-tools button:hover{border-color:#cfd6e0;color:var(--text);background:var(--bg)}.msg-actions button.on,.thread-indicator{background:var(--brand-50)}.thread-indicator{margin-top:5px;border:1px solid #cfe0ff;color:var(--brand-700);border-radius:12px;padding:3px 10px;font-size:12.5px;font-weight:600;align-self:flex-start}.row.mine .thread-indicator{align-self:flex-end}.thread-indicator:hover{background:#e1ebff}.emote{font-style:italic;color:var(--muted);padding:2px 0}.emote b{color:var(--navy);font-style:normal}.pinned-bar{background:#fffaf0;border-bottom:1px solid #f3e3c0;padding:8px 16px;display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}.pinned-title{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#9a7b3a;font-weight:700}.pinned-item{display:flex;align-items:center;gap:6px;font-size:13px}.pinned-item .pi-name{font-weight:700;color:var(--navy)}.pinned-item .pi-body{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.pinned-item button{border:none;background:none;color:#b3937a;font-size:16px}.thread-panel{width:360px;flex:none;border-left:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;overflow:hidden}.thread-body{flex:1 1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:12px}.thread-msg{display:flex;gap:10px}.thread-msg.root{padding-bottom:12px;border-bottom:1px solid var(--border)}.tm-col{min-width:0;flex:1 1}.tm-head{display:flex;gap:8px;align-items:baseline}.tm-name{font-weight:700;font-size:13px;color:var(--navy)}.tm-body{font-size:14px;line-height:1.45;word-break:break-word;margin-top:2px}.thread-composer{border-top:1px solid var(--border)}.gs-input{width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:10px;margin-bottom:6px}.gs-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-50)}.gs-results{max-height:50vh;overflow-y:auto;display:flex;flex-direction:column;gap:4px;margin-top:6px}.gs-hit{display:flex;gap:10px;align-items:flex-start;text-align:left;background:none;border:none;padding:9px 8px;border-radius:10px;width:100%}.gs-hit:hover{background:var(--brand-50)}.gs-text{min-width:0}.gs-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.gs-name{font-weight:700;font-size:13.5px}.gs-room{font-size:12px;color:var(--brand-700)}.gs-when{font-size:11px;color:var(--faint)}.gs-body{font-size:13.5px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.link-preview{display:flex;gap:10px;margin-top:6px;max-width:420px;border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:10px;overflow:hidden;background:var(--surface);text-decoration:none;color:var(--text)}.row.mine .link-preview{background:rgba(255,255,255,.95);border-left-color:#fff}.link-preview:hover{border-color:#cfd6e0}.lp-img{width:84px;height:84px;object-fit:cover;flex:none;background:#eef1f6}.lp-text{padding:8px 10px;min-width:0}.lp-host{font-size:11px;color:var(--faint);text-transform:lowercase}.lp-title{font-weight:700;font-size:13.5px;color:var(--navy);margin:2px 0}.lp-desc,.lp-title{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.lp-desc{font-size:12.5px;color:var(--muted)}.lightbox{position:fixed;inset:0;background:rgba(8,16,32,.9);display:flex;align-items:center;justify-content:center;z-index:60;padding:32px}.lightbox img{max-width:92vw;max-height:90vh;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);cursor:default}.lb-close{position:absolute;top:18px;right:24px;background:rgba(255,255,255,.12);border:none;color:#fff;font-size:30px;line-height:1;width:44px;height:44px;border-radius:50%}.lb-close:hover{background:rgba(255,255,255,.25)}.msg-image{cursor:zoom-in}.readers{display:flex;align-items:center;gap:2px;margin-top:4px}.row.mine .readers{justify-content:flex-end}.readers .avatar-wrap{box-shadow:0 0 0 2px var(--bg);border-radius:50%}.readers-more{font-size:11px;color:var(--faint);margin-left:3px}