*,*:before,*:after{box-sizing:border-box}:root{--color-dark: #141413;--color-light: #faf9f5;--color-mid-gray: #b0aea5;--color-light-gray: #e8e6dc;--accent-orange: #d97757;--accent-orange-hover: #c4674a;--accent-blue: #6a9bcc;--accent-blue-hover: #5a87b5;--accent-teal: #4a9fa5;--accent-teal-hover: #3a8a90;--accent-green: #788c5d;--accent-green-hover: #677a4f;--accent-purple: #9b7db8;--bg-color: var(--color-light);--bg-surface: #ffffff;--bg-surface-alt: var(--color-light-gray);--text-primary: var(--color-dark);--text-secondary: #6b6963;--text-muted: var(--color-mid-gray);--accent-primary: var(--accent-orange);--accent-primary-hover: var(--accent-orange-hover);--color-success: #788c5d;--color-success-light: rgba(120, 140, 93, .1);--color-success-border: rgba(120, 140, 93, .3);--color-warning: #d4a843;--color-warning-light: rgba(212, 168, 67, .1);--color-warning-border: rgba(212, 168, 67, .3);--color-danger: #c75450;--color-danger-light: rgba(199, 84, 80, .1);--color-danger-border: rgba(199, 84, 80, .3);--color-info: var(--accent-blue);--color-info-light: rgba(106, 155, 204, .1);--color-info-border: rgba(106, 155, 204, .3);--viz-1: var(--accent-orange);--viz-2: var(--accent-blue);--viz-3: var(--accent-green);--viz-4: #9b7db8;--viz-5: #d4a843;--viz-6: #5ba3a3;--font-heading: "Poppins", "Arial", sans-serif;--font-body: "Lora", "Georgia", serif;--font-mono: "Fira Code", "Consolas", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--line-height-tight: 1.25;--line-height-normal: 1.6;--line-height-relaxed: 1.75;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2.5rem;--spacing-xl: 4rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-round: 50%;--border-light: 1px solid var(--color-light-gray);--border-medium: 1px solid var(--color-mid-gray);--shadow-sm: 0 1px 2px rgba(20, 20, 19, .05);--shadow-md: 0 2px 8px rgba(20, 20, 19, .08);--shadow-lg: 0 4px 16px rgba(20, 20, 19, .1);--shadow-focus: 0 0 0 3px rgba(217, 119, 87, .3);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--content-max-width: 52rem;--page-max-width: 72rem;--lesson-padding: var(--spacing-md)}@media(max-width:768px){:root{--spacing-xs: .375rem;--spacing-sm: .75rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2.5rem;--lesson-padding: var(--spacing-sm)}}collapsible-section,problem-generator,find-the-error{display:block}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-color);margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:var(--line-height-tight);color:var(--text-primary);margin-top:0}h1{font-size:var(--text-4xl);margin-bottom:var(--spacing-md)}h2{font-size:var(--text-3xl);margin-bottom:var(--spacing-sm)}h3{font-size:var(--text-2xl);margin-bottom:var(--spacing-sm)}h4{font-size:var(--text-xl);margin-bottom:var(--spacing-xs)}p{margin-top:0;margin-bottom:var(--spacing-sm)}a{color:var(--accent-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-primary-hover);text-decoration:underline}img{max-width:100%;height:auto}code{font-family:var(--font-mono);font-size:.9em;background-color:var(--bg-surface-alt);padding:.15em .4em;border-radius:var(--radius-sm)}pre{font-family:var(--font-mono);font-size:var(--text-sm);background-color:var(--color-dark);color:var(--color-light);padding:var(--spacing-md);border-radius:var(--radius-md);overflow-x:auto}pre code{background:none;padding:0;color:inherit}table{width:100%;border-collapse:collapse;margin-bottom:var(--spacing-md);font-size:var(--text-sm)}th,td{padding:var(--spacing-xs) var(--spacing-sm);text-align:left;border-bottom:var(--border-light)}th{font-family:var(--font-heading);font-weight:600;font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.table-wrapper th{text-transform:none;letter-spacing:normal;font-style:normal}hr.gradient{border:none;height:1px;background:linear-gradient(to right,transparent,var(--color-mid-gray),transparent);margin:var(--spacing-xl) auto;width:80%}.lesson-header{text-align:center;padding:var(--spacing-xl) var(--lesson-padding) var(--spacing-lg);max-width:var(--content-max-width);margin:0 auto}.lesson-header h1{font-size:var(--text-3xl);margin-bottom:var(--spacing-xs)}.lesson-meta{color:var(--text-secondary);font-size:var(--text-sm)}.lesson-meta strong{font-family:var(--font-heading)}.progress-bar{position:sticky;top:0;z-index:50;display:flex;gap:2px;padding:var(--spacing-xs) var(--lesson-padding);max-width:var(--content-max-width);margin:0 auto var(--spacing-md);overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}.progress-bar::-webkit-scrollbar{display:none}.progress-bar:before{content:"";position:absolute;inset:0 0 0 50%;transform:translate(-50%);width:100vw;background:var(--bg-color);box-shadow:0 2px 12px #0000000f;z-index:-1;pointer-events:none}.progress-bar button{flex:1 0 5.5rem;padding:var(--spacing-xs) var(--spacing-xs);font-family:var(--font-heading);font-size:var(--text-xs);font-weight:500;color:var(--text-muted);background:var(--bg-surface);border:var(--border-light);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.progress-bar button:hover{background:var(--bg-surface-alt);color:var(--text-primary)}.progress-bar button.visited{background:var(--color-success-light);color:var(--color-success);border-color:var(--color-success-border)}.progress-bar button.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);font-weight:700;box-shadow:0 0 0 2px #d9775759,0 2px 8px #d9775740;transform:translateY(-1px);z-index:1;position:relative}@media(max-width:768px){.progress-bar button{font-size:.65rem;padding:.35rem .25rem;flex-basis:4.5rem}}.section{max-width:var(--content-max-width);margin:0 auto var(--spacing-sm);padding:0 var(--lesson-padding)}.section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-surface);border:var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);user-select:none}.section-header:hover{background:var(--bg-surface-alt)}.section-header h2{margin:0;font-size:var(--text-xl)}.chevron{font-size:var(--text-lg);transition:transform var(--transition-normal);color:var(--text-muted)}.section.open .chevron{transform:rotate(180deg)}.section-content{display:none;padding:var(--spacing-md);background:var(--bg-surface);border:var(--border-light);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md)}.section.open .section-content{display:block}mjx-container[jax=CHTML][display=true]{display:block!important;text-align:left!important;margin:.75em 0!important}.definition-box{background:var(--bg-surface);border-left:4px solid var(--accent-primary);padding:var(--spacing-md);margin-bottom:var(--spacing-md);border-radius:0 var(--radius-md) var(--radius-md) 0;box-shadow:var(--shadow-sm)}.definition-box h4{font-family:var(--font-heading);color:var(--accent-primary);margin-bottom:var(--spacing-xs)}.reading-toolkit{background:var(--color-info-light);border:1px solid var(--color-info-border);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.misconception-trap{background:var(--color-warning-light);border:1px solid var(--color-warning-border);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.misconception-trap:before{content:"⚠️ Common Trap";display:block;font-family:var(--font-heading);font-weight:600;font-size:var(--text-sm);color:var(--color-warning);margin-bottom:var(--spacing-xs)}.callout{padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.callout.info{background:var(--color-info-light);border:1px solid var(--color-info-border)}.callout.success{background:var(--color-success-light);border:1px solid var(--color-success-border)}.callout.warning{background:var(--color-warning-light);border:1px solid var(--color-warning-border)}.callout.danger{background:var(--color-danger-light);border:1px solid var(--color-danger-border)}.validate-select{display:block;position:relative;max-width:100%}.validate-select select{font-family:var(--font-body);font-size:var(--text-base);padding:var(--spacing-xs) var(--spacing-sm);border:2px solid var(--color-light-gray);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast);-webkit-appearance:none;appearance:none;padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23b0aea5' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;max-width:100%;width:100%;box-sizing:border-box}.validate-select select:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.validate-select select.correct{border-color:var(--color-success);background-color:var(--color-success-light)}.validate-select select.incorrect{border-color:var(--color-danger);background-color:var(--color-danger-light)}.distractor-rationale{font-size:var(--text-sm);color:var(--color-danger);margin-top:var(--spacing-xs);display:none}.distractor-rationale.visible{display:block}.ai-explain{margin-top:var(--spacing-sm)}.ai-explain-btn{padding:.45rem .9rem;border:2px solid var(--color-info-border);border-radius:var(--radius-md);background:var(--color-info-light);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--transition-fast)}.ai-explain-btn:hover:not(:disabled){border-color:var(--color-info)}.ai-explain-btn:disabled{cursor:default;opacity:.7}.ai-explain-text{margin:.5rem 0 0;padding:.7rem .9rem;border-left:3px solid var(--color-info);border-radius:var(--radius-sm);background:var(--color-info-light);font-size:var(--text-sm);line-height:1.55;color:var(--text-primary)}.ai-explain-note{margin:.3rem 0 0;font-size:var(--text-xs);color:var(--text-muted)}.account-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.95rem 1rem;border:2px solid var(--color-light-gray);border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-body);font-weight:600;font-size:1.05rem;cursor:pointer;box-sizing:border-box;text-decoration:none;transition:border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast)}.account-btn:hover{border-color:var(--accent-primary)}.account-btn:active{transform:scale(.99)}.account-btn--primary{border:none;background:var(--accent-primary);color:var(--bg-surface);font-family:var(--font-heading);font-weight:700}.account-btn:disabled{opacity:.6;cursor:default}.account-status{min-height:1.3rem;margin:.4rem 0 0;font-size:.95rem;color:var(--text-secondary)}.account-status.is-error{color:var(--color-danger)}.account-status.is-success{color:var(--color-success)}.account-fineprint{margin:.6rem 0 0;font-size:.85rem;line-height:1.5;color:var(--text-muted)}.course-subheading{margin:.7rem 0 0;font-family:var(--font-heading);font-size:.95rem;color:var(--text-secondary)}.mastery-item{display:flex;flex-direction:column;gap:.15rem}.mastery-item+.mastery-item{margin-top:.45rem}.mastery-item-head{display:flex;align-items:baseline;gap:.55rem;font-size:.92rem}.mastery-lesson-title{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mastery-row{display:flex;align-items:center;gap:.6rem;font-size:.92rem}.mastery-label{flex:none}.mastery-bar{flex:1;height:.55rem;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 18%,transparent);overflow:hidden}.mastery-fill{height:100%;border-radius:999px}.mastery-fill--strong{background:var(--color-success)}.mastery-fill--developing{background:var(--color-warning)}.mastery-fill--needs-work{background:var(--color-danger)}.feynman-chat{display:flex;flex-direction:column;gap:.6rem;margin-top:.4rem}.feynman-log{display:flex;flex-direction:column;gap:.5rem;max-height:340px;overflow-y:auto;padding:.2rem 0}.feynman-msg{max-width:88%;padding:.55rem .8rem;border-radius:var(--radius-lg);font-size:.95rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.feynman-msg.is-student{align-self:flex-end;background:color-mix(in srgb,var(--accent-primary) 12%,var(--bg-surface))}.feynman-msg.is-examiner{align-self:flex-start;background:color-mix(in srgb,var(--color-light-gray) 45%,var(--bg-surface))}.feynman-form{display:flex;gap:.5rem;align-items:flex-end}.feynman-input{flex:1;min-width:0;padding:.7rem .8rem;border:2px solid var(--color-light-gray);border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-body);font-size:.95rem;resize:vertical}.feynman-input:focus-visible{outline:none;border-color:var(--accent-primary)}.feynman-form .account-btn,.feynman-finish{width:auto;flex:none;align-self:flex-end}.feynman-verdict{margin:0;font-weight:700}.feynman-verdict.is-passed{color:var(--color-success)}.feynman-verdict.is-needs-work{color:var(--color-warning)}.feynman-summary{margin:0;font-size:.95rem;line-height:1.55}.feynman-rubric-label{font-weight:600;font-size:.95rem}.feynman-list-heading{margin:.4rem 0 0;font-family:var(--font-heading);font-size:.95rem}.feynman-list{margin:.2rem 0 0;padding-left:1.2rem;font-size:.92rem;line-height:1.55}.feynman-report{display:flex;flex-direction:column;gap:.55rem}.feynman-report .account-btn{width:auto;align-self:flex-start}.feynman-lesson [hidden]{display:none!important}.feynman-lesson{display:flex;flex-direction:column;gap:.6rem;margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md);border:1px solid color-mix(in srgb,var(--accent-primary) 35%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--accent-primary) 5%,var(--bg-surface))}.feynman-lesson-heading{margin:0;font-family:var(--font-heading);font-size:var(--text-lg);color:var(--text-primary)}.feynman-lesson-intro{margin:0;font-size:var(--text-sm);line-height:var(--line-height-normal);color:var(--text-secondary)}.feynman-lesson>.account-btn{align-self:flex-start;width:auto}.feynman-prompt{margin-top:var(--spacing-sm)}.feynman-prompt textarea,.scratch-pad{width:100%;box-sizing:border-box;padding:var(--spacing-sm);border:var(--border-light, 1px solid #e8e6dc);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-base);margin-top:var(--spacing-sm);resize:vertical}textarea.reflection{width:100%;min-height:6rem;padding:var(--spacing-sm);font-family:var(--font-body);font-size:var(--text-base);border:2px solid var(--color-light-gray);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary);resize:vertical;transition:border-color var(--transition-fast)}textarea.reflection:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.char-counter{font-size:var(--text-xs);color:var(--text-muted);text-align:right;margin-top:.25rem}.confidence-slider{margin:var(--spacing-md) 0}.confidence-slider input[type=range]{width:100%;height:6px;-webkit-appearance:none;appearance:none;background:var(--color-light-gray);border-radius:3px;outline:none}.confidence-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:var(--accent-primary);border-radius:var(--radius-round);cursor:pointer;box-shadow:var(--shadow-md)}.confidence-slider .slider-labels{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--spacing-xs)}.prediction-checkpoint{background:var(--bg-surface-alt);border:2px dashed var(--accent-blue);padding:var(--spacing-md);border-radius:var(--radius-md);margin:var(--spacing-md) 0;text-align:center}.prediction-checkpoint button{margin-top:var(--spacing-sm)}.path-selector{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin:var(--spacing-md) 0}.path-option{padding:var(--spacing-md);background:var(--bg-surface);border:2px solid var(--color-light-gray);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);text-align:center}.path-option:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-md)}.path-option.selected{border-color:var(--accent-primary);background:#d977570d;box-shadow:var(--shadow-md)}.path-option h3{color:var(--accent-primary);margin-bottom:var(--spacing-xs)}.path-content{display:none}.path-content.active{display:block}@media(max-width:768px){.path-selector{grid-template-columns:1fr}}.retrieval-checkpoint{background:var(--color-success-light);border:1px solid var(--color-success-border);padding:var(--spacing-md);border-radius:var(--radius-md);margin:var(--spacing-md) 0}.retrieval-checkpoint label{display:block;position:relative;padding-left:1.5rem;margin-bottom:var(--spacing-xs);cursor:pointer;font-size:var(--text-sm);line-height:1.6}.retrieval-checkpoint input[type=checkbox]{position:absolute;left:0;top:.25em;accent-color:var(--color-success)}.practice-problem{background:var(--bg-surface);border:var(--border-light);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md);position:relative}.problem-variant{display:none}.problem-variant.active{display:block}.regenerate-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:500;color:var(--accent-blue);background:var(--color-info-light);border:1px solid var(--color-info-border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);margin-top:var(--spacing-sm)}.regenerate-btn:hover{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.generator-error{color:var(--text-secondary);font-style:italic;font-size:.9rem;padding:var(--spacing-sm) 0}.find-the-error{background:var(--bg-surface);border:var(--border-light);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md);position:relative}.find-the-error .fte-prompt{font-family:var(--font-heading);font-weight:600;font-size:var(--text-lg);color:var(--text-primary);margin-bottom:var(--spacing-sm)}.fte-notepad{background:#fffef9;border:2px solid var(--color-light-gray);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md);position:relative;box-shadow:var(--shadow-sm)}.fte-notepad-header{display:flex;align-items:center;gap:var(--spacing-xs);font-family:var(--font-heading);font-weight:600;font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-xs);border-bottom:1px dashed var(--color-light-gray)}.fte-notepad-header .fte-student-icon{font-size:var(--text-lg)}.fte-step{display:flex;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;align-items:baseline;transition:background var(--transition-fast);border-radius:var(--radius-sm)}.fte-step-label{font-family:var(--font-heading);font-weight:600;font-size:var(--text-sm);color:var(--text-muted);min-width:5.5rem;flex-shrink:0}.fte-step-content{flex:1;font-size:var(--text-base)}.fte-step.fte-error-step{background:var(--color-danger-light);padding-left:var(--spacing-xs);padding-right:var(--spacing-xs);border-left:3px solid var(--color-danger)}.fte-step.fte-correct-step{background:var(--color-success-light);padding-left:var(--spacing-xs);padding-right:var(--spacing-xs);border-left:3px solid var(--color-success)}.fte-options{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.fte-option{display:flex;align-items:flex-start;gap:var(--spacing-xs);padding:var(--spacing-sm);background:var(--bg-surface);border:2px solid var(--color-light-gray);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);user-select:none}.fte-option:hover{border-color:var(--accent-blue);background:var(--color-info-light)}.fte-option input[type=radio]{margin-top:.2em;accent-color:var(--accent-primary);flex-shrink:0}.fte-option-text{font-size:var(--text-sm);line-height:var(--line-height-normal)}.fte-option.fte-selected-correct{border-color:var(--color-success);background:var(--color-success-light)}.fte-option.fte-selected-incorrect{border-color:var(--color-danger);background:var(--color-danger-light)}.fte-option.fte-reveal-correct{border-color:var(--color-success);background:var(--color-success-light)}.fte-feedback{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--line-height-normal);display:none;margin-bottom:var(--spacing-sm)}.fte-feedback.visible{display:block}.fte-feedback.correct{background:var(--color-success-light);border:1px solid var(--color-success-border);color:var(--color-success)}.fte-feedback.incorrect{background:var(--color-danger-light);border:1px solid var(--color-danger-border);color:var(--color-danger)}.fte-check-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:#fff;background:var(--accent-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.fte-check-btn:hover{background:var(--accent-primary-hover);box-shadow:var(--shadow-md)}.fte-check-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.fte-notepad:before{display:none}.fte-step{flex-direction:column;gap:.25rem}.fte-step-label{min-width:unset}}.stepped-problem{display:block;background:var(--bg-surface);border:var(--border-light);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.sp-stem{font-size:var(--text-base);margin-bottom:var(--spacing-md)}.sp-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-md)}.sp-step{border-left:3px solid var(--color-light-gray);padding-left:var(--spacing-md)}.sp-step-prompt{font-family:var(--font-heading);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.sp-step-num{display:block;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:var(--spacing-xs)}.sp-options{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.sp-option{text-align:left;font-size:var(--text-sm);line-height:var(--line-height-normal);color:var(--text-primary);padding:var(--spacing-sm);background:var(--bg-surface);border:2px solid var(--color-light-gray);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.sp-option:hover:not(:disabled){border-color:var(--accent-blue);background:var(--color-info-light)}.sp-option:disabled{cursor:default}.sp-option.sp-chosen-correct,.sp-option.sp-reveal-correct{border-color:var(--color-success);background:var(--color-success-light)}.sp-option.sp-chosen-incorrect{border-color:var(--color-danger);background:var(--color-danger-light)}.te-entry{margin-top:.55rem}.te-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem}.te-field{display:flex;flex-direction:column;gap:.2rem}.te-field-label{font-size:.8rem;color:var(--text-muted)}.te-input{width:9rem;padding:.6rem .8rem;border:2px solid var(--color-light-gray);border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-mono);font-size:.95rem;transition:border-color var(--transition-fast)}.te-input:focus-visible{outline:none;border-color:var(--accent-primary)}.te-input:disabled{opacity:.85}.te-input.is-correct{border-color:var(--color-success);background:color-mix(in srgb,var(--color-success) 10%,var(--bg-surface))}.te-input.is-wrong{border-color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 8%,var(--bg-surface))}.te-hint{margin:.4rem 0 0;font-size:.82rem;color:var(--text-muted)}.te-check{padding:.5rem .9rem;border:2px solid var(--color-light-gray);border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-body);font-weight:600;font-size:.9rem;cursor:pointer;transition:border-color var(--transition-fast)}.te-check:hover:not(:disabled){border-color:var(--accent-primary)}.te-check:disabled{cursor:default;opacity:.6}.sp-rationale,.pg-rationale{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--line-height-normal);margin-bottom:var(--spacing-sm)}.sp-rationale.correct,.pg-rationale.correct{background:var(--color-success-light);border:1px solid var(--color-success-border);color:var(--color-success)}.sp-rationale.incorrect,.pg-rationale.incorrect{background:var(--color-danger-light);border:1px solid var(--color-danger-border);color:var(--color-danger)}.sp-summary{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);background:var(--color-info-light);border:1px solid var(--accent-blue);font-family:var(--font-heading);font-weight:600;font-size:var(--text-sm)}.sp-mode-prompt{font-family:var(--font-heading);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.sp-mode-btns{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.sp-mode-btn{flex:1 1 220px;display:flex;flex-direction:column;gap:var(--spacing-xs);text-align:left;padding:var(--spacing-md);background:var(--bg-surface);border:2px solid var(--color-light-gray);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.sp-mode-btn:hover{border-color:var(--accent-blue);background:var(--color-info-light)}.sp-mode-title{font-family:var(--font-heading);font-weight:600;color:var(--text-primary)}.sp-mode-desc{font-size:var(--text-sm);line-height:var(--line-height-normal);color:var(--text-muted)}.sp-breakdown-btn{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-heading);font-weight:600;font-size:var(--text-sm);color:var(--text-primary);background:var(--bg-surface);border:2px solid var(--accent-blue);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.sp-breakdown-btn:hover{background:var(--color-info-light)}.viz-container{background:var(--bg-surface);border:var(--border-light);border-radius:var(--radius-md);padding:var(--spacing-md);margin:var(--spacing-md) 0;overflow:hidden}.viz-interactive{min-height:200px;display:flex;align-items:center;justify-content:center}.viz-controls{display:flex;gap:var(--spacing-xs);flex-wrap:wrap;margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:var(--border-light)}.viz-controls input[type=range]{accent-color:var(--accent-primary)}.viz-caption{font-size:var(--text-sm);color:var(--text-secondary);font-style:italic;margin-top:var(--spacing-sm)}button,.btn{font-family:var(--font-heading);font-weight:500;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.btn-primary{display:inline-block;background:var(--accent-primary);color:#fff;padding:var(--spacing-xs) var(--spacing-md);font-size:var(--text-sm);margin-bottom:var(--spacing-sm);text-decoration:none}.btn-primary:hover{background:var(--accent-primary-hover);box-shadow:var(--shadow-md);text-decoration:none;color:#fff}.btn-secondary{display:inline-block;background:var(--bg-surface);color:var(--text-primary);padding:var(--spacing-xs) var(--spacing-md);font-size:var(--text-sm);border:var(--border-medium);margin-bottom:var(--spacing-sm);text-decoration:none}.btn-secondary:hover{background:var(--bg-surface-alt);text-decoration:none;color:var(--text-primary)}.btn-sm{padding:.25rem .75rem;font-size:var(--text-xs)}details{margin-bottom:var(--spacing-sm)}details summary{font-family:var(--font-heading);font-weight:500;color:var(--accent-primary);cursor:pointer;padding:var(--spacing-xs) 0;transition:color var(--transition-fast)}details summary:hover{color:var(--accent-primary-hover)}details[open] summary{margin-bottom:var(--spacing-xs)}.language-switcher{position:fixed;top:var(--spacing-sm);right:var(--spacing-sm);z-index:1000;display:flex;gap:4px;background:var(--bg-surface);border:var(--border-light);border-radius:var(--radius-sm);padding:2px;box-shadow:var(--shadow-md)}.language-switcher a{padding:.25rem .75rem;font-family:var(--font-heading);font-size:var(--text-xs);font-weight:600;text-decoration:none;border-radius:calc(var(--radius-sm) - 2px);transition:all var(--transition-fast)}.language-switcher a.active{background:var(--accent-primary);color:#fff}.language-switcher a:not(.active){color:var(--text-muted)}.language-switcher a:not(.active):hover{color:var(--text-primary);background:var(--bg-surface-alt)}.dashboard-pill{position:fixed;top:calc(var(--spacing-sm) + 2.6rem);right:var(--spacing-sm);z-index:1000;display:flex;align-items:center;gap:.45rem;padding:.25rem .75rem;background:var(--bg-surface);border:var(--border-light);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);font-family:var(--font-heading);font-size:var(--text-xs);font-weight:600;color:var(--accent-primary);text-decoration:none}.dashboard-pill:hover{color:var(--text-primary)}.dashboard-pill-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.2rem;height:1.2rem;padding:0 .3rem;border-radius:999px;background:var(--accent-primary);color:#fff;font-size:.7rem;line-height:1}.course-back-link{max-width:var(--content-max-width);margin:var(--spacing-md) auto 0;padding:0 var(--spacing-md)}.course-back-link a{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:500;color:var(--text-muted);text-decoration:none;transition:color var(--transition-fast)}.course-back-link a:hover{color:var(--accent-primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{.progress-bar,.language-switcher,.regenerate-btn,.confidence-slider,.path-selector,.fte-check-btn{display:none!important}.section-content{display:block!important}body{font-size:11pt;color:#000;background:#fff}}.competency-card{background:var(--bg-surface);border:var(--border-light);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-normal),transform var(--transition-normal);display:flex;flex-direction:column}.competency-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.competency-card--capstone{border-color:#5ba3a366;background:linear-gradient(135deg,var(--bg-surface) 0%,rgba(91,163,163,.04) 100%)}.competency-card.card--mastered{border-color:var(--color-success-border);background:linear-gradient(135deg,var(--bg-surface) 0%,var(--color-success-light) 100%)}.card-header{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);border-bottom:var(--border-light);cursor:pointer}.card-id-badge{font-family:var(--font-heading);font-size:var(--text-xs);font-weight:700;color:#fff;padding:.3em .65em;border-radius:var(--radius-sm);flex-shrink:0;letter-spacing:.04em;margin-top:2px}.card-title-block{flex:1;min-width:0}.card-title{font-size:var(--text-base);font-weight:600;margin-bottom:.2rem;line-height:var(--line-height-tight)}.card-prereq-summary{font-family:var(--font-heading);font-size:var(--text-xs);color:var(--text-muted)}.card-header-actions{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.card-mastered-badge{display:none;font-family:var(--font-heading);font-size:var(--text-xs);font-weight:600;color:var(--color-success);background:var(--color-success-light);border:1px solid var(--color-success-border);padding:.2em .55em;border-radius:999px;white-space:nowrap}.card--mastered .card-mastered-badge{display:inline-flex;align-items:center;gap:3px}.card-toggle{background:none;border:none;padding:.25rem;color:var(--text-muted);cursor:pointer;flex-shrink:0;border-radius:var(--radius-sm);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.card-toggle:hover{background:var(--bg-surface-alt);color:var(--text-primary)}.card--expanded .card-toggle svg{transform:rotate(180deg)}.card-outcome{padding:var(--spacing-sm) var(--spacing-md);flex:1}.outcome-label{display:block;font-family:var(--font-heading);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.35rem}.card-outcome p{font-size:var(--text-sm);line-height:var(--line-height-normal);color:var(--text-primary);margin-bottom:0}.card-body{border-top:var(--border-light);padding:var(--spacing-md);background:var(--bg-color);display:flex;flex-direction:column;gap:var(--spacing-sm)}.card-body[hidden]{display:none}.card-section-title{font-family:var(--font-heading);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:.5rem}.pitfall-title{color:var(--color-warning)}.card-pitfalls{background:var(--color-warning-light);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);padding:var(--spacing-sm)}.card-lesson-link{display:inline-block;font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--accent-primary);text-decoration:none;transition:color var(--transition-fast)}.card-lesson-link:hover{color:var(--accent-primary-dark, var(--accent-primary));text-decoration:underline}.prereq-chips{display:flex;flex-wrap:wrap;gap:6px}.prereq-chip{font-family:var(--font-heading);font-size:var(--text-xs);font-weight:600;padding:.2em .6em;border-radius:999px;border:1.5px solid var(--chip-color, var(--color-light-gray));color:var(--chip-color, var(--text-muted));background:transparent}.prereq-none{--chip-color: var(--color-success);color:var(--color-success);border-color:var(--color-success-border);background:var(--color-success-light)}.prereq-all{--chip-color: #5ba3a3;color:#5ba3a3;border-color:#5ba3a366;background:#5ba3a314}.content-list{margin:0;padding-left:1.2rem;list-style:none}.content-list li{font-size:var(--text-sm);line-height:var(--line-height-relaxed);color:var(--text-primary);position:relative;padding-left:.5rem}.content-list li+li{margin-top:.3rem}.content-list li:before{content:"–";position:absolute;left:-1rem;color:var(--text-muted)}.standard-tags{display:flex;flex-wrap:wrap;gap:.4rem}.standard-tag{display:inline-flex;align-items:center;padding:.25em .6em;font-family:var(--font-heading);font-size:var(--text-xs);font-weight:700;color:var(--tag-color, var(--text-secondary));background:transparent;border:1.5px solid var(--tag-color, var(--color-light-gray));border-radius:999px;cursor:pointer;transition:all var(--transition-fast);letter-spacing:.03em;opacity:.65}.standard-tag:hover{opacity:1;background:color-mix(in srgb,var(--tag-color, var(--color-light-gray)) 12%,transparent)}.standard-tag.is-mastered{opacity:1;color:var(--color-success);background:var(--color-success-light);border-color:var(--color-success-border)}.mt-sm{margin-top:var(--spacing-sm)}.p-sm{padding:var(--spacing-sm)}.notation-tabs{display:flex;gap:.5rem;margin-bottom:var(--spacing-sm)}.notation-tab{padding:.4rem 1rem;border:var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface);cursor:pointer;font-family:var(--font-heading);font-size:var(--text-sm);transition:background .15s,color .15s}.notation-tab.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.notation-panel{padding:var(--spacing-sm);border:var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface)}.notation-bad{color:var(--color-danger);font-style:italic}.secant-viz-wrapper{margin:var(--spacing-md) 0;border:var(--border-light);border-radius:var(--radius-md);padding:var(--spacing-sm);background:var(--bg-surface)}#secant-svg{display:block;width:100%;max-width:440px;margin:0 auto}.secant-controls{text-align:center;margin-top:.75rem}.secant-controls label{display:block;margin-bottom:.5rem;font-family:var(--font-heading);font-size:var(--text-sm);color:var(--text-secondary)}.secant-controls input[type=range]{width:80%;max-width:300px;accent-color:var(--accent-primary)}.slope-readout{margin-top:.5rem;font-family:var(--font-heading);font-size:var(--text-base);color:var(--text-primary)}.prereq-link-wrap{margin:.6rem 0 0}.prereq-link{display:inline-block;padding:.4rem .8rem;border:2px solid var(--color-info);border-radius:var(--radius-lg);color:var(--color-info);font-weight:600;font-size:.85rem;text-decoration:none}.prereq-link:hover{background:color-mix(in srgb,var(--color-info) 10%,transparent)}.prereq-skipped{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0;font-size:.88rem;color:var(--text-muted)}.prereq-show{padding:.3rem .7rem;border:1px solid var(--color-light-gray);border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--text-secondary);font-family:var(--font-body);font-size:.82rem;cursor:pointer}.prereq-show:hover{border-color:var(--accent-primary);color:var(--text-primary)}
