@charset "UTF-8";
:root{--ink:#182c39;--muted:#617786;--teal:#168578;--teal-light:#e8f5f2;--line:#dce5e9;--canvas:#f5f9fb;--yellow:#e7b44b;--font:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#fff;font:24px/1.65 var(--font)}button,input,select{font:inherit}button,a,input,summary{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #168578;outline-offset:4px}button{border:0;background:none}a{color:var(--teal);text-underline-offset:3px}h1,h2,h3,p{margin-top:0}button, input{min-height:42px}.header{height:90px;padding:0 32px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:28px;background:#fff}.brand{display:flex;align-items:center;gap:16px;text-decoration:none;color:var(--ink);white-space:nowrap}.brand h1{font-size:42px;letter-spacing:-1px;margin:0;font-weight:750}.brand-mark{display:flex;gap:5px;align-items:flex-end;height:32px}.brand-mark i{display:block;width:9px;border-radius:3px;background:var(--yellow);height:13px}.brand-mark i:nth-child(2){height:23px}.brand-mark i:nth-child(3){height:33px;background:var(--teal)}.tagline{font-size:24px;margin:0;color:var(--muted)}nav{margin-left:auto;display:flex;align-items:center;gap:14px}.nav{padding:8px 18px;border-radius:7px;white-space:nowrap;font-size:24px}.nav.active{background:var(--teal);color:white}.nav:not(.active):hover{background:var(--canvas)}#plan-count{font-size:18px;background:var(--teal-light);color:var(--teal);border-radius:10px;padding:1px 5px;margin-left:5px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 410px;height:calc(100dvh - 90px);min-height:620px}.map-panel{min-width:0;display:flex;flex-direction:column;position:relative}.toolbar{display:flex;align-items:center;gap:14px;padding:18px 24px;border-bottom:1px solid var(--line);position:relative;z-index:4;background:white}.filters{display:flex;gap:10px}.filter{border:1px solid var(--line);border-radius:7px;padding:7px 15px;background:#f8fafb;white-space:nowrap;font-size:21px}.filter.active{background:var(--teal-light);border-color:var(--teal);color:#106f64}.filter:hover{border-color:var(--teal)}.search-wrap{margin-left:auto;position:relative;min-width:140px;max-width:210px;flex:1}.search-wrap>span{position:absolute;left:10px;top:2px;font-size:40.5px;color:var(--muted)}input[type=search]{width:100%;border:1px solid #ccd9e1;border-radius:6px;background:#fff;padding:7px 12px 7px 36px;font-size:21px;color:var(--ink)}.search-results{position:absolute;top:48px;right:0;width:300px;max-height:380px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 28px #183b4a18;padding:8px}.search-results button{display:flex;width:100%;justify-content:space-between;align-items:center;text-align:left;padding:8px 12px;border-radius:5px}.search-results button:hover{background:var(--teal-light)}.search-results small{color:var(--muted)}.search-results p{padding:10px;margin:0}.map-caption{display:flex;align-items:center;justify-content:space-between;padding:6px 24px;background:#f8fbfc;color:var(--muted);font-size:19.5px;border-bottom:1px solid var(--line)}.map-caption button{font-size:19.5px;min-height:30px;color:var(--teal)}.map-caption button[aria-pressed=true]{font-weight:700;text-decoration:underline}.graph-scroll{flex:1;min-height:0;overflow:auto;background-color:var(--canvas);background-image:linear-gradient(#e7eef260 1px,transparent 1px),linear-gradient(90deg,#e7eef260 1px,transparent 1px);background-size:24px 24px;scrollbar-width:thin;scrollbar-color:#c6d8de transparent;touch-action:pan-x pan-y;cursor:grab}.graph-scroll.dragging{cursor:grabbing;user-select:none}#graph{display:block;min-width:720px;overflow:visible}.age-label{font-size:28.5px;font-weight:700;fill:var(--ink)}.age-note{font-size:18px;fill:#637d8c}.age-line{stroke:#cedce4;stroke-width:1;stroke-dasharray:4 5}.edge{stroke:#b7cbd5;stroke-width:1.2;fill:none;transition:opacity .18s}.edge.related{stroke:var(--teal);stroke-width:2}.edge.next{stroke:#8abaae;stroke-width:1.7;stroke-dasharray:4 3}.node{cursor:pointer;outline:none;transition:opacity .18s}.node text{font-size:21px;font-weight:550;fill:var(--ink);paint-order:stroke;stroke:var(--canvas);stroke-width:5px;stroke-linejoin:round}.node .core{stroke:#fff;stroke-width:2;transition:r .15s}.node:hover .core{r:14px}.node:focus-visible .focus-ring{stroke:var(--teal);stroke-width:3;fill:none}.node.selected text{fill:#087a6d;font-weight:750}.node.selected .core{fill:var(--teal)}.node.selected .halo{fill:#16857818;stroke:#16857820;stroke-width:9}.node .check{font-size:21px;fill:#fff;stroke:none;font-weight:700}.map-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:12px 22px;background:#fff}.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:18px;color:var(--muted)}.legend>span{display:flex;align-items:center;gap:7px}.legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block;background:#d9e2e5}.legend-dot.current{background:var(--teal)}.legend-dot.done{background:#78ad78}.legend-line{width:25px;height:2px;background:#aebfcc;display:inline-block}.zoom{display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;overflow:hidden;flex-shrink:0}.zoom button{padding:0 10px;min-width:36px;font-size:30px;min-height:36px}.zoom button:hover{background:var(--canvas)}.zoom output{font-size:18px;color:var(--muted);min-width:36px;text-align:center}.zoom #zoom-reset{font-size:19.5px;border-left:1px solid var(--line)}.map-footnote{padding:0 22px 9px;font-size:18px;color:var(--muted)}.map-footnote button{font-size:18px;min-height:24px;color:var(--teal);padding:0 8px}.inspector{border-left:1px solid var(--line);overflow-y:auto;scrollbar-width:thin;padding:28px 28px 22px;background:#fff}.detail-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:21px;margin-bottom:8px}.detail-top strong{color:var(--teal);margin-left:8px;font-size:24px}.mobile-close{display:none}.inspector h2{font-size:45px;margin:0 0 16px;line-height:1.4;letter-spacing:-.5px}.description{font-size:24px;line-height:1.9;margin-bottom:22px}.fraction-demo{padding:16px 20px;text-align:center;margin:0 0 22px;background:#f5f9fa;border-radius:5px}.fraction-strip{display:flex;height:48px;margin:4px auto 12px;max-width:290px;border:1px solid #487681}.fraction-strip i{flex:1;border-right:1px solid #487681}.fraction-strip i:last-child{border:0}.fraction-strip i.filled{background:var(--teal)}.fraction-symbol{display:inline-flex;flex-direction:column;align-items:center;font:39px/1.3 Georgia,serif}.fraction-symbol b{font-weight:500;padding:0 10px}.fraction-symbol b:first-child{border-bottom:2px solid var(--ink)}.example{font-family:Georgia,var(--font);font-size:33px;line-height:1.6;color:#1c635e;overflow-wrap:anywhere;margin:0}.detail-section{border-top:1px solid var(--line);padding:20px 0}.detail-section h3{font-size:25.5px;margin:0 0 10px}.detail-section p{margin:0;font-size:22.5px;line-height:1.9}.detail-section details{margin-top:14px;background:#f5f9fa;border-radius:5px;padding:8px 12px;font-size:21px}.detail-section summary{color:var(--teal);cursor:pointer;min-height:28px}.detail-section details p{padding:10px 0 3px;font-size:21px}.link-row{display:flex;align-items:center;justify-content:space-between;text-align:left;width:100%;border-radius:5px;color:var(--teal);padding:6px 8px;margin-left:-8px}.link-row:hover{background:var(--teal-light)}.link-row small{color:var(--muted);font-size:18px;margin-left:8px}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.status-btn{border:1px solid var(--line);border-radius:6px;padding:8px 2px;font-size:21px}.status-btn[data-status=learning]{border-color:#a8d5d8}.status-btn[data-status=review]{border-color:#ead49d}.status-btn[data-status=mastered]{border-color:#b4d6ae}.status-btn[aria-pressed=true]{background:var(--teal-light);border-color:var(--teal);color:#0f7267;box-shadow:inset 0 0 0 1px var(--teal)}.status-btn:hover{background:var(--canvas)}.primary{background:var(--teal);color:#fff;padding:12px 20px;border-radius:6px;font-weight:600;min-height:48px}.primary:hover{background:#106e64}.add-plan{width:100%;margin-top:14px}.book-note{font-size:18px;color:var(--muted);line-height:1.8;margin:16px 0 0}.book-note a{display:block}.inspector-footer{color:var(--muted);font-size:18px;margin:16px 0 0}.plan-view{max-width:1100px;margin:0 auto;padding:42px 32px 80px}.plan-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px}.plan-heading h2{font-size:45px;margin-bottom:8px}.plan-heading p{color:var(--muted);margin-bottom:0}.plan-actions{display:flex;gap:8px;flex-wrap:wrap}.secondary{border:1px solid var(--line);padding:8px 15px;border-radius:6px;font-size:21px;background:#fff}.secondary:hover{background:var(--canvas)}.plan-empty{padding:65px 20px;text-align:center;background:var(--canvas);border:1px dashed #c9dce2;border-radius:8px}.plan-empty h3{font-size:33px;margin-bottom:12px}.plan-empty p{max-width:480px;margin:0 auto 24px;color:var(--muted)}.plan-list{display:grid;gap:24px}.plan-item{border:1px solid var(--line);border-radius:8px;overflow:hidden}.plan-item-header{background:#f6fafb;padding:20px 24px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.plan-item h3{margin:0;font-size:30px}.plan-item-header p{font-size:21px;color:var(--muted);margin:5px 0 0}.plan-item-body{padding:20px 24px}.plan-step{display:flex;gap:16px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #eef2f3}.step-number{width:26px;height:26px;background:var(--teal-light);color:var(--teal);border-radius:50%;text-align:center;flex-shrink:0;font-size:21px}.plan-step p{margin:4px 0 8px;color:var(--muted);font-size:21px}.plan-step button{padding:0;text-align:left;color:var(--teal);min-height:26px;font-weight:600}.plan-step select{border:1px solid var(--line);border-radius:4px;font-size:19.5px;padding:5px;min-height:34px;background:#fff;color:var(--ink)}.plan-step-content{flex:1;min-width:0}.plan-item-body>p{font-size:21px;color:var(--muted);margin:0 0 12px}.plan-item details{margin-top:16px}.plan-item summary{color:var(--teal);cursor:pointer;font-size:21px}.plan-done{color:var(--teal);padding:20px;background:var(--teal-light);border-radius:5px}.plan-storage{font-size:19.5px;color:var(--muted);margin-top:22px}.remove-plan{font-size:21px;color:#667984;min-height:32px;flex-shrink:0}.remove-plan:hover{color:#ae4949}.storage-warning{padding:10px;background:#fff1d4;color:#7d5922;margin:10px 0;font-size:21px}.backup-notice{font-size:21px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:12px;padding:0;width:min(680px,calc(100% - 28px));max-height:85dvh;color:var(--ink);box-shadow:0 25px 100px #132c3933}dialog::backdrop{background:#152e4066;backdrop-filter:blur(3px)}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:20px 26px;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:1}.dialog-header h2{font-size:34.5px;margin:0}.close{font-size:42px;min-width:42px;color:var(--muted)}.dialog-body{padding:24px 28px;font-size:22.5px}.dialog-body p{line-height:1.9}.dialog-body h3{margin:26px 0 10px;font-size:25.5px}.help-steps{padding-left:24px}.help-steps p{margin:6px 0 16px;color:var(--muted)}#sources p{font-size:19.5px;color:var(--muted);margin-bottom:12px}#sources a{font-size:21px}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#173b37;color:#fff;padding:12px 22px;border-radius:8px;box-shadow:0 8px 30px #172e3325;z-index:20;max-width:calc(100vw - 32px);font-size:21px}.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}[hidden]{display:none!important}
.map-panel,.inspector{min-height:0}
#graph{min-width:0}
@media(max-width:1000px){.graph-scroll::before{content:'左右滑动探索，向下查看后续年龄';display:block;position:sticky;left:0;top:0;width:100%;padding:3px 14px;background:#f5f9bf00;color:var(--muted);font-size:18px;pointer-events:none;z-index:1;background:#f5f9fbeF}}
@media(min-width:1600px){.workspace{grid-template-columns:minmax(0,1fr) 470px}.inspector{padding:34px 36px}.header{padding:0 40px}.toolbar{padding:18px 32px}.status-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1200px){.tagline{display:none}.workspace{grid-template-columns:minmax(0,1fr) 350px}.inspector{padding:24px 22px}.toolbar{flex-wrap:wrap;padding:12px 18px;gap:10px}.filters{gap:7px}.filter{padding:6px 12px}.search-wrap{max-width:none;flex-basis:100%}.search-results{width:100%}.map-caption{padding:5px 16px}.map-bottom{padding:10px 14px}.legend{gap:10px}.legend>span:last-child{display:none}}
@media(max-width:1000px){.header{height:118px;padding:13px 16px 0;display:flex;flex-wrap:wrap;gap:8px;align-content:space-between}.brand{gap:10px}.brand h1{font-size:34.5px}.brand-mark{height:26px}.brand-mark i{width:7px}.brand-mark i:nth-child(3){height:27px}.brand-mark i:nth-child(2){height:19px}.brand-mark i:nth-child(1){height:11px}nav{width:100%;justify-content:flex-start;margin:0;gap:8px;padding-bottom:9px}.nav{font-size:21px;padding:6px 15px;min-height:38px}.nav.help{margin-left:auto;padding-right:0}.workspace{height:calc(100dvh - 118px);min-height:440px;display:block}.map-panel{height:100%}.toolbar{padding:12px 14px;gap:10px}.filters{width:100%;justify-content:space-between;gap:5px}.filter{flex:1;font-size:19.5px;padding:6px 4px;min-height:38px}.search-wrap{flex-basis:100%;width:100%}.search-wrap input{min-height:38px}.map-caption{font-size:18px;gap:8px;padding:5px 14px}.map-caption button{font-size:18px;white-space:nowrap}.graph-scroll{overscroll-behavior:contain}.map-bottom{padding:8px 12px}.legend{font-size:18px;gap:12px}.zoom button{padding:0 6px;min-width:32px}.zoom output{min-width:32px;font-size:16.5px}.map-footnote{font-size:16.5px;padding:0 12px 5px}.map-footnote button{font-size:16.5px}.inspector{display:none;position:fixed;z-index:9;left:0;right:0;bottom:0;max-height:79dvh;border:1px solid var(--line);border-radius:18px 18px 0 0;padding:18px 23px 28px;box-shadow:0 -15px 80px #142c3933;overscroll-behavior:contain}.inspector.open{display:block}.mobile-close{display:block;font-size:36px;min-width:42px}.inspector h2{font-size:40.5px}.detail-top{margin-bottom:5px}.status-grid{grid-template-columns:repeat(4,1fr)}.status-btn{font-size:18px}.fraction-demo{padding:12px 20px}.fraction-strip{height:36px}.plan-view{padding:24px 16px 60px}.plan-heading{display:block;margin-bottom:20px}.plan-heading h2{font-size:39px}.plan-heading p{font-size:21px}.plan-actions{margin-top:18px}.plan-item-header{padding:17px}.plan-item-body{padding:17px}.plan-step{gap:10px}.plan-step select{max-width:110px}.dialog-header{padding:15px 20px}.dialog-body{padding:20px}.toast{bottom:16px;width:max-content;max-width:calc(100% - 30px)} }
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.header nav,.toolbar,.map-view,.plan-actions,.remove-plan,dialog,.toast,select{display:none!important}.header{height:auto;padding:12px}.plan-view{padding:0;max-width:none}.plan-item{break-inside:avoid;box-shadow:none}.plan-item summary{display:none}.plan-item details>div{display:block}.plan-step{break-inside:avoid}}
