
/* Bootstrap-first theming with fancy touches, no breaking hooks */
:root {
  --bs-primary: #6f42c1;   /* purple */
  --bs-success: #198754;
  --bs-warning: #ffc107;
  --bs-danger:  #dc3545;
  --bs-info:    #0dcaf0;
  --bs-link-color: var(--bs-primary);
  --radius: 14px;
}

:root, [data-bs-theme="light"] {
  --bs-body-bg: #f7f8fb;
  --bs-body-color: #111827;
  --surface: #ffffff;
  --border-col: rgba(0,0,0,.12);
}

[data-bs-theme="dark"] {
  --bs-body-bg: #0c1020;
  --bs-body-color: #e5e7eb;
  --surface: #0f1428;
  --border-col: rgba(255,255,255,.14);
}

/* background gradient */
body {
  background:
    radial-gradient(1400px 800px at -10% -10%, rgba(111,66,193,.15), transparent 60%),
    radial-gradient(1200px 700px at 110% 10%, rgba(13,202,240,.12), transparent 55%),
    linear-gradient(180deg, var(--bs-body-bg), var(--bs-body-bg));
}

/* cards fine-tune */
.card { border-radius: var(--radius); border-color: var(--border-col); }
.card-header { border-bottom-color: var(--border-col); }

/* list-group polish */
.list-group-item { background-color: var(--surface); border-color: var(--border-col); }
.list-group-item.completed .todo-text { text-decoration: line-through; opacity: .78; }

/* tables */
.table { --bs-table-bg: transparent; }
.table > :not(caption) > * > * { border-bottom-color: var(--border-col); }
thead th.sticky-top { backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }

/* utilities */
.rounded-xl { border-radius: var(--radius) !important; }
.shadow-soft { box-shadow: 0 10px 24px rgba(0,0,0,.1), 0 2px 6px rgba(0,0,0,.08) !important; }

/* keep original hooks */
.todo-list .item-row.completed .todo-text { text-decoration: line-through; }
.completed-list { list-style: none; padding-left: 0; }
details.completed > summary { cursor: pointer; }
th.sel, td.sel { width: 42px; }
td.act { width: 220px; text-align: right; }
