:root{--paper:#f7f7f0;--surface:#fffefa;--surface-alt:#eff1e8;--ink:#273e34;--muted:#626f63;--line:#e1e5d9;--green:#296a4e;--green-light:#e5eddf;--sidebar:#163e31;--gold:#bda46b;--reader-size:20px;--shadow:0 8px 30px rgba(41,59,35,.035);color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #93bda2;outline-offset:3px}svg{display:inline-block;vertical-align:middle;flex-shrink:0}button svg{pointer-events:none}p,h1,h2,h3,h4{margin-top:0}p:last-child{margin-bottom:0}h1,h2,h3,h4{line-height:1.4}h1{font-size:32px;letter-spacing:-1px;font-weight:650}h2{font-size:21px;font-weight:600}h3{font-size:18px;font-weight:600}small{font-size:13px}button{border:0;background:transparent}.sidebar{position:fixed;z-index:40;inset:0 auto 0 0;width:220px;display:flex;flex-direction:column;padding:37px 22px 24px;background:var(--sidebar);color:#e9efe4}.brand{display:flex;align-items:center;gap:12px;margin:0 10px 46px}.brand-mark{width:38px;height:46px;display:flex;align-items:center;justify-content:center;color:#d6dfbc}.brand-name{font-family:"Songti SC",STSong,serif;font-size:28px;letter-spacing:5px;line-height:1.3}.brand-en{font-size:9px;letter-spacing:4.4px;color:#b0c4b3;margin-top:3px}.nav-section-label{font-size:10px;letter-spacing:2px;color:#a2b8a6;margin:0 16px 12px}.side-nav{display:grid;gap:7px}.nav-link{display:flex;align-items:center;gap:13px;min-height:49px;border-radius:9px;padding:12px 15px;color:#b6cbbd;font-size:15px;transition:.18s}.nav-link svg{width:20px;height:20px;stroke-width:1.6}.nav-link:hover{background:#ffffff09;color:white}.nav-link.active{background:#ffffff12;color:#f4f4de}.nav-link.active:after{content:"";width:5px;height:5px;border-radius:50%;background:#bac990;margin-left:auto}.side-extra{margin-top:28px;padding-top:22px;border-top:1px solid #ffffff10}.sidebar-bottom{margin-top:auto;padding-top:28px}.desk-note{padding:18px 13px 23px;color:#b2c3b0}.desk-note .plant-line{color:#c9d4ae;margin-bottom:12px}.desk-note p{font-size:13px;line-height:1.9;letter-spacing:.5px}.side-divider{height:1px;background:#ffffff12;margin:0 12px 15px}.app-shell{margin-left:220px;min-height:100vh}.topbar{height:87px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 43px;gap:25px}.topbar-context{display:flex;align-items:center;gap:11px;font-size:13px;color:var(--muted)}.topbar-context b{font-weight:500;color:var(--ink)}.topbar-actions{display:flex;align-items:center;gap:20px}.search-box{position:relative;width:248px}.search-box input{width:100%;height:38px;background:var(--surface-alt);border:1px solid transparent;border-radius:7px;padding:7px 38px 7px 13px;font-size:13px;color:var(--ink)}.search-box button{position:absolute;right:4px;top:0;width:34px;height:38px;color:var(--muted)}.date-tag{font-size:12px;color:var(--muted)}.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#e6eadc;color:#5f735a;font-family:serif;font-size:17px}.workspace{max-width:1440px;margin:auto;padding:34px 43px 55px}.eyebrow{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:2.2px;color:var(--muted);font-weight:600;margin-bottom:10px}.eyebrow:before{content:"";width:17px;height:1px;background:var(--gold)}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:27px}.page-heading h1{margin:0 0 7px;font-size:27px}.page-heading p{font-size:14px;color:var(--muted);margin-bottom:0}.quiet-link{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--green);min-height:40px;white-space:nowrap}.hero{position:relative;overflow:hidden;min-height:253px;border:1px solid #dee4d3;border-radius:13px;background:#eaf0e1;display:flex;align-items:center;padding:33px 37px}.hero-copy{position:relative;z-index:2;width:64%}.hero-label{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:1.1px;color:#64815c;margin-bottom:13px}.hero h2{font-family:"Songti SC",STSong,"Noto Serif CJK SC",serif;font-size:32px;line-height:1.55;letter-spacing:1px;font-weight:500;margin-bottom:11px;color:#284e36}.hero p{font-size:13px;line-height:1.9;color:#708166;margin-bottom:20px;max-width:480px}.primary,.secondary,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:11px 20px;min-height:44px;border-radius:7px;background:var(--green);border:1px solid var(--green);color:#fff;font-size:14px;transition:.16s}.primary:hover{background:#1e593f}.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.secondary:hover{background:var(--surface-alt)}.danger-button{background:#f9ece6;border-color:#e7ccc2;color:#ac5545}.hero .primary{font-size:12px;padding:9px 17px;min-height:39px}.hero-art{width:310px;height:257px;position:absolute;right:9px;top:2px}.hero-art svg{width:100%;height:100%}.hero-bottom-label{position:absolute;right:34px;bottom:23px;font-family:serif;font-size:9px;letter-spacing:2px;color:#8f9b7a}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:30px 0 17px}.section-heading h2{font-size:18px;margin:0;display:flex;align-items:center;gap:9px}.section-heading .en{font-size:10px;font-weight:400;letter-spacing:1.4px;color:#9a9f91;margin-left:3px}.subjects-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.subject-card{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:19px 20px 16px;position:relative;box-shadow:var(--shadow);transition:transform .2s,border-color .2s;min-height:167px}.subject-card:hover{transform:translateY(-3px);border-color:#adc4a6}.subject-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.subject-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:10px;background:var(--subject-light);color:var(--subject-color)}.subject-icon svg{width:24px;height:24px;stroke-width:1.5}.subject-index{font:italic 20px Georgia,serif;color:#d8ddcf}.subject-card h3{font-size:18px;margin:0 0 3px}.subject-card p{font-size:11px;color:var(--muted);margin:0;white-space:nowrap}.subject-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:14px;color:var(--muted);font-size:11px}.subject-bottom svg{width:15px;height:15px;color:var(--subject-color)}.home-columns{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);gap:24px}.home-columns .section-heading{margin-top:29px}.lesson-list{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:0 20px}.lesson-row{padding:18px 0;display:flex;align-items:center;gap:15px;border-bottom:1px solid var(--line)}.lesson-row:last-child{border-bottom:0}.lesson-number{font:italic 19px Georgia,serif;color:#a6ac98;width:24px}.lesson-row-body{min-width:0;flex:1}.lesson-row h3{font-size:15px;margin:0 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-row:hover h3{color:var(--green)}.lesson-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:var(--muted);font-size:11px}.dot{width:3px;height:3px;border-radius:50%;background:#b4baa9}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;background:var(--surface-alt);color:var(--muted);font-size:11px;white-space:nowrap}.tag.subject{background:var(--subject-light);color:var(--subject-color)}.row-arrow{color:#a3ad98}.connection-teaser{border:1px solid var(--line);border-radius:10px;background:#f0f1e7;padding:20px;min-height:248px;position:relative;overflow:hidden}.connection-teaser h3{font-family:"Songti SC",STSong,serif;font-size:18px;font-weight:500;margin-bottom:8px}.connection-teaser p{font-size:12px;color:var(--muted);line-height:1.8}.mini-map{height:110px;position:relative;margin:8px -7px 6px}.mini-map svg{position:absolute;inset:0;width:100%;height:100%}.mini-node{position:absolute;background:var(--surface);padding:7px 11px;border:1px solid #dce1d1;border-radius:7px;font-size:11px;box-shadow:0 4px 10px #263b2405}.mini-node.n1{left:5%;top:15px}.mini-node.n2{right:2%;top:22px}.mini-node.n3{left:38%;bottom:10px;background:#dde7d7;color:#4d6d43}.mini-node.n4{left:0;bottom:8px;font-size:10px;opacity:.7}.connection-teaser .quiet-link{font-size:12px;min-height:25px}.footer-note{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:26px;margin-top:24px;border-top:1px solid var(--line);font-size:11px;line-height:1.8;color:var(--muted)}.footer-note span:first-child{display:flex;align-items:center;gap:6px}.demo-banner{background:#eee8d6;color:#766747;border-radius:6px;padding:9px 13px;font-size:12px;margin-bottom:22px}.stats-strip{display:flex;gap:24px;align-items:center;font-size:12px;color:var(--muted)}.stats-strip b{font-weight:600;color:var(--ink);margin-right:4px}.filters{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-bottom:22px}.filter-tabs{display:flex;gap:6px;background:var(--surface-alt);border-radius:8px;padding:5px}.filter-tab{padding:7px 15px;border-radius:6px;font-size:13px;min-height:39px;color:var(--muted)}.filter-tab.active{background:var(--surface);color:var(--green);box-shadow:0 2px 5px #15391c08}.field,.select{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:10px 12px;min-height:44px;max-width:100%}.filter-search{flex:1;min-width:170px}.select{font-size:13px}.result-label{font-size:12px;color:var(--muted);margin-bottom:18px}.topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.topic-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:22px;min-height:255px;transition:.15s}.topic-card:hover{border-color:#b5c8a9;box-shadow:var(--shadow)}.topic-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.topic-card h3{font-size:18px;line-height:1.5;margin-bottom:10px}.topic-card .summary{font-size:13px;line-height:1.85;color:var(--muted);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin-bottom:20px}.topic-card .lesson-meta{margin-top:auto}.icon-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:40px;border-radius:7px;color:var(--muted)}.icon-button:hover{background:var(--surface-alt);color:var(--green)}.icon-button.saved{color:var(--green)}.icon-button.saved svg{fill:var(--green-light)}.empty-state{padding:65px 25px;text-align:center;border:1px dashed var(--line);border-radius:12px;background:var(--surface)}.empty-state svg{color:#96aa8a;margin-bottom:18px;width:40px;height:40px}.empty-state h2{font-size:20px}.empty-state p{color:var(--muted);font-size:14px;margin-bottom:23px}.loading{padding:90px 25px;text-align:center;color:var(--muted);font-size:14px}.loading:before{content:"";display:block;margin:0 auto 18px;width:24px;height:24px;border:2px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-panel{border:1px solid #dfc7b5;background:#f5eee4;border-radius:9px;padding:24px;color:#715c48}.error-panel h2{font-size:20px;margin-bottom:10px}.error-panel p{font-size:14px}.back-link{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);min-height:40px;margin-bottom:12px}.reader-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:28px;align-items:start}.reader-article{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:36px 38px 40px;min-width:0}.reader-article h1{font-family:"Songti SC",STSong,serif;font-size:31px;line-height:1.5;margin:17px 0 13px;font-weight:600}.article-lead{font-size:calc(var(--reader-size) - 2px);line-height:1.9;color:var(--muted);margin:25px 0 30px;padding-bottom:29px;border-bottom:1px solid var(--line)}.reader-section{scroll-margin-top:28px;margin:34px 0}.reader-section h2{display:flex;align-items:center;gap:11px;font-size:21px;margin-bottom:20px}.section-num{font:italic 19px Georgia,serif;color:#95aa81;min-width:25px}.reader-section h3{font-size:calc(var(--reader-size) - 1px);margin:24px 0 12px;color:var(--green)}.reader-section p,.reader-section li{font-size:var(--reader-size);line-height:1.95;letter-spacing:.15px;overflow-wrap:anywhere}.reader-section ul{padding-left:24px;margin:14px 0 22px}.reader-section li{padding-left:4px;margin:9px 0}.body-text{white-space:pre-line}.exam-card{border-left:3px solid #a6b68c;background:var(--surface-alt);padding:17px 20px;margin:17px 0;border-radius:0 7px 7px 0}.exam-card h3{margin:0 0 9px;font-size:18px}.exam-card p{font-size:calc(var(--reader-size) - 1px)}.misconception{border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:18px 0}.misconception div{padding:15px 19px;font-size:calc(var(--reader-size) - 1px);line-height:1.85;display:flex;gap:12px}.misconception div:first-child{background:#b7846710}.misconception div:last-child{background:#769b6510}.misconception b{white-space:nowrap;font-size:13px;padding-top:4px;font-weight:500;color:var(--muted)}.transfer-box{border:1px solid #d9dfc9;border-radius:9px;padding:22px;background:var(--surface-alt)}.transfer-box p{font-size:calc(var(--reader-size) - 1px)}details summary{cursor:pointer;font-size:14px;color:var(--green);min-height:44px;display:flex;align-items:center;gap:8px}details summary:before{content:"＋"}details[open] summary:before{content:"−"}.source-list{font-size:12px;color:var(--muted);line-height:1.9;border-top:1px solid var(--line);padding-top:22px}.source-list a{text-decoration:underline;text-underline-offset:3px}.source-list p{margin-bottom:8px}.reader-sidebar{position:sticky;top:22px}.reader-controls{padding:19px;background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:20px}.reader-controls h3{font-size:13px;font-weight:500;margin-bottom:14px}.control-label{font-size:11px;color:var(--muted);margin:15px 0 7px}.theme-controls,.font-controls{display:flex;gap:7px}.theme-button{width:calc((100% - 14px)/3);padding:10px 4px;border:1px solid #d9dfcd;border-radius:6px;font-size:11px;color:#4f6150;background:#f8f7ef;min-height:42px}.theme-button[data-theme=green]{background:#e7eddd}.theme-button[data-theme=night]{background:#273c34;color:#d4dfce}.theme-button.active{outline:2px solid #87a075;outline-offset:2px}.font-controls button{flex:1;border:1px solid var(--line);border-radius:6px;height:39px}.font-controls button.active{background:var(--green-light);border-color:#aec29e;color:var(--green)}.reader-controls .secondary{width:100%;font-size:12px;margin-top:15px;padding:9px}.toc{margin:23px 0;padding-left:8px}.toc h3{font-size:12px;color:var(--muted);font-weight:400;margin-bottom:11px}.toc a{display:block;font-size:13px;padding:9px 0;color:var(--muted)}.toc a:hover{color:var(--green)}.related-card{background:var(--surface-alt);border-radius:9px;padding:18px;margin-top:18px}.related-card h3{font-size:13px;font-weight:500}.related-link{display:block;border-top:1px solid var(--line);padding:12px 0;font-size:13px}.related-link span{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.related-link:last-child{padding-bottom:0}.reader-actions{display:flex;gap:10px;margin-top:25px;flex-wrap:wrap}.graph-intro{display:flex;gap:20px;align-items:center;justify-content:space-between;background:var(--surface-alt);padding:18px 21px;border-radius:9px;margin-bottom:22px}.graph-intro p{font-size:13px;line-height:1.9;color:var(--muted)}.graph-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:var(--muted);white-space:nowrap}.graph-legend i{width:19px;height:2px;display:inline-block;background:#9bab7d;vertical-align:middle;margin-right:5px}.graph-legend i.cross{background:#c3a875}.graph-container{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:auto;max-height:760px}.graph-stage{position:relative;width:100%;min-width:860px}.graph-stage>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.graph-subject{position:absolute;text-align:center;font-size:13px;font-weight:600;top:23px;width:21%;}.graph-node{position:absolute;width:20%;display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--subject-color);border-radius:8px;padding:12px 10px;min-height:66px;box-shadow:0 3px 8px #27332403;font-size:12px;line-height:1.6;transition:.15s}.graph-node:hover{z-index:3;transform:translateY(-2px);border-color:var(--subject-color);box-shadow:0 7px 15px #24372215}.graph-node svg{width:17px;color:var(--subject-color)}.relation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.relation-card{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:20px}.relation-label{font-size:11px;color:#9b885d;letter-spacing:1px;margin-bottom:12px}.relation-titles{display:flex;gap:12px;align-items:center;font-size:14px;line-height:1.6;margin-bottom:13px}.relation-titles a:hover{color:var(--green);text-decoration:underline}.relation-titles svg{color:#9aaa86;min-width:16px}.relation-card p{font-size:13px;line-height:1.9;color:var(--muted)}.practice-layout{display:grid;grid-template-columns:minmax(0,1fr) 248px;gap:24px;align-items:start}.question-panel{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:31px}.question-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);margin-bottom:27px}.question-stem{font-size:21px;line-height:1.8;margin:0 0 25px;font-weight:500;white-space:pre-line}.options{display:grid;gap:13px;margin-bottom:28px}.option{display:flex;align-items:center;text-align:left;gap:14px;width:100%;padding:17px 19px;background:var(--surface);border:1px solid var(--line);border-radius:8px;min-height:64px;line-height:1.7;font-size:16px}.option-key{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;font-size:13px;flex-shrink:0;color:var(--muted)}.option:hover:not(:disabled){background:var(--surface-alt)}.option.selected{border-color:#759868;background:var(--green-light)}.option.selected .option-key{background:var(--green);color:white;border-color:var(--green)}.option.correct{border-color:#6f9b68;background:#7cb16913;opacity:1}.option.incorrect{border-color:#c38a70;background:#dca18316;opacity:1}.option:disabled{opacity:.7;color:var(--ink)}.question-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.question-toolbar .question-count{margin-left:auto;font-size:12px;color:var(--muted)}.answer-feedback{margin-top:24px;border-radius:8px;background:var(--surface-alt);border:1px solid var(--line);padding:22px}.answer-feedback h3{font-size:17px;color:var(--green);margin-bottom:14px}.answer-feedback.incorrect h3{color:#b16b4e}.answer-feedback p{font-size:16px;line-height:1.9;white-space:pre-line}.answer-feedback .transfer-hint{font-size:14px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;margin-top:17px}.practice-aside{padding:22px;background:var(--surface-alt);border-radius:10px}.practice-aside h3{font-size:15px;margin-bottom:17px}.practice-aside p{font-size:13px;line-height:1.9;color:var(--muted)}.device-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.device-stats strong{font-size:24px;font-weight:500;display:block;color:var(--ink);line-height:1.3}.device-stats span{font-size:11px;color:var(--muted)}.progress-track{height:4px;background:var(--line);border-radius:3px;overflow:hidden;margin:18px 0 7px}.progress-fill{height:100%;background:#9ab185;border-radius:3px}.admin-status{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--muted)}.login-card{max-width:440px;margin:45px auto;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:36px}.login-card .login-symbol{width:51px;height:51px;display:grid;place-items:center;background:var(--green-light);border-radius:12px;color:var(--green);margin-bottom:22px}.login-card h2{font-size:24px;margin-bottom:9px}.login-card>p{font-size:13px;color:var(--muted);line-height:1.9;margin-bottom:25px}.form-group{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.form-group label{font-size:13px}.form-group .field{width:100%;font-size:14px}.form-group small{color:var(--muted);font-size:11px}.form-error{color:#ae6749;font-size:13px;margin-bottom:15px;white-space:pre-wrap}.login-card .primary{width:100%}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:22px}.admin-actions{display:flex;gap:9px;flex-wrap:wrap}.admin-table-wrap{border:1px solid var(--line);border-radius:9px;overflow:auto;background:var(--surface)}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;font-weight:500;background:var(--surface-alt);padding:15px 17px;color:var(--muted);white-space:nowrap}td{padding:17px;border-top:1px solid var(--line);vertical-align:middle}td.stem-cell{min-width:230px;max-width:540px;line-height:1.85}.table-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.table-actions{display:flex;gap:5px}.table-actions button{font-size:12px;min-height:38px;min-width:40px;padding:7px}.table-actions button:first-child{color:var(--green)}.table-actions button:last-child{color:#b57d62}.status-dot{display:inline-flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}.status-dot:before{content:"";width:5px;height:5px;border-radius:50%;background:#aeb49e}.status-dot.published:before{background:#648f5b}.status-dot.published{color:var(--green)}.modal-backdrop{position:fixed;inset:0;background:#0c201b80;z-index:100;display:flex;align-items:center;justify-content:center;padding:25px;backdrop-filter:blur(4px)}.modal{background:var(--surface);border:1px solid var(--line);border-radius:13px;width:720px;max-width:100%;max-height:90vh;overflow:auto;box-shadow:0 20px 70px #14282040}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:24px 28px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:2}.modal-header h2{margin:0;font-size:21px}.modal-body{padding:24px 28px}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:18px 28px;border-top:1px solid var(--line);position:sticky;bottom:0;background:var(--surface);z-index:2}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-grid .full{grid-column:1/-1}textarea.field{resize:vertical;min-height:90px;line-height:1.8}.option-editor{display:flex;gap:9px;align-items:center;margin:8px 0}.option-editor b{font-size:13px;font-weight:500;min-width:20px}.option-editor input{width:100%;font-size:13px}.editor-note{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:20px}.confirmation{padding:27px}.confirmation p{font-size:15px;line-height:1.9}.error-inline{color:#b56b50;font-size:13px}.sources-page{max-width:840px}.source-item{border:1px solid var(--line);background:var(--surface);padding:23px;border-radius:9px;margin-bottom:15px}.source-item h3{font-size:16px;margin-bottom:10px}.source-item p{font-size:14px;color:var(--muted);line-height:1.9}.source-item a{color:var(--green);font-size:13px;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.pill-note{padding:3px 9px;border-radius:5px;background:var(--green-light);color:var(--green);font-size:11px}.device-note{font-size:12px;color:var(--muted);line-height:1.9;margin:20px 0}.skip-link{position:fixed;top:-80px;left:20px;z-index:200;padding:13px 20px;background:var(--surface);border:1px solid var(--green)}.skip-link:focus{top:10px}#toast{position:fixed;z-index:200;bottom:32px;left:calc(50% + 110px);transform:translate(-50%,20px);background:var(--sidebar);color:#f3f3e6;padding:12px 23px;box-shadow:0 6px 25px #17322020;border-radius:8px;font-size:14px;opacity:0;pointer-events:none;transition:.2s;max-width:calc(100vw - 40px);text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.focus-exit{display:none}.is-focus .sidebar,.is-focus .topbar,.is-focus .reader-sidebar,.is-focus .back-link,.is-focus .footer-note,.is-focus .demo-banner{display:none}.is-focus .app-shell{margin:0}.is-focus .workspace{max-width:860px;padding-top:45px}.is-focus .reader-layout{display:block}.is-focus .focus-exit{display:inline-flex;position:fixed;top:16px;right:20px;z-index:10;box-shadow:var(--shadow)}.is-focus #toast{left:50%}
html[data-theme=green]{--paper:#eaf0e3;--surface:#f0f5e9;--surface-alt:#e2ebd8;--ink:#334a34;--muted:#566c50;--line:#d3deca;--green-light:#dce8d1}
html[data-theme=night]{--paper:#18251f;--surface:#203128;--surface-alt:#293c2e;--ink:#d3ddcf;--muted:#98aa94;--line:#374b3b;--green:#a1bf8a;--green-light:#354e35;--sidebar:#13251d;color-scheme:dark}
html[data-theme=night] .primary{background:#799966;border-color:#799966;color:#122410}html[data-theme=night] .hero{background:#2c402c;border-color:#465b3e}html[data-theme=night] .hero h2{color:#d7e2c9}html[data-theme=night] .hero p,html[data-theme=night] .hero-label{color:#adbf9d}html[data-theme=night] .hero-art{opacity:.62}html[data-theme=night] .connection-teaser{background:#2b3c2b}html[data-theme=night] .demo-banner{background:#494331;color:#d4c7a3}html[data-theme=night] .tag.subject{background:var(--surface-alt);color:var(--ink)}html[data-theme=night] .subject-icon{background:var(--surface-alt);color:var(--ink)}html[data-theme=night] .mini-node.n3{background:#42533a;color:#d4dfcd}html[data-theme=night] .subject-index{color:#526149}html[data-theme=night] .avatar{background:#3a4f33;color:#d4dfc8}html[data-theme=night] .error-panel{background:#443d2b;border-color:#685339;color:#d8cda5}
@media(min-width:1500px){.hero{min-height:285px}.hero-art{width:360px;height:285px;right:50px}.hero h2{font-size:37px}.workspace{padding-top:40px}.subject-card{padding:24px;min-height:185px}.subject-card p{font-size:12px}.lesson-row{padding:21px 0}.connection-teaser{min-height:267px}}
@media(max-width:1200px){.sidebar{width:190px;padding:33px 16px 20px}.app-shell{margin-left:190px}.brand{margin-left:8px;margin-bottom:39px}.workspace{padding:29px 28px 45px}.topbar{padding:0 28px}.hero{padding:28px;min-height:253px}.hero h2{font-size:29px}.hero-copy{width:67%}.hero-art{width:265px;right:-10px;top:11px}.subject-card{padding:17px 15px}.subject-card p{font-size:10px}.home-columns{gap:18px;grid-template-columns:minmax(0,1.55fr) minmax(245px,1fr)}.subject-card h3{font-size:17px}.reader-layout{grid-template-columns:minmax(0,1fr) 210px;gap:20px}.reader-article{padding:30px}.practice-layout{grid-template-columns:minmax(0,1fr) 210px;gap:18px}.topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#toast{left:calc(50% + 95px)}.date-tag{display:none}.hero p{max-width:350px}}
@media(max-width:1000px){.sidebar{width:83px;padding:29px 14px 20px}.brand{margin:0 0 40px;justify-content:center}.brand-wordmark,.nav-section-label,.nav-link span,.desk-note,.nav-link.active:after{display:none}.nav-link{justify-content:center;padding:13px;min-height:50px}.nav-link svg{width:22px;height:22px}.side-nav{gap:12px}.sidebar-bottom .nav-link{padding:13px}.app-shell{margin-left:83px}.topbar{height:78px}.workspace{padding-top:28px}.hero h2{font-size:30px}.reader-layout{grid-template-columns:minmax(0,1fr) 205px;gap:19px}.reader-article{padding:28px 25px}.reader-article h1{font-size:28px}.subject-card p{white-space:normal;min-height:32px;line-height:1.6}.subject-card{min-height:182px}.subject-top{margin-bottom:16px}.home-columns{grid-template-columns:minmax(0,1.45fr) minmax(250px,1fr)}.filter-tab{padding:7px 12px}.search-box{width:220px}.practice-layout{grid-template-columns:minmax(0,1fr) 195px}.question-panel{padding:24px}.question-stem{font-size:20px}#toast{left:calc(50% + 42px)}}
@media(max-width:780px){.workspace{padding:25px 23px 40px}.topbar{padding:0 23px}.page-heading h1{font-size:25px}.hero{min-height:254px;padding:28px}.hero-copy{width:76%}.hero-art{width:218px;height:230px;right:-35px;opacity:.55;top:14px}.hero h2{font-size:28px}.hero p{max-width:335px;font-size:12px}.hero-bottom-label{display:none}.subjects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.subject-card{min-height:155px;padding:18px}.subject-top{margin-bottom:12px}.subject-card p{font-size:12px;min-height:0}.subject-bottom{margin-top:12px}.home-columns{grid-template-columns:1fr}.connection-teaser{min-height:235px}.mini-map{max-width:370px;margin-left:auto;margin-right:auto}.home-columns .section-heading{margin-top:25px}.section-heading .en{display:none}.reader-layout{display:flex;flex-direction:column}.reader-sidebar{position:static;order:-1;width:100%}.reader-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:0;padding:13px 16px}.reader-controls h3{display:none}.control-label{display:none}.reader-controls .control-group{display:flex;align-items:center;gap:8px}.theme-controls{gap:7px}.theme-button{width:42px;min-height:36px;padding:7px 3px}.font-controls{width:122px}.font-controls button{height:36px}.reader-controls .secondary{width:auto;margin:0;padding:7px 10px;min-height:36px}.toc,.related-card{display:none}.reader-article{width:100%}.practice-layout{display:flex;flex-direction:column}.question-panel{width:100%}.practice-aside{width:100%;display:flex;align-items:center;gap:23px;flex-wrap:wrap}.practice-aside h3{margin-bottom:8px}.practice-aside .device-stats{margin:0;min-width:140px}.practice-aside .progress-track,.practice-aside .progress-caption{display:none}.practice-aside .aside-tip{max-width:350px;margin:0}.practice-aside .aside-link{display:none}.question-stem{font-size:19px}.graph-intro{display:block}.graph-intro .graph-legend{margin-top:13px}.relation-grid{grid-template-columns:1fr}.footer-note{align-items:start;flex-direction:column;gap:5px}.topbar-context{font-size:12px}.search-box{width:190px}.topbar-actions{gap:13px}.avatar{display:none}.stats-strip{gap:15px;font-size:11px}.page-heading{gap:10px}.page-heading>.stats-strip{display:none}}
@media(max-width:600px){.sidebar{width:100%;height:66px;top:auto;bottom:0;padding:4px 7px calc(4px + env(safe-area-inset-bottom));border-top:1px solid #ffffff20;flex-direction:row;align-items:center;justify-content:center}.sidebar .brand,.sidebar .side-extra,.sidebar .sidebar-bottom,.sidebar .nav-section-label{display:none}.side-nav{display:flex;width:100%;justify-content:space-around;gap:0}.nav-link{flex-direction:column;gap:3px;min-height:52px;padding:5px 9px;font-size:10px;min-width:62px;border-radius:7px}.nav-link span{display:block}.nav-link svg{height:20px;width:20px}.app-shell{margin-left:0;padding-bottom:68px}.topbar{height:65px;padding:0 21px}.topbar-context .home-context{display:none}.topbar-context{font-size:12px}.topbar-context b:before{content:"青禾 · ";font-family:"Songti SC",serif}.search-box{width:159px}.search-box input{font-size:11px;height:35px}.search-box button{height:35px}.workspace{padding:23px 20px 34px}.eyebrow{font-size:9px;margin-bottom:8px;letter-spacing:1.7px}.page-heading{margin-bottom:23px;align-items:start}.page-heading h1{font-size:23px}.page-heading p{font-size:12px}.page-heading>.quiet-link{font-size:11px;margin-top:19px}.hero{padding:25px 23px;min-height:265px}.hero h2{font-size:27px;letter-spacing:.5px}.hero-copy{width:100%}.hero-art{right:-45px;top:38px;opacity:.22;width:216px}.hero p{max-width:275px;font-size:12px}.hero-label{font-size:10px}.hero .primary{font-size:12px}.subjects-grid{gap:11px}.subject-card{padding:15px;min-height:162px}.subject-top{margin-bottom:11px}.subject-icon{width:34px;height:34px}.subject-icon svg{width:22px}.subject-card h3{font-size:17px}.subject-card p{font-size:10px}.subject-bottom{font-size:10px}.section-heading{margin:26px 0 14px}.section-heading h2{font-size:17px}.lesson-list{padding:0 16px}.lesson-row{gap:9px;padding:17px 0}.lesson-row h3{font-size:14px}.lesson-meta{gap:7px;font-size:10px}.topic-grid{grid-template-columns:1fr;gap:13px}.topic-card{min-height:210px;padding:21px}.topic-card .summary{margin-bottom:16px}.topic-card-top{margin-bottom:12px}.filters{gap:9px}.filter-tabs{max-width:100%;overflow-x:auto;flex-wrap:nowrap;width:100%}.filter-tab{padding:6px 11px;white-space:nowrap;flex:1;font-size:12px;min-height:39px}.filter-search{width:100%;order:3}.select{flex:1}.reader-article{padding:25px 22px;border-radius:8px}.reader-article h1{font-size:27px}.reader-controls{padding:13px 11px;gap:11px}.reader-section p,.reader-section li{font-size:calc(var(--reader-size) - 1px)}.reader-section h2{font-size:20px}.reader-article .article-lead{font-size:17px}.reader-section{margin:29px 0}.exam-card{padding:15px}.misconception div{padding:14px;display:block}.misconception b{display:block;padding:0;margin-bottom:5px}.transfer-box{padding:18px}.reader-actions .primary,.reader-actions .secondary{flex:1;padding:10px;font-size:12px}.question-panel{padding:23px 19px}.question-stem{font-size:19px}.question-head{font-size:11px;margin-bottom:21px}.option{padding:14px 13px;font-size:16px;gap:12px}.question-toolbar .question-count{font-size:11px;margin-left:0}.question-toolbar>.primary{flex:1}.question-toolbar>.secondary{font-size:13px}.answer-feedback{padding:18px}.practice-aside{gap:17px;padding:20px}.practice-aside p{font-size:12px}.device-stats{gap:24px}.login-card{margin:20px auto;padding:28px}.admin-toolbar{gap:17px}.admin-actions{width:100%}.admin-actions .primary,.admin-actions .secondary{flex:1;font-size:12px;padding:10px}.admin-status{font-size:12px;flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.modal-backdrop{padding:10px}.modal{max-height:94vh}.modal-header{padding:18px 20px}.modal-header h2{font-size:19px}.modal-body{padding:20px}.modal-footer{padding:15px 20px}.graph-legend{font-size:10px}.graph-intro{padding:17px}.relation-titles{font-size:13px}.footer-note{font-size:10px}.footer-note .mobile-admin{display:inline}.is-focus .workspace{padding:68px 12px 25px}.is-focus .app-shell{padding-bottom:0}.is-focus .reader-article{border:0;background:transparent;padding:15px 12px}.is-focus .focus-exit{top:12px;right:15px;font-size:12px;min-height:37px;padding:8px 12px}#toast{left:50%;bottom:84px;font-size:12px}.demo-banner{font-size:11px}.error-panel{padding:20px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Comfortable tablet typography: labels remain readable without enlarging article measure. */
.subject-card p,.subject-bottom,.lesson-meta,.tag,.subject-index+.tag,.reader-controls h3,.reader-controls .control-label,.source-list,.device-note,.result-label,.progress-caption,.status-dot,.table-actions button,.footer-note,.topbar-context,.date-tag,.hero-label,.graph-legend,.relation-label,.related-link span{font-size:12px}
.subject-card p{min-height:20px}.subject-bottom{margin-top:14px}.subject-card{min-height:178px}.hero p{font-size:14px;color:#5e7154}.hero-label{color:#526f49}.lesson-row h3{font-size:16px}.lesson-row{min-height:86px}.quiet-link,.primary,.secondary,.danger-button,.filter-tab,.select,.theme-button,.reader-controls .secondary,.toc a,.related-link,.question-head,.question-count,.admin-status,.form-group label,.form-group .field,.search-box input{font-size:14px}.topic-card .summary,.relation-card p,.graph-intro p,.practice-aside p,.login-card>p,.source-item p{font-size:16px}.connection-teaser p{font-size:14px}.connection-teaser .quiet-link{font-size:14px}.connection-teaser{min-height:259px}.mini-node{font-size:12px}.graph-node{font-size:14px}.graph-subject{font-size:15px}.related-card h3,.toc h3{font-size:14px}.reader-controls .theme-button{min-height:44px}.font-controls button{min-height:44px}.icon-button{min-width:44px;min-height:44px}.toc a{min-height:44px}.filter-tab{min-height:44px}.lesson-number{font-size:20px}.footer-note a{display:inline-flex;align-items:center;min-height:32px}.form-group small,.editor-note,.form-error{font-size:13px}.source-list p{font-size:13px}.device-stats span{font-size:12px}.lesson-meta .tag{font-size:12px}.graph-legend{color:var(--muted)}.hero .primary{font-size:14px;min-height:44px}.skip-link{scroll-margin-top:0}
@media(max-width:1000px){.subject-card{padding:17px 15px}.subject-card p{min-height:37px}.hero{min-height:269px}.hero p{max-width:340px}.home-columns{grid-template-columns:minmax(0,1.35fr) minmax(270px,1fr)}}
@media(max-width:780px){.home-columns{grid-template-columns:1fr}.subject-card{min-height:166px}.subject-card p{min-height:20px}.reader-controls{gap:12px}.theme-button{width:47px}.reader-controls .secondary{font-size:12px}.reader-controls .theme-button{font-size:12px}.practice-aside .aside-tip{font-size:14px}.stats-strip{font-size:12px}.search-box{width:192px}}
@media(max-width:600px){.nav-link{font-size:12px;min-width:75px}.subject-card{min-height:167px}.subject-card p{font-size:12px;min-height:38px}.subject-bottom{font-size:12px}.hero p{font-size:14px;max-width:265px}.hero{min-height:290px}.hero h2{font-size:27px}.page-heading p{font-size:14px}.page-heading>.quiet-link{font-size:12px}.search-box{width:155px}.search-box input{font-size:12px}.topbar-context{font-size:12px}.lesson-meta{font-size:12px;gap:6px}.lesson-row h3{font-size:15px}.lesson-number{font-size:18px}.filter-tab{font-size:12px;padding:8px 9px}.topic-card .summary{font-size:16px}.topic-card .lesson-meta{font-size:12px}.question-head{font-size:12px;align-items:start}.question-head>.lesson-meta{gap:5px}.question-head>span{font-size:12px;white-space:nowrap;padding-top:3px}.question-toolbar .question-count{font-size:12px}.footer-note{font-size:12px}.footer-note span:last-child{line-height:2}.reader-controls{gap:10px}.reader-controls .theme-button{font-size:12px}.font-controls{width:119px}.reader-controls .secondary{font-size:12px}.theme-button{width:42px}.reader-controls{padding:13px 11px}.reader-section p,.reader-section li{font-size:var(--reader-size)}.practice-aside p{font-size:14px}.graph-legend{font-size:12px}.mini-node.n4{font-size:12px}.modal-footer .primary,.modal-footer .secondary{font-size:14px}.admin-actions .primary,.admin-actions .secondary{font-size:14px}}

/* A compact learning banner keeps all four subjects within the tablet's first screen. */
.history-demo-entry{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--green-light);border:1px solid var(--line);border-radius:10px;padding:22px 25px;margin:0 0 22px;color:var(--green)}
.history-demo-entry strong{display:block;font-size:23px;line-height:1.5;margin:5px 0;font-family:"Songti SC",serif}.history-demo-entry span{font-size:14px}.history-demo-entry p{font-size:15px;line-height:1.8;margin:0;color:var(--muted)}.history-demo-entry>span{white-space:nowrap}.history-demo-entry:hover{border-color:var(--green)}
@media(max-width:600px){.history-demo-entry{padding:19px;display:block}.history-demo-entry strong{font-size:21px}.history-demo-entry>span{display:block;margin-top:12px}}
.home-hero{min-height:200px;padding:18px 31px;align-items:center}
.home-hero .hero-copy{width:70%}
.home-hero .hero-label{margin-bottom:6px;font-size:12px;line-height:1.5}
.home-hero h2{font-size:29px;line-height:1.4;letter-spacing:.8px;margin-bottom:12px}
.home-hero .primary{min-height:44px;padding:8px 17px;font-size:14px}
.home-hero .hero-art{width:237px;height:200px;top:0;right:35px;opacity:.65}
.home-hero .hero-bottom-label{display:none}
@media(max-width:1200px){.home-hero{min-height:196px;padding:18px 28px}.home-hero h2{font-size:27px}.home-hero .hero-art{right:12px;width:222px;height:195px;opacity:.5}}
@media(max-width:780px){.home-hero{min-height:190px;padding:17px 25px}.home-hero .hero-copy{width:82%}.home-hero h2{font-size:26px;line-height:1.4}.home-hero .hero-art{right:-12px;opacity:.3;width:205px;height:190px}}
@media(max-width:600px){.home-hero{min-height:190px;padding:17px 23px}.home-hero .hero-copy{width:100%}.home-hero h2{font-size:26px;letter-spacing:.2px;margin-bottom:12px}.home-hero .hero-label{font-size:11px;margin-bottom:7px}.home-hero .hero-art{right:-24px;width:186px;height:190px;opacity:.22}}
