/* Platform composition using shared reader tokens and components. */
.reader .site-header { background:var(--reader-soft); border-bottom:1px solid var(--reader-line); height:64px; }
.reader .header-inner { max-width:1200px; min-height:64px; margin:auto; padding:0 28px; }
.reader .brand-name { font:700 26px Georgia,serif; color:var(--reader-ink); }
.reader .brand-note { color:var(--reader-muted); border-color:var(--reader-line); }
.reader .header-nav a { color:var(--reader-ink); font-size:14px; }
.reader .home-user,.reader .home-inspector { display:none; }
.reader .home-rail { position:static; width:auto; border:0; padding:0; background:none; }
.reader .home-rail-title,.reader .home-rail-foot,.reader .home-rail > p { display:none; }
.reader .home-workspace { max-width:1200px; margin:auto; padding:0 28px; background:var(--reader-paper); }
.reader .hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,320px); align-items:end; gap:56px; padding:58px 0 36px; }
.reader .hero-method-note { align-self:stretch; margin:0 0 4px; padding:18px 20px 20px; border-top:3px solid var(--reader-line); border-left:1px solid var(--reader-line); border-right:1px solid var(--reader-line); border-bottom:1px solid var(--reader-line); border-radius:0 0 6px 6px; background:var(--reader-soft); }
.reader .hero-method-kicker { margin:0 0 8px; color:var(--reader-accent); font:700 11px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.1em; }
.reader .hero-method-note h2 { margin:0 0 6px; color:var(--reader-ink); font-size:20px; line-height:1.45; }
.reader .hero-method-note ol { display:grid; gap:0; margin:13px 0 0; padding:0; list-style:none; }
.reader .hero-method-note li { display:grid; grid-template-columns:28px minmax(0,1fr); gap:0 8px; padding:9px 0; border-top:1px solid var(--reader-line); }
.reader .hero-method-note li span { grid-row:1 / span 2; color:var(--reader-accent); font:700 10px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace; }
.reader .hero-method-note li strong { color:var(--reader-ink); font-size:13px; }
.reader .hero-method-note li small { color:var(--reader-muted); font-size:12px; line-height:1.5; }
.reader .hero h1 { max-width:900px; font-size:clamp(30px,4vw,46px); line-height:1.45; letter-spacing:-.035em; margin:10px 0 18px; }
.reader .hero-lede { color:var(--reader-muted); font-size:17px; line-height:1.85; max-width:760px; }
.reader .button-primary { background:var(--reader-accent); color:#07130c; font-weight:600; }
.reader .button { font-size:14px; min-height:43px; }
.reader .button-secondary { color:var(--reader-accent); border-color:var(--reader-line); }
.reader .library { padding:36px 0 64px; margin-top:42px; border-color:var(--reader-line); }
.reader .library-heading h2 { font-size:28px; margin:0; }
.reader .library-heading > p { color:var(--reader-muted); font-size:14px; }
.reader .library-tools { border-color:var(--reader-line); display:block; }
.reader .search-field input { font-size:15px; border-color:var(--reader-line); color:var(--reader-ink); }
.reader .filters { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 0; }
.reader .filter-button { font-size:13px; padding:7px 12px; border:1px solid var(--reader-line); border-radius:5px; background:var(--reader-soft); color:var(--reader-muted); }
.reader .filter-button[aria-pressed="true"] { background:rgba(99,230,140,.12); color:var(--reader-accent); border-color:var(--reader-accent); }
.reader .course-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; background:none; border:0; }
.reader .course-card { position:relative; border:1px solid var(--reader-line); padding:23px; min-height:0; border-radius:6px; }
.reader .course-card:hover { background:var(--reader-soft); }
.reader .course-card-action { display:block; margin-top:14px; color:var(--reader-accent); font-size:13px; font-weight:650; }
.reader .course-card:not(:has(.course-card-action))::after { display:block; margin-top:14px; color:var(--reader-accent); content:'进入课程 →'; font-size:13px; font-weight:650; }
.reader-featured > a { position:relative; }
.reader-featured > a::after { display:block; margin-top:14px; color:var(--reader-accent); content:'进入课程 →'; font-size:13px; font-weight:650; }
.reader-featured > a > img { float:right; opacity:.65; margin:6px 0 12px 14px; }
.reader .course-code { color:var(--reader-accent); font-size:17px; }
.reader .course-index,.reader .course-tags { display:none; }
.reader .course-domain { margin:16px 0 9px; color:var(--reader-muted); font-size:12px; }
.reader .course-title { font-size:18px; line-height:1.6; color:var(--reader-ink); }
.reader .course-title-zh { font-size:13px; color:var(--reader-muted); }
.reader .course-summary { font-size:14px; line-height:1.8; color:var(--reader-muted); }
.reader .course-meta { font-size:12px; border-color:var(--reader-line); }
.reader .site-footer { margin:0; background:var(--reader-soft); border-color:var(--reader-line); color:var(--reader-muted); }
.reader .footer-inner { max-width:1200px; margin:auto; }
@media(max-width:900px) { .reader .hero { grid-template-columns:1fr; gap:28px; } .reader .hero-method-note { max-width:560px; } }
@media(max-width:850px) { .reader .course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .reader .home-workspace { padding:0 18px; } .reader .hero { padding-top:32px; } .reader .course-grid { grid-template-columns:1fr; } .reader .header-inner { padding:0 18px; } .reader .brand-note { display:none; } }
@media(prefers-reduced-motion:reduce) { .reader .course-card,.reader .reader-featured > a,.reader .reader-methods article { transition:none!important; } }
