h1{margin:0;font-size:20px}
.controls{display:flex;align-items:center;gap:10px}
#monthLabel{min-width:150px;text-align:center;font-weight:600}
.min-w-150{min-width:150px}
.opening-balance{width:100%;margin-top:8px}

.sticky-month{position:sticky;top:0;z-index:1030;border-bottom:1px solid var(--bs-border-color);background:var(--bs-body-bg);color:var(--bs-body-color);padding:8px 12px;font-weight:600}

.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.day{background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:.5rem;padding:8px;display:flex;flex-direction:column;min-height:140px;min-width:0}
.date-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.date-num{font-weight:600;color:inherit}
.addBtn{cursor:pointer}
.items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto;overflow-x:hidden;min-width:0}
.items li{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--bs-tertiary-bg);padding:4px 6px;font-size:12px;min-width:0}
.items .name{color:var(--bs-secondary-color);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.items .amt{font-variant-numeric:tabular-nums}
.balance{margin-top:0px;font-size:12px;color:var(--bs-secondary-color)}

.side{background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:.5rem;padding:12px;height:fit-content;position:sticky;top:82px}
form label{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;font-size:14px}
form small{color:var(--bs-secondary-color)}

.hidden{display:none}

.item-actions{display:flex;align-items:center}

@media (max-width: 1000px){
  main{grid-template-columns:1fr}
}

/* Mobile vertical day view */
@media (max-width: 600px){
  .controls{display:none}
  #monthLabel{display:none}
  .sticky-month{display:block}
  .calendar{display:block}
  .day{min-height:auto;margin-bottom:10px}
}

/* App Toasts (avoid conflict with Bootstrap .toast) */
.app-toasts{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:1060}
.app-toast{min-width:220px;max-width:360px;padding:10px 12px;border-radius:.5rem;border:1px solid var(--bs-border-color);background:var(--bs-body-bg);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);font-size:13px;display:flex;align-items:flex-start;gap:8px;opacity:0;transform:translateY(-6px);animation:toast-in .2s forwards}
.app-toast .btn-close{margin-left:auto}
/* contextual colors via Bootstrap alert classes applied from JS */
@keyframes toast-in{to{opacity:1;transform:translateY(0)}}

/* Drag & drop */
.day.drop-hover{outline:2px dashed var(--bs-primary); outline-offset:-6px}
