.tls-portal {
  --tls-blue:#1559ad; --tls-ink:#202e40; --tls-muted:#5c6776; --tls-line:#dce2e9;
  width:100%; box-sizing:border-box; padding:clamp(18px,4vw,40px);
  border:1px solid #e3e7ed; border-radius:8px; background:#f7f8fa;
  color:var(--tls-ink); font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px; line-height:1.6;
}
.tls-portal * { box-sizing:border-box; }
.tls-portal .tls-shell { max-width:960px; margin:0 auto; }
.tls-portal .tls-header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:12px; }
.tls-portal h1 { margin:0; color:var(--tls-ink); font-size:clamp(25px,3vw,34px); font-weight:650; line-height:1.25; letter-spacing:-.02em; overflow-wrap:anywhere; }
.tls-portal h2 { margin:0 0 18px; color:var(--tls-ink); font-size:clamp(22px,2.4vw,28px); font-weight:650; line-height:1.3; letter-spacing:-.01em; }
.tls-portal p { margin:0 0 18px; }
.tls-portal .tls-person { display:flex; flex-wrap:wrap; gap:8px 16px; margin-bottom:24px; color:var(--tls-muted); font-size:14px; }
.tls-portal .tls-person span+span { border-left:1px solid var(--tls-line); padding-left:16px; }
.tls-portal .tls-card { padding:clamp(22px,3vw,34px); border:1px solid var(--tls-line); border-radius:8px; background:#fff; }
.tls-portal .tls-kicker { margin:0 0 14px; color:var(--tls-muted); font-size:14px; font-weight:600; letter-spacing:0; text-transform:none; }
.tls-portal .tls-login { max-width:560px; margin:12px auto; }
.tls-portal .tls-login h1 { margin-bottom:16px; }
.tls-portal .tls-login>p { color:var(--tls-muted); }
.tls-portal .tls-login-form { display:grid; gap:12px; margin:28px 0 20px; }
.tls-portal .tls-login-form label { font-size:15px; font-weight:600; }
.tls-portal .tls-code-input { width:100%; min-height:50px; margin:0; padding:12px 14px; border:1px solid #a8b4c3; border-radius:5px; background:#fff; color:var(--tls-ink); font:inherit; font-family:ui-monospace,monospace; }
.tls-portal .tls-button { display:inline-flex; justify-content:center; align-items:center; gap:8px; min-height:46px; margin:0; padding:11px 18px; border:1px solid var(--tls-blue); border-radius:5px; background:var(--tls-blue); color:#fff; font:inherit; font-size:15px; font-weight:600; line-height:1.4; text-align:center; text-decoration:none; text-transform:none; letter-spacing:0; cursor:pointer; appearance:none; box-shadow:none; }
.tls-portal .tls-button:hover { background:#10498f; border-color:#10498f; }
.tls-portal .tls-secondary { color:var(--tls-ink); border-color:#b9c4d1; background:#fff; }
.tls-portal .tls-secondary:hover { color:var(--tls-ink); background:#f1f4f8; border-color:#8798ae; }
.tls-portal button:disabled { opacity:.55; cursor:default; }
.tls-portal :focus-visible { outline:3px solid #417bd0; outline-offset:3px; }
.tls-portal .tls-help,.tls-portal .tls-hint { color:var(--tls-muted); font-size:14px; }
.tls-portal .tls-help { margin:0; }
.tls-portal .tls-facts { display:grid; grid-template-columns:repeat(3,1fr); margin:24px 0; border:1px solid var(--tls-line); border-radius:6px; }
.tls-portal .tls-facts>div { padding:16px 10px; text-align:center; }
.tls-portal .tls-facts>div+div { border-left:1px solid var(--tls-line); }
.tls-portal .tls-facts strong { display:block; color:var(--tls-ink); font-size:23px; font-weight:650; }
.tls-portal .tls-facts span { display:block; color:var(--tls-muted); font-size:13px; }
.tls-portal .tls-instructions { white-space:pre-line; }
.tls-portal .tls-progress-line { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:16px 0 10px; font-size:14px; }
.tls-portal .tls-save { margin-left:auto; color:var(--tls-muted); font-size:13px; }
.tls-portal .tls-timer { padding:3px 8px; border:1px solid var(--tls-line); border-radius:4px; background:#fff; font-weight:600; font-variant-numeric:tabular-nums; }
.tls-portal .tls-progress { display:block; width:100%; height:5px; margin:0 0 22px; border:0; border-radius:3px; background:#e1e6ee; color:var(--tls-blue); overflow:hidden; }
.tls-portal progress::-webkit-progress-bar { background:#e1e6ee; }
.tls-portal progress::-webkit-progress-value { background:var(--tls-blue); }
.tls-portal progress::-moz-progress-bar { background:var(--tls-blue); }
.tls-portal .tls-question-set { min-width:0; margin:0; padding:0; border:0; }
.tls-portal .tls-question-set legend { width:100%; margin:0 0 8px; padding:0; font-size:clamp(20px,2.5vw,26px); font-weight:600; line-height:1.45; white-space:pre-line; overflow-wrap:anywhere; }
.tls-portal .tls-choices { display:grid; gap:10px; margin:20px 0 28px; }
.tls-portal .tls-choice { display:flex; align-items:center; gap:13px; min-height:58px; margin:0; padding:14px 16px; border:1px solid #cbd4df; border-radius:5px; background:#fff; color:var(--tls-ink); font-size:16px; line-height:1.5; overflow-wrap:anywhere; cursor:pointer; }
.tls-portal .tls-choice:has(input:checked) { border-color:var(--tls-blue); background:#eff5fd; }
.tls-portal .tls-choice input { flex:0 0 19px; width:19px; height:19px; min-width:19px; margin:0; accent-color:var(--tls-blue); }
.tls-portal .tls-choice-letter { color:var(--tls-ink); font-weight:600; }
.tls-portal .tls-choice span:last-child { white-space:pre-line; }
.tls-portal .tls-button-row { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-top:22px; }
.tls-portal .tls-question-nav { display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 16px; }
.tls-portal .tls-question-nav>button[data-index] { display:inline-flex; flex:0 0 44px; align-items:center; justify-content:center; width:44px; min-width:44px; height:44px; min-height:44px; margin:0; padding:0; border:1px solid #bfcbd9; border-radius:5px; background:#fff; color:var(--tls-ink); font:inherit; font-size:14px; font-weight:500; line-height:1; text-align:center; text-indent:0; letter-spacing:0; appearance:none; box-shadow:none; cursor:pointer; }
.tls-portal .tls-question-nav>button.tls-answered[data-index] { border-color:#b4c9e4; background:#e7effa; color:#164779; }
.tls-portal .tls-question-nav>button[data-index][aria-current] { border-color:var(--tls-blue); outline:2px solid var(--tls-blue); outline-offset:2px; }
.tls-portal .tls-review-link { display:flex; justify-content:flex-end; margin-top:18px; }
.tls-portal .tls-result { max-width:740px; margin:0 auto; text-align:center; }
.tls-portal .tls-score { margin:14px 0 20px; color:#94500f; font-size:clamp(54px,8vw,72px); font-weight:650; font-variant-numeric:tabular-nums; letter-spacing:-.04em; line-height:1.15; }
.tls-portal .tls-score span { font-size:32px; font-weight:400; letter-spacing:0; }
.tls-portal .tls-passed .tls-score { color:var(--tls-blue); }
.tls-portal .tls-result .tls-help { margin:18px 0; }
.tls-portal .tls-history { padding:24px 0 0; }
.tls-portal .tls-history h2 { font-size:20px; }
.tls-portal .tls-history li { margin-bottom:8px; }
.tls-portal .tls-error { padding:14px 16px; margin-top:20px; border:1px solid #d7a8a8; border-radius:5px; background:#fff4f4; color:#7d2525; }
.tls-portal .tls-notice { margin:20px 0 0; padding:14px 16px; border:1px solid #bed0e8; border-radius:5px; background:#f1f6fd; color:#254e83; }
.tls-portal .tls-recovery,.tls-portal .tls-reauth { margin-top:12px; }
.tls-portal [hidden] { display:none!important; }
@media(max-width:600px) {
  .tls-portal { padding:16px 12px; border-radius:6px; }
  .tls-portal .tls-header { display:block; }
  .tls-portal .tls-header>.tls-button { margin-top:16px; }
  .tls-portal .tls-card { padding:22px 16px; }
  .tls-portal .tls-login { margin:0 auto; }
  .tls-portal .tls-facts strong { font-size:20px; }
  .tls-portal .tls-person { margin-top:12px; }
  .tls-portal .tls-button-row .tls-button { flex:1 1 130px; }
  .tls-portal .tls-choice { padding:13px 11px; gap:10px; }
  .tls-portal .tls-save { margin-left:0; }
  .tls-portal .tls-progress-line { justify-content:space-between; gap:8px; }
  .tls-portal .tls-review-link .tls-button { width:100%; }
}
@media(prefers-reduced-motion:reduce) { .tls-portal * { scroll-behavior:auto!important; transition:none!important; } }
