.al-page {
    --al-bg:#f6f7fc;
    --al-card:#fff;
    --al-ink:#19243c;
    --al-muted:#5d6680;
    --al-line:#dee3ef;
    --al-accent:#4f40c9;
    color:var(--al-ink);
    max-width:1180px;
    padding:30px 24px 76px;
    margin:auto;
    line-height:1.6;
    overflow-wrap:anywhere;
}
.al-page * {
    box-sizing:border-box;
}
.al-page a {
    color:var(--al-accent);
}
.al-nav {
    display:flex;
    gap:18px;
    flex-wrap:wrap;
    margin-bottom:24px;
    font-size:.9rem;
}
.al-nav a {
    font-weight:650;
    text-underline-offset:4px;
}
.al-page a:focus-visible,.al-page button:focus-visible,.al-page summary:focus-visible {
    outline:3px solid #a396ff;
    outline-offset:4px;
}
.al-hero {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    padding:36px;
    background:linear-gradient(125deg,#eeebff,#f0f7fc);
    border:1px solid var(--al-line);
    border-radius:24px;
}
.al-eyebrow {
    font-size:.76rem;
    font-weight:800;
    letter-spacing:.12em;
    color:var(--al-accent);
}
.al-hero h1 {
    font-size:clamp(2rem,4vw,3rem);
    line-height:1.15;
    margin:14px 0;
}
.al-hero p {
    max-width:580px;
    margin:0;
    color:var(--al-muted);
}
.al-theme {
    border:1px solid var(--al-line);
    background:var(--al-card);
    color:var(--al-ink);
    border-radius:12px;
    padding:12px 16px;
    cursor:pointer;
    font:inherit;
    flex-shrink:0;
}
.al-toolbar {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    margin:26px 0;
}
.al-toolbar p {
    color:var(--al-muted);
}
.al-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}
.al-course {
    background:var(--al-card);
    border:1px solid var(--al-line);
    border-radius:20px;
    padding:26px;
    min-width:0;
}
.al-course-top {
    display:flex;
    gap:12px;
    align-items:flex-start;
    justify-content:space-between;
    flex-wrap:wrap;
}
.al-subject {
    font-size:.8rem;
    font-weight:700;
    color:var(--al-muted);
}
.al-access {
    font-size:.75rem;
    padding:4px 10px;
    border-radius:8px;
    background:#eeebff;
    color:var(--al-accent);
}
.al-course h2 {
    font-size:1.45rem;
    line-height:1.35;
    margin:18px 0 26px;
}
.al-course h2 a {
    text-decoration:none;
    color:var(--al-ink);
}
.al-progress-label {
    display:flex;
    gap:12px;
    justify-content:space-between;
    font-size:.87rem;
    color:var(--al-muted);
}
.al-progress-label strong {
    color:var(--al-accent);
}
.al-progress {
    display:block;
    width:100%;
    height:9px;
    border:0;
    border-radius:20px;
    background:var(--al-line);
    overflow:hidden;
    margin:10px 0 22px;
    accent-color:var(--al-accent);
}
.al-progress::-webkit-progress-bar {
    background:var(--al-line);
}
.al-progress::-webkit-progress-value {
    background:var(--al-accent);
    border-radius:20px;
}
.al-progress::-moz-progress-bar {
    background:var(--al-accent);
}
.al-page a.al-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:16px;
    min-height:44px;
    padding:11px 18px;
    background:var(--al-accent);
    color:#fff;
    border:1px solid transparent;
    border-radius:12px;
    text-decoration:none;
    font-weight:650;
}
.al-page a.al-outline {
    color:var(--al-accent);
    background:var(--al-card);
    border-color:var(--al-line);
}
.al-program {
    margin-top:24px;
    border-top:1px solid var(--al-line);
    padding-top:16px;
}
.al-program summary {
    cursor:pointer;
    font-weight:650;
    min-height:32px;
}
.al-program ol {
    padding:0;
    list-style:none;
    margin:14px 0 0;
}
.al-program li {
    display:flex;
    gap:12px;
    padding:13px 0;
    border-top:1px solid var(--al-line);
}
.al-number {
    font-size:.8rem;
    flex:0 0 28px;
    color:var(--al-muted);
}
.al-program small {
    display:block;
    color:var(--al-muted);
    margin-top:4px;
}
.al-empty {
    text-align:center;
    border:1px solid var(--al-line);
    border-radius:22px;
    padding:54px 24px;
    background:var(--al-card);
}
.al-empty p {
    color:var(--al-muted);
    max-width:560px;
    margin:0 auto 24px;
}
.al-empty-mark {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:20px;
    background:#eeebff;
    color:var(--al-accent);
    width:72px;
    height:72px;
    font-size:1.8rem;
    font-weight:750;
}
.al-pagination {
    display:flex;
    justify-content:center;
    gap:24px;
    margin:28px 0;
}
.al-footnote,.al-muted {
    font-size:.85rem;
    color:var(--al-muted);
}
.al-footnote {
    margin-top:28px;
}
.al-save {
    margin-top:14px;
    font-size:.88rem;
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}
.al-save button {
    border:1px solid currentColor;
    border-radius:8px;
    padding:4px 12px;
    background:transparent;
    color:inherit;
    cursor:pointer;
}
html[data-academy-theme="dark"] {
    color-scheme:dark;
    --pub-bg:#111827;
    --pub-surface:#182237;
    --pub-ink:#eef2ff;
    --pub-muted:#b3bed4;
    --pub-border:#34415c;
    --pub-accent:#b0a5ff;
}
html[data-academy-theme="dark"] .pub-header {
    background:#111827ed;
}
html[data-academy-theme="dark"] .al-page {
    --al-bg:#111827;
    --al-card:#182237;
    --al-ink:#eef2ff;
    --al-muted:#b3bed4;
    --al-line:#34415c;
    --al-accent:#b0a5ff;
}
html[data-academy-theme="dark"] .al-hero {
    background:linear-gradient(125deg,#292448,#17283a);
}
html[data-academy-theme="dark"] .al-access,html[data-academy-theme="dark"] .al-empty-mark {
    background:#312c54;
}
html[data-academy-theme="dark"] .al-page a.al-button:not(.al-outline) {
    background:#6954db;
    color:#fff;
}
.al-page a.al-button:hover {
    filter:brightness(.94);
}
@media(max-width:760px) {
    html[data-academy-theme] .pub-nav {
        display:none;
    }
    html[data-academy-theme] .pub-header-inner {
        gap:10px;
        padding:12px 16px;
    }
    .al-grid {
        grid-template-columns:1fr;
    }
    .al-hero {
        padding:26px;
        align-items:flex-start;
        flex-direction:column;
    }
    .al-toolbar {
        align-items:flex-start;
    }
    .al-course {
        padding:22px;
    }
}
@media(max-width:420px) {
    .al-page {
        padding:22px 16px 48px;
    }
    .al-hero {
        padding:22px;
    }
    .al-toolbar {
        flex-direction:column;
        gap:4px;
    }
    .al-theme {
        width:100%;
    }
    .al-page a.al-button {
        min-height:46px;
    }
    .al-course-top {
        flex-direction:column;
    }
    .al-progress-label {
        align-items:flex-start;
    }
}
@media(prefers-reduced-motion:reduce) {
    .al-page * {
        scroll-behavior:auto!important;
        transition:none!important;
    }
}
