:root {
  --bs-body-font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --bs-body-font-size: 13px;
  --bs-body-color: #1f2937;
  --bs-body-bg: #f3f4f6;
  --bs-border-radius: 2px;
  --bs-border-radius-sm: 2px;
  --bs-border-radius-lg: 3px;
  --bs-primary: #1e40af;
  --bs-link-color-rgb: 30, 64, 175;
}
body { font-feature-settings: "tnum" 1, "cv11" 1; }
.mono, code, .text-mono { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12px; }

/* Sidebar */
.app-sidebar { background: #1f2937 !important; border-right: 1px solid #111827; }
.app-sidebar .sidebar-brand { background: #111827; border-bottom: 1px solid #0b1220; padding: 8px 12px; }
.app-sidebar .sidebar-brand .brand-text { font-size: 14px; font-weight: 600; color: #e5e7eb; }
.app-sidebar .nav-link { padding: 6px 12px; border-radius: 0; color: #cbd5e1; font-size: 13px; }
.app-sidebar .nav-link:hover { background: #374151; color: #fff; }
.app-sidebar .nav-link.active { background: #1e40af; color: #fff; }
.app-sidebar .nav-icon { font-size: 14px; }

/* Navbar */
.app-header { background: #fff !important; border-bottom: 1px solid #d1d5db; min-height: 38px; }
.app-header .nav-link { font-size: 13px; padding: 6px 10px; }

/* Cards */
.card { border-radius: 2px; border: 1px solid #d1d5db; box-shadow: none; }
.card-header { padding: 6px 10px; background: #f9fafb; border-bottom: 1px solid #d1d5db; font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; color: #374151; }
.card-body { padding: 12px; }
.card-footer { padding: 6px 10px; background: #f9fafb; border-top: 1px solid #d1d5db; font-size: 12px; }

/* Tables: dense enterprise look */
.table { font-size: 12.5px; margin-bottom: 0; }
.table > :not(caption) > * > * { padding: 4px 8px; vertical-align: middle; }
.table thead th { background: #e5e7eb; border-bottom: 1px solid #9ca3af; text-transform: uppercase; font-size: 11px; letter-spacing: 0.04em; color: #1f2937; font-weight: 600; }
.table-striped > tbody > tr:nth-of-type(odd) { background: #fafbfc; }
.table-hover tbody tr:hover { background: #e0e7ff !important; }
.table-bordered, .table-bordered > :not(caption) > * > * { border-color: #d1d5db; }

/* Forms: tight */
.form-control, .form-select { font-size: 13px; padding: 4px 8px; border-radius: 2px; border-color: #9ca3af; min-height: 28px; }
.form-control:focus, .form-select:focus { border-color: #1e40af; box-shadow: 0 0 0 1px #1e40af; }
.form-label { font-size: 12px; margin-bottom: 2px; font-weight: 500; color: #374151; }
.form-text { font-size: 11px; color: #6b7280; }
.input-group-text { font-size: 12px; padding: 2px 8px; background: #e5e7eb; border-color: #9ca3af; }

/* Buttons */
.btn { font-size: 12.5px; padding: 4px 10px; border-radius: 2px; font-weight: 500; }
.btn-sm { font-size: 11.5px; padding: 2px 8px; }
.btn-primary { background: #1e40af; border-color: #1e40af; }
.btn-primary:hover { background: #1e3a8a; border-color: #1e3a8a; }

/* Badges */
.badge { font-weight: 500; font-size: 11px; padding: 2px 6px; border-radius: 2px; text-transform: uppercase; letter-spacing: 0.03em; }

/* Stat cards (compact, no AdminLTE small-box) */
.stat { background: #fff; border: 1px solid #d1d5db; padding: 10px 12px; display: flex; justify-content: space-between; align-items: center; }
.stat .label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; }
.stat .value { font-size: 22px; font-weight: 600; line-height: 1.1; color: #111827; }
.stat .icon { font-size: 22px; color: #9ca3af; }
.stat .footer { font-size: 11px; color: #6b7280; }

/* Breadcrumb */
.breadcrumb { font-size: 11.5px; margin-bottom: 0; }
.breadcrumb-item + .breadcrumb-item::before { padding: 0 4px; }

/* Page header band */
.page-header { background: #fff; border-bottom: 1px solid #d1d5db; padding: 6px 14px; display: flex; justify-content: space-between; align-items: center; }
.page-header h1 { font-size: 15px; font-weight: 600; margin: 0; color: #111827; }

/* Toolbar (above tables) */
.toolbar { display: flex; gap: 6px; flex-wrap: wrap; padding: 6px 10px; background: #f9fafb; border: 1px solid #d1d5db; border-bottom: 0; }
.toolbar .form-control, .toolbar .form-select, .toolbar .btn { font-size: 12px; }

/* Status pills */
.pill { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; padding: 1px 6px; border-radius: 2px; border: 1px solid; line-height: 1.4; text-transform: uppercase; letter-spacing: 0.03em; font-weight: 500; }
.pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.pill.s-pending_token { color: #92400e; border-color: #fcd34d; background: #fef3c7; }
.pill.s-active      { color: #065f46; border-color: #6ee7b7; background: #d1fae5; }
.pill.s-token_expired { color: #92400e; border-color: #f59e0b; background: #fef3c7; }
.pill.s-found       { color: #1e40af; border-color: #93c5fd; background: #dbeafe; }
.pill.s-stopped     { color: #4b5563; border-color: #9ca3af; background: #e5e7eb; }
.pill.s-error       { color: #991b1b; border-color: #fca5a5; background: #fee2e2; }

/* Footer */
.app-footer { background: #fff; border-top: 1px solid #d1d5db; font-size: 11.5px; color: #6b7280; padding: 4px 14px; }

/* Compact misc */
hr { border-color: #d1d5db; opacity: 1; }
.text-meta { font-size: 11px; color: #6b7280; }
