
:root{--ink:#173b3b;--muted:#688080;--line:#dce8e5;--mint:#148d80;--paper:#f5f9f8}*{box-sizing:border-box}body{margin:0;font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink);background:var(--paper)}button,input,select{font:inherit}button,select{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #3abca9;outline-offset:3px}header{height:108px;padding:20px 28px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--mint);font-weight:700}h1{font-size:25px;letter-spacing:.5px;margin:6px 0}header p{font-size:12px;color:var(--muted);margin:0}.stats{display:flex;gap:24px}.stat strong{font-size:23px;display:block}.stat span{font-size:11px;color:var(--muted)}.toolbar{height:65px;display:flex;align-items:center;gap:9px;padding:0 26px;border-bottom:1px solid var(--line);background:#fff}.toolbar button,.toolbar select{border:1px solid var(--line);border-radius:7px;background:#fff;padding:8px 11px;font-size:12px;color:var(--ink)}.toolbar button:hover{background:#ecf7f3;border-color:#9dcbbf}.toolbar .primary{background:var(--mint);color:#fff;border-color:var(--mint)}.toolbar .primary:hover{background:#10796f}.toolbar select{max-width:185px}.search-wrap{position:relative;margin-left:auto}input{width:200px;border:1px solid var(--line);border-radius:7px;padding:9px 12px;font-size:12px;background:#f6faf8}#results{position:absolute;right:0;top:42px;width:290px;max-height:320px;overflow:auto;background:#fff;box-shadow:0 8px 30px #15342f21;z-index:4;border-radius:8px;padding:6px;display:none}#results button{width:100%;text-align:left;border:0;border-radius:5px;padding:10px;display:block}.workspace{height:calc(100dvh - 173px);display:grid;grid-template-columns:minmax(0,1fr) 330px}.canvas{position:relative;min-width:0;overflow:hidden;background-color:#f6faf8;background-image:radial-gradient(#cfdfda .8px,transparent .8px);background-size:20px 20px}#mindmap{width:100%;height:100%;display:block}.map-label{position:absolute;top:19px;left:25px;color:#52726a;font-size:11px;pointer-events:none}.hint{position:absolute;bottom:18px;left:25px;font-size:11px;color:#688078;background:#ffffffde;border:1px solid var(--line);padding:9px 12px;border-radius:7px}.markmap{font:14px "Microsoft YaHei",sans-serif}.markmap .node-link{color:#244e47;text-decoration:none}.markmap .node-link:hover{color:#087a69;text-decoration:underline}.markmap strong{font-weight:700}.markmap-foreign{line-height:1.55}.detail{border-left:1px solid var(--line);padding:24px 22px;overflow:auto;background:white}.detail .small-label{font-size:10px;color:var(--muted);letter-spacing:1px}.detail h2{font-size:19px;line-height:1.5;margin:9px 0 12px}.pill{display:inline-block;font-size:10px;padding:4px 8px;border-radius:4px;background:#e5f5ee;color:#32705c}.pill.entry{background:#fbf1de;color:#8e6c36}.detail p{font-size:12px;line-height:1.85;color:#647a74;margin:14px 0 16px}.shot-label{display:flex;justify-content:space-between;margin:18px 0 10px;font-size:11px;color:#647a74}.preview{display:block;width:100%;max-height:46vh;object-fit:contain;object-position:top;background:#f5f8f6;border-radius:8px;cursor:zoom-in;border:1px solid var(--line)}.thumbs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.thumbs button{font-size:10px;color:var(--muted);border:1px solid var(--line);background:#fff;border-radius:5px;padding:6px}.thumbs button.active{background:#e5f5ee;color:#087a69;border-color:#8fc4b5}.filename{font-size:9px;overflow-wrap:anywhere;color:#8a9b94;line-height:1.5}.source-link{font-size:11px;color:#118575}.boundary{padding-top:16px;margin-top:21px;border-top:1px solid var(--line);font-size:10px;color:#7b8c85;line-height:1.8}.boundary a{color:#548574}.boundary summary{cursor:pointer}dialog{padding:0;border:0;border-radius:12px;max-width:95vw;background:#f6faf8}dialog::backdrop{background:#102b2ad9}dialog img{display:block;max-height:88vh;max-width:92vw;object-fit:contain}dialog button{position:absolute;top:10px;right:10px;border:1px solid #dce8e5;border-radius:6px;background:#fff;padding:8px 12px;color:#173b3b}#error{display:none;padding:30px;position:absolute;inset:80px 30px auto;background:#fff1ed;border:1px solid #e5b8a8;z-index:5;font-size:13px}.mobile-detail{display:none}noscript{display:block;padding:30px;background:white}
@media(max-width:1050px){header{padding:18px}.stats{gap:13px}.toolbar{padding:0 14px;gap:6px}.toolbar button{padding:8px}input{width:140px}.workspace{grid-template-columns:minmax(0,1fr) 285px}.detail{padding:20px 17px}.legend{display:none}.hint{left:15px;font-size:10px}}
@media(max-width:760px){header{height:116px}.stats .stat:nth-child(2){display:none}header h1{font-size:20px}header p{max-width:230px;line-height:1.7}.toolbar{height:104px;flex-wrap:wrap;padding:10px}.toolbar select{width:148px}.search-wrap{margin-left:0}input{width:150px}.workspace{height:calc(100dvh - 220px);grid-template-columns:1fr}.detail{position:absolute;right:12px;top:232px;bottom:12px;width:min(330px,calc(100vw - 24px));border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 40px #14342f26;z-index:3;display:none}.detail.open{display:block}.mobile-detail{display:inline-block}.hint{bottom:14px;max-width:calc(100% - 30px);line-height:1.6}.stats .stat strong{font-size:18px}.stats{gap:8px}.map-label{top:12px;left:15px}.preview{max-height:43vh}}
.preview[hidden]{display:none}
.toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,360px) minmax(0,1fr)}.toolbar-controls{display:flex;align-items:center;gap:9px;min-width:0}.search-wrap{width:100%;margin:0}.search-wrap input{width:100%}#results{left:0;right:auto;width:100%;max-height:min(420px,60vh)}#results .result-count{font-size:11px;color:var(--muted);padding:7px 10px}#results button{padding:9px 10px}#results button.active{background:#e5f5ee}#results .result-path{display:block;font-size:10px;color:var(--muted);margin-top:3px}.detail{position:relative;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:18px 20px}.detail h2{margin:5px 0 8px;font-size:18px}.detail p{margin:9px 0 3px;line-height:1.6}.detail .note-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;flex:none}.detail .note-more{align-self:flex-start;border:0;background:none;padding:2px 0;color:#118575;font-size:11px;cursor:pointer}.detail .note-more[hidden],.detail .source-link[hidden]{display:none}.shot-label{margin:9px 0 6px}.preview{flex:1 1 auto;height:0;min-height:70px;max-height:none;width:100%;object-fit:contain;object-position:center}.thumbs{flex:none;flex-wrap:nowrap;overflow-x:auto;max-width:100%;margin:7px 0 3px;padding-bottom:2px}.thumbs button{white-space:nowrap;flex:none}.filename{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none}.boundary{flex:none;margin-top:7px;padding-top:7px;line-height:1.5}.boundary summary{font-size:10px}.boundary[open]{position:absolute;right:12px;bottom:12px;max-width:min(450px,calc(100% - 24px));max-height:55%;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;box-shadow:0 8px 30px #15342f21;z-index:3}.note-dialog{width:min(560px,calc(100vw - 32px));max-height:80vh;overflow:auto;background:white;padding:24px;color:var(--ink)}.note-dialog h2{margin:0 40px 14px 0;font-size:18px}.note-dialog p{font-size:13px;line-height:1.8;white-space:pre-wrap;color:#526d65}.note-dialog strong{display:block;margin-bottom:9px}.detail .preview[hidden]{display:none}
.workspace{grid-template-columns:minmax(0,1fr) 400px}
@media(max-width:1450px){.toolbar{height:104px;grid-template-columns:1fr;grid-template-rows:auto auto;gap:5px;padding:6px 14px}.toolbar-controls{justify-content:center;gap:5px}.search-wrap{grid-row:2;max-width:400px;justify-self:center}.toolbar-spacer{display:none}.workspace{height:calc(100dvh - 212px)}}
@media(max-width:1050px){.workspace{grid-template-columns:minmax(0,1fr) 330px}}
@media(max-width:760px){header{display:block;padding:10px 14px}.stats{display:none}header h1{font-size:19px;margin:6px 0}header p{max-width:none}.toolbar{height:104px}.toolbar-controls{overflow-x:auto;justify-content:flex-start}.toolbar-controls>*{flex:none;white-space:nowrap}.search-wrap{max-width:min(400px,calc(100vw - 20px))}.workspace{height:calc(100dvh - 220px);grid-template-columns:1fr}.detail{position:absolute;display:none;width:min(400px,calc(100vw - 24px));padding:16px}.detail.open{display:flex}.boundary[open]{right:8px;bottom:8px}}
.detail .pill,.detail .source-link{align-self:flex-start}
.detail-close{position:absolute;right:14px;top:12px;border:0;background:#f1f7f4;border-radius:6px;padding:5px 9px;color:var(--ink);cursor:pointer}
.preview-wrap{position:relative;flex:1 1 auto;height:0;min-height:70px;width:100%;overflow:hidden;background:#f5f8f6;border:1px solid var(--line);border-radius:8px}.preview-wrap[hidden]{display:none}.preview-wrap .preview{display:block;width:100%;height:100%;min-height:0;max-height:none;border:0;border-radius:0;background:transparent;object-fit:contain;object-position:center}.preview-nav{position:absolute;top:50%;z-index:1;transform:translateY(-50%);width:34px;height:46px;padding:0;border:1px solid #bed8d0;border-radius:8px;background:#fffffff0;color:#176e64;font-size:30px;line-height:1;box-shadow:0 3px 12px #173b3b24;cursor:pointer}.preview-nav:hover{background:#fff;color:#0a524b}.preview-nav[hidden]{display:none}.preview-nav.prev{left:8px}.preview-nav.next{right:8px}
.detail .note-summary,.note-dialog p,.boundary{white-space:pre-line}.detail .note-summary{line-clamp:5;-webkit-line-clamp:5}