:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#1d2942;background:#f7f8fb;font-size:13px;--line:#e4e8f0;--accent:#454dc5;--muted:#7d879a}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button{border:1px solid var(--line);background:#fff;color:#34425a;border-radius:7px;padding:8px 11px;white-space:nowrap}button:hover{background:#f1f3ff;border-color:#bfc4ea}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger{color:#b5455b}input,select,textarea{border:1px solid #dce1eb;border-radius:6px;padding:9px;background:white;color:inherit;min-width:0}input:focus,textarea:focus{outline:2px solid #d9dcff;border-color:#737ad2}header{height:76px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;padding:0 22px;gap:24px}.brand{font-size:25px;font-weight:800;padding:0;border:0;letter-spacing:-1px;color:#353d8a;background:none}.brand span{display:block;font-size:9px;letter-spacing:2px;text-align:left;color:#9298aa;margin-top:3px}.document-heading{min-width:120px;flex:1}h1{font-size:16px;margin:0 0 5px;font-weight:650}#counts{font-size:11px;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:8px}#save-state{font-size:11px;color:var(--muted);margin-right:8px}.toolbar{height:53px;display:flex;align-items:center;justify-content:space-between;padding:8px 16px;gap:12px;background:#fff;border-bottom:1px solid var(--line)}.toolbar-group{display:flex;align-items:center;gap:6px}.toolbar button,.toolbar select{font-size:12px;padding:7px 9px}#chapter{max-width:230px}kbd{font:10px inherit;color:#9aa3b5;margin-left:5px}.workspace{height:calc(100dvh - 129px);display:flex;position:relative}#notice:not([hidden])~.workspace{height:calc(100dvh - 177px)}#notice{height:48px;background:#fff4e6;border-bottom:1px solid #f4d1a9;padding:8px 20px;display:flex;align-items:center;gap:10px}#notice[hidden]{display:none}#notice-text{flex:1;color:#875123;font-size:12px}#outline{width:280px;flex:0 0 280px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}#outline[hidden]{display:none}.aside-title{display:flex;justify-content:space-between;align-items:center;padding:20px 17px 10px}.aside-title strong{font-size:14px}.aside-title span{font-size:11px;color:var(--muted)}.outline-intro{font-size:11px;line-height:1.8;color:#8590a3;padding:0 17px 13px}.search-box{display:flex;margin:0 14px 12px;position:relative}.search-box input{width:100%;font-size:12px;padding-right:30px}.search-box button{position:absolute;right:0;background:none;border:0;color:#9ba4b5}#outline-tree,#search-results{overflow:auto;padding:2px 9px 20px;flex:1}#outline-tree button,#search-results button{width:100%;text-align:left;white-space:normal;background:none;border:0;line-height:1.65;border-radius:6px}.outline-row{display:flex;gap:2px;margin:2px 0}.outline-row .fold{width:23px;flex:0 0 23px;padding:7px 0;text-align:center;color:#959fb3}.outline-row .outline-node{flex:1;padding:7px 6px}.outline-row.active{background:#eef0ff;border-radius:6px}.outline-row small{color:#9aa4b7;font-size:10px;margin-left:7px}.outline-children{padding-left:15px;border-left:1px solid #f0f2f8;margin-left:12px}#search-results .search-meta{font-size:10px;color:var(--muted);display:block}footer{padding:12px 16px;border-top:1px solid var(--line)}footer button{padding:0;border:0;background:none;font-size:11px}footer a{display:block;color:#99a2b4;font-size:10px;margin-top:7px;text-decoration:none}main{flex:1;position:relative;overflow:hidden;background:#fafbfe;min-width:0}.canvas-caption{position:absolute;top:20px;left:25px;z-index:2;pointer-events:none;display:flex;flex-direction:column;gap:6px;max-width:80%;background:#fafbfede;padding:0 12px 8px 0}.eyebrow{font-size:9px;letter-spacing:2px;color:#919ab1}.canvas-caption strong{font-size:20px;font-weight:600;max-width:700px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#view-description{font-size:11px;color:#929cb0}#mindmap{position:absolute;inset:0;background-image:radial-gradient(#dfe4ee .7px,transparent .7px);background-size:20px 20px}#mindmap .map-container{background:transparent}#mindmap me-tpc{font-family:inherit!important;font-size:14px;line-height:1.6;max-width:380px!important;white-space:normal;word-break:normal}#mindmap me-main>me-wrapper>me-parent>me-tpc{font-size:16px;font-weight:600}#mindmap me-root>me-tpc{font-size:19px!important;max-width:330px!important}#mindmap .tags{font-size:10px}.canvas-bottom{position:absolute;bottom:16px;left:20px;right:18px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;pointer-events:none;z-index:2}#hint{max-width:400px;color:#8a95aa;font-size:10px;line-height:1.8;background:#fafbfecc;padding:4px 6px}.canvas-controls{display:flex;gap:3px;background:#fff;border:1px solid var(--line);box-shadow:0 3px 13px #14234a08;padding:5px;border-radius:8px;pointer-events:auto}.canvas-controls button,.canvas-controls select{border:0;font-size:11px;padding:6px 8px}.canvas-controls select{max-width:130px}#zoom{min-width:45px}#details{width:340px;flex:0 0 340px;background:#fff;border-left:1px solid var(--line);padding:0 18px 25px;overflow:auto}#details[hidden]{display:none}#details .aside-title{padding:18px 0 12px}#details-close{border:0;font-size:20px;padding:0 2px;color:#9da6b8}label{font-size:11px;color:#7d879a;display:block;margin:16px 0}label input,label select,label textarea{display:block;width:100%;margin-top:7px;font-size:12px;color:#32415a;line-height:1.7}textarea{resize:vertical}.field-row{display:flex;gap:10px}.field-row label{flex:1;margin:0}.field-row label:first-child{flex:1.6}#breadcrumbs{font-size:10px;line-height:1.8;color:#9aa3b5;word-break:break-word}.source-heading{margin-top:24px;font-size:11px;color:#8e98ad}.source-card{font-size:11px;padding:12px 0;border-bottom:1px solid #edf0f6;line-height:1.7}.source-card a{color:#4b57bd;text-decoration:none}.source-card .source-meta{font-size:10px;color:#9aa3b7}.source-card p{margin:5px 0;color:#7d879a}.muted{font-size:10px;line-height:1.8;color:#9ba4b5}dialog{border:1px solid var(--line);border-radius:13px;width:460px;max-width:92vw;padding:28px;color:inherit;box-shadow:0 24px 100px #16234d30}dialog::backdrop{background:#19244055;backdrop-filter:blur(3px)}dialog h2{font-size:21px;margin:8px 0 15px}dialog p{font-size:12px;line-height:1.9;color:#7d879a}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.export-list{display:grid;gap:8px}.export-list button{text-align:left;padding:13px}#login-error{color:#b64d61;min-height:16px}#sources-dialog{width:700px;max-height:84vh}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#283451;color:#fff;padding:12px 20px;border-radius:8px;z-index:30;font-size:12px;box-shadow:0 6px 30px #18234c33}#toast[hidden]{display:none}@media(max-width:1250px){#outline{width:240px;flex-basis:240px}#details{position:absolute;right:0;top:0;bottom:0;z-index:5;box-shadow:-10px 0 35px #18234b12}.editing-tools kbd{display:none}.toolbar{gap:5px;padding:8px}.document-heading h1{max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#chapter{max-width:170px}}@media(max-width:900px){header{height:68px;padding:0 13px;gap:15px}.brand{font-size:21px}.brand span{display:none}.document-heading h1{font-size:13px;max-width:290px}.header-actions #save-state{display:none}.toolbar{overflow-x:auto;justify-content:flex-start;height:52px}#outline{position:absolute;left:0;top:0;bottom:0;z-index:5;box-shadow:10px 0 30px #14234d15;width:260px;flex-basis:260px}.workspace{height:calc(100dvh - 120px)}#hint{display:none}.canvas-bottom{justify-content:flex-end}.canvas-caption{left:18px}.canvas-caption strong{font-size:17px}#counts{font-size:10px}.header-actions button{padding:7px 9px}.toolbar-group button{font-size:11px}.canvas-controls{gap:0}#details{max-width:92vw}}@media(max-width:590px){.document-heading{display:none}header{justify-content:space-between}#all-map,#focus{display:none}.canvas-caption #view-description{max-width:280px;line-height:1.8}#view-title{max-width:280px}#zoom-in,#zoom-out{padding:6px}#chapter{max-width:150px}}
.context-menu #cm-summary{display:none}
#mindmap me-main>me-wrapper>me-parent>me-tpc{max-width:270px!important}#mindmap me-root>me-tpc{max-width:280px!important}

/* A flex viewport also handles notices and horizontally scrolling toolbars. */
body{height:100dvh;display:flex;flex-direction:column}header,.toolbar,#notice{flex-shrink:0}.toolbar{overflow-x:auto;justify-content:flex-start}.toolbar-group{flex-shrink:0}.toolbar>#details-toggle{margin-left:auto}.workspace,#notice:not([hidden])~.workspace{height:auto!important;flex:1;min-height:0}#outline,#details{min-height:0}#mindmap .map-container{touch-action:none;overscroll-behavior:none}#mindmap[data-mode="pan"] .map-container{cursor:grab}#mindmap[data-mode="select"] .map-container{cursor:crosshair}#mindmap me-tpc{cursor:pointer}#mindmap .map-container.canvas-panning,#mindmap .map-container.canvas-panning *{cursor:grabbing!important}#mindmap .map-container.space-pressed,#mindmap .map-container.space-pressed *{cursor:grab}#mindmap #input-box{cursor:text;max-width:380px;white-space:pre-wrap;overflow-wrap:anywhere}.canvas-tools{position:absolute;bottom:70px;left:20px;display:flex;gap:2px;background:#fff;border:1px solid var(--line);border-radius:8px;z-index:3;padding:4px;box-shadow:0 3px 13px #14234a08}.canvas-tools button{font-size:11px;padding:6px 8px;border:0}.canvas-tools button[aria-pressed="true"]{color:#454dc5;background:#eef0ff}.help-list{font-size:12px;line-height:1.9}.help-list dt{font-weight:700;margin-top:15px}.help-list dd{margin:4px 0;color:#738097}#help-dialog{max-height:88dvh;overflow:auto}.canvas-caption{top:15px}.canvas-caption strong{max-width:100%}#details-state{min-height:18px;color:#738097}@media(max-width:1250px){#hint{display:none}.canvas-bottom{justify-content:flex-end}}@media(max-width:590px){.canvas-tools{left:12px;bottom:70px}.canvas-tools button{padding:6px;font-size:10px}.canvas-bottom{left:10px;right:10px;bottom:14px}.canvas-controls{max-width:100%;flex-wrap:wrap;justify-content:flex-end}.canvas-controls button,.canvas-controls select{padding:6px}.canvas-caption{max-width:90%}}

@media(min-width:901px){#details{position:relative;top:auto;right:auto;bottom:auto;width:320px;flex:0 0 320px;box-shadow:none}}

/* Prevent focus/click auto-scroll from creating a second hidden pan offset. */
main{overflow:clip}#mindmap{position:absolute!important;width:100%;height:100%;overflow:clip}#mindmap .map-container{overflow:clip}
