@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
*{box-sizing:border-box}body{margin:0;background:#f8f9f6;color:#28372e;font-family:'Noto Sans SC',sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button,a{transition:.18s}button{cursor:pointer;background:white;border:1px solid #e1e5dd;border-radius:7px;padding:9px 13px;color:inherit;display:inline-flex;gap:8px;align-items:center;justify-content:center}button:hover{background:#edf2e9}a{color:#42664a;text-decoration:none}input,select,textarea{border:1px solid #dfe4db;background:#fff;border-radius:6px;padding:10px 12px;color:#344438;min-width:0}input:focus,textarea:focus,select:focus{outline:2px solid #bacdb3}h1,h2,h3,p{margin-top:0}.shell{display:flex;min-height:100vh}aside{width:246px;flex-shrink:0;background:#fcfdfb;border-right:1px solid #e3e7df;padding:32px 20px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0}.brand{display:flex;align-items:center;gap:11px;font-size:24px;letter-spacing:3px;font-weight:600;padding:0 8px}.brand span{display:block;font-size:8px;letter-spacing:2px;margin-top:3px;color:#81917c}.brandmark{background:#416448;color:#fff;border-radius:10px;display:grid;place-items:center;width:39px;height:43px}.workspace{margin:34px 0 27px;display:flex;align-items:center;gap:10px;padding:12px 7px;border-block:1px solid #e8ebe4;font-size:12px}.workspace>svg{margin-left:auto;color:#8d9a87}.workspace small,.storage small{display:block;font-size:10px;color:#929c8e;margin-top:4px}.avatar{width:31px;height:31px;border-radius:50%;display:inline-grid;place-items:center;color:#557149;background:#e8edde;font-size:10px}.navlabel,.categoryhead{font-size:11px;color:#97a08f;letter-spacing:1px;padding:0 13px;margin-bottom:13px}nav{display:grid;gap:5px}nav button{justify-content:flex-start;border:0;background:transparent;padding:13px 15px;color:#788271;font-size:13px}nav button.active{background:#eaf0e4;color:#3c633f;font-weight:600}em{font-style:normal;margin-left:auto;color:#83917a;font-size:11px}.categoryhead{display:flex;align-items:center;justify-content:space-between;margin-top:34px;margin-bottom:8px}.categoryhead button{padding:2px;border:0;background:transparent}.cat{border:0;background:transparent;justify-content:flex-start;width:100%;font-size:12px;padding:12px 15px;color:#7c8875}.cat.chosen{color:#3d6143}.dot{width:7px;height:7px;border-radius:50%;background:#9db287;margin-right:5px}.d1{background:#b3a3c5}.d2{background:#d1b07b}.d3{background:#7fa9a7}.sidehint{font-size:11px;color:#a2aa9b;padding:10px 14px}.sidebottom{margin-top:auto;padding-top:35px}.storage{display:flex;align-items:center;gap:9px;border:1px solid #e6eadd;background:#f4f6f0;border-radius:8px;padding:13px 10px;font-size:11px}.storage>svg{color:#72816a}.storage i{height:6px;width:6px;border-radius:100%;background:#d9b875;margin-left:auto}.storage i.online{background:#6e9d72}.sidebottom>button{border:0;background:none;width:100%;justify-content:flex-start;margin-top:14px;font-size:12px;color:#849079}.sidebottom>button svg:last-child{margin-left:auto}.sidebottom>a{font-size:10px;color:#9ba492;display:block;padding:6px 14px}main{margin-left:246px;width:calc(100% - 246px)}header{height:80px;background:#fcfdfb;border-bottom:1px solid #e5e8e1;display:flex;justify-content:space-between;align-items:center;padding:0 40px;color:#929c8c;font-size:11px}header>div{display:flex;align-items:center;gap:13px}header strong{font-weight:400;color:#53634d}.private{color:#7e8d74}.private .avatar{margin-left:10px}.content{padding:42px 42px 0;max-width:1600px;margin:auto}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font-size:9px;letter-spacing:2px;color:#9ca98d;font-weight:500;margin-bottom:12px}h1{font-family:Georgia,'Noto Sans SC',serif;font-size:29px;font-weight:500;letter-spacing:1px;margin-bottom:13px}.subtitle{font-size:12px;color:#929c89;line-height:1.9;margin-bottom:0}.primary{background:#496b4b;color:white;border-color:#496b4b;padding:11px 18px;font-size:12px;display:inline-flex;align-items:center;gap:8px;border-radius:7px}.primary:hover{background:#3d5d40}.primary:disabled{opacity:.5}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:33px 0 39px}.stats>div{display:flex;gap:16px;background:#fff;border:1px solid #e5e9df;border-radius:9px;padding:21px 20px}.statIcon{background:#f1f4ec;border:1px solid #e8edde;color:#8a9b7c;width:39px;height:39px;display:grid;place-items:center;border-radius:9px}.stats label{display:block;font-size:11px;color:#8b9682}.stats strong{display:block;font-family:Georgia,serif;font-weight:400;font-size:30px;margin:7px 0 9px}.stats small{font-size:9px;color:#a0a897}.sectiontitle{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}h2{font-size:18px;font-weight:500}.sectiontitle h2{margin:0;display:flex;gap:10px;align-items:center}.sectiontitle h2 span{font-size:10px;background:#e9eee2;color:#6d805c;border-radius:5px;padding:3px 7px}.muted{font-size:10px;color:#9aa48f}.toolbar{display:flex;gap:12px;margin-bottom:24px;align-items:center}.search{display:flex;align-items:center;gap:9px;background:white;border:1px solid #e1e6db;border-radius:6px;flex:1;padding:0 13px;color:#a3ad99}.search input{border:0;outline:none;flex:1;background:transparent;padding:12px 0;font-size:11px;width:100%}.search input:focus{outline:none}.toolbar select{font-size:11px;color:#829075}.toolbar>button{padding:11px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.paper{background:white;border:1px solid #e3e7dd;border-radius:9px;padding:22px;cursor:pointer;transition:.2s}.paper:hover{border-color:#abbca0;box-shadow:0 6px 20px #42583109;transform:translateY(-2px)}.cardtop{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.badge{display:inline-block;background:#eef2e8;border-radius:4px;padding:4px 8px;font-size:9px;color:#718463}.cardtop>span:last-child{display:flex;align-items:center;gap:9px;font-size:10px;color:#a3ac9b}h3{font-size:15px;font-weight:500;line-height:1.65}.paper h3{margin-bottom:12px;overflow-wrap:anywhere}.authors{font-size:10px;color:#9ba591;line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.abstract{color:#88947e;font-size:11px;line-height:1.9;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:62px}.tags{display:flex;gap:9px;color:#a0aa94;font-size:9px;min-height:20px}.cardfoot{margin-top:16px;border-top:1px solid #eff1eb;padding-top:14px;display:flex;justify-content:space-between;font-size:9px;color:#8b9a80}.cardfoot>span{display:flex;align-items:center;gap:5px}.cardfoot i{width:5px;height:5px;background:#adba80;border-radius:50%}.list{grid-template-columns:1fr}.empty{border:1px dashed #dce3d3;border-radius:10px;text-align:center;padding:65px 20px 75px;background:#fbfcf8;color:#8f9e82}.emptyicon{width:70px;height:70px;border:1px solid #e0e7d7;background:#eff3e9;border-radius:20px;display:grid;place-items:center;margin:0 auto 23px}.empty h3{font-size:19px;color:#5d7353;margin-top:20px;margin-bottom:12px}.empty p{font-size:12px;color:#9ba78e;margin-bottom:26px}.empty button{margin:0 5px}.empty>svg{color:#a3b394}footer{display:flex;justify-content:space-between;margin-top:45px;padding:22px 0;color:#b0b9a6;font-size:9px;border-top:1px solid #e7ebdf}footer span:last-child{font-size:8px;letter-spacing:1.5px}.result{background:white;border:1px solid #e0e6d9;padding:24px;border-radius:8px;margin-bottom:12px;display:flex;justify-content:space-between;gap:24px;align-items:center}.result h3{margin:12px 0}.result p{font-size:11px;color:#8c9980}.result a{font-size:11px}.result>button{white-space:nowrap}.graph{background-color:#fff;background-image:radial-gradient(#d7dfcf 1px,transparent 1px);background-size:20px 20px;border:1px solid #e0e7d8;border-radius:10px;overflow:hidden}.graphlabel{padding:20px;display:flex;align-items:center;gap:8px;font-size:12px;color:#809171}.graphlabel span{margin-left:auto;font-size:10px;color:#a4ae99}.graph svg{width:100%;max-height:560px}.node{cursor:pointer}.node:hover circle{fill:#d9e4d0}.relation{display:flex;gap:18px;align-items:center;padding:18px;border-bottom:1px solid #e3e8dd;font-size:11px}.relation span{flex:1}.relation b{color:#829575;font-weight:400}.overlay{position:fixed;inset:0;background:#1e302a55;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:25px;z-index:20}.dialog{background:#fcfdf9;border-radius:14px;max-height:90vh;overflow:auto;width:540px;padding:32px;position:relative;box-shadow:0 25px 90px #15251630}.dialog h2{margin:8px 0 24px}.close{position:absolute;right:16px;top:16px;background:none;border:0;padding:4px}.dialog label{display:block;margin:15px 0;font-size:11px;color:#7c8c70}.dialog label input,.dialog label select,.dialog label textarea{display:block;width:100%;margin-top:7px;font-size:12px}.dialog .formrow{display:flex;gap:16px}.formrow label{flex:1}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:25px}.actions button{font-size:11px}.detail{width:640px}.detail h2{font-size:22px;line-height:1.7}.detail>p{color:#89967e;font-size:12px}.detailtext{white-space:pre-wrap;line-height:2}.detail>h3{margin-top:28px}.related{display:block;text-align:left;width:100%;margin:6px 0;font-size:12px}.danger{color:#b15d50}.settingbox{border:1px solid #e2e8da;padding:20px;border-radius:8px;margin:15px 0;color:#849477}.settingbox h3{margin:10px 0}.settingbox p{font-size:12px;line-height:1.9;margin:6px 0}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#354f39;color:white;border-radius:8px;padding:14px 18px;display:flex;align-items:center;gap:20px;z-index:50;box-shadow:0 8px 30px #1e312a20;font-size:12px}.toast button{padding:0;border:0;color:white;background:transparent}.dialog .import{padding:12px;background:#f0f4ea;border-radius:7px}.dialog .import input{font-size:11px}button:focus-visible,a:focus-visible{outline:2px solid #7c9c6d;outline-offset:3px}@media(min-width:1550px){.content{padding-top:55px}.stats{margin-top:43px}}@media(max-width:1150px){aside{width:210px;padding:28px 15px}main{margin-left:210px;width:calc(100% - 210px)}.content{padding:32px 25px}.stats{gap:10px}.stats>div{padding:16px 12px;gap:8px}.stats small{display:none}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:25px}}@media(max-width:760px){aside{position:static;width:100%;padding:16px;border-right:0;border-bottom:1px solid #e0e6d8}.shell{display:block}.brand{font-size:20px}.workspace,.navlabel,.categoryhead,.cat,.sidehint,.sidebottom{display:none}nav{display:flex;overflow:auto;margin-top:16px}nav button{padding:10px;font-size:11px;white-space:nowrap}nav em{display:none}main{margin:0;width:100%}header{height:55px;padding:0 20px}.content{padding:25px 18px}.heading{align-items:flex-start}h1{font-size:21px}.subtitle{font-size:11px}.heading>.primary{padding:9px;white-space:nowrap}.stats{grid-template-columns:repeat(2,1fr);margin:25px 0}.stats strong{font-size:25px}.stats>div{padding:14px}.toolbar{flex-wrap:wrap}.search{flex-basis:100%}.cards{grid-template-columns:1fr}.muted{display:none}.empty{padding:45px 15px}.result{display:block}.result>button{margin-top:14px}.dialog{padding:26px 20px}.toast{width:90%}.relation{gap:8px}.graphlabel span{display:none}footer span:last-child{display:none}}
.libraryrows .paper{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:35px;padding:23px 26px;cursor:default}.libraryrows .paper>.cardtop,.libraryrows .paper>h3,.libraryrows .paper>.authors,.libraryrows .paper>.abstract,.libraryrows .paper>.tags,.libraryrows .paper>.cardfoot{grid-column:1}.libraryrows .paper>.actions{grid-column:2;grid-row:1/8;flex-direction:column;justify-content:center;align-items:stretch;margin:0;min-width:125px}.libraryrows .abstract{min-height:0;-webkit-line-clamp:unset;white-space:pre-wrap}.libraryrows .cardfoot{justify-content:flex-start;gap:25px}.libraryrows .paper h3{font-size:17px}.doiLabel{font-size:11px;overflow-wrap:anywhere}.checklabel{display:flex!important;align-items:center;gap:8px}.checklabel input{width:auto!important;margin:0!important}.dns{width:100%;border-collapse:collapse;font-size:10px}.dns td,.dns th{border:1px solid #dce5d4;padding:8px;text-align:left;overflow-wrap:anywhere;word-break:break-all}.dialog:has(.dns){width:700px}@media(max-width:760px){.libraryrows .paper{display:block}.libraryrows .paper>.actions{flex-direction:row;flex-wrap:wrap;margin-top:20px}.libraryrows .paper h3{font-size:15px}.doiLabel{max-width:80%}}
aside{overflow-y:auto}.categoryhead{flex-shrink:0}.cat{flex-shrink:0}.sidebottom{flex-shrink:0}aside nav{flex-shrink:0}.settingbox a{font-size:12px}

/* Literature hierarchy: intentional whitespace, orthogonal branches. */
.literature-tree{background:#fff;border:1px solid #e2e6dd;border-radius:14px;padding:24px}.tree-toolbar,.tree-toolbar>div{display:flex;align-items:center;gap:12px}.tree-toolbar{justify-content:space-between;flex-wrap:wrap}.tree-toolbar span,.tree-hint{font-size:12px;color:#829078}.tree-scroll{overflow:auto;padding:32px 10px 20px}.tree-roots,.tree-roots ul{display:flex;justify-content:center;list-style:none;padding:0;margin:0;width:max-content;min-width:100%}.tree-roots li{position:relative;display:flex;align-items:center;flex-direction:column;padding:0 20px}.tree-roots ul{padding-top:36px;position:relative}.tree-roots ul:before{content:'';position:absolute;top:0;height:18px;left:50%;border-left:1.5px solid #576852}.tree-roots ul>li:before{content:'';position:absolute;top:-18px;left:0;width:100%;border-top:1.5px solid #576852}.tree-roots ul>li:first-child:before{left:50%;width:50%}.tree-roots ul>li:last-child:before{width:50%}.tree-roots ul>li:only-child:before{width:0}.tree-roots ul>li:after{display:none}.tree-edge-wrap{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;flex:none}.tree-edge-line{position:relative;z-index:1;display:block;flex:none;width:0;height:20px;border-left:1.5px solid #576852}.tree-edge-line-before{margin-top:-18px;margin-bottom:8px}.tree-edge-line-after{margin-top:8px}.tree-edge-line-after:after{content:'';position:absolute;bottom:0;left:-5px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:7px solid #576852}.tree-edge{position:relative;z-index:1;background:#fff;color:#2874a3;font-size:11px;width:max-content;max-width:min(270px,calc(100vw - 48px));white-space:normal;overflow:visible;overflow-wrap:anywhere;text-overflow:clip;text-align:center;line-height:1.55;padding:0 6px}.tree-paper{width:270px;min-height:195px;border:1px solid #dbe3d4;border-radius:9px;background:#fcfdfb;padding:18px;position:relative;z-index:2}.tree-roots ul .tree-paper:before{display:none}.tree-year{font-size:11px;color:#bb684c}.tree-paper h3{font-size:14px;line-height:1.5;margin:8px 0}.tree-paper>p{font-size:12px;line-height:1.7;color:#6c7566;max-height:102px;overflow:auto;margin-bottom:12px}.tree-actions{display:flex;gap:10px;flex-wrap:wrap}.tree-actions button,.tree-actions a{display:inline-flex;align-items:center;gap:3px;font-size:11px;padding:3px 0;color:#56754c;background:none;border:0}.tree-actions button:last-child{color:#9a6558}.tree-links{margin-top:16px;font-size:12px}.tree-links>div{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px;border-bottom:1px solid #edf0e8}.tree-links small{display:block;color:#2874a3;margin-top:5px}.tree-toolbar .primary{font-size:12px}.literature-tree .empty{min-height:320px}.tree-hint{margin-top:12px}@media(max-width:700px){.literature-tree{padding:14px}.tree-toolbar span{display:none}.tree-paper{width:240px}}

/* Knowledge graph zoom controls */

.tree-toolbar>div{display:flex;align-items:center;gap:12px}
.tree-zoom{display:flex;align-items:center;gap:6px}
.tree-zoom button{min-width:34px;padding:7px 10px;border-color:#d3e2ef;color:#1768ad;background:#fff}
.tree-zoom button:hover:not(:disabled){background:#eaf4fc}
.tree-zoom button:disabled{opacity:.45;cursor:not-allowed}
.tree-zoom-level{min-width:48px;text-align:center;color:#506b85;font-size:11px;font-variant-numeric:tabular-nums}
@media(max-width:700px){.tree-toolbar>div{gap:8px}.tree-toolbar>div:first-child span{display:none}.tree-zoom{gap:4px}.tree-zoom button{padding:7px 8px}}

.tree-stage{position:relative;margin:0 auto}
.tree-roots{transform-origin:top left}
.tree-scroll{overscroll-behavior:contain}

[hidden]{display:none!important} .brand{display:block}.brand span{display:block}.filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:24px}.filters label{display:grid;gap:7px;font-size:12px}.filters input,.filters select{border:1px solid #dce3d7;border-radius:7px;padding:11px;background:white}.filters input{width:280px}.cards .paper .abstract{display:block;-webkit-line-clamp:unset;max-height:none}.stats>div{display:grid;gap:8px}.stats strong{font-size:28px}.sidebottom small{display:block;margin-top:12px}header{justify-content:space-between}
:root{color-scheme:light}body{background:#f3f7fc;color:#172d46}aside,header{background:#fbfdff;border-color:#dce7f3}.brandmark{background:#1767b0}.workspace{border-color:#dce7f3}.avatar{color:#155b9d;background:#e5f1fc}nav button{color:#5e7187}nav button.active{background:#e5f1fc;color:#155b9d}.eyebrow{color:#4782b7}a{color:#1768ad}.primary{background:#1768ad;border-color:#1768ad;color:#fff}.primary:hover{background:#10558f}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stats>div,.paper,.team-card{border-color:#dce7f3}.stats strong{color:#164a78}.badge{background:#e8f2fb;color:#1c649f}.paper:hover{border-color:#9fc5e7;box-shadow:0 8px 24px #174c7712}.tree-edge,.tree-links small{color:#1768ad}.tree-roots ul:before,.tree-roots ul>li:before,.tree-roots ul>li:after{border-color:#5e83a5}.tree-roots ul .tree-paper:before{border-top-color:#5e83a5}.tree-paper{border-color:#d3e2ef}.tree-year{color:#287db9}.read-status{font-size:10px;color:#71839a;background:#eef3f8;border-radius:12px;padding:3px 7px}.read-status.is-read{color:#126145;background:#e5f5ee}.region-group{margin:28px 0 38px}.region-group>h2{display:flex;align-items:center;gap:10px;color:#193c5e;border-bottom:1px solid #dce7f3;padding-bottom:12px}.region-group>h2 span{font-size:11px;font-weight:400;color:#71839a;background:#edf4fa;border-radius:12px;padding:4px 9px}.team-list{display:grid;gap:16px}.team-card{background:#fff;border:1px solid #dce7f3;border-radius:10px;padding:22px 25px}.team-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.team-region{display:inline-block;color:#216ca7;background:#eaf4fc;border-radius:4px;padding:4px 8px;font-size:10px}.team-head h3{margin:10px 0 4px;font-size:17px;color:#173c60}.team-head p{margin:0;color:#657a90}.team-home{font-size:11px;white-space:nowrap}.team-meta{display:flex;flex-wrap:wrap;gap:18px;margin:16px 0;color:#415c76;font-size:12px}.team-description{border-left:3px solid #77a9d2;padding:4px 0 4px 13px;color:#506b85;font-size:12px;line-height:1.9;white-space:pre-wrap}.team-content{margin-top:18px;padding-top:15px;border-top:1px solid #e8eff6}.team-content>strong{font-size:12px;color:#294d6e}.team-content>strong span{margin-left:5px;color:#2473b3}.team-content ul{list-style:none;padding:0;margin:9px 0 0}.team-content li{display:flex;gap:10px;align-items:baseline;padding:7px 0;font-size:12px;border-bottom:1px solid #f0f4f8}.team-content li>span{flex:0 0 38px;font-size:10px;color:#778da3}.team-content li a{line-height:1.7}.team-content>p{color:#8b9aab;font-size:11px;margin:12px 0 0}.admin nav button{background:#eaf2fa;color:#335c82}.admin nav button.active{background:#1768ad;color:#fff}.admin button:hover{background:#e7f2fb}.admin .primary{background:#1768ad;border-color:#1768ad}.admin-row{border-color:#dce7f3}.team-picker{border:1px solid #dce7f3;border-radius:7px;padding:13px 15px;margin:15px 0}.team-picker legend{font-size:11px;color:#466580;padding:0 5px}.team-picker label{display:flex!important;align-items:center;gap:8px;margin:9px 0!important}.team-picker input,.checkline input{width:auto!important;margin:0!important}.team-picker span,.checkline{font-size:12px;color:#33516d}.checkline{display:flex!important;align-items:center;gap:8px}.team-picker .hint{margin:5px 0;color:#7d8fa2;font-size:11px}