/* Phase 1 — reading-first workspace. Scoped rules preserve answer data and marking.
   Long code scrolls locally; the page itself must not be clipped to hide defects. */
:root{
 --learning-paper:#fff;--learning-bg:#f6f7fb;--learning-ink:#142b45;
 --learning-muted:#54677b;--learning-blue:#3855a8;--learning-blue-bg:#edf1ff;
 --learning-teal:#176e70;--learning-line:#d7dfed;--pki-header-size:70px;
}
.pki-menu-toggle{display:none}
.topbar .brand .name{overflow-wrap:normal;word-break:normal}
.topbar .brand .name>span{overflow-wrap:normal;word-break:normal}
.learning-workspace{max-width:1050px;margin:0 auto;color:var(--learning-ink)}
.learning-heading{display:flex;align-items:center;gap:16px;justify-content:space-between;margin-bottom:4px}
.learning-heading>div:first-child{min-width:0}
.learning-heading h1{font-size:clamp(25px,3.8vw,36px);line-height:1.15;letter-spacing:-.03em;margin:3px 0 0}
.learning-back{display:inline-flex;min-height:36px;align-items:center;gap:6px;font-size:14px;color:var(--learning-muted);text-decoration:none;font-weight:700}
.learning-heading .pki-kicker{font-size:11px;letter-spacing:.08em;color:var(--learning-blue)}
.learning-quick-actions{display:flex;align-self:center;gap:8px;flex-shrink:0}
.learning-workspace .btn{min-height:44px;font-size:15px;padding:9px 13px;font-weight:700;border-radius:12px}
.learning-workspace .learning-icon-button{width:44px;min-width:44px;height:44px;padding:10px;font-size:22px;flex-shrink:0;background:#fff}
.learning-workspace .learning-icon-button svg{width:21px;height:21px}
.learning-identity{margin:7px 0 16px;font-size:14px;color:var(--learning-muted);line-height:1.5;overflow-wrap:anywhere}
.learning-dock{position:sticky;top:var(--pki-header-size);z-index:20;padding:12px 14px 9px;background:#f6f8fffa;border:1px solid var(--learning-line);border-radius:16px;margin:0 0 16px;box-shadow:0 6px 20px #22385209;backdrop-filter:blur(10px)}
.learning-progress-label{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:14px;line-height:1.4}
.learning-progress-label b{color:var(--learning-blue)}
.learning-progress-label strong{color:var(--learning-teal);font-size:17px}
.learning-meter{height:7px;border-radius:99px;background:#dfe6f0;margin:6px 0;overflow:hidden}
.learning-meter>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3855a8,#18847d);transition:width .18s ease}
.learning-verification{display:flex;align-items:center;gap:5px;color:var(--learning-muted);font-size:12px;line-height:1.4}
.learning-verification svg{width:15px;height:15px;flex-shrink:0;color:var(--learning-teal)}
.learning-nav{display:flex;align-items:stretch;gap:8px;margin-top:9px}
.learning-workspace .learning-index-button{flex:1;min-width:0;justify-content:center;background:var(--learning-ink);border-color:var(--learning-ink);color:white;font-size:15px;line-height:1.35;gap:8px}
.learning-index-button>span{display:flex;gap:5px;flex-wrap:wrap;justify-content:center}
.learning-index-button svg{flex-shrink:0;width:18px;height:18px}
.learning-workspace .learning-report-button{background:white;white-space:nowrap;color:var(--learning-blue);gap:6px}
.learning-report-button svg{width:20px;height:20px;flex-shrink:0}
.learning-sync{display:flex;gap:7px;align-items:center;margin-top:7px;color:var(--learning-muted)}
.learning-local-dot{height:6px;width:6px;flex:0 0 6px;border-radius:50%;background:#69859c}
.learning-sync small{font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.learning-card{background:var(--learning-paper);border:1px solid var(--learning-line);border-radius:20px;box-shadow:0 12px 28px #20304b05;overflow:visible;min-width:0;scroll-margin-top:calc(var(--pki-header-size) + 190px)}
.learning-card:focus{outline:none}.learning-card:focus-visible{outline:3px solid var(--learning-blue);outline-offset:3px}
.learning-card .ex-head{padding:24px;border-radius:20px 20px 0 0;background:linear-gradient(120deg,#edf2ff,#f4fbf9);border-bottom:1px solid var(--learning-line)}
.learning-exercise-eyebrow{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:10px}
.learning-exercise-eyebrow .tag{background:white;border:1px solid #d6e0ef;color:var(--learning-blue);text-transform:uppercase;font-size:11px;letter-spacing:.035em;padding:4px 8px}
.learning-state{font-size:12px;color:var(--learning-muted);font-weight:700;line-height:1.4}
.learning-state[data-state=success]{color:#126548}.learning-state[data-state=retry]{color:#973d24}
.learning-card .ex-head h2{font-size:clamp(24px,3vw,30px);line-height:1.25;letter-spacing:-.02em;margin:0 0 12px}
.learning-card .ex-head p{font-size:18px;line-height:1.7;color:#344e66;max-width:78ch;overflow-wrap:normal}
.learning-card .ex-body{padding:6px 24px 18px;min-width:0}
.learning-card .answer-card{padding:24px 0;min-width:0}
.learning-card .answer-card+.answer-card{border-top:1px solid var(--learning-line)}
.learning-card .answer-info{font-size:13px;color:var(--learning-muted);line-height:1.5;display:flex;gap:8px;flex-wrap:wrap;margin-bottom:9px}
.learning-card .answer-card>h3{font-size:19px;line-height:1.6;margin-bottom:12px;color:var(--learning-ink);overflow-wrap:normal}
.learning-card .qc-help{font-size:15px;line-height:1.65;color:var(--learning-muted);margin:10px 0 14px}
.learning-card .qc-choice{font-size:17px;line-height:1.6;min-height:54px;padding:12px;border-radius:12px;background:#fff;align-items:center;gap:10px;min-width:0}
.learning-card .qc-choice input{width:19px;height:19px;flex:0 0 19px;accent-color:var(--learning-blue)}
.learning-card .qc-choice .qc-letter{font-size:13px;background:#edf1fa;color:#3b5270;border-radius:7px;min-width:25px}
.learning-card .qc-choice:has(input:checked){border-color:#7a95cc;box-shadow:0 0 0 1px #7a95cc;background:#f2f5ff}
.learning-card .qc-field>span{font-size:15px;line-height:1.5;margin-bottom:6px}
.learning-card .qc-field input,.learning-card .qc-field textarea,.learning-card .qc-field select{font-size:18px;min-height:48px;line-height:1.55}
.learning-card .qc-order code{font-size:16px;white-space:pre;overflow-x:auto;word-break:normal;overflow-wrap:normal;min-width:0;display:block}
.learning-card .qc-order .qc-arrows button{min-width:44px;min-height:44px}
.learning-card .qc-sort-pool button,.learning-card .qc-sort-zone button{font-size:17px;line-height:1.5;padding:12px;min-height:48px}
.learning-card .qc-sort-zone b{font-size:17px}.learning-card .qc-sort-zone{padding:14px}
.learning-card .qc-side button{font-size:16px;line-height:1.5;min-height:54px;min-width:0}
.learning-card .qc-link-summary{font-size:15px;line-height:1.6}
.learning-card .answer-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.learning-card .answer-tools .btn{min-height:46px;font-size:15px;width:auto}
.learning-card .answer-tools .btn.teal{background:var(--learning-teal);color:white;border-color:var(--learning-teal);padding-inline:20px}
.learning-card .answer-feedback{font-size:16px;line-height:1.65;border-radius:12px;padding:13px 15px}
.learning-footer{display:flex;justify-content:space-between;gap:10px;margin-top:16px}
.learning-footer .btn{width:auto;min-width:44px}
.modal-head>.spacer{display:none}
.modal-head [data-close-modal]{width:44px;min-width:44px;max-width:44px;height:44px;flex:0 0 44px;padding:10px}
.learning-tools-menu{display:grid;gap:10px}
.learning-tools-menu .btn{width:100%;justify-content:flex-start;gap:10px;min-height:50px;font-size:16px;padding:12px}
.learning-tools-menu .btn svg{width:22px;height:22px;flex-shrink:0}
.learning-filters{display:flex;flex-wrap:wrap;gap:8px;position:sticky;top:0;z-index:1;background:white;padding:0 0 10px}
.learning-filters button{min-height:44px;padding:10px 13px;font:inherit;font-weight:700;font-size:14px;min-width:44px;border:1px solid var(--learning-line);background:#f6f8fc;color:var(--learning-ink);border-radius:10px}
.learning-filters button[aria-pressed=true]{background:var(--learning-blue);color:white;border-color:var(--learning-blue)}
.learning-nav-count{font-size:14px;color:var(--learning-muted);padding-bottom:12px}
.learning-exercise-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.learning-exercise-link{width:100%;display:flex;gap:10px;align-items:center;padding:11px;background:#fff;border:1px solid var(--learning-line);border-radius:12px;text-align:left;color:var(--learning-ink);font:inherit;font-weight:600;font-size:15px;line-height:1.45;min-height:66px;min-width:0}
.learning-exercise-link.current{border:2px solid var(--learning-blue);background:#f3f5ff}
.learning-number{display:grid;place-items:center;width:36px;flex:0 0 36px;height:36px;border-radius:10px;background:#edf1f8;color:#435b76;font-size:16px;font-weight:750}
.learning-nav-title{flex:1;min-width:0;overflow-wrap:anywhere}.learning-nav-title small{display:block;margin-top:3px;color:var(--learning-muted);font-size:12px;font-weight:600}
.learning-exercise-link[data-state=success] .learning-number{background:#e5f5ed;color:#126648}
.learning-exercise-link[data-state=retry] .learning-number{background:#fff1e9;color:#983d23}
.learning-exercise-link[data-state=doing] .learning-number,.learning-exercise-link[data-state=ready] .learning-number{background:#e7efff;color:#3a57a6}
.learning-here{display:none}.learning-navigation-modal .modal{width:min(820px,100%)}
/* Preserve a program line. Long expressions stay readable at the chosen text size. */
.learning-workspace pre,.learning-workspace .code-pieces,.lesson-content .code-pair pre,.lesson-content .study-program code,.lesson-content .study-screen output{white-space:pre;overflow-wrap:normal;word-break:normal;tab-size:4}
.learning-workspace pre,.lesson-content .code-pair pre{font-size:16px;line-height:1.8;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;padding:14px 12px;border-radius:10px;scrollbar-width:thin}
.learning-workspace .question-context{margin:10px 0;background:#f3f6fc;color:#294675}
.learning-workspace .study-codebox{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}
.learning-workspace .study-code-line{width:max-content;min-width:100%;align-items:center}
.learning-workspace .code-pieces{font-size:16px;line-height:3.5;flex:none;overflow:visible}
.learning-workspace .code-slot{font-size:16px;min-height:46px;min-width:64px;line-height:1.4}
.learning-workspace .study-tokens button{font-size:16px;min-height:46px}
.learning-workspace .token-caption span,.learning-workspace .study-edit-tools small{font-size:14px;line-height:1.6}
.learning-workspace .token-caption span svg{width:18px;height:18px;flex-shrink:0}
.learning-workspace .study-trace td,.learning-workspace .study-trace th{font-size:15px}
.learning-workspace .study-trace th code{white-space:pre;word-break:normal;overflow-wrap:normal}
.learning-workspace .trace-input{font-size:17px;min-height:46px;min-width:48px}
.learning-workspace .study-table-wrap{overflow-x:auto;max-width:100%;overscroll-behavior-inline:contain}
.learning-workspace .study-trace tbody th{min-width:128px}
.learning-workspace .has-horizontal-scroll{box-shadow:inset -4px 0 0 #bcc9e6}
.learning-workspace pre:focus-visible,.learning-workspace .study-codebox:focus-visible{outline:3px solid var(--learning-blue);outline-offset:3px}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #3855a8;outline-offset:3px}
/* First readability pass for courses. Infographic enrichment is a separate audited phase. */
.lesson-content .study-pane p,.lesson-content .study-reading p{font-size:18px;line-height:1.8;overflow-wrap:normal}
.lesson-content .study-pane h2{font-size:23px;line-height:1.35}
.lesson-content .study-tabs button{font-size:15px;min-height:48px}
.lesson-content .study-program code{font-size:16px;display:block;overflow-x:auto;max-width:100%}
.lesson-content .study-program li{min-width:0}
.lesson-content .study-screen output{font-size:16px;display:block;overflow-x:auto}
@media(min-width:1050px){
 .learning-dock{display:grid;grid-template-columns:1fr 1.15fr;gap:0 28px;align-items:center;padding:14px 20px}
 .learning-nav{margin:0}.learning-sync{grid-column:1/-1;margin-top:8px}
 .learning-heading{margin-top:0}
}
@media(max-width:760px){
 .container{padding:12px 10px 32px}
 .topbar .topbar-inner{padding:10px 12px;flex-wrap:nowrap;gap:10px;position:relative}
 .topbar .brand{flex:1 1 auto;flex-basis:auto;min-width:0;gap:9px}
 .topbar .brand .name{font-size:15px;line-height:1.35;letter-spacing:-.02em}
 .topbar .brand small{font-size:11px}
 .topbar .brand .brand-mark{height:38px;width:38px;flex-basis:38px}
 .pki-menu-toggle{display:grid;place-items:center;width:44px;min-width:44px;height:44px;padding:10px;border:1px solid var(--learning-line);background:white;border-radius:12px;color:var(--learning-ink);cursor:pointer;flex-shrink:0}
 .pki-menu-toggle svg{width:21px;height:21px}
 .topbar .top-actions{display:none;position:absolute;right:10px;top:calc(100% - 1px);padding:12px;background:white;border:1px solid var(--learning-line);box-shadow:0 15px 35px #102a4526;border-radius:14px;width:min(330px,calc(100vw - 20px));max-width:calc(100vw - 20px);margin:0;z-index:40;flex-direction:column;align-items:stretch}
 .topbar .top-actions.is-open{display:flex}
 .topbar .top-actions .btn{width:100%;justify-content:flex-start;font-size:16px;min-height:48px}
 .topbar .top-actions .user-chip{display:flex;flex-wrap:wrap;width:100%;max-width:100%}
 .learning-workspace{width:100%;max-width:none}
 .learning-heading{gap:8px;align-items:center}
 .learning-heading h1{font-size:26px}.learning-heading .pki-kicker{font-size:10px}
 .learning-back{font-size:13px;min-height:30px}
 .learning-quick-actions{gap:6px}
 .learning-identity{font-size:13px;margin:6px 0 12px}
 .learning-dock{padding:10px 10px 8px;border-radius:13px;margin-bottom:12px}
 .learning-progress-label{font-size:13px}
 .learning-nav{gap:6px}.learning-nav .btn{font-size:14px;padding:8px}
 .learning-workspace .learning-icon-button{padding:10px;min-width:44px}
 .learning-nav .learning-index-button{gap:6px}
 .learning-nav .learning-index-button svg{display:none}
 .learning-nav .learning-report-button{width:44px;min-width:44px;padding:9px}
 .learning-report-button>span{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .learning-sync small{font-size:11px;line-height:1.4}
 .learning-card{border-radius:16px}
 .learning-card .ex-head{padding:16px 13px;border-radius:16px 16px 0 0}
 .learning-card .ex-head h2{font-size:24px;line-height:1.28;margin-bottom:9px}
 .learning-card .ex-head p{font-size:18px;line-height:1.7}
 .learning-card .ex-body{padding:2px 12px 12px}
 .learning-card .answer-card{padding:19px 0}
 .learning-card .answer-card>h3{font-size:18px;line-height:1.65}
 .learning-card .answer-info{font-size:12px;line-height:1.5}
 .learning-card .qc-choice{font-size:17px;line-height:1.65;padding:12px 10px}
 .learning-card .qc-help{font-size:15px;line-height:1.65}
 .learning-card .qc-side button{font-size:16px;line-height:1.5}
 .learning-exercise-map{grid-template-columns:1fr}
 .learning-navigation-modal .modal-body{padding:12px}
 .learning-navigation-modal .modal-head{padding:14px 12px}
 .learning-navigation-modal .modal-head h3{font-size:19px}
 .learning-filters{gap:5px}.learning-filters button{font-size:12px;padding:9px 10px}
 .learning-footer .btn{font-size:14px;padding:10px 12px}
 .learning-card .qc-order code{font-size:16px}
 .learning-workspace .study-codebox{padding:10px 6px}
 .learning-workspace .study-code-line{gap:8px}
 .learning-workspace .line-number{font-size:12px;min-width:18px}
 .learning-workspace .code-slot{font-size:16px;min-height:46px}
 .learning-workspace .trace-input{font-size:17px;min-height:46px}
 .learning-workspace .study-trace tbody th{min-width:126px;font-size:14px}
 .lesson-content .study-tabs{position:static;gap:5px}
 .lesson-content .study-tabs button{font-size:14px;line-height:1.35;padding:9px 4px}
 .lesson-content .study-pane p{font-size:18px;line-height:1.8}
 .lesson-content .code-pair pre{font-size:16px;line-height:1.8;padding:12px;white-space:pre}
}
@media(max-width:350px){
 .learning-heading h1{font-size:23px}.learning-heading .pki-kicker{font-size:9px;letter-spacing:.025em}
 .learning-quick-actions{flex-direction:column;gap:5px}.learning-back{min-height:32px}
 .learning-progress-label{font-size:12px}.learning-nav{gap:5px}
 .learning-index-button>span{gap:3px;font-size:13px}
 .learning-card .ex-head h2{font-size:22px}
 .learning-card .qc-choice{gap:7px}.learning-card .qc-letter{display:none}
}
@media(prefers-reduced-motion:reduce){.learning-meter>span{transition:none}.learning-dock{backdrop-filter:none}}
@media print{
 .learning-heading,.learning-identity,.learning-dock,.learning-footer,.pki-menu-toggle{display:none!important}
 .learning-card{border:0;box-shadow:none}.learning-card .ex-head{background:white}
 .learning-workspace pre{white-space:pre-wrap;overflow-wrap:normal;font-size:10pt;overflow:visible}
}
