/* Cortex Lab · trilha de projetos. */
main[data-view="ensino"] > :is(.toolbar, .statusbar, .target-strip) { display: none; }
#ensinoPanel { margin: 0 auto; max-width: 1500px; }
main[data-view="ensino"] .studio-heading { max-width: 1500px; margin-inline: auto; }
.course-home {
  width: 100%; margin-top: 17px; padding: 13px 17px; border-color: var(--ui-line);
  display: flex; align-items: center; gap: 13px; text-align: left; background: var(--ui-wash); border-radius: 9px;
}
.course-home:hover { background: var(--ui-tint); }
.course-home > i:first-child { color: var(--ui-accent); }
.course-home > i:last-child { margin-left: auto; }
.course-home strong, .course-home small { display: block; }
.course-home strong { font-size: 15px; color: var(--ui-navy); }
.course-home small { font-size: 12px; color: var(--ui-muted); font-weight: 450; }
.course-intro {
  display: flex; align-items: center; justify-content: space-between; gap: 30px;
  padding: clamp(16px,2vw,28px); border: 1px solid var(--ui-line); border-radius: 13px;
  color: var(--ui-ink); background: #fff;
}
.course-intro h2 { color: var(--ui-navy); font-weight: 620; font-size: clamp(23px,2.35vw,33px); line-height: 1.13; letter-spacing: -.048em; margin: 0 0 8px; }
.course-intro p { margin: 0; max-width: 60ch; color: var(--ui-muted); line-height: 1.55; font-size: 14px; }
.course-track-picker { padding: 0; margin: 0 0 16px; border: 0; min-inline-size: 0; }
.course-track-picker legend { padding: 0; margin-bottom: 5px; color: var(--ui-muted); font-size: 12px; }
.course-track-picker:has(input:disabled) { opacity: .75; }
.course-progress { display: flex; flex-direction: column; flex: 0 0 clamp(180px, 21%, 240px); gap: 2px; }
.course-progress > span { color: var(--ui-muted); font-size: 12px; }
.course-progress strong { font-size: 18px; font-weight: 610; color: var(--ui-navy); letter-spacing: -.03em; }
.course-progress progress {
  margin-top: 8px; appearance: none; overflow: hidden; width: 100%; height: 6px;
  border: 0; border-radius: 3px; background: var(--ui-tint); color: #538063; accent-color: #538063;
}
.course-progress progress::-webkit-progress-bar { background: var(--ui-tint); }
.course-progress progress::-webkit-progress-value { background: #538063; }
.course-progress progress::-moz-progress-bar { background: #538063; }
.course-layout {
  display: grid; align-items: start; grid-template-columns: minmax(205px, .52fr) minmax(0, 1.48fr);
  gap: clamp(13px, 1.3vw, 24px); margin-top: 18px;
}
.course-roadmap, .course-lesson { background: white; border: 1px solid var(--ui-line); border-radius: 11px; }
.course-roadmap summary {
  list-style: none; display: flex; gap: 12px; align-items: center; justify-content: space-between;
  cursor: pointer; color: var(--ui-ink); font-weight: 680; font-size: 16px; letter-spacing: -.025em; padding: 16px;
}
.course-roadmap summary::-webkit-details-marker { display: none; }
.course-roadmap summary:focus-visible, #courseTitle:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 3px; border-radius: 3px; }
.course-roadmap summary svg { width: 15px; }
.course-roadmap[open] summary svg { transform: rotate(180deg); }
.course-roadmap ol { margin: 0; padding: 0 8px 10px; list-style: none; }
.course-roadmap li { position: relative; }
.course-roadmap li + li { margin-top: 2px; }
.course-roadmap button {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 8px;
  text-align: left; color: var(--ui-muted); font-size: 13px; line-height: 1.35; font-weight: 530;
  border: 1px solid transparent; background: transparent; border-radius: 6px;
}
.course-roadmap button:hover { background: var(--ui-wash); }
.course-roadmap button[aria-current="step"] { color: var(--ui-navy); border-color: var(--ui-line); background: var(--ui-tint); font-weight: 680; }
.course-marker {
  flex: 0 0 24px; height: 24px; display: inline-grid; place-items: center;
  border-radius: 50%; border: 1px solid var(--ui-line); color: var(--ui-muted); background: var(--ui-wash);
  font: 600 11px/1 var(--mono);
}
.course-roadmap .is-done .course-marker { background: #e2efda; color: #325d3d; border-color: #adc6a6; }
.course-roadmap button[aria-current="step"] .course-marker { background: var(--ui-navy); border-color: var(--ui-navy); color: #fff; }
.course-lesson { min-width: 0; overflow: hidden; }
.course-detail-top, .course-activity { padding: clamp(18px, 2.2vw, 32px); }
.course-detail-top { border-bottom: 1px solid var(--ui-line); background: linear-gradient(125deg, #fff 25%, var(--ui-wash)); }
.course-position { color: var(--ui-accent); margin-bottom: 6px; font: 650 11px/1.45 var(--mono); }
#courseTitle { font: 650 clamp(23px, 2.25vw, 34px)/1.18 "DM Sans", sans-serif; letter-spacing: -.045em; color: var(--ui-ink); margin: 0; scroll-margin-top: 20px; }
#courseSummary { font-size: 15px; line-height: 1.55; color: var(--ui-muted); margin: 9px 0; max-width: 71ch; }
#courseConcepts { padding: 0; margin: 12px 0 17px; list-style: none; display: flex; gap: 5px; flex-wrap: wrap; }
#courseConcepts li { color: var(--ui-accent); background: var(--ui-tint); border: 1px solid var(--ui-line); border-radius: 4px; font: 560 11px/1.45 var(--mono); padding: 2px 7px; overflow-wrap: anywhere; }
.course-open { display: inline-flex; gap: 8px; align-items: center; padding: 9px 12px; }
.course-open, .course-open:hover { color: #fff; border-color: var(--ui-navy); background: var(--ui-navy); }
.course-open:hover { background: var(--ui-accent); } .course-open svg { width: 16px; height: 16px; }
.course-open[aria-busy="true"] { cursor: progress; }
#courseError { color: #962e18; margin-bottom: 0; }
.course-lesson h3 { font-size: 16px; font-weight: 680; line-height: 1.4; letter-spacing: -.025em; margin: 0 0 6px; color: var(--ui-navy); }
#courseTheory { margin-bottom: 19px; }
#courseExplanation { margin: 0; max-width: 78ch; }
#courseSteps { padding-left: 22px; margin: 0 0 18px; }
#courseSteps li, .course-activity p { font-size: 14px; line-height: 1.6; color: var(--ui-ink); overflow-wrap: anywhere; }
#courseSteps li { padding-left: 3px; margin-top: 7px; }
#courseSteps li::marker { font-weight: 650; color: var(--ui-accent); }
.course-lesson code { font-family: var(--mono); font-size: .91em; overflow-wrap: anywhere; color: var(--ui-accent); }
.course-observe { background: var(--ui-wash); border-left: 3px solid #7f9eb6; padding: 12px 15px; border-radius: 0 6px 6px 0; }
.course-activity :is(.course-observe,.course-challenge) p { margin: 0; }
.course-challenge { margin-top: 18px; }
.course-footer {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px;
  border-top: 1px solid var(--ui-line); padding: 14px clamp(18px, 2.2vw, 32px);
}
.course-finish { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 630; color: var(--ui-navy); cursor: pointer; }
.course-finish input { width: 16px; height: 16px; margin: 0; }
.course-footer > div, .course-footer button { display: inline-flex; gap: 6px; align-items: center; }
.course-footer button { padding: 6px 10px; font-size: 12px; }
.course-footer button:disabled { cursor: default; } .course-footer svg { width: 14px; }
#courseReturn { display: flex; align-items: center; gap: 9px; background: var(--ui-tint); border: 1px solid var(--ui-line); padding: 7px 12px; border-radius: 7px; margin: 0 0 10px; color: var(--ui-navy); }
#courseReturn span { font-size: 12px; font-weight: 630; line-height: 1.35; }
#courseReturn button { display: inline-flex; align-items: center; gap: 5px; flex: none; margin-left: auto; background: #fff; border-color: var(--ui-line); font-size: 12px; color: var(--ui-navy); }
#courseReturn svg { width: 15px; height: 15px; }
@media(max-width: 1000px) { .course-layout { grid-template-columns: minmax(165px, .65fr) minmax(0, 1.35fr); } }
@media(max-width: 800px) {
  .course-layout { grid-template-columns: 1fr; }
  .course-roadmap summary { padding-block: 12px; }
  .course-intro { align-items: flex-start; flex-direction: column; gap: 17px; }
  .course-progress { flex-basis: auto; width: min(100%,230px); }
}
@media(max-width: 480px) {
  .course-home { padding: 10px; }
  .course-footer > div { margin-left: auto; }
  #courseReturn { padding-inline: 7px; gap: 5px; }
  #courseReturn button { font-size: 11px; padding-inline: 6px; }
}

.course-modes {
  display: flex; flex-wrap: wrap; gap: 16px; margin: 0 0 16px;
  border-bottom: 1px solid var(--ui-line);
}
.course-modes button {
  margin: 0 0 -1px; padding: 9px 2px; color: var(--ui-muted); background: transparent;
  border: 0; border-bottom: 3px solid transparent; border-radius: 0;
  font: 600 14px/1.3 var(--sans,system-ui,sans-serif);
}
.course-modes button[aria-selected="true"] { color: var(--ui-navy); border-bottom-color: var(--ui-accent); }
.course-modes button:focus-visible, .course-examples button:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 2px; }
#ensinoPanel [hidden] { display: none !important; }
#courseTrackChoices, .course-radio-list {
  display: inline-flex; flex-wrap: wrap; max-width: 100%; gap: 3px; padding: 3px;
  background: var(--ui-wash); border: 1px solid var(--ui-line); border-radius: 7px;
}
#courseTrackChoices label, .course-radio-list label { position: relative; display: inline-flex; cursor: pointer; color: var(--ui-muted); }
#courseTrackChoices input, .course-radio-list input { position: absolute; opacity: 0; width: 1px; height: 1px; }
#courseTrackChoices label span, .course-radio-list label span { padding: 6px 10px; line-height: 1.35; border-radius: 4px; font-size: 13px; font-weight: 600; }
#courseTrackChoices label:hover span,.course-radio-list label:hover span { background: var(--ui-tint); }
#courseTrackChoices input:checked + span,.course-radio-list input:checked + span { background: var(--ui-navy); color: #fff; }
#courseTrackChoices input:focus-visible + span,.course-radio-list input:focus-visible + span { outline: 2px solid #30824e; outline-offset: 2px; }
#courseCatalog { padding: clamp(15px,2vw,28px); background: white; border: 1px solid var(--ui-line); border-radius: 11px; }
.course-catalog-heading, .course-filters { display: flex; justify-content: space-between; gap: 15px; align-items: baseline; flex-wrap: wrap; }
.course-catalog-heading h2 { font: 650 clamp(22px,2.2vw,32px)/1.25 var(--sans,system-ui,sans-serif); letter-spacing: -.035em; color: #21392b; margin: 0; }
.course-catalog-heading > span { font: 12px var(--mono); color: #586c60; }
.course-filters { align-items: flex-end; justify-content: flex-start; margin-top: 18px; }
.course-filters fieldset { margin: 0; }
.course-peripheral { display: grid; gap: 5px; font-size: 12px; color: var(--ui-muted); }
.course-peripheral select { min-height: 36px; padding: 4px 10px; background: #fff; color: #263e30; border: 1px solid #cedace; border-radius: 6px; }
#catalogCount { margin: 16px 0 8px; font-size: 13px; color: #556b5c; }
.course-examples { display: grid; grid-template-columns: repeat(auto-fill,minmax(min(250px,100%),1fr)); gap: 10px; list-style: none; margin: 0; padding: 0; }
.course-examples li { min-width: 0; }
.course-examples button {
  display: flex; flex-direction: column; align-items: flex-start; gap: 5px; width: 100%; height: 100%; padding: 14px;
  text-align: start; border-radius: 8px; border: 1px solid #d6e1d8; background: #fff;
}
.course-examples button:hover { border-color: #86a28e; background: #f6f9f4; }
.course-examples small { font: 600 10.5px/1.5 var(--mono); color: #486f56; }
.course-examples strong { font-size: 15px; color: #213e2d; }
.course-examples span { color: #4d5f52; font-size: 13px; line-height: 1.45; }
.course-examples .course-example-action { margin-top: auto; padding-top: 6px; color: #2f6443; font-size: 12px; font-weight: 650; }
@media(max-width: 600px) {
  .course-catalog-heading { gap: 3px; } .course-filters { gap: 8px; align-items: start; flex-direction: column; }
  .course-radio-list label span, #courseTrackChoices span { padding: 6px 8px; }
}

.course-pickers { display:flex; flex-wrap:wrap; align-items:flex-end; gap:9px 24px; margin-bottom:14px; }
.course-pickers fieldset { padding:0; border:0; min-width:0; margin:0; }
.course-pickers legend { margin-bottom:5px; font-size:12px; color:#52667b; }
.course-pickers #courseFamilyChoices, .course-pickers #courseTrackChoices { display:flex; flex-wrap:wrap; gap:2px; background:#f1f5f9; border-color:#cfdae6; }
.course-pickers .course-radio-list input:checked + span,.course-pickers #courseTrackChoices input:checked + span { background:#263f60; color:#fff; }
.course-pickers .course-radio-list label:hover span,.course-pickers #courseTrackChoices label:hover span { box-shadow:inset 0 0 0 1px #7591ae; }


.course-table { margin: 18px 0; overflow-x: auto; }
.course-table table { border-collapse: collapse; width: 100%; font-size: 13px; }
.course-table caption { text-align: left; font-weight: 650; margin-bottom: 6px; color: var(--ui-navy); }
.course-table th, .course-table td { padding: 7px 9px; text-align: left; border-bottom: 1px solid var(--ui-line); }
.course-table th[scope=col] { background: var(--ui-wash); }
.course-table th[scope=row], .course-table td { font: 12px/1.45 var(--mono, monospace); white-space: nowrap; }

.course-study {
  border-block: 1px solid var(--ui-line);
  margin-block: 18px;
  padding-block: 2px;
}
.course-study summary {
  align-items: center; color: var(--ui-navy); cursor: pointer;
  display: flex; font-size: 14px; font-weight: 620; gap: 12px;
  justify-content: space-between; list-style: none; padding-block: 12px;
}
.course-study summary::-webkit-details-marker { display: none; }
.course-study[open] summary > i { transform: rotate(180deg); }
.course-study summary:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 2px; }
#courseStudyBody { max-width: 75ch; padding-bottom: 10px; }
#courseStudyBody p { line-height: 1.55; margin: 0 0 8px; }
#courseStudyBody ul { display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none; margin: 0; padding: 0; }
#courseStudyBody a { color: var(--ui-navy); font-size: 13px; overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 2px; }

.course-platform, .home-study-platform {
  display: flex; flex-wrap: wrap; align-items: center; gap: 5px 8px;
  color: var(--ui-muted); font-size: 13px; line-height: 1.45;
}
.course-platform {
  width: fit-content; max-width: 100%; margin: 12px 0;
  padding: 6px 10px; border: 1px solid var(--ui-line); border-radius: 6px; background: #edf4fa;
}
.course-platform svg { width: 17px; height: 17px; color: var(--ui-accent); flex-shrink: 0; }
.course-platform strong, .home-study-platform strong { font-weight: 650; color: var(--ui-navy); }
.home-study-platform { margin-top: 3px; }

.semester-feature { display:flex; align-items:center; gap:13px; margin:12px 0; padding:13px 17px; border:1px solid #c5d7e1; border-radius:10px; background:#f1f7fa; color:#173b58; text-decoration:none; }
.semester-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:12px 0; }
.semester-pair .semester-feature { margin:0; min-width:0; }
.semester-pair .semester-mark { flex-shrink:0; }
@media(max-width:760px){ .semester-pair { grid-template-columns:1fr; gap:7px; } }
.semester-feature:hover,.semester-feature:focus-visible { border-color:#386681; background:#e9f3f9; }
.semester-feature strong,.semester-feature small { display:block; }
.semester-title { display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; }
.semester-level { display:inline-block; padding:2px 7px; border:1px solid #bfd2e0; border-radius:20px; background:#fff; color:#294963; font-size:11px; font-weight:600; line-height:1.35; white-space:nowrap; }
.semester-feature strong { font-size:15px; }
.semester-feature small { font-size:12px; margin-top:2px; color:#456175; }
.semester-feature > :last-child { margin-left:auto; }
.semester-feature .semester-mark { display:grid; place-items:center; width:37px; height:37px; border-radius:7px; background:#204461; color:white; }

.editor-panel .editor-guide-trigger{display:inline-flex;align-items:center;white-space:nowrap;min-height:34px;margin-inline-start:.35rem;padding:4px 9px;border:1px solid #b7cbd7;border-radius:6px;color:#1c4663;background:#f2f7fb;font:600 .78rem/1.25 var(--sans,system-ui)}
.editor-guide-trigger[hidden]{display:none!important}
.editor-guide-dialog{width:min(620px,calc(100vw - 24px));max-height:85vh;max-height:85dvh;box-sizing:border-box;overflow:hidden;padding:0;border:1px solid #c5d3df;border-radius:12px;background:#fff;color:#253d52;font-family:var(--sans,system-ui)}
.editor-guide-dialog[open]{display:flex;flex-direction:column}.editor-guide-dialog::backdrop{background:rgb(18 39 56/.52)}
.editor-guide-dialog header{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid #d6e1e9}
.editor-guide-dialog h2{margin:0;color:#183f61;font-size:1.1rem;line-height:1.25;overflow-wrap:anywhere}
.editor-guide-dialog button{flex:none;min-height:44px;padding:5px 11px;border:1px solid #b6c9d8;border-radius:6px;color:#1c4663;background:#f2f7fb}
#editorGuideContent{overflow:auto;overscroll-behavior:contain;padding:0 18px 18px;font-size:.96rem;line-height:1.55;overflow-wrap:anywhere}
#editorGuideContent h3{margin:1.2em 0 .32em;font-size:.98rem;color:#194965}#editorGuideContent p{margin:.75em 0}#editorGuideContent :is(ol,ul){margin:.4em 0;padding-inline-start:1.5em}#editorGuideContent li{margin:.4em 0}#editorGuideContent pre{overflow-x:auto;padding:10px 13px;border-radius:6px;background:#f2f6fa}
@media(max-width:650px){.editor-panel .editor-guide-trigger{min-height:44px}.editor-guide-dialog header{padding:10px 12px}#editorGuideContent{padding-inline:14px}}
#editorGuideContent .editor-guide-table{overflow-x:auto}#editorGuideContent table{width:100%;border-collapse:collapse;line-height:1.35;font-size:.86rem}
#editorGuideContent :is(th,td){padding:.45em;text-align:start;vertical-align:top;border:1px solid #cfdae2}#editorGuideContent th{background:#f2f6fa}
