    .catalog-mobile { display:grid; gap:16px; }

    /* LEARNING_MODE_ASSET_CARD_V1 */
    .catalog-learning-mode {
        position:relative;
        overflow:hidden;
        display:grid;
        gap:11px;
        padding:13px;
        border-radius:24px;
        background:linear-gradient(145deg, #f0fbf7 0%, #ffffff 54%, #f5fbff 100%);
        border:1px solid rgba(23,179,159,.22);
        box-shadow:0 18px 40px rgba(15,23,42,.08);
        isolation:isolate;
    }
    .catalog-learning-mode::before {
        content:"";
        position:absolute;
        inset:auto -10% -32px auto;
        width:180px;
        height:112px;
        border-radius:999px;
        background:rgba(91,156,255,.09);
        filter:blur(10px);
        z-index:-1;
    }
    .catalog-learning-mode::after {
        content:"";
        position:absolute;
        width:168px;
        height:168px;
        left:-68px;
        top:-92px;
        border-radius:50%;
        background:rgba(23,179,159,.11);
        z-index:-1;
    }
    .catalog-learning-mode-head {
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:10px;
        padding:0 2px;
    }
    .catalog-learning-mode-head strong {
        color:#15345f;
        font-size:.96rem;
        font-weight:980;
        letter-spacing:-.02em;
    }
    .catalog-learning-mode-head span {
        color:#5f7289;
        font-size:.64rem;
        font-weight:850;
    }
    .catalog-learning-options {
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:9px;
    }
    .catalog-learning-option {
        position:relative;
        min-width:0;
        min-height:156px;
        overflow:hidden;
        padding:11px;
        border-radius:20px;
        display:grid;
        grid-template-rows:72px auto;
        gap:8px;
        text-decoration:none;
        border:1px solid rgba(23,179,159,.14);
        background:linear-gradient(154deg,#edfbf7 0%,#ffffff 86%);
        box-shadow:0 10px 24px rgba(15,23,42,.05);
        -webkit-tap-highlight-color:transparent;
        transition:transform .18s ease, box-shadow .18s ease;
    }
    .catalog-learning-option:active {
        transform:translateY(1px) scale(.995);
    }
    .catalog-learning-option.is-guided {
        border-color:rgba(23,179,159,.22);
        box-shadow:0 14px 28px rgba(15,143,116,.10);
    }
    .catalog-learning-option.is-free {
        border-color:rgba(53,92,154,.13);
        background:linear-gradient(150deg,#f2f7ff 0%,#ffffff 86%);
    }
    .catalog-learning-option-art {
        width:100%;
        height:72px;
        display:flex;
        align-items:center;
        justify-content:center;
        overflow:hidden;
    }
    .catalog-learning-option-art img {
        width:100%;
        height:100%;
        object-fit:contain;
        display:block;
    }
    .catalog-learning-option-copy {
        min-width:0;
        display:grid;
        align-content:end;
        gap:3px;
    }
    .catalog-learning-option-title-row {
        display:grid;
        gap:5px;
        min-width:0;
        align-content:start;
        justify-items:start;
    }
    .catalog-learning-option-title {
        min-width:0;
        color:#17345f;
        font-size:.82rem;
        line-height:1.35;
        font-weight:980;
        white-space:normal;
    }
    .catalog-learning-recommended {
        flex:0 0 auto;
        min-height:22px;
        padding:0 8px;
        border-radius:999px;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        background:linear-gradient(135deg,#17B39F 0%,#0F8F74 100%);
        color:#fff;
        font-size:.51rem;
        font-weight:980;
        box-shadow:0 8px 16px rgba(15,143,116,.18);
        max-width:100%;
    }
    .catalog-learning-option-subtitle {
        color:#65758c;
        font-size:.59rem;
        font-weight:790;
        line-height:1.55;
        white-space:normal;
        overflow:hidden;
        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
    }
    .catalog-learning-option-cta {
        margin-top:4px;
        color:#0F8F74;
        font-size:.61rem;
        font-weight:980;
    }
    .catalog-learning-option.is-free .catalog-learning-option-cta { color:#355C9A; }
    .catalog-toolbar-main {
        display:grid;
        grid-template-columns:minmax(0,1fr) auto;
        gap:8px;
        align-items:center;
    }
    .catalog-guided-shortcut {
        min-height:44px;
        padding:0 10px;
        border-radius:15px;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        gap:5px;
        border:1px solid rgba(23,179,159,.15);
        background:linear-gradient(135deg,#effaf7,#fff);
        color:#0F8F74;
        text-decoration:none;
        font-size:.62rem;
        font-weight:950;
        white-space:nowrap;
        box-shadow:0 7px 16px rgba(15,143,116,.06);
    }
    #course-bank { scroll-margin-top:122px; }
    @media (max-width:380px) {
        .catalog-learning-mode { padding:10px; border-radius:22px; }
        .catalog-learning-options { gap:7px; }
        .catalog-learning-option { min-height:146px; padding:8px; grid-template-rows:68px auto; border-radius:18px; }
        .catalog-learning-option-art { height:68px; }
        .catalog-learning-option-title { font-size:.74rem; }
        .catalog-learning-recommended { min-height:19px; padding:0 6px; font-size:.46rem; }
        .catalog-guided-shortcut { padding-inline:8px; font-size:.57rem; }
    }
    .catalog-toolbar {
        position:sticky;
        top:64px;
        z-index:20;
        display:grid;
        gap:10px;
        padding:10px;
        border-radius:20px;
        background:rgba(255,255,255,.9);
        border:1px solid rgba(207,213,231,.82);
        box-shadow:0 10px 28px rgba(15,23,42,.06);
        backdrop-filter:blur(12px);
    }
    .catalog-search {
        display:flex;
        align-items:center;
        gap:8px;
        min-height:44px;
        padding:0 12px;
        border-radius:15px;
        background:var(--surface-soft);
        border:1px solid rgba(207,213,231,.8);
    }
    .catalog-search span { color:var(--text-faint); font-size:.94rem; }
    .catalog-search input {
        width:100%;
        border:0;
        outline:none;
        background:transparent;
        color:var(--text);
        font-size:.88rem;
    }
    .catalog-filter-rail {
        display:flex;
        gap:8px;
        overflow-x:auto;
        padding-bottom:2px;
        scrollbar-width:none;
    }
    .catalog-filter-rail::-webkit-scrollbar { display:none; }
    .catalog-filter-chip {
        flex:0 0 auto;
        min-height:34px;
        padding:0 12px;
        border-radius:999px;
        border:1px solid rgba(227,234,242,.92);
        background:rgba(255,255,255,.96);
        color:var(--text-soft);
        font-size:.76rem;
        font-weight:850;
        cursor:pointer;
        transition:.18s ease;
        box-shadow:0 6px 16px rgba(15,23,42,.03);
    }
    .catalog-filter-chip.is-active {
        color:#fff;
        border-color:transparent;
        background:linear-gradient(135deg, #0F8F74 0%, #17B39F 100%);
        box-shadow:0 12px 24px rgba(15,143,116,.18);
    }
    .catalog-block {
        display:grid;
        gap:12px;
        padding:14px;
        border-radius:26px;
        background:linear-gradient(180deg, rgba(255,255,255,.99) 0%, rgba(242,248,247,.94) 100%);
        border:1px solid rgba(227,234,242,.92);
        box-shadow:0 16px 34px rgba(15,23,42,.06);
    }
    .catalog-block[hidden] { display:none !important; }
    .catalog-section-head {
        display:flex;
        align-items:flex-start;
        justify-content:space-between;
        gap:12px;
        padding:2px 2px 0;
    }
    .catalog-section-title-row {
        display:flex;
        align-items:center;
        gap:8px;
        flex-wrap:wrap;
    }
    .catalog-section-icon {
        display:inline-grid;
        place-items:center;
        width:34px;
        height:34px;
        border-radius:13px;
        background:var(--primary-soft);
        color:var(--primary-strong);
        font-size:1rem;
    }
    .catalog-section-title {
        margin:0;
        font-size:1rem;
        font-weight:950;
        color:var(--text);
    }
    .catalog-section-subtitle {
        margin-top:4px;
        color:var(--text-faint);
        font-size:.7rem;
        line-height:1.7;
    }
    .catalog-section-copy {
        margin-top:4px;
        color:var(--text-soft);
        font-size:.76rem;
        line-height:1.8;
    }
    .catalog-section-actions {
        flex:0 0 auto;
        display:flex;
        flex-direction:column;
        align-items:flex-end;
        gap:8px;
    }
    .catalog-section-badge,
    .catalog-section-all {
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-width:72px;
        min-height:34px;
        padding:0 12px;
        border-radius:14px;
        font-size:.74rem;
        font-weight:900;
        text-decoration:none;
        white-space:nowrap;
    }
    .catalog-section-badge {
        background:var(--primary-soft);
        border:1px solid rgba(23,179,159,.12);
        color:var(--primary-strong);
    }
    .catalog-section-all {
        background:#fff;
        border:1px solid rgba(227,234,242,.92);
        color:var(--text-soft);
        box-shadow:0 8px 18px rgba(15,23,42,.04);
    }
    .catalog-view-all-card {
        flex:0 0 196px;
        width:196px;
        min-height:100%;
        scroll-snap-align:start;
        display:grid;
        align-content:center;
        justify-items:center;
        gap:10px;
        padding:18px 14px;
        border-radius:22px;
        text-align:center;
        text-decoration:none;
        color:#fff;
        background:linear-gradient(135deg, #0F8F74 0%, #17B39F 56%, #7C5CF7 100%);
        border:1px solid rgba(255,255,255,.34);
        box-shadow:0 14px 30px rgba(15,143,116,.18);
        position:relative;
        overflow:hidden;
        isolation:isolate;
    }
    .catalog-view-all-card::before {
        content:"";
        position:absolute;
        inset:-30% -45% auto auto;
        width:130px;
        height:130px;
        border-radius:999px;
        background:rgba(255,255,255,.18);
        z-index:-1;
    }
    .catalog-view-all-card::after {
        content:"";
        position:absolute;
        inset:auto auto -36px -28px;
        width:115px;
        height:115px;
        border-radius:999px;
        background:rgba(255,255,255,.11);
        z-index:-1;
    }
    .catalog-view-all-icon {
        display:grid;
        place-items:center;
        width:48px;
        height:48px;
        border-radius:18px;
        background:rgba(255,255,255,.18);
        border:1px solid rgba(255,255,255,.28);
        box-shadow:inset 0 1px 0 rgba(255,255,255,.22);
        font-size:1.28rem;
        font-weight:950;
    }
    .catalog-view-all-title {
        font-size:.94rem;
        font-weight:950;
        line-height:1.65;
    }
    .catalog-view-all-copy {
        max-width:150px;
        color:rgba(255,255,255,.84);
        font-size:.7rem;
        font-weight:750;
        line-height:1.7;
    }
    .catalog-view-all-pill {
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-height:30px;
        padding:0 10px;
        border-radius:999px;
        background:rgba(255,255,255,.16);
        border:1px solid rgba(255,255,255,.22);
        color:#fff;
        font-size:.66rem;
        font-weight:900;
    }
    .catalog-view-all-card:focus-visible {
        outline:3px solid rgba(23,179,159,.28);
        outline-offset:3px;
    }
    @media (hover:hover) {
        .catalog-view-all-card { transition:transform .18s ease, box-shadow .18s ease, filter .18s ease; }
        .catalog-view-all-card:hover {
            transform:translateY(-2px);
            box-shadow:0 18px 38px rgba(15,143,116,.22);
            filter:saturate(1.04);
        }
    }
    .catalog-rail {
        display:flex;
        gap:12px;
        overflow-x:auto;
        padding-bottom:4px;
        scrollbar-width:none;
        scroll-snap-type:x proximity;
    }
    .catalog-rail::-webkit-scrollbar { display:none; }
    .catalog-rail.is-category-grid {
        display:grid;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:12px;
        overflow:visible;
        padding-bottom:0;
        scroll-snap-type:none;
    }
    .catalog-course-card {
        flex:0 0 236px;
        width:236px;
        scroll-snap-align:start;
        display:grid;
        gap:10px;
        padding:11px;
        border-radius:22px;
        background:#fff;
        border:1px solid rgba(227,234,242,.92);
        box-shadow:0 10px 26px rgba(15,23,42,.05);
    }
    .catalog-rail.is-category-grid .catalog-course-card {
        width:auto;
        min-width:0;
        height:100%;
        scroll-snap-align:unset;
    }
    .catalog-rail.is-category-grid .catalog-card-cover {
        height:clamp(116px, 22vw, 148px);
    }
    .catalog-course-card[hidden] { display:none !important; }
    .catalog-card-cover {
        position:relative;
        height:132px;
        border-radius:16px;
        overflow:hidden;
        background:#fff;
        isolation:isolate;
    }
    .catalog-card-cover img {
        position:absolute;
        inset:0;
        width:100% !important;
        height:100% !important;
        min-width:100%;
        min-height:100%;
        object-fit:fill;
        object-position:center center;
        display:block;
        border-radius:inherit;
    }
    .catalog-card-fallback {
        width:100%;
        height:100%;
        display:grid;
        place-items:center;
        font-size:2rem;
        color:#fff;
        font-weight:900;
    }
    .catalog-card-body { display:grid; gap:8px; }
    .catalog-card-title {
        font-size:.94rem;
        font-weight:900;
        line-height:1.65;
        color:var(--text);
        min-height:3.2em;
    }
    .catalog-card-meta {
        display:grid;
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:6px;
    }
    .catalog-mini-chip {
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-width:0;
        min-height:27px;
        padding:0 7px;
        border-radius:999px;
        background:var(--surface-soft);
        border:1px solid rgba(227,234,242,.92);
        color:var(--text-soft);
        font-size:.67rem;
        font-weight:850;
        line-height:1;
        text-align:center;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
    }
    .catalog-mini-chip.is-accent {
        background:var(--primary-soft);
        color:var(--primary-strong);
        border-color:rgba(23,179,159,.14);
    }
    .catalog-course-card .progress-track { height:7px; }
    .catalog-card-footer {
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:10px;
    }
    .catalog-card-footer .btn {
        flex:1 1 auto;
        min-height:40px;
        border-radius:14px;
    }
    .catalog-empty {
        padding:24px;
        border-radius:24px;
        background:#fff;
        border:1px solid var(--border);
        text-align:center;
        color:var(--text-soft);
        box-shadow:var(--shadow-sm);
    }
    @media (max-width:720px) {
        .catalog-toolbar { top:60px; padding:9px; border-radius:18px; }
        .catalog-course-card { flex-basis:220px; width:220px; }
        .catalog-view-all-card { flex-basis:178px; width:178px; padding:16px 12px; }
        .catalog-view-all-icon { width:44px; height:44px; border-radius:16px; }
        .catalog-card-cover { height:124px; }
        .catalog-rail.is-category-grid .catalog-course-card { width:auto; }
        .catalog-rail.is-category-grid .catalog-card-cover { height:118px; }
        .catalog-rail.is-category-grid .catalog-card-title { font-size:.82rem; min-height:3em; }
        .catalog-rail.is-category-grid .catalog-card-meta { grid-template-columns:repeat(2, minmax(0, 1fr)); }
        .catalog-rail.is-category-grid .catalog-mini-chip { font-size:.62rem; padding:0 5px; }
        .catalog-section-head { gap:10px; }
        .catalog-section-actions { align-items:flex-start; }
        .catalog-section-badge,
        .catalog-section-all { min-width:64px; padding:0 10px; }
    }
    @media (max-width:360px) {
        .catalog-rail.is-category-grid { grid-template-columns:1fr; }
        .catalog-rail.is-category-grid .catalog-card-cover { height:132px; }
    }

    /* LEARNING_CARD_V3 polish */
    .catalog-learning-mode {
        background:linear-gradient(145deg,#eefbf7 0%, #ffffff 52%, #f3fbff 100%);
        border-color:rgba(23,179,159,.26);
        box-shadow:0 20px 42px rgba(15,23,42,.09);
    }
    .catalog-learning-mode-head strong { font-size:.98rem; }
    .catalog-learning-mode-head span { color:#58708a; }
    .catalog-learning-option.is-guided {
        background:linear-gradient(154deg,#e9fbf5 0%,#ffffff 84%);
        border-color:rgba(23,179,159,.24);
        box-shadow:0 16px 30px rgba(15,143,116,.12);
    }
    .catalog-learning-option.is-guided::before {
        content:"";
        position:absolute;
        inset:0 0 auto;
        height:4px;
        background:linear-gradient(90deg,#17B39F 0%, #0F8F74 100%);
    }
    .catalog-learning-option.is-guided .catalog-learning-option-title { color:#113862; }
    .catalog-learning-option.is-guided .catalog-learning-option-cta {
        display:inline-flex;
        align-items:center;
        width:max-content;
        min-height:24px;
        padding:0 8px;
        border-radius:999px;
        background:rgba(23,179,159,.10);
    }
    .catalog-learning-option.is-free .catalog-learning-option-cta {
        display:inline-flex;
        align-items:center;
        width:max-content;
        min-height:24px;
        padding:0 8px;
        border-radius:999px;
        background:rgba(53,92,154,.08);
    }

