:root { --sidebar-width: 292px; }
body.has-sidebar { margin: 0 0 0 var(--sidebar-width); min-width: 0; }
.site-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 200; width: var(--sidebar-width); height: 100vh; height: 100dvh; overflow-y: auto; overscroll-behavior: contain; padding: 24px 16px; border-right: 1px solid #c8c8c8; background: white; color: #101223; font: 16px/1.5 Arial,Helvetica,sans-serif; }
.site-sidebar .sidebar-brand { display: block; margin: 0 0 18px; text-decoration: none; }
.site-sidebar .sidebar-logo { display: block; width: 100%; height: auto; }
.site-sidebar nav { display: block; }
.site-sidebar a { text-decoration: none; }
.site-sidebar .sidebar-home { display: block; padding: 12px 8px; margin-bottom: 14px; color: #101223; font-size: 20px; font-weight: 900; }
.site-sidebar .sidebar-label { display: none; }
.site-sidebar details { margin: 10px 0 24px; }
.site-sidebar summary { position: relative; display: flex; align-items: center; min-height: 44px; padding: 9px 24px 9px 10px; border-left: 7px solid #00d6c0; color: #101223; font-size: 18px; font-weight: 900; line-height: 1.25; list-style: none; cursor: pointer; overflow-wrap: anywhere; }
.site-sidebar .sidebar-category-scheduling > summary { border-left-color: #ff8a00; }
.site-sidebar .sidebar-category-algorithms > summary { border-left-color: #d90058; }
.site-sidebar .sidebar-section { margin: 18px 0 24px; }
.site-sidebar .sidebar-section > summary { padding: 10px 24px 10px 8px; border-left: 0; border-bottom: 3px solid #101223; font-size: 21px; }
.site-sidebar .sidebar-section-content { padding: 2px 0 0 8px; }
.site-sidebar .sidebar-course > summary { border-left-color: #1433ff; }
.site-sidebar .sidebar-course, .site-sidebar .sidebar-category { margin: 12px 0 18px; }
.site-sidebar .sidebar-units { padding: 4px 0 0 8px; }
.site-sidebar .sidebar-unit { margin: 6px 0; }
.site-sidebar .sidebar-unit > summary { padding: 9px 19px 9px 8px; border-left: 3px solid #bfc2c8; font-size: 16px; line-height: 1.35; }
.site-sidebar .sidebar-unit:has(a[aria-current='page']) > summary { border-left-color: #1433ff; }
.site-sidebar .sidebar-tutorials > summary { border-left-color: #d90058; }
.site-sidebar .sidebar-tutorials:has(a[aria-current='page']) > summary { border-left-color: #d90058; }
.site-sidebar .sidebar-unit .sidebar-concepts { margin-left: 10px; padding-left: 5px; }
.site-sidebar summary::-webkit-details-marker { display: none; }
.site-sidebar summary::after { content: ''; position: absolute; right: 0; width: 14px; height: 14px; background: url("icons/chevron-right.svg") center/contain no-repeat; }
.site-sidebar details[open] > summary::after { transform: rotate(90deg); }
.site-sidebar .sidebar-concepts { margin: 8px 0 0 19px; padding: 0 0 0 12px; border-left: 2px solid #bfc2c8; list-style: none; }
.site-sidebar .sidebar-concepts a { display: block; padding: 10px 9px; color: #101223; font-size: 16px; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.site-sidebar a:hover, .site-sidebar summary:hover { background-color: #ffe500; color: #101223; }
.site-sidebar a[aria-current='page'] { background: #1433ff; color: white; }
.site-sidebar :is(a, summary):focus-visible { outline: 3px solid #1433ff; outline-offset: 3px; }
.skip-link { position: fixed; top: 10px; left: calc(var(--sidebar-width) + 10px); z-index: 300; padding: 10px 14px; border: 3px solid #101223; background: #ffe500; color: #101223; font-weight: 700; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
@media (max-width: 1100px) { :root { --sidebar-width: 230px; }.site-sidebar { padding: 22px 14px; }.site-sidebar summary { font-size: 16px; }.site-sidebar .sidebar-concepts a { font-size: 15px; } }
@media (max-width: 600px) { :root { --sidebar-width: clamp(112px,32vw,160px); }.site-sidebar { padding: 18px 6px; }.site-sidebar .sidebar-brand { margin-bottom: 16px; }.site-sidebar .sidebar-home { margin-bottom: 20px; padding: 10px 6px; font-size: 14px; }.site-sidebar summary { padding: 9px 13px 9px 5px; border-left-width: 4px; font-size: 12px; font-weight: 700; letter-spacing: -.02em; }.site-sidebar summary::after { width: 11px; height: 11px; }.site-sidebar .sidebar-concepts { margin-left: 7px; padding-left: 4px; }.site-sidebar .sidebar-concepts a { padding: 9px 5px; font-size: 12px; }.site-sidebar details { margin-bottom: 22px; } }
@media (max-width: 600px) { .site-sidebar .sidebar-section > summary { padding: 9px 14px 9px 5px; border-bottom-width: 2px; font-size: 15px; }.site-sidebar .sidebar-section-content { padding-left: 3px; }.site-sidebar .sidebar-course > summary { font-size: 12px; } }
@media (max-width: 600px) { .site-sidebar .sidebar-units { padding-left: 3px; }.site-sidebar .sidebar-unit > summary { padding: 9px 13px 9px 4px; font-size: 12px; }.site-sidebar .sidebar-unit .sidebar-concepts { margin-left: 3px; padding-left: 2px; } }
