/* theme.css — Operate HQ (Punk-Pro) Bootstrap 5 overrides
   Load AFTER bootstrap.min.css
*/

/* -------------------------
   Core Theme Tokens
------------------------- */
:root {
  /* Brand */
  --bs-primary: #ff2d8d;     /* hot pink */
  --bs-secondary: #2cff88;   /* neon green */

  /* Complementary accents */
  --ohq-pink-700: #d61f74;
  --ohq-pink-900: #8f0f47;

  --ohq-green-700: #1fd46e;
  --ohq-green-900: #0d7a3d;

  /* Neutrals (professional base) */
  --bs-dark: #0f1115;        /* near-black */
  --bs-gray-900: #151923;
  --bs-gray-800: #1b2130;
  --bs-gray-700: #2a3347;
  --bs-gray-600: #4b5872;
  --bs-gray-500: #6f7d99;
  --bs-gray-400: #9aa5bd;
  --bs-gray-300: #c1c8d7;
  --bs-gray-200: #d8dde8;
  --bs-gray-100: #f2f4f8;

  --bs-body-bg: #0f1115;
  --bs-body-color: #eef1f7;

  /* Links */
  --bs-link-color: var(--bs-primary);
  --bs-link-hover-color: #ff5aa6;

  /* Borders & radii */
  --bs-border-color: rgba(255, 255, 255, 0.10);
  --ohq-border-strong: rgba(255, 255, 255, 0.18);
  --bs-border-radius: 1rem;
  --bs-border-radius-lg: 1.25rem;
  --bs-border-radius-sm: 0.75rem;

  /* Focus ring */
  --bs-focus-ring-width: 0.25rem;
  --bs-focus-ring-color: rgba(255, 45, 141, 0.30);

  /* “Punk-professional” shadow system */
  --ohq-shadow-sm: 0 6px 18px rgba(0, 0, 0, 0.35);
  --ohq-shadow:    0 12px 36px rgba(0, 0, 0, 0.45);
  --ohq-glow-pink: 0 0 0.75rem rgba(255, 45, 141, 0.35);
  --ohq-glow-green:0 0 0.75rem rgba(44, 255, 136, 0.22);

  /* Gradients */
  --ohq-grad-hero: radial-gradient(1200px 600px at 18% 12%,
                    rgba(255, 45, 141, 0.28) 0%,
                    rgba(15, 17, 21, 0.00) 60%),
                   radial-gradient(900px 500px at 85% 20%,
                    rgba(44, 255, 136, 0.18) 0%,
                    rgba(15, 17, 21, 0.00) 55%),
                   linear-gradient(180deg, #0f1115 0%, #0b0d12 100%);

  --ohq-grad-card: linear-gradient(180deg,
                    rgba(255, 255, 255, 0.05) 0%,
                    rgba(255, 255, 255, 0.02) 100%);
}

/* -------------------------
   Base Typography / Layout
------------------------- */
html, body {
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
}

a {
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

/* Subtle “ink” vibe without being messy */
body {
  letter-spacing: 0.1px;
}

/* -------------------------
   Containers / Surfaces
------------------------- */
.card,
.dropdown-menu,
.modal-content,
.offcanvas,
.accordion-item {
  background: var(--ohq-grad-card);
  border: 1px solid var(--bs-border-color);
  box-shadow: var(--ohq-shadow-sm);
  backdrop-filter: blur(8px);
}

.card {
  border-radius: var(--bs-border-radius-lg);
}

hr {
  border-color: rgba(255, 255, 255, 0.12);
}

/* Hero helper (optional utility) */
.ohq-hero {
  background: var(--ohq-grad-hero);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* -------------------------
   Buttons
------------------------- */
.btn {
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: 0.2px;
  box-shadow: 0 8px 18px rgba(0,0,0,0.35);
  border-width: 1px;
}

.btn-primary {
  --bs-btn-bg: var(--bs-primary);
  --bs-btn-border-color: rgba(255, 255, 255, 0.15);
  --bs-btn-hover-bg: #ff4fa1;
  --bs-btn-hover-border-color: rgba(255, 255, 255, 0.22);
  --bs-btn-active-bg: var(--ohq-pink-700);
  --bs-btn-active-border-color: rgba(255, 255, 255, 0.24);
  --bs-btn-color: #0f1115;
  --bs-btn-hover-color: #0f1115;
  --bs-btn-focus-shadow-rgb: 255, 45, 141;
}

.btn-secondary {
  --bs-btn-bg: var(--bs-secondary);
  --bs-btn-border-color: rgba(255, 255, 255, 0.15);
  --bs-btn-hover-bg: #57ff9f;
  --bs-btn-hover-border-color: rgba(255, 255, 255, 0.22);
  --bs-btn-active-bg: var(--ohq-green-700);
  --bs-btn-active-border-color: rgba(255, 255, 255, 0.24);
  --bs-btn-color: #0f1115;
  --bs-btn-hover-color: #0f1115;
  --bs-btn-focus-shadow-rgb: 44, 255, 136;
}

.btn-outline-primary {
  --bs-btn-color: var(--bs-primary);
  --bs-btn-border-color: rgba(255, 45, 141, 0.55);
  --bs-btn-hover-bg: rgba(255, 45, 141, 0.14);
  --bs-btn-hover-border-color: rgba(255, 45, 141, 0.70);
  --bs-btn-active-bg: rgba(255, 45, 141, 0.22);
  --bs-btn-active-border-color: rgba(255, 45, 141, 0.80);
}

.btn-outline-secondary {
  --bs-btn-color: var(--bs-secondary);
  --bs-btn-border-color: rgba(44, 255, 136, 0.55);
  --bs-btn-hover-bg: rgba(44, 255, 136, 0.12);
  --bs-btn-hover-border-color: rgba(44, 255, 136, 0.70);
  --bs-btn-active-bg: rgba(44, 255, 136, 0.20);
  --bs-btn-active-border-color: rgba(44, 255, 136, 0.80);
}

/* Add a subtle “punk glow” on hover */
.btn-primary:hover { box-shadow: var(--ohq-shadow), var(--ohq-glow-pink); }
.btn-secondary:hover { box-shadow: var(--ohq-shadow), var(--ohq-glow-green); }

/* -------------------------
   Forms
------------------------- */
.form-control,
.form-select,
.input-group-text {
  background-color: rgba(255, 255, 255, 0.04);
  color: var(--bs-body-color);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.95rem;
}

.form-control::placeholder {
  color: rgba(238, 241, 247, 0.55);
}

.form-control:focus,
.form-select:focus {
  border-color: rgba(255, 45, 141, 0.55);
  box-shadow: 0 0 0 var(--bs-focus-ring-width) rgba(255, 45, 141, 0.18);
  background-color: rgba(255, 255, 255, 0.05);
}

.form-check-input {
  background-color: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.18);
}
.form-check-input:checked {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

/* Validation */
.is-valid,
.was-validated .form-control:valid {
  border-color: rgba(44, 255, 136, 0.60);
}
.is-invalid,
.was-validated .form-control:invalid {
  border-color: rgba(255, 45, 141, 0.70);
}

/* -------------------------
   Navbar
------------------------- */
.navbar {
  background: rgba(15, 17, 21, 0.75);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}

.navbar .navbar-brand {
  font-weight: 900;
  letter-spacing: 0.4px;
}

.navbar .nav-link {
  color: rgba(238, 241, 247, 0.78);
  font-weight: 700;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus {
  color: #ffffff;
  text-decoration: none;
}

.navbar .nav-link.active {
  color: #ffffff;
  position: relative;
}
.navbar .nav-link.active::after {
  content: "";
  position: absolute;
  left: 0.5rem;
  right: 0.5rem;
  bottom: 0.25rem;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--bs-primary), var(--bs-secondary));
  opacity: 0.9;
}

/* -------------------------
   Badges / Alerts
------------------------- */
.badge {
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: 0.2px;
}

.text-bg-primary {
  background-color: var(--bs-primary) !important;
  color: #0f1115 !important;
}

.text-bg-secondary {
  background-color: var(--bs-secondary) !important;
  color: #0f1115 !important;
}

.alert {
  border-radius: var(--bs-border-radius-lg);
  border: 1px solid var(--ohq-border-strong);
  background: rgba(255, 255, 255, 0.04);
}

.alert-primary {
  border-color: rgba(255, 45, 141, 0.35);
  box-shadow: inset 0 0 0 1px rgba(255, 45, 141, 0.12);
}

.alert-success {
  border-color: rgba(44, 255, 136, 0.30);
  box-shadow: inset 0 0 0 1px rgba(44, 255, 136, 0.10);
}

/* -------------------------
   Tables
------------------------- */
.table {
  --bs-table-bg: transparent;
  --bs-table-striped-bg: rgba(255, 255, 255, 0.03);
  --bs-table-hover-bg: rgba(255, 45, 141, 0.06);
  color: var(--bs-body-color);
}

.table thead th {
  color: rgba(238, 241, 247, 0.85);
  border-bottom-color: rgba(255, 255, 255, 0.14);
}

/* -------------------------
   Cards “punk edge” option
------------------------- */
.ohq-card-edge {
  position: relative;
  overflow: hidden;
}
.ohq-card-edge::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(135deg,
    rgba(255, 45, 141, 0.55),
    rgba(44, 255, 136, 0.35),
    rgba(255, 255, 255, 0.00)
  );
  opacity: 0.14;
}
.ohq-card-edge:hover::before {
  opacity: 0.20;
}

/* -------------------------
   Utility: gradient text
------------------------- */
.ohq-gradient-text {
  background: linear-gradient(90deg, var(--bs-primary), var(--bs-secondary));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* -------------------------
   Utility: subtle divider
------------------------- */
.ohq-divider {
  height: 1px;
  background: linear-gradient(90deg,
    rgba(255, 45, 141, 0.0),
    rgba(255, 45, 141, 0.45),
    rgba(44, 255, 136, 0.35),
    rgba(44, 255, 136, 0.0)
  );
  border: 0;
}
/* -------------------------
   Typography Overrides
------------------------- */
:root {
  --ohq-font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ohq-font-heading: "Space Grotesk", system-ui, sans-serif;
  --ohq-font-accent: "Archivo", system-ui, sans-serif;
  --ohq-font-punk: "Rubik Mono One", monospace;
}

body {
  font-family: var(--ohq-font-body);
}

h1, h2, h3, h4, h5, h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
  font-family: var(--ohq-font-heading);
  letter-spacing: 0.2px;
}

.navbar-brand,
.btn,
.badge,
.alert-heading {
  font-family: var(--ohq-font-accent);
}

.ohq-punk {
  font-family: var(--ohq-font-punk);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

