@import url('https://fonts.googleapis.com/css2?family=Barlow+Semi+Condensed:wght@500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap');

/* Shared visual language. Motion, signal truth and simulation geometry stay in the game. */
:root{
  --paper:#f5f4ee;--card:#fffefa;--white:#fffefa;--ink:#24372f;--forest:#243e35;
  --muted:#5d685f;--line:#cbd0c4;--lime:#d0eb8a;--green:#477333;
  --pale:#eaf0e1;--soft:#eaf0e1;--amber:#96562e;--orange:#a24b28;--sand:#f2e7d6;
  --body:'Source Sans 3','Trebuchet MS',sans-serif;
  --display:'Barlow Semi Condensed','Franklin Gothic Medium',sans-serif;
  --mono:Menlo,Consolas,monospace;
  --play-ink:#243e35;--play-edge:#b9c3b5;--play-yellow:#d0eb8a;
  --play-panel:#fffefa;--play-line:#cbd0c4
}
body[data-plctrain-surface]{font-family:var(--body);color:var(--ink);background:var(--paper)}
body[data-plctrain-surface] :is(h1,h2,h3){font-family:var(--display);font-weight:600;letter-spacing:-.015em}
body[data-plctrain-surface] :is(button,input,select,textarea){font-family:var(--body)}
body[data-plctrain-surface] :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #a85a2b;outline-offset:4px}
body[data-plctrain-surface] :is(.brand,.logo){font-family:var(--display);font-weight:600;letter-spacing:-.02em}
body[data-plctrain-surface] :is(.brand-mark,.brandmark,.logomark){border-radius:3px;transform:none;box-shadow:none}
body[data-plctrain-surface] .eyebrow{font-family:var(--body);font-size:12px;font-weight:600;letter-spacing:.08em}
body[data-plctrain-surface] :is(button,.button,.primary,.secondary){border-radius:3px;box-shadow:none}
body[data-plctrain-surface] :is(.panel,.card,.sidecard,.mission,.course-card,.passport-card,.badge,.teaching,.workbench,.bench,.lab,.factory,.debrief){border-radius:3px;box-shadow:none}
body[data-plctrain-surface] :is(.primary,.button.lime){background:var(--forest);color:#fffefa;border-color:var(--forest)}
body[data-plctrain-surface] :is(.primary,.button.lime):hover:not(:disabled){background:#345347;border-color:#345347}
body[data-plctrain-surface] :is(.live-dot,.floor-badge-dot,.title-period){display:none}
body[data-plctrain-surface] :is(.art-sticker,.chapter-badge){box-shadow:none;transform:none}
body[data-plctrain-surface] :is(.arriving .operator-avatar,.arriving blockquote){animation:none}
body[data-plctrain-surface] :is(.course-card,.mission,.move-card):hover{transform:none}
body[data-plctrain-surface] .confetti{display:none}

/* Account forms: one clear form, not a pile of cards. */
body[data-plctrain-surface="member"]{font-size:17px}
body[data-plctrain-surface="member"] .mast{max-width:1240px;margin:auto;padding:23px 32px;background:transparent}
body[data-plctrain-surface="member"] .brand{font-size:28px;gap:11px}
body[data-plctrain-surface="member"] .brand span{width:36px;height:39px;border-radius:3px}
body[data-plctrain-surface="member"] main{padding:68px 32px 80px}
body[data-plctrain-surface="member"] h1{font-size:clamp(36px,5vw,54px);line-height:1.08;max-width:600px;letter-spacing:-.015em}
body[data-plctrain-surface="member"] h2{font-size:30px}
body[data-plctrain-surface="member"] .auth-layout{gap:70px;animation:none;grid-template-columns:1.05fr 1fr}
body[data-plctrain-surface="member"] .auth-layout>.panel{border:0;border-left:1px solid var(--line);border-radius:0;padding:0 0 0 40px;background:transparent;margin-top:9px;box-shadow:none}
body[data-plctrain-surface="member"] .intro>p{font-size:18px;max-width:440px;line-height:1.65}
body[data-plctrain-surface="member"] .lesson-card{border-top:1px solid var(--line);padding-top:21px;margin-top:37px}
body[data-plctrain-surface="member"] .lesson-card strong{font:600 25px var(--display)}
body[data-plctrain-surface="member"] .lesson-card p{font-size:16px}
body[data-plctrain-surface="member"] :is(input,.primary,.secondary){border-radius:3px;min-height:48px}
body[data-plctrain-surface="member"] input{background:var(--white);border-color:#8d9d8b}
body[data-plctrain-surface="member"] .notice{border:1px solid #c6d4b8;background:#eaf0e1;padding:15px 17px}
body[data-plctrain-surface="member"] .form-links{font-size:15px;gap:15px}
body[data-plctrain-surface="member"] .help{font-size:15px}
body[data-plctrain-surface="member"] .featured{background:#eaf0e1;color:var(--ink)}
body[data-plctrain-surface="member"] .featured :is(p,.eyebrow){color:var(--muted)}
body[data-plctrain-surface="member"] .featured .primary{background:var(--forest);color:var(--white)}
body[data-plctrain-surface="member"] .welcome{animation:none}
body[data-plctrain-surface="member"] .badge{border-radius:3px}
body[data-plctrain-surface="member"] footer{background:transparent;font-size:13px;text-align:left;padding-left:max(32px,calc((100vw - 1176px)/2))}

/* Conveyor game: make the machine dominant and the controls legible. */
body[data-plctrain-surface="rescue"] .topbar{min-height:75px;border-bottom:1px solid var(--line)}
body[data-plctrain-surface="rescue"] .brand{font-size:29px;gap:10px}
body[data-plctrain-surface="rescue"] .brand-mark{display:grid;width:35px;height:38px}
body[data-plctrain-surface="rescue"] .top-actions{gap:8px;flex-wrap:wrap}
body[data-plctrain-surface="rescue"] .top-actions button{font-family:var(--body);font-size:14px;min-height:40px;background:transparent;border-color:var(--line);padding:8px 13px}
body[data-plctrain-surface="rescue"] .xp-pill{background:none;border:0;border-left:1px solid var(--line);border-radius:0;box-shadow:none;padding:5px 0 5px 15px;font-family:var(--body);font-size:13px}
body[data-plctrain-surface="rescue"] .xp-pill strong{font-size:19px;font-weight:600}
body[data-plctrain-surface="rescue"] .game-title h1{font-size:39px;letter-spacing:-.02em}
body[data-plctrain-surface="rescue"] .game-title .eyebrow{font-size:11px;letter-spacing:.07em}
body[data-plctrain-surface="rescue"] .mission-bar{padding:23px 0}
body[data-plctrain-surface="rescue"] .job-dot{border-radius:3px;background:transparent;box-shadow:none;width:32px;height:32px}
body[data-plctrain-surface="rescue"] .job-dot.current{background:var(--forest);color:var(--white);border-color:var(--forest);box-shadow:none}
body[data-plctrain-surface="rescue"] .rescue-grid{border:1px solid var(--play-edge);border-radius:3px;box-shadow:none;background:var(--white)}
body[data-plctrain-surface="rescue"] .machine-bar{padding:11px 17px;font:500 12px var(--body);letter-spacing:.04em}
body[data-plctrain-surface="rescue"] .machine-stage{background:#e9ede3}
body[data-plctrain-surface="rescue"] .model-svg{filter:none}
body[data-plctrain-surface="rescue"] .model-svg .selected-outline{stroke-dasharray:none;stroke-width:3}
body[data-plctrain-surface="rescue"] .model-svg #part-sensor.selected .selected-outline{filter:none}
body[data-plctrain-surface="rescue"] .quest-number{background:#f5f7ef;border:1px solid #aebda4;border-radius:3px;box-shadow:none;color:var(--ink)}
body[data-plctrain-surface="rescue"] .quest-hud>div{background:var(--white);box-shadow:none;border-radius:3px;padding:8px 11px}
body[data-plctrain-surface="rescue"] .quest-label{font-family:var(--body);letter-spacing:.04em;font-size:11px}
body[data-plctrain-surface="rescue"] .quest-hud strong{font-size:16px;font-weight:600}
body[data-plctrain-surface="rescue"] .quest-hud #quest-hint{font-family:var(--body);font-size:12px}
body[data-plctrain-surface="rescue"] .floor-badge{border:0;background:none;border-radius:0;color:var(--muted);padding:0;font-size:10px}
body[data-plctrain-surface="rescue"] .scene-pin{box-shadow:none;border-radius:3px;border-color:#8b9f7e;background:var(--white)}
body[data-plctrain-surface="rescue"] .scene-pin.active{box-shadow:none;background:var(--forest)}
body[data-plctrain-surface="rescue"] .scene-pin .pin-symbol{border:0;background:none;border-radius:0}
body[data-plctrain-surface="rescue"] .scene-pin.suggested{outline:2px solid #7a995e;outline-offset:2px}
body[data-plctrain-surface="rescue"] .machine-message{background:#eef1e9;border-color:var(--line);font-size:13px;color:var(--ink);padding:10px 17px}
body[data-plctrain-surface="rescue"] .operator-bar{background:var(--white);border-color:var(--line);gap:8px;padding:12px}
body[data-plctrain-surface="rescue"] .operator-bar button{font-family:var(--body);font-size:14px;min-height:44px;border:1px solid #a8b59e;border-radius:3px;padding:10px 14px}
body[data-plctrain-surface="rescue"] .operator-bar #request-button{background:var(--forest);border-color:var(--forest);color:var(--white)}
body[data-plctrain-surface="rescue"] .operator-bar #downstream-button{background:#e8efde;color:var(--ink)}
body[data-plctrain-surface="rescue"] .operator-note{font-size:12px}
body[data-plctrain-surface="rescue"] .lesson-panel{border-top:1px solid var(--line);background:var(--white)}
body[data-plctrain-surface="rescue"] .interaction-heading{background:#edf0e7;color:var(--ink);border-right:1px solid var(--line)}
body[data-plctrain-surface="rescue"] .interaction-heading:after{display:none}
body[data-plctrain-surface="rescue"] .interaction-heading .eyebrow{color:var(--muted);font-family:var(--body);font-size:11px;letter-spacing:.06em}
body[data-plctrain-surface="rescue"] .interaction-heading h2{font-size:30px}
body[data-plctrain-surface="rescue"] .interaction-heading p{font-size:14px;color:var(--muted);line-height:1.5}
body[data-plctrain-surface="rescue"] .interaction-heading .interaction-step{font-family:var(--body);font-size:11px;color:var(--muted);border-color:var(--line)}
body[data-plctrain-surface="rescue"] .interaction-body{padding:24px}
body[data-plctrain-surface="rescue"] .interaction-body :is(.choices>.choice,.full){border:1px solid #a8b59e;border-radius:3px;min-height:44px;font-size:15px}
body[data-plctrain-surface="rescue"] .interaction-body :is(.small.muted,.fact,.clue){font-size:13px!important}
body[data-plctrain-surface="rescue"] .operator-portrait{background:#e8eddf;border:1px solid #aab99a;border-radius:3px;padding-top:9px}
body[data-plctrain-surface="rescue"] .operator-card{background:#edf0e6;border:1px solid var(--line);border-radius:3px}
body[data-plctrain-surface="rescue"] .dialogue-line{font-size:19px;line-height:1.55;font-weight:400}
body[data-plctrain-surface="rescue"] :is(.dialogue-options button,.dialogue-bottom button){font-size:14px;min-height:42px;border:1px solid var(--line);border-radius:3px}
body[data-plctrain-surface="rescue"] :is(.dialogue-answer,.operator-answer){border-left:0;border-top:1px solid var(--line);background:none;border-radius:0;font-size:15px;padding:12px 0}
body[data-plctrain-surface="rescue"] :is(.report-note,.practice-hint,.practice-isolation-note){font-size:12px;line-height:1.6}
body[data-plctrain-surface="rescue"] .work-order-facts span{background:none;padding:0 15px 0 0;border-radius:0;font-size:12px}
body[data-plctrain-surface="rescue"] .mentor-bar{background:#eef0e6;border-color:var(--line);padding:15px 18px;gap:15px}
body[data-plctrain-surface="rescue"] .mentor-mark{border:0;border-radius:0;background:none;box-shadow:none;font-family:var(--body);font-size:11px}
body[data-plctrain-surface="rescue"] .mentor-copy strong{font-size:15px;font-weight:600}
body[data-plctrain-surface="rescue"] .mentor-copy p{font-size:14px;color:var(--muted)}
body[data-plctrain-surface="rescue"] .mentor-actions button{font-family:var(--body);font-size:13px;min-height:40px;border-radius:3px;border-width:1px}
body[data-plctrain-surface="rescue"] :is(.move-card,.prediction-row,.readout,.maintenance,.practice-workbench){box-shadow:none;border-radius:3px;background:#f5f6ef;border-width:1px}
body[data-plctrain-surface="rescue"] .move-card{min-height:115px;border-bottom-width:1px}
body[data-plctrain-surface="rescue"] .move-card strong{font-size:25px}
body[data-plctrain-surface="rescue"] .move-card small{font-size:13px}
body[data-plctrain-surface="rescue"] .move-icon{border:0;background:none;padding:0;border-radius:0;justify-content:flex-start}
body[data-plctrain-surface="rescue"] .ladder-panel{background:#f8f9f2;border-color:var(--line)}
body[data-plctrain-surface="rescue"] :is(.ld-wrap,.zone-rung){box-shadow:none;border-radius:2px}
body[data-plctrain-surface="rescue"] .zone-card{border-radius:2px;box-shadow:none;background:var(--white)}
body[data-plctrain-surface="rescue"] .zone-card.zone-running{background:#edf4df}
body[data-plctrain-surface="rescue"] .zone-rung p{font-size:12px}
body[data-plctrain-surface="rescue"] .zone-rung code{font-size:10px}
body[data-plctrain-surface="rescue"] .practice-shortcuts{background:var(--white);border-color:var(--line);padding:15px 17px}
body[data-plctrain-surface="rescue"] .practice-shortcuts strong{font:600 20px var(--display)}
body[data-plctrain-surface="rescue"] .practice-shortcuts>div>span{font-size:13px}
body[data-plctrain-surface="rescue"] :is(.practice-tool-buttons button,.practice-tool-buttons summary,.practice-option,.practice-isolation,.practice-test-button){font-family:var(--body);font-size:14px;min-height:44px;border-width:1px;border-radius:3px;box-shadow:none}
body[data-plctrain-surface="rescue"] .practice-workbench>p{font-size:15px}
body[data-plctrain-surface="rescue"] .practice-option-selected{background:#e7eedc}
body[data-plctrain-surface="rescue"] .practice-range-labels{font-size:12px}
body[data-plctrain-surface="rescue"] .practice-playback{font-family:var(--body);font-size:13px;line-height:1.5;background:#f2f4eb;border-color:var(--line)}
body[data-plctrain-surface="rescue"] .scenario-challenge .scenario{font-family:var(--body);font-size:12px}
body[data-plctrain-surface="rescue"] .scenario-challenge .scenario strong{font-size:12px}
body[data-plctrain-surface="rescue"] .scenario-challenge .prediction-buttons button{font-size:13px;min-height:40px}
body[data-plctrain-surface="rescue"] .scenario-challenge .test-result{font-size:12px}
body[data-plctrain-surface="rescue"] .coach-strip{background:#edf1e6;border-color:var(--line)}
body[data-plctrain-surface="rescue"] .coach-content p{font-size:15px}
body[data-plctrain-surface="rescue"] .win-game .win{background:var(--forest);color:var(--white)}
body[data-plctrain-surface="rescue"] .footer{font-size:12px;line-height:1.6}

/* Existing library and course content keep their navigation and lesson structure. */
body[data-plctrain-surface="library"] :is(.hero,.academy-banner){background:#e6ebdd;color:var(--ink);border-radius:3px;box-shadow:none}
body[data-plctrain-surface="library"] :is(.hero h1,.academy-banner h1){font-size:clamp(36px,4vw,54px);font-weight:600;letter-spacing:-.02em}
body[data-plctrain-surface="library"] .hero p{color:var(--muted);font-size:16px}
body[data-plctrain-surface="library"] .hero-copy{padding:30px}
body[data-plctrain-surface="library"] :is(.art-sticker,.eyebrow .dot,.wordmark>span){display:none}
body[data-plctrain-surface="library"] .hero-art .machine-svg{filter:none}
body[data-plctrain-surface="library"] :is(.path-link,.course-card,.mission,.sidecard,.passport-card,.badge){background:var(--white);border-color:var(--line)}
body[data-plctrain-surface="library"] .mission-band{height:1px;background:var(--line)}
body[data-plctrain-surface="library"] :is(.mission-body p,.course-card p,.sidecard p){font-size:14px}
body[data-plctrain-surface="library"] .sidecard.dark{background:var(--forest)}
body[data-plctrain-surface="library"] :is(.category,.pill,.filter,.step,.choice,.note,.feedback,.coach-box,.permit,.review-item){border-radius:3px;box-shadow:none}
body[data-plctrain-surface="library"] .category{background:none;color:var(--muted);padding:0;font-family:var(--body)}
body[data-plctrain-surface="library"] .nav button{border-radius:3px}
body[data-plctrain-surface="library"] .nav button.active{background:#edf2e4;color:var(--ink)}
body[data-plctrain-surface="library"] .machine-panel{box-shadow:none;border-radius:3px}
body[data-plctrain-surface="library"] .scene{background:#edf0e6}
body[data-plctrain-surface="library"] :is(.hero,.course-card,.mission,.page){animation:none}
body[data-plctrain-surface="course"] :is(.continue,.stats,.module,.notice,.lesson-row,.lab,.card,.teaching){box-shadow:none;border-radius:3px}
body[data-plctrain-surface="course"] .continue{background:#e6ebdd;color:var(--ink)}
body[data-plctrain-surface="course"] .continue p{color:var(--muted)}
body[data-plctrain-surface="course"] .rail nav button[aria-current=page]{background:#edf2e4;color:var(--ink)}
body[data-plctrain-surface="course"] .brand span{border-radius:3px}
body[data-plctrain-surface="course"] .module{border-width:1px;background:var(--white)}
body[data-plctrain-surface="course"] .module .number{color:var(--muted);background:none}
body[data-plctrain-surface="chapter"] :is(.factory,.bench,.diagram,.success-panel,.choice,.status-pill,.operator,.note,.reward-tag){border-radius:3px;box-shadow:none}
body[data-plctrain-surface="chapter"] :is(.intro h1,.bench h2){letter-spacing:-.015em}
body[data-plctrain-surface="chapter"] .factory{background:#edf0e5}
body[data-plctrain-surface="chapter"] .chapter-badge{background:none;border:0;color:var(--muted)}
body[data-plctrain-surface="chapter"] .reward-seal{border-radius:3px;box-shadow:none;transform:none}
body[data-plctrain-surface="chapter"] :is(.factory-top,.bench-head){border-color:var(--line)}
body[data-plctrain-surface="chapter"] .choice:hover{transform:none}

@media(max-width:850px){
  body[data-plctrain-surface="rescue"] .topbar{flex-wrap:wrap}
  body[data-plctrain-surface="rescue"] .top-actions{gap:5px}
  body[data-plctrain-surface="rescue"] .top-actions button{font-size:12px;min-height:40px;padding:7px 10px}
  body[data-plctrain-surface="rescue"] .game-title h1{font-size:34px}
  body[data-plctrain-surface="rescue"] .mentor-copy p{font-size:13px}
  body[data-plctrain-surface="rescue"] .interaction-heading h2{font-size:27px}
  body[data-plctrain-surface="rescue"] .ladder-panel{border-width:1px}
}
@media(max-width:760px){
  body[data-plctrain-surface="member"] .mast{padding:20px}
  body[data-plctrain-surface="member"] main{padding:36px 20px 55px}
  body[data-plctrain-surface="member"] .auth-layout{grid-template-columns:1fr;gap:26px}
  body[data-plctrain-surface="member"] .auth-layout>.panel{border-left:0;border-top:1px solid var(--line);padding:27px 0 0;margin:0}
  body[data-plctrain-surface="member"] .intro>p{font-size:17px}
  body[data-plctrain-surface="member"] footer{padding-left:20px}
}
@media(max-width:600px){
  body[data-plctrain-surface="rescue"] .shell{padding:0 12px}
  body[data-plctrain-surface="rescue"] .topbar{gap:10px;padding:13px 0}
  body[data-plctrain-surface="rescue"] .brand{font-size:25px}
  body[data-plctrain-surface="rescue"] .brand-mark{display:grid;width:30px;height:33px}
  body[data-plctrain-surface="rescue"] .top-actions{width:100%;justify-content:flex-start}
  body[data-plctrain-surface="rescue"] .top-actions button{min-height:40px;font-size:12px}
  body[data-plctrain-surface="rescue"] .xp-pill{margin-left:auto;font-size:12px}
  body[data-plctrain-surface="rescue"] .mission-bar{padding:17px 0}
  body[data-plctrain-surface="rescue"] .game-title h1{font-size:32px}
  body[data-plctrain-surface="rescue"] .machine-stage,body[data-plctrain-surface="rescue"].logic-open .machine-stage{height:355px;padding-top:98px}
  body[data-plctrain-surface="rescue"] .scene-pins{inset:98px 0 0}
  body[data-plctrain-surface="rescue"] .quest-hud{max-width:calc(100% - 20px)}
  body[data-plctrain-surface="rescue"] .quest-hud strong{font-size:14px}
  body[data-plctrain-surface="rescue"] .quest-hud #quest-hint{font-size:11px;line-height:1.45}
  body[data-plctrain-surface="rescue"] .quest-label{font-size:10px}
  body[data-plctrain-surface="rescue"] .scene-pin{min-height:32px}
  body[data-plctrain-surface="rescue"] .pin-copy strong{font-size:10px}
  body[data-plctrain-surface="rescue"] .machine-message{font-size:12px;padding:10px 12px}
  body[data-plctrain-surface="rescue"] .operator-bar{gap:7px;padding:10px}
  body[data-plctrain-surface="rescue"] .operator-bar button{min-height:44px;font-size:13px;padding:9px 10px;white-space:normal}
  body[data-plctrain-surface="rescue"] .interaction-heading{border-right:0;border-bottom:1px solid var(--line);padding:20px}
  body[data-plctrain-surface="rescue"] .interaction-heading p{font-size:14px}
  body[data-plctrain-surface="rescue"] .interaction-body{padding:20px}
  body[data-plctrain-surface="rescue"] .dialogue-line{font-size:17px}
  body[data-plctrain-surface="rescue"] .mentor-bar{grid-template-columns:minmax(0,1fr);padding:15px}
  body[data-plctrain-surface="rescue"] .mentor-mark{display:none}
  body[data-plctrain-surface="rescue"] .mentor-actions{grid-column:1}
  body[data-plctrain-surface="rescue"] .mentor-copy strong{font-size:15px}
  body[data-plctrain-surface="rescue"] .mentor-actions button{min-height:40px;font-size:13px}
  body[data-plctrain-surface="rescue"] .practice-tool-buttons{gap:7px}
  body[data-plctrain-surface="rescue"] .practice-shortcuts{padding:15px}
  body[data-plctrain-surface="rescue"] .practice-playback{font-size:12px}
  body[data-plctrain-surface="rescue"] .scenario-challenge .prediction-buttons button{min-height:44px}
  body[data-plctrain-surface="rescue"] .zone-card{min-height:96px}
}
@media(prefers-reduced-motion:reduce){
  body[data-plctrain-surface] *,body[data-plctrain-surface] *:before,body[data-plctrain-surface] *:after{animation:none!important;transition:none!important}
}
