/* Shared navigation; chapter activities retain their own teaching layout. */
html { scroll-padding-top: 24px; }
.ids-course-layout { display: grid !important; grid-template-columns: 240px minmax(0, 1fr) !important; align-items: start; gap: 0 !important; max-width: 1600px !important; margin: 0 auto !important; padding: 0 !important; min-height: 100vh; }
.ids-course-layout > main { min-width: 0; max-width: none; width: 100%; }
.ids-course-layout.layout > main { padding: 36px 40px 72px; }
.ids-unified-sidebar { display: block !important; position: sticky !important; top: 0 !important; align-self: start; width: 100%; height: auto !important; max-height: 100vh; overflow-y: auto; padding: 20px 16px !important; margin: 0 !important; border: 0 !important; border-right: 1px solid #d8e0e3 !important; border-radius: 0 !important; box-shadow: none !important; background: #f4f7f7 !important; color: #26343c; font: 14px/1.45 system-ui, sans-serif; }
.ids-unified-sidebar * { letter-spacing: 0 !important; box-sizing: border-box; }
.ids-unified-sidebar .ids-course-back { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 9px 10px; margin: 0 0 18px; border: 1px solid #c5d1d5; border-radius: 5px; background: white; color: #124f55; font-size: 14px; font-weight: 650; text-decoration: none; }
.ids-nav-icon { flex: 0 0 18px; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ids-chapter-label { margin: 0 10px 6px !important; color: #52646b; font-size: 12px !important; font-weight: 700; text-transform: uppercase; }
.ids-nav-title { margin: 0 10px 18px !important; color: #202d34; font-size: 18px !important; line-height: 1.3 !important; overflow-wrap: anywhere; }
.ids-unified-sidebar .ids-toc { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.ids-toc > summary { display: none; }
.ids-unified-sidebar .ids-nav-list { display: grid; gap: 2px; list-style: none; margin: 0; padding: 0; }
.ids-unified-sidebar .ids-nav-list li { display: block; margin: 0; padding: 0; }
.ids-unified-sidebar .ids-nav-list a { display: block; margin: 0; padding: 8px 10px; min-height: 36px; border: 1px solid transparent; border-radius: 4px; color: #33454d; font-size: 14px; font-weight: 450; line-height: 1.4; text-decoration: none; overflow-wrap: anywhere; }
.ids-unified-sidebar .ids-nav-list a.active:not([aria-current="location"]) { color: #33454d; background: transparent; border-color: transparent; }
.ids-unified-sidebar .ids-nav-list a:hover, .ids-unified-sidebar .ids-nav-list a[aria-current="location"] { color: #0e605b; background: #e3efeb; border-color: #bed3cd; }
.ids-unified-sidebar a:focus-visible, .ids-toc > summary:focus-visible { outline: 3px solid #3279b4; outline-offset: 2px; }
.ids-unified-sidebar .ids-resources { display: grid; gap: 4px; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid #d2dedf; }
.ids-unified-sidebar .ids-resources a { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 10px; color: #125f5a; font-size: 13px; font-weight: 550; text-decoration: none; }
.ids-unified-sidebar .ids-resources a:hover { background: white; }
.ids-question-frame { display: block; width: 100%; height: 690px; border: 0; margin: 12px 0 0; background: transparent; }
.ids-discussion > p { max-width: 70ch; }
.ids-code-cell { min-width: 0; margin: 24px 0; padding: 18px; border: 1px solid #cbd9dc; border-radius: 6px; background: #fff; }
.ids-code-cell pre { display: block; overflow-x: auto; max-width: 100%; margin: 14px 0; padding: 14px; border: 1px solid #dde4e6; border-radius: 4px; background: #f5f8f8; color: #20323c; font: 13px/1.65 ui-monospace, Menlo, monospace; white-space: pre; }
.ids-code-toolbar { display: flex; align-items: center; gap: 14px; min-height: 44px; margin: 14px 0; }
.ids-code-cell .ids-run { display: inline-flex; justify-content: center; align-items: center; gap: 8px; width: 104px; height: 42px; padding: 8px; border: 1px solid #126b63; border-radius: 5px; color: white; background: #126b63; font: 600 14px system-ui,sans-serif; cursor: pointer; }
.ids-code-cell .ids-run:disabled { opacity: .65; cursor: wait; }
.ids-code-cell .ids-run:focus-visible { outline: 3px solid #3279b4; outline-offset: 3px; }
.ids-output-label { margin: 0; color: #51636b; font-size: 13px; }
.ids-code-cell .ids-code-output { min-height: 74px; max-height: 390px; color: #1d343a; background: #f1f7f4; white-space: pre; }
.ids-code-output[data-state="error"] { color: #962f32; background: #fff4f3; border-color: #e6bbb5; }
@media (max-width: 760px) {
  .ids-course-layout { display: block !important; }
  .ids-unified-sidebar { position: relative !important; max-height: none; padding: 12px 18px !important; border-right: 0 !important; border-bottom: 1px solid #d8e0e3 !important; }
  .ids-unified-sidebar .ids-course-back { width: fit-content; min-width: 150px; margin-bottom: 10px; }
  .ids-chapter-label { margin-left: 0 !important; }
  .ids-nav-title { margin: 0 0 12px !important; font-size: 17px !important; }
  .ids-toc > summary { display: list-item; min-height: 44px; padding: 10px 0; color: #125f5a; font-size: 14px; font-weight: 650; cursor: pointer; }
  .ids-course-layout.layout > main { padding: 26px 18px 52px; }
  .ids-course-layout.shell > main > section { padding-left: 18px; padding-right: 18px; }
  .ids-code-cell { padding: 12px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto !important; } }
