/* Balanced dashboard composition */
.dashboard-grid { align-items: stretch; }
.left-column, .right-column { min-height: 720px; grid-template-rows: 290px minmax(420px, 1fr); }
.top-workspace { display: grid; grid-template-columns: minmax(420px, 1.45fr) minmax(260px, .78fr); gap: 11px; min-height: 0; }
.top-workspace .card { height: 100%; }
.cash-card { min-width: 0; }
.cash-card .chart { height: calc(100% - 49px); min-height: 215px; }
.cash-card .card-head .legend { gap: 11px; font-size: 11px; }

.todo-card { display: flex; flex-direction: column; }
.todo-card .card-head { height: 47px; flex: 0 0 47px; }
.todo-card h2 { font-size: 18px; }
.todo-add { margin-left: auto; border: 1px solid #cbd9ec; border-radius: 7px; background: #fff; color: #1769ff; width: 28px; height: 28px; font-size: 18px; }
.todo-summary { display: flex; justify-content: space-between; padding: 10px 13px 7px; font-size: 12px; color: #6b7890; }
.todo-summary b { color: #172642; }
.todo-item { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; gap: 8px; align-items: start; padding: 8px 13px; border-top: 1px solid #e8eef6; cursor: pointer; }
.todo-item input { margin: 3px 0 0; accent-color: #2f7df2; }
.todo-item b, .todo-item small { display: block; }
.todo-item b { font-size: 12px; line-height: 1.25; }
.todo-item small { font-size: 10px; color: #68768d; margin-top: 2px; }
.todo-item em { font-size: 10px; font-style: normal; font-weight: 750; color: #54657e; white-space: nowrap; }
.todo-item.high em { color: #c8483e; }
.all-todos { margin: auto 13px 10px; border: 0; background: transparent; text-align: right; color: #1769ff; font: 700 12px inherit; cursor: pointer; }

.calendar-card { display: flex; flex-direction: column; min-height: 0; }
.calendar-card .calendar { flex: 1; grid-auto-rows: 1fr; }
.calendar-card .day { height: auto; min-height: 0; aspect-ratio: 1.18 / 1; padding: 7px 9px; }
.right-column > .card { height: 100%; }
.mail-card, .messages { min-height: 0; }
.mail-card { display: flex; flex-direction: column; }
.mail-row { flex: 1; }
.messages { display: flex; flex-direction: column; }
.messages .conversation { flex: 1; min-height: 0; }

@media (min-width: 2200px) {
  .left-column, .right-column { min-height: 830px; grid-template-rows: 340px minmax(490px, 1fr); }
  .top-workspace { grid-template-columns: minmax(620px, 1.5fr) minmax(350px, .78fr); gap: 16px; }
  .cash-card .chart { height: calc(100% - 56px); }
  .cash-card .card-head .legend { font-size: 13px; gap: 16px; }
  .todo-card h2 { font-size: 21px; }
  .todo-summary { font-size: 14px; padding: 13px 16px 9px; }
  .todo-item { padding: 11px 16px; grid-template-columns: 20px minmax(0, 1fr) auto; }
  .todo-item b { font-size: 14px; }
  .todo-item small, .todo-item em { font-size: 12px; }
  .calendar-card .day { padding: 9px 12px; }
}

@media (max-width: 1050px) {
  .left-column, .right-column { min-height: 0; grid-template-rows: auto; }
  .top-workspace { grid-template-columns: 1fr; }
  .cash-card .chart { height: 230px; }
  .calendar-card .day { aspect-ratio: auto; height: 58px; }
}
