/* Recognize, Respond, Report: course styles.
   Palette: teal #0AB7C2, dark teal #077A82, deep teal #055A60, light teal #E7F8F9,
   coral #FF7A59, gold #F2C14E, black, white. */

html{scroll-behavior:auto}
body{margin:0;background:#FFFFFF;color:#000000;font-family:'Source Sans 3',sans-serif;font-size:1rem;line-height:1.5}
*,*::before,*::after{box-sizing:border-box}
a{color:#077A82}
a:hover{color:#000000}
strong{font-weight:600}
h1,h2,h3,h4,p{margin:0}

.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:16px;top:-80px;z-index:30;background:#FFFFFF;color:#000000;border:1px solid #000000;padding:10px 16px;border-radius:4px;font-weight:600;text-decoration:none}
.skip:focus{top:12px}

/* Focus: 2px black outline with a 2px white gap, visible on every color */
:focus-visible{outline:2px solid #000000;outline-offset:2px;box-shadow:0 0 0 2px #FFFFFF}
main:focus-visible{outline-offset:-2px;box-shadow:none}
/* Headings receive focus on screen changes for screen readers; they are not controls, so no outline */
h1:focus,h1:focus-visible{outline:none;box-shadow:none}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:4px;font:inherit;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer}
.btn-main{background:#077A82;color:#FFFFFF;border:1px solid #077A82}
.btn-main:hover{background:#055A60;border-color:#055A60;color:#FFFFFF}
.btn-sec{background:#FFFFFF;color:#000000;border:1px solid #000000}
.btn-sec:hover{background:#EEEEEE;color:#000000}
.btn[aria-disabled="true"]{cursor:default}
/* Locked assessment Submit: disabled, muted, no hover change */
.btn-main:disabled,.btn-main:disabled:hover{background:#E6E6E6;border-color:#8C8C8C;color:#595959;cursor:default}
.tag{display:inline-block;font-size:0.875rem;font-weight:600;line-height:1.4;border:1px solid #000000;border-radius:4px;padding:0 8px;white-space:nowrap}

/* Page frame */
.app{min-height:100vh;display:flex;flex-direction:column}
.bar-inner{max-width:1200px;margin:0 auto;padding:12px 16px}
.site-header{position:sticky;top:0;z-index:20;background:#FFFFFF;border-bottom:1px solid #000000}
.site-footer{position:sticky;bottom:0;z-index:20;background:#FFFFFF;border-top:1px solid #000000}
.header-inner{display:flex;flex-direction:column;gap:10px}
.header-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px}
.course-title{font-weight:600}
.header-buttons{display:flex;flex-wrap:wrap;gap:8px}
.footer-nav{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.footer-nav .nav-next{margin-left:auto}

/* Progress bar */
.prog-wrap{padding:0 14px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}
.prog{position:relative;flex:1 1 240px;min-width:0;height:54px}
.prog-track{position:absolute;left:0;right:0;top:8px;height:12px;border:2px solid #000000;border-radius:2px;background:#FFFFFF;overflow:hidden}
.prog-fill{height:100%;width:0;background:#077A82}
.prog-fill.has-fill{border-right:2px solid #000000}
.prog-markers{list-style:none;margin:0;padding:0}
.prog-markers li{position:absolute;top:0;transform:translateX(-14px);display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.pmark{width:28px;height:28px;border-radius:50%;border:2px solid #000000;background:#FFFFFF;display:flex;align-items:center;justify-content:center}
.prog-markers li.cur .pmark{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px #000000}
.plabel{font-size:0.875rem;line-height:1.5;white-space:nowrap}
.prog-markers li.cur .plabel{font-weight:600}
.pnow{display:none;font-size:0.875rem;font-weight:600;white-space:nowrap}

/* Main content */
main{flex:1;width:100%;display:flex;flex-direction:column}
.screen{width:100%;max-width:760px;margin:0 auto;padding:32px 16px 64px;display:flex;flex-direction:column;gap:28px}
.screen-text{gap:16px}
main p,main legend{max-width:70ch}
.screen-h1{font-size:1.75rem;font-weight:600;line-height:1.25}
h2{font-size:1.25rem;font-weight:600;line-height:1.35}

/* Title screen */
.title-band{background:linear-gradient(135deg,#055A60 0%,#077A82 100%);color:#FFFFFF}
.title-band-inner{max-width:760px;margin:0 auto;padding:56px 16px 60px;display:flex;flex-direction:column;gap:8px}
.title-band h1{font-size:2.75rem;font-weight:600;line-height:1.15;color:#FFFFFF}
.title-sub{font-size:1.25rem;line-height:1.4;color:#FFFFFF}
.welcome{border:2px solid #000000;border-radius:4px;padding:16px 20px;display:flex;flex-direction:column;gap:12px;margin-bottom:8px}
.welcome-buttons{display:flex;flex-wrap:wrap;gap:8px}

/* Scene */
.banner{display:block;width:100%;height:auto;aspect-ratio:2048 / 768;object-fit:cover;border-radius:4px}
.banner-missing{background:#0AB7C2}
.scene{display:flex;flex-direction:column;gap:16px;padding-top:8px}
.line{display:flex;align-items:flex-start;gap:12px}
.avatar{flex:none;width:40px;height:40px;border-radius:50%;border:2px solid #000000;display:flex;align-items:center;justify-content:center;font-size:0.875rem;font-weight:600}
.bubble{background:#E7F8F9;color:#000000;border-radius:4px 16px 16px 16px;padding:10px 16px;max-width:600px;min-width:0}
.speaker{font-size:0.875rem;font-weight:600}

/* Section headings: action icon before the name */
.screen-h1.with-icon{display:flex;align-items:center;gap:10px}
.screen-h1.with-icon svg{flex:none}

/* The Four Actions */
.screen-wide{max-width:960px}
.screen-framework{gap:20px}
.lead{font-size:1.25rem;font-weight:600;line-height:1.35}
.actions{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.actions li{border:1px solid #000000;border-radius:4px;padding:20px 16px;display:flex;flex-direction:column;gap:12px}
.actions svg{flex:none}
/* Action names: semibold 20px headings, smaller than the 28px screen heading */
.actions .action-h{font-size:1.25rem;font-weight:600;line-height:1.3;margin-bottom:-6px}
.after-actions{margin-top:8px}
@media (max-width:800px){.actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.actions{grid-template-columns:minmax(0,1fr)}}

/* Reflection */
.screen-narrow{max-width:720px;padding:48px 16px 80px;gap:24px}
.field-group{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.field-group label{font-weight:600}
.field{padding:8px 12px;border:1px solid #000000;border-radius:4px;background:#FFFFFF;color:#000000;font:inherit;font-size:1rem;line-height:1.5;width:100%}
textarea.field{resize:vertical;min-height:160px}

/* Chat thread */
.chat{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}

/* Timeline: horizontal, vertical on narrow screens */
.timeline-wrap{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 12px}
.timeline li{position:relative;padding-top:30px}
.timeline li::before{content:"";position:absolute;z-index:1;left:0;top:0;width:20px;height:20px;border-radius:50%;background:#0AB7C2;border:2px solid #000000}
.timeline li.to-next::after{content:"";position:absolute;left:10px;top:6px;width:calc(100% + 12px);height:8px;background:#077A82;border-top:2px solid #000000;border-bottom:2px solid #000000}
.timeline .day{font-weight:600}
@media (max-width:640px){
  .timeline{grid-template-columns:minmax(0,1fr)}
  .timeline li{padding:0 0 16px 32px}
  .timeline li:last-child{padding-bottom:0}
  .timeline li::before{top:2px}
  .timeline li.to-next::after{left:6px;top:12px;width:8px;height:100%;border:0;border-left:2px solid #000000;border-right:2px solid #000000}
}

/* What to remember card */
.remember{background:#FFFFFF;color:#000000;border:2px solid #000000;border-radius:4px;overflow:hidden}
.remember-head{background:#0AB7C2;border-bottom:2px solid #000000;padding:10px 20px}
.remember h2{display:flex;align-items:center;gap:10px}
.remember h2 svg{flex:none}
.remember ul{margin:0;padding:20px 20px 20px 40px;display:flex;flex-direction:column;gap:10px;max-width:calc(70ch + 60px)}
.remember .source{font-size:0.875rem;font-weight:400}

/* Unnamed people: white circle, person icon */
.avatar-unnamed{background:#FFFFFF;color:#000000}

/* Calendar card */
.cal-card{border:1px solid #000000;border-radius:4px;padding:14px 16px;display:flex;align-items:flex-start;gap:12px;max-width:420px}
.cal-card svg{flex:none;margin-top:2px}
.cal-title{font-weight:600}

/* Story close */
.story-text{display:flex;flex-direction:column;gap:16px}

/* Feedback extras */
.line-plain{display:flex;align-items:flex-start;gap:12px}
.line-plain .speaker{font-size:0.875rem;font-weight:600}

/* Results and Close screens: heading on the deep teal band */
.page-band .title-band-inner{padding:32px 16px 36px}
.page-band h1{font-size:1.75rem;line-height:1.25}
.verdict-icon.info{background:#077A82}
.result-h:focus,.result-h:focus-visible{outline:none;box-shadow:none}

/* Certificate and summary preview */
.record{border:2px solid #077A82;border-radius:4px;padding:32px 28px;display:flex;flex-direction:column;gap:8px}
.record-logo{font-weight:700;font-size:1.25rem}
.record-title{font-weight:600;font-size:1.25rem;margin-top:12px}
.record-name{font-weight:600;font-size:1.75rem;margin-top:16px}
.record .record-result{margin-top:12px}
.topics{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.download{align-self:flex-start}

/* Before You Finish */
.close-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:12px;max-width:70ch}
.close-list .source{font-size:0.875rem;font-weight:400}
.close-list a{display:inline;min-height:24px}
.check-field{display:flex;align-items:flex-start;gap:12px;margin-top:8px;max-width:70ch}
.check-field input{width:24px;height:24px;margin:2px 0 0;accent-color:#000000;flex:none}

/* Course Complete survey */
.survey{display:flex;flex-direction:column;gap:24px}
.rating{margin:0;padding:0;border:0;min-width:0}
.rating legend{padding:0;margin-bottom:8px;max-width:70ch;font-weight:600}
.scale{display:flex;flex-wrap:wrap;gap:8px}
.scale label{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid #000000;border-radius:4px;cursor:pointer}
.scale label:has(input:checked){font-weight:600;border-width:2px;padding:0 13px}
.scale input{width:20px;height:20px;margin:0;accent-color:#000000;flex:none}

/* Finish and its message, in the footer */
.finish-wrap{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.finish-msg{font-weight:600;text-align:right}
.finish-msg:empty{display:none}
.finish-msg:focus,.finish-msg:focus-visible{outline:none;box-shadow:none}

/* Decision card */
.decision{margin-top:16px;border:2px solid #000000;border-radius:4px;overflow:hidden}
.decision-head{background:#FF7A59;border-bottom:2px solid #000000;padding:10px 20px}
.decision-head h2{color:#000000}
.decision fieldset{margin:0;border:0;padding:20px;display:flex;flex-direction:column;gap:10px;min-width:0}
.decision legend{padding:0;float:left;width:100%;font-size:1.25rem;font-weight:600;line-height:1.35}
.decision .err{font-weight:600}
.decision .err:empty{display:none}
.opt{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px 12px;padding:14px 16px;border:1px solid #000000;border-radius:4px;background:#FFFFFF;cursor:pointer;color:#000000}
.opt:hover{background:#EEEEEE}
.opt.locked{cursor:default}
.opt.locked:hover{background:#FFFFFF}
.opt.checked{font-weight:600;border-width:2px;padding:13px 15px}
.opt:has(input:focus-visible){outline:2px solid #000000;outline-offset:2px;box-shadow:0 0 0 2px #FFFFFF}
.opt input{width:20px;height:20px;margin:2px 0 0;accent-color:#000000;flex:none}
.opt input:focus-visible{outline:none;box-shadow:none}
.opt-text{flex:1;min-width:0}
.decision .submit{align-self:flex-start;margin-top:6px}

/* Feedback card */
.feedback{border:2px solid #000000;border-radius:4px;background:#FFFFFF;padding:20px;display:flex;flex-direction:column;gap:12px}
.verdict{display:flex;align-items:center;gap:10px}
.verdict-icon{flex:none;width:32px;height:32px;border-radius:50%;border:2px solid #000000;display:flex;align-items:center;justify-content:center}
.verdict-icon.good{background:#0AB7C2}
.verdict-icon.notbest{background:#FF7A59}

/* Dialogs */
.dlg{width:min(640px,calc(100vw - 32px));max-height:calc(100vh - 48px);padding:0;border:2px solid #000000;border-radius:4px;color:#000000;background:#FFFFFF;font-family:'Source Sans 3',sans-serif;font-size:1rem;line-height:1.5}
.dlg::backdrop{background:rgba(0,0,0,0.55)}
.dlg-head{position:sticky;top:0;background:#FFFFFF;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:14px 24px;border-bottom:1px solid #000000}
.dlg-body{padding:16px 24px 24px}
.dlg-body .guide-title{font-size:1.25rem;font-weight:600;margin:0 0 6px}
.dlg-body h4{font-size:1rem;font-weight:600;margin:20px 0 6px}
.dlg-body p{margin:0 0 10px;max-width:70ch}
.dlg-body ul{margin:0 0 10px;padding-left:20px}
.dlg-body a{display:inline-block;min-height:24px}
.sec-list{list-style:none;margin:0;padding:0}
.sec-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;padding:10px 0;border-bottom:1px solid #000000}
.sec-name{display:inline-flex;align-items:center;gap:8px}
.sec-row a{font-weight:600;min-height:24px;display:inline-flex;align-items:center}
.sec-restart{margin-top:16px}

/* Pop-ups (alert dialogs) */
.popup{width:min(440px,calc(100vw - 32px))}
.popup-body{padding:24px;display:flex;flex-direction:column;gap:12px}
.popup-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
#top:focus{outline:none;box-shadow:none}

/* story scenes. Setting banner, chat window (1A), step-by-step reveal. */
.setting{display:block;width:100%;height:112px;border:2px solid #000000;border-radius:4px;background:#E7F8F9}
.chat-window{border:2px solid #000000;border-radius:12px;overflow:hidden;background:#FFFFFF}
.chat-window-bar{display:flex;align-items:center;gap:6px;height:28px;padding:0 14px;background:#077A82;border-bottom:2px solid #000000}
.chat-window-bar span{width:10px;height:10px;border-radius:50%;background:#FFFFFF;border:1px solid #000000}
.chat-window .chat{padding:20px 16px;gap:14px}
.chat-window-input{display:flex;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid #000000;background:#E7F8F9}
.chat-window-field{flex:1;height:32px;border:1px solid #000000;border-radius:16px;background:#FFFFFF}
.chat-window-input svg{flex:none}
.chat-continue{align-self:flex-start}
@keyframes story-fade-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.chat-reveal li,.reveal-item,.reveal-line,.chat-continue{animation:story-fade-in .4s ease-out both}
.decision-in{animation:story-fade-in .3s ease-out both}
#dec-h:focus,#dec-h:focus-visible{outline:none;box-shadow:none}
@media (max-width:480px){.setting{height:72px}}

/* story scenes and assessment. The result (consequence and feedback) in a plain card */
.result-card{display:flex;flex-direction:column;gap:12px;background:#FFFFFF;border:1px solid #CCCCCC;border-left:4px solid #077A82;border-radius:4px;padding:16px 20px}
/* The consequence, in its own light teal box above the feedback card */
.consequence-box{background:#E7F8F9;color:#000000;border-radius:4px;padding:16px 20px}

/* Narrow or zoomed screens: icons only on the bar, current stage named beside it;
   header and footer scroll with the page so they never cover content. */
@media (max-width:720px){
  .plabel{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  .prog{height:32px}
  .pnow{display:inline}
}
@media (max-width:720px),(max-height:520px){
  .site-header,.site-footer{position:static}
}
@media (max-width:480px){
  .prog{height:26px}
  .prog-track{top:5px}
  .prog-markers li{transform:translateX(-11px)}
  .pmark{width:22px;height:22px}
  .pmark svg{width:12px;height:12px}
  .title-band h1{font-size:2rem}
  .title-band-inner{padding:40px 16px 44px}
  .dlg-head{padding:12px 16px}
  .dlg-body{padding:16px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
}
