/* ADR Trainer 4.0.9 - TrainWerk Corporate Identity for customer-facing areas */
:root{
  --tw-navy:#081426;
  --tw-navy-2:#0d2038;
  --tw-navy-3:#16314f;
  --tw-orange:#f36f21;
  --tw-orange-dark:#d95c12;
  --tw-bg:#f4f6f8;
  --tw-surface:#ffffff;
  --tw-surface-soft:#eef2f5;
  --tw-line:#d9e0e7;
  --tw-text:#142033;
  --tw-muted:#657283;
  --tw-success:#1f7a4d;
  --tw-warning:#b56512;
  --tw-danger:#b33a3a;
  --tw-radius:4px;
  --tw-radius-lg:6px;
  --tw-shadow:0 12px 30px rgba(8,20,38,.08);
}

body.tw-frontend{
  font-family:Arial,"Helvetica Neue",system-ui,-apple-system,"Segoe UI",sans-serif;
  background:var(--tw-bg);
  color:var(--tw-text);
  line-height:1.55;
}

body.tw-frontend a{color:var(--tw-navy-3)}
body.tw-frontend a:hover{color:var(--tw-orange-dark)}
body.tw-frontend .text-muted,
body.tw-frontend .muted{color:var(--tw-muted)!important}

.tw-app-nav{
  background:var(--tw-navy);
  border-bottom:3px solid var(--tw-orange);
  color:#fff;
}
.tw-app-nav .container{min-height:64px}
.tw-app-brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:#fff!important;
  text-decoration:none;
  font-weight:800;
  letter-spacing:-.01em;
}
.tw-brand-mark{
  display:inline-flex;
  width:30px;
  height:30px;
  align-items:center;
  justify-content:center;
  background:var(--tw-orange);
  color:#fff;
  font-size:.64rem;
  font-weight:900;
  letter-spacing:.04em;
  border-radius:2px;
  flex:0 0 auto;
}
.tw-brand-copy{display:flex;flex-direction:column;line-height:1.05}
.tw-brand-copy small{margin-top:4px;color:rgba(255,255,255,.58);font-size:.61rem;letter-spacing:.12em;font-weight:700;text-transform:uppercase}

body.tw-frontend .btn{
  border-radius:var(--tw-radius);
  font-weight:700;
  box-shadow:none!important;
}
body.tw-frontend .btn-primary{
  background:var(--tw-orange);
  border-color:var(--tw-orange);
  color:#fff;
}
body.tw-frontend .btn-primary:hover,
body.tw-frontend .btn-primary:focus{
  background:var(--tw-orange-dark);
  border-color:var(--tw-orange-dark);
  color:#fff;
}
body.tw-frontend .btn-outline-primary{
  border-color:var(--tw-navy);
  color:var(--tw-navy);
}
body.tw-frontend .btn-outline-primary:hover,
body.tw-frontend .btn-outline-primary:focus{
  background:var(--tw-navy);
  border-color:var(--tw-navy);
  color:#fff;
}
body.tw-frontend .btn-outline-secondary{
  border-color:#aeb8c4;
  color:#334155;
}
body.tw-frontend .btn-outline-secondary:hover{background:#e9edf1;border-color:#8e9aaa;color:var(--tw-navy)}
body.tw-frontend .btn-outline-light{border-color:rgba(255,255,255,.55);color:#fff}
body.tw-frontend .btn-outline-light:hover{background:#fff;color:var(--tw-navy)}
body.tw-frontend .btn-light{background:#fff;border-color:#fff;color:var(--tw-navy)}

body.tw-frontend .card,
body.tw-frontend .portal-card,
body.tw-frontend .portal-kpi,
body.tw-frontend .shell-card{
  border:1px solid var(--tw-line)!important;
  border-radius:var(--tw-radius-lg)!important;
  background:var(--tw-surface);
  box-shadow:0 6px 18px rgba(8,20,38,.045)!important;
}
body.tw-frontend .portal-kpi{padding:18px;height:100%}
body.tw-frontend .portal-kpi .h3{color:var(--tw-navy);font-weight:800!important}
body.tw-frontend .progress{height:8px;border-radius:0;background:#e6ebef}
body.tw-frontend .progress-bar{background:var(--tw-orange)}
body.tw-frontend .badge{border-radius:3px}
body.tw-frontend .form-control,
body.tw-frontend .form-select{
  min-height:46px;
  border-radius:var(--tw-radius);
  border-color:#cbd4dd;
}
body.tw-frontend .form-control:focus,
body.tw-frontend .form-select:focus{
  border-color:var(--tw-orange);
  box-shadow:0 0 0 .18rem rgba(243,111,33,.12);
}
body.tw-frontend .alert{border-radius:var(--tw-radius);border-width:1px}
body.tw-frontend .table{--bs-table-bg:transparent}
body.tw-frontend .table thead th{color:#526174;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}

.tw-page-kicker{
  color:var(--tw-orange-dark);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.tw-page-title{color:var(--tw-navy);font-weight:800;letter-spacing:-.025em}
.tw-section-rule{width:38px;height:3px;background:var(--tw-orange);margin:.65rem 0 1rem}

/* Customer login */
.tw-login-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
  background:#fff;
}
.tw-login-story{
  min-height:100vh;
  padding:clamp(36px,6vw,82px);
  background:var(--tw-navy);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
  overflow:hidden;
}
.tw-login-story::after{
  content:"";
  position:absolute;
  right:-120px;
  bottom:-160px;
  width:420px;
  height:420px;
  border:1px solid rgba(255,255,255,.08);
  transform:rotate(18deg);
}
.tw-login-story > *{position:relative;z-index:1}
.tw-login-brand{display:inline-flex;align-items:center;gap:12px;color:#fff;font-weight:800}
.tw-login-eyebrow{margin-top:72px;color:#ff9a5c;font-size:.76rem;text-transform:uppercase;letter-spacing:.13em;font-weight:800}
.tw-login-story h1{max-width:760px;margin:12px 0 18px;font-size:clamp(2.35rem,4.8vw,4.7rem);line-height:1.02;letter-spacing:-.045em;font-weight:850}
.tw-login-story p{max-width:700px;margin:0;color:rgba(255,255,255,.72);font-size:1.03rem;line-height:1.75}
.tw-login-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.12);margin-top:38px}
.tw-login-fact{background:var(--tw-navy);padding:18px 16px}
.tw-login-fact strong{display:block;font-size:1.18rem;margin-bottom:5px}
.tw-login-fact span{display:block;color:rgba(255,255,255,.62);font-size:.84rem;line-height:1.45}
.tw-login-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.tw-login-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:43px;padding:0 16px;border:1px solid rgba(255,255,255,.28);color:#fff;text-decoration:none;font-weight:700;border-radius:2px}
.tw-login-actions a:hover{background:#fff;color:var(--tw-navy)}
.tw-login-panel{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(28px,6vw,70px);
  background:var(--tw-bg);
}
.tw-login-card{width:min(520px,100%);background:#fff;border:1px solid var(--tw-line);border-top:4px solid var(--tw-orange);padding:clamp(28px,4vw,46px);box-shadow:var(--tw-shadow)}
.tw-login-card h2{margin:.35rem 0 .65rem;color:var(--tw-navy);font-size:clamp(1.8rem,3vw,2.55rem);font-weight:800;letter-spacing:-.035em}
.tw-login-card p{color:var(--tw-muted)}
.tw-login-form{display:grid;gap:16px;margin-top:26px}
.tw-field{display:grid;gap:7px}
.tw-field label{font-size:.88rem;font-weight:800;color:#2d3b4d}
.tw-field-wrap{position:relative}
.tw-field input{width:100%;min-height:50px;padding:0 14px;border:1px solid #cbd4dd;border-radius:2px;background:#fff;color:var(--tw-text);outline:none}
.tw-field input:focus{border-color:var(--tw-orange);box-shadow:0 0 0 3px rgba(243,111,33,.1)}
.tw-field.has-toggle input{padding-right:96px}
.tw-password-toggle{position:absolute;right:6px;top:6px;bottom:6px;border:0;background:#eef2f5;color:#344255;padding:0 12px;font-weight:700;border-radius:2px}
.tw-login-submit{min-height:50px;border:0;border-radius:2px;background:var(--tw-orange);color:#fff;font-weight:800}
.tw-login-submit:hover{background:var(--tw-orange-dark)}
.tw-login-secondary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.tw-login-secondary a{min-height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--tw-line);color:var(--tw-navy);text-decoration:none;font-weight:700;border-radius:2px;background:#fff}
.tw-login-secondary a:hover{border-color:var(--tw-navy)}
.tw-login-alert{padding:12px 14px;border-left:4px solid;margin-top:14px;background:#fff}
.tw-login-alert.success{border-color:var(--tw-success);background:#f1f8f4;color:#205f40}
.tw-login-alert.error{border-color:var(--tw-danger);background:#fbf1f1;color:#8f2e2e}

/* Practice */
body.tw-practice .pf-header{background:var(--tw-navy)!important;border-bottom:3px solid var(--tw-orange)!important}
body.tw-practice .pf-header .navbar-brand{color:#fff!important}
body.tw-practice .timer-pill{border:1px solid rgba(255,255,255,.22)!important;background:rgba(255,255,255,.07)!important;border-radius:3px!important;padding:.38rem .7rem!important}
body.tw-practice .pf-hero{background:#fff!important;border:1px solid var(--tw-line)!important;border-top:4px solid var(--tw-orange)!important;border-radius:var(--tw-radius-lg)!important}
body.tw-practice .pf-qcard{border-left:4px solid var(--tw-navy)!important}
body.tw-practice .answer-option{border:1px solid var(--tw-line)!important;border-radius:3px!important;background:#fff!important;padding:.9rem 1rem!important;transition:border-color .12s ease,background .12s ease}
body.tw-practice .answer-option:hover{border-color:#9aa8b8!important;background:#f8fafb!important}
body.tw-practice .answer-option:has(input:checked){border-color:var(--tw-orange)!important;background:#fff8f3!important}
body.tw-practice .pf-qnav-item{border-radius:3px!important}
body.tw-practice .pf-qnav-item.is-current{background:var(--tw-navy)!important;border-color:var(--tw-navy)!important}
body.tw-practice form[data-mode="classic"] .pf-question{content-visibility:auto;contain-intrinsic-size:560px}
.tw-question-media{display:block;max-height:460px;width:auto;max-width:100%;object-fit:contain;background:#fff}

/* Portal */
body.tw-portal main.container{max-width:1220px!important}
body.tw-portal .portal-card{border-top:2px solid transparent!important}
body.tw-portal .portal-card:hover{border-top-color:#cbd4dd!important}
body.tw-portal .portal-kpi{border-top:3px solid var(--tw-orange)!important}
body.tw-portal .list-group-item{border-color:#e3e8ed}
body.tw-portal code{color:var(--tw-navy-3)}

/* Guided learning / learning mode */
body.tw-learn .shell-card{border-radius:var(--tw-radius-lg)!important}
body.tw-learn .chapter-frame{border-radius:3px!important}
body.tw-learn .guided-stage{border-radius:4px!important;border-color:var(--tw-line)!important}
body.tw-learn .guided-progress{height:5px!important;border-radius:0!important;background:#e5e9ee!important}
body.tw-learn .guided-progress-bar{background:var(--tw-orange)!important;border-radius:0!important}
body.tw-learn .guided-title{color:var(--tw-navy)!important}

@media (max-width:960px){
  .tw-login-shell{grid-template-columns:1fr}
  .tw-login-story,.tw-login-panel{min-height:auto}
  .tw-login-story{padding:34px 24px}
  .tw-login-eyebrow{margin-top:46px}
  .tw-login-panel{padding:28px 18px 44px}
}
@media (max-width:680px){
  .tw-login-facts{grid-template-columns:1fr}
  .tw-login-secondary{grid-template-columns:1fr}
  .tw-app-nav .container{min-height:58px}
}

/* 4.0.10 - neutral status/information page */
body.tw-status-page{min-height:100vh;background:var(--tw-bg)}
.tw-status-shell{min-height:100vh;display:grid;place-items:center;padding:36px 18px;background:linear-gradient(135deg,var(--tw-navy) 0,var(--tw-navy) 34%,var(--tw-bg) 34%,var(--tw-bg) 100%)}
.tw-status-panel{width:min(720px,100%);background:#fff;border:1px solid var(--tw-line);border-top:4px solid var(--tw-orange);padding:clamp(28px,5vw,48px);box-shadow:var(--tw-shadow)}
.tw-status-brand{display:inline-flex;align-items:center;gap:10px;margin-bottom:32px;color:var(--tw-navy);font-weight:800}
.tw-status-panel h1{margin:.35rem 0 .8rem;color:var(--tw-navy);font-size:clamp(2rem,4vw,3.25rem);line-height:1.05;letter-spacing:-.04em;font-weight:850}
.tw-status-panel p{max-width:620px;margin:0;color:var(--tw-muted);font-size:1rem;line-height:1.7}
.tw-status-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.tw-status-action{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.65rem 1rem;border:1px solid #aeb8c4;border-radius:2px;background:#fff;color:var(--tw-navy)!important;text-decoration:none;font-weight:800}
.tw-status-action:hover{background:var(--tw-navy);border-color:var(--tw-navy);color:#fff!important}
.tw-status-action.primary{background:var(--tw-orange);border-color:var(--tw-orange);color:#fff!important}
.tw-status-action.primary:hover{background:var(--tw-orange-dark);border-color:var(--tw-orange-dark)}
@media(max-width:620px){.tw-status-shell{background:var(--tw-bg)}.tw-status-actions{display:grid}.tw-status-action{width:100%}}
.tw-status-brand .tw-brand-copy small{color:var(--tw-muted)}

/* 4.0.12 - unified participant dashboard */
.tw-dashboard-heading{padding-top:4px}
.tw-dashboard-hero{
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);
  background:var(--tw-navy);
  color:#fff;
  border:1px solid var(--tw-navy);
  border-top:4px solid var(--tw-orange);
  box-shadow:var(--tw-shadow);
}
.tw-dashboard-hero-main{padding:clamp(24px,4vw,38px)}
.tw-dashboard-hero-main .tw-page-kicker{color:#ff9a5c}
.tw-dashboard-hero-main h2{margin:.35rem 0 .75rem;font-size:clamp(1.65rem,3vw,2.45rem);line-height:1.08;font-weight:850;letter-spacing:-.035em;color:#fff}
.tw-dashboard-hero-main p{color:rgba(255,255,255,.82)}
.tw-dashboard-meta{color:rgba(255,255,255,.62);font-size:.88rem}
.tw-dashboard-hero-side{padding:clamp(22px,3vw,30px);background:var(--tw-navy-2);border-left:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;justify-content:center}
.tw-dashboard-side-label{margin-bottom:12px;color:#ff9a5c;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.tw-dashboard-hero-side .small{color:rgba(255,255,255,.66)}
.tw-dashboard-hero-side .btn-light{font-weight:800}
.tw-empty-state{padding:16px;background:var(--tw-surface-soft);border:1px solid var(--tw-line);color:var(--tw-muted);font-size:.92rem}
.tw-attempt-list{display:grid;border-top:1px solid var(--tw-line)}
.tw-attempt-row{display:grid;grid-template-columns:minmax(0,1fr) auto 70px;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--tw-line);text-decoration:none!important;color:var(--tw-text)!important}
.tw-attempt-row:hover{background:#f8fafb}
.tw-attempt-row strong{display:block;color:var(--tw-navy)}
.tw-attempt-row small{display:block;margin-top:2px;color:var(--tw-muted)}
.tw-attempt-date{font-size:.82rem;color:var(--tw-muted);white-space:nowrap}
.tw-attempt-score{justify-self:end;min-width:58px;padding:5px 7px;border:1px solid var(--tw-line);font-weight:800;text-align:center;background:#fff}
.tw-attempt-score.is-pass{border-color:#a8d5bc;color:var(--tw-success);background:#f3faf6}
.tw-attempt-score.is-fail{border-color:#e1b5b5;color:var(--tw-danger);background:#fff6f6}
.tw-focus-list{display:grid;border-top:1px solid var(--tw-line)}
.tw-focus-row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--tw-line);font-size:.92rem}
.tw-focus-row strong{color:var(--tw-navy);white-space:nowrap}
.tw-dashboard-tip{padding:10px 12px;margin-top:8px;border-left:3px solid var(--tw-orange);background:#fff8f3;color:#4a5665;font-size:.88rem}
.tw-course-card{padding:22px;border:1px solid var(--tw-line);background:#fff}
.tw-course-progress-number{display:inline-flex;min-width:48px;min-height:32px;align-items:center;justify-content:center;background:var(--tw-navy);color:#fff;font-size:.82rem;font-weight:800}

@media(max-width:900px){
  .tw-dashboard-hero{grid-template-columns:1fr}
  .tw-dashboard-hero-side{border-left:0;border-top:1px solid rgba(255,255,255,.1)}
}
@media(max-width:680px){
  .tw-attempt-row{grid-template-columns:minmax(0,1fr) 62px}
  .tw-dashboard-hero-main,.tw-dashboard-hero-side{padding:22px 18px}
  .tw-course-card{padding:18px}
}

/* 4.0.16: lightweight server-rendered charts (no JS dependency). */
.tw-svg-chart{width:100%;overflow:hidden}.tw-svg-chart svg{display:block;width:100%;height:auto;min-height:220px}.tw-chart-grid{stroke:#dfe6ee;stroke-width:1}.tw-chart-axis{fill:#657487;font-size:12px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.tw-chart-label{font-size:11px}.tw-chart-line{fill:none;stroke:#e86f1c;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.tw-chart-point{fill:#e86f1c;stroke:#fff;stroke-width:2}.tw-chart-bar-bg{fill:#eef2f6}.tw-chart-bar{fill:#e86f1c}

/* 4.1.5 - course-aware participant dashboard foundation */
.tw-participant-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;padding-top:4px}
.tw-dashboard-hero-v2{grid-template-columns:minmax(0,1.6fr) minmax(250px,.68fr)}
.tw-progress-summary{align-items:center;text-align:center;gap:14px}
.tw-progress-ring{--tw-progress:0%;width:112px;height:112px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--tw-orange) var(--tw-progress),rgba(255,255,255,.12) 0);position:relative}
.tw-progress-ring::after{content:"";position:absolute;inset:10px;border-radius:50%;background:var(--tw-navy-2)}
.tw-progress-ring span{position:relative;z-index:1;color:#fff;font-size:1.45rem;font-weight:850}
.tw-progress-summary-copy{display:grid;gap:3px}.tw-progress-summary-copy strong{color:#fff}.tw-progress-summary-copy span{color:rgba(255,255,255,.66);font-size:.85rem}
.tw-course-card-v2{display:flex;flex-direction:column;justify-content:space-between;min-height:240px;border-top:3px solid var(--tw-navy)!important}
.tw-course-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.tw-course-meta{margin-bottom:7px;color:var(--tw-orange-dark);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.tw-course-card-status{display:flex;gap:14px;flex-wrap:wrap;margin-top:9px;color:var(--tw-muted);font-size:.82rem}
.tw-course-card-status span+span{padding-left:14px;border-left:1px solid var(--tw-line)}
.tw-open-test{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px;border:1px solid var(--tw-line);border-left:4px solid var(--tw-orange);background:#fff8f3}
.tw-open-test div{display:grid;gap:2px}.tw-open-test span{color:var(--tw-muted);font-size:.82rem}
.tw-private-analysis{border-top:3px solid var(--tw-navy)!important}.tw-private-course{padding:9px 11px;border-left:3px solid var(--tw-orange);background:var(--tw-surface-soft);font-weight:800;color:var(--tw-navy)}
.tw-analysis-context{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--tw-line);background:#fff}.tw-analysis-context-label{color:var(--tw-muted);font-size:.82rem}.tw-analysis-context strong{color:var(--tw-navy)}.tw-analysis-context span:last-child{color:var(--tw-muted);font-size:.82rem}
.tw-company-link-card{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px;border:1px solid var(--tw-line);background:var(--tw-surface-soft)}
.tw-company-link-card div{display:grid;gap:2px}.tw-company-link-card strong{color:var(--tw-navy)}.tw-company-link-card span{color:var(--tw-muted);font-size:.82rem}
@media(max-width:680px){.tw-dashboard-hero-v2{grid-template-columns:1fr}.tw-progress-ring{width:96px;height:96px}.tw-course-card-top{gap:10px}.tw-company-link-card,.tw-open-test{align-items:flex-start;flex-direction:column}.tw-course-card-status span+span{padding-left:0;border-left:0}}
