.course-page{--course-amber:#f5a524;gap:1.25rem;padding-bottom:4rem;display:grid}.course-page__head{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.course-page__head h1{margin:0 .25rem 0 0;font-size:1.75rem}.course-page__progress{color:var(--muted);font-size:.9rem;font-weight:600}.course-page__progress strong{color:var(--fg)}.course-page__actions{flex-wrap:wrap;align-items:center;gap:.6rem;margin-left:auto;display:flex}.course-page__search{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:15rem;min-height:44px;color:var(--muted);cursor:text;align-items:center;gap:.5rem;padding:0 .85rem;transition:border-color .15s,box-shadow .15s;display:flex}.course-page__search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);color:var(--fg)}.xiaoma-app .course-page__search input{min-width:0;color:var(--fg);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:0;font-size:.9rem;font-weight:600}.course-page__search input::placeholder{color:var(--muted);opacity:1;font-weight:500}.course-layout{grid-template-columns:minmax(0,1fr) 200px;align-items:start;gap:1.5rem;display:grid}.course-layout__main{gap:.9rem;min-width:0;display:grid}.course-part{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;margin-top:1.75rem;padding:0 .15rem .6rem;scroll-margin-top:96px;display:flex}.course-part:first-child{margin-top:0}.course-part span,.course-part p{color:var(--muted);margin:0;font-size:.85rem;font-weight:600}.course-part h2{margin:0;font-size:1.25rem}.course-chapter{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--pale);padding:1rem 1.1rem 1.1rem;scroll-margin-top:96px}.course-chapter__head{flex-wrap:wrap;align-items:baseline;gap:.25rem .6rem;display:flex}.course-chapter__label{color:var(--muted);font-size:.82rem;font-weight:600}.course-chapter__head h3{margin:0;font-size:1.1rem}.course-chapter__count{color:var(--muted);margin-left:auto;font-size:.8rem;font-weight:600}.course-chapter__goal{color:var(--muted);margin:.2rem 0 0;font-size:.82rem;font-weight:600}.course-chapter__goal.is-reached{color:color-mix(in oklch, var(--accent) 70%, var(--fg))}.course-chapter__head+.course-tile-group,.course-chapter__goal+.course-tiles,.course-chapter__head+.course-tiles{margin-top:.8rem}.course-chapter__more{border:1px dashed var(--border);border-radius:var(--radius-lg);width:100%;color:var(--muted);font:inherit;cursor:pointer;background:0 0;margin-top:.75rem;padding:.5rem;font-size:.85rem}.course-chapter__more:hover{color:var(--fg);border-color:color-mix(in oklch, var(--fg) 30%, transparent)}.course-chapter__error{color:var(--muted);align-items:center;gap:.75rem;margin-top:.8rem;font-size:.85rem;display:flex}.course-tile-group+.course-tile-group{margin-top:.75rem}.course-tile-group__label{color:var(--muted);margin:0 0 .4rem;font-size:.78rem;font-weight:600}.course-tiles{grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.course-tile{aspect-ratio:1/1.06;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:100%;color:var(--fg);font:inherit;cursor:pointer;justify-content:center;align-items:center;padding:1.3rem .35rem 1.6rem;text-decoration:none;transition:transform .12s,border-color .12s;display:flex;position:relative}a.course-tile:hover,button.course-tile:hover{border-color:color-mix(in oklch, var(--fg) 35%, transparent);transform:translateY(-2px)}.course-tile__no{color:var(--muted);font-size:.8rem;font-weight:700;position:absolute;top:.3rem;left:.5rem}.course-tile__stars{color:var(--course-amber);letter-spacing:-.05em;font-size:.66rem;position:absolute;top:.3rem;right:.45rem}.course-tile__lock{color:var(--muted);opacity:.7;position:absolute;top:.4rem;right:.45rem}.course-tile__glyph{color:color-mix(in oklch, var(--fg) 45%, transparent);text-align:center;word-break:break-all;line-height:1.15}.course-tile__glyph.is-keys{font-family:var(--font-mono);font-size:1.15rem}.course-tile__glyph.is-hanzi{font-family:Songti SC,STSong,Noto Serif SC,serif;font-size:1.45rem}.course-tile__name{color:var(--muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;padding:.25rem .3rem;font-size:.68rem;font-weight:600;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.course-tile.is-completed{border-color:color-mix(in oklch, var(--accent) 45%, transparent);background:var(--accent-soft)}.course-tile.is-completed .course-tile__glyph,.course-tile.is-completed .course-tile__no{color:color-mix(in oklch, var(--accent) 60%, var(--fg))}.course-tile.is-current{border:2px solid var(--course-amber);background:var(--pale);box-shadow:0 0 0 4px color-mix(in oklch, var(--course-amber) 16%, transparent)}.course-tile.is-current .course-tile__glyph{color:var(--fg)}.course-tile.is-current:after{content:"从这里继续";background:var(--course-amber);color:#fff;white-space:nowrap;border-radius:999px;padding:.05rem .5rem;font-size:.66rem;position:absolute;top:-.7rem;left:50%;transform:translate(-50%)}.course-tile.is-quiet{cursor:default;opacity:.6}.course-tile.is-placeholder{cursor:default;background:color-mix(in oklch, var(--surface) 70%, transparent);border-style:dashed}.course-index{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--pale);max-height:calc(100vh - 112px);padding:.6rem .4rem;position:sticky;top:96px;overflow:auto}.course-index ul{margin:0 0 .4rem;padding:0;list-style:none}.course-index__part{color:var(--fg);padding:.45rem .6rem .25rem;font-size:.78rem;text-decoration:none;display:block}.course-index__entry{border-radius:var(--radius);color:var(--muted);align-items:center;gap:.45rem;padding:.22rem .6rem;font-size:.8rem;font-weight:600;text-decoration:none;display:flex}.course-index__entry:hover{background:var(--fg-soft)}.course-index__entry.is-station{padding-left:1.3rem;font-size:.74rem}.course-index__entry.is-active{background:var(--accent-soft);color:var(--fg)}.course-index__dot{border:2px solid var(--border);border-radius:50%;flex:none;width:.5rem;height:.5rem}.course-index__entry.is-done .course-index__dot{border-color:var(--accent);background:var(--accent)}.course-index__entry.is-current .course-index__dot{border-color:var(--course-amber)}@media (width<=900px){.course-layout{grid-template-columns:minmax(0,1fr)}.course-index{display:none}.course-page__search{width:100%}.course-page__actions{width:100%;margin-left:0}}@media (width<=560px){.course-tiles{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.45rem}.course-chapter{padding:.85rem .75rem}}
