/* Shared responsive guardrails for CRM, CMS and LMS screens. */
*, *::before, *::after { box-sizing: border-box; }
/* Keep the document root as the vertical scroller. Applying overflow-x: clip
   to both html and body can stop the viewport from receiving wheel scrolling. */
html { max-width: 100%; overflow-y: auto; overflow-x: clip; }
body { max-width: 100%; overflow-x: clip; }
img, svg, video, canvas { max-width: 100%; }
button, input, select, textarea { max-width: 100%; }
button, [role='button'] { line-height: 1.25; white-space: normal; overflow-wrap: anywhere; }
.flex > *, .grid > * { min-width: 0; }
.metric-chart-canvas, #yandex-charts-root canvas { width: 100% !important; max-width: 100%; height: 100% !important; }
.ui-chart-container { position: relative; width: 100%; min-width: 0; height: 14rem; overflow: hidden; }
.ui-chart-container--compact { height: 3.5rem; }
.sl-project-jump { display:grid; grid-template-columns:minmax(220px,.75fr) minmax(0,2fr); gap:1rem; align-items:center; padding:1rem 1.25rem; border:1px solid #bfdbfe; border-radius:1.25rem; background:linear-gradient(110deg,#eff6ff,#eef2ff 55%,#f8fafc); box-shadow:0 8px 24px rgba(37,99,235,.08); }
.sl-project-jump__eyebrow { color:#2563eb; font-size:.65rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.sl-project-jump__title { margin-top:.2rem; color:#0f172a; font-size:1rem; font-weight:900; }
.sl-project-jump__hint { margin-top:.25rem; color:#64748b; font-size:.72rem; line-height:1.45; }
.sl-project-jump__links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
.sl-project-jump__link { display:flex; align-items:center; gap:.5rem; min-width:0; padding:.65rem .75rem; border:1px solid rgba(147,197,253,.7); border-radius:.9rem; color:#1e3a8a; background:rgba(255,255,255,.75); text-decoration:none; transition:.2s ease; }
.sl-project-jump__link:hover { border-color:#2563eb; box-shadow:0 5px 14px rgba(37,99,235,.12); transform:translateY(-1px); }
.sl-project-jump__status { flex:0 0 auto; color:#2563eb; font-size:.62rem; font-weight:900; text-transform:uppercase; }
.sl-project-jump__name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.74rem; font-weight:800; }
.sl-project-jump__link i { margin-left:auto; color:#64748b; font-size:.7rem; }
.sl-executor-empty { display:flex; align-items:center; gap:1rem; margin-top:1rem; background:linear-gradient(110deg,#eff6ff,#f8fafc); }
.sl-executor-empty__icon { flex:0 0 3rem; width:3rem; height:3rem; display:grid; place-items:center; border-radius:1rem; color:#2563eb; background:#dbeafe; font-size:1.1rem; }
.dark .sl-project-jump,.dark .sl-executor-empty { background:linear-gradient(110deg,rgba(30,58,138,.28),rgba(15,23,42,.7)); border-color:#1e40af; }
.dark .sl-project-jump__title { color:#f8fafc; }
.dark .sl-project-jump__link { color:#bfdbfe; background:rgba(15,23,42,.6); border-color:#1e40af; }
@media (max-width: 820px) {
  .sl-project-jump { grid-template-columns:1fr; }
  .sl-project-jump__links { grid-template-columns:1fr; }
  .sl-executor-empty { align-items:flex-start; }
  .ui-chart-container { height: 12rem; }
  .ui-chart-container--compact { height: 3.5rem; }
  table { max-width: 100%; }
  .card table { display: block; overflow-x: auto; white-space: nowrap; }
}
@media (max-width: 480px) {
  .ui-chart-container { height: 10.5rem; }
  .ui-chart-container--compact { height: 3.25rem; }
  .text-3xl { line-height: 1.15; }
  .ui-action-row > button, .ui-action-row > a { flex: 1 1 100%; }
}

/* CRM communication journal */
.sl-communication-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:1rem; margin-top:1rem; }
.sl-journal-panel,.sl-contact-card { border-radius:1.25rem; padding:1.25rem; box-shadow:0 8px 30px rgba(15,23,42,.06); }
.sl-journal-heading,.sl-contact-heading,.sl-journal-page-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.sl-eyebrow { color:#64748b; font-size:.65rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.sl-journal-heading h2,.sl-contact-heading h2 { margin:.25rem 0 0; font-size:1.15rem; font-weight:900; }.sl-journal-heading p { color:#64748b; font-size:.75rem; margin:.3rem 0 0; }
.sl-unread-counter { display:inline-flex; align-items:center; gap:.4rem; border:1px solid #bfdbfe; border-radius:999px; color:#1d4ed8; background:#eff6ff; padding:.45rem .7rem; font-size:.7rem; font-weight:800; white-space:nowrap; }.dark .sl-unread-counter { background:rgba(30,64,175,.25); border-color:#1e40af; color:#bfdbfe; }
.sl-channel-filters { display:flex; gap:.45rem; overflow-x:auto; padding:.9rem 0; border-bottom:1px solid #e2e8f0; scrollbar-width:none; }.sl-channel-filter { border:0; background:transparent; color:#64748b; cursor:pointer; border-radius:999px; padding:.48rem .7rem; font-size:.72rem; font-weight:800; white-space:nowrap; }.sl-channel-filter:hover,.sl-channel-filter.is-active { color:#1d4ed8; background:#eff6ff; }.dark .sl-channel-filters { border-color:#334155; }.dark .sl-channel-filter { color:#94a3b8; }.dark .sl-channel-filter:hover,.dark .sl-channel-filter.is-active { color:#bfdbfe; background:rgba(30,64,175,.3); }
.sl-journal-list { display:flex; flex-direction:column; gap:.6rem; padding-top:.75rem; }.sl-journal-item,.sl-message-card { display:flex; gap:.75rem; border:1px solid #e2e8f0; border-radius:1rem; padding:.85rem; background:rgba(255,255,255,.65); transition:border-color .2s,box-shadow .2s; }.sl-journal-item:hover,.sl-message-card:hover { border-color:#93c5fd; box-shadow:0 8px 20px rgba(37,99,235,.08); }.dark .sl-journal-item,.dark .sl-message-card { border-color:#334155; background:rgba(15,23,42,.55); }.sl-journal-item.is-unread { border-color:#93c5fd; background:#f8fbff; }.dark .sl-journal-item.is-unread { background:rgba(30,64,175,.12); }
.sl-journal-marker { flex:0 0 2rem; width:2rem; height:2rem; display:grid; place-items:center; border-radius:.75rem; background:#dbeafe; color:#2563eb; }.sl-channel-site_chat { background:#ccfbf1; color:#0f766e; }.sl-channel-project_chat { background:#ede9fe; color:#7c3aed; }.sl-journal-content { min-width:0; flex:1; }.sl-journal-meta { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; color:#94a3b8; font-size:.68rem; }.sl-channel-label { color:#475569; font-weight:800; }.dark .sl-channel-label { color:#cbd5e1; }.sl-new-dot { color:#0369a1; font-weight:900; }.sl-journal-title { margin-top:.25rem; color:#0f172a; font-size:.86rem; font-weight:900; overflow-wrap:anywhere; }.dark .sl-journal-title { color:#f8fafc; }.sl-journal-from { color:#64748b; font-size:.7rem; margin-top:.15rem; }.sl-journal-content p { margin:.35rem 0 0; color:#475569; font-size:.76rem; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; }.dark .sl-journal-content p { color:#cbd5e1; }
.sl-attachment-row { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.65rem; }.sl-attachment { display:inline-flex; align-items:center; gap:.4rem; max-width:100%; border:1px solid #dbeafe; border-radius:.65rem; color:#1d4ed8; background:#eff6ff; padding:.4rem .55rem; font-size:.7rem; text-decoration:none; }.sl-attachment span { max-width:13rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.sl-attachment small { color:#64748b; }.dark .sl-attachment { background:rgba(30,64,175,.22); border-color:#1e40af; color:#bfdbfe; }
.sl-journal-empty { display:grid; place-items:center; gap:.35rem; text-align:center; padding:2rem 1rem; color:#64748b; }.sl-empty-icon { display:grid; place-items:center; width:3rem; height:3rem; border-radius:1rem; color:#2563eb; background:#dbeafe; font-size:1.2rem; }.sl-journal-empty strong { color:#334155; font-size:.85rem; }.sl-journal-empty span { max-width:24rem; font-size:.75rem; }.dark .sl-journal-empty strong { color:#e2e8f0; }
.sl-contact-heading h2 { font-size:1.05rem; }.sl-online-state { color:#059669; font-size:.68rem; font-weight:800; }.sl-online-state i { display:inline-block; width:.4rem; height:.4rem; margin-right:.25rem; border-radius:50%; background:#10b981; }.sl-contact-primary { display:flex; align-items:center; gap:.65rem; padding:1rem 0; border-bottom:1px solid #e2e8f0; }.dark .sl-contact-primary { border-color:#334155; }.sl-avatar { display:grid; place-items:center; flex:0 0 2.5rem; width:2.5rem; height:2.5rem; border-radius:.85rem; background:linear-gradient(135deg,#2563eb,#7c3aed); color:#fff; font-weight:900; }.sl-contact-primary strong,.sl-contact-primary span { display:block; overflow-wrap:anywhere; }.sl-contact-primary strong { color:#0f172a; font-size:.82rem; }.dark .sl-contact-primary strong { color:#f8fafc; }.sl-contact-primary span { color:#64748b; font-size:.68rem; margin-top:.15rem; }.sl-contact-details { display:grid; gap:.75rem; margin:1rem 0; }.sl-contact-details dt { color:#94a3b8; font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }.sl-contact-details dd { display:flex; align-items:center; gap:.45rem; margin:.2rem 0 0; color:#334155; font-size:.75rem; overflow-wrap:anywhere; }.dark .sl-contact-details dd { color:#e2e8f0; }.sl-contact-details dd i { color:#2563eb; width:.9rem; text-align:center; }.sl-contact-footer { display:flex; justify-content:space-between; gap:.5rem; padding-top:.75rem; border-top:1px solid #e2e8f0; color:#64748b; font-size:.68rem; }.dark .sl-contact-footer { border-color:#334155; }
.sl-message-card { display:block; }.sl-journal-page-head { margin-bottom:1rem; }
@media (max-width:820px) { .sl-communication-layout { grid-template-columns:1fr; }.sl-contact-rail { order:-1; }.sl-contact-details { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:480px) { .sl-journal-panel,.sl-contact-card { padding:.9rem; border-radius:1rem; }.sl-journal-heading,.sl-journal-page-head { flex-direction:column; }.sl-unread-counter { align-self:flex-start; }.sl-contact-details { grid-template-columns:1fr; }.sl-journal-item,.sl-message-card { padding:.7rem; }.sl-attachment span { max-width:9rem; } table.min-w-\[760px\] { display:none; } .sl-query-cards { display:grid; gap:.65rem; padding:1rem; } }
.sl-query-cards { display:none; }

/* Workspace header: the full desktop navigation is wider than the 1,800px
   shell once the role, notifications and logout controls are visible. Keep
   the right-side controls inside the viewport and use the existing burger
   menu on the narrow desktop range. */
@media (min-width: 1740px) and (max-width: 1899px) {
  header > div.max-w-\[1800px\] > nav { display: none !important; }
  header > div.max-w-\[1800px\] { max-width: 100%; padding-left: .75rem; padding-right: .75rem; }
  header #ws-burger { display: flex !important; }
  header #ws-mobile-menu:not(.hidden) { display: block !important; }
}

@media (min-width: 1900px) {
  header > div.max-w-\[1800px\] { max-width: 100%; padding-left: .75rem; padding-right: .75rem; }
}
