/* ============================================================================
   dearmore.net green-phosphor override for the ABP Basic (Bootstrap 5) theme.
   Loaded via the HeadLinks view component, AFTER the theme's own CSS bundles, so it
   wins. Recolors the admin / identity / account pages to match the portal terminal.
   ============================================================================ */

:root {
  --dn-bg:     #010603;
  --dn-surf:   #06180e;
  --dn-surf2:  #04120a;
  --dn-line:   #0e6836;
  --dn-txt:    #35e86a;
  --dn-dim:    #14994a;
  --dn-bright: #38ff6e;
  --dn-white:  #eafff2;
  --dn-red:    #ff5a5a;
  --dn-mono: ui-monospace, "Cascadia Mono", "Consolas", "DejaVu Sans Mono",
             "Liberation Mono", "Courier New", monospace;

  /* Bootstrap 5 custom properties — recolors most of the framework at the root. */
  --bs-body-bg: #010603;
  --bs-body-color: #35e86a;
  --bs-body-font-family: var(--dn-mono);
  --bs-emphasis-color: #eafff2;
  --bs-secondary-color: rgba(53, 232, 106, 0.7);
  --bs-tertiary-color: rgba(53, 232, 106, 0.5);
  --bs-secondary-bg: #06180e;
  --bs-tertiary-bg: #04120a;
  --bs-border-color: #0e6836;
  --bs-border-color-translucent: rgba(14, 104, 54, 0.6);
  --bs-heading-color: #eafff2;
  --bs-primary: #38ff6e;
  --bs-primary-rgb: 56, 255, 110;
  --bs-link-color: #57ff88;
  --bs-link-color-rgb: 87, 255, 136;
  --bs-link-hover-color: #9dffbb;
  --bs-code-color: #57ff88;
  --bs-border-radius: 0;
  --bs-border-radius-sm: 0;
  --bs-border-radius-lg: 0;
}

html, body {
  background: var(--dn-bg) !important;
  color: var(--dn-txt) !important;
  font-family: var(--dn-mono) !important;
}

a { color: #57ff88; }
a:hover { color: #9dffbb; }

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  color: var(--dn-white) !important;
  letter-spacing: 0.02em;
}

* { border-radius: 0 !important; }

/* ---- top navbar / brand / user menu ---- */
.navbar, header.navbar, .abp-navbar {
  background: var(--dn-surf2) !important;
  border-bottom: 1px solid var(--dn-line) !important;
}
.navbar a, .navbar .nav-link, .navbar-brand, .navbar-text { color: var(--dn-txt) !important; }
.navbar .nav-link:hover, .navbar-brand:hover { color: var(--dn-bright) !important; }
.navbar-toggler { border-color: var(--dn-line) !important; }
.navbar-toggler-icon { filter: hue-rotate(75deg) saturate(3) brightness(1.4); }

/* ---- content areas ---- */
.content, main, .container, .container-fluid, .abp-content, #main-content { background: transparent !important; }

/* ---- cards / panels ---- */
.card, .abp-card {
  background: var(--dn-surf) !important;
  border: 1px solid var(--dn-line) !important;
  color: var(--dn-txt) !important;
  box-shadow: none !important;
}
.card-header, .card-footer {
  background: #081f12 !important;
  border-color: var(--dn-line) !important;
  color: var(--dn-white) !important;
}
.card-title { color: var(--dn-white) !important; }

/* ---- page header / breadcrumbs ---- */
.abp-page-header, .content-header, .page-header { color: var(--dn-white) !important; }
.breadcrumb { background: transparent !important; }
.breadcrumb-item, .breadcrumb-item a { color: var(--dn-dim) !important; }
.breadcrumb-item.active { color: var(--dn-txt) !important; }

/* ---- tables + DataTables ---- */
.table, table.dataTable {
  color: var(--dn-txt) !important;
  --bs-table-bg: transparent;
  --bs-table-color: var(--dn-txt);
  --bs-table-border-color: var(--dn-line);
  --bs-table-striped-bg: rgba(56, 255, 110, 0.04);
  --bs-table-striped-color: var(--dn-txt);
  --bs-table-hover-bg: rgba(56, 255, 110, 0.09);
  --bs-table-hover-color: var(--dn-white);
}
.table > :not(caption) > * > * { background-color: transparent; border-bottom-color: var(--dn-line); box-shadow: none; }
.table thead th, table.dataTable thead th, .table > thead {
  color: var(--dn-dim) !important;
  border-color: var(--dn-line) !important;
  text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.82em;
}
table.dataTable tbody tr { background: transparent !important; }
table.dataTable tbody tr:hover td { background: rgba(56, 255, 110, 0.08) !important; }
.dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_paginate,
.dataTables_wrapper label { color: var(--dn-dim) !important; }

/* ---- buttons ---- */
.btn { font-family: var(--dn-mono) !important; letter-spacing: 0.03em; }
.btn-primary, .btn-info, .btn-success {
  background: var(--dn-bright) !important; border-color: var(--dn-bright) !important; color: var(--dn-bg) !important;
  box-shadow: 0 0 8px rgba(56, 255, 110, 0.35);
}
.btn-primary:hover, .btn-info:hover, .btn-success:hover { background: #57ff88 !important; border-color: #57ff88 !important; color: var(--dn-bg) !important; }
.btn-secondary, .btn-outline-secondary, .btn-default, .btn-light, .btn-outline-primary {
  background: transparent !important; border-color: var(--dn-line) !important; color: var(--dn-txt) !important;
}
.btn-secondary:hover, .btn-outline-secondary:hover, .btn-default:hover, .btn-light:hover, .btn-outline-primary:hover {
  background: rgba(56, 255, 110, 0.10) !important; color: var(--dn-white) !important; border-color: var(--dn-bright) !important;
}
.btn-danger, .btn-outline-danger { background: transparent !important; border-color: var(--dn-red) !important; color: var(--dn-red) !important; }
.btn-danger:hover, .btn-outline-danger:hover { background: rgba(255, 90, 90, 0.15) !important; color: #ff8a8a !important; }
.btn-link { color: #57ff88 !important; }

/* ---- forms ---- */
.form-control, .form-select, .input-group-text, textarea.form-control {
  background: var(--dn-surf2) !important; border: 1px solid var(--dn-line) !important; color: var(--dn-txt) !important;
}
.form-control:focus, .form-select:focus {
  background: var(--dn-surf2) !important; border-color: var(--dn-bright) !important;
  box-shadow: 0 0 0 0.2rem rgba(56, 255, 110, 0.18) !important; color: var(--dn-txt) !important;
}
.form-control::placeholder { color: var(--dn-dim) !important; }
label, .form-label, .form-check-label, .col-form-label { color: var(--dn-dim) !important; }
.form-text { color: var(--dn-dim) !important; }
.form-check-input { background-color: var(--dn-surf2) !important; border-color: var(--dn-line) !important; }
.form-check-input:checked { background-color: var(--dn-bright) !important; border-color: var(--dn-bright) !important; }
.form-switch .form-check-input:checked { box-shadow: 0 0 6px rgba(56, 255, 110, 0.5); }

/* ---- dropdowns ---- */
.dropdown-menu { background: var(--dn-surf) !important; border: 1px solid var(--dn-line) !important; }
.dropdown-item { color: var(--dn-txt) !important; }
.dropdown-item:hover, .dropdown-item:focus { background: rgba(56, 255, 110, 0.10) !important; color: var(--dn-white) !important; }
.dropdown-divider { border-color: var(--dn-line) !important; }
.dropdown-header { color: var(--dn-dim) !important; }

/* ---- modals (user create/edit) ---- */
.modal-content { background: var(--dn-surf) !important; border: 1px solid var(--dn-line) !important; color: var(--dn-txt) !important; }
.modal-header, .modal-footer { border-color: var(--dn-line) !important; }
.modal-title { color: var(--dn-white) !important; }
.btn-close { filter: invert(1) sepia(1) hue-rotate(75deg) saturate(4) brightness(1.3); }

/* ---- nav tabs (edit-user tabs) ---- */
.nav-tabs { border-bottom-color: var(--dn-line) !important; }
.nav-tabs .nav-link { color: var(--dn-dim) !important; border-color: transparent !important; }
.nav-tabs .nav-link:hover { color: var(--dn-txt) !important; border-color: var(--dn-line) !important; }
.nav-tabs .nav-link.active {
  color: var(--dn-bright) !important; background: transparent !important;
  border-color: var(--dn-line) var(--dn-line) var(--dn-bg) !important;
}
.nav-pills .nav-link.active { background: var(--dn-bright) !important; color: var(--dn-bg) !important; }

/* ---- pagination ---- */
.page-link { background: var(--dn-surf) !important; border-color: var(--dn-line) !important; color: var(--dn-txt) !important; }
.page-link:hover { background: rgba(56, 255, 110, 0.10) !important; color: var(--dn-white) !important; }
.page-item.active .page-link { background: var(--dn-bright) !important; border-color: var(--dn-bright) !important; color: var(--dn-bg) !important; }
.page-item.disabled .page-link { color: var(--dn-line) !important; background: var(--dn-surf2) !important; }

/* ---- badges / pills / alerts ---- */
.badge.bg-primary, .badge.bg-info, .badge.bg-success { background: var(--dn-bright) !important; color: var(--dn-bg) !important; }
.badge.bg-secondary { background: rgba(56, 255, 110, 0.12) !important; color: var(--dn-txt) !important; }
.badge.bg-danger { background: var(--dn-red) !important; color: #1a0000 !important; }
.alert { border: 1px solid var(--dn-line) !important; }
.alert-success { background: rgba(56, 255, 110, 0.08) !important; color: var(--dn-white) !important; }
.alert-danger { background: rgba(255, 90, 90, 0.10) !important; color: #ff8a8a !important; border-color: var(--dn-red) !important; }

/* ---- misc ---- */
hr { border-color: var(--dn-line) !important; opacity: 1; }
code, pre, kbd { color: #57ff88 !important; }
.text-muted, .text-secondary { color: var(--dn-dim) !important; }
.list-group-item { background: var(--dn-surf) !important; border-color: var(--dn-line) !important; color: var(--dn-txt) !important; }
.abp-account-layout, .abp-account-layout body { background: var(--dn-bg) !important; }
.spinner-border, .spinner-grow { color: var(--dn-bright) !important; }
