:root{
  --bg: #f5f7fb;
  --card: #ffffff;
  --border: #e6eaf2;
  --text: #0f172a;
  --muted:#64748b;
  --danger:#b42318;
  --warn:#b54708;
  --ok:#027a48;
}

html, body { height:100%; }
body { background: var(--bg); color: var(--text); }

.login-shell{ max-width: 520px; }
.app-shell{ }
.app-wrap{ max-width: 1400px; padding: 0 16px; }

.card{ border: 1px solid var(--border); border-radius: 16px; background: var(--card); }
.shadow-sm{ box-shadow: 0 8px 24px rgba(15,23,42,.06) !important; }

.table-wrap{ overflow:auto; }
.table { margin: 0; }
.table td, .table th{ vertical-align: middle; }

/* перенос текста в таблице */
.task-title, .task-project, .task-resp, .task-notes{
  white-space: normal !important;
  word-break: break-word;
}

.badge-soft{
  background: #eef2ff;
  color:#3730a3;
  border:1px solid #e0e7ff;
  font-weight: 600;
}

.badge-prio-high{ color: var(--danger); border-color:#ffd4d4; background:#fff1f1; }
.badge-prio-mid{ color: var(--warn); border-color:#ffe6c7; background:#fff7ed; }
.badge-prio-low{ color: var(--ok); border-color:#c9f2d9; background:#ecfdf3; }

.row-overdue{ background: #fff1f1 !important; }
.cell-deadline-changed{ background: #ffe5e5 !important; } /* подсветка изменения срока */
.cell-changed-today{
  outline: 2px solid rgba(59,130,246,.45);
  outline-offset: -2px;
  border-radius: 6px;
}

/* Drawer */
.drawer{ position: fixed; inset:0; z-index: 2000; }
.drawer-backdrop{ position:absolute; inset:0; background: rgba(15,23,42,.35); }
.drawer-panel{
  position:absolute; top:0; right:0; height:100%;
  width: min(520px, 92vw);
  background: #fff;
  border-left: 1px solid var(--border);
  box-shadow: -12px 0 36px rgba(15,23,42,.12);
  padding: 16px;
  overflow: auto;
}
.history-body{ display:flex; flex-direction:column; gap:10px; }
.history-item{
  border:1px solid var(--border);
  border-radius: 12px;
  padding: 10px 12px;
  background:#fafbff;
}
.history-item .t{ font-size: 12px; color: var(--muted); }
.history-item .a{ margin-top: 4px; font-size: 14px; }
