:root { --bs-body-font-size: .9rem; }
body { background: #f5f6f8; }
main.container-fluid { max-width: 1600px; }
.auth-bg { background: linear-gradient(135deg, #1f3b57, #2e6b4f); min-height: 100vh; }
.table { background: #fff; }
.table-sm td, .table-sm th { vertical-align: middle; }
.lines td { padding: .2rem; }
.lines .form-control, .lines .form-select { min-width: 60px; }
.lines .ts-wrapper { min-width: 180px; }
.kpi:hover { box-shadow: 0 .25rem .75rem rgba(0,0,0,.08); }
.report td, .report th { white-space: nowrap; }
.report td:nth-child(2) { white-space: normal; }
.doc-paper { background: #fff; padding: 1.5rem; border: 1px solid #dee2e6; border-radius: .375rem; }
.budget-grid input { min-width: 80px; }
.perm-matrix td, .perm-matrix th { font-size: .8rem; }
.ts-control { min-height: calc(1.5em + .5rem + 2px); padding: .2rem .5rem; font-size: .875rem; }
.print-header { display: none; }
.print-mode .print-header { display: block; margin-bottom: 1rem; }
.print-mode { background: #fff; }
@media print {
  .no-print, nav.navbar, .alert, form.row.no-print, .btn { display: none !important; }
  body { background: #fff; font-size: 11pt; }
  .print-header { display: block; }
  .doc-paper { border: 0; padding: 0; }
  main.container-fluid { max-width: none; padding: 0; }
  a { color: inherit; text-decoration: none; }
  .table { font-size: 10pt; }
}
