.source-catalog{margin-top:42px;padding-top:30px;border-top:1px solid var(--ui-line)}
.source-catalog h2{font-size:25px;letter-spacing:-.6px;margin:0 0 10px}.source-catalog>p,.source-count{color:var(--ui-dim);font-size:14px;line-height:1.6}
.source-filters{display:grid;grid-template-columns:1.5fr 1fr;gap:12px;margin-top:20px}.source-filters label{font-size:12px;color:var(--ui-dim);display:grid;gap:7px}.source-filters :is(input,select){width:100%;min-width:0;background:var(--ui-raised);color:var(--ui-text);border:1px solid var(--ui-line);padding:11px;border-radius:10px;font:inherit;font-size:14px}
.source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.source-grid a{display:flex;flex-direction:column;gap:10px;padding:20px;border:1px solid var(--ui-line);border-radius:14px;background:var(--ui-raised);text-decoration:none;color:var(--ui-text)!important;transition:border-color .15s,transform .15s}.source-grid a:hover{border-color:var(--ui-accent);transform:translateY(-2px)}.source-grid strong{font-size:16px}.source-grid a>span:last-child{font-size:13px;line-height:1.65;color:var(--ui-dim)}.source-kicker{color:var(--ui-accent);font:600 11px/1.5 var(--ui-font);letter-spacing:.7px}
.source-gaps{margin:22px 0 0;color:var(--ui-dim);font-size:13px;line-height:1.7}.source-gaps summary{cursor:pointer;padding:12px 0}
.source-heading{display:flex;gap:24px;align-items:center;justify-content:space-between;margin:12px 0 24px}.source-heading h1{font-size:28px;letter-spacing:-.6px;margin:8px 0}.source-heading a{font-size:13px}.source-heading>p{font-size:12px;line-height:1.8;max-width:320px;color:var(--ui-dim)}
.source-layout{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(400px,1.7fr) minmax(240px,1fr);gap:16px;align-items:start}.source-task,.source-observe{padding:20px;line-height:1.7}.source-layout h2{font-size:15px;margin:20px 0 10px}.source-layout p{font-size:14px}.source-layout details{margin-top:14px;border-top:1px solid var(--ui-line);padding-top:12px}.source-layout summary{font-size:13px;cursor:pointer;font-weight:600}.source-layout pre{white-space:pre;overflow:auto;max-height:350px;font:12px/1.6 Consolas,monospace;background:var(--ui-raised);color:var(--ui-text);padding:12px;border-radius:8px}
.source-prediction{display:grid;gap:7px;margin-top:24px;font-size:13px;color:var(--ui-dim)}.source-prediction textarea{font:13px/1.6 var(--ui-font);min-height:96px;width:100%;resize:vertical;border-radius:10px;border:1px solid var(--ui-line);background:var(--ui-raised);color:var(--ui-text);padding:10px}.source-note{font-size:12px!important;color:var(--ui-dim);line-height:1.7;overflow-wrap:anywhere}
.source-editor .editor-wrap{height:540px}.source-editor #sourceEditor{background:var(--ui-panel);color:var(--ui-text);caret-color:var(--ui-accent);color-scheme:dark;font:13px/1.6 Consolas,monospace;white-space:pre}.source-editor .practice-line-numbers{border-radius:0;padding:14px 8px;line-height:1.6;font-size:13px;max-height:none}.source-editor>.source-note{margin:10px 16px}.source-editor>details{padding:14px 16px;margin:0}.source-editor .practice-actions{align-items:center}.source-editor .practice-actions a{font-size:12px}.source-editor #sourceExport{background:var(--ui-button);color:#fff;border-color:var(--ui-button);padding:10px 16px}.source-editor #sourceExport:disabled{opacity:.6}
.source-answers{display:grid;gap:8px}.source-answers button{background:var(--ui-raised);border:1px solid var(--ui-line);color:var(--ui-text);padding:10px 12px;border-radius:10px;text-align:left;cursor:pointer;font:13px/1.5 var(--ui-font)}.source-answers button:hover{border-color:var(--ui-accent)}#sourceQuizFeedback{font-size:13px;padding:0;color:var(--ui-dim)}#sourceQuizFeedback[data-correct=true]{color:var(--pv-green)}.source-check{display:flex;align-items:start;gap:8px;margin:12px 0;font-size:13px}.source-check input{margin-top:5px;accent-color:var(--ui-accent)}.source-next{display:block;font-size:13px;border-top:1px solid var(--ui-line);margin-top:20px;padding-top:16px}
html[data-ui-theme=light] #sourceEditor{color-scheme:light}
.source-check-result{margin:0 16px 12px;padding:12px 14px;border:1px solid var(--ui-line);border-radius:10px;background:var(--ui-raised);overflow-wrap:anywhere}.source-check-result p{margin:4px 0;font-size:13px}.source-check-result[data-status=pass]{border-color:var(--ui-accent)}.source-check-result button{display:block;text-align:left;color:var(--ui-text);background:transparent;border:0;padding:6px 0;font:12px/1.6 Consolas,monospace;cursor:pointer;max-width:100%;overflow-wrap:anywhere}.source-editor #sourceCheck{background:var(--ui-button);color:white}.source-editor #sourceExport{background:var(--ui-raised);color:var(--ui-text);border-color:var(--ui-line)}
@media(max-width:1150px){.source-layout{grid-template-columns:minmax(240px,.8fr) minmax(400px,1.4fr)}.source-observe{grid-column:1/-1}.source-heading{align-items:start}}
@media(max-width:760px){.source-layout{display:flex;flex-direction:column}.source-layout>*{width:100%;min-width:0}.source-heading{display:block}.source-heading h1{font-size:24px}.source-grid{grid-template-columns:1fr}.source-filters{grid-template-columns:1fr}.source-editor .editor-wrap{height:370px}.source-task,.source-observe{padding:16px}.source-editor .editor-header{flex-wrap:wrap}.source-editor #sourceEditor{font-size:12px}.source-editor .practice-line-numbers{font-size:12px}.source-catalog h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.source-grid a{transition:none}.source-grid a:hover{transform:none}}
