body { margin: 0; padding: 0; }

.form-control {
  border: 1px solid var(--border-color, #e2e8f0);
  border-radius: var(--radius, 6px);
  font-size: 14px;
  padding: 10px 14px;
  font-family: inherit;
  color: var(--text-primary, #1a1a2e);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.form-control:focus {
  border-color: var(--accent, #7c3aed);
  box-shadow: 0 0 0 3px rgba(17,17,17,.12);
  outline: none;
}
.form-select {
  border: 1px solid var(--border-color, #e2e8f0);
  border-radius: var(--radius, 6px);
  font-size: 14px;
  padding: 10px 14px;
  font-family: inherit;
}
.form-select:focus {
  border-color: var(--accent, #7c3aed);
  box-shadow: 0 0 0 3px rgba(17,17,17,.12);
}
.form-label { font-size: 14px; font-weight: 600; margin-bottom: 6px; color: var(--text-primary, #1a1a2e); }
.form-check-input:checked { background-color: var(--accent, #7c3aed); border-color: var(--accent, #7c3aed); }
.form-check-input:focus { box-shadow: 0 0 0 3px rgba(17,17,17,.15); }

.input-group-text {
  background: var(--bg-section, #f8f9fa);
  border-color: var(--border-color, #e2e8f0);
  font-size: 14px;
}

.btn { border-radius: var(--radius, 6px); font-size: 14px; font-family: inherit; padding: 10px 20px; font-weight: 500; transition: all .2s ease; }
.btn-primary { background: var(--accent, #7c3aed); border-color: var(--accent, #7c3aed); color: #fff; }
.btn-primary:hover, .btn-primary:focus { background: var(--accent-hover, #6d28d9); border-color: var(--accent-hover, #6d28d9); }
.btn-outline-primary { border-color: var(--accent, #7c3aed); color: var(--accent, #7c3aed); }
.btn-outline-primary:hover { background: var(--accent, #7c3aed); border-color: var(--accent, #7c3aed); color: #fff; }
.btn-danger { background: #ef4444; border-color: #ef4444; }
.btn-danger:hover { background: #dc2626; border-color: #dc2626; }
.btn-success { background: #22c55e; border-color: #22c55e; }
.btn-success:hover { background: #16a34a; border-color: #16a34a; }
.btn-light { background: var(--bg-section, #f8f9fa); border-color: var(--border-color, #e2e8f0); color: var(--text-primary, #1a1a2e); }
.btn-light:hover { background: #eee; }
.btn-outline-dark { border-color: var(--text-primary, #1a1a2e); color: var(--text-primary, #1a1a2e); }
.btn-outline-dark:hover { background: var(--accent, #7c3aed); border-color: var(--accent, #7c3aed); color: #fff; }

.table { border-color: var(--border-color, #e2e8f0); }
.table th { font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: .5px; color: var(--text-secondary, #64748b); }
.table td { vertical-align: middle; font-size: 14px; padding: 12px; }
.table-striped > tbody > tr:nth-of-type(odd) { background: #fafafa; }
.table-bordered { border: 1px solid var(--border-color, #e2e8f0); }
.table img { border-radius: 4px; max-width: 80px; }

.card {
  background: var(--bg-page, #fff);
  border: 1px solid var(--border-color, #e2e8f0);
  border-radius: var(--radius, 6px);
  box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,.08));
}
.card-header {
  background: var(--bg-section, #f8f9fa);
  border-bottom: 1px solid var(--border-color, #e2e8f0);
  font-weight: 600;
  font-size: 14px;
  padding: 12px 16px;
}
.card-body { padding: 16px; }

.alert { border-radius: var(--radius, 6px); padding: 12px 16px; font-size: 14px; }
.alert-success { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.alert-danger { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.alert-info { background: #eff6ff; border-color: #bfdbfe; color: #1e40af; }
.alert-warning { background: #fffbeb; border-color: #fde68a; color: #92400e; }

.list-group-item {
  border-color: var(--border-color, #e2e8f0);
  font-size: 14px;
  padding: 10px 16px;
  color: var(--text-primary, #1a1a2e);
}
.list-group-item.active {
  background: var(--accent, #7c3aed);
  border-color: var(--accent, #7c3aed);
  color: #fff;
}
.list-group-item a { color: var(--text-primary, #1a1a2e); text-decoration: none; }
.list-group-item a:hover { color: var(--accent, #7c3aed); }

.accordion-button { font-weight: 600; font-size: 15px; border-radius: var(--radius, 6px); }
.accordion-button:not(.collapsed) { background: var(--accent-light, #ede9fe); color: var(--accent, #7c3aed); box-shadow: none; }
.accordion-button:focus { box-shadow: 0 0 0 3px rgba(17,17,17,.12); }
.accordion-item { border-color: var(--border-color, #e2e8f0); }

.badge.bg-primary { background: var(--accent, #7c3aed) !important; }
.badge.bg-danger { background: #ef4444 !important; }
.badge.bg-success { background: #22c55e !important; }

.modal-content { border-radius: var(--radius-lg, 10px); border: 1px solid var(--border-color, #e2e8f0); }
.modal-header { border-bottom: 1px solid var(--border-color, #e2e8f0); }
.modal-footer { border-top: 1px solid var(--border-color, #e2e8f0); }

#content h1 { font-size: 1.75rem; font-weight: 700; margin-bottom: 20px; color: var(--text-primary, #1a1a2e); }
#content h2 { font-size: 1.5rem; font-weight: 700; margin-bottom: 16px; }
#content p { line-height: 1.7; color: #334155; }
#content a:not(.btn) { color: var(--accent, #7c3aed); }
#content a:not(.btn):hover { text-decoration: underline; }

#account-account .list-group { border-radius: var(--radius, 6px); overflow: hidden; }
#account-login .well, #account-register .well { max-width: 500px; margin: 0 auto; }

.text-danger { color: #ef4444 !important; }
.text-success { color: #22c55e !important; }
.required .col-form-label::after { content: " *"; color: #ef4444; }

@media (max-width: 767px) {
  .table-responsive { font-size: 13px; }
  .btn { padding: 8px 16px; font-size: 13px; }
}
