.vit-wrap{max-width:1180px;margin:0 auto;font-family:Arial,Helvetica,sans-serif;color:#172033}.vit-public{padding:24px 0}.vit-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 10px 30px rgba(15,23,42,.06);padding:24px;margin:18px 0}.vit-wizard-card{max-width:900px;margin-left:auto;margin-right:auto}.vit-card h2{margin-top:0;color:#0f172a}.vit-grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.vit-field{display:flex;flex-direction:column;gap:7px}.vit-field span{font-weight:700;font-size:14px}.vit-field em{color:#dc2626;font-style:normal}.vit-field input,.vit-field select,.vit-field textarea,.vit-form textarea{width:100%;max-width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:10px;padding:11px 12px;background:#fff;color:#0f172a}.vit-field input:focus,.vit-field select:focus,.vit-field textarea:focus{outline:2px solid #93c5fd;border-color:#2563eb}.vit-full{grid-column:1/-1}.vit-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.vit-split{justify-content:space-between}.vit-button,.vit-wrap .button{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc;color:#0f172a;padding:10px 16px;min-height:42px;font-weight:700;cursor:pointer;line-height:1.2}.vit-button-primary{background:#0f766e!important;border-color:#0f766e!important;color:#fff!important}.vit-button:hover{filter:brightness(.97)}.vit-alert{padding:13px 15px;border-radius:10px;margin:12px 0;border:1px solid transparent}.vit-alert-warning{background:#fffbeb;border-color:#fde68a;color:#713f12}.vit-alert-error{background:#fef2f2;border-color:#fecaca;color:#7f1d1d}.vit-alert-info{background:#eff6ff;border-color:#bfdbfe;color:#1e3a8a}.vit-progress{margin-bottom:20px}.vit-progress span{display:block;font-weight:700;font-size:14px;color:#334155;margin-bottom:8px}.vit-progress div{height:10px;border-radius:999px;background:#e2e8f0;overflow:hidden}.vit-progress i{height:100%;display:block;background:#0f766e;border-radius:999px}.vit-content{font-size:17px;line-height:1.6}.vit-content img{max-width:100%;height:auto;border-radius:8px}.vit-question{font-size:20px;font-weight:700;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:18px;margin:16px 0}.vit-answer-list{display:grid;gap:12px;margin:18px 0}.vit-answer{display:flex;align-items:flex-start;gap:12px;border:1px solid #e2e8f0;border-radius:12px;padding:14px;background:#f8fafc;cursor:pointer}.vit-answer:hover{background:#f1f5f9}.vit-answer input{margin-top:4px}.vit-complete{text-align:center}.vit-status{display:inline-flex;border-radius:999px;padding:5px 10px;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.02em}.vit-status-valid{background:#dcfce7;color:#166534}.vit-status-expired{background:#fee2e2;color:#991b1b}.vit-status-progress{background:#dbeafe;color:#1e40af}.vit-status-none{background:#e5e7eb;color:#374151}.vit-table-scroll{overflow-x:auto}.vit-table th,.vit-table td{vertical-align:top}.vit-search-form{margin-bottom:20px}.vit-admin-answer-row{display:flex;gap:12px;align-items:center;margin-bottom:10px;padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.vit-answer-input{flex:1}.vit-danger-link{color:#b91c1c!important}.vit-admin-wrap .vit-card{max-width:1180px}.vit-admin-wrap code{background:#f1f5f9;padding:2px 5px;border-radius:4px}@media(max-width:760px){.vit-grid-form{grid-template-columns:1fr}.vit-card{padding:18px}.vit-split{justify-content:flex-start}.vit-button{width:100%}.vit-admin-answer-row{flex-direction:column;align-items:stretch}}

.vit-wrap.vit-public-presentation{max-width:min(1920px,calc(100vw - 16px));width:100%;}
.elementor .vit-wrap.vit-public-presentation{max-width:min(1920px,calc(100vw - 16px));}

/* v0.3.2: screen-fit presentation rendering for imported legacy topic.content HTML */
.vit-public .vit-presentation-card,
.vit-wrap .vit-presentation-card{
  width:100%;
  max-width:min(1920px,calc(100vw - 32px));
  margin-left:auto;
  margin-right:auto;
  padding:clamp(10px,1vw,18px);
  box-sizing:border-box;
}
.vit-presentation-card h2{
  margin:8px 0 10px;
  font-size:clamp(20px,1.6vw,30px);
  line-height:1.15;
}
.vit-presentation-card .vit-progress{
  margin-bottom:10px;
}
.vit-presentation-card .vit-actions{
  margin-top:12px;
}
.vit-presentation-stage{
  --vit-stage-w:1920;
  --vit-stage-h:1080;
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  height:min(calc(100vh - 190px),calc((100vw - 48px) * 0.5625),1080px);
  min-height:360px;
  max-height:1080px;
  overflow:hidden;
  background:#fff;
  border:1px solid #dbe3ea;
  border-radius:12px;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.03);
}
.vit-review-presentation-card .vit-presentation-stage{
  height:min(calc(100vh - 245px),calc((100vw - 48px) * 0.5625),1080px);
}
.vit-presentation-canvas{
  position:absolute;
  left:0;
  top:0;
  width:1920px;
  min-height:1080px;
  transform-origin:top left;
  background:#fff;
}
.vit-presentation-canvas .vit-training-content{
  box-sizing:border-box;
  width:1920px;
  min-height:1080px;
  padding:28px 34px;
  font-size:24px;
  line-height:1.25;
  overflow:visible;
}
.vit-presentation-canvas .vit-training-content > :first-child{
  margin-top:0!important;
}
.vit-presentation-canvas .vit-training-content img{
  max-width:100%;
  height:auto;
  border-radius:0;
}
.vit-presentation-canvas .vit-training-content table{
  max-width:100%;
  table-layout:auto;
}
.vit-presentation-stage.vit-fit-overflow{
  overflow:auto;
}
.vit-presentation-stage.vit-fit-overflow .vit-presentation-canvas{
  min-height:1080px;
}
@media(max-width:760px){
  .vit-public .vit-presentation-card,
  .vit-wrap .vit-presentation-card{max-width:calc(100vw - 16px);padding:10px;border-radius:10px;}
  .vit-presentation-stage{height:min(calc(100vh - 210px),calc((100vw - 28px) * 0.5625));min-height:220px;border-radius:8px;}
  .vit-review-presentation-card .vit-presentation-stage{height:min(calc(100vh - 260px),calc((100vw - 28px) * 0.5625));}
}

/* v0.3.5: compact full-screen training presentation adjustments */
body.vit-training-page .site-header,
body.vit-training-page header.site-header,
body.vit-training-page .elementor-location-header,
body.vit-training-page .elementor-section.elementor-location-header,
body.vit-training-page .page-header{
  padding-top:4px!important;
  padding-bottom:4px!important;
  margin-top:0!important;
  margin-bottom:0!important;
  min-height:0!important;
}
body.vit-training-page .custom-logo,
body.vit-training-page .site-logo img,
body.vit-training-page .site-header img.custom-logo,
body.vit-training-page .elementor-widget-theme-site-logo img,
body.vit-training-page .elementor-widget-image img.custom-logo{
  width:140px!important;
  max-width:140px!important;
  height:auto!important;
}
body.vit-training-page .site-branding,
body.vit-training-page .site-header .header-inner,
body.vit-training-page .site-header .site-branding,
body.vit-training-page .elementor-location-header .elementor-container,
body.vit-training-page .elementor-location-header .elementor-widget-wrap{
  min-height:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  margin-top:0!important;
  margin-bottom:0!important;
  align-items:center!important;
}
body.vit-training-page .site-header .site-branding{
  display:flex!important;
  width:100%!important;
  justify-content:space-between!important;
  gap:16px!important;
}
body.vit-training-page .site-title,
body.vit-training-page .site-description,
body.vit-training-page h1.entry-title{
  text-align:right!important;
  margin-left:auto!important;
  margin-top:0!important;
  margin-bottom:0!important;
  line-height:1.05!important;
}
body.vit-training-page .page-content,
body.vit-training-page .entry-content{
  margin-top:0!important;
  padding-top:0!important;
}
body.vit-training-page .vit-public.vit-public-presentation{
  padding-top:2px!important;
  padding-bottom:2px!important;
}
body.vit-training-page .vit-wrap.vit-public-presentation,
.vit-wrap.vit-public-presentation{
  max-width:min(1920px,calc(100vw - 8px));
}
body.vit-training-page .vit-public .vit-presentation-card,
body.vit-training-page .vit-wrap .vit-presentation-card,
.vit-public .vit-presentation-card[data-vit-layout="compact-presentation-v0.3.5"]{
  max-width:min(1920px,calc(100vw - 10px));
  margin-top:4px;
  margin-bottom:4px;
  padding:6px 8px;
  border-radius:8px;
}
.vit-presentation-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 4px;
}
.vit-presentation-topbar h2{
  flex:1 1 auto;
  text-align:right;
  margin:0!important;
  font-size:clamp(16px,1.2vw,24px)!important;
  line-height:1.05!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.vit-presentation-topbar .vit-presentation-progress{
  flex:0 1 360px;
  min-width:220px;
  margin:0!important;
}
.vit-presentation-topbar .vit-progress span{
  font-size:12px;
  margin-bottom:3px;
}
.vit-presentation-topbar .vit-progress div{
  height:6px;
}
.vit-review-topbar .vit-alert{
  flex:0 1 560px;
  margin:0!important;
  padding:7px 10px;
  font-size:13px;
}
.vit-presentation-card .vit-actions{
  margin-top:4px!important;
  min-height:32px;
}
.vit-presentation-card .vit-button{
  min-height:34px;
  padding:7px 13px;
  border-radius:8px;
  font-size:13px;
}
body.vit-training-page .vit-presentation-stage,
.vit-presentation-card[data-vit-layout="compact-presentation-v0.3.5"] .vit-presentation-stage{
  height:min(calc(100dvh - 112px),calc((100vw - 18px) * 0.5625),1080px);
  min-height:420px;
  border-radius:8px;
}
body.vit-training-page .vit-review-presentation-card .vit-presentation-stage,
.vit-review-presentation-card[data-vit-layout="compact-presentation-v0.3.5"] .vit-presentation-stage{
  height:min(calc(100dvh - 132px),calc((100vw - 18px) * 0.5625),1080px);
}
.vit-presentation-canvas .vit-training-content{
  padding:10px 14px!important;
  line-height:1.12;
}
.vit-presentation-canvas .vit-training-content p,
.vit-presentation-canvas .vit-training-content div,
.vit-presentation-canvas .vit-training-content table{
  margin-top:.08em!important;
  margin-bottom:.08em!important;
}
.vit-presentation-canvas .vit-training-content table{
  border-collapse:collapse;
}
.vit-presentation-canvas .vit-training-content td,
.vit-presentation-canvas .vit-training-content th{
  padding:2px 4px!important;
}
@media(max-width:760px){
  body.vit-training-page .custom-logo,
  body.vit-training-page .site-logo img,
  body.vit-training-page .site-header img.custom-logo,
  body.vit-training-page .elementor-widget-theme-site-logo img,
  body.vit-training-page .elementor-widget-image img.custom-logo{width:100px!important;max-width:100px!important;}
  .vit-presentation-topbar{gap:8px;}
  .vit-presentation-topbar .vit-presentation-progress{min-width:140px;flex-basis:180px;}
  .vit-presentation-topbar h2{font-size:15px!important;}
  body.vit-training-page .vit-presentation-stage,
  .vit-presentation-card[data-vit-layout="compact-presentation-v0.3.5"] .vit-presentation-stage{height:min(calc(100dvh - 130px),calc((100vw - 18px) * 0.5625));min-height:250px;}
}

/* v0.3.6 admin contractor/certificate pagination */
.vit-list-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin:10px 0 12px;
}
.vit-list-count{
  font-weight:600;
}
.vit-pagination-links{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.vit-pagination-links .button.disabled{
  opacity:.45;
  pointer-events:none;
}
.vit-page-number{
  margin-left:6px;
  color:#555;
}

/* v0.3.7: compact header + smaller fixed-height internal scrolling presentation area */
body.vit-training-page .custom-logo,
body.vit-training-page .site-logo img,
body.vit-training-page .site-header img.custom-logo,
body.vit-training-page .elementor-widget-theme-site-logo img,
body.vit-training-page .elementor-widget-image img.custom-logo{
  width:90px!important;
  max-width:90px!important;
  height:auto!important;
}
body.vit-training-page .site-header,
body.vit-training-page header.site-header,
body.vit-training-page .elementor-location-header{
  padding-top:2px!important;
  padding-bottom:2px!important;
  margin-bottom:0!important;
}
body.vit-training-page .site-header .header-inner,
body.vit-training-page .site-header .site-branding,
body.vit-training-page .site-branding,
body.vit-training-page .elementor-location-header .elementor-container,
body.vit-training-page .elementor-location-header .elementor-widget-wrap{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  min-height:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  margin-top:0!important;
  margin-bottom:0!important;
}
body.vit-training-page .site-title,
body.vit-training-page .site-title a,
body.vit-training-page .site-description{
  text-align:right!important;
  margin:0 0 0 auto!important;
  line-height:1!important;
  white-space:nowrap!important;
}
body.vit-training-page h1.entry-title,
body.vit-training-page .entry-header,
body.vit-training-page .page-header{
  display:none!important;
}
body.vit-training-page .vit-public.vit-public-presentation{
  padding-top:0!important;
  padding-bottom:0!important;
}
body.vit-training-page .vit-public .vit-presentation-card,
body.vit-training-page .vit-wrap .vit-presentation-card,
.vit-public .vit-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"]{
  margin-top:2px!important;
  margin-bottom:2px!important;
  padding:4px 8px!important;
  border-radius:7px!important;
}
.vit-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"] .vit-training-inline-header{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  gap:10px!important;
  margin:0 0 3px!important;
  min-height:38px!important;
}
.vit-training-inline-logo{
  width:86px!important;
  max-width:86px!important;
  height:auto!important;
  flex:0 0 86px!important;
  display:block!important;
}
.vit-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"] .vit-presentation-topbar h2{
  flex:1 1 auto!important;
  order:3!important;
  text-align:right!important;
  margin:0!important;
  padding:0!important;
  font-size:clamp(15px,1.05vw,21px)!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.vit-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"] .vit-presentation-progress{
  flex:0 0 240px!important;
  min-width:180px!important;
  max-width:260px!important;
  margin:0!important;
  order:2!important;
}
.vit-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"] .vit-progress span{
  font-size:11px!important;
  margin-bottom:2px!important;
  line-height:1!important;
}
.vit-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"] .vit-progress div{
  height:5px!important;
}
body.vit-training-page .vit-presentation-stage,
.vit-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"] .vit-presentation-stage{
  height:min(calc(100dvh - 185px),690px)!important;
  min-height:300px!important;
  max-height:690px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  border-radius:7px!important;
  scrollbar-gutter:stable;
}
body.vit-training-page .vit-review-presentation-card .vit-presentation-stage,
.vit-review-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"] .vit-presentation-stage{
  height:min(calc(100dvh - 205px),650px)!important;
  max-height:650px!important;
}
.vit-presentation-stage.vit-scroll-y::after{
  content:"";
  display:block;
  height:var(--vit-scroll-height,0px);
  width:1px;
  pointer-events:none;
}
.vit-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"] .vit-presentation-canvas .vit-training-content{
  padding:8px 12px!important;
  line-height:1.08!important;
}
.vit-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"] .vit-actions{
  margin-top:3px!important;
  min-height:28px!important;
}
.vit-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"] .vit-button{
  min-height:30px!important;
  padding:5px 11px!important;
  font-size:12px!important;
}
@media(max-width:760px){
  body.vit-training-page .custom-logo,
  body.vit-training-page .site-logo img,
  body.vit-training-page .site-header img.custom-logo,
  body.vit-training-page .elementor-widget-theme-site-logo img,
  body.vit-training-page .elementor-widget-image img.custom-logo{width:72px!important;max-width:72px!important;}
  .vit-training-inline-logo{width:70px!important;max-width:70px!important;flex-basis:70px!important;}
  .vit-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"] .vit-presentation-progress{flex:0 0 125px!important;min-width:110px!important;max-width:140px!important;}
  .vit-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"] .vit-presentation-topbar h2{font-size:13px!important;}
  body.vit-training-page .vit-presentation-stage,
  .vit-presentation-card[data-vit-layout="compact-scroll-presentation-v0.3.7"] .vit-presentation-stage{height:min(calc(100dvh - 160px),520px)!important;min-height:250px!important;}
}

/* v0.3.8: contractor admin profile and history */
.vit-profile-page[data-vit-admin-profile="contractor-history-v0.3.8"] .vit-profile-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.vit-profile-page[data-vit-admin-profile="contractor-history-v0.3.8"] .vit-profile-grid>div{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:10px;
  padding:12px;
  min-height:58px;
  overflow-wrap:anywhere;
}
.vit-profile-page[data-vit-admin-profile="contractor-history-v0.3.8"] .vit-card h2{
  margin-bottom:14px;
}
@media(max-width:1100px){
  .vit-profile-page[data-vit-admin-profile="contractor-history-v0.3.8"] .vit-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:700px){
  .vit-profile-page[data-vit-admin-profile="contractor-history-v0.3.8"] .vit-profile-grid{grid-template-columns:1fr;}
}

/* v0.3.9: visitor front-page login */
.vit-login-wrap{
  min-height:calc(100vh - 60px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px 16px;
}
.vit-login-card{
  width:min(100%,460px);
  margin:0 auto;
  text-align:left;
}
.vit-login-card h2{
  margin-top:8px;
  margin-bottom:8px;
}
.vit-login-logo{
  display:block;
  width:150px;
  max-width:150px;
  height:auto;
  margin:0 0 12px 0;
}
.vit-login-form .vit-check{
  display:flex;
  align-items:center;
  gap:8px;
  margin:4px 0 10px;
  font-weight:600;
}
