:root {
 --platform-bg:#f7f8f6; --platform-surface:#fff; --platform-green:#245447;
 --platform-ink:#202624; --platform-muted:#66736c; --platform-line:#e1e7e2;
 --ui-bg:#f7f8f6; --ui-bg-soft:#eef2ed; --ui-surface:#fff; --ui-surface-soft:#fff;
 --ui-surface-muted:#f1f4ef; --ui-ink:#202624; --ui-ink-mid:#45534b; --ui-muted:#66736c;
 --ui-border:#e1e7e2; --ui-green:#245447; --ui-gold:#245447; --ui-gold-soft:#edf3ee;
 --ui-shadow-sm:0 1px 3px #20262404; --ui-shadow-md:0 4px 16px #20262406;
 --ui-radius:12px; --paper:#f7f8f6; --paper-deep:#eef2ed; --card:#fff;
 --bg:#f7f8f6; --bg-card:#fff; --bg-white:#fff; --panel:#fff;
 --ink:#202624; --ink-soft:#66736c; --ink-mid:#45534b; --ink-mute:#66736c;
 --muted:#66736c; --line:#e1e7e2; --gold:#245447; --green:#245447;
 --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
}
html { scroll-padding-top:80px; }
body.platform-ui { margin:0; min-width:0; background:var(--platform-bg)!important; color:var(--platform-ink); font-family:var(--sans); font-size:14px; -webkit-font-smoothing:antialiased; }
body.platform-shell { padding-left:208px!important; }
.platform-ui *, .platform-ui *::before, .platform-ui *::after { box-sizing:border-box; }
.platform-ui img,.platform-ui video { max-width:100%; }
.platform-ui :focus-visible { outline:2px solid #40745d; outline-offset:3px; }
.platform-global-nav { position:fixed; inset:0 auto 0 0; width:208px; z-index:90; display:flex; flex-direction:column; padding:26px 16px 20px; background:#fff; border-right:1px solid var(--platform-line); font-family:var(--sans); }
.platform-global-brand { display:flex; align-items:center; gap:10px; margin-bottom:38px; padding:0 10px; color:var(--platform-ink); text-decoration:none; font-size:17px; font-weight:650; letter-spacing:-.04em; }
.platform-monogram { display:grid; place-items:center; width:30px; height:30px; background:var(--platform-green); color:#fff; border-radius:8px; font-size:12px; letter-spacing:-.04em; }
.platform-global-items { display:grid; gap:6px; }
.platform-global-items a,.platform-global-footer a { display:flex; align-items:center; gap:12px; min-height:44px; padding:10px 12px; border-radius:9px; color:#536159; text-decoration:none; font-size:13px; font-weight:500; line-height:1.5; }
.platform-global-items svg,.platform-global-footer svg { width:17px; height:17px; flex-shrink:0; stroke:currentColor; fill:none; stroke-width:1.5; }
.platform-global-items a:hover,.platform-global-footer a:hover { background:#f4f6f2; color:var(--platform-green); }
.platform-global-items a[aria-current="page"] { background:#edf3ee; color:var(--platform-green); }
.platform-global-footer { margin-top:auto; padding-top:20px; border-top:1px solid var(--platform-line); }
.platform-mobile-nav { display:none; }
.platform-ui > .topbar,.platform-ui > .nav,.platform-ui .site-nav { position:sticky; top:0; min-height:68px; background:#fff!important; border-color:var(--platform-line); box-shadow:none; backdrop-filter:none; padding:14px 32px; }
.platform-ui .topbar .brand,.platform-ui > .nav .brand { font-family:var(--sans); font-size:14px; letter-spacing:0; }
.platform-ui .brand-mark { background:var(--platform-green); color:white; border-radius:8px; }
.platform-ui h1,.platform-ui h2,.platform-ui h3 { color:var(--platform-ink); }
.platform-ui .btn,.platform-ui .login-btn,.platform-ui .button:not(.secondary),.platform-ui button.primary,.platform-ui a.primary { background:var(--platform-green); color:#fff; border-color:var(--platform-green); box-shadow:none; }
.platform-ui .btn,.platform-ui .login-btn,.platform-ui .button,.platform-ui button.primary { min-height:44px; border-radius:10px; }
.platform-ui .hero-title,.platform-ui .course-title,.platform-ui .page-title { font-size:clamp(28px,3.5vw,38px); line-height:1.28; letter-spacing:-.035em; font-weight:600; }
.platform-ui input,.platform-ui textarea,.platform-ui select { border-radius:8px; border-color:var(--platform-line); accent-color:var(--platform-green); }
.platform-ui .hero-side,.platform-ui .summary-card,.platform-ui .panel,.platform-ui .lesson-panel,.platform-ui .player-surface { background:#fff; border-color:var(--platform-line); border-radius:12px; box-shadow:none; }
.platform-ui .policy,.platform-ui .plan-badge { color:#73572f; background:#f3ead9; }
/* Member homepage uses live course/camp metadata, never illustrative progress. */
.platform-home .stage { display:block; min-height:0; max-width:1160px; margin:0 auto; padding:32px 36px 64px; }
.platform-home .stage::before,.platform-home .stage::after,.platform-auth .left::before { display:none; }
.platform-home .hero,.platform-auth .hero,.platform-auth .form-wrap { opacity:1; transform:none; animation:none; }
.platform-home .hero { width:100%; }
.platform-home .platform-learning { width:100%; }
.platform-home .hero { min-height:0; padding:0; text-align:left; margin:0 0 28px; }
.platform-home .hero-eyebrow { color:var(--platform-muted); font-size:11px; letter-spacing:.12em; }
.platform-home .hero-title { margin:10px 0; font-size:30px; }
.platform-home .hero-sub { margin:0; color:var(--platform-muted); font-size:14px; line-height:1.8; }
.platform-home .hero-sub em { color:inherit; font-style:normal; }
.platform-home .zones { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; border:0; }
.platform-home .zone-card { min-height:190px; padding:22px; background:#fff; border:1px solid var(--platform-line); border-radius:12px; transform:none!important; box-shadow:none!important; }
.platform-home .zone-card::before,.platform-home .zone-card::after,.platform-home .zone-num,.platform-home .zone-title-en { display:none; }
.platform-home .zone-title-cn { font-family:var(--sans); font-size:17px; letter-spacing:-.02em; }
.platform-home .zone-desc { margin-top:12px; font-size:12px; line-height:1.9; color:var(--platform-muted); }
.platform-home .zone-cta { margin-top:auto; padding-top:16px; font-size:12px; color:var(--platform-green); }
.platform-home .zone-card.disabled { opacity:1; }
.platform-home .zone-card.disabled .zone-cta { color:var(--platform-muted); }
.platform-home .foot-note { padding:16px 36px; color:var(--platform-muted); font-size:11px; }
.platform-learning { display:grid; gap:24px; margin-bottom:28px; }
.platform-learning h2 { margin:0 0 14px; font-size:17px; font-weight:600; letter-spacing:-.02em; }
.platform-learning-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.platform-learning-item { display:flex; flex-direction:column; gap:10px; min-height:124px; padding:20px; text-decoration:none; color:var(--platform-ink); background:#fff; border:1px solid var(--platform-line); border-radius:12px; }
.platform-learning-item strong { font-size:15px; line-height:1.6; font-weight:550; }
.platform-learning-item span { color:var(--platform-muted); font-size:12px; }
.platform-learning-empty { border:1px dashed var(--platform-line); border-radius:10px; padding:20px; color:var(--platform-muted); font-size:13px; }
.platform-course .hero { padding:26px 32px; background:transparent; }
.platform-course .hero-inner { max-width:1160px; margin:auto; }
.platform-course .page-shell { width:min(1160px,calc(100% - 64px)); margin:0 auto 48px; display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:20px; align-items:start; }
.platform-course .lesson-panel { grid-column:2; grid-row:1; }
.platform-course .player-surface { grid-column:1; grid-row:1; overflow:hidden; }
.platform-course .lesson-item.active { background:#edf3ee; color:var(--platform-green); }
.platform-course .lesson-title { font-size:24px; }
.platform-auth .page { min-height:100svh; max-width:1440px; margin:auto; }
.platform-auth .left { background:#edf2ec; border:0; }
.platform-auth .right { background:#fff; }
.platform-auth .hero-title { font-size:clamp(32px,4vw,48px); }
.platform-auth .form-h { font-family:var(--sans); font-size:27px; letter-spacing:-.04em; }
.platform-auth .gold { color:var(--platform-green); }
.platform-auth .wechat-btn,.platform-auth .divider { display:none; }
.platform-auth .platform-consent { display:flex; align-items:flex-start; gap:10px; text-align:left; margin:20px 0; color:var(--platform-muted); font-size:12px; line-height:1.8; }
.platform-auth .platform-consent input { width:16px; height:16px; margin-top:3px; flex-shrink:0; }
.platform-auth .platform-public-apply { display:inline-block; margin-top:18px; color:var(--platform-green); font-size:12px; }
.platform-landing .hero { min-height:360px; padding:64px 36px 48px; max-width:1100px; margin:auto; }
.platform-landing .hero-ghost-num,.platform-landing .scroll-hint { display:none; }
.platform-landing .hero-title { font-size:clamp(32px,4.5vw,54px); }
.platform-landing .hero-divider { margin:20px 0; background:var(--platform-line); }
.platform-landing .hero-sub { font-size:17px; }
.platform-landing .abilities,.platform-landing .audience,.platform-landing .final-cta { padding-block:48px; }
.platform-landing .ability { border-color:var(--platform-line); background:#fff; border-radius:12px; }
@media(max-width:1100px) { .platform-home .zones { grid-template-columns:repeat(2,minmax(0,1fr)); } .platform-learning-row { grid-template-columns:repeat(2,minmax(0,1fr)); } .platform-course .page-shell { gap:12px; grid-template-columns:minmax(0,1fr) 240px; } }
@media(max-width:767px) {
 body.platform-shell { padding-left:0!important; padding-bottom:calc(72px + env(safe-area-inset-bottom))!important; }
 .platform-global-nav { display:none; }
 .platform-mobile-nav { position:fixed; inset:auto 0 0; display:grid; grid-template-columns:repeat(4,1fr); z-index:90; padding:8px 8px calc(8px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid var(--platform-line); }
 .platform-mobile-nav a { min-height:48px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; color:var(--platform-muted); text-decoration:none; font:11px var(--sans); border-radius:8px; }
 .platform-mobile-nav a[aria-current="page"] { background:#edf3ee; color:var(--platform-green); }
 .platform-mobile-nav svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.5; }
 .platform-ui > .topbar,.platform-ui > .nav,.platform-ui .site-nav { padding:12px 18px; min-height:58px; }
 .platform-home .stage { padding:24px 16px; }
 .platform-home .hero-title { font-size:27px; }
 .platform-home .zone-card { min-height:172px; padding:18px; }
 .platform-learning-row { grid-template-columns:1fr; }
 .platform-learning-item { min-height:100px; padding:18px; }
 .platform-course .hero { padding:20px 16px; }
 .platform-course .page-shell { display:block; width:calc(100% - 24px); }
 .platform-course .lesson-panel { grid-column:auto; grid-row:auto; }
 .platform-ui .summary-grid { grid-template-columns:1fr!important; }
 .platform-auth .left { padding:24px; min-height:0; }
 .platform-auth .left .hero { margin:32px 0 0; }
 .platform-auth .hero-title { font-size:30px; }
 .platform-auth .right { padding:28px 22px; }
 .platform-auth .foot-note { display:none; }
 .platform-landing .hero { min-height:0; padding:40px 24px; }
}
@media(prefers-reduced-motion:reduce) { .platform-ui * { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }

.platform-practice .content-card,.platform-practice .course-card,.platform-practice .rights-panel,.platform-practice .module-card,.platform-practice .camp-card { background:#fff!important; border-color:#e1e7e2!important; border-radius:12px; box-shadow:none; }
.platform-practice .content-card:hover,.platform-practice .course-card:hover { border-color:#afc3b5!important; transform:none; }
.platform-practice .dark-btn,.platform-practice .course-card button { background:#245447!important; color:white; }
.platform-practice .section-tabs button.active { background:#edf3ee; color:#245447; }
@media(min-width:768px) { .platform-practice .nav-tabs { display:none; } }

.platform-home::before,.platform-home::after { display:none; }
.platform-home .zones { opacity:1; transform:none; animation:none; min-height:0; width:100%; }

.platform-auth .field-label { display:block; margin-bottom:8px; font-family:var(--sans); font-size:12px; letter-spacing:0; }
.platform-auth #password-field .text-input { display:block; width:100%; min-height:46px; }
.platform-auth .text-input { font-family:var(--sans); font-size:14px; }
.platform-auth .login-mode-tabs button.active { background:#245447; color:#fff; }
@media(max-width:767px) { .platform-home .user-btn { min-height:44px; min-width:44px; } }

/* Project Compass is the signed-in home: real covers, readable titles, one rail. */
.platform-practice .project-compass-hero { padding:28px 32px 24px; min-height:0; }
.platform-practice .project-compass-hero h1 { font-family:var(--sans); font-size:30px; line-height:1.3; font-weight:600; }
.platform-practice .project-compass-section { padding:24px 32px 40px; min-height:0; }
.platform-practice .project-compass-layout { gap:28px; }
.platform-practice .project-compass-top-grid { grid-template-columns:minmax(0,1fr); gap:20px; align-items:start; }
.platform-practice .project-compass-recommendation-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.platform-practice .project-compass-recommendation,
.platform-practice .project-compass-recommendation:first-child { display:flex; flex-direction:column; align-items:stretch; justify-content:start; grid-row:auto; min-width:0; min-height:0; padding:0; gap:0; border:1px solid var(--platform-line); border-radius:12px; overflow:hidden; box-shadow:none; }
.platform-practice .project-compass-recommendation-thumb { width:100%; height:auto; aspect-ratio:16/9; border:0; border-radius:0; }
.platform-practice .project-compass-recommendation-copy { padding:16px; }
.platform-practice .project-compass-recommendation h3,
.platform-practice .project-compass-recommendation:not(:first-child) h3 { margin:8px 0 0; font-size:16px; line-height:1.6; -webkit-line-clamp:2; }
.platform-practice .project-compass-recommendation-copy>p,
.platform-practice .project-compass-recommendation:first-child .project-compass-recommendation-copy>p { display:none; }
.platform-practice .project-compass-attention { min-height:0; padding-top:0; border:0; }
.platform-practice .project-compass-attention ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 16px; }
.platform-practice .project-compass-attention-link { min-height:60px; align-items:center; }
.platform-practice .project-compass-attention-link h3 { font-size:13px; line-height:1.5; }
.platform-practice .project-compass-story-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.platform-practice .project-compass-story { position:relative; display:flex; flex-direction:column; align-items:stretch; justify-content:start; min-height:0; min-width:0; padding:0; gap:0; overflow:hidden; border:1px solid var(--platform-line); border-radius:12px; background:#fff; }
.platform-practice .project-compass-thumb { width:100%; height:auto; aspect-ratio:16/9; border:0; border-radius:0; }
.platform-practice .project-compass-story-copy { width:100%; min-width:0; padding:16px; }
.platform-practice .project-compass-story-copy h3 { margin:8px 0; font-size:16px; line-height:1.6; -webkit-line-clamp:2; }
.platform-practice .project-compass-story-copy>p { font-size:12px; line-height:1.7; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; white-space:normal; overflow:hidden; }
.platform-practice .project-compass-admin-menu { align-self:flex-end; margin:0 12px 12px; }
.platform-practice .project-compass-recommendation:hover,.platform-practice .project-compass-story:hover { transform:none; box-shadow:none; border-color:#afc3b5; }
.platform-practice .project-compass-recommendation:focus-visible,.platform-practice .project-compass-story:focus-visible { outline:2px solid var(--platform-green); outline-offset:3px; }
.platform-practice .brand-name { font-size:14px; }
@media (min-width:768px) and (max-width:1100px) {
 .platform-practice .project-compass-recommendation-list,.platform-practice .project-compass-story-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px) {
 .platform-practice .project-compass-hero { padding:24px 16px 18px; }
 .platform-practice .project-compass-hero h1 { font-size:26px; }
 .platform-practice .project-compass-section { padding:16px 16px 28px; }
 .platform-practice .project-compass-recommendation-list,.platform-practice .project-compass-story-list { grid-template-columns:minmax(0,1fr); gap:16px; }
 .platform-practice .project-compass-attention ol { grid-template-columns:minmax(0,1fr); }
 .platform-practice .project-compass-recommendation h3,.platform-practice .project-compass-story-copy h3 { font-size:16px; }
 .platform-mobile-nav a { min-width:0; font-size:10px; }
}

@media (max-width:767px) {
 .platform-practice .project-compass-recommendation:not(:first-child) { display:grid; grid-template-columns:96px minmax(0,1fr); gap:8px 12px; padding:12px; align-items:center; }
 .platform-practice .project-compass-recommendation:not(:first-child) .project-compass-recommendation-thumb { grid-row:span 2; }
 .platform-practice .project-compass-recommendation:not(:first-child) .project-compass-recommendation-copy { padding:0; }
 .platform-practice .project-compass-recommendation:not(:first-child) h3 { font-size:14px; margin:4px 0 0; }
 .platform-practice .project-compass-recommendation:not(:first-child) .project-compass-admin-menu { grid-column:2; margin:0; justify-self:end; }
 .platform-practice .project-compass-attention { display:none; }
}
.platform-practice .app-shell > .nav { background:#fff; border-bottom:1px solid var(--platform-line); }
.platform-practice .nav .brand { display:none; }
.platform-practice .nav-inner { justify-content:space-between; }
.platform-practice .nav-actions a[href^="/index.html"],.platform-practice .nav-actions a[href^="https://aiachuan.com/index.html"] { display:none; }
.platform-practice:has(.project-compass-hero) .nav-tabs { display:none; }
