:root { --ink:#172231; --muted:#6e7a89; --line:#e3e8ed; --paper:#f4f6f8; --white:#fff; --nav:#122b3e; --teal:#177c79; --danger:#ae3f45; --nav-soft:#1a3b50; --surface-tint:#f6f9fa; --radius-sm:6px; --radius-md:10px; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Microsoft YaHei","Noto Sans SC",sans-serif; font-size:14px; -webkit-font-smoothing:antialiased; }
a { color:var(--teal); text-decoration:none; }
button,input,textarea,select { font:inherit; }
.portal-shell { display:flex; min-height:100vh; }
.portal-sidebar { background:linear-gradient(180deg,#122b3e 0%,#10283a 100%); color:#dce7ee; display:flex; flex:0 0 232px; flex-direction:column; min-height:100vh; padding:24px 14px; }
.portal-brand { align-items:center; color:#fff; display:flex; gap:10px; padding:0 10px 24px; }
.portal-brand span,.auth-mark { align-items:center; background:linear-gradient(145deg,#23a29a,#177c79); border-radius:9px; box-shadow:0 6px 14px rgba(23,124,121,.25); color:#fff; display:flex; font-size:12px; font-weight:800; height:34px; justify-content:center; width:34px; }
.portal-brand strong { font-size:16px; }
.portal-tenant { border-bottom:1px solid rgba(255,255,255,.13); border-top:1px solid rgba(255,255,255,.13); display:flex; flex-direction:column; gap:5px; margin-bottom:20px; padding:18px 10px; }
.portal-tenant small,.portal-tenant code { color:#91a9b8; font-size:11px; }
.portal-sidebar nav { display:flex; flex-direction:column; gap:3px; }
.portal-sidebar nav a { border-radius:7px; color:#dce7ee; padding:11px 12px; }
.portal-sidebar nav a:hover,.portal-sidebar nav a.active { background:#1d4a60; color:#fff; }
.portal-nav-group { margin-top:5px; }
.portal-nav-group summary { align-items:center; border:1px solid transparent; border-radius:7px; color:#a9c0cb; cursor:pointer; display:flex; font-size:11px; font-weight:800; letter-spacing:.08em; list-style:none; min-height:34px; padding:8px 12px; text-transform:uppercase; }
.portal-nav-group summary::-webkit-details-marker { display:none; }
.portal-nav-group summary::after { color:#83a5b2; content:"+"; font-size:16px; font-weight:400; margin-left:auto; }
.portal-nav-group[open] summary::after { content:"−"; }
.portal-nav-group summary:hover,.portal-nav-group[open] summary { background:rgba(29,74,96,.42); color:#fff; }
.portal-nav-submenu { border-left:1px solid rgba(144,207,201,.2); display:flex; flex-direction:column; gap:2px; margin:3px 0 4px 14px; padding-left:8px; }
.portal-nav-submenu a { font-size:13px; min-height:38px; padding:9px 11px; }
.portal-nav-submenu a.active { background:#1d4a60; box-shadow:inset 3px 0 0 #64c4b9; color:#fff; }
.portal-logout { margin-top:auto; }
.portal-logout button { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.2); border-radius:7px; color:#dce7ee; cursor:pointer; padding:10px 12px; width:100%; }
.portal-main { flex:1; min-width:0; padding:36px 42px 60px; }
.portal-auth-main { align-items:center; display:flex; justify-content:center; }
.portal-messages p,.notice { background:#e8f4f1; border:1px solid #c9e1dc; border-radius:4px; padding:12px 14px; }
.page-heading { align-items:flex-end; display:flex; justify-content:space-between; margin:0 0 26px; }
.page-heading span { color:var(--teal); display:block; font-size:11px; font-weight:700; margin-bottom:7px; }
.page-heading h1 { font-size:26px; margin:0; }
.page-heading code { color:var(--muted); }
.metric-grid { display:grid; gap:14px; grid-template-columns:repeat(4,minmax(0,1fr)); margin-bottom:20px; }
.metric-grid article,.content-section { background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); }
.metric-grid article { min-height:112px; padding:18px; }
.metric-grid small { color:var(--muted); display:block; }
.metric-grid strong { display:block; font-size:27px; margin-top:18px; }
.content-section { margin-bottom:18px; min-width:0; padding:24px; }
.content-section h2,.section-heading h2 { font-size:15px; margin:0 0 18px; }
table { border-collapse:collapse; width:100%; }
th,td { border-bottom:1px solid var(--line); padding:12px 10px; text-align:left; }
th { color:var(--muted); font-size:12px; }
.empty { color:var(--muted); margin:0; padding:24px 0; text-align:center; }
.auth-panel { background:var(--white); border:1px solid var(--line); border-radius:6px; max-width:410px; padding:34px; width:100%; }
.auth-panel h1 { font-size:24px; margin:20px 0 24px; }
form label { color:var(--ink); display:block; font-size:12px; font-weight:700; margin-bottom:16px; }
form input,form textarea,form select { border:1px solid #cbd3da; border-radius:4px; display:block; margin-top:7px; padding:10px 11px; width:100%; }
.errorlist { color:var(--danger); font-size:12px; list-style:none; margin:6px 0; padding:0; }
.primary { background:var(--nav); border:0; border-radius:7px; color:#fff; cursor:pointer; font-weight:700; padding:11px 16px; }
.auth-panel .primary { margin-bottom:18px; width:100%; }
.portal-home { margin:auto; max-width:920px; width:100%; }
.portal-home-intro { margin:0 auto 28px; max-width:620px; text-align:center; }
.portal-home-intro .auth-mark { margin:0 auto 16px; }
.portal-home-intro .eyebrow { margin-bottom:8px; }
.portal-home-intro h1 { font-size:30px; margin:0 0 10px; }
.portal-home-intro p { color:var(--muted); margin:0; }
.portal-entry-grid { display:grid; gap:18px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.portal-entry-card { background:var(--white); border:1px solid var(--line-strong); border-radius:12px; box-shadow:var(--shadow-soft); display:flex; flex-direction:column; min-height:270px; padding:26px; }
.portal-entry-icon { align-items:center; background:#dff1ec; border-radius:10px; color:#176b5c; display:flex; font-size:13px; font-weight:800; height:40px; justify-content:center; margin-bottom:22px; width:40px; }
.portal-entry-icon-team { background:#e5edf4; color:#2e5b78; }
.portal-entry-card h2 { font-size:20px; margin:7px 0 10px; }
.portal-entry-card p { color:var(--muted); line-height:1.7; margin:0; max-width:32em; }
.portal-entry-actions { align-items:center; display:flex; gap:16px; margin-top:auto; padding-top:26px; }
.portal-entry-actions .primary { color:#fff; display:inline-flex; justify-content:center; min-width:136px; }
.notice { display:flex; justify-content:space-between; margin-bottom:18px; }
.subaccount-login-hint { align-items:center; gap:16px; line-height:1.6; }
.subaccount-login-hint strong,.subaccount-login-hint code { color:var(--ink); font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.subaccount-login-hint a { flex:0 0 auto; font-weight:700; white-space:nowrap; }
.detail-grid { display:grid; gap:18px; grid-template-columns:repeat(3,1fr); margin:0; }
.detail-grid div { border-left:2px solid var(--teal); padding-left:12px; }
.detail-grid dt { color:var(--muted); font-size:11px; }.detail-grid dd { font-size:18px; margin:6px 0 0; }
.inline { display:inline; margin:0 0 0 8px; }.inline button,td button { background:transparent; border:0; color:var(--teal); cursor:pointer; padding:0; }
fieldset { border:0; margin:0 0 18px; padding:0; }legend { font-size:12px; font-weight:700; margin-bottom:8px; }fieldset label { align-items:center; display:flex; font-weight:400; gap:8px; margin:7px 0; }fieldset input { display:inline; margin:0; width:auto; }.credential-result code { background:#fff; border:1px solid var(--line); border-radius:4px; font-size:16px; padding:8px 12px; }
.permission-grid { display:grid; gap:8px 24px; grid-template-columns:repeat(2,minmax(0,1fr)); list-style:none; margin:0; padding:0; }
.permission-grid li { min-width:0; }
.permission-grid label { background:var(--surface-soft); border:1px solid var(--line); border-radius:6px; min-height:42px; padding:10px 12px; }
.permission-grid label:hover { border-color:#9bbdb8; background:#f0f8f6; }
.table-scroll { overflow-x:auto; }.account-identity { align-items:center; display:flex; gap:10px; min-width:180px; }.account-identity img,.account-identity>span { align-items:center; background:#e5ecef; border-radius:50%; display:flex; flex:0 0 36px; height:36px; justify-content:center; object-fit:cover; width:36px; }.account-identity small,.row-error { color:var(--muted); display:block; font-size:11px; margin-top:4px; }.row-error { color:var(--danger); max-width:220px; }.status-badge { background:#e9eef1; border-radius:3px; display:inline-block; font-size:11px; padding:4px 7px; }.status-active { background:#dff1ec; color:#176b5c; }.status-invalid,.status-connection_error { background:#f8e5e6; color:var(--danger); }.table-action { white-space:nowrap; }.form-alert { background:#f8e5e6; border:1px solid #e9c7c9; border-radius:4px; color:var(--danger); margin-bottom:18px; padding:12px 14px; }.import-layout { display:grid; gap:28px; grid-template-columns:minmax(0,2fr) minmax(220px,1fr); }.directory-picker { background:#f8fafb; border:1px dashed #aab7c1; border-radius:5px; cursor:pointer; display:flex; flex-direction:column; gap:7px; margin:0 0 14px; padding:28px; }.directory-picker span,.file-summary,.import-notes p,.section-heading span { color:var(--muted); }.directory-picker input { margin-top:12px; }.file-summary { margin:0 0 18px; }.import-notes { border-left:1px solid var(--line); padding-left:24px; }.import-notes h2 { font-size:14px; margin-top:0; }.import-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }.section-heading { align-items:center; display:flex; justify-content:space-between; }
.narrow-section { max-width:560px; }.team-summary { display:grid; }.auth-switch { color:var(--muted); margin:0; text-align:center; }
.chat-workspace { background:#fff; border:1px solid var(--line); border-radius:8px; display:grid; grid-template-columns:240px 320px minmax(0,1fr); height:calc(100vh - 72px); min-height:620px; overflow:hidden; margin:-8px 0 0; }
.chat-accounts-panel,.chat-dialogs-panel { background:#f8fafb; border-right:1px solid var(--line); min-width:0; display:flex; flex-direction:column; }
.chat-conversation-panel { background:#eef3f6; min-width:0; display:flex; flex-direction:column; }
.chat-panel-heading,.chat-column-header,.conversation-header { align-items:center; display:flex; justify-content:space-between; padding:20px 18px 14px; }
.chat-heading-actions,.chat-header-actions { align-items:center; display:flex; gap:2px; }.chat-menu-wrap { position:relative; }.chat-popover { background:#fff; border:1px solid var(--line); border-radius:7px; box-shadow:0 10px 28px rgba(23,34,49,.16); min-width:150px; padding:5px; position:absolute; right:0; top:34px; z-index:20; }.chat-popover button,.chat-popover a { background:transparent; border:0; border-radius:4px; color:var(--ink); cursor:pointer; display:block; font-size:12px; padding:9px 10px; text-align:left; width:100%; }.chat-popover button:hover,.chat-popover a:hover { background:#edf5f4; color:#176f6a; }
.chat-panel-heading h1,.chat-column-header h2,.conversation-header h2 { font-size:16px; margin:4px 0 0; }
.eyebrow { color:var(--teal); display:block; font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.chat-count { align-items:center; background:#e2ecef; border-radius:12px; color:var(--muted); display:flex; font-size:11px; height:24px; justify-content:center; min-width:24px; }
.chat-search { align-items:center; background:#fff; border:1px solid var(--line); border-radius:6px; color:#80909b; display:flex; gap:8px; margin:0 14px 10px; padding:8px 10px; }.chat-search input { background:transparent; border:0; margin:0; outline:0; padding:0; }.chat-search input:focus { box-shadow:none; }
.chat-filter-row { display:flex; gap:4px; overflow-x:auto; padding:0 14px 10px; }.chat-filter { background:transparent; border:0; border-radius:4px; color:var(--muted); cursor:pointer; font-size:11px; padding:6px 8px; white-space:nowrap; }.chat-filter.is-active { background:#dcefeb; color:#126a66; font-weight:700; }
.chat-account-list,.chat-dialog-list { min-height:0; overflow:auto; padding:0 8px 10px; }.chat-account-item,.chat-dialog-item { align-items:center; background:transparent; border:0; border-radius:6px; display:flex; gap:0; min-width:0; padding:4px; text-align:left; width:100%; }.chat-account-select,.chat-dialog-select { align-items:center; background:transparent; border:0; border-radius:6px; cursor:pointer; display:flex; flex:1; gap:10px; min-width:0; padding:6px; text-align:left; }.chat-account-item:hover,.chat-account-item.is-active,.chat-dialog-item:hover,.chat-dialog-item.is-active { background:#e5f0ef; }.chat-account-item[hidden] { display:none; }.chat-account-item.is-pinned,.chat-dialog-item.is-pinned { background:#f2f8f7; }.chat-pin-button { align-items:center; background:transparent; border:0; border-radius:5px; color:#8ca0a5; cursor:pointer; display:flex; flex:0 0 28px; height:28px; justify-content:center; padding:0; }.chat-pin-button:hover,.chat-account-item.is-pinned .chat-pin-button,.chat-dialog-item.is-pinned .chat-pin-button { color:#16877d; }.chat-pin-button svg { fill:none; height:15px; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; width:15px; }.chat-account-item.is-pinned .chat-pin-button svg,.chat-dialog-item.is-pinned .chat-pin-button svg { fill:currentColor; }
.chat-avatar { align-items:center; background:#c9d9de; border-radius:50%; color:#31515d; display:flex; flex:0 0 38px; font-size:12px; font-weight:800; height:38px; justify-content:center; object-fit:cover; width:38px; }.chat-avatar-fallback { background:#d7e3e8; }.chat-account-copy,.chat-dialog-copy { display:flex; flex:1; flex-direction:column; min-width:0; }.chat-account-copy strong,.chat-dialog-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.chat-account-copy small,.chat-dialog-copy small,.chat-dialog-copy>span { color:var(--muted); font-size:11px; margin-top:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.chat-account-meta { color:var(--muted); font-size:10px; margin-top:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.chat-status-dot { background:#adb9be; border-radius:50%; display:inline-block; height:6px; margin-right:5px; width:6px; }.status-dot-active { background:#2c9b7f; }.status-dot-connection_error,.status-dot-invalid { background:#c45a61; }.chat-unread-badge { align-items:center; background:#1a897e; border-radius:12px; color:#fff; display:flex; font-size:10px; height:20px; justify-content:center; min-width:20px; padding:0 6px; }
.chat-avatar-photo { object-fit:cover; }.chat-avatar-slot { align-items:center; display:inline-flex; flex:0 0 34px; height:34px; justify-content:center; width:34px; }.chat-avatar-slot .chat-avatar { flex:0 0 34px; height:34px; width:34px; }.chat-sync-state { color:var(--muted); font-size:10px; margin-left:auto; padding:6px 8px; white-space:nowrap; }
.chat-column-header { align-items:flex-start; }.chat-column-header small { color:var(--muted); display:block; font-size:11px; margin-top:4px; }.icon-button { background:transparent; border:0; color:#55717d; cursor:pointer; font-size:18px; height:30px; width:30px; }.icon-button:disabled { cursor:default; opacity:.45; }.chat-dialog-search { margin-bottom:8px; }.dialog-filters { padding-bottom:8px; }.chat-placeholder,.chat-empty-panel { color:var(--muted); font-size:12px; padding:34px 18px; text-align:center; }.chat-dialog-item { gap:0; }.chat-dialog-item .chat-avatar { flex-basis:34px; height:34px; width:34px; }.chat-dialog-copy>span { order:3; }.chat-dialog-copy small { order:2; }.chat-dialog-copy strong { order:1; }.chat-dialog-item .chat-unread-badge { flex:0 0 auto; }.chat-error { color:var(--danger); font-size:12px; padding:28px 18px; text-align:center; }.chat-error p { color:var(--muted); line-height:1.5; }.chat-error button { background:#fff; border:1px solid #d5aeb1; border-radius:4px; color:var(--danger); cursor:pointer; padding:7px 10px; }
.conversation-header { background:#fff; border-bottom:1px solid var(--line); padding:14px 22px; }.conversation-peer { align-items:center; display:flex; gap:10px; min-width:0; }.conversation-peer-button { background:transparent; border:0; border-radius:8px; color:inherit; cursor:pointer; padding:5px 9px; text-align:left; }.conversation-peer-button:hover:not(:disabled) { background:#edf5f4; }.conversation-peer-button:disabled { cursor:default; }.conversation-peer h2 { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.conversation-peer small { color:var(--muted); display:block; font-size:11px; margin-top:4px; }.conversation-actions { align-items:center; display:flex; gap:8px; }.connection-pill { background:#e2f2ed; border-radius:12px; color:#207361; font-size:10px; padding:5px 8px; white-space:nowrap; }.conversation-body { flex:1; min-height:0; overflow:auto; padding:24px 24px 18px; }.conversation-empty { align-items:center; color:var(--muted); display:flex; flex-direction:column; gap:8px; height:100%; justify-content:center; text-align:center; }.conversation-empty strong { color:var(--ink); font-size:14px; }.conversation-empty p { font-size:12px; margin:0; max-width:280px; }.conversation-empty-icon { align-items:center; background:#d8e8e8; border-radius:50%; color:#237d78; display:flex; font-size:18px; height:44px; justify-content:center; width:44px; }
.message-row { display:flex; margin:7px 0; }.message-row.is-outgoing { justify-content:flex-end; }.message-bubble { background:#fff; border-radius:12px 12px 12px 4px; box-shadow:0 1px 1px rgba(35,56,65,.08); max-width:min(680px,75%); padding:9px 12px 7px; }.is-outgoing .message-bubble { background:#d8f2e9; border-radius:12px 12px 4px 12px; }.message-bubble p { line-height:1.55; margin:0; white-space:pre-wrap; word-break:break-word; }.message-bubble time { color:#7a8d92; display:block; font-size:10px; margin-top:4px; text-align:right; }.message-muted { color:var(--muted); font-size:12px; }.message-media { display:flex; flex-direction:column; gap:7px; max-width:min(460px,65vw); }.message-media img { border-radius:8px; display:block; max-height:360px; max-width:100%; object-fit:contain; }.message-media video { border-radius:8px; display:block; max-height:360px; max-width:100%; }.message-media audio { max-width:100%; }.message-attachment { align-items:center; background:rgba(230,241,241,.75); border:1px solid #c9dfdd; border-radius:8px; display:flex; gap:9px; min-width:190px; padding:9px 10px; }.is-outgoing .message-attachment { background:rgba(207,237,226,.8); border-color:#b6ddcf; }.message-attachment > span:last-child,.message-attachment a { display:flex; flex-direction:column; gap:2px; min-width:0; }.message-attachment a { color:inherit; text-decoration:none; width:100%; }.message-attachment strong { font-size:12px; }.message-attachment small,.message-attachment span { color:var(--muted); font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.message-attachment-icon { align-items:center; background:#d3e7e4; border-radius:7px; color:#176f6a; display:flex; flex:0 0 30px; font-size:13px; font-weight:800; height:30px; justify-content:center; }
.conversation-composer { background:#fff; border-top:1px solid var(--line); display:grid; gap:8px; grid-template-columns:minmax(0,1fr) auto; padding:10px 18px 12px; }.composer-toolbar { align-items:center; display:flex; gap:2px; grid-column:1 / -1; }.composer-tool { align-items:center; background:transparent; border:0; border-radius:5px; color:#617982; cursor:pointer; display:flex; font-size:18px; height:30px; justify-content:center; position:relative; width:30px; }.composer-tool:hover { background:#eaf3f2; color:#176f6a; }.composer-tool:has(input:disabled) { cursor:default; opacity:.45; }.conversation-composer textarea { background:#f4f7f8; border:1px solid #d6e0e4; border-radius:8px; margin:0; min-height:42px; max-height:120px; padding:11px 12px; resize:vertical; }.conversation-composer textarea:focus { border-color:#72aaa3; outline:2px solid rgba(23,124,121,.14); }.send-button { align-items:center; align-self:end; background:#197d77; border:0; border-radius:7px; color:#fff; cursor:pointer; display:flex; gap:7px; height:42px; padding:0 15px; }.send-button:disabled { cursor:default; opacity:.5; }.composer-error { color:var(--danger); font-size:11px; grid-column:1 / -1; margin:0; }.emoji-wrap { position:relative; }.emoji-picker { background:#fff; border:1px solid var(--line); border-radius:7px; bottom:38px; box-shadow:0 10px 25px rgba(23,34,49,.14); display:grid; gap:2px; grid-template-columns:repeat(6,1fr); padding:7px; position:absolute; width:220px; z-index:15; }.emoji-picker button { background:transparent; border:0; border-radius:4px; cursor:pointer; font-size:20px; padding:5px; }.emoji-picker button:hover { background:#eaf3f2; }.attachment-preview { background:#edf6f4; border:1px solid #cfe6e0; border-radius:5px; color:#276c65; font-size:11px; grid-column:1 / -1; padding:7px 9px; }
.chat-modal { align-items:center; background:rgba(23,34,49,.32); display:flex; inset:0; justify-content:center; padding:20px; position:fixed; z-index:50; }.chat-modal-card { background:#fff; border:1px solid var(--line); border-radius:8px; box-shadow:0 18px 50px rgba(23,34,49,.2); max-height:min(640px,90vh); max-width:500px; overflow:auto; padding:20px; width:100%; }.chat-modal-header { align-items:flex-start; display:flex; justify-content:space-between; margin-bottom:16px; }.chat-modal-header h2 { font-size:18px; margin:4px 0 0; }.modal-search { margin:0 0 12px; }.contact-results { max-height:300px; min-height:80px; overflow:auto; }.contact-result { align-items:center; background:transparent; border:0; border-radius:6px; cursor:pointer; display:flex; gap:10px; padding:9px; text-align:left; width:100%; }.contact-result:hover { background:#edf5f4; }.contact-result>span:last-child { display:flex; flex-direction:column; gap:3px; }.contact-result small { color:var(--muted); font-size:11px; }.group-contact-results { border:1px solid var(--line); border-radius:6px; margin-bottom:10px; }.selected-members { display:flex; flex-wrap:wrap; gap:5px; margin:8px 0 14px; }.member-chip { align-items:center; background:#e2f1ee; border-radius:12px; color:#216d66; display:inline-flex; font-size:11px; gap:4px; padding:5px 8px; }.member-chip button { background:transparent; border:0; color:#216d66; cursor:pointer; padding:0; }
.chat-modal[hidden],.chat-popover[hidden],.emoji-picker[hidden] { display:none !important; }
.profile-details { display:grid; gap:12px; margin:0; }.profile-details div { border-left:2px solid var(--teal); padding-left:12px; }.profile-details dt { color:var(--muted); font-size:11px; }.profile-details dd { margin:5px 0 0; }
.peer-profile-hero { align-items:center; background:var(--surface-soft); border:1px solid #e5edef; border-radius:8px; display:flex; gap:12px; margin-bottom:16px; padding:14px; }.peer-profile-hero strong,.peer-profile-hero small { display:block; }.peer-profile-hero strong { font-size:16px; }.peer-profile-hero small { color:var(--muted); font-size:12px; margin-top:4px; }.peer-profile-details { grid-template-columns:repeat(2,minmax(0,1fr)); }.peer-profile-details div { min-width:0; }.peer-profile-details dd { overflow-wrap:anywhere; }
@media (max-width:640px) { .peer-profile-details { grid-template-columns:1fr; } }
@media (max-width:900px) { .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.portal-main { padding:28px 24px; } }
@media (max-width:640px) { .portal-sidebar { flex-basis:72px; padding:18px 8px; }.portal-brand strong,.portal-tenant,.portal-sidebar nav a,.portal-nav-group summary { font-size:0; }.portal-sidebar nav a { min-height:40px; text-align:center; }.portal-sidebar nav a::before { content:attr(data-short); display:block; font-size:12px; font-weight:700; }.portal-nav-group summary { justify-content:center; min-height:40px; padding:8px 0; }.portal-nav-group summary::after { display:none; }.portal-nav-submenu { border-left:0; margin:0; padding:0; }.portal-nav-submenu a { display:none; }.portal-nav-group[open] .portal-nav-submenu a.active { display:flex; font-size:0; min-height:40px; padding:8px 0; }.portal-nav-group[open] .portal-nav-submenu a.active::before { content:"•"; display:block; font-size:18px; margin:auto; }.portal-brand { justify-content:center; padding-left:0; padding-right:0; }.metric-grid,.import-metrics { grid-template-columns:1fr 1fr; }.detail-grid { grid-template-columns:1fr; }.detail-grid dd { font-size:16px; }.page-heading { align-items:flex-start; flex-direction:column; gap:10px; }.portal-main { padding:22px 16px; }.import-layout { grid-template-columns:1fr; }.import-notes { border-left:0; border-top:1px solid var(--line); padding-left:0; padding-top:20px; }.portal-logout button { font-size:11px; padding:8px 2px; } }
@media (max-width:640px) { .permission-grid { grid-template-columns:1fr; } }
@media (max-width:1100px) { .chat-workspace { grid-template-columns:220px 290px minmax(0,1fr); } }
@media (max-width:760px) { .chat-workspace { grid-template-columns:1fr; height:auto; min-height:0; overflow:visible; }.chat-accounts-panel,.chat-dialogs-panel { border-bottom:1px solid var(--line); border-right:0; max-height:360px; }.chat-conversation-panel { min-height:620px; }.conversation-body { min-height:360px; }.chat-account-list,.chat-dialog-list { max-height:250px; } }
@media (max-width:640px) { .portal-entry-grid { grid-template-columns:1fr; }.portal-home-intro h1 { font-size:26px; }.portal-entry-card { min-height:0; padding:22px; }.portal-entry-actions { align-items:stretch; flex-direction:column; gap:12px; }.portal-entry-actions .primary { width:100%; } }
@media (max-width:640px) { .subaccount-login-hint { align-items:flex-start; flex-direction:column; gap:8px; } }

/* Chat columns must absorb their own content so each list scrolls independently. */
.chat-accounts-panel,.chat-dialogs-panel,.chat-conversation-panel { min-height:0; overflow:hidden; }
.chat-account-list,.chat-dialog-list { flex:1 1 auto; min-height:0; overflow:auto; }

/* Refined control system */
:root { --line-strong:#d2dce2; --surface-soft:#f7fafb; --shadow-soft:0 8px 24px rgba(24,43,54,.08); --shadow-popover:0 14px 34px rgba(24,43,54,.16); --focus-ring:0 0 0 3px rgba(23,124,121,.16); }
button,a,input,textarea,select { transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease,transform .16s ease; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline:0; box-shadow:var(--focus-ring); }
.content-section,.metric-grid article,.auth-panel { box-shadow:var(--shadow-soft); }
.content-section { border-color:var(--line-strong); border-radius:10px; }
.metric-grid article { border-color:var(--line-strong); border-radius:10px; }
.auth-panel { border-color:var(--line-strong); border-radius:12px; }
form input,form textarea,form select { background:#fff; border-color:var(--line-strong); min-height:42px; }
form input:hover,form textarea:hover,form select:hover { border-color:#aebfc8; }
form input:focus,form textarea:focus,form select:focus { border-color:#6ea9a3; box-shadow:var(--focus-ring); outline:0; }
.primary { border-radius:7px; box-shadow:0 3px 8px rgba(18,43,62,.12); min-height:40px; }.primary:hover { background:#1b3e56; transform:translateY(-1px); }
.portal-sidebar nav a { border:1px solid transparent; }.portal-sidebar nav a:hover { border-color:rgba(144,207,201,.16); }.portal-sidebar nav a.active { box-shadow:inset 3px 0 0 #64c4b9; }
.portal-logout button:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.38); }
.chat-workspace { border-color:var(--line-strong); box-shadow:0 12px 34px rgba(24,43,54,.09); }
.chat-accounts-panel,.chat-dialogs-panel { background:#f6f9fa; }.chat-conversation-panel { background:#edf3f5; }
.chat-panel-heading,.chat-column-header { border-bottom:1px solid #e7eef1; }.conversation-header { box-shadow:0 1px 0 rgba(24,43,54,.04); }
.chat-search { border-color:var(--line-strong); min-height:40px; }.chat-search:focus-within { border-color:#74aaa4; box-shadow:var(--focus-ring); }.chat-search .field-icon { flex:0 0 auto; }
.field-icon { color:#78909a; height:16px; width:16px; }.field-icon,.chat-popover svg,.icon-button svg,.composer-tool svg,.send-button svg,.conversation-empty-icon svg { fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.icon-button { align-items:center; border-radius:7px; display:inline-flex; justify-content:center; padding:0; }.icon-button:hover { background:#e7f1f0; color:#176f6a; }.icon-button svg { height:17px; width:17px; }.chat-popover { box-shadow:var(--shadow-popover); }
.chat-account-item,.chat-dialog-item { border:1px solid transparent; margin:2px 0; }.chat-account-item.is-active,.chat-dialog-item.is-active { border-color:#c9e3df; box-shadow:0 2px 8px rgba(23,124,121,.08); }.chat-account-item:hover,.chat-dialog-item:hover { border-color:#d6e8e6; }
.chat-filter { border:1px solid transparent; }.chat-filter:hover { background:#edf5f4; }.chat-filter.is-active { border-color:#c9e3df; }
.connection-pill { border:1px solid #c6e4dc; }.send-button { border-radius:8px; box-shadow:0 4px 10px rgba(25,125,119,.18); }.send-button:hover:not(:disabled) { background:#146c67; transform:translateY(-1px); }.send-button svg { height:16px; width:16px; }
.composer-tool svg { height:18px; width:18px; }.conversation-empty-icon svg { height:21px; width:21px; }.conversation-empty-icon { box-shadow:0 5px 14px rgba(35,125,120,.12); }
.chat-modal { backdrop-filter:blur(3px); }.chat-modal-card { border-color:var(--line-strong); box-shadow:var(--shadow-popover); }.chat-modal-card .primary { margin-top:4px; width:100%; }.chat-modal-header { border-bottom:1px solid #edf1f3; padding-bottom:14px; }.contact-result { border:1px solid transparent; margin:2px 0; }.contact-result:hover { border-color:#d6e8e6; box-shadow:0 2px 8px rgba(23,124,121,.06); }.chat-modal-card label:not(.chat-search) input { margin-top:8px; }

/* Final visual pass: keep controls crisp and predictable across the portal. */
svg { display:block; }
.portal-brand { border-radius:10px; transition:background-color .16s ease, transform .16s ease; }
.portal-brand:hover { background:rgba(255,255,255,.05); transform:translateY(-1px); }
.portal-sidebar nav a { align-items:center; display:flex; font-weight:600; letter-spacing:.01em; min-height:42px; }
.portal-sidebar nav a.active { background:var(--nav-soft); }
.page-heading h1 { letter-spacing:-.01em; }
.page-heading span,.eyebrow { letter-spacing:.08em; }
.metric-grid article { background:linear-gradient(145deg,#fff 0%,#fbfcfd 100%); }
table tbody tr { transition:background-color .16s ease; }
table tbody tr:hover { background:#f8fbfc; }
.chat-panel-heading,.chat-column-header { min-height:76px; }
.chat-heading-actions,.chat-header-actions,.conversation-actions { flex-shrink:0; }
.chat-count { border:1px solid #d3e2e5; font-weight:700; }
.icon-button { min-height:32px; min-width:32px; }
.icon-button svg { stroke-width:2; }
.icon-button[data-account-menu] svg[data-icon="more-vertical"] circle { fill:currentColor; stroke:none; }
.chat-header-actions .icon-button,.conversation-actions .icon-button { border:1px solid transparent; }
.chat-header-actions .icon-button:hover,.conversation-actions .icon-button:hover { border-color:#c9e3df; }
.chat-popover { min-width:174px; padding:6px; }
.chat-popover button,.chat-popover a { min-height:36px; }
.chat-search { box-shadow:0 1px 2px rgba(25,49,61,.03); }
.chat-filter-row { scrollbar-width:none; }
.chat-filter-row::-webkit-scrollbar { display:none; }
.chat-account-item,.chat-dialog-item { min-height:62px; }
.chat-account-item.is-active,.chat-dialog-item.is-active { background:#e5f2f0; }
.chat-avatar { box-shadow:inset 0 0 0 1px rgba(44,81,93,.08); }
.conversation-header { gap:8px; min-height:74px; }
.conversation-header .conversation-peer-button { flex:1; min-width:0; }
.conversation-header .conversation-peer-button > div { flex:1; min-width:0; }
.conversation-header .conversation-peer small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:640px) {
  .conversation-header { flex-wrap:wrap; padding:10px 12px; }
  .conversation-header .conversation-peer-button { flex-basis:100%; }
  .conversation-header .conversation-actions { justify-content:flex-end; width:100%; }
}
.connection-pill { font-weight:700; }
.conversation-body { background:radial-gradient(circle at 30% 10%,rgba(255,255,255,.42),transparent 36%),#edf3f5; }
.message-bubble { border:1px solid rgba(35,56,65,.06); }
.conversation-composer { padding-top:9px; }
.composer-toolbar { min-height:32px; }
.composer-tool { border:1px solid transparent; }
.composer-tool:hover { border-color:#c9e3df; }
.conversation-composer textarea { box-shadow:inset 0 1px 2px rgba(25,49,61,.04); }
.send-button { min-width:78px; justify-content:center; }
.chat-modal { padding:24px; }
.chat-modal-card { border-radius:12px; max-width:520px; padding:22px; }
.chat-modal-header h2 { letter-spacing:-.01em; }
.chat-modal-card label:not(.chat-search) { color:#3e4e5a; }
.contact-results,.group-contact-results { scrollbar-width:thin; scrollbar-color:#c6d7d9 transparent; }
.contact-result { min-height:52px; }
.selected-members { min-height:26px; }
.member-chip { border:1px solid #c9e3df; box-shadow:0 1px 2px rgba(23,124,121,.06); }
.member-chip button { align-items:center; border-radius:50%; display:inline-flex; height:18px; justify-content:center; width:18px; }
.member-chip button:hover { background:#c7e4df; }
.member-chip button svg { height:12px; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; width:12px; }
@media (max-width:1100px) { .portal-main { padding-left:28px; padding-right:28px; } }

/* Attachment controls use explicit, high-contrast SVG geometry for reliable browser rendering. */
.conversation-composer .composer-tool { border-radius:6px; height:34px; width:34px; }
.conversation-composer .composer-tool { margin:0; font-weight:400; padding:0; }
.conversation-composer .composer-tool input[type=file][hidden] { display:none !important; }
.conversation-composer .composer-tool:has(input:disabled) { color:#82969d; cursor:not-allowed; opacity:.72; }
.conversation-composer .composer-tool svg { height:20px; overflow:visible; width:20px; }
.conversation-composer .composer-tool svg[data-icon="image"],
.conversation-composer .composer-tool svg[data-icon="paperclip"] { stroke-width:2.1; }
.form-help { color:var(--muted); font-size:12px; line-height:1.6; margin:-4px 0 18px; }
.account-meta { color:var(--muted); display:block; font-size:11px; margin-top:4px; }
.selection-actions { align-items:center; display:flex; gap:8px; }
.selection-actions form.inline { align-items:center; display:flex; gap:6px; }
.compact-check { align-items:center; color:var(--muted); display:inline-flex; font-size:12px; gap:4px; white-space:nowrap; }
.compact-check input { margin:0; }
.stacked-form { display:grid; gap:16px; max-width:620px; }
.stacked-form label { color:var(--ink); display:grid; font-size:13px; gap:6px; }
.stacked-form input,.stacked-form textarea { border:1px solid var(--line-strong); border-radius:5px; font:inherit; padding:9px 10px; }
.stacked-form small { color:var(--muted); font-size:12px; }
.form-error { color:var(--danger); font-size:13px; margin:0; }
.secondary-button,.danger-button { border:1px solid var(--line-strong); border-radius:6px; cursor:pointer; min-height:34px; padding:0 11px; }
.secondary-button { background:#fff; color:var(--ink); }.secondary-button:hover { background:var(--surface-soft); border-color:#9eb3bc; }
.secondary-button:disabled { background:#f1f4f5; color:#9aa9af; cursor:not-allowed; opacity:.8; }
.danger-button { background:#fff5f5; border-color:#e4b8bb; color:var(--danger); }.danger-button:hover { background:#f8e5e6; }

/* Campaign task forms keep the primary settings visible without a tall, loose layout. */
.campaign-task-form { max-width:980px; padding:22px 24px 20px; }
.campaign-form-grid { display:grid; gap:14px 16px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.campaign-form-field { margin:0; min-width:0; }
.campaign-form-field-wide { grid-column:1 / -1; }
.campaign-form-field-small { max-width:300px; }
.campaign-form-field > span { display:block; }
.campaign-form-help { color:var(--muted); display:block; font-size:12px; font-weight:400; line-height:1.55; margin:6px 0 0; }
.campaign-form-field .campaign-form-help { min-height:19px; }
.campaign-options { background:var(--surface-soft); border:1px solid #e5edef; border-radius:7px; margin-top:17px; padding:11px 13px; }
.campaign-options .campaign-form-help { margin:4px 0 0 27px; }
.campaign-checkbox { align-items:center; display:flex; gap:9px; margin:0; }
.campaign-checkbox input[type="checkbox"] { flex:0 0 auto; height:16px; margin:0; width:16px; }
.campaign-checkbox span { font-size:13px; font-weight:600; }
.campaign-form-actions { align-items:center; border-top:1px solid var(--line); display:flex; gap:10px; justify-content:flex-end; margin-top:20px; padding-top:16px; }
.campaign-form-actions .primary { min-width:112px; }
.campaign-form-actions .secondary-button { align-items:center; display:inline-flex; justify-content:center; text-decoration:none; }
.campaign-settings-summary { background:var(--surface-soft); border-left:3px solid var(--teal); border-radius:4px; margin:0; padding:11px 13px; }
@media (max-width:760px) { .campaign-form-grid { grid-template-columns:1fr; }.campaign-form-field-wide { grid-column:auto; }.campaign-form-field-small { max-width:none; }.campaign-task-form { padding:18px; } }

/* Message templates support text, image, and image-with-text layouts. */
.campaign-template-form-section { max-width:920px; padding:22px 24px; }
.campaign-template-grid { display:grid; gap:24px; grid-template-columns:minmax(0,1.55fr) minmax(250px,.75fr); }
.campaign-template-fields label:last-of-type { margin-bottom:10px; }
.campaign-template-fields textarea { min-height:228px; resize:vertical; }
.campaign-template-media { border-left:1px solid var(--line); min-width:0; padding-left:24px; }
.campaign-template-media-title { display:block; font-size:12px; font-weight:700; margin-bottom:10px; }
.campaign-template-preview { background:#f1f4f5; border:1px solid var(--line-strong); border-radius:7px; display:block; overflow:hidden; width:100%; }
.campaign-template-preview img { aspect-ratio:4 / 3; display:block; object-fit:contain; width:100%; }
.campaign-template-empty-image { align-items:center; aspect-ratio:4 / 3; background:var(--surface-soft); border:1px dashed #b8c6cd; border-radius:7px; color:var(--muted); display:flex; font-size:12px; justify-content:center; }
.campaign-template-file-meta { display:flex; gap:8px; justify-content:space-between; margin-top:8px; min-width:0; }
.campaign-template-file-meta strong { font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.campaign-template-file-meta span { color:var(--muted); flex:0 0 auto; font-size:11px; }
.campaign-template-upload { margin-top:14px; }
.campaign-template-upload input { padding:8px; }
.campaign-template-remove { background:#fff7f7; border:1px solid #edcfd1; border-radius:6px; color:var(--danger); padding:9px 10px; }
.campaign-template-identity { align-items:center; display:flex; gap:10px; min-width:160px; }
.campaign-template-identity img,.campaign-template-identity>span { align-items:center; background:#e8eef0; border-radius:6px; display:flex; flex:0 0 44px; height:44px; justify-content:center; object-fit:cover; width:44px; }
.campaign-template-copy { max-width:400px; white-space:normal; }
.campaign-template-copy>span { color:var(--muted); }
@media (max-width:760px) { .campaign-template-grid { grid-template-columns:1fr; }.campaign-template-media { border-left:0; border-top:1px solid var(--line); padding-left:0; padding-top:20px; }.campaign-template-form-section { padding:18px; } }

/* Telegram account assignment controls stay compact even with large account lists. */
.account-page-heading { align-items:flex-end; margin-bottom:14px; }
.account-page-summary { color:var(--muted); display:block; font-size:11px; margin-top:5px; }
.account-filter-form { align-items:end; display:grid; gap:10px 12px; grid-template-columns:repeat(5,minmax(130px,1fr)) auto; }
.account-filter-form label { margin:0; min-width:0; }
.account-filter-section { padding:12px 14px; }
.account-filter-form input,.account-filter-form select { min-height:34px; margin-top:4px; padding:6px 8px; }
.filter-actions { align-items:center; display:flex; gap:8px; padding-bottom:1px; }
.filter-actions .primary { min-height:34px; padding:6px 12px; }
.account-bulk-panel { background:#fbfdfd; border-color:#cfe3df; padding:12px 14px; }
.bulk-panel-heading,.bulk-panel-actions { align-items:center; display:flex; justify-content:space-between; gap:14px; }
.bulk-panel-heading { border-bottom:1px solid #e3efec; padding-bottom:9px; }
.bulk-panel-heading strong { font-size:13px; margin-right:10px; }
.bulk-panel-heading span { color:var(--muted); font-size:12px; }
.bulk-panel-actions { padding-top:10px; }
.bulk-action-form { align-items:end; display:flex; flex:1; gap:10px; margin:0; }
.bulk-action-form label { flex:0 1 240px; margin:0; }
.bulk-action-form select { min-height:34px; margin-top:4px; padding:6px 8px; }
.bulk-action-form .primary { min-height:34px; white-space:nowrap; }
.danger-action { color:var(--danger) !important; }
.account-table-section { padding:0; }
.account-table { min-width:1000px; }
.account-table th,.account-table td { vertical-align:middle; }
.account-table th { font-size:11px; padding:9px 10px; }
.account-table td { font-size:12px; padding:9px 10px; }
.selection-column { text-align:center; width:42px; }
.selection-column input { accent-color:var(--teal); height:16px; margin:4px auto 0; width:16px; }
.account-import-group { color:#4b6874; display:inline-block; font-size:12px; max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-team-name { color:#3d5661; font-size:12px; }
.account-assign-form { align-items:center; display:flex; gap:5px; margin:7px 0 0; }
.account-assign-form select { font-size:11px; margin:0; min-height:29px; padding:4px 6px; width:128px; }
.account-assign-form .row-subaccount-select { width:164px; }
.account-assign-form .table-action { border:1px solid #c9e3df; border-radius:5px; min-height:29px; padding:0 8px; }
.account-identity { gap:8px; }
.account-identity img,.account-identity > span { height:32px; width:32px; }
.account-identity strong { font-size:12px; }
.account-identity small { font-size:10px; }
.account-table .status-badge { font-size:10px; padding:4px 7px; }
.account-table .row-error { display:block; font-size:10px; line-height:1.35; margin-top:4px; max-width:150px; }
.account-table .table-action { font-size:11px; min-height:29px; padding:0 8px; }
.health-badge { align-items:center; border:1px solid #d5e0e2; border-radius:999px; display:inline-flex; font-size:10px; font-weight:700; line-height:1; min-height:22px; padding:0 7px; white-space:nowrap; }
.health-normal { background:#edf8f1; border-color:#b9e2c6; color:#237341; }
.health-confirmed_limited { background:#fff3e8; border-color:#f1c692; color:#a65a14; }
.health-unknown { background:#f2f5f6; color:#64757c; }
.account-table td:nth-child(6) { min-width:88px; }
.account-table td:nth-child(10) { white-space:nowrap; }
.selection-actions { align-items:center; gap:5px; }
.selection-actions .inline { margin:0; }
.selection-actions .secondary-button,.selection-actions .table-action { font-size:11px; min-height:29px; padding:0 8px; }
.account-bulk-panel { padding:10px 12px; }
.sr-only { height:1px; margin:-1px; overflow:hidden; position:absolute; width:1px; clip:rect(0,0,0,0); }
@media (max-width:1100px) { .account-page-heading { align-items:flex-start; }.account-filter-form { grid-template-columns:repeat(3,minmax(130px,1fr)); }.bulk-panel-actions { align-items:stretch; flex-direction:column; }.bulk-action-form { flex-wrap:wrap; }.bulk-action-form label { flex:1 1 220px; } }
@media (max-width:640px) { .account-filter-form { grid-template-columns:1fr 1fr; }.filter-actions { grid-column:1 / -1; }.bulk-panel-heading { align-items:flex-start; flex-direction:column; }.selection-actions { flex-wrap:wrap; }.bulk-action-form { align-items:stretch; flex-direction:column; }.bulk-action-form label { flex:auto; }.bulk-action-form .primary { width:100%; }.account-assign-form { align-items:stretch; flex-direction:column; }.account-assign-form select,.account-assign-form .row-subaccount-select { width:100%; } }

/* Task detail and edit actions stay visually distinct from table text actions. */
.campaign-detail-heading { align-items:center; }
.campaign-detail-actions { align-items:center; display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; }
.campaign-page-link { align-items:center; border:1px solid var(--line-strong); border-radius:7px; display:inline-flex; min-height:38px; padding:0 13px; }
.campaign-page-link:hover { background:var(--surface-soft); border-color:#9eb3bc; }
.campaign-status-pill { background:#edf2f4; border:1px solid #d9e2e5; border-radius:999px; color:#526773; display:inline-flex; font-size:12px; font-weight:700; min-height:30px; align-items:center; padding:0 11px; }
.campaign-section-heading { align-items:center; gap:16px; margin-bottom:18px; }
.campaign-section-heading h2 { margin:0; }
.campaign-action-bar { align-items:center; display:flex; flex-wrap:wrap; gap:8px; }
.campaign-action-form { display:block; margin:0; }
.campaign-action-form button { align-items:center; border-radius:7px; cursor:pointer; display:inline-flex; font-size:13px; font-weight:700; justify-content:center; min-height:38px; padding:0 14px; }
.campaign-action-primary { background:var(--teal); border:1px solid var(--teal); box-shadow:0 3px 8px rgba(23,124,121,.18); color:#fff; }
.campaign-action-primary:hover { background:#146c67; border-color:#146c67; transform:translateY(-1px); }
.campaign-action-secondary { align-items:center; background:#fff; border:1px solid var(--line-strong); border-radius:7px; color:var(--ink); display:inline-flex; font-size:13px; font-weight:700; min-height:38px; padding:0 14px; }
.campaign-action-secondary:hover { background:var(--surface-soft); border-color:#9eb3bc; color:var(--ink); }
.campaign-action-danger { background:#fff5f5; border:1px solid #e4b8bb; color:var(--danger); }
.campaign-action-danger:hover { background:#f8e5e6; border-color:#d69a9f; }
.campaign-form-submit { min-width:124px; }
.campaign-form-cancel { min-width:86px; }
@media (max-width:760px) { .campaign-detail-heading { align-items:flex-start; }.campaign-detail-actions { justify-content:flex-start; }.campaign-section-heading { align-items:flex-start; flex-direction:column; }.campaign-action-bar { width:100%; }.campaign-action-form,.campaign-action-form button { width:100%; }.campaign-form-actions { flex-direction:column-reverse; }.campaign-form-actions > * { width:100%; }.campaign-form-actions .primary,.campaign-form-cancel { width:100%; } }
.message-image img[data-media-url] { min-width: 120px; min-height: 96px; max-width: 100%; object-fit: contain; }
.chat-panel-heading,.chat-column-header,.chat-search,.chat-filter-row { flex-shrink:0; }
.chat-unread-badge[hidden] { display:none; }
.message-image img[data-media-url]:not([src]) { visibility:hidden; }
.message-image:has(img[data-media-url]:not([src])) { background:#f1f5f6; }
[data-chat-v2="1"] .chat-account-item,[data-chat-v2="1"] .chat-dialog-item { box-sizing:border-box; height:66px; min-height:66px; margin:0 0 2px; }
[data-chat-v2="1"] .chat-unread-badge.is-syncing { background:#e8eef0; color:#526773; font-size:10px; white-space:nowrap; }
[data-chat-v2="1"] .chat-page-button { display:block; background:transparent; border:0; color:var(--teal); cursor:pointer; font-size:12px; margin:4px auto; padding:8px 12px; }
[data-chat-v2="1"] .chat-page-button:disabled { color:var(--muted); cursor:wait; }
[data-chat-v2="1"] .chat-filter-row { flex-wrap:wrap; }
@media (max-width:760px) {
  [data-chat-v2="1"] { grid-template-columns:minmax(0,1fr); }
  [data-chat-v2="1"] .chat-column-header { flex-wrap:wrap; }
}
.message-delete{align-self:center;background:transparent;border:0;color:var(--muted);cursor:pointer;font-size:11px;margin:0 6px;opacity:.55;padding:2px 5px;}.message-delete:hover{color:var(--danger);opacity:1;}.conversation-actions .icon-button[data-delete-dialog]:hover{color:var(--danger);}
