body { background: #f7f7f7; }
.card { border-radius: 1rem; }
.list-group-item { border: 0; margin-bottom: 8px; border-radius: 12px; }
.nav-bottom {
  position: fixed; bottom: 0; left: 0; right: 0; height: 56px;
  display: flex; justify-content: space-around; align-items: center; z-index: 9;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.05);
}
.nav-bottom .nav-item { flex:1; text-align:center; padding:8px 0; text-decoration:none; color:#666; }
.nav-bottom .nav-item.active { color:#0d6efd; font-weight:600; }
main.container { padding-bottom: 72px; }
.handle { cursor:grab; color:#aaa; }


/* Calendar */
.calendar-weekdays{display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin-bottom:6px; font-size:.9rem; color:#6c757d; text-align:center;}
.calendar-grid { display:grid; grid-template-columns: repeat(7, 1fr); gap:6px; }
.calendar-grid .cell { position:relative; padding:10px; text-align:center; border-radius:10px; background:#fff; border:1px solid #eee; min-height:70px; }
.calendar-grid .muted { color:#bbb; }
.calendar-grid .badge{position:absolute; right:6px; top:6px; line-height:1; padding:.25rem .35rem; font-size:.7rem;}
.calendar-grid .total { font-variant-numeric: tabular-nums; }

/* Dotted leader lines for account list */
.acct-list .entry-row{display:flex; align-items:center;}
.acct-list .entry-row .name{white-space:nowrap;}
.acct-list .entry-row .dots{flex:1; border-bottom:1px dashed #d9dde3; margin:0 8px; height:0;}
.acct-list .entry-row .amt{white-space:nowrap; font-variant-numeric: tabular-nums;}

/* Mini charts grid */
.grid-cards { display:grid; grid-template-columns: 1fr; gap:20px; }
@media (min-width: 1200px){ .grid-cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1800px){ .grid-cards { grid-template-columns: repeat(3, 1fr); } }

.calendar-grid .cell.today{outline:2px solid #0d6efd;}
.calendar-grid .cell.selected{background:#e7f1ff;border-color:#cfe2ff;}

.calendar-grid .cell{cursor:pointer;}

#todayBtn{padding-left:.75rem;padding-right:.75rem}

/* Top toolbar */
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;overflow-x:auto;padding:4px 0;}
.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:36px;padding:0;font-size:18px;line-height:1;}
@media (max-width:420px){
  .btn-icon{width:36px;height:34px;font-size:16px;}
  .toolbar{gap:6px;}
}

.handle{cursor:grab;} .handle:active{cursor:grabbing;}
