:root{--paper:#f6f3ec;--white:#fffefa;--ink:#272923;--muted:#85867c;--line:#e8e5dc;--green:#49694e;--green-pale:#e9efe7;--orange:#d8774f;--serif:'Noto Serif SC',Georgia,serif;--sans:'DM Sans','Noto Serif SC',sans-serif;--mono:'DM Mono',monospace}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px}.app-shell{min-height:100vh;display:flex}.sidebar{width:246px;background:#eeece4;border-right:1px solid #e5e2d9;padding:27px 18px 20px;display:flex;flex-direction:column;flex-shrink:0}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:#30332d;font-size:12px;letter-spacing:2px;font-weight:700;margin:0 8px 43px}.brand-mark{height:32px;width:32px;background:#49694e;border-radius:9px;color:#fff;display:grid;place-items:center;font:600 16px var(--serif);letter-spacing:-1px}.brand-light{font-weight:400;color:#8e9088}.sidebar-label{margin:0 9px 11px;color:#9a9a8f;font:500 10px var(--mono);letter-spacing:1.3px;text-transform:uppercase}.nav-item{height:42px;border:0;background:transparent;border-radius:7px;padding:0 10px;display:flex;align-items:center;gap:11px;text-align:left;color:#686b62;font:500 13px var(--sans);cursor:pointer;margin:1px 0;width:100%}.nav-item.active{color:#3f6246;background:#e1e9de}.nav-icon{font-size:16px;width:15px;text-align:center}.nav-count{margin-left:auto;font:11px var(--mono);color:#999b91}.active .nav-count{color:#577259}.alpha-label{margin-top:32px}.alphabet{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:0 4px}.alphabet button{border:0;background:transparent;color:#8f9086;font:11px var(--mono);height:27px;border-radius:5px;cursor:pointer}.alphabet button.available{color:#5e6258}.alphabet button.current{background:#49694e;color:white}.alphabet button:hover:not(:disabled){background:#e0e5da}.alphabet button:disabled{opacity:.32;cursor:default}.sidebar-bottom{margin-top:auto;padding:15px 7px 0}.progress-label,.progress-caption{display:flex;justify-content:space-between;color:#77796f;font-size:11px}.progress-label{margin-bottom:8px}.progress-label span:last-child{font-family:var(--mono);color:#526f55}.progress-track{height:4px;border-radius:10px;background:#dedfd6;overflow:hidden}.progress-fill{height:100%;width:0;background:#66836a;transition:width .25s}.progress-caption{margin-top:8px;font-size:10px;color:#9a9b92}.import-button{width:100%;height:39px;margin-top:21px;border:1px solid #d9d8ce;background:transparent;border-radius:6px;color:#55594f;font:500 12px var(--sans);cursor:pointer}.import-button:hover{border-color:#729076;background:#e9ede5}.import-button span{font-size:16px;color:#58745b;vertical-align:-1px}.dict-import-link{display:block;margin:10px auto 0;border:0;background:transparent;color:#92938a;text-decoration:underline;text-underline-offset:3px;font:10px var(--sans);cursor:pointer}.main-panel{min-width:0;flex:1}.topbar{height:65px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 43px}.breadcrumb{display:flex;align-items:center;gap:11px;color:#96978d;font-size:11px}.breadcrumb strong{font-weight:500;color:#53564e}.crumb-slash{color:#c5c4bb}.top-actions{display:flex;align-items:center;gap:19px}.streak{display:flex;align-items:center;gap:7px;color:#85867d;font-size:10px}.streak-dot{height:6px;width:6px;background:#d78a5f;border-radius:50%}.avatar{height:29px;width:29px;background:#dfe6db;color:#536c56;border:0;border-radius:50%;font:500 11px var(--serif)}.content-layout{max-width:1340px;margin:0 auto;display:grid;grid-template-columns:minmax(480px,1fr) 340px;gap:45px;padding:45px 48px 34px}.book-column{min-width:0}.page-heading{margin:0 0 25px}.eyebrow{display:flex;align-items:center;gap:8px;color:#929389;font:10px var(--mono);letter-spacing:1.1px}.eyebrow-line{display:inline-block;width:19px;height:1px;background:#8b9b84}.heading-row{display:flex;justify-content:space-between;align-items:flex-end;margin-top:12px}h1{font:600 27px var(--serif);letter-spacing:-.7px;margin:0;color:#30332d}.page-subtitle{margin:8px 0 0;color:#97988f;font-size:12px}.book-count{padding:0 2px 3px 15px;color:#96978c;display:flex;align-items:baseline;gap:6px;white-space:nowrap;font-size:10px}.book-count strong{font:17px var(--mono);color:#555a50}.toolbar{display:flex;align-items:center;gap:17px;margin-bottom:29px}.search-box{height:39px;flex:1;border:1px solid #e4e1d8;background:var(--white);border-radius:6px;display:flex;align-items:center;gap:9px;padding:0 10px;color:#92938a}.search-icon{font-size:20px;line-height:1;transform:rotate(-20deg)}.search-box input{border:0;outline:0;background:transparent;min-width:0;flex:1;color:#45483f;font:12px var(--sans)}.search-box input::placeholder{color:#b5b5ac}.search-box kbd{border:1px solid #e9e7df;border-radius:4px;padding:2px 4px;color:#aaa99f;font:9px var(--mono)}.sort-control{display:flex;gap:7px;align-items:center;color:#a0a096;font-size:10px;white-space:nowrap}.sort-control select{border:0;background:transparent;color:#67695f;font:11px var(--sans);outline:0;cursor:pointer}.letter-heading{height:26px;display:flex;align-items:center;gap:12px;margin:0 0 3px}.letter-heading>span:first-child{color:#516e53;font:500 12px var(--mono)}.letter-rule{height:1px;flex:1;background:#e6e3da}.letter-meta{color:#a2a298;font:10px var(--mono)}.word-list{border-top:1px solid var(--line)}.word-row{min-height:59px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:28px minmax(108px,1.15fr) minmax(110px,1.35fr) 33px;align-items:center;padding:7px 9px 7px 1px;gap:8px;cursor:pointer;transition:background .15s}.word-row:hover{background:#f0eee6}.word-row.selected{background:#ecefe7}.row-index{color:#b0afa4;text-align:left;font:9px var(--mono)}.row-word{font:500 15px var(--serif);color:#30332d;letter-spacing:.1px}.row-word-main{display:flex;align-items:center;gap:8px}.learned-check{color:#769178;font-size:10px}.row-definition{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#85867c;font-size:11px}.row-pos{display:block;margin-top:3px;color:#b0afa6;font:9px var(--mono);font-style:italic}.row-arrow{color:#bcbcb2;text-align:center;font-size:17px}.empty-state{text-align:center;padding:70px 10px}.empty-icon{font-size:28px;color:#a1a394}.empty-state h2{font:500 18px var(--serif);margin:14px 0 6px}.empty-state p{font-size:11px;color:#96978c}.list-footer{display:flex;justify-content:space-between;color:#a4a49a;font-size:10px;padding-top:15px}.footer-star{color:#d38a5b}.detail-column{position:relative}.detail-card{position:sticky;top:30px;background:var(--white);border:1px solid #eae7dd;border-radius:8px;min-height:450px;padding:24px 24px 20px;box-shadow:0 9px 25px rgba(61,58,45,.035)}.detail-topline{display:flex;justify-content:space-between;align-items:center;color:#a0a095;font:9px var(--mono);letter-spacing:.5px}.detail-actions{display:flex;gap:8px}.icon-button{height:27px;min-width:28px;border:1px solid #eae8df;background:transparent;border-radius:5px;color:#77796e;cursor:pointer;font-size:13px}.icon-button:hover,.icon-button.active{color:#58745b;border-color:#b8c8b8;background:#eff3ec}.detail-word{font:600 32px var(--serif);letter-spacing:-.7px;margin:26px 0 5px;color:#2e312b}.detail-phonetic{color:#9a9c92;font:11px var(--mono)}.pos-tags{display:flex;gap:6px;margin:16px 0 18px;flex-wrap:wrap}.pos-tag{border-radius:4px;background:#edf1e9;color:#577057;padding:4px 7px;font:10px var(--mono)}.detail-section{border-top:1px solid #eeece5;padding-top:15px;margin-top:14px}.section-title{color:#96978c;font:9px var(--mono);letter-spacing:1px;text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:7px}.section-number{color:#b6b5aa}.meaning-list{padding:0;margin:0;list-style:none}.meaning-list li{display:flex;gap:9px;color:#575a50;font:12px/1.7 var(--serif);margin:3px 0}.meaning-number{color:#a3a398;font:10px var(--mono);padding-top:2px}.collocation-list{display:flex;flex-direction:column;gap:8px}.collocation{display:flex;align-items:center;justify-content:space-between;color:#4d5147;font:12px var(--serif)}.collocation .trans{color:#9a9a90;font-size:10px}.example-en{color:#4f5249;font:italic 11px/1.7 var(--serif)}.example-zh{color:#999a90;font:10px/1.6 var(--serif);margin-top:3px}.ai-badge{display:inline-flex;align-items:center;gap:4px;color:#af7953;background:#f8f0e9;border-radius:3px;padding:3px 5px;font:8px var(--mono);margin-left:auto;letter-spacing:0}.detail-section-header{display:flex;align-items:center}.ai-button{border:0;background:transparent;color:#648065;font:10px var(--sans);cursor:pointer;margin-left:auto;padding:0}.ai-button:disabled{color:#b5b5aa;cursor:wait}.detail-footer{display:flex;align-items:center;justify-content:space-between;margin-top:19px;padding-top:13px;border-top:1px solid #eeece5;color:#aaa99f;font:9px var(--mono)}.mark-button{border:1px solid #557456;background:#557456;color:white;border-radius:5px;padding:8px 12px;font:11px var(--sans);cursor:pointer}.mark-button:hover{background:#425e44}.mark-button.done{color:#537057;background:transparent}.source-note{font:9px/1.5 var(--sans);color:#a7a79d;margin-top:11px}.source-note a{color:#718b72;text-decoration:none}.welcome-detail{height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#a2a398}.welcome-book{font:64px var(--serif);color:#dfe4d9;line-height:1}.welcome-detail h2{font:500 19px var(--serif);color:#595c52;margin:17px 0 7px}.welcome-detail p{max-width:210px;font:11px/1.8 var(--sans);margin:0}.toast{position:fixed;bottom:23px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#30362e;color:white;border-radius:6px;padding:11px 16px;font:11px var(--sans);box-shadow:0 8px 25px #2222;transition:.22s;z-index:10}.toast.show{opacity:1;transform:translate(-50%,0)}.loading{color:#95968c;font-size:11px}.word-row:focus-visible,.nav-item:focus-visible,.icon-button:focus-visible,.mark-button:focus-visible{outline:2px solid #6d8b6f;outline-offset:2px}
@media(max-width:1100px){.sidebar{width:210px}.content-layout{grid-template-columns:minmax(400px,1fr) 310px;gap:27px;padding:35px 28px}.topbar{padding:0 28px}.detail-card{padding:20px}.word-row{grid-template-columns:25px minmax(90px,1.1fr) minmax(95px,1.2fr) 20px}}
@media(max-width:1050px){.content-layout{grid-template-columns:minmax(0,1fr);padding:32px 28px}.detail-column{grid-row:1}.detail-card{position:relative;top:0;min-height:0}.detail-column:not(.has-word){display:none}.book-column{grid-row:2}.content-layout{gap:26px}.detail-column.has-word{grid-row:1}}
@media(max-width:620px){.sidebar{width:58px;padding:17px 7px}.brand{margin:0 auto 29px}.brand>span:not(.brand-mark),.sidebar-label,.nav-item:not(.active),.nav-item .nav-count,.alphabet,.sidebar-bottom .progress-label,.sidebar-bottom .progress-track,.sidebar-bottom .progress-caption,.import-button,.dict-import-link{display:none}.nav-item{justify-content:center;padding:0;font-size:0}.nav-item.active{font-size:0}.nav-icon{font-size:17px}.sidebar-bottom{padding:0}.topbar{height:55px;padding:0 16px}.breadcrumb{font-size:10px;gap:7px}.streak{display:none}.content-layout{padding:26px 16px}.heading-row{align-items:flex-start}.page-heading{margin-bottom:20px}h1{font-size:22px}.page-subtitle{font-size:10px}.book-count{padding-top:4px}.toolbar{gap:8px;margin-bottom:23px}.sort-control>span{display:none}.sort-control select{max-width:76px;font-size:10px}.search-box{height:37px}.search-box kbd{display:none}.word-row{grid-template-columns:24px minmax(85px,1fr) minmax(70px,1.1fr) 15px;gap:5px;min-height:58px}.row-word{font-size:14px}.row-definition{font-size:10px}.row-pos{font-size:8px}.detail-card{padding:19px}.detail-word{font-size:29px}.list-footer{font-size:9px}.letter-heading{margin-bottom:4px}}
.top-import{border:1px solid #d7ded3;background:#f4f6f1;color:#557056;border-radius:5px;padding:7px 10px;font:10px var(--sans);cursor:pointer}.top-import:hover{background:#e8eee5}
.pos-tag{max-width:100%}
.nav-item#navArticles{margin-top:2px}
.article-view{animation:fadeIn .2s ease both}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.article-intro{padding:7px 0 22px;border-bottom:1px solid var(--line)}
.article-kicker{color:#8a9b82;font:9px var(--mono);letter-spacing:1.2px}
.article-intro h2{margin:8px 0;font:500 20px var(--serif);color:#363a32}
.article-intro p{margin:0;color:#909187;font-size:11px;line-height:1.8;max-width:620px}
.article-controls{display:flex;align-items:center;gap:12px;padding:19px 0;border-bottom:1px solid var(--line)}
.article-controls label{display:flex;align-items:center;gap:8px;color:#929389;font-size:10px}
.article-controls select{border:1px solid #e1dfd5;background:#fffefa;border-radius:5px;padding:8px 25px 8px 9px;color:#55594f;font:11px var(--sans)}
.generate-button{margin-left:auto;border:1px solid #4f7053;background:#557657;color:#fff;border-radius:5px;padding:9px 14px;font:11px var(--sans);cursor:pointer}
.generate-button:hover{background:#456548}.generate-button:disabled{opacity:.6;cursor:wait}
.article-source{padding:15px 0 16px;border-bottom:1px solid var(--line)}
.article-source>div:first-child{display:flex;align-items:center;gap:9px}
.source-label{color:#777a70;font:10px var(--sans)}.source-count{color:#a0a095;font:9px var(--mono)}
.article-vocab{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.vocab-chip{border:1px solid #dce4d8;background:#eef2eb;border-radius:4px;padding:4px 7px;color:#547057;font:10px var(--serif);cursor:pointer}
.vocab-chip:hover{background:#e1eadf}
.article-empty-hint{color:#aaa99f;font-size:10px;margin-top:8px}
.article-status{padding:16px 0;color:#7a7d72;font-size:11px}.article-status.error{color:#a86650}
.article-result{padding-top:23px}
.article-result-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:12px}
.article-result-heading h3{margin:7px 0 0;color:#34372f;font:500 21px var(--serif)}
.copy-article{border:1px solid #e1dfd5;background:transparent;border-radius:5px;padding:7px 9px;color:#77796f;font:10px var(--sans);cursor:pointer}
.article-paper{display:grid;grid-template-columns:1fr 1fr;gap:24px;background:#fffefa;border:1px solid #e9e6dd;border-radius:7px;padding:19px 20px}
.paper-label{color:#9c9d92;font:9px var(--mono);letter-spacing:.7px;margin-bottom:11px}
.article-english,.article-chinese{color:#55594f;font:12px/2 var(--serif);white-space:pre-line}
.article-chinese{color:#7f8177}
.article-paragraph{margin:0 0 11px}.article-word{border:0;padding:0;background:transparent;color:#476d4e;text-decoration:underline;text-decoration-color:#bdcfb9;text-underline-offset:3px;font:inherit;cursor:pointer}
.article-word:hover{color:#2f5738;text-decoration-color:#557657;background:#f1f5ef;border-radius:2px}
.grammar-panel{margin-top:13px;background:#f0f1e9;border-radius:6px;padding:15px 17px}
.grammar-panel ul{padding-left:17px;margin:0;color:#66695f;font:11px/1.85 var(--serif)}.grammar-panel li+li{margin-top:4px}
.ai-disclaimer{margin-top:10px;color:#a3a399;font-size:9px}
.form-list{display:flex;flex-direction:column;gap:7px}.form-row{display:grid;grid-template-columns:80px 1fr;gap:8px;color:#686b61;font-size:10px}.form-label{color:#9a9b91}.form-values{color:#50554b;font-family:var(--mono)}
.article-word-lookup{margin-top:12px;padding-top:11px;border-top:1px solid #eeece5;color:#97988e;font-size:10px}
.article-word-lookup .ai-button{margin:7px 0 0;display:block}
.load-more{display:block;margin:14px auto 5px;border:1px solid #deddd3;background:#f8f7f1;border-radius:5px;padding:8px 15px;color:#72756b;font:10px var(--sans);cursor:pointer}
.load-more:hover{border-color:#abbba8;color:#4c6d51;background:#f1f4ed}
.load-more[hidden]{display:none}
@media(max-width:1050px){.article-paper{grid-template-columns:1fr}.article-paper section+section{border-top:1px solid #eeece5;padding-top:14px}}
@media(max-width:620px){.sidebar .nav-item:not(.active){display:flex}.sidebar .nav-item{height:38px;margin:2px 0}.sidebar .nav-icon{font-size:15px}.article-controls{gap:7px}.article-controls label{gap:4px;font-size:9px}.article-controls select{padding:7px 15px 7px 6px;font-size:10px}.generate-button{padding:8px 9px;font-size:10px}.article-intro h2{font-size:18px}.article-paper{padding:15px}.article-result-heading h3{font-size:19px}.article-english,.article-chinese{font-size:11px}}
[hidden]{display:none!important}
.meaning-list li{align-items:flex-start;flex-wrap:wrap;column-gap:7px}
.sense-pos{flex:0 0 auto;border-radius:3px;background:#eef2eb;color:#527054;padding:1px 5px;font:10px/1.7 var(--sans)}
.collocation{gap:12px;align-items:baseline}
.collocation .trans{text-align:right;line-height:1.5}
.example-block+.example-block{margin-top:9px;padding-top:9px;border-top:1px dashed #e8e7df}
.article-controls{flex-wrap:wrap}
.article-controls label{white-space:nowrap}
.article-controls input{width:82px;border:1px solid #e1dfd5;background:#fffefa;border-radius:5px;padding:8px;color:#55594f;font:11px var(--sans)}
.vocab-more{color:#929589;font:10px/2 var(--sans)}
.chapter-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);color:#7c8176;font-size:11px}
.chapter-controls button{border:1px solid #d6ded3;background:#fffefa;color:#4f6e52;border-radius:5px;padding:7px 10px;cursor:pointer}
.chapter-controls button:disabled{opacity:.45;cursor:default}
.grammar-example{display:block;color:#58705a;font:italic 10px/1.7 var(--serif);margin-top:2px}
.service-notice{margin:14px 48px 0;padding:10px 13px;border:1px solid #d9e1d4;background:#edf3e9;border-radius:6px;color:#526751;font:11px/1.7 var(--sans)}
.service-notice a{color:#345b3c;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.return-article{display:none;border:0;background:transparent;color:#557658;padding:0 0 13px;font:11px var(--sans);cursor:pointer}
@media(max-width:1050px){.service-notice{margin:12px 28px 0}}
@media(max-width:1050px){.return-article{display:block}}
@media(max-width:620px){.service-notice{margin:10px 16px 0}}
@media(max-width:1050px){.article-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.article-controls label{display:grid;gap:5px;min-width:0}.article-controls select,.article-controls input{width:100%;min-width:0}.generate-button{margin-left:0;grid-column:1/-1;min-height:36px}.chapter-controls{flex-wrap:wrap}.chapter-controls span{order:-1;flex-basis:100%;text-align:center}}
