/* Unified course-platform layer.  It deliberately augments existing course markup. */
:root{--lp-navy:#0b2545;--lp-teal:#0e7490;--lp-cyan:#06b6d4;--lp-ink:#172033;--lp-muted:#64748b;--lp-line:#dbe5ef;--lp-paper:#fff;--lp-wash:#f4f8fb;--lp-radius:14px;--lp-shadow:0 12px 30px rgba(15,46,73,.09)}
body{background:var(--lp-wash);color:var(--lp-ink)}
body::selection{background:#a5f3fc;color:#082f49}
:focus-visible{outline:3px solid rgba(6,182,212,.48)!important;outline-offset:3px}
.lp-shell{position:sticky;top:calc(var(--site-nav-h,0px) + env(safe-area-inset-top,0px));z-index:9000;display:flex;align-items:center;gap:12px;padding:9px max(16px,env(safe-area-inset-left,16px));background:rgba(255,255,255,.93);border-bottom:1px solid var(--lp-line);backdrop-filter:blur(14px);box-shadow:0 3px 13px rgba(15,46,73,.06)}
.lp-crumb{min-width:0;overflow:hidden;color:var(--lp-navy);font-size:13px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.lp-crumb span{color:var(--lp-muted);font-weight:500}.lp-progress{flex:1;min-width:72px;height:6px;overflow:hidden;border-radius:10px;background:#dcecf1}.lp-progress i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--lp-teal),var(--lp-cyan));transition:width .25s ease}.lp-percent{color:var(--lp-muted);font-size:12px;font-variant-numeric:tabular-nums}.lp-complete{border:0;border-radius:9px;padding:7px 11px;background:var(--lp-navy);color:#fff;font:700 12px inherit;cursor:pointer;white-space:nowrap}.lp-complete:hover{background:var(--lp-teal)}.lp-complete.is-done{background:#0f766e}
.lp-toc{position:fixed;top:112px;right:18px;z-index:1000;max-width:238px;max-height:calc(100vh - 148px);overflow:auto;padding:12px 14px;background:rgba(255,255,255,.94);border:1px solid var(--lp-line);border-radius:12px;box-shadow:var(--lp-shadow);font-size:12px}.lp-toc strong{display:block;margin-bottom:7px;color:var(--lp-navy)}.lp-toc a{display:block;padding:4px 0;color:var(--lp-muted);line-height:1.35;text-decoration:none}.lp-toc a:hover{color:var(--lp-teal)}
.lp-page-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:880px;margin:34px auto;padding:0 24px}.lp-page-nav a,.lp-page-nav span{min-height:70px;padding:12px 14px;border:1px solid var(--lp-line);border-radius:var(--lp-radius);background:#fff;color:var(--lp-navy);font-size:13px;font-weight:700;text-decoration:none;box-shadow:0 4px 12px rgba(15,46,73,.04)}.lp-page-nav a:last-child{text-align:right}.lp-page-nav small{display:block;margin-bottom:5px;color:var(--lp-muted);font-weight:600}.lp-page-nav a:hover{border-color:var(--lp-cyan);transform:translateY(-1px)}
.lp-dashboard{max-width:960px;margin:-8px auto 28px;padding:0 24px}.lp-dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.lp-stat,.lp-resume{padding:17px;border:1px solid var(--lp-line);border-radius:var(--lp-radius);background:#fff;box-shadow:0 5px 18px rgba(15,46,73,.05)}.lp-stat b{display:block;color:var(--lp-navy);font-size:24px;line-height:1.1}.lp-stat span{display:block;margin-top:5px;color:var(--lp-muted);font-size:12px}.lp-resume{grid-column:span 3;display:flex;align-items:center;justify-content:space-between;gap:12px}.lp-resume em{display:block;color:var(--lp-muted);font-size:12px;font-style:normal}.lp-resume a{padding:9px 12px;border-radius:9px;background:var(--lp-navy);color:#fff;font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap}.course-card .lp-card-progress{height:5px;margin:12px 0 0;overflow:hidden;border-radius:8px;background:#e5edf3}.course-card .lp-card-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--lp-teal),var(--lp-cyan));border-radius:inherit}.course-card.lp-completed{border-color:#86efac}.course-card.lp-completed .course-action::after{content:' · 已完成'}
.auth-body .auth-card{border-color:#cbddea;box-shadow:0 24px 60px rgba(11,37,69,.16)}.auth-body .auth-logo h1{color:var(--lp-navy)}.auth-body .auth-btn:not(.auth-btn-secondary){background:linear-gradient(135deg,var(--lp-navy),var(--lp-teal))}.auth-body .auth-tab.active{background:#e0f2fe;color:var(--lp-navy)}
.doc-sidebar,.doc-topbar,.hub-hero,.catalog-hero,.chapter-header{box-shadow:var(--lp-shadow)}.doc-prose h2,.doc-prose h3{scroll-margin-top:100px}
@media (max-width:1100px){.lp-toc{display:none}}@media (max-width:640px){.lp-shell{gap:8px;padding:8px 12px}.lp-crumb{max-width:38vw}.lp-percent{display:none}.lp-complete{padding:7px 9px}.lp-dashboard{padding:0 12px}.lp-dashboard-grid{grid-template-columns:1fr 1fr}.lp-resume{grid-column:span 2;align-items:flex-start;flex-direction:column}.lp-page-nav{padding:0 12px;gap:8px}.lp-page-nav a,.lp-page-nav span{min-height:62px;padding:10px;font-size:12px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
