:root{
  --bg:#08111f;--panel:#101b2d;--panel2:#152239;--text:#edf2f7;--muted:#9eb0c7;
  --gold:#e4bd63;--gold2:#f4d789;--green:#69d39c;--red:#ff8585;--blue:#77b6ff;--line:#263955;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,#07101d,#0b1626 42%,#08111f);color:var(--text);font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif}
button,input{font:inherit}.app{max-width:1280px;margin:auto;min-height:100vh}.topbar{position:sticky;top:0;z-index:30;background:rgba(8,17,31,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:14px 20px}.brand{font-weight:900;letter-spacing:.5px;white-space:nowrap}.brand b{color:var(--gold)}.top-progress{flex:1;max-width:420px}.bar{height:7px;background:#1d2c42;border-radius:999px;overflow:hidden}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--green));width:0}.progress-text{font-size:12px;color:var(--muted);margin-top:5px}.layout{display:grid;grid-template-columns:245px 1fr;min-height:calc(100vh - 66px)}
.sidebar{border-right:1px solid var(--line);padding:18px 14px;position:sticky;top:66px;height:calc(100vh - 66px);overflow:auto}.navbtn{width:100%;border:0;background:transparent;color:var(--muted);text-align:left;padding:11px 12px;border-radius:10px;cursor:pointer;margin:2px 0}.navbtn:hover,.navbtn.active{background:var(--panel2);color:#fff}.navbtn.active{box-shadow:inset 3px 0 var(--gold)}.side-title{font-size:11px;text-transform:uppercase;color:#647b99;padding:14px 12px 6px;letter-spacing:1px}.main{padding:26px;min-width:0}.hero{background:radial-gradient(circle at 85% 20%,rgba(228,189,99,.18),transparent 28%),linear-gradient(135deg,#111f34,#0e192a);border:1px solid var(--line);padding:28px;border-radius:22px}.eyebrow{color:var(--gold);font-weight:800;font-size:13px}.hero h1{font-size:34px;margin:10px 0 8px}.hero p{color:var(--muted);line-height:1.8;max-width:850px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.btn{border:1px solid var(--line);background:var(--panel2);color:#fff;padding:10px 14px;border-radius:10px;cursor:pointer}.btn.primary{background:var(--gold);color:#18120a;border-color:var(--gold);font-weight:800}.btn.good{background:#143329;border-color:#275e4a;color:#bff1d8}.btn.small{padding:7px 10px;font-size:13px}.grid{display:grid;gap:16px}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}.stat{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}.stat strong{font-size:26px;color:var(--gold2)}.stat div{color:var(--muted);font-size:13px;margin-top:5px}.section{margin-top:26px}.section h2{font-size:21px;margin:0 0 14px}.section-sub{color:var(--muted);margin:-5px 0 16px;line-height:1.7}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}.chapter-card{cursor:pointer;transition:.18s}.chapter-card:hover{transform:translateY(-2px);border-color:#405a7d}.chapter-no{font-size:12px;color:var(--gold);font-weight:800}.chapter-title{font-size:18px;font-weight:850;margin:7px 0}.chapter-meta{font-size:12px;color:var(--muted)}.chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.chip{font-size:12px;padding:5px 8px;border-radius:999px;background:#1b2a42;color:#bed0e8}.chip.gold{background:#3b3018;color:#f6d883}.chip.red{background:#3e2026;color:#ffb5bd}.chip.green{background:#17372d;color:#aee9ce}.route{display:flex;gap:8px;align-items:center;overflow:auto;padding:4px 0 8px}.route .step{min-width:148px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}.route .arrow{color:#607695}.step b{display:block;margin-bottom:5px}.step span{font-size:12px;color:var(--muted)}
.lesson-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.lesson-head h1{margin:4px 0 8px}.lesson-head p{color:var(--muted);line-height:1.7}.callout{border-left:4px solid var(--gold);background:#191f2a;padding:15px 16px;border-radius:0 12px 12px 0;margin:14px 0;line-height:1.8}.callout.source{border-color:var(--blue);background:#10233a}.callout.warn{border-color:var(--red);background:#2a171d}.callout.good{border-color:var(--green);background:#10291f}.label{font-size:11px;font-weight:800;letter-spacing:.6px;color:var(--muted);text-transform:uppercase}.kp{display:grid;grid-template-columns:44px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.kp:last-child{border:0}.kpnum{width:36px;height:36px;border-radius:10px;background:#2d2819;color:var(--gold2);display:flex;align-items:center;justify-content:center;font-weight:900}.kp h4{margin:0 0 5px}.kp p{color:var(--muted);line-height:1.65;margin:0}.logic{display:flex;gap:7px;align-items:stretch;overflow:auto}.logic .node{min-width:150px;padding:12px;border-radius:12px;background:#13233a;border:1px solid #274160}.logic .arr{align-self:center;color:var(--gold)}
.case-card{overflow:hidden;padding:0}.case-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:top;background:#fff}.case-body{padding:15px}.case-body h3{margin:0 0 7px}.case-body p{color:var(--muted);line-height:1.65;font-size:14px}.case-link{cursor:pointer;color:var(--gold);font-weight:750}.case-detail img{max-width:760px;width:100%;display:block;margin:12px auto;border-radius:12px;background:#fff}.q{margin:14px 0;padding:17px;background:var(--panel);border:1px solid var(--line);border-radius:14px}.q h4{margin:0 0 12px;line-height:1.6}.opt{display:block;width:100%;text-align:left;border:1px solid #2b405e;background:#101d31;color:#dbe7f4;padding:10px 12px;border-radius:10px;margin:7px 0;cursor:pointer}.opt:hover{border-color:#5577a2}.opt.correct{background:#153c2d;border-color:#3b8c68}.opt.wrong{background:#46212a;border-color:#a84e61}.answer{display:none;margin-top:10px;color:var(--muted);line-height:1.7}.answer.show{display:block}.quick-table{width:100%;border-collapse:collapse}.quick-table th,.quick-table td{padding:11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.quick-table th{color:var(--gold2);font-size:13px}.quick-table td{color:#cbd8e6;line-height:1.6}.plan-day{position:relative;padding-left:25px;margin:14px 0}.plan-day:before{content:"";position:absolute;left:5px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--gold)}.plan-day:after{content:"";position:absolute;left:9px;top:18px;width:1px;height:calc(100% + 8px);background:var(--line)}.plan-day:last-child:after{display:none}.plan-day b{display:block}.plan-day span{color:var(--muted);font-size:13px;line-height:1.6}.hidden{display:none!important}.empty{padding:32px;text-align:center;color:var(--muted)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:80;display:none;align-items:center;justify-content:center;padding:20px}.modal.show{display:flex}.modal-inner{max-width:1000px;max-height:93vh;overflow:auto;background:#0b1422;border:1px solid var(--line);border-radius:16px;padding:16px}.modal img{max-width:100%;display:block;background:white}.modal-close{float:right;position:sticky;top:0;z-index:2}.footer{color:#657d9c;font-size:12px;text-align:center;padding:30px}
@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;z-index:50;left:0;bottom:0;top:auto;height:auto;width:100%;display:flex;overflow-x:auto;border-right:0;border-top:1px solid var(--line);background:#0a1423;padding:6px}.side-title{display:none}.navbtn{white-space:nowrap;width:auto}.main{padding:18px 14px 90px}.topbar{padding:12px 14px}.top-progress{display:none}.hero h1{font-size:28px}.g3,.g2{grid-template-columns:1fr}.lesson-head{display:block}.brand{font-size:14px}.case-card img{aspect-ratio:16/10}}

/* ===== PWA / 手机增强 ===== */
:root{--safe-bottom:env(safe-area-inset-bottom,0px)}
.install-btn{display:none}
.install-btn.show{display:inline-flex}
.update-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:6px}
.mobile-home-card{display:none}
@media(max-width:900px){
  body{overscroll-behavior-y:none}
  .topbar{padding-top:max(12px,env(safe-area-inset-top));gap:8px}
  .topbar .btn.small{padding:8px 10px}
  .install-btn.show{display:inline-flex}
  .sidebar{padding-bottom:calc(6px + var(--safe-bottom))}
  .main{padding-bottom:calc(98px + var(--safe-bottom))}
  .hero{padding:22px 18px;border-radius:18px}
  .hero h1{font-size:26px;line-height:1.25}
  .actions .btn{flex:1;min-width:125px}
  .logic{scroll-snap-type:x proximity}
  .logic .node,.route .step{scroll-snap-align:start}
  .mobile-home-card{display:block}
}
@media(max-width:520px){
  .brand b{display:none}
  .topbar{justify-content:space-between}
  .topbar .reset-label{display:none}
  .main{padding-left:12px;padding-right:12px}
  .card,.stat{border-radius:14px}
  .lesson-head h1{font-size:26px}
  .quick-table{font-size:13px}
}


/* ===== V2 多用户 / 云同步 ===== */
.account-btn{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sync-badge{font-size:12px;color:var(--muted);white-space:nowrap}
.sync-badge.good{color:var(--green)}
.sync-badge.warn{color:var(--gold)}
.sync-badge.bad{color:var(--red)}
.auth-modal{position:fixed;inset:0;background:rgba(2,7,15,.82);display:none;align-items:center;justify-content:center;z-index:1300;padding:18px}
.auth-modal.show{display:flex}
.auth-card{width:min(440px,100%);background:#0d1727;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 30px 90px rgba(0,0,0,.45)}
.auth-card h2{margin:0 0 8px}
.auth-card .section-sub{margin-bottom:18px}
.field{margin:12px 0}
.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
.field input{width:100%;box-sizing:border-box;padding:13px 14px;border-radius:12px;border:1px solid var(--line);background:#08111f;color:var(--text);font-size:16px;outline:none}
.field input:focus{border-color:#c9a95b}
.auth-actions{display:flex;gap:10px;margin-top:16px}
.auth-actions .btn{flex:1}
.auth-msg{min-height:22px;color:var(--gold);font-size:13px;margin-top:10px;line-height:1.5}
.auth-switch{text-align:center;color:var(--muted);font-size:13px;margin-top:14px}
.linkbtn{border:0;background:none;color:var(--gold);cursor:pointer;padding:2px 4px}
.cloud-note{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.6}
.profile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.profile-card{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.profile-card strong{font-size:25px}
.user-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid var(--line);border-radius:999px;color:var(--muted)}
.setup-banner{margin-bottom:14px;padding:12px 14px;border:1px dashed #8e743c;border-radius:12px;background:rgba(228,189,99,.07);color:#dec67f;font-size:13px;line-height:1.6}
@media(max-width:900px){
  .top-progress{display:none}
  .sync-badge{display:none}
  .profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .account-btn{max-width:120px}
}
@media(max-width:520px){
  .auth-card{padding:18px;border-radius:18px}
  .profile-grid{grid-template-columns:1fr 1fr}
}


/* ===== V2.1 理解增强：名词→判断→案例→串联 ===== */
.concept-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.concept-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.concept-card[open]{border-color:#3c587d}
.concept-card summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:16px}
.concept-card summary::-webkit-details-marker{display:none}
.concept-card summary:after{content:"＋";margin-left:auto;color:var(--gold);font-size:20px}
.concept-card[open] summary:after{content:"－"}
.concept-card summary small{display:block;color:var(--muted);font-weight:400;margin-top:4px}
.concept-index{width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#3b3018;color:var(--gold2);display:flex;align-items:center;justify-content:center;font-weight:900}
.concept-body{border-top:1px solid var(--line);padding:16px}
.concept-block{padding:12px 13px;border-radius:12px;background:#0c1728;margin-bottom:10px}
.concept-block>span{font-size:11px;color:var(--gold);font-weight:850;letter-spacing:.5px}
.concept-block p{color:#c6d5e6;line-height:1.75;margin:5px 0 0}
.concept-block ol{margin:8px 0 0 20px;padding:0;color:#c6d5e6;line-height:1.75}
.source-block{background:#10233a;border-left:3px solid var(--blue)}
.plain-block{background:#112820;border-left:3px solid var(--green)}
.mini-example{margin-top:10px;padding:12px 13px;border-radius:12px;background:#242216;color:#d9d0aa;line-height:1.7}
.mini-trap{margin-top:9px;padding:11px 13px;border-radius:12px;background:#2a171d;color:#e5b4bd;line-height:1.7}
.coord-chain{max-width:900px;display:flex;flex-direction:column;gap:6px}
.coord-step{display:grid;grid-template-columns:38px 1fr;gap:11px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:14px}
.coord-step p{margin:5px 0 0;color:var(--muted);line-height:1.65}
.coord-no{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#17372d;color:#aee9ce;font-weight:900}
.coord-arrow{padding-left:17px;color:var(--gold);font-size:20px;line-height:1}
.scenario-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}
.scenario-table{width:100%;border-collapse:collapse;min-width:760px;background:var(--panel)}
.scenario-table th,.scenario-table td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.65}
.scenario-table th{background:#13233a;color:var(--gold2);font-size:13px}
.scenario-table td{color:#c8d6e6}
.scenario-table td:first-child{width:110px;color:#fff}
.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.filter-card{padding:15px;background:var(--panel);border:1px solid var(--line);border-radius:14px}
.filter-top{display:flex;gap:8px;align-items:center}
.filter-top span{display:inline-flex;width:26px;height:26px;border-radius:8px;align-items:center;justify-content:center;background:#2d2819;color:var(--gold2);font-weight:900}
.filter-card p{color:#d5dfeb;line-height:1.65;margin:10px 0}
.filter-link{padding:9px 10px;border-radius:9px;background:#0d1929;color:var(--muted);font-size:13px;line-height:1.6}
@media(max-width:900px){
  .concept-grid,.filter-grid{grid-template-columns:1fr}
  .concept-card summary{padding:14px}
}


/* ===== V2.2 全章节教学增强：章节内原文案例 ===== */
.chapter-case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.chapter-case{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.chapter-case img{width:100%;height:260px;object-fit:contain;background:#eef1f4;display:block;cursor:zoom-in}
.chapter-case-body{padding:15px}
.chapter-case-body h3{margin:6px 0 10px}
.chapter-case-body p{color:#c8d6e6;line-height:1.7}
.chapter-case-question{padding:10px 12px;border-radius:10px;background:#14233a;color:#c4d5e8;line-height:1.65;margin:10px 0 12px}
@media(max-width:900px){
  .chapter-case-grid{grid-template-columns:1fr}
  .chapter-case img{height:220px}
}
