:root { --navy:#10283f; --ink:#18334c; --teal:#087c74; --mist:#f3f7f8; --line:#dbe6e8; --muted:#607585; --warning:#fffaf0; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; color:var(--ink); background:#fff; font-family:Arial,Helvetica,sans-serif; }
.access-gate { display:grid; min-height:calc(100vh - 158px); place-items:center; padding:48px 20px; background:var(--navy); }
.access-gate-card { width:min(640px,100%); padding:44px; border:1px solid rgba(255,255,255,.14); border-radius:18px; color:#dce8ed; background:rgba(255,255,255,.055); box-shadow:0 24px 70px rgba(0,0,0,.2); }
.access-gate-card h1 { margin:14px 0; color:#fff; font-size:clamp(34px,6vw,54px); letter-spacing:-.04em; }
.access-gate-card p { line-height:1.65; }
.access-gate-card a { color:#fff; font-weight:800; }
.access-help { margin-top:28px; color:#9db2bd; font-size:14px; }
.wrap { width:min(1120px,calc(100% - 48px)); margin:0 auto; }
.site-header { min-height:90px; display:flex; align-items:center; justify-content:space-between; gap:30px; padding:12px max(24px,calc((100vw - 1120px)/2)); }
.site-header img { display:block; object-fit:contain; }
.isg-logo { width:min(290px,55vw); max-height:64px; object-position:left; }
.ce-logo { width:min(245px,35vw); max-height:68px; object-position:right; }
.customer-tabs { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
.customer-tabs .wrap { display:flex; gap:8px; }
.customer-tabs a { display:flex; align-items:center; gap:9px; padding:15px 17px 13px; border-bottom:3px solid transparent; color:var(--muted); font-size:13px; font-weight:800; text-decoration:none; }
.customer-tabs a.active { border-bottom-color:var(--teal); color:var(--navy); }
.customer-tabs a span { padding:3px 7px; border-radius:999px; color:var(--teal); background:#e7f5f3; font-size:10px; }
.hero { position:relative; overflow:hidden; padding:72px 0 82px; color:#fff; background:var(--navy); }
.hero::after { content:""; position:absolute; width:420px; height:420px; right:-100px; top:-190px; border:1px solid rgba(24,168,155,.25); border-radius:50%; box-shadow:0 0 0 70px rgba(24,168,155,.04),0 0 0 140px rgba(24,168,155,.025); }
.hero .wrap { position:relative; z-index:1; }
.eyebrow,.kicker { margin:0 0 12px; color:#9fcbc9; font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.eyebrow { display:flex; align-items:center; gap:9px; }
.eyebrow span { width:8px; height:8px; border-radius:50%; background:#4be0c9; }
h1 { margin:0 0 18px; max-width:760px; font-size:clamp(42px,6vw,66px); line-height:1.02; letter-spacing:-.045em; }
.intro { margin:0; color:#c5d6df; font-size:19px; line-height:1.6; }
.assessment-summary { display:grid; grid-template-columns:repeat(3,1fr); max-width:850px; margin:40px 0 0; border:1px solid rgba(255,255,255,.14); border-radius:14px; background:rgba(255,255,255,.055); }
.assessment-summary div { padding:18px 22px; border-right:1px solid rgba(255,255,255,.1); }
.assessment-summary div:last-child { border:0; }
.assessment-summary dt { margin-bottom:6px; color:#92a9b7; font-size:10px; text-transform:uppercase; letter-spacing:.11em; }
.assessment-summary dd { margin:0; font-size:14px; font-weight:700; }
.content { padding-top:54px; padding-bottom:80px; }
.warning,.state-message { padding:22px 24px; border-radius:12px; }
.warning { border:1px solid #eed7a6; border-left:4px solid #d99f2b; background:var(--warning); }
.warning p,.state-message p { margin:7px 0 0; line-height:1.6; font-size:14px; }
.state-message { margin-bottom:24px; border:1px solid #e1bcbc; background:#fff3f3; color:#7a2929; }
.steps { display:grid; grid-template-columns:.8fr 1.6fr; gap:70px; padding:65px 0; border-bottom:1px solid var(--line); }
.kicker { color:var(--teal); }
h2 { margin:0; color:var(--navy); font-size:31px; letter-spacing:-.03em; }
.steps ol { display:grid; gap:22px; margin:0; padding:0; list-style:none; }
.steps li { display:flex; gap:17px; }
.steps li>span { flex:0 0 34px; height:34px; display:grid; place-items:center; border-radius:10px; color:var(--teal); background:#e7f5f3; font-weight:800; }
.steps li p { margin:0; color:var(--muted); line-height:1.6; font-size:14px; }
.steps li strong { display:block; color:var(--ink); }
.downloads { padding-top:65px; }
.confirmation { display:flex; gap:14px; margin:26px 0 24px; padding:18px 20px; border:1px solid var(--line); border-radius:12px; background:#fbfdfd; cursor:pointer; }
.confirmation input { width:18px; height:18px; accent-color:var(--teal); }
.confirmation strong,.confirmation small { display:block; }
.confirmation small { margin-top:4px; color:var(--muted); }
.grouped-files { display:grid; gap:38px; }
.download-group { display:grid; gap:16px; }
.download-group h3 { margin:0; padding-bottom:12px; border-bottom:1px solid var(--line); color:var(--navy); font-size:23px; }
.download-group-introduction { max-width:960px; padding:4px 0 6px; color:var(--muted); font-size:14px; line-height:1.65; }
.download-group-introduction p { margin:0 0 10px; }
.file-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.file-card { display:flex; flex-direction:column; min-height:0; padding:27px; border:1px solid var(--line); border-radius:16px; box-shadow:0 10px 30px rgba(20,49,68,.045); }
.file-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.file-type { align-self:flex-start; padding:5px 8px; border-radius:6px; color:#46616e; background:var(--mist); font-size:10px; font-weight:800; letter-spacing:.08em; }
.file-group { color:var(--muted); font-size:11px; font-weight:700; text-align:right; }
.file-card h3 { margin:17px 0 9px; color:var(--navy); }
.file-card p { margin:0 0 18px; color:var(--muted); font-size:13px; line-height:1.55; }
.expected { padding:12px 14px; border-radius:9px; background:var(--mist); font-size:12px; }
.file-hash { margin:0 0 12px; padding:11px 13px; border:1px solid var(--line); border-radius:9px; font-size:11px; }
.file-hash strong,.file-hash code { display:block; }
.file-hash code { margin-top:5px; overflow-wrap:anywhere; color:var(--muted); font-size:10px; line-height:1.4; }
.download-button { margin-top:12px; padding:13px 16px; border:0; border-radius:9px; color:#8a999f; background:#edf1f2; font-weight:800; text-align:left; }
.download-button.ready { color:#fff; background:var(--teal); cursor:pointer; }
.download-button:disabled { cursor:not-allowed; }
.help { display:flex; justify-content:space-between; gap:24px; align-items:center; margin-top:50px; padding:25px 28px; border-radius:14px; color:#fff; background:var(--navy); }
.help p { margin:5px 0 0; color:#bfd0d9; font-size:13px; }
.help a { color:#5ad7c8; font-weight:800; text-decoration:none; }
.privacy-notice { margin-top:26px; padding:24px 26px; border:1px solid var(--line); border-radius:14px; background:var(--mist); }
.privacy-notice h2 { font-size:24px; }
.privacy-notice p { margin:14px 0 0; color:var(--muted); font-size:13px; line-height:1.65; }
.privacy-notice a { color:var(--teal); font-weight:700; }
.privacy-notice details { margin-top:16px; }
.privacy-notice summary { color:var(--teal); font-size:13px; font-weight:800; cursor:pointer; }
footer { display:flex; justify-content:space-between; gap:20px; padding:25px max(24px,calc((100vw - 1120px)/2)); color:#7c8c94; background:var(--mist); font-size:11px; }
@media (max-width:760px) { .site-header{min-height:74px}.hero{padding:55px 0 62px}.assessment-summary{grid-template-columns:1fr}.assessment-summary div{border-right:0;border-bottom:1px solid rgba(255,255,255,.1)}.steps{grid-template-columns:1fr;gap:32px}.file-grid{grid-template-columns:1fr}.help{align-items:flex-start;flex-direction:column}footer{flex-direction:column} }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; } }

.portal-tabs { display:flex; gap:8px; margin:0 0 28px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.portal-tabs a { padding:10px 14px; border-radius:8px; color:var(--ink); background:var(--mist); font-size:13px; font-weight:800; text-decoration:none; }
.portal-tabs a span { margin-left:5px; font-size:10px; }
.portal-tabs a.active,.portal-tabs a:hover { color:#fff; background:var(--teal); }
.nessus-agents { margin-top:65px; padding-top:65px; border-top:1px solid var(--line); }
.agent-disclaimer { margin:24px 0; padding:24px 26px; border:1px solid #b9d8d5; border-left:4px solid var(--teal); border-radius:12px; background:#f2f9f8; }
.agent-disclaimer p { margin:10px 0 0; color:var(--muted); font-size:13px; line-height:1.65; }
.agent-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.agent-card { padding:24px; border:1px solid var(--line); border-radius:16px; box-shadow:0 10px 30px rgba(20,49,68,.045); }
.agent-card h3 { margin:16px 0 9px; color:var(--navy); }
.agent-card p { color:var(--muted); font-size:13px; line-height:1.55; }
.agent-actions { display:grid; gap:9px; margin-top:18px; }
.agent-actions button,.command-panel button { padding:12px 14px; border:0; border-radius:8px; color:var(--ink); background:#e9eff1; font-weight:800; cursor:pointer; }
.agent-actions .primary-agent-action,.command-panel button { color:#fff; background:var(--teal); }
.agent-actions button:disabled { cursor:not-allowed; opacity:.55; }
.command-panel,.removal-panel { margin-top:24px; padding:24px; border:1px solid var(--line); border-radius:14px; background:var(--mist); }
.command-panel>p { color:var(--muted); font-size:13px; }
.command-panel>div { display:flex; gap:12px; align-items:center; }
.command-panel code { flex:1; overflow-wrap:anywhere; padding:13px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.command-panel small { display:block; margin-top:10px; color:var(--muted); }
.removal-panel h3 { margin:0 0 16px; color:var(--navy); font-size:24px; }
.removal-instructions { display:grid; gap:8px; }
.removal-instructions details { padding:13px 15px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.removal-instructions summary { cursor:pointer; font-weight:800; }
.removal-instructions p { color:var(--muted); font-size:13px; line-height:1.6; }
.removal-panel label { display:grid; gap:7px; margin-top:18px; font-size:13px; font-weight:700; }
.removal-panel textarea { padding:12px; border:1px solid #bdccd1; border-radius:8px; font:inherit; }
.preparation-intro { display:grid; grid-template-columns:1.5fr .7fr; gap:24px; align-items:center; margin-bottom:30px; }
.progress-panel { padding:22px; border:1px solid var(--line); border-radius:14px; background:var(--mist); }
.progress-panel strong { display:flex; justify-content:space-between; gap:12px; }
.progress-track { height:9px; margin-top:12px; overflow:hidden; border-radius:999px; background:#dce6e8; }
.progress-track span { display:block; height:100%; background:var(--teal); transition:width .2s ease; }
.checklist { display:grid; gap:16px; }
.checklist-section { overflow:hidden; border:1px solid var(--line); border-radius:14px; background:#fff; }
.checklist-section h2 { padding:22px 24px; border-bottom:1px solid var(--line); font-size:22px; }
.checklist-item { display:flex; gap:14px; padding:18px 24px; border-bottom:1px solid #edf2f3; cursor:pointer; }
.checklist-item:last-child { border:0; }
.checklist-item input { flex:0 0 19px; width:19px; height:19px; margin-top:2px; accent-color:var(--teal); }
.checklist-item strong,.checklist-item small { display:block; }
.checklist-item small { margin-top:5px; color:var(--muted); line-height:1.5; }
.checklist-item .system-verification { color:#087f75; font-weight:700; }
.checklist-item input:disabled { opacity:1; cursor:not-allowed; }
.preparation-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:25px; }
.preparation-actions button { padding:13px 18px; border:0; border-radius:9px; background:#e9eff1; color:var(--ink); font-weight:800; cursor:pointer; }
.preparation-actions .primary { color:#fff; background:var(--teal); }
.preparation-actions button:disabled { cursor:not-allowed; opacity:.55; }
.preparation-message { margin:22px 0 0; padding:14px 17px; border-radius:10px; background:#e8f6f4; font-size:13px; }
.preparation-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:25px; }
.preparation-actions button { padding:13px 18px; border:0; border-radius:9px; background:#e9eff1; color:var(--ink); font-weight:800; cursor:pointer; }
.preparation-actions .primary { color:#fff; background:var(--teal); }
.preparation-actions button:disabled { cursor:not-allowed; opacity:.55; }
.preparation-message { margin:22px 0 0; padding:14px 17px; border-radius:10px; background:#e8f6f4; font-size:13px; }
@media(max-width:760px){.preparation-intro{grid-template-columns:1fr}.preparation-actions{flex-direction:column}.preparation-actions button{width:100%}}

/* Secure cross-device assessment access */
.mobile-test {
  display:grid;
  grid-template-columns:minmax(0,1fr) 230px;
  gap:46px;
  align-items:center;
  margin-top:42px;
  padding:30px 32px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fbfdfd;
}
.mobile-test-copy>p:not(.kicker):not(.mobile-test-warning) {
  max-width:720px;
  margin:14px 0 0;
  color:var(--muted);
  font-size:14px;
  line-height:1.65;
}
.mobile-test-warning {
  max-width:720px;
  margin:18px 0 0;
  padding:13px 15px;
  border-left:3px solid #d99f2b;
  border-radius:7px;
  color:#67532d;
  background:var(--warning);
  font-size:12px;
  line-height:1.55;
}
.mobile-link-actions {
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:18px;
}
.mobile-link-actions button {
  padding:11px 15px;
  border:0;
  border-radius:9px;
  color:#fff;
  background:var(--teal);
  font-weight:800;
  cursor:pointer;
}
.mobile-link-actions span {
  color:var(--teal);
  font-size:12px;
  font-weight:700;
}
.qr-card {
  display:grid;
  justify-items:center;
  gap:10px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
}
.assessment-qr {
  width:180px;
  height:180px;
}
.assessment-qr canvas,
.assessment-qr img {
  display:block;
  width:180px;
  height:180px;
}
.qr-card small {
  color:var(--muted);
  font-size:10px;
  text-align:center;
}

@media (max-width:760px) {
  .mobile-test {
    grid-template-columns:1fr;
    gap:24px;
    padding:24px;
  }
  .qr-card {
    justify-self:start;
  }
  .mobile-link-actions {
    align-items:flex-start;
    flex-direction:column;
  }
  .agent-grid { grid-template-columns:1fr; }
  .command-panel>div { align-items:stretch; flex-direction:column; }
}
