.elementor-1362 .elementor-element.elementor-element-ba86145{--display:flex;--min-height:100vh;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--padding-top:60px;--padding-bottom:60px;--padding-left:0px;--padding-right:0px;}.elementor-1362 .elementor-element.elementor-element-3f365ca.elementor-element{--align-self:center;}/* Start custom CSS for html, class: .elementor-element-cf759ee */:root {
  --card-bg: #1a1a1a;
  --card-border: #333;
  --card-completed: #00CC00;
  --card-inprogress: #FFCC00;
  --card-planned: #888;
}

/* Container & Heading */
#cert-dashboard-container {
  font-family: 'JetBrains Mono', monospace;
  color: #00FFFF;
  padding: 24px 0;
}
.dashboard-heading {
  font-size: 1.6rem;
  color: #FF00FF;
  text-shadow: 0 0 6px #FF00FF;
  text-align: center;
  margin-bottom: 16px;
  letter-spacing: 2px;
}
/* 1) Film-grain noise + scanlines */
body::before {
  content: '';
  position: fixed; inset: 0;
  background: url('path/to/crt_noise_overlay.png') repeat;
  opacity: 0.08;
  pointer-events: none;
  z-index: -1;
  mix-blend-mode: overlay;
}
body::after {
  content: '';
  position: fixed; inset: 0;
  background: repeating-linear-gradient(
    rgba(255,255,255,0.02) 0 1px,
    transparent 1px 3px
  );
  pointer-events: none;
  z-index: -1;
}

/* 2) Animated glow-flicker heading */
.dashboard-heading {
  font-size: 2.5rem;
  color: #FF00FF;
  text-shadow:
    0 0 4px #FF00FF,
    0 0 12px #FF00FF,
    0 0 24px #FF00FF;
  animation: crt-title-flicker 2s infinite;
  margin-bottom: 24px;
}
@keyframes crt-title-flicker {
  0%,18%,22%,25%,53%,57%,100% {opacity:1;}
  20%,24%,55%               {opacity:0.8;}
}


/* Summary Cards */
.dashboard-cards {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 16px;
  margin-bottom: 32px;
}
.card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 8px;
  padding: 16px;
  text-align: center;
}
.card-value { font-size: 2.4rem; margin-bottom: 4px; }
.card-label {
  font-size: 0.9rem;
  text-transform: uppercase;
  opacity: 0.8;
}
.total-card     { border-color: #555; }
.completed-card { border-color: var(--card-completed); }
.inprogress-card { border-color: var(--card-inprogress); }
.planned-card   { border-color: var(--card-planned); }

/* Table Base Styles */
#cert-dashboard-table {
  width: 100%;
  border-collapse: collapse;
  background: #111;
  border: 1px solid #333;
}
#cert-dashboard-table thead th,
#cert-dashboard-table tbody td {
  padding: 12px 16px;
  font-size: 0.95rem;
  text-align: left;
}

/* Sticky Header */
#cert-dashboard-table thead th {
  position: sticky;
  top: 0;
  background: #222;
  color: #CCC;
  z-index: 2;
}

/* Zebra Striping */
#cert-dashboard-table tbody tr:nth-child(odd) {
  background: rgba(255,255,255,0.03);
}

/* Hover Highlight */
#cert-dashboard-table tbody tr:hover {
  background: rgba(0,255,255,0.08);
}

/* Status Colour Coding */
#cert-dashboard-table td.status.completed {
  color: var(--card-completed);
  font-weight: bold;
}
#cert-dashboard-table td.status.in-progress {
  color: var(--card-inprogress);
  font-weight: bold;
}
#cert-dashboard-table td.status.planned {
  color: var(--card-planned);
  font-style: italic;
}

/* Remove any scrollbars—show all rows */
#cert-dashboard-table {
  max-height: none !important;
  display: table !important;
  overflow: visible !important;
}/* End custom CSS */
/* Start custom CSS for shortcode, class: .elementor-element-3f365ca */#terminal-output {
  font-family: 'JetBrains Mono', monospace;
  color: #CCCCCC;
  background: #222222;
  padding: 20px;
  border-radius: 4px;
  white-space: pre-wrap;
  overflow: hidden;
  font-size: 16px;
  line-height: 1.5;
  min-height: 80px;
  margin-bottom: 0 !important;
}

#cursor {
  display: inline-block;
  animation: blink 1s steps(1) infinite;
  color: var(--e-global-color-primary);
}

@keyframes blink {
  50% { opacity: 0; }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-20a230e *//* — Toggle “?” Bubble — */
#help-toggle {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 5rem;
  height: 5rem;
  display: flex; align-items: center; justify-content: center;
  background: #111; color: #f0f; font-size: 2.5rem;
  border: 2px solid #0ff; border-radius: 50%;
  cursor: pointer; z-index: 9999;
  transition: background 0.2s, transform 0.2s;
}
#help-toggle:hover {
  transform: scale(1.1);
  background: rgba(0,255,255,0.1);
}

/* — Terminal Overlay Container — */
#help-terminal {
  position: fixed; bottom: 0; left: 50%;
  transform: translateX(-50%) translateY(100%);
  width: 90vw; max-width: 90%; max-height: 60vh;
  background: radial-gradient(circle at top, #001100 0%, #000 80%);
  border: 2px solid #0f0; border-radius: 6px 6px 0 0;
  box-shadow: 0 0 20px rgba(0,255,0,0.6), inset 0 0 15px rgba(0,255,0,0.3);
  font-family: 'JetBrains Mono', monospace;
  color: #0f0;
  overflow: hidden; z-index: 9998;
  transition: transform 0.3s ease-out;
  animation: flicker 0.15s infinite alternate;
}
#help-terminal.open {
  transform: translateX(-50%) translateY(0);
}

/* — CRT Scanlines + Vignette — */
#help-terminal::before {
  content: '';
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%;
  pointer-events: none;
  background:
    radial-gradient(ellipse at center, transparent 60%, rgba(0,0,0,0.5) 100%),
    repeating-linear-gradient(
      to bottom,
      rgba(0,255,0,0.02) 0,
      rgba(0,255,0,0.02) 1px,
      transparent 1px,
      transparent 2px
    );
}

/* — Window Chrome — */
.term-header {
  display: flex; align-items: center;
  background: #111; padding: 0.3rem 0.6rem;
  border-bottom: 1px solid #030; cursor: move;
  position: relative;
}
.dots i {
  display: inline-block; width: 0.6rem; height: 0.6rem;
  border-radius: 50%; margin-right: 0.3rem;
}
.dots .red    { background: #e74c3c; }
.dots .yellow { background: #f1c40f; }
.dots .green  { background: #2ecc71; }
.title {
  margin: 0 auto; font-weight: bold; color: #0ff;
}
.cursor {
  margin-left: 0.3rem;
  animation: blink 1s step-end infinite;
}
/* Magenta “LED” Close Button */
#help-close {
  position: absolute; top: 0.4rem; right: 0.6rem;
  width: 0.8rem; height: 0.8rem;
  background: #f0f; border: none; border-radius: 2px;
  cursor: pointer; box-shadow: 0 0 4px #f0f;
}

/* — Usage & Commands — */
.term-body {
  padding: 0.8rem 1rem; margin: 0;
}
.commands-container {
  max-height: calc(60vh - 5rem);
  overflow-y: auto;
}
.commands-container::-webkit-scrollbar {
  width: 6px;
}
.commands-container::-webkit-scrollbar-thumb {
  background: #0f0;
}
.commands-table {
  width: 100%; border-spacing: 0;
  font-family: 'JetBrains Mono', monospace;
}
.commands-table td {
  padding: 0.2rem 0.5rem;
}
.commands-table .cmd-col {
  width: 12ch; color: #0ff; cursor: pointer;
}
.commands-table .cmd-col:hover {
  text-decoration: underline;
}
.commands-table .desc-col {
  color: #0f0;
}

/* — Prompt Line — */
.prompt-line {
  display: flex; align-items: center;
  padding: 0.2rem 1rem;
  border-top: 1px solid rgba(0,255,0,0.3);
}
.prompt-symbol {
  color: #0f0; margin-right: 0.5rem;
  font-family: 'JetBrains Mono', monospace;
}
.prompt-line .cmd-input {
  flex: 1;
  background: transparent; border: none;
  border-bottom: 1px solid #0f0;
  color: #0f0; font-family: inherit;
  font-size: 1rem; padding: 0.2rem 0;
  outline: none;
}

/* — Status Bar — */
.term-status {
  background: #010; border-top: 1px solid rgba(0,255,0,0.3);
  padding: 0.3rem 1rem; text-align: center;
  font-size: 0.8rem; color: #0f0;
}

/* — Animations — */
@keyframes flicker {
  0%   { filter: brightness(1); }
  50%  { filter: brightness(0.95); }
  100% { filter: brightness(1); }
}
@keyframes blink {
  50% { opacity: 0; }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-ba86145 */#terminal-output {
  font-family: 'JetBrains Mono', monospace;
  color: #CCCCCC;
  background: #222222;
  padding: 20px;
  border-radius: 4px;
  white-space: pre-wrap;
  overflow: hidden;
  font-size: 16px;
  line-height: 1.5;
  min-height: 80px;
  margin-bottom: 0 !important; /* Remove extra space */
}

#cursor {
  display: inline-block;
  animation: blink 1s steps(1) infinite;
  color: var(--e-global-color-primary);
}

@keyframes blink {
  50% { opacity: 0; }
}

/* ───────────────────────────────────────────── */
/* Scope to the Section via your CSS class       */
/* (Advanced → CSS Classes: cert-bg-overlay)     */
/* ───────────────────────────────────────────── */
.cert-bg-overlay {
  position: relative !important;    /* stacking context for pseudo-els */
  z-index: 0 !important;
  background-color: #111111 !important;   /* dark CRT background */
  overflow: hidden;
}

/* Pseudo-elements for grain/vignette & scanlines */
.cert-bg-overlay::before,
.cert-bg-overlay::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: -1;
}

/* ───────────────────────────────────────────── */
/* 1) Film-grain noise + vignette + flicker     */
/* ───────────────────────────────────────────── */
.cert-bg-overlay::before {
  background:
    url('https://ctrlaltinfiltrate.com/wp-content/uploads/2025/06/crt_noise_overlay.png') repeat,
    radial-gradient(circle at center, transparent 60%, rgba(0,0,0,0.5));
  mix-blend-mode: overlay;
  opacity: 0.08;               /* tweak 0.05–0.12 to taste */
  animation: bg-flicker 3s infinite;
}

/* ───────────────────────────────────────────── */
/* 2) Fine CRT scanlines                       */
/* ───────────────────────────────────────────── */
.cert-bg-overlay::after {
  background: repeating-linear-gradient(
    rgba(255,255,255,0.02) 0 1px,
    transparent 1px 3px
  );
}

/* ───────────────────────────────────────────── */
/* 3) Flicker keyframes                        */
/* ───────────────────────────────────────────── */
@keyframes bg-flicker {
  0%,20%,40%,100% { opacity: 0.08; }
  10%,30%         { opacity: 0.06; }
}/* End custom CSS */