/* C16-A21A — JBS VPS Check customer cyber/security polish baseline */
:root {
  --jbs-bg-0: #020617;
  --jbs-bg-1: #06111f;
  --jbs-bg-2: #081827;
  --jbs-panel: rgba(8, 18, 36, 0.82);
  --jbs-panel-strong: rgba(3, 12, 27, 0.92);
  --jbs-border: rgba(34, 211, 238, 0.22);
  --jbs-border-soft: rgba(148, 163, 184, 0.18);
  --jbs-text: #f8fbff;
  --jbs-muted: #aebbd0;
  --jbs-cyan: #00f5ff;
  --jbs-blue: #2563eb;
  --jbs-violet: #7c3aed;
  --jbs-yellow: #facc15;
  --jbs-green: #34d399;
  --jbs-red: #fb7185;
  --jbs-shadow: 0 24px 80px rgba(0, 0, 0, 0.34);
  --jbs-glow: 0 0 34px rgba(0, 245, 255, 0.10);
}

html {
  scroll-behavior: smooth;
}

body {
  background:
    radial-gradient(circle at 82% 10%, rgba(0, 245, 255, 0.15), transparent 28rem),
    radial-gradient(circle at 16% 22%, rgba(37, 99, 235, 0.16), transparent 30rem),
    radial-gradient(circle at 55% 92%, rgba(124, 58, 237, 0.10), transparent 28rem),
    linear-gradient(180deg, var(--jbs-bg-0), var(--jbs-bg-1) 48%, #030712);
  color: var(--jbs-text);
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.018) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(circle at 50% 20%, black, transparent 75%);
}

.page, .container {
  max-width: 1440px;
}

.topbar, .hero, .customer-card, .card, .login-card, .session-card,
.deep-check-inline-card, .workflow-next-steps, .ownership-instructions-card {
  border-color: var(--jbs-border) !important;
  background:
    linear-gradient(135deg, rgba(8, 18, 36, 0.86), rgba(3, 26, 37, 0.76)) !important;
  box-shadow: var(--jbs-shadow), inset 0 0 0 1px rgba(255,255,255,0.025);
  backdrop-filter: blur(16px);
}

.hero, .deep-check-inline-card {
  position: relative;
  overflow: hidden;
}

.hero::after, .deep-check-inline-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 0%, rgba(0,245,255,0.07) 45%, transparent 72%);
}

.brand, .brand-name, .eyebrow, .card span, .jbs-eyebrow,
.workflow-next-steps .process-step strong {
  color: var(--jbs-cyan) !important;
  text-shadow: 0 0 18px rgba(0,245,255,0.24);
}

h1, h2, h3, strong {
  letter-spacing: -0.02em;
}

p, li, .session-card span, .card p, .hero p {
  color: var(--jbs-muted) !important;
}

.nav a, .nav button, button, .login-button, .module-action,
.asset-next-action, .ownership-check-button, .btn, .jbs-copy-command,
.jbs-report-cta-v4 a, .jbs-hardening-cta {
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, filter .16s ease;
}

.login-button, .module-action, .asset-next-action, .ownership-check-button,
.collector-actions .btn, .deep-check-form .btn, #jbscheck-load-latest,
.jbs-copy-command, .jbs-report-cta-v4 a, .jbs-hardening-cta {
  border: 1px solid rgba(0,245,255,.42) !important;
  background: linear-gradient(135deg, var(--jbs-cyan), var(--jbs-blue) 58%, var(--jbs-violet)) !important;
  color: #020617 !important;
  font-weight: 900 !important;
  box-shadow: 0 14px 34px rgba(0,245,255,.18), 0 0 22px rgba(124,58,237,.13) !important;
}

.nav a:hover, .nav button:hover, button:hover, .login-button:hover,
.module-action:hover, .asset-next-action:hover, .ownership-check-button:hover,
.collector-actions .btn:hover, .deep-check-form .btn:hover, #jbscheck-load-latest:hover,
.jbs-copy-command:hover, .jbs-report-cta-v4 a:hover {
  transform: translateY(-1px);
  filter: brightness(1.12);
  box-shadow: 0 18px 42px rgba(0,245,255,.22), 0 0 30px rgba(124,58,237,.16) !important;
}

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
  outline: 2px solid var(--jbs-cyan);
  outline-offset: 3px;
}

input, select, textarea, input[type="file"], .command-box,
.jbs-kpi-card, .jbs-finding-card-v4, .jbs-evidence-card, .jbs-command-card {
  border-color: var(--jbs-border-soft) !important;
  background-color: rgba(3, 10, 25, 0.82) !important;
  color: var(--jbs-text) !important;
}

.jbs-report-v4, .jbs-finding-card-v4, .jbs-report-cta-v4 {
  border-color: rgba(0,245,255,.28) !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.30), var(--jbs-glow) !important;
}

.jbs-finding-card-v4.severity-medium {
  border-left-color: var(--jbs-yellow) !important;
}

.notice, .security-boundary, .ownership-note {
  border-color: rgba(250,204,21,.38) !important;
  background: rgba(250,204,21,.07) !important;
  color: #fde68a !important;
}

.status-box.success, .success {
  color: #a7f3d0 !important;
}

.status-box.error, .error {
  color: #fecaca !important;
}

@media (max-width: 900px) {
  .topbar, .hero, .deep-check-form, .section-heading-row {
    gap: 16px;
  }
  .jbs-kpi-grid-v4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

/* C16-A21C hardening request form */
.jbs-hardening-request-card {
  display: grid;
  gap: 18px;
}
.jbs-hardening-request-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 10px;
}
.jbs-hardening-request-form label {
  display: grid;
  gap: 8px;
  color: var(--jbs-text);
  font-weight: 900;
  letter-spacing: .03em;
}
.jbs-hardening-request-form input,
.jbs-hardening-request-form textarea {
  width: 100%;
  border: 1px solid rgba(34,211,238,.24);
  border-radius: 14px;
  background: rgba(3,10,25,.86);
  color: var(--jbs-text);
  padding: 13px 14px;
}
.jbs-hardening-request-form textarea,
.jbs-hardening-request-form button,
.jbs-hardening-request-form .status-box {
  grid-column: 1 / -1;
}
@media (max-width: 900px) {
  .jbs-hardening-request-form {
    grid-template-columns: 1fr;
  }
}

/* C16-A21C2 hardening form button polish */
.jbs-hardening-request-form button[type="submit"] {
  appearance: none;
  width: fit-content;
  min-width: 210px;
  justify-self: start;
  border: 1px solid rgba(0,245,255,.48) !important;
  border-radius: 999px;
  padding: 14px 24px;
  background: linear-gradient(135deg, var(--jbs-cyan), var(--jbs-blue) 58%, var(--jbs-violet)) !important;
  color: #020617 !important;
  font-weight: 950 !important;
  letter-spacing: .035em;
  cursor: pointer;
  box-shadow: 0 16px 38px rgba(0,245,255,.20), 0 0 24px rgba(124,58,237,.18) !important;
}
.jbs-hardening-request-form button[type="submit"]:hover {
  transform: translateY(-1px);
  filter: brightness(1.12);
  box-shadow: 0 20px 48px rgba(0,245,255,.25), 0 0 34px rgba(124,58,237,.22) !important;
}
.jbs-hardening-request-form button[type="submit"]:disabled {
  opacity: .62;
  cursor: not-allowed;
  transform: none;
}
.jbs-hardening-request-form .status-box {
  margin-top: 2px;
  min-height: 24px;
  color: #a7f3d0 !important;
  font-weight: 850;
}
.jbs-hardening-request-form .status-box.error {
  color: #fecaca !important;
}
.jbs-hardening-request-form .status-box.working {
  color: #bfdbfe !important;
}

/* C16-A22A beginner-friendly report guidance */
.jbs-beginner-guide{margin:18px 0;padding:18px;border:1px solid rgba(34,211,238,.22);border-radius:20px;background:linear-gradient(135deg,rgba(0,245,255,.07),rgba(15,23,42,.74))}
.jbs-guide-title span{display:block;color:var(--jbs-cyan);font-weight:950;text-transform:uppercase;letter-spacing:.14em;font-size:11px}
.jbs-guide-title h4{margin:5px 0 14px;font-size:20px;color:var(--jbs-text)}
.jbs-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.jbs-guide-box{padding:14px;border:1px solid rgba(148,163,184,.16);border-radius:16px;background:rgba(3,10,25,.72)}
.jbs-guide-box b{display:block;margin-bottom:7px;color:#a5f3fc;text-transform:uppercase;letter-spacing:.1em;font-size:11px}
.jbs-guide-box p,.jbs-guide-box li{color:var(--jbs-muted);line-height:1.65}
.jbs-guide-box ul{margin:0;padding-left:18px}.jbs-guide-box.safe{border-color:rgba(52,211,153,.24)}.jbs-guide-box.warning{border-color:rgba(250,204,21,.32)}
.jbs-guide-jbs{grid-column:1/-1;border-color:rgba(124,58,237,.30)}
@media(max-width:900px){.jbs-guide-grid{grid-template-columns:1fr}}

/* C16-A22B actionable beginner steps */
.jbs-guide-steps{grid-column:1/-1;border-color:rgba(0,245,255,.34);background:linear-gradient(135deg,rgba(0,245,255,.09),rgba(37,99,235,.06))}
.jbs-guide-steps ol{margin:0;padding-left:22px;display:grid;gap:8px}
.jbs-guide-steps li{padding-left:4px}
.jbs-guide-steps li::marker{color:var(--jbs-cyan);font-weight:950}

/* C16-A22C guided one-command flow */
.jbs-guided-flow{margin:18px 0;padding:18px;border:1px solid rgba(0,245,255,.28);border-radius:20px;background:linear-gradient(135deg,rgba(0,245,255,.08),rgba(15,23,42,.82))}
.jbs-guided-head span{display:block;color:var(--jbs-cyan);font-weight:950;text-transform:uppercase;letter-spacing:.14em;font-size:11px}.jbs-guided-head h4{margin:5px 0 8px;font-size:22px}.jbs-guided-head p{color:var(--jbs-muted);line-height:1.65}
.jbs-guided-progress{width:max-content;margin:14px 0;padding:8px 12px;border-radius:999px;border:1px solid rgba(0,245,255,.28);color:#a5f3fc;font-weight:900}
.jbs-guided-step{border:1px solid rgba(148,163,184,.18);border-radius:18px;padding:16px;background:rgba(2,8,23,.70)}.jbs-guided-step h5{margin:0 0 8px;font-size:18px}.jbs-guided-step p{color:var(--jbs-muted);line-height:1.65}
.jbs-guided-command{margin:12px 0;padding:14px;border-radius:16px;background:rgba(3,10,25,.78);border:1px solid rgba(0,245,255,.18)}.jbs-guided-command b{display:block;margin-bottom:8px;color:#a5f3fc;text-transform:uppercase;letter-spacing:.1em;font-size:11px}
.jbs-guided-command pre{white-space:pre-wrap;overflow:auto;color:#dbeafe}.jbs-guided-output-label{display:grid;gap:8px;color:#e5e7eb;font-weight:850}.jbs-guided-output-label textarea{min-height:130px}
.jbs-guided-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.jbs-guided-primary,.jbs-guided-secondary{border-radius:999px;padding:11px 16px;font-weight:900;cursor:pointer}.jbs-guided-primary{border:1px solid rgba(0,245,255,.42);background:linear-gradient(135deg,var(--jbs-cyan),var(--jbs-blue),var(--jbs-violet));color:#020617}.jbs-guided-secondary{border:1px solid rgba(148,163,184,.24);background:rgba(15,23,42,.74);color:#dbeafe}
.jbs-guided-result-box{margin-top:12px;padding:12px;border-radius:14px;border:1px solid rgba(148,163,184,.18);line-height:1.6}.jbs-guided-result-box.ok{border-color:rgba(52,211,153,.35);color:#a7f3d0}.jbs-guided-result-box.warn{border-color:rgba(250,204,21,.40);color:#fde68a}.jbs-guided-result-box.unknown{border-color:rgba(96,165,250,.35);color:#bfdbfe}
.jbs-guided-final{margin-top:14px}.jbs-guided-summary{margin-top:12px;color:var(--jbs-muted);line-height:1.65}

/* C16-A22D guided flow gating */
.jbs-guided-primary:disabled,.jbs-guided-secondary:disabled{opacity:.48;cursor:not-allowed;filter:grayscale(.25)}
.jbs-guided-result-box.missing{border-color:rgba(96,165,250,.35);color:#bfdbfe}
.jbs-guided-result-box ul{margin:10px 0 0;padding-left:20px}
.jbs-guided-result-box li{margin:4px 0}
