:root {
  --bg: #f4f6f9;
  --card-bg: #ffffff;
  --card-shadow: rgba(0,0,0,.06);
  --text: #222222;
  --text-muted: #6c757d;
  --border: #e3e6ea;
  --sidebar-link: #333333;
  --sidebar-hover-bg: #eef1fb;
  --navbar-grad-1: #1a237e;
  --navbar-grad-2: #283593;
  --thead-bg: #1a237e;
  --thead-text: #ffffff;
  --input-bg: #ffffff;
  --input-border: #ced4da;
  --input-text: #222222;
  --modal-bg: #ffffff;
  --table-row-hover: rgba(0,0,0,.03);
}

[data-theme="dark"] {
  --bg: #12141c;
  --card-bg: #1c1f2b;
  --card-shadow: rgba(0,0,0,.4);
  --text: #e7e9ee;
  --text-muted: #a0a4b3;
  --border: #2c2f3d;
  --sidebar-link: #cfd2dc;
  --sidebar-hover-bg: #262a3a;
  --navbar-grad-1: #10123a;
  --navbar-grad-2: #1b1d4d;
  --thead-bg: #232748;
  --thead-text: #e7e9ee;
  --input-bg: #262a3a;
  --input-border: #3a3e50;
  --input-text: #e7e9ee;
  --modal-bg: #1c1f2b;
  --table-row-hover: rgba(255,255,255,.04);
}

body {
  background: var(--bg);
  color: var(--text);
  font-family: 'Segoe UI', Arial, sans-serif;
  transition: background .2s ease, color .2s ease;
}

.app-navbar { background: linear-gradient(90deg, var(--navbar-grad-1), var(--navbar-grad-2)); }

.theme-toggle-btn {
  border: 1px solid rgba(255,255,255,.5);
  background: transparent;
  color: #fff;
  border-radius: 20px;
  padding: 4px 10px;
  font-size: .9rem;
  line-height: 1;
}
.theme-toggle-btn:hover { background: rgba(255,255,255,.15); color: #fff; }

.sidebar-panel { background: var(--card-bg); border-right: 1px solid var(--border); min-height: calc(100vh - 56px); }
.sidebar-title { font-weight:700; color:#1a237e; padding: 8px 12px; text-transform:uppercase; font-size:.8rem; letter-spacing:.5px; }
[data-theme="dark"] .sidebar-title { color: #8c9eff; }
.side-link { display:block; padding:10px 14px; color: var(--sidebar-link); text-decoration:none; border-radius:6px; margin:2px 8px; }
.side-link:hover { background: var(--sidebar-hover-bg); color:#1a237e; }
[data-theme="dark"] .side-link:hover { color: #8c9eff; }
.side-link.active { background:#1a237e; color:#fff; }

.stat-card { border:none; border-radius:12px; background: var(--card-bg); color: var(--text); box-shadow: 0 2px 8px var(--card-shadow); }
.stat-card .stat-num { font-size:1.8rem; font-weight:700; }
.badge-signed { background:#2e7d32; }
.badge-pending { background:#c62828; }
.sign-box { width:120px; height:50px; object-fit:contain; border:1px dashed #ccc; padding:2px; background:#fff; }

table.table { color: var(--text); }
table.table thead { background: var(--thead-bg); color: var(--thead-text); }
table.table tbody tr:hover { background: var(--table-row-hover); }
table.table td, table.table th { border-color: var(--border); }

.form-control, .form-select {
  background-color: var(--input-bg);
  border-color: var(--input-border);
  color: var(--input-text);
}
.form-control:focus, .form-select:focus {
  background-color: var(--input-bg);
  color: var(--input-text);
}
.input-group-text { background-color: var(--card-bg); color: var(--text); border-color: var(--input-border); }

.modal-content { background-color: var(--modal-bg); color: var(--text); }

.alert-secondary { background-color: var(--card-bg); color: var(--text); border-color: var(--border); }

.text-muted { color: var(--text-muted) !important; }

.print-only { display:none; }
@media print {
  .no-print { display:none !important; }
  .print-only { display:block !important; }
}
