:root{--ink-900:#141816;--ink-700:#2f3733;--ink-600:#48514c;--ink-500:#5d6862;--surface-0:#ffffff;--surface-1:#f7faf9;--surface-2:#eff3f1;--surface-3:#e3eae7;--line-1:#e3e8e6;--line-2:#c7d1cc;--accent:#ffd400;--accent-hover:#f2c400;--accent-ink:#141816;--accent-soft:#fff8d6;--state:#2f6b4f;--state-soft:#ecf3f0;--ink-invert:#ffffff;--radius:14px;--radius-sm:10px;--radius-xs:6px;--radius-lg:20px;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;color:var(--ink-700);background:var(--surface-1);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:18px;line-height:1.8}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button{color:inherit}button:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid rgba(20,24,22,.06);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.4;font-weight:600;letter-spacing:0}h2{font-size:26px}h3{font-size:19px}p{color:var(--ink-900)}small{font-size:14px}.sidebar{width:232px;position:fixed;inset:0 auto 0 0;background:var(--surface-2);border-right:1px solid var(--line-2);display:flex;flex-direction:column;padding:34px 20px 0;z-index:10}.brand{display:flex;align-items:center;gap:12px;margin:0 14px 50px;font-size:28px;letter-spacing:3px;font-weight:600}.brand small{display:block;font-size:11px;letter-spacing:1.3px;color:var(--ink-900);margin-top:2px;white-space:nowrap}.brand-mark{background:var(--green);color:var(--ink-invert);border-radius:var(--radius);width:44px;height:46px;text-align:center;line-height:46px;font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;font-size:28px;letter-spacing:0;position:relative}.brand-mark:after{content:"";position:absolute;width:7px;height:7px;background:var(--surface-3);border-radius:50%;right:6px;top:6px}.nav-caption{color:var(--ink-700);font-size:13px;margin:0 16px 13px;letter-spacing:1.5px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{padding:12px 15px;border-radius:10px;display:flex;gap:12px;align-items:center;color:var(--ink-900);font-size:15px}.sidebar nav a>span{font-size:21px;width:22px;color:var(--ink-700)}.sidebar nav a.active{background:var(--surface-3);color:var(--green);font-weight:600}.sidebar nav a:hover{background:var(--surface-3)}.sidebar nav em{font-style:normal;font-size:13px;margin-left:auto;color:var(--ink-700)}.sidebar-note{padding:0 16px;margin-top:auto;margin-bottom:38px}.tiny-line{width:28px;height:2px;background:var(--surface-3);display:block;margin-bottom:20px}.sidebar-note p{font-size:19px;line-height:1.8;color:var(--ink-700);font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900}.sidebar-note small{font-size:13px;color:var(--ink-700)}.sidebar-footer{display:flex;align-items:center;gap:10px;margin:0 -20px;padding:21px 24px;border-top:1px solid var(--line-2);font-size:14px}.avatar{width:32px;height:32px;border-radius:50%;background:var(--surface-3);color:var(--ink-900);display:grid;place-items:center}.sidebar-footer small{display:block;font-size:12px;color:var(--ink-700)}.sidebar-footer>.local-dot{margin-left:auto}.local-dot{display:inline-block;width:6px;height:6px;background:var(--surface-3);border-radius:50%}.page-shell{margin-left:232px}.topbar{height:80px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 44px;background:var(--surface-0)}.breadcrumbs{font-size:13px;color:var(--ink-700);display:flex;gap:14px}.breadcrumbs strong{color:var(--ink-900);font-weight:500}.top-actions{display:flex;gap:23px;align-items:center}.search-shortcut{border:0;background:none;color:var(--ink-700);font-size:14px;display:flex;align-items:center;gap:8px}.search-shortcut:first-letter{font-size:22px}kbd{font-family:inherit;border:1px solid var(--line-2);border-radius:6px;padding:0 5px;font-size:12px;color:var(--ink-700);margin-left:17px}.connection{border:1px solid var(--line-2);background:var(--surface-2);border-radius:20px;padding:5px 11px;color:var(--ink-700);font-size:13px;display:flex;align-items:center;gap:7px}.connection i{height:5px;width:5px;background:var(--surface-3);border-radius:50%}.connection.offline{background:var(--surface-2);color:var(--ink-700)}.connection.offline i{background:var(--surface-3)}#main{max-width:1550px;margin:auto;padding:43px 44px 30px}.eyebrow{font-size:13px;font-weight:600;color:var(--ink-700);letter-spacing:2px;display:block;margin-bottom:14px}.welcome{display:grid;grid-template-columns:1.25fr 1fr;gap:24px;min-height:363px;align-items:center;padding:8px 0 30px}.welcome h1{font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;;font-size:45px;line-height:1.45;letter-spacing:0;margin:0 0 20px}.underlined{position:relative;z-index:1}.underlined:after{content:"";position:absolute;height:8px;background:var(--surface-3);left:2px;right:0;bottom:4px;z-index:-1}.welcome p{font-size:14px;line-height:1.9;margin-bottom:24px}.hero-actions{display:flex;gap:26px;align-items:center}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;gap:20px;border-radius:10px;padding:10px 19px;font-size:14px;border:1px solid transparent;font-weight:500;line-height:1.6}.primary{background:var(--green);color:var(--ink-invert)}.primary:hover{background:var(--ink-900);transform:translateY(-1px)}.secondary{border-color:var(--line-2);background:var(--surface-0);color:var(--ink-900)}.secondary:hover{background:var(--surface-1)}.text-link{font-size:13px;color:var(--ink-700)}.text-link:hover{color:var(--green)}.hero-proof{display:flex;gap:25px;margin-top:29px;color:var(--ink-700);font-size:13px}.hero-proof strong{font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;font-size:22px;;color:var(--ink-900);margin-right:3px}.hero-proof>span+span{border-left:1px solid var(--line-2);padding-left:23px}.learning-art{position:relative;height:322px;isolation:isolate;max-width:480px;width:100%;justify-self:end;overflow:hidden;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius)}.art-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(20,24,22,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(20,24,22,.06) 1px,transparent 1px);background-size:26px 26px}.art-label{position:absolute;left:23px;top:19px;font-size:11px;letter-spacing:2.5px;color:var(--ink-700)}.orbit{border:1px dashed var(--line-2);border-radius:50%;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:240px;width:240px}.orbit-two{width:180px;height:180px;border:1px solid var(--line-2)}.art-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;height:140px;width:140px;background:var(--surface-3);box-shadow:inset 0 0 0 12px rgba(20,24,22,.07);display:flex;align-items:center;justify-content:center;font-family:"Songti SC",serif;font-size:43px;color:var(--ink-900);padding-bottom:16px}.art-center>span{color:var(--ink-700);margin-left:9px}.art-center small{position:absolute;bottom:30px;font-family:inherit;font-size:12px;letter-spacing:1px;color:var(--ink-700)}.art-node{position:absolute;background:var(--surface-0);border:1px solid var(--line-2);box-shadow:0 5px 15px rgba(20,24,22,.06);border-radius:10px;font-size:13px;padding:10px 15px;display:flex;align-items:center;gap:7px;color:var(--ink-700)}.art-node i{font-style:normal;background:var(--surface-3);border-radius:6px;width:20px;height:20px;text-align:center;line-height:20px;color:var(--ink-900)}.node-one{left:7%;top:21%}.node-two{right:3%;top:48%}.node-three{left:12%;bottom:13%}.art-foot{position:absolute;bottom:16px;right:18px;font-size:11px;letter-spacing:2px;color:var(--ink-600)}.section-head{display:flex;justify-content:space-between;align-items:end;margin:21px 0 21px;gap:20px}.section-head .eyebrow{margin-bottom:6px;font-size:12px}.section-head h2{font-size:25px;margin:0;font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;}.section-head>.muted{font-size:13px;white-space:nowrap}.muted{color:var(--muted)}.path-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.path-card{display:block;padding:23px 24px 18px;background:var(--surface-0);border:1px solid var(--line);border-radius:var(--radius);transition:transform .2s,border-color .2s}.path-card:hover{transform:translateY(-3px);border-color:var(--line-2);box-shadow:0 8px 22px rgba(20,24,22,.06)}.path-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.path-icon{width:37px;height:37px;display:inline-grid;place-items:center;border-radius:10px;font-size:25px;background:var(--surface-2);color:var(--ink-700)}.blue .path-icon,.path-icon.blue{color:var(--ink-900);background:var(--surface-2)}.amber .path-icon,.path-icon.amber{background:var(--surface-2);color:var(--ink-700)}.violet .path-icon,.path-icon.violet{background:var(--surface-3);color:var(--ink-700)}.rose .path-icon,.path-icon.rose{background:var(--surface-3);color:var(--ink-700)}.teal .path-icon,.path-icon.teal{background:var(--surface-2);color:var(--ink-700)}.path-index{font-size:11px;letter-spacing:1px;color:var(--ink-600)}.path-card>small{font-size:12px;letter-spacing:1px;color:var(--ink-700)}.path-card h3{font-size:18px;font-weight:550;margin:7px 0 9px}.path-card h3 span{float:right;font-size:18px;font-weight:400;color:var(--ink-700)}.path-card p{font-size:13px;line-height:1.9;margin-bottom:21px;min-height:20px;color:var(--ink-700)}.path-bottom{display:flex;align-items:center;gap:20px;font-size:12px;color:var(--ink-700)}.progress{height:3px;background:var(--surface-2);border-radius:6px;overflow:hidden;flex:1}.progress i{display:block;height:100%;background:var(--surface-3)}.featured{margin-top:37px}.featured-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.mini-resource{display:flex;align-items:center;gap:13px;background:var(--surface-0);border:1px solid var(--line);border-radius:10px;padding:17px 15px;text-align:left;width:100%;min-width:0}.mini-resource:hover{border-color:var(--line-2);background:var(--surface-0)}.mini-resource strong{display:block;font-size:13px;font-weight:500;line-height:1.6}.mini-resource small{display:block;color:var(--ink-700);font-size:12px;margin-top:5px}.mini-resource .arrow{margin-left:auto;color:var(--ink-600);font-size:18px}.grade{display:inline-flex;flex-shrink:0;width:26px;height:26px;align-items:center;justify-content:center;border-radius:6px;font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;font-size:17px;font-weight:bold}.grade-S{color:var(--ink-700);background:var(--surface-2);border:1px solid var(--line-2)}.grade-A{color:var(--ink-900);background:var(--surface-2);border:1px solid var(--line-2)}.grade-B{color:var(--ink-700);background:var(--surface-2);border:1px solid var(--line-2)}.grade-C{color:var(--ink-700);background:var(--surface-2);border:1px solid var(--line-2)}.scope-note{display:flex;gap:14px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;padding:17px 22px;margin-top:32px}.scope-note>span{font-size:24px;color:var(--ink-700)}.scope-note strong{font-size:13px;font-weight:500;color:var(--ink-900)}.scope-note p{font-size:13px;margin:4px 0 0;color:var(--ink-700)}.page-footer{display:flex;justify-content:space-between;padding:25px 44px;border-top:1px solid var(--line);color:var(--ink-600);font-size:12px;gap:20px}.page-intro{margin:8px 0 28px}.page-intro h1{font-size:32px;font-family:"Songti SC",Georgia,serif;margin-bottom:13px;font-weight:500}.page-intro p{font-size:14px}.library-controls{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}.big-search{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:0 0 16px;font-size:25px;color:var(--ink-700)}.big-search input{width:100%;border:0;background:none;font-size:17px;color:var(--ink);outline:none;padding:6px}.big-search kbd{white-space:nowrap}.filter-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.filter-row select{padding:7px 10px;border:1px solid var(--line-2);border-radius:6px;background:var(--surface-0);color:var(--ink-700);font-size:13px;max-width:160px}.filter-toggle{border:1px solid var(--line-2);background:white;border-radius:6px;color:var(--ink-700);font-size:13px;padding:6px 11px}.filter-toggle.selected{background:var(--surface-3);border-color:var(--line-2)}.quiet{border:0;background:transparent;color:var(--ink-700);font-size:13px;padding:3px 0}.quiet:hover{color:var(--ink-900)}.results-heading{display:flex;justify-content:space-between;font-size:13px;color:var(--ink-600);margin:23px 0 15px}.results-heading strong{color:var(--ink-900);font-size:16px}.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.resource-card{display:flex;flex-direction:column;background:white;border:1px solid var(--line);border-radius:var(--radius);padding:20px;min-width:0}.resource-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--ink-700);margin-bottom:14px}.bookmark{margin-left:auto;background:none;border:0;color:var(--ink-600);font-size:21px;padding:0 2px}.bookmark.on{color:var(--ink-700)}.resource-title{border:0;background:none;text-align:left;font-size:16px;font-weight:550;padding:0;margin-bottom:11px;line-height:1.6}.resource-title:hover{color:var(--ink-700)}.resource-card p{font-size:13px;line-height:1.8;color:var(--ink-700);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}.resource-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line-1);padding-top:12px;margin-top:5px;gap:10px}.resource-bottom>span{font-size:12px;color:var(--ink-700)}.pagination{display:flex;justify-content:center;align-items:center;gap:25px;margin:30px 0;font-size:14px;color:var(--ink-700)}.pagination button{font-size:13px;padding:6px 13px}.empty{grid-column:1/-1;text-align:center;padding:60px 25px;width:100%;border:1px solid var(--line-1);border-radius:var(--radius);background:var(--surface-0)}.empty>span{font-size:33px;color:var(--ink-600);display:block;margin-bottom:15px}.empty h3{font-weight:500;color:var(--ink-900)}.empty p{font-size:14px;color:var(--ink-700)}.learn-header{display:flex;justify-content:space-between;align-items:center;margin:0 0 25px;gap:20px}.back-link{font-size:13px;color:var(--ink-700)}.learn-header h1{font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;font-size:28px;;margin:8px 0}.learn-header p{font-size:13px;margin:0}.learn-header>.secondary{font-size:13px;white-space:nowrap}.learning-layout{display:grid;grid-template-columns:164px minmax(310px,1fr) minmax(300px,.85fr);gap:20px;align-items:start}.step-sidebar{position:sticky;top:20px}.route-overview{padding:15px 0 20px}.route-overview .eyebrow{font-size:12px;margin-bottom:8px}.route-overview strong{font-size:26px;font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;;color:var(--ink-700)}.route-overview strong small{font-size:12px;font-family:inherit;color:var(--ink-600)}.route-overview .progress{margin-top:12px;width:85%}.step-sidebar nav{display:grid;gap:6px}.step-link{display:flex;align-items:center;gap:10px;padding:12px 10px;border-radius:10px;font-size:13px;color:var(--ink-700)}.step-link>span{font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;font-size:14px;width:20px;color:var(--ink-600)}.step-link small{display:block;font-size:11px;color:var(--ink-600);margin-top:3px}.step-link.active{background:var(--surface-3);color:var(--ink-900)}.step-link.active>span{color:var(--ink-900)}.step-link:hover{background:var(--surface-2)}.step-note{padding:24px 10px;font-family:"Songti SC",serif;font-size:14px;color:var(--ink-600);line-height:1.9}.lesson-panel{background:var(--surface-0);border:1px solid var(--line);border-radius:var(--radius);padding:26px;min-width:0}.lesson-heading .eyebrow{font-size:12px;letter-spacing:2px}.lesson-heading h2{font-size:27px;font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;;margin-bottom:9px}.lesson-heading p{font-size:13px}.goal-label{font-size:13px;color:var(--ink-700);font-weight:600}.goal-input{display:block;width:100%;resize:vertical;border:1px solid var(--line-2);border-radius:10px;background:var(--surface-0);padding:11px 12px;color:var(--ink-900);font-size:13px;margin:8px 0 20px;min-height:66px}.goal-input::placeholder,.answer::placeholder{color:var(--ink-600);line-height:1.9}.lesson-tabs{display:flex;gap:23px;border-bottom:1px solid var(--line);margin-bottom:20px}.lesson-tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:8px 0 12px;color:var(--ink-600);font-size:13px}.lesson-tabs button.active{border-color:var(--green);color:var(--green);font-weight:600}.lesson-tabs button span{font-size:12px;border-radius:6px;background:var(--surface-2);padding:0 4px}.practice-note{font-size:13px;color:var(--ink-700);line-height:1.8;background:var(--surface-1);padding:10px 11px;border-radius:6px;margin-bottom:23px}.practice-note>span{margin-right:5px}.question{display:block;font-size:14px;margin:21px 0 9px;color:var(--ink-900)}.question>span{font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;color:var(--ink-600);font-size:13px;margin-right:9px}.question strong{font-weight:500}.answer{border:1px solid var(--line-2);border-radius:10px;padding:11px 13px;resize:vertical;width:100%;font-size:13px;line-height:1.9;color:var(--ink-900);min-height:105px;display:block;background:var(--surface-0)}.answer:focus,.goal-input:focus{border-color:var(--line-2);outline:2px solid rgba(20,24,22,.06)}.checklist{background:var(--surface-1);border-radius:10px;padding:17px;margin-top:24px}.checklist h3{font-size:13px;font-weight:500;margin-bottom:12px;color:var(--ink-900)}.checklist p{font-size:13px;margin:7px 0;color:var(--ink-700)}.checklist p span{margin-right:7px;color:var(--ink-600)}.checklist small{display:block;font-size:11px;line-height:1.7;margin-top:12px;color:var(--ink-600)}.practice-actions{margin-top:21px;display:flex;gap:15px;align-items:center;flex-wrap:wrap}.practice-actions .primary{font-size:13px;padding:8px 12px}.practice-actions>span{font-size:12px;color:var(--ink-600)}#learn-pane>.mini-resource{margin-bottom:10px}#learn-pane>p{font-size:13px}.coach-panel{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface-0);position:sticky;top:20px;display:flex;flex-direction:column;height:min(760px,calc(100vh - 40px));min-height:540px;overflow:hidden}.coach-head{display:flex;align-items:center;padding:19px 18px;gap:10px;border-bottom:1px solid var(--line-1)}.coach-avatar{border-radius:10px;background:var(--surface-3);width:35px;height:35px;display:grid;place-items:center;color:var(--ink-900);font-size:24px}.coach-head h3{font-size:14px;font-weight:500;margin:0}.coach-head small{font-size:11px;color:var(--ink-700)}.coach-head .local-dot{width:4px;height:4px;margin-right:3px}.coach-label{margin-left:auto;font-size:11px;letter-spacing:1px;border:1px solid var(--line-2);border-radius:6px;color:var(--ink-600);padding:1px 5px}.messages{flex:1;overflow-y:auto;padding:20px 16px;scroll-behavior:smooth}.coach-welcome{background:var(--surface-2);border:1px solid var(--line-1);border-radius:10px;padding:16px 15px;color:var(--ink-700);font-size:13px}.coach-welcome>span{display:block;font-size:22px;margin-bottom:8px;color:var(--ink-700)}.coach-welcome strong{font-weight:500;font-size:14px}.coach-welcome p{margin:8px 0 0;font-size:13px;color:var(--ink-700);line-height:1.9}.message{margin-top:21px}.message-author{font-size:12px;color:var(--ink-600);margin-bottom:7px}.message-content{font-size:13px;color:var(--ink-900);line-height:1.95;overflow-wrap:anywhere}.message.user .message-content{padding:11px 13px;border-radius:10px;background:var(--surface-2);color:var(--ink-900)}.message.user .message-author{text-align:right}.message-content a{color:var(--ink-900);text-decoration:underline;text-underline-offset:3px}.chat-heading{display:inline-block;margin:9px 0 3px}.citations{margin-top:12px;padding-top:10px;border-top:1px solid var(--line-1);font-size:12px;color:var(--ink-700)}.citations summary{cursor:pointer}.citations button{display:block;background:none;border:0;text-align:left;font-size:12px;color:var(--ink-700);padding:5px 0}.coach-bottom{border-top:1px solid var(--line-2);padding:12px 14px 9px;background:var(--surface-0)}.coach-prompts{display:flex;gap:7px;margin-bottom:11px;flex-wrap:wrap}.coach-prompts button{background:var(--surface-1);border:1px solid var(--line-2);border-radius:6px;font-size:12px;padding:5px 8px;color:var(--ink-700)}#chat-form{border:1px solid var(--line-2);background:var(--surface-0);border-radius:10px;padding:10px}#chat-input{width:100%;border:0;resize:none;background:none;color:var(--ink-900);font-size:13px;line-height:1.7;outline:none}#chat-input::placeholder{color:var(--ink-600)}.send-row{display:flex;justify-content:space-between;align-items:center}.send-row small{font-size:11px;color:var(--ink-600)}.send{border:0;background:var(--green);color:white;width:27px;height:27px;border-radius:6px;font-size:20px}.error-text{color:var(--ink-900)!important;font-size:13px;margin:8px 0 0}.thinking{color:var(--ink-700);font-size:13px;margin-top:20px;display:flex;align-items:center;gap:8px}.thinking span{width:9px;height:9px;border-radius:50%;background:var(--surface-3);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.25}}.stats-strip{display:flex;gap:50px;border:1px solid var(--line);border-radius:var(--radius);padding:25px 30px;background:white;margin:20px 0 25px}.stats-strip>div{display:flex;align-items:center;gap:14px}.stats-strip strong{font-size:35px;font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;;color:var(--ink-700)}.stats-strip span{font-size:13px;color:var(--ink-700)}.workbook-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.workbook-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:25px}.workbook-card h2{font-size:22px;margin:15px 0 12px}.workbook-card p{font-size:14px;min-height:42px}.workbook-card>.progress{margin:20px 0 7px}.workbook-card>small{font-size:13px;color:var(--ink-700)}.workbook-card>div:last-child{margin-top:20px;display:flex;align-items:center;gap:25px}.skill-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:40px;margin:35px 0}.skill-card{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);padding:38px}.skill-symbol{width:65px;height:65px;border-radius:var(--radius);background:var(--green);color:var(--ink-invert);display:grid;place-items:center;font-size:38px;margin-bottom:28px}.skill-card h2{font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;font-size:31px;;margin-bottom:13px}.skill-card code{font-size:14px;color:var(--ink-700);background:var(--surface-1);padding:4px 8px;border-radius:6px;overflow-wrap:anywhere}.skill-card p{font-size:14px;color:var(--ink-700);line-height:2;margin:23px 0}.skill-card .text-link{display:block;margin-top:18px}.skill-guide{padding:20px 0}.skill-guide h2{font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;}.skill-guide ol{padding-left:22px;margin-top:28px;color:var(--ink-700)}.skill-guide li{padding-left:12px;margin-bottom:22px}.skill-guide strong{font-size:15px;font-weight:500;color:var(--ink-900)}.skill-guide p{font-size:13px;margin:5px 0;color:var(--ink-700)}.sample-prompt{border-left:2px solid var(--line-2);padding:15px 22px;background:var(--surface-2);font-size:14px;line-height:2;color:var(--ink-700)}.skill-source{background:var(--surface-0);border:1px solid var(--line);padding:20px;border-radius:10px;font-size:14px;color:var(--ink-700)}.skill-source summary{cursor:pointer}pre{font-size:13px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-1);padding:18px;border-radius:10px;color:var(--ink-700)}dialog{border:1px solid var(--line-2);border-radius:var(--radius);padding:35px;width:min(680px,calc(100vw - 30px));max-height:85vh;background:var(--surface-0);color:var(--ink);box-shadow:0 30px 100px rgba(20,24,22,.06);overflow:auto}dialog::backdrop{background:rgba(20,24,22,.06);backdrop-filter:blur(3px)}.modal-close{position:absolute;right:16px;top:14px;border:0;background:var(--surface-1);color:var(--ink-700);border-radius:50%;height:29px;width:29px;font-size:24px;line-height:22px}.modal-head{padding-right:10px}.modal-head h2{font-size:26px;margin:13px 0}.modal-head p{font-size:15px;line-height:1.9}.modal-head .resource-meta{margin-top:10px}.evidence-box{padding:14px 17px;border-radius:10px;background:var(--surface-1);margin:20px 0}.evidence-box strong{font-size:13px;color:var(--ink-700);font-weight:500}.evidence-box p{font-size:13px;margin:5px 0 0;color:var(--ink-700)}.modal-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:25px 0}.modal-actions>a{background:var(--ink-900);color:var(--surface-0);border-radius:6px;padding:9px 15px;font-size:13px}.modal-actions button{font-size:13px;padding:8px 13px}dialog>h3{font-size:15px;margin-top:25px}dialog>p{font-size:14px}.source-list{padding-left:16px;font-size:13px;line-height:2.2;color:var(--ink-700)}.source-list a:hover{text-decoration:underline}.file-path{word-break:break-all;font-size:13px;background:var(--surface-1);padding:15px;border-radius:10px}.export-preview{margin-top:20px;font-size:14px}.copy-fallback{width:100%;min-height:160px;border:1px solid var(--line-2);border-radius:10px;padding:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#toast{position:fixed;bottom:27px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:var(--ink-900);color:var(--ink-invert);border:1px solid var(--line-2);box-shadow:0 4px 30px rgba(20,24,22,.06);padding:12px 23px;border-radius:10px;font-size:14px;transition:all .2s;max-width:min(600px,90vw);z-index:100}#toast.show{opacity:1;transform:translate(-50%,0)}.loading-screen{height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;font-family:"Songti SC",serif;font-size:42px;color:var(--ink-900)}.loading-screen span{font:13px sans-serif;color:var(--ink-700)}
@media(min-width:1600px){#main{padding-top:50px}.welcome h1{font-size:51px}.path-card{padding:27px}.welcome{min-height:400px}.learning-art{height:345px}.learning-layout{grid-template-columns:175px minmax(370px,1fr) minmax(350px,.88fr)}}
@media(max-width:1250px){.sidebar{width:200px;padding-left:14px;padding-right:14px}.page-shell{margin-left:200px}.brand{margin-left:10px}.sidebar-footer{margin-left:-14px;margin-right:-14px}#main{padding:30px}.topbar{padding:0 30px}.welcome h1{font-size:36px}.hero-actions{gap:16px}.hero-proof{gap:16px}.hero-proof>span+span{padding-left:13px}.learning-art{height:300px}.path-card{padding:18px}.path-card h3{font-size:17px}.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-layout{grid-template-columns:135px minmax(300px,1fr);gap:17px}.coach-panel{grid-column:2;position:static;height:600px}.lesson-panel{grid-column:2}.step-sidebar{grid-row:1/3}.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-footer{padding:22px 30px}.node-one{left:3%}.node-two{right:2%;top:50%}.node-three{left:4%;bottom:10%}}
@media(max-width:900px){.sidebar{width:174px;padding:25px 10px 0}.brand{gap:9px;font-size:25px;margin-bottom:37px;margin-left:8px}.brand-mark{height:38px;width:35px;line-height:38px;font-size:25px}.brand small{font-size:10px}.sidebar nav a{font-size:13px;gap:8px;padding:10px}.sidebar nav em{display:none}.sidebar-footer{margin-left:-10px;margin-right:-10px;padding:18px 14px}.page-shell{margin-left:174px}#main{padding:28px 22px}.topbar{padding:0 22px;height:66px}.search-shortcut span,.search-shortcut kbd{display:none}.top-actions{gap:15px}.welcome{grid-template-columns:1fr .85fr;gap:14px}.welcome h1{font-size:32px}.welcome p{font-size:13px}.hero-actions{gap:12px}.hero-actions .primary{font-size:13px;padding:8px 12px}.hero-actions .text-link{font-size:12px}.hero-proof{gap:10px}.hero-proof strong{font-size:20px}.hero-proof>span+span{padding-left:9px}.hero-proof>span{font-size:11px}.learning-art{height:275px}.orbit-one{height:210px;width:210px}.orbit-two{height:160px;width:160px}.art-center{height:125px;width:125px;font-size:37px}.art-node{font-size:11px;padding:7px}.art-node i{font-size:13px;width:16px;height:16px;line-height:16px}.node-two{top:60%}.node-three{bottom:4%;left:3%}.path-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head>.muted{display:none}.learning-layout{grid-template-columns:1fr}.step-sidebar{position:static;grid-row:auto}.step-sidebar nav{display:flex;overflow-x:auto;gap:8px;padding-bottom:7px}.step-link{flex-shrink:0;padding:8px}.step-link small{display:none}.route-overview{display:none}.step-note{display:none}.lesson-panel,.coach-panel{grid-column:1}.skill-layout{gap:20px;grid-template-columns:1fr}.skill-card{padding:30px}.workbook-grid{grid-template-columns:1fr}.page-footer{font-size:11px}.page-intro h1{font-size:28px}.learn-header h1{font-size:26px}.learn-header p{font-size:12px}}
@media(max-width:650px){.sidebar{position:static;width:100%;padding:16px 18px 10px;flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid var(--line-2);flex-wrap:wrap}.brand{margin:0;font-size:24px}.brand small{font-size:10px}.brand-mark{height:35px;width:34px;line-height:35px}.nav-caption,.sidebar-note,.sidebar-footer{display:none}.sidebar nav{display:flex;margin:13px -4px 0;width:100%;justify-content:space-between;gap:2px}.sidebar nav a{font-size:13px;padding:7px 8px;gap:5px}.sidebar nav a>span{font-size:16px;width:auto}.page-shell{margin-left:0}.topbar{height:49px;padding:0 20px}.breadcrumbs{font-size:12px;gap:9px}.connection{font-size:11px;padding:3px 8px}.search-shortcut{font-size:22px}#main{padding:24px 19px}.welcome{grid-template-columns:1fr;padding-bottom:24px;gap:26px}.welcome h1{font-size:38px;letter-spacing:0;margin:0 0 16px}.welcome p{font-size:13px}.hero-actions .primary{font-size:14px;padding:10px 17px}.hero-actions{gap:23px}.hero-actions .text-link{font-size:13px}.hero-proof{margin-top:21px;gap:20px}.hero-proof strong{font-size:24px}.hero-proof>span{font-size:13px}.hero-proof>span+span{padding-left:18px}.learning-art{display:none}.welcome .eyebrow{font-size:12px}.section-head{margin:20px 0 16px}.section-head h2{font-size:23px}.section-head .text-link{font-size:12px;white-space:nowrap}.path-grid{gap:12px}.path-card{padding:17px 15px 14px}.path-card h3{font-size:17px;line-height:1.6;margin:7px 0}.path-card h3 span{display:none}.path-card>small{font-size:11px;letter-spacing:0}.path-card p{font-size:13px;min-height:37px;margin-bottom:15px}.path-top{margin-bottom:13px}.path-icon{height:33px;width:33px;border-radius:10px;font-size:23px}.path-index{font-size:11px;letter-spacing:0}.path-bottom{gap:12px;font-size:11px}.featured{margin-top:28px}.featured-grid{grid-template-columns:1fr}.mini-resource{padding:14px 15px}.scope-note{padding:14px}.scope-note strong{font-size:13px}.scope-note p{font-size:12px}.page-footer{padding:18px 20px;flex-direction:column;gap:7px;font-size:11px}.library-controls{padding:14px}.big-search{padding-bottom:10px;gap:8px}.big-search input{font-size:13px}.big-search kbd{display:none}.filter-row{gap:7px;margin-top:12px}.filter-row select{font-size:13px;padding:6px;max-width:130px}.filter-toggle{font-size:13px}.resource-grid{grid-template-columns:1fr;gap:12px}.resource-card{padding:17px}.page-intro h1{font-size:27px}.page-intro .eyebrow{font-size:12px}.page-intro p{font-size:13px}.learn-header{align-items:start;gap:12px}.learn-header h1{font-size:25px}.learn-header p{max-width:225px}.learn-header>.secondary{font-size:11px;padding:6px 8px;gap:0;margin-top:25px}.lesson-panel{padding:21px 18px}.lesson-heading h2{font-size:27px}.question{font-size:14px}.answer,.goal-input{font-size:14px}.coach-panel{height:600px;min-height:500px}.message-content{font-size:14px}.coach-welcome p{font-size:13px}#chat-input{font-size:14px}.stats-strip{padding:20px 15px;gap:18px}.stats-strip>div{display:block}.stats-strip strong{display:block;font-size:30px}.stats-strip span{font-size:12px}.workbook-card{padding:23px}.skill-layout{margin-top:25px}.skill-card{padding:28px}.skill-guide{padding:8px 0}.scope-note{margin-top:22px}dialog{padding:29px 22px}.modal-head h2{font-size:24px}.modal-actions{gap:8px}.modal-actions button{font-size:12px}.source-list{overflow-wrap:anywhere}.desktop{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Reading density: keep learning content comfortably readable. */
.path-card p,.resource-card p,.mini-resource strong,.welcome p,.question,.answer,.goal-input,.message-content{font-size:15px}
.path-card h3{font-size:19px}.path-card>small,.mini-resource small,.resource-bottom>span,.results-heading,.filter-row select,.filter-toggle,.practice-note,.coach-welcome p,.checklist p,.coach-prompts button{font-size:13px}
.path-card p,.resource-card p,.mini-resource small,.scope-note p,.practice-note,.checklist p,.coach-welcome p,.page-intro p{color:var(--ink-900)}
.resource-meta,.eyebrow,.text-link,.muted{color:var(--ink-900)}.question,.answer,.goal-input,.message-content{color:var(--ink-900)}
.path-card p{line-height:1.85;min-height:48px}.mini-resource{min-height:84px}.resource-title{font-size:18px}#chat-input{font-size:15px}.coach-head h3{font-size:17px}.coach-welcome strong{font-size:15px}.step-link{font-size:14px}.step-link small{font-size:12px}.goal-label{font-size:13px}.checklist h3{font-size:14px}.connection{font-size:13px}.topbar .breadcrumbs{font-size:14px}
@media(max-width:650px){.path-card h3{font-size:16px}.path-card p{font-size:14px;min-height:65px}.path-card>small{font-size:13px}.mini-resource strong{font-size:15px}.question,.answer,.goal-input,.message-content,#chat-input{font-size:17px}.coach-panel{height:650px}.topbar .breadcrumbs,.connection{font-size:13px}.section-head h2{font-size:22px}}

.learning-layout>*{min-width:0}.coach-panel{width:100%}.step-sidebar nav{max-width:100%}.source-list,.citations button{overflow-wrap:anywhere}
@media(max-width:900px){.learning-layout{grid-template-columns:minmax(0,1fr)}}

/* ── 角色化覆盖：一个强调色 + 一个状态色，锁定全页 ── */
/* 强调色 = 黄，只出现在：品牌标记、主按钮、当前导航、标题高亮、S级 */
.brand-mark{background:var(--ink-900);color:var(--accent);border:0}
.underlined{box-shadow:inset 0 -.16em 0 var(--accent)}
button.primary,.primary,.hero-actions .primary,.practice-actions .primary,.workbook-card .primary,.empty .primary{
 background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);font-weight:700}
button.primary:hover,.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.primary:active{transform:translateY(1px)}
.sidebar nav a.active{background:var(--ink-900);color:var(--ink-invert)}
.sidebar nav a.active em{color:var(--accent);background:transparent}
.grade-S{background:var(--accent);color:var(--accent-ink);font-weight:700;border:0}
.grade-A{background:var(--surface-3);color:var(--ink-700);border:0}
.grade-B,.grade-C{background:var(--surface-2);color:var(--ink-500);border:0}
/* 状态色 = 绿，只表达进度与连接，不做装饰 */
.progress i{background:var(--state)}
.local-dot,.connection i{background:var(--state)}
.connection.offline i{background:var(--ink-500)}
.step-link.active{background:var(--surface-2)}
.step-link.active>span{color:var(--state)}
/* 路线卡：取消 6 套彩色系统，统一中性；区别交给图标与标题 */
.path-card .path-icon,.workbook-card .path-icon{background:var(--surface-2);color:var(--ink-700);border:1px solid var(--line-1)}
.path-card:hover .path-icon{background:var(--accent-soft);border-color:var(--accent)}
/* 可点击目标下限 */
.send{min-width:44px;min-height:44px}
.back-link,.text-link{display:inline-flex;align-items:center;min-height:32px}
.connection,.search-shortcut{min-height:34px}
.coach-prompts button,.pagination button,.filter-toggle,.modal-actions button{min-height:36px}
.bookmark{min-width:32px;min-height:32px}
.resource-title{min-height:32px}
.quiet{min-height:32px;padding-left:10px;padding-right:10px}
/* 中文行宽：30-40 字 */
.welcome p,.page-intro p,.coach-welcome p,.skill-guide p{max-width:34em}
.scope-note p{max-width:64em}
.message-content{max-width:38em}
@media(max-width:650px){
 .send{min-width:48px;min-height:48px}
 .back-link,.text-link,.connection,.search-shortcut,.learn-header>.secondary{min-height:40px}
 .bookmark,.quiet,.resource-title{min-height:40px}.search-shortcut{min-width:40px}
 .coach-prompts button{min-height:40px}}

/* 显示字体：Noto Sans SC 900（OFL，自托管子集 650 字）。
   系统 Songti/PingFang 当标题字等同于默认用 Inter，且细宋体配高饱和黄气质冲突。 */
@font-face{font-family:"ZX Display";src:url("/zhixing-display.woff2") format("woff2");
 font-weight:900;font-style:normal;font-display:swap}
h1,h2,h3,.brand,.hero-proof strong,.stats-strip strong,.route-overview strong,
.grade,.step-link>span,.question>span,.art-center{
 font-family:"ZX Display",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
 font-weight:900;letter-spacing:0}
h1,.welcome h1,.page-intro h1,.learn-header h1{line-height:1.22}

/* 深色侧栏：给整页一个结构锚点，让黄色真正跳出来 */
.sidebar{background:var(--ink-900);border-right:0}
.sidebar .brand,.sidebar-footer>div{color:var(--ink-invert)}
.sidebar .brand small{color:#8d9a93}
.nav-caption{color:#8d9a93}
.sidebar nav a{color:#c9d2ce}
.sidebar nav a:hover{background:#242c28;color:var(--ink-invert)}
.sidebar nav a.active{background:var(--accent);color:var(--accent-ink)}
.sidebar nav a.active em{color:var(--accent-ink)}
.sidebar nav em{color:#8d9a93;background:transparent}
.sidebar-note p{color:#b3beb8}
.sidebar-note small,.sidebar-footer small{color:#8d9a93}
.sidebar-footer{border-top:1px solid #2a332e}
.sidebar .tiny-line{background:#2a332e}
.sidebar .avatar{background:#242c28;color:var(--accent)}
.sidebar .brand-mark{background:var(--accent);color:var(--ink-900)}
@media(max-width:650px){.sidebar{border-bottom:0}}

/* 卡片：靠描边和留白分层，不靠阴影堆叠 */
.path-card,.resource-card,.workbook-card,.mini-resource,.skill-card{
 background:var(--surface-0);border:1px solid var(--line-1);box-shadow:none}
.path-card:hover,.resource-card:hover,.mini-resource:hover{border-color:var(--line-2)}
.path-card:hover{transform:translateY(-2px)}
.path-card{transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .25s}
@media(prefers-reduced-motion:reduce){.path-card,.path-card:hover{transition:none;transform:none}}

/* ── 细节打磨 ── */
/* hero 图示：此前全灰无焦点，用强调色点出"知行"这个核心 */
.art-center{background:var(--accent-soft);border:1px solid var(--accent);color:var(--ink-900)}
.art-center small{color:var(--ink-600)}
.art-node i{background:var(--ink-900);color:var(--accent)}
/* 进度条轨道原本几乎不可见 */
.progress{background:var(--surface-3)}
/* 路线图标此前过浅，压到正文墨色 */
.path-card .path-icon,.workbook-card .path-icon{color:var(--ink-900)}
.coach-avatar{background:var(--ink-900);color:var(--accent)}
/* 次级按钮：描边式，不与主按钮争夺注意力 */
.secondary{background:var(--surface-0);border:1px solid var(--line-2);color:var(--ink-700);font-weight:600}
.secondary:hover{border-color:var(--ink-900);background:var(--surface-2)}
/* 标签页当前项用强调色下划线，而非灰色 */
.lesson-tabs button.active{color:var(--ink-900);border-bottom-color:var(--accent)}
/* 输入框聚焦：统一到强调色 */
textarea:focus,input:focus,select:focus{border-color:var(--ink-900);outline-color:var(--accent)}
/* 字体加载期间避免文字跳动 */
h1,h2,h3{font-synthesis:none;text-rendering:optimizeLegibility}
/* 移动端导航禁止换行：字号上调后标签被撑断，改为不换行 + 可横向滚动 */
.sidebar nav a{white-space:nowrap}
@media(max-width:650px){
 .sidebar nav{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;flex:1;min-width:0}
 .sidebar nav::-webkit-scrollbar{display:none}
 .sidebar nav a{flex:0 0 auto;font-size:13px;padding:8px 12px;gap:6px}
 .sidebar nav a>span{display:none}
 .sidebar nav em{display:none}
}

/* ── 图标体系：Tabler Icons（MIT），自托管内联 sprite ──
   此前全站用 ◫ ▤ ▧ ✳ ⌕ 等 Unicode 几何字符充当图标：
   字形随系统字体变化、放大后失真、无语义，是最典型的"拿字符凑图标"。 */
.ic{width:19px;height:19px;flex:0 0 auto;stroke:currentColor;fill:none;
 stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.22em}
.ic-sm{width:15px;height:15px;stroke-width:2}
.ic-lg{width:24px;height:24px}
.ic-xl{width:34px;height:34px;stroke-width:1.4}
#i-star-filled,.ic use[href="#i-star-filled"]{fill:currentColor}
.bookmark .ic{width:17px;height:17px}
.bookmark.on .ic{fill:currentColor;stroke:currentColor}
/* 图标与文字的基线对齐 */
.sidebar nav a .ic{width:18px;height:18px;opacity:.9}
.sidebar nav a.active .ic{opacity:1}
.path-icon .ic,.coach-avatar .ic{width:21px;height:21px}
.empty>.ic{color:var(--line-2);margin-bottom:14px}
.text-link .ic,.back-link .ic,.arrow .ic{opacity:.75}
.big-search .ic{color:var(--ink-500)}
.checklist p .ic{color:var(--line-2);margin-right:8px}
.practice-note .ic,.scope-note .ic{color:var(--ink-500);margin-right:8px}
.send .ic{width:18px;height:18px;stroke-width:2.25}
/* 发送中的省略号：原先是字符"…"，改为真实动画 */
.dots{display:inline-block;width:16px;height:4px;position:relative}
.dots::before,.dots::after,.dots span{content:"";position:absolute;top:0;width:4px;height:4px;
 border-radius:50%;background:currentColor;animation:dot 1.1s infinite ease-in-out}
.dots::before{left:0}.dots::after{left:6px;animation-delay:.16s}
.dots{background:currentColor;border-radius:50%;width:4px;margin-left:6px}
@keyframes dot{0%,80%,100%{opacity:.25}40%{opacity:1}}
@media(prefers-reduced-motion:reduce){.dots,.dots::before,.dots::after{animation:none;opacity:.6}}

/* 空状态：虚线描边是生成式 UI 的典型痕迹，且这一屏大而空。
   改为实心卡片 + 直接给出可选路线，让空状态本身可用。 */
.empty{border:1px solid var(--line-1);border-style:solid;background:var(--surface-0);
 padding:46px 32px;border-radius:var(--radius)}
.empty h3{margin-bottom:6px}
.empty p{max-width:34em;margin-left:auto;margin-right:auto}
.empty-routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;
 margin:26px auto 0;max-width:640px}
.empty-routes a{display:flex;align-items:center;gap:9px;padding:12px 14px;text-align:left;
 border:1px solid var(--line-1);border-radius:var(--radius-sm);background:var(--surface-1);
 font-size:13px;font-weight:600;color:var(--ink-700);transition:border-color .2s,background .2s}
.empty-routes a:hover{border-color:var(--ink-900);background:var(--surface-0)}
.empty-routes .ic{width:17px;height:17px;color:var(--ink-500)}
@media(max-width:900px){.empty-routes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.empty-routes{grid-template-columns:1fr}}
/* 侧栏底部：原先是"头像＋我的学习空间"的假账号行，但本产品没有账号体系。
   改为如实陈述存储位置。 */
.storage-note{margin-top:auto;padding:14px 14px 18px;border-top:1px solid #2a332e;
 display:flex;gap:10px;align-items:flex-start}
.storage-note .ic{width:16px;height:16px;color:var(--accent);margin-top:2px}
.storage-note div{font-size:12px;line-height:1.55;color:#b3beb8}
.storage-note strong{display:block;color:var(--ink-invert);font-weight:600;font-size:12px}
.sidebar-progress{padding:0 14px 16px}
.sidebar-progress b{font-family:"ZX Display",sans-serif;font-weight:900;font-size:22px;color:var(--ink-invert)}
.sidebar-progress span{font-size:12px;color:#8d9a93;margin-left:6px}

/* ── 图标与文字的间距与对齐 ── */
.coach-welcome>.ic{display:block;margin:0 0 10px;color:var(--ink-900)}
.back-link .ic{margin-right:5px}
.text-link .ic,.arrow .ic{margin-left:4px}
.quiet .ic,.secondary .ic{margin-right:6px}
.step-link small:empty{display:none}
.step-link small{display:flex;align-items:center;gap:5px}
/* ── 筛选区：五个下拉加两个按钮挤在一张高卡片里，留白过度 ── */
.library-controls{padding:18px 20px}
.big-search{padding:6px 4px 14px}
.filter-row{gap:8px}
.filter-row select,.filter-toggle{padding:7px 11px;font-size:13px}
#clear-filters{border:1px solid var(--line-1);border-radius:999px;background:transparent;
 color:var(--ink-500);padding:7px 14px}
#clear-filters:hover{border-color:var(--ink-900);color:var(--ink-900)}
.filter-toggle,.filter-row select{border-radius:999px}
.filter-toggle.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
/* 资源卡：整卡可点时，底部重复的"查看资料"是冗余的视觉噪音 */
.resource-card{cursor:default}
.resource-bottom .quiet{color:var(--ink-500);font-weight:500}
.resource-bottom .quiet:hover{color:var(--ink-900)}
