/* Design Gang CRM Product UI v2 — authoritative application layer.
   Welcome is intentionally outside this stylesheet. */
:root {
  --pv-bg: #070907;
  --pv-surface: rgba(19, 23, 20, .86);
  --pv-surface-solid: #121612;
  --pv-raised: #171d18;
  --pv-line: rgba(232, 255, 238, .085);
  --pv-line-strong: rgba(232, 255, 238, .16);
  --pv-text: #f0f5f1;
  --pv-muted: #929c95;
  --pv-faint: #667069;
  --pv-green: #62d789;
  --pv-red: #ee8b8b;
  --pv-amber: #e9c078;
  --pv-blue: #8eb8ed;
  --pv-radius: 16px;
  --pv-shadow: 0 22px 56px rgba(0, 0, 0, .28);
  --pv-ease: cubic-bezier(.2, .8, .2, 1);
}

html { scrollbar-gutter: stable; }
body { background: var(--pv-bg); }
.page { min-width: 0; }
.page[data-page="mywork"] { overflow: hidden; }
.snav-item[data-nav="motivation"],.bnav-item[data-nav="motivation"],
.page[data-page="motivation"] { display: none !important; }

/* Progressive disclosure: the CRM stays capable without showing every
   capability at once. */
.snav-group.pv-group-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 31px;
  margin: 6px 0 1px;
  padding: 7px 9px !important;
  border-radius: 8px;
  cursor: pointer;
  transition: color 130ms ease, background 130ms ease;
}
.snav-group.pv-group-toggle:hover { color: #a7aea9 !important; background: rgba(255,255,255,.035); }
.snav-group.pv-group-toggle:focus { outline:none; }
.snav-group.pv-group-toggle:focus-visible { box-shadow:inset 0 0 0 1px rgba(98,215,137,.32); }
.snav-group.pv-group-toggle::after { content: '›'; font-size: 15px; font-weight: 500; transform: rotate(0); transition: transform 150ms var(--pv-ease); }
.snav-group.pv-group-toggle[aria-expanded="true"]::after { transform: rotate(90deg); }
.snav-item.pv-group-hidden { display: none !important; }
.snav-badge:empty { display:none !important; }
.sidebar-nav { padding-bottom: 5px !important; }

.sidebar-section-title { cursor: pointer; }
.pv-project-toggle { min-width: 58px; height: 25px; padding: 0 7px; color: #777f79; background: transparent; border: 0; border-radius: 7px; font-size: 9px; }
.pv-project-toggle:hover { color: #c4cbc6; background: rgba(255,255,255,.04); }
.sidebar-spaces.pv-projects-compact #spacesList .space-item:not(.active):not([data-space-id="__svodka__"]) { display: none !important; }
.sidebar-spaces.pv-projects-compact { flex: 0 0 auto !important; }
.sidebar-hub { opacity: .72; transition: opacity 140ms ease, border-color 140ms ease; }
.sidebar-hub:hover { opacity: 1; }
.page[data-page="mywork"] #myWorkContent { scrollbar-gutter: stable; }
.page[data-page="mywork"] > .page-header,
.page[data-page="dashboard"] > .page-header { display: none; }

.pv-page { width: min(1280px, 100%); margin: 0 auto; padding: 2px 2px 32px; }
.pv-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.pv-eyebrow { margin-bottom: 6px; color: var(--pv-green); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.pv-title { margin: 0; color: var(--pv-text); font-size: clamp(23px, 2.5vw, 32px); font-weight: 780; letter-spacing: -.04em; line-height: 1.08; }
.pv-sub { max-width: 700px; margin: 7px 0 0; color: var(--pv-muted); font-size: 12px; line-height: 1.55; }
.pv-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

.pv-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.pv-kpi { position: relative; min-width: 0; min-height: 104px; padding: 15px; overflow: hidden; color: var(--pv-text); background: linear-gradient(145deg, rgba(26,32,27,.96), rgba(14,18,15,.94)); border: 1px solid var(--pv-line); border-radius: var(--pv-radius); cursor: pointer; text-align: left; transition: transform 150ms var(--pv-ease), border-color 150ms var(--pv-ease), background 150ms var(--pv-ease); }
.pv-kpi:hover { transform: translateY(-1px); border-color: var(--pv-line-strong); }
.pv-kpi.active { border-color: rgba(98,215,137,.42); box-shadow: inset 0 0 0 1px rgba(98,215,137,.08); }
.pv-kpi-value { display: block; margin-top: 13px; font-size: 24px; font-weight: 790; letter-spacing: -.04em; }
.pv-kpi-label { display: block; margin-top: 3px; color: var(--pv-muted); font-size: 9px; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.pv-kpi-dot { display: block; width: 26px; height: 26px; border-radius: 8px; background: rgba(98,215,137,.12); }
.pv-kpi.danger .pv-kpi-dot { background: rgba(238,139,139,.13); }
.pv-kpi.warning .pv-kpi-dot { background: rgba(233,192,120,.13); }
.pv-kpi.info .pv-kpi-dot { background: rgba(142,184,237,.13); }

.pv-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .7fr); gap: 12px; align-items: start; }
.pv-panel { min-width: 0; padding: 16px; color: var(--pv-text); background: var(--pv-surface); border: 1px solid var(--pv-line); border-radius: var(--pv-radius); box-shadow: 0 1px 0 rgba(255,255,255,.015); backdrop-filter: blur(18px); }
.pv-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.pv-panel-title { color: var(--pv-text); font-size: 13px; font-weight: 740; }
.pv-panel-note { margin-top: 4px; color: var(--pv-faint); font-size: 10px; line-height: 1.45; }
.pv-tabs { display: flex; gap: 4px; padding: 3px; overflow-x: auto; background: rgba(4,7,5,.58); border: 1px solid var(--pv-line); border-radius: 11px; scrollbar-width: none; }
.pv-tabs::-webkit-scrollbar { display: none; }
.pv-tab { min-height: 31px; padding: 0 11px; color: var(--pv-muted); background: transparent; border: 0; border-radius: 8px; font-size: 10px; font-weight: 700; white-space: nowrap; cursor: pointer; }
.pv-tab.active { color: var(--pv-text); background: var(--pv-raised); box-shadow: 0 1px 5px rgba(0,0,0,.24); }
.pv-summary-line { display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-bottom:12px; }
.pv-summary-item { display:inline-flex; align-items:baseline; gap:6px; min-height:32px; padding:7px 10px; color:var(--pv-muted); background:rgba(255,255,255,.025); border:1px solid var(--pv-line); border-radius:9px; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.pv-summary-item b { color:var(--pv-text); font-size:14px; letter-spacing:-.02em; }
.pv-summary-item.danger b { color:#f0aaaa; }

.pv-list { display: grid; gap: 7px; }
.pv-task { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; align-items: center; width: 100%; min-height: 67px; padding: 11px 12px; color: var(--pv-text); background: rgba(7,10,8,.72); border: 1px solid var(--pv-line); border-radius: 12px; text-align: left; cursor: pointer; transition: transform 140ms var(--pv-ease), background 140ms var(--pv-ease), border-color 140ms var(--pv-ease); animation: pvEnter 230ms both var(--pv-ease); animation-delay: min(calc(var(--pv-i, 0) * 24ms), 240ms); }
.pv-task:hover { transform: translateY(-1px); background: var(--pv-raised); border-color: var(--pv-line-strong); }
.pv-task:active { transform: scale(.995); }
.pv-task-title { overflow: hidden; font-size: 12px; font-weight: 710; text-overflow: ellipsis; white-space: nowrap; }
.pv-task-meta { display: flex; gap: 6px 9px; align-items: center; flex-wrap: wrap; margin-top: 5px; color: var(--pv-faint); font-size: 9px; }
.pv-task-side { display: grid; justify-items: end; gap: 6px; color: var(--pv-muted); font-size: 9px; }
.pv-pill { display: inline-flex; align-items: center; min-height: 22px; padding: 0 8px; color: var(--pv-muted); background: rgba(255,255,255,.04); border: 1px solid var(--pv-line); border-radius: 999px; font-size: 9px; font-weight: 700; white-space: nowrap; }
.pv-pill.red { color: #f0aaaa; background: rgba(238,139,139,.09); border-color: rgba(238,139,139,.18); }
.pv-pill.green { color: #9ae9b5; background: rgba(98,215,137,.09); border-color: rgba(98,215,137,.18); }
.pv-pill.amber { color: #ecd09a; background: rgba(233,192,120,.09); border-color: rgba(233,192,120,.18); }
.pv-empty { padding: 38px 14px; color: var(--pv-muted); text-align: center; font-size: 12px; line-height: 1.6; }
.pv-empty b { display: block; margin-bottom: 5px; color: var(--pv-text); font-size: 14px; }

.pv-more-row { display:flex; justify-content:center; padding-top:10px; }

.pv-mini-list { display: grid; gap: 7px; }
.pv-mini { display: grid; grid-template-columns: 8px minmax(0,1fr) auto; gap: 9px; align-items: center; min-height: 46px; padding: 8px 9px; border: 1px solid var(--pv-line); border-radius: 10px; }
.pv-mini-mark { width: 8px; height: 8px; border-radius: 50%; background: var(--pv-green); }
.pv-mini b { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.pv-mini small { color: var(--pv-faint); font-size: 8px; }

.pv-ops { display: grid; gap: 12px; }
.pv-stat-line { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 9px 0; border-top: 1px solid var(--pv-line); font-size: 10px; }
.pv-stat-line:first-child { border-top: 0; }
.pv-stat-line span { color: var(--pv-muted); }
.pv-stat-line b { color: var(--pv-text); font-weight: 720; }
.pv-session { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 11px; background: rgba(7,10,8,.7); border: 1px solid var(--pv-line); border-radius: 11px; }
.pv-session b { display: block; font-size: 11px; }
.pv-session small { display: block; margin-top: 4px; color: var(--pv-faint); font-size: 9px; }

.pv-skeleton { position: relative; min-height: 78px; overflow: hidden; background: var(--pv-surface-solid); border: 1px solid var(--pv-line); border-radius: var(--pv-radius); }
.pv-skeleton::after { content: ''; position: absolute; inset: 0; background: linear-gradient(100deg, transparent, rgba(255,255,255,.04), transparent); transform: translateX(-100%); animation: pvShimmer 1s infinite; }
@keyframes pvShimmer { to { transform: translateX(100%); } }
@keyframes pvEnter { from { opacity: 0; transform: translateY(5px); } }

/* Normalize every high-traffic CRM surface without affecting Welcome. */
.main .page-header { min-height: 62px; margin-bottom: 16px; }
.main .page-title { letter-spacing: -.035em; }
.main .dash-card,.main .team-card,.main .portfolio-card,.main .mot-card,.main .calendar-panel,
.main .analytics-card,.main .settings-section { border-color: var(--pv-line) !important; box-shadow: none !important; }
.main .portfolio-grid,.main .team-grid,.main .dash-grid { gap: 12px !important; }
.main .portfolio-card,.main .team-card,.main .dash-card { transition: transform 150ms var(--pv-ease), border-color 150ms var(--pv-ease) !important; }
.main .portfolio-card:hover,.main .team-card:hover { transform: translateY(-1px) !important; border-color: var(--pv-line-strong) !important; }
.main input,.main select,.main textarea { transition: border-color 120ms ease, box-shadow 120ms ease; }
.main input:focus,.main select:focus,.main textarea:focus { box-shadow: 0 0 0 3px rgba(98,215,137,.08) !important; }

/* No layout jump when an overlay locks page scrolling. */
body.modal-open,body:has(.modal-overlay.open),body:has(.sheet-overlay.open) { padding-right: 0 !important; overflow: hidden; }
.sidebar,.main,.topbar { transform: translateZ(0); }
.bug-feedback-fab .bug-feedback-fab-text { display:none !important; }
.bug-feedback-fab { width:42px !important; min-width:42px !important; height:42px !important; padding:0 !important; justify-content:center !important; border-radius:13px !important; }

#темпПолоса.pv-tempo-collapsed > div { padding:10px 13px !important; }
#темпПолоса.pv-tempo-collapsed > div > div:first-child { margin-bottom:0 !important; }
#темпПолоса.pv-tempo-collapsed > div > div:nth-child(n+2) { display:none !important; }
.pv-tempo-summary { margin-left:auto; color:var(--pv-muted); font-size:10px; font-weight:600; white-space:nowrap; }
.pv-tempo-toggle { min-height:27px; padding:0 8px; color:var(--pv-muted); background:rgba(255,255,255,.04); border:1px solid var(--pv-line); border-radius:8px; font-size:9px; }

/* Task chat — самостоятельная рабочая поверхность, а не textarea между
   служебными блоками карточки. */
.task-chat { position:relative; overflow:hidden; margin:18px 0; border:1px solid var(--pv-line); border-radius:18px; background:rgba(18,18,20,.72); }
.task-chat-head { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:58px; padding:12px 14px; border-bottom:1px solid var(--pv-line); background:rgba(255,255,255,.018); }
.task-chat-title { color:var(--pv-text); font-size:13px; font-weight:720; letter-spacing:-.01em; }
.task-chat-sub { margin-top:3px; color:var(--pv-muted); font-size:10px; }
.task-chat-live { display:flex; align-items:center; gap:6px; color:#7d7d83; font-size:9px; white-space:nowrap; }
.task-chat-live i { width:6px; height:6px; border-radius:50%; background:#34c759; box-shadow:0 0 0 3px rgba(52,199,89,.1); }
.task-chat-list { display:flex; flex-direction:column; gap:10px; min-height:150px; max-height:430px; overflow-y:auto; overscroll-behavior:contain; padding:16px 14px; scrollbar-gutter:stable; scroll-behavior:smooth; }
.task-chat-empty { display:grid; place-items:center; align-content:center; gap:6px; min-height:118px; color:var(--pv-muted); text-align:center; }
.task-chat-empty b { color:#c7c7cc; font-size:12px; }
.task-chat-empty span { max-width:330px; font-size:10px; line-height:1.5; }
.task-chat-message { display:flex; align-items:flex-end; gap:8px; max-width:88%; }
.task-chat-message.own { align-self:flex-end; flex-direction:row-reverse; }
.task-chat-avatar { display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; border-radius:50%; color:#e9e9ec; background:linear-gradient(145deg,#3a3a3c,#242426); border:1px solid rgba(255,255,255,.07); font-size:9px; font-weight:750; }
.task-chat-message.own .task-chat-avatar { background:linear-gradient(145deg,#0a84ff,#5e5ce6); }
.task-chat-bubble { min-width:0; padding:9px 11px 10px; border:1px solid rgba(255,255,255,.055); border-radius:14px 14px 14px 5px; background:rgba(255,255,255,.045); }
.task-chat-message.own .task-chat-bubble { border-color:rgba(10,132,255,.2); border-radius:14px 14px 5px 14px; background:linear-gradient(145deg,rgba(10,132,255,.2),rgba(94,92,230,.13)); }
.task-chat-meta { display:flex; align-items:center; gap:7px; min-width:0; margin-bottom:4px; }
.task-chat-meta b { color:#d7d7dc; font-size:10px; font-weight:680; }
.task-chat-meta time { color:#74747a; font-size:8.5px; white-space:nowrap; }
.task-chat-actions { display:flex; gap:5px; margin-left:auto; opacity:0; transition:opacity 120ms ease; }
.task-chat-message:hover .task-chat-actions,.task-chat-message:focus-within .task-chat-actions { opacity:1; }
.task-chat-actions button { padding:0; border:0; color:#8e8e93; background:none; font:inherit; font-size:8.5px; cursor:pointer; }
.task-chat-actions button:hover { color:#d1d1d6; }
.task-chat-text { color:#eeeeF0; font-size:12.5px; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; user-select:text; }
.task-chat-files { display:flex; flex-wrap:wrap; gap:7px; margin-top:8px; }
.task-chat-image img { display:block; max-width:min(260px,100%); max-height:210px; border-radius:10px; object-fit:cover; }
.task-chat-file { display:inline-flex; max-width:100%; align-items:center; padding:6px 8px; border:1px solid rgba(255,255,255,.07); border-radius:8px; color:#aebed1; font-size:10px; text-decoration:none; overflow:hidden; text-overflow:ellipsis; }
.task-chat-new { position:absolute; z-index:2; right:14px; bottom:92px; display:none; min-height:28px; padding:0 10px; border:1px solid rgba(10,132,255,.3); border-radius:14px; color:#dcecff; background:#183554; font-size:9px; cursor:pointer; box-shadow:0 6px 20px rgba(0,0,0,.28); }
.task-chat-new.show { display:block; }
.task-chat-attachments { gap:6px; flex-wrap:wrap; padding:8px 12px 0; border-top:1px solid var(--pv-line); }
.task-chat-attachment { display:inline-flex; align-items:center; gap:6px; min-width:0; max-width:100%; padding:5px 8px; border-radius:8px; color:#b5b5ba; background:rgba(255,255,255,.045); font-size:9.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.task-chat-attachment button { flex:0 0 auto; border:0; color:#77777d; background:none; cursor:pointer; }
.task-chat-compose { padding:10px 12px 12px; border-top:1px solid var(--pv-line); background:rgba(10,10,12,.78); }
.task-chat-compose textarea { display:block; width:100%; min-height:44px; max-height:140px; resize:none; padding:10px 11px; border:1px solid rgba(255,255,255,.075); border-radius:11px; outline:0; color:#f2f2f4; background:rgba(255,255,255,.035); font:inherit; font-size:12px; line-height:1.45; transition:border-color 120ms ease,box-shadow 120ms ease; }
.task-chat-compose textarea:focus { border-color:rgba(10,132,255,.48); box-shadow:0 0 0 3px rgba(10,132,255,.08); }
.task-chat-tools { display:flex; align-items:center; gap:8px; min-height:34px; padding-top:8px; }
.task-chat-attach { display:grid; place-items:center; flex:0 0 30px; width:30px; height:30px; border:1px solid rgba(255,255,255,.07); border-radius:9px; color:#aaaab0; background:rgba(255,255,255,.035); font-size:17px; cursor:pointer; }
.task-chat-count,.task-chat-hint { color:#68686e; font-size:8.5px; }
.task-chat-hint { flex:1; }
.task-chat-send { min-height:31px; padding:0 12px; border:0; border-radius:9px; color:#fff; background:#0a84ff; font-size:10px; font-weight:680; cursor:pointer; }
.task-chat-send:disabled { cursor:wait; opacity:.55; }
.task-chat-edit { width:100%; min-height:72px; padding:8px; border:1px solid rgba(10,132,255,.4); border-radius:9px; outline:0; color:#fff; background:#171719; font:inherit; font-size:12px; line-height:1.45; resize:vertical; }
.task-chat-edit-actions { display:flex; justify-content:flex-end; gap:6px; margin-top:7px; }

@media (max-width: 1100px) {
  .pv-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  html { scrollbar-gutter: auto; }
  /* translateZ(0) выше создаёт compositor-layer, но не должен отменять
     мобильное закрытое положение меню. Иначе невидимая боковая панель
     лежит поверх нижней навигации и перехватывает каждый тап. */
  .sidebar { transform: translateX(-100%) translateZ(0); pointer-events:none; }
  .sidebar.open { transform: translateX(0) translateZ(0); pointer-events:auto; }
  .pv-page { padding-bottom: 82px; }
  .pv-head { flex-direction: column; align-items: stretch; }
  .pv-grid { grid-template-columns: 1fr; }
  .pv-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pv-kpi { min-height: 90px; }
  .pv-task { grid-template-columns: minmax(0,1fr); gap: 7px; }
  .pv-task-side { display: flex; justify-items: start; justify-content: space-between; }
  .crm-filter-panel:not(.expanded) .crm-filter-scroll select { display:none !important; }
  .crm-filter-panel:not(.expanded) .crm-filter-scroll { overflow:visible; }
  .crm-filter-panel:not(.expanded) .crm-filter-more { width:100%; justify-content:center; }
  .pv-tempo-summary { overflow:hidden; max-width:120px; text-overflow:ellipsis; }
  .task-chat { margin-left:-2px; margin-right:-2px; border-radius:16px; }
  .task-chat-list { max-height:52vh; min-height:190px; padding:14px 10px; }
  .task-chat-message { max-width:96%; }
  .task-chat-head { padding:11px 12px; }
  .task-chat-hint { display:none; }
  .task-chat-count { flex:1; }
  .task-chat-actions { opacity:1; }
}
@media (max-width: 420px) {
  .pv-kpis { gap: 8px; }
  .pv-kpi { min-height: 84px; padding: 12px; }
  .pv-kpi-value { margin-top: 10px; font-size: 21px; }
  .pv-panel { padding: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .pv-task,.pv-skeleton::after { animation: none !important; }
}
