body { min-height: 100vh; }
.auth-card { max-width: 440px; margin: 6vh auto; }
.table td, .table th { vertical-align: middle; }
.badge-role { margin-right: .25rem; }
tr.deleted td { opacity: .55; }
pre.details { margin: 0; font-size: .75rem; white-space: pre-wrap; max-width: 320px; }

/* ---- reports ---- */
.report-filters { background: #fdfaf3; border-color: #eadfce; }
.preset-group { background: #f3ecdc; border: 1px solid #e3d8c3; border-radius: .5rem; padding: 2px; }
.preset-group .btn { border: 0; color: #5b6b73; font-weight: 600; border-radius: .4rem; }
.preset-group .btn-check:checked + .btn { background: #fff; color: #212529; box-shadow: 0 1px 3px rgba(0,0,0,.18); }
.date-input { max-width: 190px; }
.search-input { max-width: 290px; }
.btn-apply { background: #ff7a1a; border-color: #ff7a1a; color: #fff; font-weight: 600; }
.btn-apply:hover, .btn-apply:focus { background: #e56a10; border-color: #e56a10; color: #fff; }
.report-card { background: #fdfaf3; border-color: #eadfce; overflow: hidden; }
.report-table { --bs-table-bg: transparent; }
.report-table thead th { background: #f3ecdc; color: #c85a00; white-space: nowrap; font-weight: 700; border-bottom: 2px solid #d9cdb6; text-align: center; padding: .65rem .6rem; }
.report-table td.brief { min-width: 180px; }
.sort-link { color: inherit; text-decoration: none; display: inline-flex; gap: .35rem; align-items: center; }
.sort-ico { font-size: .75rem; opacity: .45; }
.sort-ico.active { opacity: 1; }
@media print {
  nav.navbar, .no-print, .alert, .pagination { display: none !important; }
  body { background: #fff !important; }
  main.container { max-width: 100% !important; padding: 0 !important; }
  .report-card { border: 0; }
  .report-table { font-size: 9px; }
  .report-table thead th { background: #eee !important; color: #000; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .badge { border: 1px solid #999; color: #000 !important; background: #fff !important; }
  a { color: inherit; text-decoration: none; }
}

/* ---- dashboard ---- */
.stat-card { border: 1px solid #eadfce; border-left: 4px solid var(--accent, #6c757d); background: #fdfaf3; }
.stat-label { font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: #6c757d; }
.stat-value { font-size: 2rem; font-weight: 700; line-height: 1.2; }
.chart-box { position: relative; height: 300px; }

/* ---- notifications & settings matrices ---- */
.notif-badge { position: absolute; top: 2px; right: -2px; font-size: .62rem; padding: .2em .45em; }
.notif-unread { background: #fff8ec; }
.notif-link { display: block; color: inherit; text-decoration: none; }
.notif-link:hover .fw-semibold { text-decoration: underline; }
.notif-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #ff7a1a; margin-right: 6px; }
.matrix th, .matrix td { padding: .55rem .6rem; }
.matrix thead th { background: #f3ecdc; color: #5b4a2e; }
.matrix .form-check-input { width: 1.15rem; height: 1.15rem; cursor: pointer; }
.matrix .minutes { width: 110px; }
