.library-rank-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px 0;border-top:1px solid var(--line);margin-top:14px}
.library-rank-toolbar>div{margin-right:auto;display:flex;flex-direction:column;gap:4px}.library-rank-toolbar small,.publication-rank-note{color:var(--muted,#64756e);font-size:12px}
#publicationRankJobStatus{flex-basis:100%;font-size:13px;line-height:1.6;color:var(--ink-2)}
.library-rank-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;align-items:flex-start}
.publication-filter{position:relative;font-size:13px;border:1px solid var(--line);border-radius:6px;background:var(--surface,#fff)}
.publication-filter summary{padding:9px 12px;cursor:pointer;list-style-position:inside}.publication-filter[open]{z-index:3}
.publication-filter>div{position:absolute;top:100%;left:0;min-width:210px;max-width:320px;max-height:260px;overflow:auto;padding:12px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 24px #18221f18}
.publication-filter label{display:flex;gap:8px;align-items:center;padding:6px 0}.publication-filter input{accent-color:var(--ink)}
.publication-labels{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:8px 0;line-height:1.5}
.publication-name{font-size:12px;color:var(--ink-2);flex-basis:100%;overflow-wrap:anywhere}
.publication-tag{display:inline-flex;padding:3px 7px;border-radius:4px;font-size:11px;font-weight:600;border:1px solid #c8d5ce;color:#305344;background:#edf3ef}
.publication-tag-cas,.publication-tag-top{background:#edf3ef;color:#305344;border-color:#c8d5ce}.publication-tag-jcr{background:#edf2f8;color:#345777;border-color:#d2dce8}.publication-tag-impact{background:#f8f1e5;color:#785726;border-color:#e5d8bc}
.publication-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;box-sizing:border-box;border:1px solid var(--line);border-radius:12px;padding:26px;color:var(--ink);background:var(--surface,#fff)}
.publication-dialog::backdrop{background:#14231ccc}.publication-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.publication-dialog h2{margin:0;font-size:21px}.publication-dialog p{font-size:13px;line-height:1.7;overflow-wrap:anywhere}
.publication-dialog .field input{width:100%;box-sizing:border-box}.publication-dialog blockquote{margin:12px 0;padding:10px 14px;border-left:3px solid #9db7a8;background:#edf3ef;font-size:13px;overflow-wrap:anywhere}.publication-dialog small{display:block;line-height:1.7;color:var(--muted,#64756e)}.publication-rank-error{color:#9e4139}
@media(max-width:620px){.library-rank-toolbar .button{flex:1;font-size:12px}.library-rank-toolbar>div{flex-basis:100%}.publication-filter>div{position:static;min-width:0;max-width:none}.publication-filter{flex:1;min-width:120px}.publication-dialog{padding:20px}}
:root{
  --ink:#18221f;
  --ink-2:#24332f;
  --paper:#f4f3ee;
  --surface:#fffefa;
  --surface-2:#eceee9;
  --line:#d5dbd7;
  --line-dark:#b8c2be;
  --green:#26715b;
  --green-deep:#174b3d;
  --green-soft:#dcebe5;
  --amber:#b47729;
  --amber-soft:#f4e8d4;
  --red:#97483f;
  --red-soft:#f2dfdc;
  --blue:#3f6678;
  --muted:#687872;
  --shadow:0 10px 28px rgba(31,47,42,.09);
  --rail:248px;
  --context:326px;
  --radius:5px;
  font-family:"Microsoft YaHei UI","Noto Sans CJK SC",sans-serif;
  color:var(--ink);
  background:var(--paper);
  letter-spacing:0;
}
*{box-sizing:border-box;letter-spacing:0}
html,body{margin:0;min-height:100%;background:var(--paper)}
body{font-size:14px;overflow-x:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.5}
svg{width:18px;height:18px;stroke-width:1.7;flex:0 0 auto}
[hidden]{display:none!important}
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--rail) minmax(0,1fr)}
.project-rail{height:100vh;position:sticky;top:0;background:var(--ink);color:#f5f7f4;padding:22px 16px 16px;display:flex;flex-direction:column;z-index:30;overflow:hidden}
.rail-brand{display:flex;gap:11px;align-items:center;padding:0 5px 22px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand-seal{width:38px;height:38px;border:1px solid #87b7a7;color:#cde3dc;display:grid;place-items:center;font-family:"STZhongsong","Source Han Serif SC",serif;font-size:20px}
.rail-brand strong,.rail-brand small{display:block}
.rail-brand strong{font-size:15px}
.rail-brand small{font-size:10px;color:#8fa39d;margin-top:4px}
.new-project-button{height:42px;border:1px solid rgba(196,225,215,.26);background:#22342e;color:#e5f2ed;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;gap:8px;margin:18px 0 23px}
.new-project-button:hover{background:#294238;border-color:#81aa9c}
.new-project-button svg{width:16px}
.rail-label{display:flex;align-items:center;justify-content:space-between;padding:0 5px 8px;color:#82958f;font-size:10px;text-transform:uppercase}
.rail-label b{color:#c5d6d0;font-weight:500}
.project-list{display:grid;gap:5px;overflow:auto;padding-right:3px;scrollbar-width:thin;scrollbar-color:#41544e transparent}
.project-item{width:100%;border:0;border-left:2px solid transparent;background:transparent;color:#a9b8b3;border-radius:0;text-align:left;padding:11px 10px;display:grid;grid-template-columns:1fr auto;gap:5px}
.project-item:hover{background:rgba(255,255,255,.05);color:#fff}
.project-item.active{background:#253a33;border-left-color:#7ab09d;color:#fff}
.project-item strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.project-item small{grid-column:1/3;font-size:9px;color:#7f928c;display:flex;justify-content:space-between;gap:6px}
.project-item b{font-size:9px;color:#86b5a5;font-weight:500}
.rail-system{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:17px 5px 3px;display:flex;align-items:center;gap:10px}
.rail-system small,.rail-system strong{display:block}
.rail-system small{font-size:9px;color:#7f918b}
.rail-system strong{font-size:10px;margin-top:3px}
.system-orbit{width:28px;height:28px;border:1px solid #587169;position:relative;border-radius:50%;animation:spin 8s linear infinite}
.system-orbit i{position:absolute;width:4px;height:4px;background:#8ec1af;border-radius:50%}
.system-orbit i:nth-child(1){left:11px;top:-2px}.system-orbit i:nth-child(2){right:0;bottom:3px}.system-orbit i:nth-child(3){left:1px;bottom:3px;background:#c38a43}
.rail-mask{display:none}
.app-main{min-width:0}
.topbar{height:68px;background:rgba(255,254,250,.98);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 24px;position:sticky;top:0;z-index:20}
.topbar-title{min-width:0;flex:1}
.topbar-title span,.topbar-title strong{display:block}
.topbar-title span{font-size:9px;color:var(--muted)}
.topbar-title span b{font-weight:600;color:var(--green)}
.topbar-title strong{font-size:14px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-actions{display:flex;align-items:center;gap:10px}
.top-status{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted)}
.top-status i{width:6px;height:6px;border-radius:50%;background:var(--green)}
.engine-pill{font-size:10px;padding:6px 9px;background:var(--green-soft);color:var(--green-deep);border:1px solid #c5dcd4;border-radius:3px}
.engine-pill.mock{background:var(--amber-soft);color:#80551d;border-color:#e6d2b5}
.icon-button{width:34px;height:34px;border:1px solid var(--line);background:var(--surface);border-radius:4px;display:grid;place-items:center;color:var(--muted)}
.icon-button:hover{border-color:var(--green);color:var(--green);background:#f5faf8}
.icon-button svg{width:16px;height:16px}
.mobile-only{display:none}
.workflow-band{background:#ebece7;border-bottom:1px solid var(--line);padding:0 24px}
.workflow-track{height:60px;display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));max-width:920px}
.workflow-step{border:0;background:transparent;position:relative;display:flex;align-items:center;gap:9px;padding:0 12px;color:#89948f;text-align:left}
.workflow-step:after{content:"";position:absolute;right:0;width:1px;height:24px;background:#d5dad7}
.workflow-step:last-child:after{display:none}
.workflow-step span{width:22px;height:22px;border:1px solid #b8c1bd;border-radius:50%;display:grid;place-items:center;font-size:9px}
.workflow-step strong{font-size:10px;font-weight:600}
.workflow-step.done{color:var(--green)}
.workflow-step.done span{background:var(--green);border-color:var(--green);color:#fff}
.workflow-step.active{color:var(--ink)}
.workflow-step.active:before{content:"";position:absolute;bottom:0;left:12px;right:12px;height:3px;background:var(--amber)}
.workflow-step.active span{border-color:var(--amber);color:#8c5d1f;background:#fff8ed}
.job-line{min-height:47px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(240px,1fr) minmax(140px,300px) 44px;align-items:center;gap:16px}
.job-line>div{display:flex;align-items:center;gap:8px;min-width:0}
.job-line>div svg{width:15px;color:var(--green);animation:spin 1.2s linear infinite}
.job-line strong{font-size:11px}.job-line span{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.job-line>b{height:4px;background:#d4d9d6;overflow:hidden}.job-line>b i{display:block;height:100%;width:0;background:var(--green);transition:width .25s}
.job-line em{font-style:normal;font-size:10px;color:var(--green);text-align:right}
.workspace-frame{display:grid;grid-template-columns:minmax(0,1fr) var(--context);min-height:calc(100vh - 129px)}
.work-canvas{min-width:0;padding:26px 28px 60px}
.context-rail{background:#e8e9e4;border-left:1px solid var(--line);padding:24px 20px;min-width:0}
.eyebrow{display:block;font-size:9px;color:var(--green);font-weight:700;text-transform:uppercase}
.stage-title{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}
.stage-title h1{font-family:"STZhongsong","Source Han Serif SC",serif;font-size:28px;line-height:1.2;margin:6px 0 0;font-weight:600}
.stage-title p{font-size:11px;line-height:1.7;color:var(--muted);margin:8px 0 0;max-width:680px}
.stage-index{font-family:"Cambria",serif;font-size:42px;color:#c5ccc8;line-height:1}
.setup-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:22px;align-items:start}
.form-sheet{background:var(--surface);border-top:3px solid var(--ink);padding:24px;box-shadow:var(--shadow)}
.sheet-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:18px}
.sheet-heading h2{font-size:15px;margin:0}.sheet-heading span{font-size:9px;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.field{display:grid;gap:6px;min-width:0}
.field.full{grid-column:1/-1}
.field>span{font-size:10px;color:#55655f;font-weight:600}
.field input,.field textarea,.field select{width:100%;border:1px solid var(--line-dark);background:#fff;padding:10px 11px;border-radius:3px;outline:0;font-size:12px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--green);box-shadow:0 0 0 2px rgba(38,113,91,.1)}
.scope-ledger{display:grid;border-top:3px solid var(--amber);background:#e9e5dc;padding:17px}
.scope-ledger h2{font-family:"STZhongsong","Source Han Serif SC",serif;font-size:16px;margin:0 0 14px}
.ledger-row{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #d3cec4;padding:10px 0;font-size:10px}
.ledger-row span{color:#776f62}.ledger-row strong{text-align:right;font-size:10px}
.primary-run{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;border:0;background:var(--green-deep);color:#fff;min-height:48px;padding:0 15px;border-radius:4px;margin-top:5px}
.primary-run:hover{background:#205f4e}.primary-run span{display:flex;align-items:center;gap:8px}.primary-run b{font-size:18px;font-weight:400}
.button{min-height:38px;border-radius:4px;padding:0 14px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:11px}
.button.primary{background:var(--green);color:#fff}.button.primary:hover{background:var(--green-deep)}
.button.secondary{background:var(--surface);border-color:var(--line-dark);color:var(--ink)}.button.secondary:hover{border-color:var(--green);color:var(--green)}
.button.warning{background:var(--amber);color:#fff}.button.warning:hover{background:#94601e}
.button.danger{background:transparent;border-color:#d8b0aa;color:var(--red)}
.button svg{width:15px;height:15px}
.toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:14px}
.toolbar .spacer{flex:1}
.search-field{height:38px;min-width:250px;border:1px solid var(--line);background:var(--surface);display:flex;align-items:center;gap:7px;padding:0 10px;border-radius:4px}
.search-field svg{width:15px;color:var(--muted)}.search-field input{border:0;outline:0;background:transparent;min-width:0;flex:1;font-size:11px}
.query-strip{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.query-box{background:var(--ink);color:#dfeae6;padding:13px 15px;min-height:78px;border-radius:4px;overflow:hidden}
.query-box span,.query-box code{display:block}.query-box span{font-size:8px;color:#86a097;margin-bottom:7px}.query-box code{font-family:Consolas,monospace;font-size:9px;line-height:1.55;white-space:normal;color:#d5e8e1}
.source-note{display:flex;align-items:flex-start;gap:9px;background:var(--amber-soft);border-left:3px solid var(--amber);padding:10px 12px;margin-bottom:14px;color:#72501e;font-size:10px;line-height:1.6}
.source-note svg{width:15px;margin-top:1px}
.table-shell{background:var(--surface);border:1px solid var(--line);overflow:auto;max-height:520px}
.citation-table{width:100%;min-width:900px;border-collapse:collapse}
.citation-table th{position:sticky;top:0;z-index:2;background:#e8ebe7;color:#596761;text-align:left;font-size:9px;padding:10px;border-bottom:1px solid var(--line-dark)}
.citation-table td{font-size:10px;padding:11px 10px;border-bottom:1px solid #e6e9e6;vertical-align:top}
.citation-table tr:hover td{background:#f8faf7}.citation-table tr.unselected{opacity:.52}
.check-cell{width:34px;text-align:center}.citation-table input[type=checkbox]{accent-color:var(--green);width:15px;height:15px}
.paper-title{min-width:280px}.paper-title strong{display:block;font-size:11px;line-height:1.45}.paper-title small{display:block;color:var(--muted);margin-top:5px;line-height:1.45}
.source-badge,.status-badge{display:inline-flex;align-items:center;min-height:22px;padding:2px 6px;border-radius:3px;font-size:8px;background:var(--surface-2);color:#596761;border:1px solid var(--line)}
.source-badge.demo{background:var(--amber-soft);border-color:#e4cda9;color:#7b521d}
.score{font-family:Cambria,serif;font-size:16px;color:var(--green)}.score-reason{display:block;max-width:190px;margin-top:3px;color:var(--muted);font-size:9px;line-height:1.4}
.confirm-bar{margin-top:14px;background:var(--ink);color:#fff;min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 16px;border-radius:4px}
.confirm-bar strong,.confirm-bar small{display:block}.confirm-bar strong{font-size:12px}.confirm-bar small{font-size:9px;color:#9fb0ab;margin-top:4px}
.upload-band{border:1px dashed #95a49f;background:rgba(255,255,255,.45);min-height:138px;display:grid;place-items:center;text-align:center;padding:20px;margin-bottom:18px}
.upload-band.dragging{border-color:var(--green);background:var(--green-soft)}
.upload-band button{border:0;background:transparent;color:var(--green);font-weight:700}.upload-band svg{width:25px;height:25px;margin-bottom:8px}.upload-band strong,.upload-band small{display:block}.upload-band strong{font-size:12px}.upload-band small{font-size:9px;color:var(--muted);margin-top:7px}
.document-list{display:grid;gap:8px}
.document-row{background:var(--surface);border:1px solid var(--line);display:grid;grid-template-columns:34px minmax(160px,1fr) 230px 100px;gap:10px;align-items:center;padding:10px 12px}
.document-row>svg{color:var(--red)}.document-name strong,.document-name small{display:block}.document-name strong{font-size:10px}.document-name small{font-size:8px;color:var(--muted);margin-top:4px}
.document-row select{border:1px solid var(--line);background:#fff;padding:7px;font-size:9px;min-width:0}
.doc-state{font-size:9px;color:var(--green)}.doc-state.ocr{color:var(--amber)}
.analysis-launch{margin-top:18px;border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:flex-end}
.local-research-run{grid-column:1/-1;justify-content:center;min-height:44px;border-color:#8bb8a6;color:#176247;background:#eef8f3}
.report-metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--surface);margin-bottom:16px}
.metric{padding:13px;border-right:1px solid var(--line)}.metric:last-child{border-right:0}.metric strong,.metric span{display:block}.metric strong{font-family:Cambria,serif;font-size:22px;color:var(--green-deep)}.metric span{font-size:9px;color:var(--muted);margin-top:3px}
.report-editor{background:var(--surface);border-top:3px solid var(--ink);padding:28px 34px;box-shadow:var(--shadow)}
.report-cover{border-bottom:2px solid var(--ink);padding-bottom:20px;margin-bottom:22px;text-align:center}.report-cover span{font-size:9px;color:var(--green)}.report-cover h2{font-family:"STZhongsong","Source Han Serif SC",serif;font-size:23px;margin:7px 0}.report-cover small{font-size:9px;color:var(--muted)}
.report-section{padding:14px 0;border-bottom:1px solid var(--line)}.report-section h3{font-size:14px;margin:0 0 10px;color:var(--green-deep)}
.report-paragraph{width:100%;border:1px solid transparent;background:transparent;resize:vertical;min-height:58px;padding:8px 9px;line-height:1.8;font-size:11px}.report-paragraph:hover,.report-paragraph:focus{outline:0;border-color:#b7d2c9;background:#fbfdfc}
.report-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}
.evidence-list{display:grid;gap:7px}.evidence-card{border-left:3px solid var(--green);background:var(--surface);padding:10px 11px}.evidence-card.low{border-left-color:var(--amber)}.evidence-card.rejected{opacity:.5;border-left-color:var(--red)}
.evidence-card button.view-evidence{width:100%;border:0;background:transparent;text-align:left;padding:0}.evidence-card span,.evidence-card strong,.evidence-card small{display:block}.evidence-card span{font-size:8px;color:var(--green)}.evidence-card strong{font-size:10px;margin-top:5px}.evidence-card small{font-size:9px;color:var(--muted);line-height:1.55;margin-top:5px}.evidence-actions{display:flex;gap:5px;margin-top:8px}.evidence-actions button{border:1px solid var(--line);background:#fff;font-size:8px;padding:4px 7px}.evidence-actions button:hover{border-color:var(--green);color:var(--green)}.load-more-evidence{width:100%;margin-top:8px;font-size:9px}
.context-block{padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line-dark)}.context-block:last-child{border-bottom:0}.context-block h2{font-family:"STZhongsong","Source Han Serif SC",serif;font-size:16px;margin:5px 0 13px}.context-block>span{font-size:8px;color:var(--green);font-weight:700}.context-kpis{display:grid;grid-template-columns:1fr 1fr;gap:7px}.context-kpi{background:rgba(255,255,255,.55);padding:10px}.context-kpi strong,.context-kpi small{display:block}.context-kpi strong{font-family:Cambria,serif;font-size:19px}.context-kpi small{font-size:8px;color:var(--muted);margin-top:3px}
.context-list{display:grid}.context-row{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid #d4d7d2;font-size:9px}.context-row span{color:var(--muted)}.context-row strong{text-align:right;font-size:9px;word-break:break-word}
.boundary{font-size:9px;line-height:1.7;color:#5e6c67;border-left:2px solid var(--amber);padding-left:10px}
.preview-frame{background:#cfd3cf;padding:10px;min-height:250px;display:grid;place-items:center;overflow:auto}.preview-frame canvas{max-width:100%;height:auto;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.14)}
.preview-placeholder{text-align:center;color:#6e7b76}.preview-placeholder svg{width:28px;height:28px}.preview-placeholder strong,.preview-placeholder small{display:block}.preview-placeholder strong{font-size:10px;margin-top:7px}.preview-placeholder small{font-size:8px;margin-top:4px}
.quote-block{margin-top:10px;background:#fffefa;padding:10px;border-left:2px solid var(--green);font-size:9px;line-height:1.65;color:#52615c}
.export-sheet{background:var(--surface);border-top:3px solid var(--green);padding:28px;box-shadow:var(--shadow)}
.export-seal{width:66px;height:66px;border:1px solid var(--green);color:var(--green);display:grid;place-items:center;margin-bottom:18px}.export-seal svg{width:30px;height:30px}
.export-sheet h2{font-family:"STZhongsong","Source Han Serif SC",serif;font-size:23px;margin:0}.export-sheet>p{color:var(--muted);font-size:11px;line-height:1.7}
.export-files{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.export-file{border:1px solid var(--line);padding:16px;display:grid;grid-template-columns:40px 1fr auto;gap:11px;align-items:center}.export-file>svg{width:30px;height:30px;color:var(--red)}.export-file.xlsx>svg{color:var(--green)}.export-file strong,.export-file small{display:block}.export-file strong{font-size:11px}.export-file small{font-size:9px;color:var(--muted);margin-top:4px}
.empty-state{min-height:400px;display:grid;place-items:center;text-align:center;color:var(--muted)}.empty-state svg{width:36px;height:36px}.empty-state h2{font-family:"STZhongsong","Source Han Serif SC",serif;color:var(--ink);font-size:20px;margin:12px 0 5px}.empty-state p{font-size:10px}
.modal-layer{position:fixed;inset:0;background:rgba(11,20,17,.62);z-index:60;display:grid;place-items:center;padding:20px}
.project-modal{width:min(680px,100%);max-height:92vh;overflow:auto;background:var(--surface);border-top:4px solid var(--amber);padding:28px;box-shadow:0 26px 70px rgba(0,0,0,.25);position:relative}
.project-modal h1{font-family:"STZhongsong","Source Han Serif SC",serif;font-size:25px;margin:7px 0 22px}.modal-close{position:absolute;right:16px;top:16px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}
.toast{position:fixed;right:22px;bottom:20px;z-index:80;background:var(--ink);color:#fff;border-left:3px solid #83baa7;padding:11px 14px;min-width:220px;max-width:420px;font-size:10px;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}.toast.error{border-left-color:#d47f74}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:1180px){:root{--context:286px}.project-rail{width:78px;padding-left:10px;padding-right:10px}.app-shell{grid-template-columns:78px minmax(0,1fr)}.rail-brand{justify-content:center}.rail-brand>div,.new-project-button span,.rail-label span,.project-item strong,.project-item small,.project-item b,.rail-system>div:last-child{display:none}.new-project-button{padding:0}.project-item{height:44px;border-left:0;border-bottom:2px solid transparent;padding:0;display:grid;place-items:center}.project-item:before{content:"文";font-family:"STZhongsong",serif}.project-item.active{border-bottom-color:#7ab09d}.rail-label{justify-content:center}.rail-system{justify-content:center}.setup-layout{grid-template-columns:1fr}.scope-ledger{grid-template-columns:repeat(3,1fr);gap:0 14px}.scope-ledger h2{grid-column:1/-1}.document-row{grid-template-columns:34px minmax(160px,1fr) 190px 90px}}
@media(max-width:900px){:root{--context:0}.app-shell{display:block}.project-rail{position:fixed;left:0;top:0;width:270px;transform:translateX(-105%);transition:.22s;padding:22px 16px}.project-rail.open{transform:none}.project-rail.open .rail-brand>div,.project-rail.open .new-project-button span,.project-rail.open .rail-label span,.project-rail.open .project-item strong,.project-rail.open .project-item small,.project-rail.open .project-item b,.project-rail.open .rail-system>div:last-child{display:block}.project-rail.open .project-item{height:auto;display:grid;place-items:initial;border-left:2px solid transparent;border-bottom:0;padding:11px 10px}.project-rail.open .project-item:before{display:none}.rail-mask{display:block;position:fixed;inset:0;background:rgba(14,24,21,.45);z-index:29;opacity:0;pointer-events:none}.rail-mask.open{opacity:1;pointer-events:auto}.mobile-only{display:grid}.context-rail{display:none}.workspace-frame{display:block}.workflow-track{overflow:auto;grid-template-columns:repeat(5,minmax(130px,1fr))}.top-status{display:none}.work-canvas{padding:22px}.report-metrics{grid-template-columns:1fr 1fr}.export-files{grid-template-columns:1fr}}
@media(max-width:620px){.topbar{padding:0 12px}.topbar-title span{display:none}.topbar-actions{gap:5px}.engine-pill{max-width:105px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workflow-band{padding:0 12px}.work-canvas{padding:18px 12px 48px}.stage-title{align-items:flex-start}.stage-title h1{font-size:23px}.stage-index{font-size:32px}.form-sheet,.report-editor,.export-sheet{padding:18px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.scope-ledger{grid-template-columns:1fr}.query-strip{grid-template-columns:1fr}.search-field{min-width:0;flex:1}.confirm-bar{align-items:flex-start;flex-direction:column}.confirm-bar .button{width:100%}.document-row{grid-template-columns:28px 1fr}.document-row select,.doc-state{grid-column:2}.report-metrics{grid-template-columns:1fr 1fr}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.export-file{grid-template-columns:32px 1fr}.export-file .button{grid-column:1/-1;width:100%}.project-modal{padding:22px 16px}.job-line{grid-template-columns:1fr 40px}.job-line>b{grid-row:2;grid-column:1/3}.job-line em{grid-column:2}.topbar-title strong{max-width:160px}}

/* Single-page white and navy workspace theme */
:root{
  --navy:#102a43;
  --navy-2:#173f63;
  --blue:#2563eb;
  --blue-soft:#eaf2ff;
  --blue-pale:#f5f9ff;
  --text:#172b4d;
  --muted:#5b6b82;
  --line:#d9e2ec;
  --line-dark:#b8c7d8;
  --surface:#ffffff;
  --surface-2:#f5f9fd;
  --paper:#f7faff;
  --green:var(--blue);
  --green-deep:var(--navy);
  --green-soft:var(--blue-soft);
  --amber:var(--blue);
  --amber-soft:var(--blue-soft);
  --ink:var(--text);
  --context:310px;
  --rail:206px;
  --radius:6px;
  font-family:"Microsoft YaHei UI","Noto Sans CJK SC",sans-serif;
}
html,body{background:var(--paper);color:var(--text);font-size:15px}
.app-shell{grid-template-columns:var(--rail) minmax(0,1fr)}
.project-rail{background:var(--navy);padding:20px 12px 14px}
.rail-brand{padding:0 4px 18px;gap:9px}
.brand-seal{width:34px;height:34px;border-color:#8fb6dc;color:#fff;font-size:18px}
.rail-brand strong{font-size:14px}.rail-brand small{display:none}
.new-project-button{height:40px;background:#1c466c;border-color:#48759e;margin:16px 0 18px;font-size:13px}
.new-project-button:hover{background:#285b85;border-color:#9fc5e7}
.rail-label{font-size:11px;color:#b8cadc;padding:0 4px 7px}
.project-list{gap:4px}.project-item{padding:10px 8px;color:#c5d5e4;border-left-width:3px}
.project-item:hover{background:#173b5d;color:#fff}.project-item.active{background:#1d4b75;border-left-color:#7fb3e4;color:#fff}
.project-item strong{font-size:12px}.project-item small{font-size:11px;color:#aec2d5}.project-item b{font-size:11px;color:#a8cef1}
.rail-system{padding:13px 4px 2px}.system-orbit{display:none}.rail-system small{font-size:10px;color:#abc2d6}.rail-system strong{font-size:11px;color:#fff}
.topbar{height:64px;background:#fff;border-bottom-color:var(--line);padding:0 24px}
.topbar-title span{font-size:11px;color:var(--muted)}.topbar-title span b{color:var(--blue)}.topbar-title strong{font-size:16px;margin-top:3px;color:var(--navy)}
.top-status{font-size:12px}.engine-pill{font-size:12px;padding:6px 10px;background:var(--blue-soft);border-color:#c8daf5;color:var(--navy)}
.icon-button{background:#fff;border-color:var(--line);color:var(--muted)}.icon-button:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-pale)}
.workflow-band{background:#fff;border-bottom:1px solid var(--line);padding:0 24px;position:sticky;top:64px;z-index:15}
.workflow-track{height:52px;max-width:none;grid-template-columns:repeat(5,minmax(110px,170px))}
.workflow-step{gap:8px;padding:0 10px;color:#8a9bb0}.workflow-step:after{background:var(--line)}
.workflow-step span{width:24px;height:24px;border-color:#b9c9da;font-size:11px}.workflow-step strong{font-size:12px}
.workflow-step.available{color:var(--navy)}.workflow-step.available span{border-color:#8cb2d9}.workflow-step:hover{color:var(--blue)}
.workflow-step.active:before{display:none}
.workflow-step.active span{background:var(--blue);border-color:var(--blue);color:#fff}
.job-line{min-height:38px;grid-template-columns:minmax(240px,1fr) minmax(140px,300px) 44px}.job-line strong{font-size:12px}.job-line span{font-size:11px}.job-line em{font-size:11px;color:var(--blue)}
.workspace-frame{grid-template-columns:minmax(0,1fr) var(--context);min-height:calc(100vh - 116px);align-items:start}
.work-canvas{padding:0 30px 70px;background:#fff}
.context-rail{position:sticky;top:116px;height:calc(100vh - 116px);overflow:auto;background:var(--blue-pale);border-left-color:var(--line);padding:22px 18px}
.workspace-section{max-width:1080px;margin:0 auto;padding:30px 0 36px;border-bottom:1px solid var(--line);scroll-margin-top:126px}
.workspace-section:last-child{border-bottom:0}.workspace-section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.workspace-section-heading h2{margin:0;color:var(--navy);font-size:22px;font-weight:700;letter-spacing:0}
.workspace-section-heading h2:before{content:"";display:inline-block;width:4px;height:22px;background:var(--blue);margin-right:10px;vertical-align:-3px;border-radius:2px}
.workspace-section>.stage-title{display:none}
.section-empty{border:1px dashed var(--line-dark);background:var(--blue-pale);color:var(--muted);font-size:14px;line-height:1.7;padding:24px}.workspace-section.is-pending .workspace-section-heading h2{color:#7f91a5}
.eyebrow{display:none}
.setup-layout{grid-template-columns:minmax(0,1fr) 240px;gap:20px}.form-sheet{border:1px solid var(--line);border-top:3px solid var(--navy);box-shadow:0 8px 24px rgba(16,42,67,.06);padding:22px}
.sheet-heading{padding-bottom:13px;margin-bottom:16px}.sheet-heading h2{font-size:16px}.sheet-heading span{font-size:11px;color:var(--muted)}
.form-grid{gap:14px}.field{gap:6px}.field>span{font-size:12px;color:var(--text)}.field input,.field textarea,.field select{border-color:var(--line-dark);padding:11px 12px;font-size:13px;border-radius:4px}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.scope-ledger{border:1px solid #c9d9ec;border-top:3px solid var(--blue);background:var(--blue-pale);padding:16px}.scope-ledger h2{font-family:inherit;font-size:16px;color:var(--navy);margin:0 0 12px}.ledger-row{border-top-color:var(--line);padding:9px 0;font-size:12px}.ledger-row span{color:var(--muted)}.ledger-row strong{font-size:12px;color:var(--navy)}
.primary-run{background:var(--blue);min-height:46px;font-size:13px}.primary-run:hover{background:#1d4ed8}
.button{min-height:40px;padding:0 14px;font-size:13px;border-radius:5px}.button.primary{background:var(--blue)}.button.primary:hover{background:#1d4ed8}.button.secondary{background:#fff;border-color:#9eb2c9;color:var(--navy)}.button.secondary:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-pale)}
.toolbar{gap:10px;margin-bottom:14px}.search-field{height:40px;background:#fff;border-color:var(--line);border-radius:5px}.search-field input{font-size:13px}.query-strip{gap:10px;margin-bottom:14px}.query-box{background:var(--navy);min-height:72px;padding:12px 14px;border-radius:5px}.query-box span{font-size:11px;color:#b9d6f3}.query-box code{font-size:11px;color:#edf5ff}
.source-note{background:var(--blue-soft);border-left-color:var(--blue);color:var(--navy);font-size:13px;line-height:1.6}.table-shell{border-color:var(--line);max-height:560px}.citation-table{min-width:820px}.citation-table th{background:var(--blue-pale);color:var(--navy);font-size:12px;padding:11px}.citation-table td{font-size:13px;padding:12px;border-bottom-color:#e8eef5}.paper-title strong{font-size:13px}.paper-title small{font-size:11px;color:var(--muted)}.source-badge,.status-badge{font-size:11px;min-height:24px;background:var(--blue-pale);border-color:#c9d9ec;color:var(--navy)}.score{font-size:17px;color:var(--blue)}.score-reason{font-size:10px}
.confirm-bar{background:var(--navy);min-height:58px;padding:11px 14px}.confirm-bar strong{font-size:13px}.confirm-bar small{font-size:11px;color:#c0d2e5}
.upload-band{border-color:#a8bfd8;background:var(--blue-pale);min-height:128px;margin-bottom:16px}.upload-band strong{font-size:14px}.upload-band small{font-size:12px;color:var(--muted);margin-top:6px}.upload-band button{font-size:13px;color:var(--blue)}
.document-list{gap:8px}.document-row{border-color:var(--line);grid-template-columns:34px minmax(160px,1fr) 240px 110px;padding:11px 12px}.document-name strong{font-size:13px}.document-name small{font-size:11px;color:var(--muted)}.document-row select{border-color:var(--line-dark);font-size:12px;padding:8px}.doc-state{font-size:12px;color:var(--blue)}
.analysis-launch{border-top-color:var(--line);padding-top:16px}.report-metrics{border-color:var(--line);background:#fff}.metric{padding:14px;border-right-color:var(--line)}.metric strong{font-size:24px;color:var(--navy)}.metric span{font-size:12px;color:var(--muted)}
.report-editor{border:1px solid var(--line);border-top:3px solid var(--navy);box-shadow:0 8px 24px rgba(16,42,67,.06);padding:26px 30px}.report-cover{border-bottom-color:var(--navy);padding-bottom:18px;margin-bottom:18px}.report-cover span{display:none}.report-cover h2{font-family:inherit;font-size:22px;color:var(--navy);margin:0 0 6px}.report-cover small{font-size:12px;color:var(--muted)}.report-section{padding:14px 0;border-bottom-color:var(--line)}.report-section h3{font-size:16px;color:var(--navy);margin-bottom:9px}.report-paragraph{font-size:13px;line-height:1.8;min-height:62px}.report-actions{gap:10px;margin-top:14px}
.export-sheet{border:1px solid var(--line);border-top:3px solid var(--blue);box-shadow:0 8px 24px rgba(16,42,67,.06);padding:24px}.export-seal{width:54px;height:54px;border-color:var(--blue);color:var(--blue);margin-bottom:14px}.export-sheet h2{font-family:inherit;font-size:21px;color:var(--navy)}.export-sheet>p{font-size:13px;line-height:1.6;color:var(--muted)}.export-files{gap:10px;margin-top:18px}.export-file{border-color:var(--line);padding:14px}.export-file strong{font-size:13px}.export-file small{font-size:11px;color:var(--muted)}
.context-block{padding-bottom:16px;margin-bottom:16px;border-bottom-color:var(--line)}.context-block h2{font-family:inherit;font-size:17px;color:var(--navy);margin:0 0 12px}.context-kpis{gap:6px}.context-kpi{background:#fff;border:1px solid var(--line);padding:10px}.context-kpi strong{font-size:20px;color:var(--navy)}.context-kpi small{font-size:11px;color:var(--muted)}.context-details{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:16px}.context-details summary{cursor:pointer;color:var(--navy);font-size:14px;font-weight:700;padding:2px 0 10px}.context-row{padding:8px 0;border-top-color:var(--line);font-size:12px}.context-row span{color:var(--muted)}.context-row strong{font-size:12px;color:var(--navy)}.context-boundary{font-size:12px;line-height:1.6;color:var(--muted);padding:10px 0}.evidence-card{border-left-color:var(--blue);background:#fff;border:1px solid var(--line);border-left:3px solid var(--blue);padding:11px}.evidence-card.low{border-left-color:#7b8da3}.evidence-card span{font-size:11px;color:var(--blue)}.evidence-card strong{font-size:13px;margin-top:5px;color:var(--navy)}.evidence-card small{font-size:12px;color:var(--muted)}.evidence-actions button{font-size:11px;border-color:var(--line-dark);padding:5px 8px}.preview-frame{background:#e8f0fa}.quote-block{background:#fff;padding:11px;font-size:12px;line-height:1.65;border-left-color:var(--blue)}.boundary{font-size:12px;line-height:1.6;color:var(--muted);border-left-color:var(--blue)}
.modal-layer{background:rgba(16,42,67,.56)}.project-modal{border-top-color:var(--blue)}.project-modal h1{font-family:inherit;font-size:24px;color:var(--navy)}
.toast{background:var(--navy);border-left-color:#70a8e3;font-size:12px}
.top-library-button{min-height:32px;padding:0 10px;gap:6px}.top-library-button svg{width:15px;height:15px}
.knowledge-summary{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr)) 2fr;gap:8px;margin:14px 0;padding:10px;background:#f4f8fd;border:1px solid #d5e2f0}.knowledge-summary>div{padding:4px 10px;border-right:1px solid #d5e2f0}.knowledge-summary strong,.knowledge-summary span{display:block}.knowledge-summary strong{font-size:22px;color:var(--navy)}.knowledge-summary span{font-size:11px;color:var(--muted);margin-top:2px}.knowledge-summary p{margin:4px 8px;color:var(--muted);font-size:12px;line-height:1.6;align-self:center}.knowledge-badge{display:inline-flex;padding:4px 7px;border:1px solid #c9d9ec;background:#f4f8fd;color:var(--navy);font-size:11px;white-space:nowrap}.knowledge-badge.library-existing{background:#e7f6ef;border-color:#9fd2b8;color:#176247}.knowledge-badge.online-fulltext{background:#fff5df;border-color:#e4c27d;color:#8a5a13}.knowledge-badge.online-preview{background:#eef4ff;border-color:#bfd2f1;color:#285a9f}.knowledge-badge.metadata-only{background:#f4f5f7;border-color:#d6dbe2;color:#687487}.update-hint{display:block;color:#a36a17;font-size:10px;margin-top:4px}.library-note{border-left-color:#2e8b73;background:#ecf8f3}.modal-layer[hidden]{display:none}.library-modal{position:relative;width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-top:3px solid var(--blue);padding:28px;box-shadow:0 22px 60px rgba(16,42,67,.25)}.library-modal h1{margin:8px 0;font-size:24px;color:var(--navy)}.library-intro{margin:0 0 18px;color:var(--muted);font-size:13px;line-height:1.7}.library-toolbar{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}.library-stats{flex:1;color:var(--navy);font-size:13px}.library-stats strong{font-size:22px}.library-stats span{color:var(--muted)}.library-list{display:grid;gap:8px;margin-top:14px}.library-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--line);background:#fbfdff}.library-row>svg{color:var(--blue)}.library-row strong,.library-row small{display:block}.library-row strong{font-size:13px;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-row small{font-size:11px;color:var(--muted);margin-top:4px}.library-row>span{font-size:11px;color:#a36a17}.library-empty{padding:24px;text-align:center;border:1px dashed var(--line-dark);color:var(--muted);font-size:13px}
@media(max-width:900px){.workspace-frame{display:block}.work-canvas{padding:0 22px 48px}.context-rail{display:block;position:relative;top:auto;height:auto;max-height:none;border-left:0;border-top:1px solid var(--line);padding:20px 22px}.workspace-section{scroll-margin-top:118px}.project-rail{width:270px}.workspace-section-heading h2{font-size:20px}}
@media(max-width:620px){html,body{font-size:14px}.topbar{padding:0 12px}.workflow-band{padding:0 12px}.workflow-track{overflow:auto;grid-template-columns:repeat(5,minmax(110px,1fr))}.work-canvas{padding:0 14px 42px}.context-rail{padding:18px 14px}.workspace-section{padding:24px 0 30px}.workspace-section-heading h2{font-size:19px}.form-sheet,.report-editor,.export-sheet{padding:18px}.scope-ledger{grid-template-columns:1fr}.document-row{grid-template-columns:28px 1fr}.document-row select,.doc-state{grid-column:2}.report-paragraph{font-size:13px}.report-metrics{grid-template-columns:1fr 1fr}.export-files{grid-template-columns:1fr}}
@media(max-width:620px){.top-library-button span{display:none}.top-library-button{padding:0 8px}.knowledge-summary{grid-template-columns:1fr 1fr}.knowledge-summary>div:nth-child(2){border-right:0}.knowledge-summary>p{grid-column:1/-1;margin:8px 2px}.library-modal{padding:22px 16px}.library-toolbar{align-items:flex-start;flex-direction:column}.library-toolbar .button{width:100%}}

.online-suggestions{margin:12px 0 16px;border:1px solid #d5e2f0;background:#fbfdff}.online-suggestions summary{cursor:pointer;padding:10px 12px;color:var(--navy);font-size:12px;font-weight:700}.online-suggestion-list{display:grid;gap:8px;padding:0 12px 12px}.online-suggestion-list article{padding:9px 10px;border-top:1px solid #e5edf5}.online-suggestion-list strong,.online-suggestion-list small{display:block}.online-suggestion-list strong{font-size:12px;color:var(--navy)}.online-suggestion-list small{font-size:10px;color:var(--muted);margin-top:3px}.online-suggestion-list p{margin:6px 0;color:#5f6f86;font-size:11px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.online-suggestion-list a{font-size:10px;color:var(--blue)}
.citation-preview-link{display:block;font-size:10px;color:var(--blue);margin-top:4px;text-decoration:none}

/* Workspace simplification requested for the review view */
.workspace-frame{grid-template-columns:minmax(0,1fr)}
.context-rail{display:none!important}
.topbar-brand,.topbar-title,.top-search{display:none!important}
.top-status{display:none!important}
.topbar-actions{margin-left:auto}
.project-rail .rail-brand{display:flex!important;text-decoration:none;color:inherit;cursor:pointer}
.project-rail .rail-system{display:none!important}
.project-rail .rail-label,.project-rail .project-list{display:none!important}
.project-rail .primary-nav{padding-top:18px;gap:8px}
.project-rail .primary-nav-item{height:56px;font-size:15px;gap:14px}
.project-rail .primary-nav-item svg{width:21px;height:21px}
.home-hero h1{margin:0}
.home-hero .hero-kicker,.home-hero p{display:none!important}
.workflow-band{height:0;padding:0;border-bottom:0;overflow:visible;position:relative}
.workflow-track{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;overflow:visible}
.workflow-step{position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden}
.workflow-step:nth-child(1){left:0}.workflow-step:nth-child(2){left:2px}.workflow-step:nth-child(3){left:4px}.workflow-step:nth-child(4){left:6px}.workflow-step:nth-child(5){left:8px}
.workflow-step *{display:none!important}
.workflow-step{pointer-events:none}.workflow-step[data-anchor="workspace-fulltext"]{pointer-events:auto}
.workspace-section{max-width:none;width:100%;margin:0}
.setup-layout{display:block}
.setup-layout .form-sheet{width:100%}
@media(max-width:1180px){.project-rail .primary-nav-item{height:56px}.project-rail .primary-nav{gap:8px}}

/* Login portal */
body.login-active{background:#eef4ff;color:#20283e;overflow:auto}
.login-portal{min-height:100vh;background:linear-gradient(118deg,#f7faff 0%,#eef5ff 46%,#e7f0ff 100%);position:relative;overflow:hidden;color:#20283e}
.login-header{height:78px;padding:0 clamp(24px,4.5vw,76px);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:5;background:rgba(249,252,255,.72);border-bottom:1px solid rgba(196,211,239,.42);backdrop-filter:blur(14px)}
.login-brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;flex:0 0 auto}
.login-brand-mark{width:42px;height:42px;border-radius:8px;background:#4157f5;color:#fff;display:grid;place-items:center;box-shadow:0 9px 20px rgba(65,87,245,.22)}
.login-brand-mark svg{width:24px;height:24px;stroke-width:1.9}
.login-brand strong,.login-brand small{display:block}.login-brand strong{font-size:18px;color:#344bdf}.login-brand small{font-size:8px;color:#8190b1;margin-top:3px}
.login-nav{display:flex;align-items:stretch;gap:clamp(22px,4vw,58px);height:100%}
.login-nav button{color:#293148;text-decoration:none;font-size:14px;font-weight:600;display:flex;align-items:center;position:relative;white-space:nowrap;border:0;background:transparent;padding:0;cursor:pointer}
.login-nav button:after{content:"";position:absolute;height:3px;left:50%;right:50%;bottom:0;background:#4157f5;transition:left .2s,right .2s}
.login-nav button:hover,.login-nav button.active{color:#4157f5}.login-nav button:hover:after,.login-nav button.active:after{left:8px;right:8px}
.login-main{min-height:calc(100vh - 152px);padding:clamp(46px,7vh,84px) clamp(24px,7vw,118px) 60px;display:grid;grid-template-columns:minmax(0,1.24fr) minmax(380px,520px);gap:clamp(54px,7vw,112px);align-items:center;position:relative;isolation:isolate}
.login-main:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.5),transparent 58%);z-index:-2}
.login-workspace-preview{position:absolute;width:min(920px,62vw);height:auto;left:4vw;bottom:-25%;opacity:.12;transform:perspective(1100px) rotateX(55deg) rotateZ(-8deg);transform-origin:left bottom;filter:saturate(.8);z-index:-1;pointer-events:none;mask-image:linear-gradient(to bottom,transparent 0%,#000 28%,#000 78%,transparent 100%)}
.login-ambient{position:absolute;inset:0;z-index:-1;pointer-events:none}
.login-ambient i{position:absolute;border:1px solid rgba(74,101,211,.11);transform:rotate(-18deg)}
.login-ambient i:nth-child(1){width:520px;height:520px;right:-180px;top:-240px;border-radius:50%;box-shadow:0 0 0 42px rgba(65,87,245,.025),0 0 0 84px rgba(65,87,245,.018)}
.login-ambient i:nth-child(2){width:340px;height:170px;left:40%;top:13%;border-radius:50%}.login-ambient i:nth-child(3){width:48vw;height:1px;left:-7vw;bottom:20%;background:rgba(65,87,245,.1);border:0}
.login-hero-copy{max-width:780px;position:relative;z-index:1}
.login-science-line{display:flex;align-items:center;gap:22px;max-width:480px;margin-bottom:32px;color:#3d4a73}
.login-science-line span{height:1px;background:#9fb1ea;flex:1}.login-science-line b{font-size:18px;font-style:italic;font-weight:700;white-space:nowrap}
.login-hero-copy h1{font-size:clamp(42px,4.3vw,68px);line-height:1.16;margin:0;color:#20283e;font-weight:760;max-width:800px}
.login-hero-copy h1 span{color:#4157f5}
.login-feature-list{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.login-feature-list span{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#34415e;border:1px solid #dbe4f6;border-radius:6px;padding:10px 14px;box-shadow:0 7px 20px rgba(51,72,125,.06);font-size:13px;font-weight:600}
.login-feature-list svg{width:17px;height:17px;color:#4157f5}
.login-secondary-action{margin-top:34px;width:max-content;min-height:44px;display:inline-flex;align-items:center;gap:9px;padding:0 20px;border:1px solid #8397f8;color:#344bdf;text-decoration:none;border-radius:6px;font-weight:600;background:rgba(255,255,255,.48);cursor:pointer}
.login-secondary-action:hover{background:#fff}.login-secondary-action svg{width:17px;height:17px}
.login-panel{width:100%;background:rgba(255,255,255,.84);border:1px solid rgba(211,222,243,.82);border-radius:8px;padding:38px 40px 30px;box-shadow:0 26px 64px rgba(47,70,129,.13);backdrop-filter:blur(20px);position:relative;z-index:2}
.login-panel:before{content:"";position:absolute;left:0;top:0;width:76px;height:76px;background:linear-gradient(135deg,rgba(65,87,245,.14) 0 49%,transparent 50%);border-radius:8px 0 0 0;pointer-events:none}
.login-panel-heading{display:flex;align-items:center;gap:13px;margin-bottom:30px}.login-panel-icon{width:38px;height:38px;border:1px solid #c7d2f3;color:#4157f5;display:grid;place-items:center;border-radius:7px;background:#f4f6ff}.login-panel-icon svg{width:19px}
.login-panel-heading h2{font-size:24px;margin:0;color:#252d43}
.login-form{display:grid;gap:18px}.login-field{display:grid;gap:8px}.login-field>span:first-child{font-size:12px;color:#59657c;font-weight:600}
.login-input-wrap{height:54px;border:1px solid #d8deeb;background:#fff;border-radius:6px;display:flex;align-items:center;gap:11px;padding:0 14px;transition:border-color .2s,box-shadow .2s}
.login-input-wrap:focus-within{border-color:#6377f6;box-shadow:0 0 0 3px rgba(65,87,245,.1)}.login-input-wrap>svg{width:18px;color:#8d98ae}
.login-input-wrap input{min-width:0;flex:1;border:0;outline:0;background:transparent;font-size:14px}.login-input-wrap input::placeholder{color:#a8b0c0}
.login-password-toggle{width:32px;height:32px;border:0;background:transparent;color:#8b96ab;display:grid;place-items:center;padding:0;border-radius:4px}.login-password-toggle:hover{background:#f0f3ff;color:#4157f5}.login-password-toggle svg{width:17px;height:17px}
.login-form-options{display:flex;align-items:center;justify-content:space-between;color:#7d889e;font-size:12px}.login-form-options label{display:flex;align-items:center;gap:8px;cursor:pointer}.login-form-options input{width:16px;height:16px;accent-color:#4157f5;margin:0}
.login-error{min-height:18px;margin:-5px 0 -6px;color:#d44646;font-size:12px}
.login-submit{height:54px;border:0;border-radius:6px;background:#4157f5;color:#fff;display:flex;align-items:center;justify-content:center;gap:11px;font-size:16px;font-weight:650;box-shadow:0 10px 22px rgba(65,87,245,.22);transition:transform .18s,background .18s}
.login-submit:hover{background:#3045d8;transform:translateY(-1px)}.login-submit svg{width:18px;height:18px}
.login-info-modal{position:fixed;inset:0;background:rgba(27,38,73,.28);backdrop-filter:blur(5px);display:grid;place-items:center;padding:22px;z-index:20}
.login-info-card{width:min(500px,100%);background:#fff;border:1px solid #d8e0f3;border-radius:10px;padding:34px 36px 30px;box-shadow:0 24px 70px rgba(36,55,112,.2);position:relative}
.login-info-close{position:absolute;right:16px;top:16px;width:34px;height:34px;border:1px solid #dce3f2;background:#fff;color:#8490a8;border-radius:6px;display:grid;place-items:center}.login-info-close:hover{color:#4157f5;border-color:#aebaff;background:#f7f8ff}.login-info-close svg{width:17px}
.login-info-kicker{display:block;color:#4157f5;font-size:12px;font-weight:700;margin-bottom:10px}.login-info-card h2{font-size:24px;margin:0;color:#252d43}.login-info-card p{font-size:14px;line-height:1.8;color:#687590;margin:14px 0 25px}.login-info-actions{display:flex;gap:10px}.login-info-actions button{min-height:42px;border-radius:6px;padding:0 18px;font-size:13px;font-weight:600;cursor:pointer}.login-info-primary{border:1px solid #4157f5;background:#4157f5;color:#fff}.login-info-primary:hover{background:#3045d8}.login-info-secondary{border:1px solid #ccd5eb;background:#fff;color:#45516c}.login-info-secondary:hover{border-color:#8b9bf0;color:#4157f5}
.account-button{height:34px;min-width:62px;padding:0 9px;border:1px solid var(--cnki-line);background:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center;gap:8px;color:#768198}
.account-button:hover{border-color:#aebaff;color:var(--cnki-blue);background:#f7f8ff}.account-button span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#e9edff;color:#4157f5;font-size:11px;font-weight:700}.account-button svg{width:15px;height:15px}
@media(max-width:1050px){.login-nav{gap:22px}.login-main{grid-template-columns:minmax(0,1fr) 410px;gap:42px;padding-left:42px;padding-right:42px}.login-hero-copy h1{font-size:45px}}
@media(max-width:820px){.login-header{height:68px;padding:0 20px}.login-nav button:not(.active):not(:last-child){display:none}.login-nav{gap:20px}.login-main{min-height:auto;grid-template-columns:1fr;padding:42px 20px 34px;gap:36px}.login-workspace-preview{width:1000px;left:-300px;bottom:6%;opacity:.08}.login-hero-copy{max-width:650px;margin:0 auto;width:100%}.login-science-line{margin-bottom:22px}.login-hero-copy h1{font-size:clamp(38px,8vw,54px)}.login-secondary-action{display:none}.login-panel{max-width:560px;margin:0 auto;padding:30px}}
@media(max-width:540px){.login-header{padding:0 14px}.login-brand strong{font-size:15px}.login-brand small{font-size:7px}.login-brand-mark{width:36px;height:36px}.login-nav{display:none}.login-main{padding:30px 14px 24px}.login-science-line{max-width:280px;gap:12px;margin-bottom:18px}.login-science-line b{font-size:14px}.login-hero-copy h1{font-size:36px;line-height:1.2}.login-feature-list{gap:7px}.login-feature-list span{padding:8px 9px;font-size:11px}.login-panel{padding:26px 18px 22px}.login-panel-heading{margin-bottom:24px}.login-panel-heading h2{font-size:21px}.login-input-wrap{height:50px}.login-submit{height:50px}.account-button{min-width:34px;padding:0 5px}.account-button span{display:none}.topbar-actions{gap:7px}.login-info-card{padding:30px 22px 24px}.login-info-card h2{font-size:21px}.login-info-card p{font-size:13px}}

/* CNKI-inspired app chrome */
:root{--cnki-blue:#4157f5;--cnki-blue-deep:#3045d8;--cnki-navy:#252b40;--cnki-navy-2:#30374f;--cnki-bg:#f3f5fa;--cnki-line:#e2e6f0;--cnki-text:#273047;--cnki-muted:#7d879e;--rail:226px;--context:318px;--paper:var(--cnki-bg);--surface:#fff;--line:var(--cnki-line);--line-dark:#c7cede;--ink:var(--cnki-text);--green:var(--cnki-blue);--green-deep:var(--cnki-blue-deep);--green-soft:#e9edff;--amber:var(--cnki-blue);--amber-soft:#eef1ff;font-family:"PingFang SC","Microsoft YaHei UI","Noto Sans CJK SC",sans-serif}
html,body{background:var(--cnki-bg);color:var(--cnki-text)}.app-shell{grid-template-columns:var(--rail) minmax(0,1fr)}
.project-rail{background:var(--cnki-navy);padding:0 0 18px;color:#e8ebf8;box-shadow:4px 0 18px rgba(24,30,53,.08)}.rail-brand{height:76px;padding:0 22px;gap:10px;border-bottom:1px solid rgba(255,255,255,.1)}.brand-mark{width:34px;height:34px;border-radius:9px;background:var(--cnki-blue);display:grid;place-items:center;color:#fff;box-shadow:0 6px 14px rgba(65,87,245,.35)}.brand-mark svg{width:20px;height:20px}.brand-seal{display:none}.rail-brand strong{font-size:15px}.rail-brand small{display:block;font-size:9px;color:#aab2cd;margin-top:3px;letter-spacing:1.2px}
.primary-nav{display:grid;gap:4px;padding:16px 10px 12px}.primary-nav-item{height:42px;border:0;background:transparent;color:#b7bfd8;border-radius:6px;display:flex;align-items:center;gap:12px;padding:0 15px;font-size:13px;text-align:left;transition:background .2s,color .2s}.primary-nav-item svg{width:18px;height:18px;color:#96a0bf}.primary-nav-item:hover{background:rgba(255,255,255,.08);color:#fff}.primary-nav-item.active{background:var(--cnki-blue);color:#fff;box-shadow:0 7px 16px rgba(22,34,106,.24)}.primary-nav-item.active svg{color:#fff}
.new-project-button{margin:6px 16px 18px;height:40px;border:1px solid rgba(150,170,255,.35);background:#313956;color:#eef1ff;border-radius:6px;font-size:12px}.new-project-button:hover{background:#3d4768;border-color:#8193ff}.rail-label{margin:0 16px;padding:13px 6px 8px;border-top:1px solid rgba(255,255,255,.1);color:#9ca6c3;font-size:10px}.rail-label b{color:#d6dcf0}.project-list{padding:0 10px;gap:4px}.project-item{padding:10px 9px;border-left:3px solid transparent;border-radius:5px;color:#aeb7d0}.project-item:hover{background:rgba(255,255,255,.06);color:#fff}.project-item.active{background:var(--cnki-navy-2);border-left-color:#8493ff;color:#fff}.project-item strong{font-size:11px}.project-item small{font-size:9px;color:#8792b0}.project-item b{font-size:9px;color:#aebdff}.rail-system{margin:14px 16px 0;padding:14px 6px 0;border-top:1px solid rgba(255,255,255,.1)}.rail-system small{font-size:9px;color:#9ca6c3}.rail-system strong{font-size:10px;color:#eef1ff}
.topbar{height:76px;background:#fff;border-bottom:1px solid var(--cnki-line);padding:0 26px;box-shadow:0 2px 12px rgba(38,47,81,.04)}.topbar-brand{display:flex;align-items:center;gap:8px;margin-right:26px;white-space:nowrap;color:var(--cnki-text)}.topbar-logo{width:25px;height:25px;display:grid;place-items:center;border-radius:7px;background:#edf0ff;color:var(--cnki-blue);font-weight:800;font-size:13px}.topbar-brand strong{font-size:14px}.topbar-brand i{height:20px;width:1px;background:#dfe3ed;margin:0 4px}.topbar-brand>span:last-child{font-size:12px;color:var(--cnki-muted)}.topbar-title{border-left:1px solid #eef0f5;padding-left:22px}.topbar-title strong{font-size:14px;color:var(--cnki-text);font-weight:600}.topbar-actions{gap:12px}.top-search{height:36px;border:1px solid #cbd3ff;background:#f5f6ff;color:var(--cnki-blue);border-radius:6px;padding:0 13px;display:flex;align-items:center;gap:7px;font-size:12px}.top-search:hover{background:#ebeeff;border-color:var(--cnki-blue)}.top-search svg{width:16px}.top-status{font-size:11px;color:var(--cnki-muted)}.engine-pill{font-size:11px;border-radius:12px;padding:5px 10px;background:#edf8f3;border-color:#c9eadb;color:#25835e}.engine-pill.mock{background:#fff4df;border-color:#f1d9ac;color:#a56a19}.top-library-button{height:34px;border-radius:6px}
.workflow-band{background:#fff;padding:0 26px;border-bottom:1px solid var(--cnki-line);position:sticky;top:76px;z-index:15}.workflow-track{height:54px;grid-template-columns:repeat(5,minmax(110px,160px));gap:4px}.workflow-step{padding:0 12px;gap:8px;color:#9aa4bb}.workflow-step:after{display:none}.workflow-step span{width:25px;height:25px;border:0;background:#f0f2f8;color:#8c96ab;font-size:10px}.workflow-step.available{color:var(--cnki-text)}.workflow-step.available span{background:#e9edff;color:var(--cnki-blue)}.workflow-step.active{color:var(--cnki-blue)}.workflow-step.active:before{display:block;left:12px;right:12px;height:3px;background:var(--cnki-blue)}.workflow-step.active span{background:var(--cnki-blue);color:#fff}
.workspace-frame{grid-template-columns:minmax(0,1fr) var(--context);min-height:calc(100vh - 130px)}.work-canvas{padding:0 34px 70px;background:var(--cnki-bg)}.context-rail{top:130px;height:calc(100vh - 130px);background:#f8f9fd;border-left:1px solid var(--cnki-line);padding:20px 18px}.workspace-section{max-width:1120px;padding:28px 0 34px;border-bottom:1px solid var(--cnki-line)}.workspace-section-heading{margin-bottom:17px}.workspace-section-heading h2{font-size:20px;color:var(--cnki-text);font-weight:700}.workspace-section-heading h2:before{width:4px;height:20px;background:var(--cnki-blue);border-radius:3px}
.home-hero{min-height:210px;margin:0 -34px;padding:36px 52px 28px;background:linear-gradient(115deg,#eef1ff 0%,#f8f9ff 56%,#e9edff 100%);display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative}.home-hero:after{content:"";position:absolute;right:8%;top:-70px;width:300px;height:300px;border:1px solid rgba(65,87,245,.12);border-radius:50%;box-shadow:0 0 0 22px rgba(65,87,245,.035),0 0 0 44px rgba(65,87,245,.025)}.home-hero>div:first-child{position:relative;z-index:1}.hero-kicker{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--cnki-blue)}.home-hero h1{margin:12px 0 10px;font-size:29px;line-height:1.28;color:#242d53}.home-hero p{margin:0;color:#7180a4;font-size:13px;line-height:1.8}.hero-orbit{width:116px;height:116px;border-radius:50%;display:grid;place-items:center;background:var(--cnki-blue);color:#fff;position:relative;z-index:1;box-shadow:0 14px 30px rgba(65,87,245,.22)}.hero-orbit:before,.hero-orbit:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.35);border-radius:50%}.hero-orbit:before{inset:14px}.hero-orbit:after{inset:-10px;border-color:rgba(65,87,245,.28)}.hero-orbit b{font-size:28px}.hero-orbit span{position:absolute;width:7px;height:7px;border-radius:50%;background:#aeb9ff;top:8px;right:21px}
.home-search{height:58px;margin:-1px auto 0;max-width:860px;background:#fff;border:1px solid #cdd5ff;box-shadow:0 8px 22px rgba(48,69,216,.08);display:flex;align-items:center;gap:11px;padding:0 8px 0 17px;border-radius:8px;position:relative;z-index:2}.home-search>svg{width:19px;color:var(--cnki-blue)}.home-search input{border:0;outline:0;min-width:0;flex:1;font-size:13px}.home-search button{height:42px;padding:0 22px;border:0;background:var(--cnki-blue);color:#fff;border-radius:6px;font-size:13px;font-weight:600}.home-search button:hover{background:var(--cnki-blue-deep)}.home-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 8px}.home-kpis>div{background:#fff;border:1px solid var(--cnki-line);padding:13px 16px;border-radius:7px}.home-kpis strong,.home-kpis span{display:block}.home-kpis strong{font-size:22px;line-height:1;color:var(--cnki-blue)}.home-kpis span{font-size:11px;color:var(--cnki-muted);margin-top:7px}
.form-sheet,.report-editor,.export-sheet{border:1px solid var(--cnki-line);border-top:3px solid var(--cnki-blue);box-shadow:0 6px 18px rgba(31,42,80,.05);border-radius:8px;padding:22px;background:#fff}.scope-ledger{border:1px solid #d6dcff;border-top:3px solid var(--cnki-blue);background:#fff;border-radius:8px}.primary-run{background:var(--cnki-blue);border-radius:6px}.primary-run:hover{background:var(--cnki-blue-deep)}.toolbar{background:#fff;border:1px solid var(--cnki-line);border-radius:7px;padding:10px;margin-bottom:12px}.query-box{background:var(--cnki-navy);border-radius:6px}.table-shell{border-radius:7px;background:#fff}.citation-table th{background:#f0f3ff;color:#4a5675}.citation-table tr:hover td{background:#f8f9ff}.confirm-bar{background:var(--cnki-navy);border-radius:7px}.upload-band{background:#fafbff;border-color:#bdc8ed;border-radius:8px}.document-row{background:#fff;border-radius:7px}.report-metrics{border-radius:7px;overflow:hidden}.metric strong{color:var(--cnki-blue)}.report-cover h2{color:var(--cnki-text)}.report-paragraph{background:#fbfcff;border-color:#d5dceb;border-radius:5px}.export-file{border-radius:7px;background:#fbfcff}
.quick-access{background:#fff;border:1px solid var(--cnki-line);border-radius:8px;padding:14px;margin-bottom:16px;box-shadow:0 5px 16px rgba(31,42,80,.04)}.quick-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.quick-heading h2{font-size:17px;color:var(--cnki-text);margin:0}.quick-manage{border:0;background:transparent;color:#9aa4bb;padding:4px}.quick-manage:hover{color:var(--cnki-blue)}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.quick-grid button{border:0;background:transparent;color:var(--cnki-text);display:grid;justify-items:center;gap:7px;padding:4px 2px;font-size:11px}.quick-grid button i{width:40px;height:40px;border-radius:8px;background:#e9edff;color:var(--cnki-blue);display:grid;place-items:center}.quick-grid button svg{width:20px;height:20px}.quick-grid button:hover span{color:var(--cnki-blue)}
.context-block{border-bottom-color:var(--cnki-line)}.context-block h2{font-size:16px;color:var(--cnki-text)}.context-kpi{border-color:var(--cnki-line);border-radius:6px;background:#fff}.context-kpi strong{color:var(--cnki-blue)}.evidence-card{border-color:var(--cnki-line);border-left-color:var(--cnki-blue);border-radius:6px;background:#fff}.evidence-card strong{color:var(--cnki-text)}.preview-frame{background:#edf1ff;border-radius:6px}.quote-block{border-radius:5px;background:#fff}.boundary{color:var(--cnki-muted)}.modal-layer{background:rgba(29,35,59,.58)}.project-modal,.library-modal{border-top-color:var(--cnki-blue);border-radius:8px}.toast{background:var(--cnki-navy);border-left-color:#8795ff}
.project-rail{background:#fff;color:var(--cnki-text);border-right:1px solid var(--cnki-line);box-shadow:2px 0 12px rgba(38,47,81,.04)}.rail-brand{border-bottom-color:var(--cnki-line)}.rail-brand strong{color:var(--cnki-text)}.rail-brand small{color:var(--cnki-muted)}.primary-nav-item{color:#68738b}.primary-nav-item svg{color:#7d89a1}.primary-nav-item:hover{background:#f1f3ff;color:var(--cnki-blue)}.primary-nav-item.active{background:var(--cnki-blue);color:#fff}.primary-nav-item.active svg{color:#fff}.new-project-button{background:#f5f6ff;border-color:#cbd3ff;color:var(--cnki-blue)}.new-project-button:hover{background:#ebeeff;border-color:var(--cnki-blue)}.rail-label{border-top-color:var(--cnki-line);color:#8b95aa}.rail-label b{color:var(--cnki-blue)}.project-item{color:#69748b}.project-item:hover{background:#f3f5ff;color:var(--cnki-blue)}.project-item.active{background:#eef1ff;border-left-color:var(--cnki-blue);color:var(--cnki-text)}.project-item small{color:#98a1b4}.project-item b{color:var(--cnki-blue)}.rail-system{border-top-color:var(--cnki-line)}.rail-system small{color:#8b95aa}.rail-system strong{color:var(--cnki-text)}
.project-rail>.new-project-button{display:none}
@media(max-width:1180px){.app-shell{grid-template-columns:78px minmax(0,1fr)}.project-rail{width:78px}.primary-nav-item span{display:none}.primary-nav{padding:14px 9px 8px}.primary-nav-item{justify-content:center;padding:0}.new-project-button{margin:6px 12px 16px}.new-project-button span,.rail-label span,.rail-label b{display:none}.rail-label{margin:0 10px;justify-content:center}.project-list{padding:0 9px}.topbar-brand>span:last-child,.topbar-brand>strong,.topbar-brand>i{display:none}.topbar-brand{margin-right:14px}.home-hero{padding-left:38px;padding-right:38px}}
@media(max-width:900px){.project-rail{width:270px}.project-rail .primary-nav-item span{display:block}.project-rail .new-project-button span,.project-rail .rail-label span,.project-rail .rail-label b{display:block}.project-rail .rail-label{margin:0 16px;justify-content:space-between}.project-rail .new-project-button{margin:6px 16px 18px}.workspace-frame{display:block}.context-rail{display:block;position:relative;top:auto;height:auto;border-left:0;border-top:1px solid var(--cnki-line);padding:20px 22px}.work-canvas{padding:0 22px 50px}.home-hero{margin:0 -22px;padding-left:28px;padding-right:28px}.home-hero h1{font-size:25px}.workflow-band{top:76px}}
@media(max-width:620px){.topbar{height:66px;padding:0 12px}.topbar-title{padding-left:10px}.topbar-title strong{font-size:12px;max-width:145px}.top-search span{display:none}.top-search{width:36px;padding:0;justify-content:center}.workflow-band{top:66px;padding:0 12px}.workspace-frame{min-height:calc(100vh - 120px)}.context-rail{padding:16px 14px}.work-canvas{padding:0 14px 42px}.workspace-section{padding:22px 0 28px}.home-hero{margin:0 -14px;padding:28px 20px 24px;min-height:250px;align-items:flex-start}.home-hero h1{font-size:23px;max-width:260px}.home-hero p{max-width:280px}.hero-orbit{position:absolute;right:20px;bottom:22px;width:82px;height:82px}.hero-orbit b{font-size:21px}.home-search{height:52px}.home-search button{height:38px;padding:0 14px}.home-kpis{grid-template-columns:1fr 1fr;gap:8px}.home-kpis>div{padding:11px 12px}.home-kpis strong{font-size:20px}.quick-grid button i{width:36px;height:36px}.quick-grid button{font-size:10px}.toolbar{padding:8px}.topbar-brand{display:none}}
.defense-page{padding-bottom:35px}.defense-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.defense-head h1{font-family:"Source Han Serif SC","Songti SC",serif;font-size:28px;margin:8px 0;color:#202b48}.defense-head p{max-width:680px;color:#73809a;font-size:13px;line-height:1.8;margin:0}.defense-score{min-width:145px;background:#5368ec;color:#fff;border-radius:7px;padding:14px 16px}.defense-score span,.defense-score small{display:block;font-size:11px;color:#dce1ff}.defense-score strong{display:block;font-size:28px;margin:4px 0}.defense-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:15px}.defense-steps button{border:1px solid var(--cnki-line);background:#fff;border-radius:6px;text-align:left;padding:12px;display:grid;grid-template-columns:28px 1fr;gap:7px;color:#7e899f}.defense-steps button span{grid-row:span 2;width:24px;height:24px;border-radius:50%;background:#eff2f9;display:grid;place-items:center;font-size:10px}.defense-steps button strong{font-size:12px;color:#3a4664}.defense-steps button small{font-size:10px}.defense-steps button.active{border-color:#7081f2;background:#f0f2ff}.defense-steps button.active span{background:#5368ec;color:#fff}.defense-panel{background:#fff;border:1px solid var(--cnki-line);border-radius:8px;padding:24px;box-shadow:0 6px 18px rgba(38,52,96,.04)}.defense-panel-title{display:flex;justify-content:space-between;margin-bottom:20px}.defense-panel-title h2{font-family:"Source Han Serif SC","Source Han Serif SC",serif;font-size:21px;color:#202a47;margin:6px 0}.defense-panel-title p{font-size:12px;color:#7b879f;margin:0}.defense-state{font-size:11px;color:#8793aa;border:1px solid #e2e7f0;border-radius:4px;padding:6px 10px}.defense-opening{display:flex;gap:14px;background:#f7f8fd;border:1px solid #e6e9f3;padding:17px;border-radius:6px;line-height:1.8;color:#65718b;font-size:13px}.defense-avatar{width:38px;height:38px;border-radius:50%;background:#5368ec;color:#fff;display:grid;place-items:center;flex:0 0 38px}.defense-opening p{margin:4px 0}.defense-experts{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:16px 0}.defense-experts article{border:1px solid #e0e5f0;border-radius:6px;padding:13px}.defense-experts header{display:flex;align-items:center;gap:8px}.defense-experts header span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px}.defense-experts strong{font-size:11px;color:#334160}.defense-experts small{display:block;color:#8490a7;font-size:10px;margin-top:8px}.defense-self-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:15px}.defense-editor{border:1px solid #dfe5f1;border-radius:6px;padding:14px}.defense-editor label{font-size:12px;font-weight:700}.defense-editor textarea{width:100%;min-height:240px;margin:10px 0;border:0;outline:0;resize:vertical;line-height:1.8;color:#586681;font-size:13px}.defense-toolbar{display:flex;align-items:center;gap:8px;border-top:1px solid #e8ebf2;padding-top:10px}.defense-toolbar span{margin-right:auto;color:#9aa4b8;font-size:11px}.defense-guide{border-left:1px solid #e4e8f1;padding-left:17px;color:#6f7d98;font-size:11px;line-height:1.7}.defense-guide ol{padding-left:18px}.defense-guide p{background:#f1f3ff;border-left:2px solid #7485f1;padding:8px}.defense-question-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px}.defense-judges{display:grid;gap:8px;align-content:start}.defense-judge{border:1px solid #e1e6f0;background:#fff;text-align:left;border-radius:5px;padding:12px;display:grid;grid-template-columns:28px 1fr;gap:5px}.defense-judge>span{grid-row:span 2;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px}.defense-judge strong{font-size:11px;color:#3b4762}.defense-judge small{grid-column:2;color:#94a0b2;font-size:10px}.defense-judge b{grid-column:2;color:#36a385;font-size:10px}.defense-judge.active{border-color:#7081f2;background:#f2f4ff}.defense-question-card{border:1px solid #dce3ef;border-radius:6px;padding:17px}.defense-question-card>small{color:#75819b;font-size:11px}.defense-question-card h3{font-size:15px;line-height:1.7;color:#293758}.defense-question-card textarea{width:100%;resize:vertical;border:1px solid #dce3ef;border-radius:5px;padding:10px;font-size:13px;line-height:1.7}.defense-answer-footer{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.defense-answer-footer span{font-size:10px;color:#9aa4b5}.defense-result{margin-top:12px;padding:11px;background:#f4f6ff;border-left:3px solid #6175ec;color:#53628a;font-size:12px}.defense-result strong{font-size:19px;color:#4f63e7;margin-right:8px}.defense-summary-hero{display:flex;align-items:center;gap:18px;background:#f3f5ff;padding:18px;border-radius:6px}.defense-ring{width:90px;height:90px;border-radius:50%;border:7px solid #788af0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff}.defense-ring strong{font-size:25px;color:#4f63e4}.defense-ring span{font-size:10px;color:#8792aa}.defense-summary-hero h3{font-family:"Source Han Serif SC","Source Han Serif SC",serif;font-size:18px;margin:0 0 6px}.defense-summary-hero p{font-size:12px;color:#71809b;margin:0}.defense-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:14px 0}.defense-summary-grid>div{border:1px solid #e0e5f0;padding:13px;border-radius:5px}.defense-summary-grid span,.defense-summary-grid strong{display:block}.defense-summary-grid span{font-size:10px;color:#8b96aa}.defense-summary-grid strong{font-size:13px;color:#3d4b6a;margin-top:8px}.defense-details{display:grid;gap:7px;margin-bottom:15px}.defense-details p{background:#fafbfe;border-left:3px solid #6d7ff0;padding:10px;font-size:12px;color:#5d6b87;margin:0}.defense-details b{color:#3c4a6b;margin-right:10px}
@media(max-width:900px){.defense-self-layout,.defense-question-layout{grid-template-columns:1fr}.defense-rail{display:none}.defense-experts{grid-template-columns:1fr}.defense-page{padding:18px 0}.defense-head{display:block}.defense-score{margin-top:14px;display:inline-block}}
@media(max-width:620px){.defense-steps{grid-template-columns:1fr 1fr}.defense-steps button small{display:none}.defense-panel{padding:16px}.defense-panel-title{display:block}.defense-state{display:inline-block;margin-top:10px}.defense-toolbar{flex-wrap:wrap}.defense-toolbar span{width:100%;margin:0}.defense-summary-grid{grid-template-columns:1fr}.defense-breadcrumb{font-size:10px}}
.defense-mode-switch{display:flex;gap:6px;margin:10px 0}.defense-mode-switch button{border:1px solid #dce3ef;background:#fff;color:#78849a;border-radius:4px;padding:6px 10px;font-size:11px;cursor:pointer}.defense-mode-switch button.active{background:#eef1ff;border-color:#6377e9;color:#4f63e4}.defense-generated-copy{background:#fff;border:1px solid #e5e8f1;border-radius:5px;padding:10px;color:#596783;font-size:12px;line-height:1.8;white-space:pre-wrap}.defense-opening textarea{width:100%;border:1px solid #dce3ef;border-radius:5px;padding:10px;font-size:12px;line-height:1.7;resize:vertical}

/* AI 文献研读页面 */
.reading-view .workspace-frame{grid-template-columns:minmax(0,1fr)}
.reading-view .context-rail{display:none}
.reading-page{margin:0 -34px;display:grid;grid-template-columns:minmax(0,1.16fr) minmax(400px,.84fr);min-height:calc(100vh - 130px);background:#fff}
.reading-paper{padding:38px clamp(22px,5vw,76px) 28px;border-right:1px solid #dfe5f2;background:#fff;color:#202b48}
.reading-paper-meta{display:flex;gap:14px;flex-wrap:wrap;color:#8994ac;font-size:11px;margin-bottom:22px}.reading-paper-meta span+span{border-left:1px solid #dfe5f2;padding-left:14px}
.reading-paper h1{font-family:"Source Han Serif SC","Songti SC","STSong",serif;font-size:28px;line-height:1.45;margin:0 0 15px;color:#1e2945}.reading-authors{font-size:13px;color:#4158d2;margin:0}.reading-authors span{color:#8390a8;margin-left:10px}.reading-rule{height:1px;background:#e3e7f0;margin:27px 0}.reading-paper section{margin-bottom:25px}.reading-paper section h3{font-size:16px;margin:0 0 10px;color:#283350}.reading-paper section p{font-family:"Source Han Serif SC","Songti SC","STSong",serif;font-size:14px;line-height:2;color:#59647d;margin:0}.reading-keywords{display:flex;flex-wrap:wrap;gap:8px}.reading-keywords span{font-size:12px;color:#4660d4;background:#f0f3ff;padding:6px 10px;border:1px solid #dce2ff;border-radius:3px}.reading-paper-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e4e8f0;padding-top:14px;font-size:11px;color:#98a1b5}.reading-paper-footer button{border:1px solid #d9e0ed;background:#fff;color:#5e6c8c;width:28px;height:25px;margin-left:5px;border-radius:3px}.reading-source-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;padding-top:16px;border-top:1px dashed #dce2ef}.reading-source-tools .button{font-size:11px}.reading-ai{background:linear-gradient(145deg,#eff3ff,#f7f8fc 62%,#eef2ff);padding:24px 24px 18px;display:flex;flex-direction:column;min-width:0}.reading-ai-header{display:flex;align-items:flex-start;gap:11px}.reading-ai-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#4d63e9;color:#fff;border:4px solid #cdd7ff;box-shadow:0 2px 8px #8998ed66;font-size:18px;flex:0 0 38px}.reading-ai-header h2{font-size:18px;color:#4056d3;margin:2px 0 4px}.reading-ai-header p{font-size:12px;color:#687390;margin:0}.reading-online{margin-left:auto;color:#2c9b7d;font-size:11px;white-space:nowrap}.reading-promo{margin:9px 0 12px;text-align:right;color:#62708e;font-size:12px}.reading-promo button{border:0;background:transparent;color:#3f56d5;font-size:12px;text-decoration:underline;font-weight:700}.reading-mode-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.reading-mode-card{border:1px solid #dfe4f0;background:#fff;border-radius:6px;min-height:105px;padding:12px;text-align:left;color:#697590;transition:.18s}.reading-mode-card:hover{border-color:#94a4f9;transform:translateY(-1px)}.reading-mode-card.active{border-color:#71bda7;background:#e1f3ed;box-shadow:inset 0 0 0 1px #80cdb7}.reading-mode-card svg{width:17px;height:17px;color:#7556e8;margin-bottom:7px}.reading-mode-card.active svg{color:#289b7c}.reading-mode-card strong,.reading-mode-card small{display:block}.reading-mode-card strong{font-size:13px;color:#2c3551;margin-bottom:5px}.reading-mode-card small{font-size:10px;line-height:1.5;color:#79839b}.reading-ai-scroll{flex:1;min-height:350px;overflow:auto;margin-top:14px}.ai-reading-panel{padding:3px 5px 16px}.ai-reading-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.ai-reading-heading.second{margin-top:19px;padding-top:15px;border-top:1px solid #dfe4ef}.ai-reading-heading h2{font-size:17px;color:#202b4a;margin:4px 0 0}.ai-reading-heading .eyebrow{font-size:9px}.ai-reading-heading .button{font-size:11px;padding:8px 10px}.ai-reading-lead,.reading-hint{font-size:11px;color:#7a849d;line-height:1.6;margin:0 0 12px}.reading-progress-list{display:grid;gap:7px}.reading-progress-item{display:flex;gap:10px;padding:11px 4px;border-bottom:1px solid #e0e5f0}.reading-progress-item>span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#edf0f8;color:#77829b;font-size:10px;flex:0 0 24px}.reading-progress-item.done>span{background:#d6f0e6;color:#29987c}.reading-progress-item strong{display:block;font-size:12px;color:#34405f}.reading-progress-item.done strong{color:#2b987a}.reading-progress-item p{font-size:11px;line-height:1.55;color:#77819a;margin:4px 0 0}.reading-depth{font-size:12px;color:#56627f;line-height:1.8;background:#f8f9fd;padding:10px 12px;border-left:3px solid #7589ef}.reading-matrix{width:100%;border-collapse:collapse;font-size:11px}.reading-matrix th,.reading-matrix td{padding:9px 7px;text-align:left;border-bottom:1px solid #e0e5ef;vertical-align:top}.reading-matrix th{background:#f1f3fb;color:#566289}.reading-matrix td{color:#6c7690;line-height:1.5}.reading-matrix td:first-child{font-weight:700;color:#354366}.reading-questions{display:grid;gap:8px}.reading-questions button{border:0;border-left:3px solid #7387ef;background:#f8f9fe;color:#344580;text-align:left;padding:10px 11px;font-size:11px;line-height:1.5}.reading-questions button:hover{background:#edf0ff;border-left-color:#4e63ea}.reading-messages{display:grid;gap:9px}.reading-message{display:flex;gap:8px;align-items:flex-start}.reading-message.user{justify-content:flex-end}.reading-message p{max-width:86%;margin:0;padding:9px 11px;border-radius:7px;background:#fff;color:#5d6881;font-size:11px;line-height:1.6}.reading-message.user p{background:#5368e8;color:#fff}.reading-bot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#4e63e7;color:#fff;font-size:9px;flex:0 0 24px}.reading-chat-tabs{display:flex;gap:15px;border-bottom:1px solid #dbe1ef;overflow:auto}.reading-chat-tabs button{display:flex;align-items:center;gap:4px;white-space:nowrap;border:0;border-bottom:2px solid transparent;background:transparent;color:#7c86a0;padding:10px 0 8px;font-size:11px}.reading-chat-tabs button svg{width:13px;height:13px}.reading-chat-tabs button.active,.reading-chat-tabs button:hover{color:#4a60e2;border-bottom-color:#5369e9}.reading-chat-form{background:#fff;border:1px solid #d8dfed;border-radius:7px;margin-top:9px;padding:8px 10px}.reading-chat-form textarea{width:100%;border:0;outline:0;resize:none;font-size:11px;line-height:1.6;color:#46516f}.reading-chat-form textarea::placeholder{color:#adb5c7}.reading-chat-form>div{display:flex;justify-content:space-between;align-items:center}.reading-chat-form>div span{font-size:10px;color:#7e89a3;background:#f1f3f9;border-radius:3px;padding:5px 8px}.reading-chat-form button{width:29px;height:29px;border:0;border-radius:5px;background:#b7c4ff;color:#fff}.reading-chat-form button:hover{background:#5368e7}
@media(max-width:900px){.reading-page{margin:0 -22px;grid-template-columns:1fr}.reading-paper{border-right:0;border-bottom:1px solid #dfe5f2}.reading-ai{min-height:680px}.reading-view .work-canvas{padding-left:22px;padding-right:22px}}
@media(max-width:620px){.reading-page{margin:0 -14px}.reading-paper{padding:25px 16px}.reading-paper h1{font-size:23px}.reading-paper section p{font-size:13px}.reading-ai{padding:18px 14px}.reading-mode-card{min-height:100px;padding:10px}.reading-mode-card strong{font-size:12px}.reading-mode-card small{font-size:9px}.reading-source-tools .button{flex:1;min-width:120px}.reading-view .work-canvas{padding-left:14px;padding-right:14px}}

/* Guided AI research workflow */
.topic-recommend-page{min-height:calc(100vh - 130px);background:#f7f9ff;margin:0 -34px;padding-bottom:60px;color:#243052}
body.topic-view .workspace-frame{grid-template-columns:minmax(0,1fr)}
body.topic-view .context-rail{display:none}
.topic-recommend-hero{min-height:245px;padding:42px clamp(28px,6vw,86px) 30px;background:linear-gradient(118deg,#edf1ff 0%,#f8faff 56%,#e8edff 100%);display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden}
.topic-recommend-hero:after{content:"";position:absolute;right:12%;top:-100px;width:390px;height:390px;border:1px solid rgba(72,96,225,.14);border-radius:50%;box-shadow:0 0 0 26px rgba(72,96,225,.035),0 0 0 54px rgba(72,96,225,.025)}
.topic-recommend-hero h1{font-family:"STZhongsong","Source Han Serif SC",serif;font-size:34px;line-height:1.3;margin:10px 0;color:#315bd1;position:relative;z-index:1}.topic-recommend-hero p{font-size:14px;color:#7180a4;margin:0;position:relative;z-index:1}.topic-orbit{width:118px;height:118px;border-radius:50%;background:#4562ee;color:#fff;display:grid;place-items:center;align-content:center;gap:4px;position:relative;z-index:1;box-shadow:0 14px 30px rgba(65,87,245,.22);margin-right:5%}.topic-orbit:before{content:"";position:absolute;inset:13px;border:1px solid rgba(255,255,255,.38);border-radius:50%}.topic-orbit span{font-size:28px;font-weight:700}.topic-orbit small{font-size:8px;letter-spacing:1px;opacity:.8}
.topic-query{max-width:920px;margin:-1px auto 0;padding:12px;background:#fff;border:1px solid #cdd5ff;box-shadow:0 8px 22px rgba(48,69,216,.08);display:flex;align-items:center;gap:10px;position:relative;z-index:2;border-radius:8px}.topic-query label{display:flex;align-items:center;gap:10px;flex:1;min-width:0;padding-left:8px}.topic-query label svg{width:19px;color:var(--cnki-blue);flex:0 0 auto}.topic-query input{border:0;outline:0;min-width:0;flex:1;font-size:14px;color:#2e3d63}.topic-query button{height:42px;padding:0 22px;white-space:nowrap}.topic-source-bar{max-width:920px;margin:16px auto 0;display:flex;gap:14px;align-items:center;flex-wrap:wrap;color:#8290aa;font-size:11px}.topic-warning{color:#ba7c27}.topic-empty{max-width:920px;margin:38px auto;text-align:center;display:grid;gap:8px;color:#8491ab}.topic-empty-icon{width:48px;height:48px;margin:0 auto 5px;border-radius:50%;display:grid;place-items:center;background:#e7ebff;color:#5369e9;font-size:23px}.topic-empty strong{font-size:16px;color:#46557a}.topic-results{max-width:1100px;margin:30px auto 0;padding:0 28px}.topic-results-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:16px}.topic-results-head h2{margin:6px 0 0;font-family:"STZhongsong","Source Han Serif SC",serif;font-size:24px;color:#2c3a5d}.topic-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.topic-card{background:#fff;border:1px solid #dce3f2;border-radius:8px;padding:18px 18px 15px;box-shadow:0 5px 15px rgba(44,64,125,.045);display:flex;flex-direction:column;min-height:255px}.topic-card:hover{border-color:#9eaff9;box-shadow:0 8px 20px rgba(65,87,245,.1);transform:translateY(-1px)}.topic-card-top{display:flex;align-items:center;justify-content:space-between}.topic-number{font-size:12px;font-weight:700;color:#5369e9;background:#edf0ff;padding:5px 8px;border-radius:4px}.topic-direction{font-size:11px;color:#6d7da3}.topic-card h3{font-size:17px;line-height:1.5;color:#293858;margin:14px 0 8px}.topic-card p{font-size:12px;line-height:1.75;color:#71809c;margin:0 0 11px}.topic-keywords{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.topic-keywords span{font-size:10px;color:#4f65d6;background:#f0f3ff;border:1px solid #e0e5ff;border-radius:3px;padding:4px 7px}.topic-source{font-size:10px;line-height:1.5;color:#98a2b7;border-top:1px dashed #e1e6f1;padding-top:9px;margin-top:auto}.topic-use{border:0;border-top:1px solid #edf0f6;background:transparent;color:#5369e9;font-size:12px;text-align:left;padding:12px 0 0;margin-top:10px;cursor:pointer;display:flex;align-items:center;gap:5px}.topic-use svg{width:14px}.topic-use:hover{color:#304bd0}
@media(max-width:900px){.topic-recommend-page{margin:0 -22px}.topic-recommend-hero{padding:35px 28px}.topic-recommend-hero h1{font-size:29px}.topic-query,.topic-source-bar{margin-left:22px;margin-right:22px}.topic-results{padding:0 22px}}
@media(max-width:620px){.topic-recommend-page{margin:0 -14px}.topic-recommend-hero{min-height:245px;padding:28px 20px;align-items:flex-start}.topic-recommend-hero h1{font-size:24px;max-width:260px}.topic-recommend-hero p{font-size:12px;max-width:260px}.topic-orbit{position:absolute;right:20px;bottom:20px;width:82px;height:82px}.topic-orbit span{font-size:21px}.topic-query{margin-left:14px;margin-right:14px;padding:8px}.topic-query button{padding:0 13px;height:38px;font-size:12px}.topic-query input{font-size:12px}.topic-source-bar{margin-left:14px;margin-right:14px}.topic-results{padding:0 14px;margin-top:24px}.topic-results-head{align-items:flex-start;gap:10px}.topic-results-head h2{font-size:20px}.topic-card-grid{grid-template-columns:1fr}.topic-card{min-height:0;padding:15px}.topic-card h3{font-size:16px}}
.workspace-section.is-current{min-height:calc(100vh - 190px)}
.outline-editor{background:#fff;border:1px solid var(--cnki-line);border-top:3px solid var(--cnki-blue);border-radius:8px;padding:24px;box-shadow:0 8px 24px rgba(31,42,80,.06)}
.outline-list{display:grid;gap:12px;margin-top:18px}.outline-section{border:1px solid var(--cnki-line);border-radius:7px;padding:14px 16px;background:#fbfcff}.outline-section-head{display:flex;align-items:center;gap:10px}.outline-number{width:30px;height:30px;border-radius:6px;background:#e9edff;color:var(--cnki-blue);display:grid;place-items:center;font-size:11px;font-weight:700;flex:0 0 auto}.outline-section-title{min-width:0;flex:1;border:0;background:transparent;font-size:15px;font-weight:700;color:var(--cnki-text);padding:7px 4px}.outline-section-title:focus{outline:1px solid #aebaff;border-radius:4px;background:#fff}.outline-tools{display:flex;gap:4px}.outline-tools button,.outline-point button{border:0;background:transparent;color:#8d98ae;width:28px;height:28px;border-radius:4px;cursor:pointer}.outline-tools button:hover,.outline-point button:hover{background:#eef1ff;color:var(--cnki-blue)}.outline-points{display:grid;gap:7px;margin:10px 0 7px 40px}.outline-point{display:flex;align-items:center;gap:7px}.outline-point span{color:var(--cnki-blue);font-size:18px}.outline-point input{min-width:0;flex:1;border:1px solid #dce2ee;background:#fff;border-radius:4px;padding:8px 9px;font-size:13px;color:#58647d}.outline-add-point{border:0;background:transparent;color:var(--cnki-blue);font-size:12px;cursor:pointer;margin-left:40px}.outline-actions,.generation-actions,.editor-actions{display:flex;align-items:center;gap:10px;margin-top:20px}.generation-panel{background:#fff;border:1px solid var(--cnki-line);border-top:3px solid var(--cnki-blue);border-radius:8px;padding:20px;box-shadow:0 8px 24px rgba(31,42,80,.06)}.generation-status{display:flex;align-items:center;gap:12px}.generation-status>div{display:grid;gap:3px;flex:1}.generation-status strong{font-size:15px}.generation-status small{color:var(--cnki-muted);font-size:12px}.generation-status>b{font-size:17px;color:var(--cnki-blue)}.generation-progress{height:6px;background:#edf0f8;border-radius:8px;overflow:hidden;margin:18px 0}.generation-progress i{display:block;height:100%;background:var(--cnki-blue);border-radius:inherit;transition:width .2s}.generation-paper{min-height:430px;max-height:58vh;overflow:auto;border:1px solid #dce2ee;background:#fff;padding:32px 42px;font-family:"STZhongsong","Source Han Serif SC",serif;font-size:15px;line-height:2;color:#28324a;white-space:normal}.typing-caret{display:inline-block;width:2px;height:1em;background:var(--cnki-blue);vertical-align:-2px;animation:typingBlink .9s steps(2,start) infinite}@keyframes typingBlink{50%{opacity:0}}.word-editor-shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;align-items:start}.word-outline{background:#f7f8fc;border:1px solid var(--cnki-line);border-radius:7px;padding:16px;display:grid;gap:5px;position:sticky;top:142px}.word-outline strong{font-size:13px;margin-bottom:5px}.word-outline button{text-align:left;border:0;background:transparent;color:#68738b;padding:7px 8px;border-radius:4px;font-size:12px;cursor:pointer}.word-outline button:hover{background:#e9edff;color:var(--cnki-blue)}.word-main{min-width:0}.word-toolbar{height:46px;border:1px solid var(--cnki-line);background:#fff;border-radius:7px 7px 0 0;display:flex;align-items:center;gap:4px;padding:0 10px;position:sticky;top:142px;z-index:2}.word-toolbar button{width:30px;height:30px;border:0;background:transparent;border-radius:4px;color:#56627b;font-size:16px;cursor:pointer}.word-toolbar button:hover{background:#eef1ff;color:var(--cnki-blue)}.word-toolbar span{width:1px;height:22px;background:#e2e6f0;margin:0 6px}.word-toolbar select{height:30px;border:1px solid #dce2ee;border-radius:4px;color:#56627b;background:#fff;font-size:12px}.word-paper{background:#fff;border:1px solid var(--cnki-line);border-top:0;padding:52px 72px;box-shadow:0 10px 24px rgba(31,42,80,.08);min-height:760px}.word-cover{text-align:center;border-bottom:1px solid #d9deeb;padding-bottom:22px;margin-bottom:24px}.word-cover h2{font-family:"STZhongsong","Source Han Serif SC",serif;font-size:25px;margin:0 0 10px;color:#1f2941}.word-cover small{color:var(--cnki-muted);font-size:12px}.word-section{margin-bottom:22px}.word-section h3{font-size:18px;color:#202a43;margin:0 0 10px}.word-section p{font-family:"STZhongsong","Source Han Serif SC",serif;font-size:15px;line-height:2;margin:0 0 12px;color:#28324a;outline:0}.word-section [contenteditable="true"]:focus,.word-cover [contenteditable="true"]:focus{background:#f7f8ff;box-shadow:0 0 0 2px #cbd3ff;border-radius:3px}.editor-actions{justify-content:flex-end}
@media(max-width:900px){.word-editor-shell{grid-template-columns:1fr}.word-outline{position:relative;top:auto;display:flex;overflow:auto;gap:5px}.word-outline strong{display:none}.word-outline button{white-space:nowrap}.word-toolbar{top:118px}.word-paper{padding:38px 28px}.generation-paper{padding:24px;min-height:360px}}
@media(max-width:620px){.outline-editor{padding:16px}.outline-section{padding:12px}.outline-points{margin-left:0}.outline-add-point{margin-left:0}.outline-actions,.generation-actions,.editor-actions{align-items:stretch;flex-wrap:wrap}.outline-actions .spacer,.generation-actions .spacer{display:none}.outline-actions button,.generation-actions button,.editor-actions button{width:100%;justify-content:center}.generation-paper{padding:20px 16px;font-size:14px}.word-toolbar{top:104px;overflow:auto}.word-paper{padding:28px 18px;min-height:620px}.word-cover h2{font-size:21px}.word-section h3{font-size:16px}.word-section p{font-size:14px}}

/* 全库知识问答工作区 */
.qa-page{margin:-26px -28px -60px;min-height:calc(100vh - 129px);background:#f6f8fd;color:#273047;padding-bottom:56px}
body.qa-view .workspace-frame{grid-template-columns:minmax(0,1fr)}
body.qa-view .context-rail{display:none}
.qa-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:48px clamp(28px,6vw,84px) 42px;background:#fff;border-bottom:1px solid #e2e6f0}
.qa-hero h1{font-family:"STZhongsong","Source Han Serif SC",serif;font-size:31px;line-height:1.35;margin:9px 0;color:#252d48}.qa-hero p{font-size:13px;line-height:1.8;color:#7a849b;margin:0;max-width:650px}.qa-hero-orbit{width:112px;height:112px;border-radius:50%;background:#4157f5;color:#fff;display:grid;place-items:center;align-content:center;gap:2px;flex:0 0 auto;box-shadow:0 13px 28px rgba(65,87,245,.22);position:relative}.qa-hero-orbit:before{content:"";position:absolute;inset:11px;border:1px solid rgba(255,255,255,.4);border-radius:50%}.qa-hero-orbit svg{width:24px;height:24px}.qa-hero-orbit strong{font-size:19px}.qa-hero-orbit small{font-size:9px;opacity:.82}
.qa-shell{max-width:1050px;margin:0 auto;padding:28px 28px 0;position:relative}.qa-tabs{display:flex;gap:28px;border-bottom:1px solid #dfe4ef;margin-bottom:18px}.qa-tabs button{display:inline-flex;align-items:center;gap:8px;border:0;border-bottom:3px solid transparent;background:transparent;color:#7a849d;padding:0 2px 13px;font-size:14px;cursor:pointer}.qa-tabs button svg{width:17px}.qa-tabs button:hover,.qa-tabs button.active{color:#4157f5}.qa-tabs button.active{border-bottom-color:#4157f5;font-weight:700}
.qa-composer{background:#fff;border:1px solid #cdd5ff;border-radius:9px;box-shadow:0 9px 25px rgba(50,69,158,.08);padding:15px 17px 12px}.qa-composer-top,.qa-composer-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}.qa-mode-mark{display:inline-flex;align-items:center;gap:7px;color:#4157f5;font-size:12px;font-weight:700}.qa-mode-mark svg{width:16px}.qa-index-state{color:#8d97aa;font-size:10px}.qa-index-state i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#45b79c;margin-right:5px}.qa-composer textarea{display:block;width:100%;border:0;outline:0;resize:vertical;min-height:76px;padding:16px 2px 10px;font-size:15px;line-height:1.7;color:#35405e}.qa-composer textarea::placeholder{color:#b0b7c7}.qa-hint{font-size:10px;color:#a0a8b8}.qa-composer .button{min-height:38px;padding:0 17px}
.qa-empty{text-align:center;padding:56px 0 26px;color:#818ba1}.qa-empty-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:#e9edff;color:#4157f5}.qa-empty-icon svg{width:24px}.qa-empty h2{font-size:18px;color:#3e4967;margin:0 0 7px}.qa-empty p{font-size:12px;margin:0 0 21px}.qa-suggestion-grid{max-width:780px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left}.qa-suggestion-grid button{display:flex;align-items:center;gap:10px;border:1px solid #e0e5f1;background:#fff;border-radius:6px;color:#4c5874;padding:13px 14px;font-size:12px;line-height:1.5;text-align:left;cursor:pointer}.qa-suggestion-grid button:hover{border-color:#aebaff;color:#4157f5;background:#f9faff}.qa-suggestion-grid span{font-family:Cambria,serif;color:#a5aec0}.qa-suggestion-grid svg{width:14px;margin-left:auto;color:#aeb7c8}
.qa-conversation{display:grid;gap:20px;padding-top:14px}.qa-message{display:flex;justify-content:flex-end;align-items:flex-start;gap:10px}.qa-bubble{max-width:78%;background:#5368e8;color:#fff;border-radius:10px 2px 10px 10px;padding:12px 15px;font-size:13px;line-height:1.65;box-shadow:0 5px 13px rgba(65,87,245,.16)}.qa-user-avatar,.qa-answer-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:0 0 32px;font-size:11px;font-weight:700}.qa-user-avatar{background:#e5eaff;color:#4157f5}.qa-answer{display:flex;gap:11px;align-items:flex-start}.qa-answer-avatar{background:#4157f5;color:#fff;box-shadow:0 4px 9px rgba(65,87,245,.22)}.qa-answer-body{min-width:0;flex:1;background:#fff;border:1px solid #e0e5f1;border-radius:2px 10px 10px 10px;padding:17px 18px 13px;box-shadow:0 7px 18px rgba(43,60,115,.05)}.qa-answer-meta{display:flex;align-items:center;gap:10px;margin-bottom:11px}.qa-answer-meta strong{font-size:14px;color:#34405f}.qa-answer-meta span{font-size:10px;color:#a0a9ba}.qa-answer-lead{font-size:13px;line-height:1.9;color:#4e5b77;margin:0 0 15px}.qa-evidence-list{display:grid;gap:9px}.qa-evidence{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:11px 12px;background:#f7f8fc;border-left:3px solid #8898f4}.qa-evidence>span{font-family:Cambria,serif;color:#6175e5;font-size:12px}.qa-evidence strong{font-size:12px;color:#354263}.qa-evidence p{font-size:11px;line-height:1.65;color:#6d7891;margin:5px 0}.qa-evidence small{font-size:10px;color:#9aa4b7}.qa-answer-actions{display:flex;align-items:center;gap:14px;margin-top:15px;padding-top:11px;border-top:1px solid #edf0f5;flex-wrap:wrap}.qa-answer-actions button{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:#7d879b;padding:0;font-size:11px;cursor:pointer}.qa-answer-actions button:hover{color:#4157f5}.qa-answer-actions svg{width:14px}.qa-generated{font-size:10px;color:#a1a9b8;margin-left:auto}.qa-sources-panel{position:absolute;right:28px;top:170px;width:min(440px,calc(100% - 56px));background:#fff;border:1px solid #dce2ef;border-radius:8px;box-shadow:0 18px 42px rgba(38,51,106,.18);z-index:4;padding:18px}.qa-sources-head{display:flex;align-items:flex-start;justify-content:space-between}.qa-sources-head h3{font-size:20px;margin:5px 0 0;color:#2d3855}.qa-sources-panel>p{font-size:11px;line-height:1.6;color:#8993a8;margin:8px 0 13px}.qa-source-list{display:grid;gap:1px;max-height:58vh;overflow:auto}.qa-source-list article{display:grid;grid-template-columns:26px minmax(0,1fr) 26px;gap:9px;padding:12px 0;border-top:1px solid #edf0f5}.qa-source-rank{font-family:Cambria,serif;color:#5268e5;font-size:13px;padding-top:2px}.qa-source-list strong{font-size:12px;line-height:1.5;color:#354263}.qa-source-list p,.qa-source-list small{display:block;font-size:10px;color:#8d97aa;margin:4px 0}.qa-source-list blockquote{font-size:10px;line-height:1.6;color:#66728c;background:#f7f8fc;border-left:2px solid #b8c2ff;margin:7px 0 0;padding:7px 9px}.qa-source-list article>button{border:0;background:transparent;color:#8490aa;padding:3px}.qa-source-list article>button:hover{color:#4157f5}
@media(max-width:900px){.qa-page{margin:-26px -22px -60px}.qa-hero{padding:36px 28px}.qa-shell{padding-left:22px;padding-right:22px}.qa-sources-panel{right:22px;width:calc(100% - 44px)}}
@media(max-width:620px){.qa-page{margin:-26px -14px -60px}.qa-hero{padding:28px 20px 24px;align-items:flex-start}.qa-hero h1{font-size:24px;max-width:280px}.qa-hero p{font-size:12px;max-width:280px}.qa-hero-orbit{width:76px;height:76px;position:absolute;right:24px;margin-top:105px}.qa-hero-orbit strong{font-size:15px}.qa-hero-orbit small{font-size:8px}.qa-shell{padding:22px 14px 0}.qa-tabs{gap:19px;overflow:auto}.qa-tabs button{font-size:12px;white-space:nowrap}.qa-composer{padding:12px}.qa-composer textarea{font-size:13px;min-height:86px}.qa-hint{display:none}.qa-suggestion-grid{grid-template-columns:1fr}.qa-empty{padding-top:40px}.qa-bubble{max-width:86%;font-size:12px}.qa-answer-body{padding:14px 13px}.qa-answer-meta{display:block}.qa-answer-meta span{display:block;margin-top:3px}.qa-answer-lead{font-size:12px}.qa-generated{width:100%;margin-left:0}.qa-sources-panel{position:fixed;left:14px;right:14px;top:96px;width:auto;max-height:calc(100vh - 112px)}.qa-source-list{max-height:calc(100vh - 230px)}}

/* Final workspace viewport: fixed application chrome, one predictable scroll surface. */
html,body{height:100%;min-height:0}
body.workspace-active{overflow:hidden}
body.workspace-active .app-shell{height:100dvh;min-height:0;overflow:hidden}
body.workspace-active .project-rail{height:100dvh;min-height:0}
body.workspace-active .app-main{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
body.workspace-active .topbar{flex:0 0 76px;position:relative;top:auto}
body.workspace-active .workflow-band{flex:0 0 auto;position:relative;top:auto}
body.workspace-active .workspace-frame{flex:1 1 auto;min-height:0;height:auto;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr)!important;align-items:stretch}
body.workspace-active .work-canvas{height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:56px;scroll-behavior:smooth}
body.workspace-active .context-rail{height:100%;min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden;position:relative;top:auto}
body.workspace-active .workspace-section{width:100%;max-width:none;min-height:100%;margin:0;padding-left:clamp(22px,3vw,52px);padding-right:clamp(22px,3vw,52px)}
body.workspace-active .workspace-section.is-current{min-height:100%}
body.workspace-active .topic-recommend-page,
body.workspace-active .qa-page,
body.workspace-active .reading-page{min-height:100%;height:auto;margin-left:calc(clamp(22px,3vw,52px) * -1);margin-right:calc(clamp(22px,3vw,52px) * -1)}
body.workspace-active .topic-recommend-page,
body.workspace-active .qa-page{padding-bottom:64px}
body.workspace-active .reading-page{min-height:100%;height:auto}
body.workspace-active .generation-paper,
body.workspace-active .word-paper,
body.workspace-active .table-shell,
body.workspace-active .qa-source-list,
body.workspace-active .reading-ai-scroll{overscroll-behavior:contain}

/* Standalone knowledge-base reader. It deliberately has no project context rail or workflow actions. */
body.literature-reading-view .workspace-frame{grid-template-columns:minmax(0,1fr)!important}
body.literature-reading-view .context-rail{display:none!important}
body.literature-reading-view .workflow-band{display:none}
.standalone-reading-page{min-height:calc(100vh - 130px);background:#f7f9fd;padding:28px clamp(18px,3vw,44px) 42px}
.standalone-reading-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;max-width:1480px;margin:0 auto 20px}
.standalone-reading-header h1{margin:5px 0 8px;color:#202b48;font-size:29px}
.standalone-reading-header p{margin:0;color:#66728d;font-size:13px}
.standalone-reading-boundary{display:flex;align-items:center;gap:9px;border-left:1px solid #dce3f1;padding-left:18px;color:#5667bf;font-size:12px;line-height:1.5;white-space:nowrap}
.standalone-reading-boundary svg{width:20px;height:20px}.standalone-reading-boundary small{color:#8791a8}
.standalone-reading-grid{max-width:1480px;margin:0 auto;display:grid;grid-template-columns:270px minmax(420px,1.15fr) minmax(340px,.85fr);min-height:calc(100vh - 240px);background:#fff;border:1px solid #dfe5f1;box-shadow:0 12px 28px rgba(48,65,110,.07)}
.standalone-library-panel,.standalone-ai-panel{background:#f8f9fd;padding:18px}.standalone-library-panel{border-right:1px solid #e1e6f0}.standalone-ai-panel{border-left:1px solid #e1e6f0;display:flex;flex-direction:column;min-width:0}
.standalone-panel-heading,.standalone-ai-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.standalone-panel-heading h2,.standalone-ai-heading h2{margin:0;color:#263252;font-size:17px}.standalone-panel-heading span{font-size:11px;color:#8a94aa}
.standalone-search{display:flex;align-items:center;gap:7px;height:36px;margin:14px 0;border:1px solid #dce3f0;background:#fff;padding:0 9px}.standalone-search svg{width:15px;color:#7685a6}.standalone-search input{min-width:0;width:100%;border:0;outline:0;font-size:11px;color:#3d4966}.standalone-library-list{display:grid;gap:7px;max-height:calc(100vh - 330px);overflow:auto}
.standalone-library-item{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;align-items:start;text-align:left;border:1px solid transparent;background:transparent;padding:10px 8px;color:#596581;cursor:pointer}.standalone-library-item:hover{background:#fff;border-color:#dce4f4}.standalone-library-item.active{background:#e8edff;border-color:#aebcf5;color:#3248af}.standalone-library-item>svg{width:16px;margin-top:2px}.standalone-library-item strong,.standalone-library-item small{display:block;overflow:hidden;text-overflow:ellipsis}.standalone-library-item strong{font-size:11px;white-space:nowrap}.standalone-library-item small{font-size:10px;color:#8a94a9;margin-top:4px;white-space:nowrap}.standalone-library-item b{font-size:9px;color:#2e9a7b;font-weight:600}.standalone-library-empty{padding:28px 10px;color:#8b95aa;text-align:center;font-size:12px}
.standalone-preview-panel{padding:22px;min-width:0;display:flex;flex-direction:column}.standalone-preview-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px}.standalone-preview-heading>div{min-width:0}.standalone-preview-heading span{font-size:10px;color:#7c88a3}.standalone-preview-heading h2{margin:6px 0;font-size:20px;line-height:1.45;color:#202b48}.standalone-preview-heading p{margin:0;color:#66728d;font-size:12px}.standalone-preview-heading .button{font-size:11px;white-space:nowrap}.standalone-pdf-wrap{flex:1;min-height:540px;border:1px solid #dce3ef;background:#eef2f8;overflow:hidden}.standalone-pdf{width:100%;height:100%;min-height:540px;border:0;background:#fff}.standalone-preview-loading,.standalone-no-selection{height:100%;min-height:540px;display:grid;place-items:center;align-content:center;gap:10px;color:#8190aa;font-size:12px}.standalone-preview-loading svg,.standalone-no-selection svg{width:27px;height:27px;color:#6277dd}.standalone-excerpt{margin-top:12px;border-top:1px solid #e3e8f2;padding-top:10px}.standalone-excerpt summary{cursor:pointer;color:#5365b7;font-size:11px}.standalone-excerpt p{font-size:12px;color:#66728d;line-height:1.75;max-height:150px;overflow:auto;margin:9px 0 0;white-space:pre-wrap}
.standalone-ai-heading{align-items:flex-start}.standalone-ai-heading .eyebrow{font-size:9px}.standalone-ai-dot{font-size:10px;color:#2d9b7c;white-space:nowrap}.standalone-ai-tabs{display:flex;gap:6px;margin:17px 0 12px;border-bottom:1px solid #dfe5f0}.standalone-ai-tabs button{display:flex;align-items:center;gap:4px;border:0;border-bottom:2px solid transparent;background:transparent;color:#7c87a0;padding:8px 3px;font-size:11px;cursor:pointer}.standalone-ai-tabs button svg{width:14px;height:14px}.standalone-ai-tabs button.active{border-bottom-color:#5368e7;color:#465bd3}.standalone-ai-tabs button:disabled{opacity:.45;cursor:not-allowed}.standalone-ai-scroll{flex:1;min-height:360px;overflow:auto}.standalone-ai-empty,.reading-ai-loading{display:grid;justify-items:start;align-content:center;gap:9px;min-height:330px;padding:18px;color:#66728d}.standalone-ai-empty svg,.reading-ai-loading svg{width:28px;height:28px;color:#6377df}.standalone-ai-empty strong,.reading-ai-loading strong{font-size:15px;color:#33405f}.standalone-ai-empty p,.reading-ai-loading span{font-size:12px;line-height:1.7;margin:0}.standalone-ai-status{font-size:10px;color:#2e9a7b;margin-bottom:10px}.standalone-ai-overview,.standalone-ai-answer{font-size:13px;line-height:1.8;color:#4f5c77;margin:0 0 14px}.standalone-ai-result section{border-top:1px solid #e0e6f0;padding:12px 0}.standalone-ai-result h4{font-size:13px;color:#344365;margin:0 0 7px}.standalone-ai-result ul{padding-left:17px;margin:0;display:grid;gap:6px}.standalone-ai-result li{font-size:11px;line-height:1.6;color:#69748c}.standalone-ai-evidence blockquote{margin:8px 0;padding:8px 10px;border-left:3px solid #7488e7;background:#fff;color:#6d7890;font-size:11px;line-height:1.6}.standalone-ai-takeaways{background:#f0f3ff;padding:10px 12px!important;border:0!important}.standalone-followups{display:grid;gap:6px;margin-top:14px}.standalone-followups strong{font-size:11px;color:#4b5ea7}.standalone-followups button{border:0;background:#fff;color:#5266bd;text-align:left;padding:8px;font-size:11px;cursor:pointer}.standalone-followups button:hover{background:#edf0ff}.standalone-reading-form{border:1px solid #d8dfed;background:#fff;padding:9px;margin-top:12px}.standalone-reading-form textarea{width:100%;border:0;outline:0;resize:vertical;font-size:11px;line-height:1.6}.standalone-reading-form .button{margin-top:8px;font-size:11px;width:100%}.standalone-generate{width:100%;margin-top:12px;font-size:11px}
@media(max-width:1100px){.standalone-reading-grid{grid-template-columns:230px minmax(380px,1fr) 320px}.standalone-reading-header{align-items:flex-start}.standalone-reading-header p{max-width:620px}}
@media(max-width:900px){.standalone-reading-page{padding:20px 14px 34px}.standalone-reading-header{display:block}.standalone-reading-boundary{margin-top:12px;width:max-content}.standalone-reading-grid{grid-template-columns:1fr}.standalone-library-panel{border-right:0;border-bottom:1px solid #e1e6f0}.standalone-library-list{max-height:240px;grid-template-columns:repeat(2,minmax(0,1fr))}.standalone-preview-panel{min-height:650px}.standalone-ai-panel{border-left:0;border-top:1px solid #e1e6f0;min-height:620px}}
@media(max-width:560px){.standalone-reading-header h1{font-size:24px}.standalone-library-list{grid-template-columns:1fr}.standalone-preview-panel{padding:14px;min-height:560px}.standalone-preview-heading{display:block}.standalone-preview-heading .button{margin-top:11px}.standalone-pdf-wrap,.standalone-pdf{min-height:430px}.standalone-ai-panel{padding:14px}.standalone-ai-scroll{min-height:280px}}

@media(max-width:900px){
  body.workspace-active .app-shell{height:100dvh}
  body.workspace-active .app-main{height:100dvh}
  body.workspace-active .topbar{flex-basis:66px}
  body.workspace-active .workspace-frame{display:block;overflow:hidden}
  body.workspace-active .work-canvas{height:100%;padding-bottom:46px}
  body.workspace-active .context-rail{display:none}
  body.workspace-active .workspace-section{min-height:100%;padding-left:22px;padding-right:22px}
  body.workspace-active .topic-recommend-page,
  body.workspace-active .qa-page,
  body.workspace-active .reading-page{margin-left:-22px;margin-right:-22px}
  body.workspace-active .reading-page{display:block}
}

@media(max-width:620px){
  body.workspace-active .workspace-section{padding-left:14px;padding-right:14px}
  body.workspace-active .topic-recommend-page,
  body.workspace-active .qa-page,
  body.workspace-active .reading-page{margin-left:-14px;margin-right:-14px}
}
.library-row-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.library-row-actions b{font-weight:600}.library-row-actions a,.link-button{border:0;background:none;padding:0;color:var(--blue);font:inherit;font-size:11px;cursor:pointer;text-decoration:none}.library-index-preview{margin-top:14px;padding:14px;background:#f4f8fd;border:1px solid #c9d9ec;color:var(--navy);font-size:12px;line-height:1.6}.library-index-preview p{color:var(--muted);margin:6px 0 10px}.library-index-heading{display:flex;justify-content:space-between;gap:12px}.library-index-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.library-index-grid>div{display:grid;gap:4px}.library-index-grid span{color:var(--muted)}
.library-toolbar{flex-wrap:wrap}.library-toolbar .library-stats{flex-basis:100%}.library-index-grid a{color:var(--blue);overflow-wrap:anywhere}.library-index-preview{scroll-margin-top:20px}#libraryRebuildStatus{color:var(--blue);line-height:1.6}@media(max-width:620px){.library-index-grid{grid-template-columns:1fr}.library-row-actions{max-width:110px;text-align:right}}

/* Knowledge library directory manager */
.library-modal{width:min(1160px,calc(100vw - 32px));padding:26px;overflow:auto}
.library-toolbar{padding-bottom:12px}.library-toolbar .library-stats{flex-basis:auto;min-width:360px}.library-toolbar .button{min-height:34px;padding:0 11px;font-size:11px}
#libraryRebuildStatus{display:block;margin:9px 0 0;padding:8px 10px;background:#f3f7fc;border-left:3px solid var(--blue);font-size:11px}#libraryRebuildStatus[hidden]{display:none}
.library-manager{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:460px;max-height:calc(100vh - 250px);margin-top:14px;border:1px solid var(--line);background:#fff;overflow:hidden}
.library-folders{min-width:0;background:#f5f7fa;border-right:1px solid var(--line);padding:13px 9px;overflow:auto}
.library-pane-heading,.library-document-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.library-pane-heading{height:34px;padding:0 5px 8px}.library-pane-heading strong{font-size:12px;color:var(--navy)}.library-pane-heading .icon-button{width:28px;height:28px;background:transparent}.library-pane-heading .icon-button svg{width:14px}
.library-category-form{display:grid;grid-template-columns:minmax(0,1fr) 28px 28px;gap:4px;margin:3px 4px 10px}.library-category-form input{min-width:0;height:30px;border:1px solid var(--line-dark);border-radius:4px;padding:0 8px;font-size:11px;outline:0}.library-category-form input:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(37,99,235,.1)}.library-category-form .icon-button{width:28px;height:30px}.library-category-form svg{width:13px}
.library-folder-tree{display:grid;gap:2px}.library-folder-node{display:grid}.library-folder-item{width:100%;height:34px;border:0;border-radius:4px;background:transparent;display:grid;grid-template-columns:17px minmax(0,1fr) auto;align-items:center;gap:7px;padding:0 8px 0 calc(8px + var(--folder-depth,0) * 15px);color:#56657a;text-align:left}.library-folder-item:hover{background:#e9eef5;color:var(--navy)}.library-folder-item.active{background:#e2ebfb;color:#234f96}.library-folder-item svg{width:15px;height:15px}.library-folder-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.library-folder-item b{font-size:9px;font-weight:600;color:#8390a1}
.library-documents{min-width:0;padding:14px 16px;overflow:hidden;display:flex;flex-direction:column}.library-document-heading{min-height:34px;margin-bottom:10px}.library-document-heading h2{margin:0!important;font-size:16px!important;color:var(--navy)}.library-document-heading>div>span{display:block;margin-top:3px;font-size:10px;color:var(--muted)}.library-folder-actions{display:flex;gap:6px}.library-folder-actions .icon-button{width:30px;height:30px}.library-folder-actions .icon-button svg{width:14px}.library-folder-actions .danger{color:#a44141}.library-folder-actions .danger:hover{border-color:#c96c6c;background:#fff5f5;color:#8f2e2e}
.library-document-tools{display:grid;grid-template-columns:auto auto minmax(190px,1fr) auto auto auto;align-items:center;gap:8px}.library-filter-select{height:36px;border:1px solid var(--line-dark);border-radius:4px;display:flex;align-items:center;gap:6px;padding:0 8px;color:var(--muted);font-size:10px}.library-filter-select select{max-width:105px;border:0;outline:0;background:#fff;color:var(--navy);font-size:11px}.library-search{height:36px;border:1px solid var(--line-dark);border-radius:4px;display:flex;align-items:center;gap:7px;padding:0 9px;background:#fff}.library-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px rgba(37,99,235,.1)}.library-search svg{width:14px;color:#8190a4}.library-search input{min-width:0;width:100%;border:0;outline:0;font-size:11px}.library-upload-target{height:36px;border:1px solid var(--line-dark);border-radius:4px;display:flex;align-items:center;gap:6px;padding:0 8px;color:var(--muted);font-size:10px}.library-upload-target select{max-width:150px;border:0;outline:0;background:#fff;color:var(--navy);font-size:11px}.library-document-tools .button{min-height:36px}
.library-drop-zone{height:38px;flex:0 0 auto;margin-top:8px;border:1px dashed #afbed0;background:#f8fafc;display:flex;align-items:center;justify-content:center;gap:7px;color:#718097;font-size:10px;transition:.16s ease}.library-drop-zone svg{width:15px}.library-drop-zone.dragging{border-color:var(--blue);background:#eaf2ff;color:var(--blue)}
.library-table-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding:8px 10px;background:#f7f9fc;border-bottom:1px solid var(--line);font-size:10px;color:var(--muted)}.library-table-head label{display:flex;align-items:center;gap:6px;color:var(--navy)}.library-table-head input,.library-row-check input{accent-color:var(--blue)}.library-documents .library-list{min-height:0;margin-top:0;padding-right:4px;overflow:auto}.library-row{grid-template-columns:20px 20px minmax(0,1fr) 150px;align-items:start;padding:11px;background:#fff;border-width:0 0 1px}.library-row:hover,.library-row.selected{background:#f5f8ff}.library-row>svg{width:17px;margin-top:2px}.library-row-check{padding-top:2px}.library-row-copy{min-width:0}.library-row-copy>strong{font-size:12px}.library-row-copy>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-row-folder{display:inline-flex;align-items:center;gap:4px;margin-top:6px;color:var(--muted)}.library-row-folder svg{width:12px;height:12px}.library-row-folder select{max-width:230px;border:0;background:transparent;outline:0;color:#526780;font-size:10px;cursor:pointer}.library-row-actions{min-width:0;gap:4px}.library-row-actions>b{font-size:9px}.library-row-actions>small{max-width:145px;margin:1px 0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.library-row-actions>span{display:flex;align-items:center;gap:9px}.library-delete-one{width:24px;height:24px;border:0;color:#a44141;background:transparent}.library-delete-one:hover{border-color:#e3a4a4;background:#fff5f5;color:#8f2e2e}.library-delete-one svg{width:13px;height:13px}.library-empty{margin:auto 0;background:#fafbfd}.library-index-preview{position:relative;z-index:2;max-height:260px;overflow:auto}.library-pagination{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.library-pagination label{display:flex;align-items:center;gap:4px}.library-pagination select{height:28px;border:1px solid var(--line-dark);background:#fff;border-radius:4px;font-size:10px}.library-pagination .icon-button{width:28px;height:28px}.library-pagination .icon-button svg{width:14px}
@media(max-width:840px){.library-modal{width:min(760px,calc(100vw - 20px));padding:20px 16px}.library-toolbar .library-stats{min-width:100%;flex-basis:100%}.library-manager{grid-template-columns:190px minmax(0,1fr);max-height:none}.library-document-tools{grid-template-columns:auto auto minmax(0,1fr) auto}.library-document-tools .library-search{grid-column:1/-1;grid-row:1}.library-upload-target select{max-width:110px}.library-row{grid-template-columns:20px 20px minmax(0,1fr)}.library-row-actions{grid-column:3;align-items:flex-start}.library-row-actions>small{text-align:left}}
@media(max-width:600px){.modal-layer{padding:6px}.library-modal{width:100%;max-height:calc(100vh - 12px);padding:18px 12px}.library-toolbar{display:grid;grid-template-columns:1fr 1fr}.library-toolbar .library-stats{grid-column:1/-1}.library-toolbar .button{width:auto}.library-manager{display:block;max-height:none}.library-folders{max-height:190px;border-right:0;border-bottom:1px solid var(--line)}.library-documents{padding:12px}.library-document-tools{grid-template-columns:1fr 1fr}.library-document-tools .library-search{grid-column:1/-1;grid-row:auto}.library-filter-select{justify-content:space-between}.library-filter-select select{max-width:120px}.library-upload-target{grid-column:1/-1;justify-content:space-between}.library-upload-target select{max-width:65vw}.library-document-tools .button{width:100%}.library-document-tools .button:nth-last-child(1){grid-column:1/-1}.library-drop-zone{height:auto;min-height:44px;padding:6px 12px;text-align:center}.library-documents .library-list{max-height:430px}.library-row-folder select{max-width:58vw}.library-row-actions>span{gap:6px}.library-pagination{justify-content:center;flex-wrap:wrap}}

.library-documents .library-list{flex:1 1 auto}
.library-pagination{flex:0 0 auto}
.library-documents{min-height:0;height:100%}
.library-manager{height:min(650px,calc(100vh - 250px));grid-template-rows:minmax(0,1fr)}
@media(max-width:600px){.library-manager{height:auto}}

/* 鹦鹉首页：样式仅作用于登录入口。 */
@font-face{font-family:'FreeSans';font-style:normal;font-weight:400;font-display:block;src:url('/assets/parrot/regular.woff2') format('woff2');}
@font-face{font-family:'FreeSans';font-style:normal;font-weight:700;font-display:block;src:url('/assets/parrot/bold.woff2') format('woff2');}
@font-face{font-family:'Eloquia';font-style:normal;font-weight:200 800;font-display:block;src:url('/assets/parrot/display.woff2') format('woff2-variations');}
#loginPortal{--W:1464; --H:949; --photoW:836; --paneW:628; --cardW:613; --cardH:922;
--badge-fs:13.60px; --badge-fw:400; --badge-ls:-0.163px; --badge-gap:10px; --badge-dy:0px; --badge-ws:0px;
--badge-left:34px; --badge-top:684px;
--hl-lh:1; --hl-wght:578;
--hl1-fs:69.14px; --hl1-ls:-1.936px; --hl1-ws:0px; --hl1-left:33.00px; --hl1-top:750.02px;
--hl2-fs:68.95px; --hl2-ls:-1.931px; --hl2-left:32.00px; --hl2-top:831.01px;
--h1-top:65.00px; --h1-fs:42.55px; --h1-ls:-2.553px; --h1-ws:1.300px; --h1-wght:584;
--sub-top:120.00px; --sub-fs:20.41px; --sub-ls:-0.245px; --sub-ws:-2.000px; --sub-fw:400; --sub-fwb:700;
--fieldpad:19px;
--eph-fs:15.68px; --eph-ls:-0.188px; --eph-left:17.0px; --eph-fw:400; --eph-ws:0px;
--pph-fs:17.29px; --pph-ls:-0.698px; --pph-left:18px; --pph-fw:400;
--login-fs:16.38px; --login-fw:400; --login-ls:0.200px; --login-gap:10px; --login-dy:0.00px; --login-padl:-12.00px;
--arrow-w:13.2px;
--div-top:477px; --or-fs:11.5px; --or-fw:700; --or-ls:0.8px; --or-dy:2.00px; --or-dx:0.00px;
--or-line-l:205px; --or-line-r:204px;
--g-gap:17px; --g-icon:18.5px;
--gt-fs:18.10px; --gt-fw:400; --gt-ls:-0.217px; --gt-ws:-1.000px; --gt-dy:1.00px;
--bt-top:611.00px; --bt-fs:16.37px; --bt-fw:400; --bt-ls:-0.196px; --bt-ws:-2.060px; --bt-fwb:700; --bt-uo:3px;
--card-shadow:1px 10px 14px rgba(10,14,20,0.14), 0 1px 3px rgba(10,14,20,0.05);
--cs:1;
--ink:#000;          --h1-color:#2c3343;   --sub-grey:#797979;
--badge-bg:#2f2a27;  --ph:#606060;         --or:#5a5a5b;
--gtext:#232424;     --bottom:#0a0a0a;
--btn1:#283139;      --btn2:#293340;
--inputFill:#fafafa; --inputBorder:#acacae; --pwFill:#f9f9f9;
--gBorder:#c8c8ca;   --divider:#b1b1b2;     --page:#fefefe;
 --mobile-hero-h:clamp(244px,34svh,304px);}
#loginPortal *{box-sizing:border-box;}
#loginPortal,#loginPortal{height:100%;background:var(--page);margin:0;}
#loginPortal{font-family:'FreeSans',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision;overflow:hidden;}
#loginPortal button,#loginPortal input{font:inherit;}
#loginPortal button{cursor:pointer;}
#loginPortal p,#loginPortal h1{margin:0;}
#loginPortal button{padding:0;}
#loginPortal .stage{position:fixed;inset:0;overflow:hidden;}
#loginPortal .photo{position:absolute;left:0;top:0;height:100%;width:57.1038%;overflow:hidden;}
#loginPortal .photo-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:100% 50%;display:block;-webkit-user-drag:none;}
#loginPortal .photo-img--wide{display:none;}
#loginPortal .scrim{position:absolute;inset:0;display:none;background:linear-gradient(180deg,rgba(7,10,13,.02) 18%,rgba(7,10,13,.12) 48%,rgba(7,10,13,.78) 100%);}
#loginPortal .hero{position:absolute;left:0;bottom:0;width:836px;height:949px;transform-origin:left bottom;pointer-events:none;}
#loginPortal .hero>*{pointer-events:auto;}
#loginPortal .badge{position:absolute;left:var(--badge-left);top:var(--badge-top);display:inline-flex;align-items:center;gap:var(--badge-gap);height:37px;padding:0 16px 0 19px;border-radius:999px;background:var(--badge-bg);backdrop-filter:blur(7px) saturate(120%);box-shadow:0 1px 2px rgba(0,0,0,.18),0 6px 18px rgba(0,0,0,.14);color:white;white-space:nowrap;font-size:var(--badge-fs);font-weight:var(--badge-fw);letter-spacing:var(--badge-ls);word-spacing:var(--badge-ws);}
#loginPortal .badge svg{width:17px;height:16.27px;position:relative;top:-1px;}
#loginPortal .badge span{transform:translateY(var(--badge-dy));}
#loginPortal .hl{position:absolute;font-family:'Eloquia',sans-serif;font-variation-settings:'wght' var(--hl-wght);line-height:var(--hl-lh);color:var(--ink);white-space:nowrap;}
#loginPortal #hl1{left:var(--hl1-left);top:var(--hl1-top);font-size:var(--hl1-fs);letter-spacing:var(--hl1-ls);word-spacing:var(--hl1-ws);}
#loginPortal #hl2{left:var(--hl2-left);top:var(--hl2-top);font-size:var(--hl2-fs);letter-spacing:var(--hl2-ls);}
#loginPortal .pane{position:absolute;left:57.1038%;right:0;top:0;bottom:0;}
#loginPortal .card{position:absolute;left:1px;top:14px;width:613px;height:922px;border-radius:26px;overflow:hidden;background:rgba(254,254,254,.90);backdrop-filter:blur(28px) saturate(160%);border:1px solid rgba(0,0,0,.036);box-shadow:var(--card-shadow);}
#loginPortal .card-in{position:absolute;width:613px;height:922px;transform-origin:left top;}
#loginPortal .col{position:absolute;left:62px;width:488px;}
#loginPortal .center{text-align:center;}
#loginPortal #h1{top:var(--h1-top);font-family:'Eloquia',sans-serif;font-variation-settings:'wght' var(--h1-wght);font-size:var(--h1-fs);letter-spacing:var(--h1-ls);word-spacing:var(--h1-ws);color:var(--h1-color);line-height:1.2;}
#loginPortal #sub{top:var(--sub-top);font-size:var(--sub-fs);letter-spacing:var(--sub-ls);word-spacing:var(--sub-ws);font-weight:var(--sub-fw);color:var(--sub-grey);line-height:1.3;}
#loginPortal #sub b{font-weight:var(--sub-fwb);color:#000;}
#loginPortal .field{position:absolute;left:62px;width:489px;display:flex;align-items:center;border-radius:12px;}
#loginPortal #email{top:203px;height:61px;background:var(--inputFill);border:1.5px solid var(--inputBorder);}
#loginPortal #pw{top:273.5px;height:59px;background:var(--pwFill);border:0;}
#loginPortal .field input{width:100%;height:100%;border:0;background:transparent;border-radius:inherit;min-width:0;color:var(--h1-color);padding:0 var(--fieldpad);}
#loginPortal input::placeholder{opacity:1;color:var(--ph);}
#loginPortal #email input{font-size:var(--eph-fs);letter-spacing:var(--eph-ls);padding-left:var(--eph-left);font-weight:var(--eph-fw);word-spacing:var(--eph-ws);}
#loginPortal #pw input{font-size:var(--pph-fs);letter-spacing:var(--pph-ls);padding-left:var(--pph-left);font-weight:var(--pph-fw);}
#loginPortal #loginBtn{position:absolute;left:62px;top:366px;width:489px;height:65.5px;border:0;border-radius:999px;background:linear-gradient(180deg,var(--btn1) 0%,var(--btn2) 100%);color:#fff;display:flex;align-items:center;justify-content:center;gap:var(--login-gap);padding-left:var(--login-padl);padding-right:4px;box-shadow:0 8px 20px rgba(18,26,34,.16),0 2px 5px rgba(18,26,34,.10);font-size:var(--login-fs);font-weight:var(--login-fw);letter-spacing:var(--login-ls);transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .18s ease,filter .18s ease;}
#loginPortal #loginBtn span{margin-left:var(--login-padl);transform:translateY(var(--login-dy));}
#loginPortal #loginBtn svg{width:var(--arrow-w);height:var(--arrow-w);fill:none;}
#loginPortal #loginBtn:hover{filter:brightness(1.12);}
#loginPortal #loginBtn:active{transform:translateY(1px);}
#loginPortal .divider{position:absolute;left:63px;top:var(--div-top);width:487px;display:flex;align-items:center;justify-content:center;}
#loginPortal .divider i{height:1.5px;background:var(--divider);}
#loginPortal .divider i:first-child{flex:0 0 var(--or-line-l);}
#loginPortal .divider i:last-child{flex:0 0 var(--or-line-r);}
#loginPortal .divider b{flex:1 1 auto;text-align:center;color:var(--or);font-size:var(--or-fs);font-weight:var(--or-fw);letter-spacing:var(--or-ls);transform:translate(var(--or-dx),var(--or-dy));}
#loginPortal #gBtn{position:absolute;left:62px;top:535px;width:489px;height:59.5px;border:1.5px solid var(--gBorder);border-radius:999px;background:rgba(255,255,255,.92);box-shadow:0 1px 2px rgba(0,0,0,.03);display:flex;align-items:center;justify-content:center;gap:var(--g-gap);color:var(--gtext);transition:background .18s ease,box-shadow .18s ease,transform .18s cubic-bezier(.2,.7,.3,1);}
#loginPortal #gBtn svg{width:var(--g-icon);height:var(--g-icon);}
#loginPortal #gBtn span{font-size:var(--gt-fs);font-weight:var(--gt-fw);letter-spacing:var(--gt-ls);word-spacing:var(--gt-ws);transform:translateY(var(--gt-dy));}
#loginPortal #gBtn:hover{background:#fff;box-shadow:0 3px 10px rgba(0,0,0,.07);}
#loginPortal #gBtn:active{transform:translateY(1px);}
#loginPortal #bottom{position:absolute;left:62px;width:489px;top:var(--bt-top);text-align:center;font-size:var(--bt-fs);font-weight:var(--bt-fw);letter-spacing:var(--bt-ls);word-spacing:var(--bt-ws);color:var(--bottom);}
#loginPortal #bottom a{color:#000;font-weight:var(--bt-fwb);text-decoration:underline;text-underline-offset:var(--bt-uo);text-decoration-thickness:2px;}
#loginPortal :focus-visible{outline:2px solid #2b6cb0;outline-offset:2px;}
#loginPortal.tabport .photo-img--tall{display:none;}
#loginPortal.tabport .photo-img--wide{display:block;object-position:50% 50%;}
#loginPortal.tabport .hero{height:auto;width:auto;right:var(--tp-side);left:var(--tp-side);bottom:var(--tp-hero-b);display:flex;flex-direction:column;gap:var(--tp-hero-gap);transform:none;}
#loginPortal.tabport .badge{position:relative;left:auto;top:auto;align-self:flex-start;transform-origin:left top;scale:var(--badge-k);margin-bottom:calc(37px * (var(--badge-k) - 1));}
#loginPortal.tabport .hl-wrap{position:relative;}
#loginPortal.tabport .hl{position:static;white-space:normal;font-size:var(--tp-hero-fs)!important;letter-spacing:-.028em!important;line-height:var(--tp-hero-lh);color:#000;}
#loginPortal.tabport #hl1::after{content:' ';}
#loginPortal.tabport .card-in{inset:0;width:auto;height:auto;transform:none;}
#loginPortal.tabport .col,#loginPortal.tabport .field,#loginPortal.tabport #loginBtn,#loginPortal.tabport #gBtn,#loginPortal.tabport #bottom{left:var(--tp-pad);width:calc(100% - 2 * var(--tp-pad));}
#loginPortal.tabport #h1{top:var(--tp-h1-top);font-size:var(--tp-h1-fs);letter-spacing:calc(var(--h1-ls) / var(--h1-fs) * var(--tp-h1-fs));}
#loginPortal.tabport #sub{top:var(--tp-sub-top);font-size:var(--tp-sub-fs);letter-spacing:calc(var(--sub-ls) / var(--sub-fs) * var(--tp-sub-fs));}
#loginPortal.tabport #email{top:var(--tp-em-top);height:var(--tp-em-h);border-radius:var(--tp-em-r);}
#loginPortal.tabport #pw{top:var(--tp-pw-top);height:var(--tp-pw-h);border-radius:var(--tp-em-r);}
#loginPortal.tabport .field input{font-size:var(--tp-eph-fs)!important;padding-left:var(--tp-eph-pad)!important;}
#loginPortal.tabport #loginBtn{top:var(--tp-btn-top);height:var(--tp-btn-h);font-size:var(--tp-btn-fs);gap:var(--tp-btn-gap);}
#loginPortal.tabport #loginBtn svg{width:var(--tp-arrow);height:var(--tp-arrow);}
#loginPortal.tabport .divider{left:var(--tp-pad);width:calc(100% - 2 * var(--tp-pad));top:var(--tp-div-top);}
#loginPortal.tabport .divider i{flex:1;height:var(--tp-div-h);}
#loginPortal.tabport .divider b{flex:0;padding:0 var(--tp-or-pad);font-size:var(--tp-or-fs);}
#loginPortal.tabport #gBtn{top:var(--tp-g-top);height:var(--tp-g-h);gap:var(--tp-g-gap);}
#loginPortal.tabport #gBtn svg{width:var(--tp-g-icon);height:var(--tp-g-icon);}
#loginPortal.tabport #gBtn span{font-size:var(--tp-gt-fs);letter-spacing:calc(var(--gt-ls) / var(--gt-fs) * var(--tp-gt-fs));}
#loginPortal.tabport #bottom{top:var(--tp-bt-top);font-size:var(--tp-bt-fs);}
@media(max-width:699px){#loginPortal{height:auto;min-height:100%;overflow-y:auto;background:#fff;}
#loginPortal .stage{position:relative;display:flex;flex-direction:column;min-height:100svh;overflow:hidden;}
#loginPortal .photo{position:relative;width:100%;height:var(--mobile-hero-h);flex:none;}
#loginPortal .photo-img--tall{display:none;}
#loginPortal .photo-img--wide{display:block;object-position:64% 48%;transform:scale(1.015);}
#loginPortal .scrim{display:block;}
#loginPortal .hero{left:24px;right:24px;bottom:54px;width:auto;height:auto;transform:none;}
#loginPortal .badge{position:relative;left:auto;top:auto;height:31px;padding:0 12px;background:rgba(24,27,30,.82);box-shadow:0 4px 16px rgba(0,0,0,.18);font-size:11px;gap:8px;margin-bottom:17px;}
#loginPortal .badge svg{width:14px;height:14px;}
#loginPortal .hl-wrap{display:flex;flex-direction:column;gap:6px;}
#loginPortal .hl,#loginPortal #hl1,#loginPortal #hl2{position:static;color:#fff;font-size:clamp(30px,8.8vw,38px);letter-spacing:-.035em;line-height:.96;text-shadow:0 2px 18px rgba(0,0,0,.32);white-space:normal;}
#loginPortal .pane{position:relative;inset:auto;width:100%;}
#loginPortal .card{position:relative;inset:auto;width:100%;height:auto;margin:-28px 0 0;border-radius:28px 28px 0 0;background:#fff;border:0;box-shadow:0 -10px 28px rgba(20,28,36,.10);min-height:calc(100svh - var(--mobile-hero-h) + 28px);}
#loginPortal .card-in{position:relative;width:100%;height:auto;max-width:500px;margin:0 auto;padding:36px clamp(24px,7vw,38px) max(30px,env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:center;transform:none;}
#loginPortal .card-in>*{position:static!important;width:100%!important;}
#loginPortal #h1{font-size:clamp(31px,8.8vw,38px);letter-spacing:-.06em;}
#loginPortal #sub{font-size:15px;word-spacing:-1px;margin:12px 0 27px;}
#loginPortal #email,#loginPortal #pw{height:56px;flex:none;}
#loginPortal #pw{margin-top:12px;}
#loginPortal .field input,#loginPortal #email input,#loginPortal #pw input{font-size:16px;letter-spacing:-.2px;}
#loginPortal #loginBtn{height:58px;margin-top:25px;flex:none;}
#loginPortal .divider{margin:26px 0;}
#loginPortal .divider i:first-child,#loginPortal .divider i:last-child{flex:1;}
#loginPortal .divider b{flex:0;padding:0 21px;}
#loginPortal #gBtn{height:56px;flex:none;}
#loginPortal #gBtn span{font-size:16px;}
#loginPortal #bottom{font-size:14px;margin-top:22px;word-spacing:-1px;}
}
@media(max-width:370px){#loginPortal{--mobile-hero-h:232px;}
#loginPortal .hero{left:20px;right:20px;}
#loginPortal .hl,#loginPortal #hl1,#loginPortal #hl2{font-size:30px;}
#loginPortal .card-in{padding:30px 20px max(26px,env(safe-area-inset-bottom));}
}
@media(max-width:699px) and (max-height:520px) and (orientation:landscape){#loginPortal{--mobile-hero-h:208px;}
#loginPortal .card-in{justify-content:flex-start;}
}
#loginPortal.entry-pending :is(.card,.badge,#hl1,#hl2,#h1,#sub,#email,#pw,#loginBtn,.divider,#gBtn,#bottom){opacity:0;will-change:transform,opacity,clip-path;}
#loginPortal.entry-pending .card{transform:translateY(12px) scale(.988);}
#loginPortal.entry-pending .badge{transform:translateY(8px);}
#loginPortal.entry-pending :is(#hl1,#hl2){transform:translateY(16px);clip-path:inset(100% 0 0 0);}
#loginPortal.entry-pending :is(#h1,#sub){transform:translateY(10px);}
#loginPortal.entry-pending :is(#email,#pw,#loginBtn,.divider,#gBtn,#bottom){transform:translateY(8px);}
@media(max-width:699px){#loginPortal.entry-pending .card{transform:translateY(14px);}
#loginPortal.entry-pending :is(#hl1,#hl2){transform:translateY(12px);}
}
@media(prefers-reduced-motion:reduce){#loginPortal *{transition:none!important;animation:none!important;}
#loginPortal.entry-pending :is(.card,.badge,#hl1,#hl2,#h1,#sub,#email,#pw,#loginBtn,.divider,#gBtn,#bottom){opacity:1!important;transform:none!important;clip-path:none!important;will-change:auto!important;}
}


body.login-active{background:#fefefe;overflow:hidden}
#loginPortal{position:relative;min-height:100svh;font-family:"Microsoft YaHei UI","Microsoft YaHei",sans-serif;letter-spacing:0;color:#2c3343}
#loginPortal .hl{font-family:"Microsoft YaHei",sans-serif;font-weight:600;letter-spacing:-2px}
#loginPortal #hl1,#loginPortal #hl2{font-size:58px;line-height:1.15}
#loginPortal .card-in{padding:64px 62px 40px;display:flex;flex-direction:column;gap:0}
#loginPortal #h1,#loginPortal #sub,#loginPortal #bottom{position:static;width:auto;letter-spacing:0;word-spacing:0}
#loginPortal #h1{font-family:inherit;font-weight:600;font-size:40px;line-height:1.3}
#loginPortal #sub{margin:14px 0 30px;font-size:17px;line-height:1.6}
#loginPortal .login-tabs{display:flex;border-bottom:1px solid #e3e3e3;margin-bottom:24px;gap:30px}
#loginPortal .login-tabs button{border:0;background:transparent;color:#797979;padding:10px 0 14px;font-size:17px;border-bottom:2px solid transparent}
#loginPortal .login-tabs button[aria-selected="true"]{color:#283139;border-bottom-color:#283139;font-weight:600}
#loginPortal #loginForm{display:flex;flex-direction:column;gap:14px;margin:0}
#loginPortal .field,#loginPortal #email,#loginPortal #pw{position:relative;left:auto;top:auto;width:100%;height:59px;margin:0;flex:none;background:#fafafa;border:1px solid #acacae;border-radius:12px}
#loginPortal .field input{font-size:16px;letter-spacing:0;padding:0 18px;font-family:inherit}
#loginPortal #pw input{padding-right:54px}
#loginPortal #loginPasswordToggle{position:absolute;right:12px;background:none;border:0;padding:8px;color:#606060}
#loginPortal .captcha-row{display:flex;gap:12px;height:59px}
#loginPortal .captcha-row .field{flex:1;height:100%;min-width:0}
#loginPortal #refreshCaptcha{width:148px;flex:none;border:1px solid #acacae;background:#f2f3f1;border-radius:12px;overflow:hidden;padding:0}
#loginPortal #captchaImage{display:block;width:100%;height:100%;object-fit:contain}
#loginPortal .login-form-options{display:flex;align-items:center;font-size:14px;color:#797979;margin:0;padding:0}
#loginPortal .login-form-options label{display:flex;align-items:center;gap:8px}
#loginPortal #loginRemember{accent-color:#283139}
#loginPortal #loginError{min-height:24px;margin:0;color:#97483f;font-size:14px;line-height:1.6}
#loginPortal #loginBtn{position:static;width:100%;height:65px;margin:0;padding:0;font-size:17px;letter-spacing:0;flex:none}
#loginPortal #loginBtn span{margin:0;transform:none}
#loginPortal #bottom{margin-top:24px;font-size:15px;line-height:1.8}
#loginPortal #registerLink{color:#283139;font-weight:600}
#loginPortal #smsLoginPanel{display:flex;flex-direction:column;gap:14px}
#loginPortal #sendSmsCode{border:0;background:none;white-space:nowrap;padding:0 16px;color:#283139;font-size:14px}
#loginPortal .sms-notice{color:#797979;font-size:14px;line-height:1.7;margin:0}
#loginPortal #loginNotice{font-size:14px;line-height:1.7;text-align:center;color:#97483f;min-height:24px;margin:12px 0 0}
#loginPortal.tabport .card-in{inset:0;width:100%;height:100%;padding:30px var(--tp-pad);overflow-y:auto}
#loginPortal.tabport #h1{font-size:30px}
#loginPortal.tabport #sub{margin:8px 0 14px;font-size:15px}
#loginPortal.tabport .login-tabs{margin-bottom:16px}
#loginPortal.tabport .field,#loginPortal.tabport #email,#loginPortal.tabport #pw{position:relative;left:auto;top:auto;width:100%;height:59px;border-radius:12px}
#loginPortal.tabport #loginBtn{position:static;width:100%;height:58px}
#loginPortal.tabport #bottom{position:static;width:100%;font-size:15px}
#loginPortal.tabport #h1,#loginPortal.tabport #sub{width:100%;left:auto}
#loginPortal.tabport .card-in{padding-top:22px;padding-bottom:22px}
#loginPortal.tabport #sub{margin:8px 0 10px}
#loginPortal.tabport .login-tabs{margin-bottom:12px}
#loginPortal.tabport .login-tabs button{padding:8px 0 10px;font-size:16px}
#loginPortal.tabport .field,#loginPortal.tabport #email,#loginPortal.tabport #pw,#loginPortal.tabport .captcha-row{height:52px}
#loginPortal.tabport #loginForm{gap:12px}
#loginPortal.tabport #loginError{min-height:20px}
#loginPortal.tabport #bottom{margin-top:16px}
#loginPortal.tabport .hl-wrap{width:auto!important}
#loginPortal.tabport #hl1,#loginPortal.tabport #hl2{font-size:clamp(28px,5vw,44px)!important;line-height:1.2}
@media(max-width:699px){body.login-active{overflow-y:auto}#loginPortal .card-in{padding:32px clamp(24px,7vw,38px) 28px;gap:0}#loginPortal #h1{font-size:32px}#loginPortal #sub{font-size:15px;margin:10px 0 18px}#loginPortal .login-tabs{gap:24px;margin-bottom:20px}#loginPortal .login-tabs button{font-size:16px}#loginPortal #hl1,#loginPortal #hl2{font-size:clamp(27px,7.5vw,36px);line-height:1.15;letter-spacing:-1px}#loginPortal #loginBtn{height:58px}#loginPortal #refreshCaptcha{width:120px}#loginPortal #bottom{margin-top:18px}}

/* Functional-page typography and spacing; existing visual theme is preserved. */
.app-shell,.modal-layer{font-size:16px;line-height:1.6}
.app-shell :is(.stage-title h1,.home-hero h1,.topic-recommend-hero h1,.standalone-reading-header h1,.qa-hero h1,.defense-head h1){font-size:30px;line-height:1.45}
.app-shell :is(.eyebrow,.stage-index,.rail-brand small,.stage-title p,.topic-orbit small,.standalone-reading-boundary,.reading-ai-loading>span,.reading-hint,.reading-promo,.reading-mode-card small,.confirm-bar small,.knowledge-summary>p),.modal-layer .eyebrow{display:none}
.app-shell .rail-brand strong{font-size:16px;white-space:nowrap}
.app-shell :is(.stage-title,.standalone-reading-header,.qa-hero,.defense-head){margin-bottom:26px}
.app-shell :is(.button,.primary-run,.home-search button),.modal-layer .button{font-size:15px;min-height:44px;line-height:1.5}
.app-shell :is(.form-sheet,.outline-editor,.generation-panel,.export-sheet,.report-editor),.modal-layer .project-modal{padding:28px}
.app-shell .form-grid,.modal-layer .form-grid{gap:22px}
.app-shell .field>span,.modal-layer .field>span{font-size:15px}
.app-shell .field :is(input,textarea,select),.modal-layer .field :is(input,textarea,select){font-size:16px;line-height:1.6;padding:12px 14px}
.sheet-heading{padding-bottom:18px;margin-bottom:22px}.sheet-heading h2{font-size:20px}
.home-search input{font-size:16px}.home-kpis{gap:16px;margin:24px 0 30px}.home-kpis>div{padding:18px}.home-kpis span{font-size:14px}
.topic-query input,.qa-composer textarea{font-size:16px}
.topic-card-grid{gap:20px}.topic-card{padding:22px}.topic-card h3{font-size:20px}.topic-card p{font-size:16px}
.topic-keywords span,.topic-number{font-size:13px}.topic-direction,.topic-source,.topic-source-bar{font-size:14px}.topic-use{font-size:15px}
.outline-section{padding:18px}.outline-section-title{font-size:18px}.outline-point input{font-size:16px;padding:10px}.outline-add-point{font-size:15px}
.app-shell :is(.paper-title strong,.document-name strong,.evidence-card strong){font-size:16px}
.app-shell :is(.paper-title small,.document-name small,.source-badge,.status-badge,.doc-state,.metric span,.score-reason){font-size:14px}
.citation-table th{font-size:14px}.citation-table td{font-size:15px;padding:16px 12px}
.query-box code{font-size:14px}.query-box span{font-size:13px}.source-note{font-size:14px}
.document-row{padding:14px 12px}.document-row select{font-size:14px}
.report-paragraph,.word-section p,.generation-paper{font-size:16px}.word-outline button{font-size:14px}
.export-file strong{font-size:16px}.export-file small{font-size:14px}
.standalone-panel-heading h2,.standalone-ai-heading h2{font-size:20px}
.standalone-library-item{padding:12px 8px}.standalone-library-item strong{font-size:15px}.standalone-library-item small{font-size:13px}.standalone-library-item b{font-size:12px}
.standalone-search input,.standalone-reading-form textarea{font-size:16px}
.standalone-ai-tabs{gap:6px;flex-wrap:wrap}.standalone-ai-tabs button{font-size:14px;padding:10px 6px}
.standalone-ai-heading{gap:8px;flex-wrap:wrap}
.standalone-ai-dot,.standalone-preview-heading span,.standalone-preview-heading p,.standalone-panel-heading span{font-size:13px}
.standalone-ai-result,.standalone-ai-result p,.standalone-ai-result li,.standalone-excerpt p{font-size:16px;line-height:1.8}
.standalone-ai-empty strong{font-size:16px}.standalone-library-empty{font-size:14px}
.qa-tabs button{font-size:16px}.qa-index-state,.qa-answer-meta span,.qa-evidence small{font-size:14px}
.qa-suggestion-grid button{font-size:15px;padding:18px}.qa-answer-lead,.qa-evidence p,.qa-bubble{font-size:16px;line-height:1.8}.qa-evidence strong{font-size:16px}.qa-answer-actions button{font-size:14px}.qa-generated{font-size:13px}
.defense-steps button strong{font-size:16px}.defense-panel-title h2{font-size:24px}
.defense-page textarea{font-size:16px;line-height:1.8}.defense-mode-switch button{font-size:15px}
.defense-state,.defense-score small,.defense-experts small,.defense-judge small{font-size:14px}
.defense-generated-copy,.defense-details p,.defense-result span,.defense-opening>div>strong,.defense-experts article strong,.defense-judge strong{font-size:16px}.defense-guide li{font-size:15px}
.modal-layer :is(.project-modal h1,.library-modal h1){font-size:28px;line-height:1.45;margin-bottom:24px}
.library-toolbar{gap:12px;flex-wrap:wrap}.library-document-tools{gap:10px}
.library-search,.library-filter-select,.library-upload-target{height:42px;font-size:14px}
.library-search input,.library-filter-select select,.library-upload-target select{font-size:14px}
.library-folder-item{height:42px}.library-folder-item span{font-size:14px}.library-folder-item b{font-size:13px}
.library-pane-heading strong{font-size:16px}.library-document-heading h2{font-size:20px!important}
.library-document-heading>div>span,.library-stats,.library-table-head,.library-pagination,.library-drop-zone{font-size:14px}
.library-row{padding:14px 12px}.library-row-copy>strong{font-size:15px}.library-row small,.library-row-actions>b,.library-row-folder select{font-size:13px}
.library-row-actions a,.library-row-actions .link-button{font-size:14px}.library-pagination select{font-size:14px}.library-index-preview{font-size:14px}
.library-drop-zone{height:auto;min-height:44px;padding:8px}
@media(max-width:1180px){.standalone-ai-tabs button{font-size:13px;padding:9px 4px}.library-toolbar .button{font-size:14px}}

/* ── Demo 技术核心 ─────────────────────────────────────────────────────────── */
.demo-page{padding:32px;max-width:1200px;margin:0 auto}
.demo-hero{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;padding:24px;background:linear-gradient(135deg,#f0f4ff 0%,#e8f4f8 100%);border-radius:16px}
.demo-hero h1{font-size:24px;margin:8px 0 0}
.demo-hero .eyebrow{font-size:12px;letter-spacing:2px;color:#6366f1;font-weight:600}
.demo-status-badge{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.demo-status-badge i{width:18px;height:18px}
.demo-status-badge span{font-weight:600;font-size:14px}
.demo-status-badge small{font-size:12px;color:#64748b}
.demo-shell{display:flex;flex-direction:column;gap:24px}
.demo-search{display:flex;gap:12px;align-items:center}
.demo-search-input{flex:1;display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}
.demo-search-input i{width:20px;height:20px;color:#94a3b8}
.demo-search-input input{flex:1;border:none;outline:none;font-size:16px;background:transparent}
.demo-search-row{display:flex;gap:12px;align-items:center}
.demo-search-options{display:flex;gap:16px;align-items:center;margin-top:8px;flex-wrap:wrap}
.demo-kb-selector,.demo-mode-selector{display:flex;align-items:center;gap:6px;font-size:13px;color:#64748b}
.demo-kb-selector label,.demo-mode-selector label{font-weight:500}
.demo-kb-selector select,.demo-mode-selector select{padding:6px 10px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;background:#fff;cursor:pointer}
.demo-kb-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#eff6ff;color:#3b82f6;border-radius:6px;font-size:12px;font-weight:500}
.demo-evidence-card.demo-duplicate{opacity:0.75;border-left:3px solid #f59e0b}
.demo-dup-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;background:#fef3c7;color:#92400e;border-radius:4px;font-size:11px;font-weight:500;margin-left:8px}
.demo-dup-badge i{width:12px;height:12px}
.demo-page-ref{display:inline-flex;align-items:center;gap:3px}
.demo-page-ref i{width:14px;height:14px}
.demo-evidence-source{margin-top:6px;font-size:12px;color:#94a3b8}
.demo-source-label{font-family:monospace}
.demo-no-result{text-align:center;padding:48px 24px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}
.demo-no-result-icon{margin-bottom:16px;color:#94a3b8}
.demo-no-result-icon i{width:48px;height:48px}
.demo-no-result h2{margin:0 0 8px;font-size:20px;color:#1e293b}
.demo-no-result p{margin:0 0 16px;color:#64748b}
.demo-no-result-reasons{text-align:left;max-width:400px;margin:0 auto 16px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px}
.demo-no-result-reasons p{margin:0 0 6px;font-weight:500;color:#991b1b;font-size:14px}
.demo-no-result-reasons ul{margin:0;padding-left:20px;color:#7f1d1d;font-size:13px}
.demo-no-result-reasons li{margin:4px 0}
.demo-no-result-actions{margin-bottom:16px}
.demo-no-result-api{text-align:left;max-width:500px;margin:0 auto;padding:10px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:12px;color:#64748b}
.demo-no-result-api code{font-size:11px;color:#334155;word-break:break-all}
.demo-admin-panel{padding:20px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}
.demo-admin-panel h3{margin:0 0 8px;font-size:16px}
.demo-admin-panel p{margin:0 0 12px;color:#64748b;font-size:14px}
.demo-task-panel{margin-top:20px;padding:20px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}
.demo-task-panel h2{display:flex;align-items:center;gap:8px;font-size:18px;margin:0 0 16px}
.demo-task-panel h2 small{font-size:14px;color:#64748b;font-weight:normal;margin-left:8px}
.demo-task-list{display:flex;flex-direction:column;gap:12px}
.demo-task-card{padding:14px;border:1px solid #e2e8f0;border-radius:10px;background:#fafbfc}
.demo-task-card.is-running{border-color:#6366f1;background:#f0f0ff}
.demo-task-card.is-completed{border-color:#22c55e;background:#f0fdf4}
.demo-task-card.is-failed{border-color:#ef4444;background:#fef2f2}
.demo-task-card.is-interrupted{border-color:#f59e0b;background:#fffbeb}
.demo-task-card.is-cancelled{border-color:#94a3b8;background:#f8fafc}
.demo-task-header{display:flex;align-items:center;gap:12px;margin-bottom:6px;font-size:14px}
.demo-task-status{display:flex;align-items:center;gap:4px;font-weight:600}
.demo-task-status.is-running{color:#6366f1}
.demo-task-status.is-completed{color:#22c55e}
.demo-task-status.is-failed{color:#ef4444}
.demo-task-status.is-interrupted{color:#f59e0b}
.demo-task-status.is-cancelled{color:#94a3b8}
.demo-task-cancel-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:12px;color:#ef4444;background:transparent;border:1px solid #fca5a5;border-radius:6px;cursor:pointer;transition:all .15s}
.demo-task-cancel-btn:hover{background:#fef2f2;border-color:#ef4444}
.demo-task-version{color:#94a3b8;font-size:11px}
.demo-task-owner{color:#64748b;font-size:13px}
.demo-task-time{margin-left:auto;color:#94a3b8;font-size:12px}
.demo-task-message{font-size:14px;color:#334155;margin-bottom:8px}
.demo-task-progress-bar{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden;margin-bottom:6px}
.demo-task-progress-fill{height:100%;background:linear-gradient(90deg,#6366f1,#818cf8);border-radius:3px;transition:width .3s}
.demo-task-meta{display:flex;gap:16px;font-size:12px;color:#64748b}
.demo-task-failures{color:#ef4444;font-weight:600}
.demo-task-errors,.demo-task-logs{margin-top:8px}
.demo-task-errors summary,.demo-task-logs summary{cursor:pointer;font-size:13px;color:#64748b;margin-bottom:4px}
.demo-task-errors pre,.demo-task-logs pre{font-size:12px;background:#f1f5f9;padding:8px;border-radius:6px;overflow-x:auto;max-height:160px;white-space:pre-wrap;margin:0}
.demo-results h2,.demo-documents h2{font-size:18px;margin:0 0 16px}
.demo-results h2 small,.demo-documents h2 small{font-size:14px;color:#64748b;font-weight:normal;margin-left:8px}
.demo-evidence-list{display:flex;flex-direction:column;gap:12px}
.demo-evidence-card{display:flex;gap:16px;padding:16px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;transition:box-shadow .2s}
.demo-evidence-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}
.demo-evidence-rank{font-size:24px;font-weight:700;color:#6366f1;min-width:40px}
.demo-evidence-body{flex:1;min-width:0}
.demo-evidence-body strong{font-size:15px;display:block;margin-bottom:6px}
.demo-evidence-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;color:#64748b;margin-bottom:8px}
.demo-retrieval-method{background:#e0e7ff;color:#4338ca;padding:2px 8px;border-radius:4px;font-weight:500;font-size:12px}
.demo-retrieval-info{display:flex;gap:16px;flex-wrap:wrap;align-items:center;padding:12px 16px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;margin-bottom:16px;font-size:13px}
.demo-retrieval-mode{display:flex;align-items:center;gap:6px;font-weight:500;color:#0369a1}
.demo-retrieval-coverage{color:#64748b}
.demo-degraded-warning{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#fef3c7;border:1px solid #fcd34d;border-radius:6px;color:#92400e;font-size:13px;width:100%;margin-top:8px}
.demo-evidence-snippet{margin:0;padding:12px;background:#f8fafc;border-radius:8px;font-size:14px;line-height:1.6;color:#334155;border-left:3px solid #6366f1}
.demo-open-pdf{flex-shrink:0}
.demo-empty{text-align:center;padding:48px 24px;color:#64748b}
.demo-empty-icon{width:48px;height:48px;margin:0 auto 16px;color:#94a3b8}
.demo-empty h2{font-size:20px;color:#1e293b;margin:0 0 8px}
.demo-empty p{margin:0;font-size:14px}
.demo-doc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.demo-doc-card{padding:16px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;display:flex;flex-direction:column;gap:8px}
.demo-doc-card strong{font-size:14px}
.demo-doc-meta{display:flex;gap:12px;font-size:12px;color:#64748b}
.demo-preview-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}
.demo-preview-panel{width:90vw;max-width:900px;height:85vh;background:#fff;border-radius:16px;display:flex;flex-direction:column;overflow:hidden}
.demo-preview-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}
.demo-preview-header h3{margin:0;font-size:16px}
.demo-preview-body{flex:1;overflow:hidden}
.demo-preview-body iframe{width:100%;height:100%;border:none}

.demo-recommend-section{padding:20px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}
.demo-recommend-section h2{display:flex;align-items:center;gap:8px;font-size:18px;margin:0 0 16px}
.demo-recommend-section h2 small{font-size:14px;color:#64748b;font-weight:normal;margin-left:8px}
.demo-recommend-actions{margin-bottom:16px}
.demo-recommend-form{display:flex;gap:12px;align-items:center}
.demo-recommend-form input{flex:1;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;outline:none;transition:border-color .15s}
.demo-recommend-form input:focus{border-color:#6366f1}
.demo-rec-history{margin-top:20px}
.demo-rec-history h3{font-size:16px;margin:0 0 12px}
.demo-rec-history h3 small{font-size:13px;color:#64748b;font-weight:normal;margin-left:8px}
.demo-recommend-list{display:flex;flex-direction:column;gap:8px}
.demo-recommend-item{padding:12px;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .15s}
.demo-recommend-item:hover{border-color:#6366f1;background:#f8f9ff}
.demo-recommend-item.active{border-color:#6366f1;background:#f0f0ff}
.demo-recommend-item-header{display:flex;align-items:center;justify-content:space-between}
.demo-recommend-item-header strong{font-size:14px}
.demo-recommend-item-meta{display:flex;gap:12px;font-size:12px;color:#64748b;align-items:center}
.demo-rec-degraded{display:flex;align-items:center;gap:6px;margin-top:8px;padding:6px 10px;background:#fef3c7;border-radius:6px;font-size:12px;color:#92400e}
.demo-rec-degraded i{width:14px;height:14px}
.demo-rec-delete{padding:4px;border:none;background:none;cursor:pointer;color:#94a3b8;transition:color .15s}
.demo-rec-delete:hover{color:#ef4444}
.demo-rec-delete i{width:14px;height:14px}
.demo-rec-empty{text-align:center;padding:32px;color:#64748b}
.demo-rec-empty i{width:36px;height:36px;margin-bottom:12px;color:#94a3b8}
.demo-rec-empty p{margin:8px 0 4px;font-size:15px}
.demo-rec-empty small{font-size:13px;color:#94a3b8}
.demo-rec-active{margin-top:16px}
.demo-rec-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.demo-rec-header h3{margin:0;font-size:16px}
.demo-rec-badges{display:flex;gap:8px}
.demo-rec-badge{padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500}
.demo-rec-badge.ai{background:#e0e7ff;color:#4338ca}
.demo-rec-badge.local{background:#f0fdf4;color:#166534}
.demo-rec-badge.retrieval{background:#f1f5f9;color:#475569}
.demo-rec-cards{display:flex;flex-direction:column;gap:16px}
.demo-rec-card{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#fafbfc}
.demo-rec-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#f1f5f9;border-bottom:1px solid #e2e8f0}
.demo-rec-card-header h4{margin:0;font-size:15px}
.demo-rec-import-btn{display:flex;align-items:center;gap:6px;font-size:13px}
.demo-rec-import-btn i{width:16px;height:16px}
.demo-rec-card-body{padding:16px;display:flex;flex-direction:column;gap:14px}
.demo-rec-field label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#475569;margin-bottom:6px}
.demo-rec-field label i{width:14px;height:14px}
.demo-rec-field p{margin:0;font-size:14px;line-height:1.6;color:#334155}
.demo-rec-evidence-list{display:flex;flex-direction:column;gap:10px}
.demo-rec-evidence-item{padding:10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;transition:border-color .15s}
.demo-rec-evidence-item:hover{border-color:#6366f1}
.demo-rec-evidence-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.demo-rec-evidence-header strong{font-size:13px}
.demo-rec-verify-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500}
.demo-rec-verify-badge.unverified{background:#f1f5f9;color:#64748b}
.demo-rec-verify-badge.verified{background:#dcfce7;color:#166534}
.demo-rec-verify-badge.rejected{background:#fef2f2;color:#991b1b}
.demo-rec-verify-badge.needs-review{background:#fef3c7;color:#92400e}
.demo-rec-evidence-meta{display:flex;gap:8px;font-size:12px;color:#64748b;margin-bottom:6px}
.demo-rec-evidence-item blockquote{margin:0;padding:8px;background:#f8fafc;border-radius:6px;font-size:13px;line-height:1.5;color:#475569;border-left:2px solid #6366f1}
.demo-rec-evidence-actions{display:flex;gap:8px;margin-top:8px;align-items:center}
.demo-rec-verify-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px}
.demo-rec-verify-btn i{width:12px;height:12px}

.demo-chapter-gen-panel{padding:20px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-top:20px}
.demo-chapter-gen-panel h2{display:flex;align-items:center;gap:8px;font-size:18px;margin:0 0 16px}
.demo-chapter-gen-panel h2 small{font-size:14px;color:#64748b;font-weight:normal;margin-left:8px}
.demo-chapter-gen-actions{margin-bottom:16px}
.demo-chapter-gen-form{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.demo-chapter-gen-form label{font-size:14px;font-weight:500;color:#475569}
.demo-chapter-gen-form select{flex:1;min-width:200px;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;outline:none;background:#fff}
.demo-chapter-gen-form select:focus{border-color:#6366f1}
.demo-chapter-gen-history{margin-top:20px}
.demo-chapter-gen-history h3{font-size:16px;margin:0 0 12px}
.demo-chapter-gen-history h3 small{font-size:13px;color:#64748b;font-weight:normal;margin-left:8px}
.demo-chapter-gen-list{display:flex;flex-direction:column;gap:8px}
.demo-gen-item{padding:12px;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .15s}
.demo-gen-item:hover{border-color:#6366f1;background:#f8f9ff}
.demo-gen-item.active{border-color:#6366f1;background:#f0f0ff}
.demo-gen-item-header{display:flex;align-items:center;justify-content:space-between}
.demo-gen-item-header strong{font-size:14px}
.demo-gen-item-meta{display:flex;gap:12px;font-size:12px;color:#64748b;align-items:center}
.demo-gen-status-completed{color:#16a34a;font-weight:500}
.demo-gen-status-running{color:#2563eb;font-weight:500}
.demo-gen-status-failed{color:#dc2626;font-weight:500}
.demo-gen-active{margin-top:16px;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#fafbfc}
.demo-gen-active-header{display:flex;align-items:center;justify-content:space-between;padding:16px;background:#f1f5f9;border-bottom:1px solid #e2e8f0}
.demo-gen-active-header h3{margin:0;font-size:16px}
.demo-gen-badges{display:flex;gap:8px;align-items:center;font-size:13px;color:#64748b}
.demo-gen-badge{padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500}
.demo-gen-badge.completed{background:#dcfce7;color:#166534}
.demo-gen-badge.running{background:#dbeafe;color:#1e40af}
.demo-gen-badge.failed{background:#fee2e2;color:#991b1b}
.demo-gen-badge.cache{background:#fef3c7;color:#92400e}
.demo-gen-chapters{padding:16px;display:flex;flex-direction:column;gap:12px}
.demo-gen-chapter-card{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#fff}
.demo-gen-chapter-card.completed{border-left:3px solid #16a34a}
.demo-gen-chapter-card.running{border-left:3px solid #2563eb}
.demo-gen-chapter-card.failed{border-left:3px solid #dc2626}
.demo-gen-chapter-card.pending{border-left:3px solid #94a3b8}
.demo-gen-chapter-card summary{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;font-size:14px}
.demo-gen-chapter-card summary strong{flex:1}
.demo-gen-chapter-status i{width:16px;height:16px}
.demo-gen-chapter-meta{font-size:12px;color:#64748b}
.demo-gen-retry-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px}
.demo-gen-retry-btn i{width:14px;height:14px}
.demo-gen-chapter-body{padding:16px;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:12px}
.demo-gen-queries{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.demo-gen-queries strong{margin-right:4px}
.demo-gen-queries code{padding:2px 6px;background:#f1f5f9;border-radius:4px;font-size:12px}
.demo-gen-paragraphs p{margin:0 0 8px;font-size:14px;line-height:1.6;color:#334155}
.demo-gen-evidence-list h4{font-size:14px;margin:0 0 8px;color:#475569}
.demo-gen-evidence-item{padding:10px;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:8px;background:#fff;position:relative}
.demo-gen-evidence-item.is-fact{border-left:3px solid #16a34a}
.demo-gen-evidence-item.is-synthesis{border-left:3px solid #f59e0b}
.demo-gen-evidence-item.is-hypothesis{border-left:3px solid #94a3b8}
.demo-gen-ev-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}
.demo-gen-ev-header strong{font-size:13px;flex:1}
.demo-gen-ev-classification{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500}
.is-fact .demo-gen-ev-classification{background:#dcfce7;color:#166534}
.is-synthesis .demo-gen-ev-classification{background:#fef3c7;color:#92400e}
.is-hypothesis .demo-gen-ev-classification{background:#f1f5f9;color:#475569}
.demo-gen-ev-meta{display:flex;gap:12px;font-size:12px;color:#64748b;margin-bottom:6px}
.demo-gen-evidence-item blockquote{margin:0 0 6px;padding:6px 10px;background:#f8fafc;border-left:2px solid #cbd5e1;font-size:12px;color:#475569;line-height:1.5}
.demo-gen-gaps h4{display:flex;align-items:center;gap:6px;font-size:14px;color:#dc2626;margin:0 0 8px}
.demo-gen-gaps h4 i{width:16px;height:16px}
.demo-gen-gap-item{padding:8px 12px;background:#fef2f2;border-radius:6px;margin-bottom:6px}
.demo-gen-gap-type{display:inline-block;padding:2px 6px;background:#fee2e2;color:#991b1b;border-radius:4px;font-size:11px;font-weight:500;margin-bottom:4px}
.demo-gen-gap-item p{margin:4px 0 0;font-size:13px;color:#7f1d1d;line-height:1.5}
.demo-gen-error{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#fef2f2;border-radius:6px;font-size:13px;color:#991b1b}
.demo-gen-error i{width:16px;height:16px}
.demo-gen-assemble-actions{padding:16px;border-top:1px solid #e2e8f0;display:flex;justify-content:center}

@media(max-width:620px){.demo-page{padding:16px}.demo-hero{flex-direction:column;align-items:flex-start;gap:16px}.demo-search{flex-direction:column}.demo-evidence-card{flex-direction:column}.demo-doc-list{grid-template-columns:1fr}.demo-recommend-form{flex-direction:column}.demo-rec-card-header{flex-direction:column;gap:8px;align-items:flex-start}.demo-chapter-gen-form{flex-direction:column}.demo-gen-active-header{flex-direction:column;gap:8px}}

/* ── 可信委托汇报 ─────────────────────────────────────────────────────────── */

.delegation-page{display:flex;gap:0;min-height:500px}
.delegation-sidebar{width:260px;flex-shrink:0;border-right:1px solid #e2e8f0;background:#f8fafc;display:flex;flex-direction:column;overflow-y:auto;max-height:75vh}
.delegation-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #e2e8f0}
.delegation-sidebar-header h3{margin:0;font-size:14px;display:flex;align-items:center;gap:6px}
.delegation-session-list{flex:1;overflow-y:auto;padding:8px}
.delegation-session-item{display:block;width:100%;text-align:left;padding:10px 12px;border:1px solid transparent;border-radius:8px;background:none;cursor:pointer;margin-bottom:4px;transition:background .15s}
.delegation-session-item:hover{background:#e2e8f0}
.delegation-session-item.active{background:#dbeafe;border-color:#93c5fd}
.delegation-session-item strong{display:block;font-size:13px;margin-bottom:2px}
.delegation-session-item small{font-size:11px;color:#64748b}
.delegation-empty-hint{padding:16px;text-align:center;color:#94a3b8;font-size:13px}
.delegation-main{flex:1;display:flex;flex-direction:column;min-width:0}
.delegation-session-header{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}
.delegation-session-header h2{margin:0;font-size:18px}
.delegation-session-header small{color:#64748b;font-size:12px}
.delegation-conversation{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:20px;max-height:55vh}
.delegation-round{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#fff}
.delegation-round-header{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#f1f5f9;border-bottom:1px solid #e2e8f0;font-size:13px}
.delegation-round-number{font-weight:600;color:#1e293b}
.delegation-round-time{color:#64748b;margin-left:auto}
.delegation-badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500}
.delegation-badge.ai{background:#dbeafe;color:#1d4ed8}
.delegation-badge.local{background:#fef3c7;color:#92400e}
.delegation-badge.stopped{background:#fee2e2;color:#dc2626}
.delegation-user-question{display:flex;gap:10px;padding:12px 16px;background:#eff6ff;border-bottom:1px solid #e2e8f0;font-size:14px;align-items:flex-start}
.delegation-user-question svg{flex-shrink:0;margin-top:2px;color:#3b82f6}
.delegation-warnings{padding:8px 16px;background:#fefce8}
.delegation-warning{display:flex;align-items:center;gap:6px;font-size:12px;color:#92400e;padding:4px 0}
.delegation-report-content{padding:16px}
.delegation-report-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:#64748b;margin-bottom:12px}
.delegation-limitation{color:#dc2626;display:flex;align-items:center;gap:4px}
.delegation-report-body{font-size:14px;line-height:1.7;white-space:pre-wrap;color:#1e293b}
.delegation-evidence-panel{border-top:1px solid #e2e8f0}
.delegation-evidence-panel summary{padding:12px 16px;cursor:pointer;font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px;background:#f8fafc}
.delegation-evidence-panel summary:hover{background:#f1f5f9}
.delegation-evidence-list{padding:12px 16px;display:flex;flex-direction:column;gap:10px}
.delegation-evidence-card{border:1px solid #e2e8f0;border-radius:8px;padding:12px;font-size:13px}
.delegation-evidence-card.verified{border-left:3px solid #22c55e}
.delegation-evidence-card.rejected{border-left:3px solid #ef4444;opacity:.7}
.delegation-evidence-card.needs-review{border-left:3px solid #f59e0b}
.delegation-evidence-header{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}
.delegation-evidence-header strong{font-size:13px}
.delegation-evidence-page,.delegation-evidence-score{font-size:11px;color:#64748b}
.delegation-verification-badge{font-size:11px;padding:2px 8px;border-radius:10px;margin-left:auto}
.delegation-verification-badge.unverified{background:#f1f5f9;color:#64748b}
.delegation-verification-badge.verified{background:#dcfce7;color:#16a34a}
.delegation-verification-badge.rejected{background:#fee2e2;color:#dc2626}
.delegation-verification-badge.needs-review{background:#fef3c7;color:#d97706}
.delegation-evidence-card blockquote{margin:0 0 8px;padding:8px;background:#f8fafc;border-radius:6px;font-size:12px;color:#475569;border-left:2px solid #cbd5e1}
.delegation-evidence-actions{display:flex;flex-wrap:wrap;gap:6px}
.delegation-evidence-actions .button{font-size:11px;padding:4px 10px}
.delegation-composer{padding:16px 20px;border-top:1px solid #e2e8f0;background:#f8fafc}
.delegation-composer textarea{width:100%;border:1px solid #d1d5db;border-radius:8px;padding:10px;font-size:14px;resize:vertical;font-family:inherit}
.delegation-composer-actions{display:flex;justify-content:flex-end;margin-top:10px}
.delegation-stopped-notice{padding:20px;text-align:center;background:#fefce8;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;align-items:center;gap:10px}
.delegation-stopped-notice p{margin:0;font-size:14px;color:#92400e}
.delegation-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;gap:16px}
.delegation-welcome h2{margin:0;font-size:24px}
.delegation-welcome p{margin:0;color:#64748b;max-width:480px}
.delegation-welcome ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;text-align:left}
.delegation-welcome li{display:flex;align-items:center;gap:8px;font-size:14px;color:#475569}
.delegation-welcome li svg{color:#22c55e;flex-shrink:0}
.delegation-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;gap:12px;color:#94a3b8}
.delegation-empty h3{margin:0;color:#475569}
.delegation-welcome-actions{display:flex;gap:12px;margin-top:8px}
.defense-start-panel{padding:24px;display:flex;flex-direction:column;gap:16px}
.defense-start-panel h3{margin:0;display:flex;align-items:center;gap:8px}
.defense-evaluators-info{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:12px 16px}
.defense-evaluator-tags{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.defense-self-statement-display{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:16px;margin-bottom:16px}
.defense-self-statement-display strong{display:flex;align-items:center;gap:6px;margin-bottom:8px;color:#0369a1}
.defense-self-text{color:#334155;line-height:1.6;white-space:pre-wrap}
.defense-flow{padding:16px;display:flex;flex-direction:column;gap:16px}
.defense-round{border-left:3px solid #6366f1}
.defense-answer-display{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:12px 16px;margin:8px 0}
.defense-answer-display strong{display:flex;align-items:center;gap:6px;margin-bottom:6px;color:#166534}
.defense-answer-display div{color:#334155;line-height:1.6;white-space:pre-wrap}
.defense-followup-question{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:16px;margin:8px 0}
.defense-followup-question strong{display:flex;align-items:center;gap:6px;color:#92400e;margin-bottom:8px}
.defense-followup-answer{background:#fef3c7;border:1px solid #fcd34d}
.defense-followup-reason{background:#f5f3ff;border:1px solid #ddd6fe;border-radius:6px;padding:8px 12px;font-size:13px;color:#5b21b6}
.defense-actions{display:flex;gap:12px;flex-wrap:wrap;padding:8px 0}
.defense-evaluation{background:linear-gradient(135deg,#f8fafc,#f0f9ff);border:1px solid #e2e8f0;border-radius:12px;padding:24px;margin-top:16px}
.defense-evaluation h3{margin:0 0 16px;display:flex;align-items:center;gap:8px}
.defense-evaluation-header{display:flex;gap:24px;align-items:flex-start;margin-bottom:20px}
.defense-total-score{font-size:36px;font-weight:700;color:#1e293b;display:flex;align-items:baseline;gap:4px}
.defense-total-score span{font-size:16px;color:#64748b;font-weight:400}
.defense-evaluation-summary{flex:1}
.defense-evaluation-summary p{margin:0 0 8px;color:#475569;line-height:1.5}
.defense-dimensions{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-bottom:16px}
.defense-dimension-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:14px}
.defense-dimension-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.defense-dimension-header strong{color:#1e293b}
.defense-dimension-header span{font-weight:600;color:#6366f1}
.defense-dimension-bar{height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin-bottom:10px}
.defense-dimension-fill{height:100%;border-radius:4px;transition:width 0.3s}
.defense-dimension-detail{font-size:13px;color:#475569;display:flex;flex-direction:column;gap:4px}
.defense-dimension-detail strong{color:#1e293b}
.defense-evaluation-meta{font-size:12px;color:#94a3b8;border-top:1px solid #e2e8f0;padding-top:12px}

.demoqa-page{display:flex;height:100%;min-height:500px;gap:0}
.demoqa-sidebar{width:260px;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;background:#fafbfc}
.demoqa-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #e2e8f0}
.demoqa-sidebar-header h3{margin:0;font-size:14px;display:flex;align-items:center;gap:6px;color:#1e293b}
.demoqa-session-list{flex:1;overflow-y:auto;padding:8px}
.demoqa-session-item{display:block;width:100%;text-align:left;padding:10px 12px;border:none;background:transparent;border-radius:8px;cursor:pointer;margin-bottom:4px;transition:background 0.15s}
.demoqa-session-item:hover{background:#e8edf2}
.demoqa-session-item.active{background:#dbeafe;border-left:3px solid #3b82f6}
.demoqa-session-item strong{display:block;font-size:13px;color:#1e293b;margin-bottom:2px}
.demoqa-session-item small{font-size:11px;color:#64748b}
.demoqa-empty-hint{padding:20px;text-align:center;color:#94a3b8;font-size:13px}
.demoqa-main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.demoqa-session-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 20px;border-bottom:1px solid #e2e8f0;background:#fff}
.demoqa-session-header h2{margin:0;font-size:16px;color:#1e293b}
.demoqa-session-header small{font-size:12px;color:#64748b}
.demoqa-session-actions{display:flex;gap:8px}
.demoqa-conversation{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px}
.demoqa-message{display:flex;flex-direction:column;gap:12px}
.demoqa-user-query{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;background:#f0f9ff;border-radius:12px;border:1px solid #bae6fd}
.demoqa-user-query strong{font-size:13px;color:#0369a1}
.demoqa-msg-time{font-size:11px;color:#64748b;margin-left:8px}
.demoqa-user-query>div>div:last-child{margin-top:4px;color:#1e293b;line-height:1.5}
.demoqa-warnings{display:flex;flex-direction:column;gap:6px}
.demoqa-warning{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#fef3c7;border:1px solid #fde68a;border-radius:8px;font-size:12px;color:#92400e}
.demoqa-failed-notice{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;color:#991b1b}
.demoqa-failed-notice p{margin:0;font-size:13px}
.demoqa-answer{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px}
.demoqa-answer-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px;font-size:12px;color:#64748b}
.demoqa-badge{padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600}
.demoqa-badge.ai{background:#ede9fe;color:#6d28d9}
.demoqa-badge.local{background:#e0f2fe;color:#0369a1}
.demoqa-badge.error{background:#fef2f2;color:#dc2626}
.demoqa-answer-body{color:#1e293b;line-height:1.7;white-space:pre-wrap;font-size:14px}
.demoqa-limitations{margin-top:10px;padding:8px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:12px;color:#64748b;display:flex;align-items:center;gap:6px}
.demoqa-answer-actions{display:flex;gap:8px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid #f1f5f9}
.demoqa-cited-count{font-size:12px;color:#64748b}
.demoqa-evidence-panel{border:1px solid #e2e8f0;border-radius:12px;background:#fafbfc;overflow:hidden}
.demoqa-evidence-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f1f5f9;border-bottom:1px solid #e2e8f0}
.demoqa-evidence-header strong{font-size:13px;color:#1e293b}
.demoqa-evidence-list{padding:12px;display:flex;flex-direction:column;gap:10px;max-height:400px;overflow-y:auto}
.demoqa-evidence-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:12px;border-left:3px solid #94a3b8}
.demoqa-evidence-card.verified{border-left-color:#22c55e}
.demoqa-evidence-card.rejected{border-left-color:#ef4444;opacity:0.6}
.demoqa-evidence-card.needs-review{border-left-color:#f59e0b}
.demoqa-evidence-header{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.demoqa-evidence-header strong{font-size:13px;color:#1e293b;flex:1}
.demoqa-evidence-page{font-size:11px;color:#64748b;background:#f1f5f9;padding:2px 6px;border-radius:4px}
.demoqa-evidence-score{font-size:11px;color:#6366f1;font-weight:600}
.demoqa-verification-badge{font-size:10px;padding:2px 6px;border-radius:10px;font-weight:600}
.demoqa-verification-badge.unverified{background:#f1f5f9;color:#64748b}
.demoqa-verification-badge.verified{background:#dcfce7;color:#166534}
.demoqa-verification-badge.rejected{background:#fef2f2;color:#991b1b}
.demoqa-verification-badge.needs-review{background:#fef3c7;color:#92400e}
.demoqa-dup-badge{font-size:10px;padding:2px 6px;border-radius:10px;background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.demoqa-evidence-card blockquote{margin:0 0 8px;padding:8px;background:#f8fafc;border-radius:6px;font-size:12px;color:#475569;line-height:1.5;border-left:2px solid #e2e8f0}
.demoqa-evidence-actions{display:flex;gap:6px;flex-wrap:wrap}
.demoqa-composer{padding:16px 20px;border-top:1px solid #e2e8f0;background:#fff}
.demoqa-composer textarea{width:100%;border:1px solid #d1d5db;border-radius:8px;padding:10px;font-size:14px;resize:vertical;font-family:inherit;line-height:1.5}
.demoqa-composer textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,0.1)}
.demoqa-composer-actions{display:flex;justify-content:flex-end;margin-top:10px}
.demoqa-stopped-notice{display:flex;gap:10px;align-items:center;padding:16px 20px;background:#fef2f2;border-top:1px solid #fecaca;color:#991b1b}
.demoqa-stopped-notice p{margin:0;flex:1;font-size:13px}
.demoqa-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px;gap:16px;flex:1}
.demoqa-welcome>svg,.demoqa-welcome>[data-lucide]{width:48px;height:48px;color:#3b82f6}
.demoqa-welcome h2{margin:0;font-size:22px;color:#1e293b}
.demoqa-welcome>p{color:#64748b;max-width:480px;line-height:1.6}
.demoqa-welcome ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.demoqa-welcome li{display:flex;align-items:center;gap:8px;font-size:13px;color:#475569}
.demoqa-welcome-actions{display:flex;gap:12px;margin-top:8px}
.demoqa-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;color:#94a3b8;gap:8px;flex:1}
.demoqa-empty h3{margin:0;color:#64748b}

.demoqa-cited-pages{margin:10px 0;padding:10px 12px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px}
.demoqa-cited-pages strong{display:flex;align-items:center;gap:6px;font-size:13px;color:#0369a1;margin-bottom:6px}
.demoqa-cited-pages-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.demoqa-cited-pages-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:#334155}
.demoqa-cited-title{font-weight:600;color:#1e40af}
.demoqa-cited-heading{font-size:11px;color:#6366f1;background:#eef2ff;padding:1px 6px;border-radius:4px}
.demoqa-cited-page{font-size:11px;color:#0d9488;background:#f0fdfa;padding:1px 6px;border-radius:4px;border:1px solid #99f6e4}
.demoqa-source-ref{font-size:10px;color:#64748b;background:#f1f5f9;padding:1px 5px;border-radius:3px;font-family:monospace}
.demoqa-evidence-heading{display:flex;align-items:center;gap:6px;font-size:12px;color:#6366f1;margin-bottom:4px;padding:2px 0}
.demoqa-evidence-sourceref{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:11px}
.demoqa-evidence-sourceref code{background:#f1f5f9;padding:2px 6px;border-radius:4px;font-size:10px;color:#475569}
.demoqa-sourceref-label{color:#94a3b8;font-size:10px}
.demoqa-retrieval-history{border-bottom:1px solid #e2e8f0;background:#fafbfc}
.demoqa-retrieval-history-header{display:flex;align-items:center;gap:8px;padding:12px 20px;border-bottom:1px solid #e2e8f0}
.demoqa-retrieval-history-header strong{display:flex;align-items:center;gap:6px;font-size:14px;color:#1e293b}
.demoqa-retrieval-history-header small{color:#94a3b8;font-size:11px}
.demoqa-retrieval-history-list{padding:8px 20px 12px;display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}
.demoqa-retrieval-entry{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px}
.demoqa-retrieval-entry-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;margin-bottom:4px}
.demoqa-retrieval-round{font-weight:700;color:#3b82f6}
.demoqa-retrieval-mode{font-size:10px;background:#e0f2fe;color:#0369a1;padding:1px 6px;border-radius:4px;text-transform:uppercase}
.demoqa-retrieval-count{color:#64748b}
.demoqa-retrieval-time{color:#94a3b8;margin-left:auto;font-size:11px}
.demoqa-retrieval-query{font-size:12px;color:#475569;margin-bottom:4px;font-style:italic}
.demoqa-retrieval-pages{display:flex;gap:4px;flex-wrap:wrap}
.demoqa-retrieval-page-tag{font-size:10px;background:#f1f5f9;color:#475569;padding:2px 6px;border-radius:4px;border:1px solid #e2e8f0}
.demoqa-retrieval-page-tag.more{background:#fef3c7;color:#92400e;border-color:#fed7aa}

@media(max-width:700px){.demoqa-page{flex-direction:column}.demoqa-sidebar{width:100%;max-height:200px;border-right:none;border-bottom:1px solid #e2e8f0}}

@media(max-width:620px){.app-shell :is(.stage-title h1,.home-hero h1,.topic-recommend-hero h1,.standalone-reading-header h1,.qa-hero h1,.defense-head h1){font-size:28px}.app-shell :is(.form-sheet,.outline-editor,.generation-panel,.export-sheet),.modal-layer .project-modal{padding:20px}.app-shell .form-grid,.modal-layer .form-grid{gap:18px}.home-kpis{gap:10px}.home-kpis>div{padding:14px}.defense-steps button strong{font-size:14px}.outline-section{padding:14px}.outline-section-title{font-size:16px}.qa-composer-top,.defense-toolbar{flex-wrap:wrap}.library-document-tools{gap:8px}.library-search input,.library-filter-select select,.library-upload-target select{font-size:13px}.library-row-copy>strong{font-size:14px}}

.demo-reading-panel{margin:20px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}
.demo-reading-header{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0;background:#f8fafc}
.demo-reading-header h2{display:flex;align-items:center;gap:8px;margin:0;font-size:18px;color:#1e293b}
.demo-reading-meta{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:12px;color:#64748b;flex-wrap:wrap}
.demo-reading-status{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600}
.demo-reading-status.running{background:#dbeafe;color:#1d4ed8}
.demo-reading-status.completed{background:#dcfce7;color:#15803d}
.demo-reading-status.failed{background:#fef2f2;color:#991b1b}
.demo-reading-actions{display:flex;gap:6px}
.demo-reading-degraded{display:flex;gap:12px;padding:12px 20px;background:#fef3c7;border-bottom:1px solid #fde68a;color:#92400e;font-size:13px}
.demo-reading-degraded strong{display:block;margin-bottom:4px}
.demo-reading-degraded ul{margin:4px 0 0;padding-left:20px}
.demo-reading-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:#3b82f6;font-size:14px}
.demo-reading-loading svg{animation:spin 1s linear infinite}
.demo-reading-error{display:flex;align-items:center;gap:10px;padding:16px 20px;background:#fef2f2;color:#991b1b;font-size:14px}
.demo-reading-content{padding:20px}
.demo-reading-summary{margin-bottom:20px;padding:16px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px}
.demo-reading-summary h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:15px;color:#0369a1}
.demo-reading-summary p{margin:0;line-height:1.6;color:#1e40af}
.demo-reading-fields{display:flex;flex-direction:column;gap:16px}
.demo-reading-field{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}
.demo-reading-field h4{display:flex;align-items:center;gap:8px;margin:0;padding:12px 16px;background:#f8fafc;font-size:14px;color:#1e293b;border-bottom:1px solid #e2e8f0}
.demo-reading-field-content{padding:16px}
.demo-reading-field-content>p{margin:0 0 12px;line-height:1.6;color:#475569}
.demo-reading-points{margin:0 0 12px;padding-left:20px}
.demo-reading-points li{margin-bottom:6px;line-height:1.5;color:#334155}
.demo-reading-evidence{margin-top:12px;padding-top:12px;border-top:1px solid #f1f5f9}
.demo-reading-evidence strong{display:block;margin-bottom:8px;font-size:12px;color:#64748b}
.demo-reading-evidence-list{display:flex;flex-direction:column;gap:8px}
.demo-reading-evidence-item{padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all 0.15s}
.demo-reading-evidence-item:hover{background:#f0f9ff;border-color:#bae6fd}
.demo-reading-evidence-page{display:inline-block;font-size:11px;color:#0d9488;background:#f0fdfa;padding:2px 6px;border-radius:4px;border:1px solid #99f6e4;margin-right:6px}
.demo-reading-evidence-heading{font-size:12px;color:#6366f1;margin-right:6px}
.demo-reading-evidence-item blockquote{margin:6px 0 0;padding:8px;background:#fff;border-radius:4px;font-size:12px;color:#475569;line-height:1.5;border-left:2px solid #e2e8f0}
.demo-reading-gaps{margin-top:20px;padding:16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px}
.demo-reading-gaps h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:14px;color:#991b1b}
.demo-reading-gaps ul{margin:0;padding-left:20px}
.demo-reading-gaps li{margin-bottom:4px;color:#7f1d1d;line-height:1.5}
.demo-reading-all-evidence{margin-top:20px;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}
.demo-reading-all-evidence summary{padding:12px 16px;background:#f8fafc;cursor:pointer;font-size:13px;color:#475569;font-weight:600}
.demo-reading-all-evidence summary:hover{background:#f1f5f9}
.demo-reading-all-evidence .demo-reading-evidence-list{padding:12px;max-height:400px;overflow-y:auto}
.demo-reading-empty{display:flex;align-items:center;justify-content:center;padding:40px;color:#94a3b8;font-size:14px}
.demo-doc-actions{display:flex;gap:6px;align-items:center;margin-top:8px}
.demo-quick-read-btn,.demo-deep-read-btn,.demo-ocr-detect-btn{font-size:12px;padding:4px 10px}

.demo-ocr-panel{margin:24px 0;padding:24px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.demo-ocr-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.demo-ocr-header h2{display:flex;align-items:center;gap:8px;margin:0;font-size:18px;color:#1e293b}
.demo-ocr-loading{display:flex;align-items:center;gap:8px;padding:16px;color:#6366f1;font-size:14px}
.demo-ocr-loading [data-lucide]{animation:spin 1s linear infinite}
.demo-ocr-detection h3{margin:0 0 12px;font-size:15px;color:#334155}
.demo-ocr-summary{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.demo-ocr-stat{padding:6px 12px;background:#f1f5f9;border-radius:6px;font-size:13px;color:#475569}
.demo-ocr-stat-missing{background:#fef2f2;color:#dc2626}
.demo-ocr-stat-low{background:#fff7ed;color:#ea580c}
.demo-ocr-stat-done{background:#f0fdf4;color:#16a34a}
.demo-ocr-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;margin-bottom:16px}
.demo-ocr-page-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;border:2px solid #e2e8f0;border-radius:8px;font-size:12px;text-align:center;transition:all 0.15s}
.demo-ocr-status-ok{border-color:#bbf7d0;background:#f0fdf4}
.demo-ocr-status-missing{border-color:#fecaca;background:#fef2f2}
.demo-ocr-status-low-text{border-color:#fed7aa;background:#fff7ed}
.demo-ocr-status-ocr-done{border-color:#a5b4fc;background:#eef2ff}
.demo-ocr-page-num{font-weight:700;font-size:14px;color:#1e293b}
.demo-ocr-page-status{font-size:11px;color:#64748b}
.demo-ocr-page-chars{font-size:10px;color:#94a3b8}
.demo-ocr-page-job{color:#16a34a}
.demo-ocr-actions{margin-top:12px}
.demo-ocr-ok{display:flex;align-items:center;gap:8px;padding:12px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;color:#16a34a;font-size:14px}
.demo-ocr-job-detail{margin-top:20px;padding:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}
.demo-ocr-job-detail h3{margin:0 0 12px;font-size:14px;color:#334155}
.demo-ocr-job-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px;background:#fff;border-radius:6px;border:1px solid #e2e8f0;margin-bottom:12px}
.demo-ocr-job-badge{padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600}
.demo-ocr-job-pending .demo-ocr-job-badge{background:#fef3c7;color:#92400e}
.demo-ocr-job-running .demo-ocr-job-badge{background:#dbeafe;color:#1d4ed8}
.demo-ocr-job-completed .demo-ocr-job-badge{background:#dcfce7;color:#166534}
.demo-ocr-job-failed .demo-ocr-job-badge{background:#fee2e2;color:#991b1b}
.demo-ocr-job-unavailable .demo-ocr-job-badge{background:#f3e8ff;color:#7c3aed}
.demo-ocr-unavailable{display:flex;align-items:center;gap:4px;color:#7c3aed;font-size:12px}
.demo-ocr-error{padding:10px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#991b1b;font-size:13px;margin-bottom:12px;display:flex;align-items:center;gap:6px}
.demo-ocr-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.demo-ocr-result-card{padding:12px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}
.demo-ocr-result-completed{border-color:#bbf7d0}
.demo-ocr-result-failed{border-color:#fecaca}
.demo-ocr-result-empty{border-color:#e2e8f0}
.demo-ocr-result-unavailable{border-color:#c4b5fd}
.demo-ocr-result-card strong{display:block;margin-bottom:6px;color:#1e293b}
.demo-ocr-result-status{display:inline-block;font-size:11px;padding:2px 8px;border-radius:4px;background:#f1f5f9;color:#475569}
.demo-ocr-result-completed .demo-ocr-result-status{background:#dcfce7;color:#166534}
.demo-ocr-result-failed .demo-ocr-result-status{background:#fee2e2;color:#991b1b}
.demo-ocr-source{display:block;font-size:11px;color:#6366f1;margin-top:4px}
.demo-ocr-confidence{display:block;font-size:11px;color:#64748b;margin-top:2px}
.demo-ocr-text-preview{margin-top:8px}
.demo-ocr-text-preview summary{cursor:pointer;font-size:12px;color:#6366f1;padding:4px 0}
.demo-ocr-text-preview pre{margin:8px 0 0;padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto}
.demo-ocr-result-error{margin-top:6px;font-size:12px;color:#dc2626}
.demo-ocr-job-list{margin-top:20px}
.demo-ocr-job-list h3{margin:0 0 12px;font-size:14px;color:#334155}
.demo-ocr-jobs{display:flex;flex-direction:column;gap:6px}
.demo-ocr-job-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;font-size:13px}
.demo-ocr-job-item.active{border-color:#6366f1;background:#eef2ff}
.demo-ocr-job-title{flex:1;font-weight:500;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.demo-ocr-job-badge-sm{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}
.demo-ocr-job-badge-sm.demo-ocr-job-completed{background:#dcfce7;color:#166534}
.demo-ocr-job-badge-sm.demo-ocr-job-failed{background:#fee2e2;color:#991b1b}
.demo-ocr-job-badge-sm.demo-ocr-job-unavailable{background:#f3e8ff;color:#7c3aed}
.demo-ocr-job-badge-sm.demo-ocr-job-running{background:#dbeafe;color:#1d4ed8}
.demo-ocr-job-badge-sm.demo-ocr-job-pending{background:#fef3c7;color:#92400e}
.demo-ocr-job-pages{color:#64748b;font-size:12px}
.demo-ocr-job-time{color:#94a3b8;font-size:11px}

@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

.demo-integration-panel{margin:24px 0;padding:24px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.demo-integration-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}
.demo-integration-header h2{margin:0;font-size:18px;color:#1e293b;display:flex;align-items:center;gap:8px}
.demo-integration-subtitle{margin:4px 0 0;font-size:13px;color:#64748b}
.demo-integration-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
@media(max-width:900px){.demo-integration-grid{grid-template-columns:1fr}}
.demo-integration-config h3,.demo-integration-controls h3{margin:0 0 12px;font-size:14px;color:#334155}
.demo-integration-model-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.model-card{padding:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;flex-direction:column;gap:4px}
.model-card.active{border-color:#22c55e;background:#f0fdf4}
.model-card.mock{border-color:#f59e0b;background:#fffbeb}
.model-label{font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.5px}
.model-value{font-size:13px;font-weight:600;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.model-badge{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:600;align-self:flex-start}
.model-badge.real{background:#dcfce7;color:#166534}
.model-badge.fallback{background:#fef3c7;color:#92400e}
.demo-integration-system{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:#64748b}
.demo-integration-system span{padding:4px 8px;background:#f1f5f9;border-radius:4px}
.demo-integration-options{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.demo-integration-options label{display:flex;align-items:center;gap:4px;font-size:13px;color:#334155}
.demo-integration-params{display:flex;gap:12px;margin-bottom:12px}
.demo-integration-params label{display:flex;align-items:center;gap:6px;font-size:13px;color:#334155}
.demo-integration-params input{width:60px;padding:4px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:13px}
.demo-integration-results{margin-top:20px}
.demo-integration-results h3{margin:0 0 12px;font-size:15px;color:#1e293b;display:flex;align-items:center;gap:8px}
.test-status-badge{padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600}
.test-status-badge.test-completed{background:#dcfce7;color:#166534}
.test-status-badge.test-failed{background:#fee2e2;color:#991b1b}
.test-status-badge.test-running{background:#dbeafe;color:#1d4ed8}
.test-status-badge.test-pending{background:#fef3c7;color:#92400e}
.demo-integration-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
@media(max-width:620px){.demo-integration-summary{grid-template-columns:repeat(2,1fr)}}
.summary-card{padding:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;text-align:center}
.summary-value{display:block;font-size:22px;font-weight:700;color:#1e293b}
.summary-label{display:block;font-size:12px;color:#64748b;margin-top:4px}
.demo-integration-phases{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}
@media(max-width:620px){.demo-integration-phases{grid-template-columns:1fr}}
.phase-card{padding:12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}
.phase-card.phase-pass{border-left:3px solid #22c55e}
.phase-card.phase-warn{border-left:3px solid #f59e0b}
.phase-card.phase-fail{border-left:3px solid #ef4444}
.phase-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.phase-name{font-weight:600;font-size:13px;color:#1e293b}
.phase-badge{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600}
.phase-status-pass{background:#dcfce7;color:#166534}
.phase-status-warn{background:#fef3c7;color:#92400e}
.phase-status-fail{background:#fee2e2;color:#991b1b}
.phase-status-unknown{background:#f1f5f9;color:#64748b}
.phase-time{margin-left:auto;font-size:11px;color:#94a3b8}
.phase-details{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569}
.phase-check{display:inline-flex;align-items:center;gap:4px}
.phase-check.pass{color:#16a34a}
.phase-check.fail{color:#dc2626}
.demo-integration-timings{margin-bottom:16px}
.demo-integration-timings h4{margin:0 0 8px;font-size:13px;color:#334155}
.timing-grid{display:flex;gap:12px;flex-wrap:wrap}
.timing-item{padding:8px 12px;background:#f1f5f9;border-radius:6px;font-size:12px}
.timing-label{color:#64748b;margin-right:8px}
.timing-value{font-weight:600;color:#1e293b}
.demo-integration-degradation{margin-bottom:16px}
.demo-integration-degradation h4{margin:0 0 8px;font-size:13px;color:#334155}
.degradation-items{display:flex;gap:8px;flex-wrap:wrap}
.degrade-item{padding:4px 10px;border-radius:4px;font-size:12px;background:#fef3c7;color:#92400e}
.degrade-item.active{background:#dcfce7;color:#166534}
.demo-integration-errors{margin-bottom:16px}
.demo-integration-errors h4{margin:0 0 8px;font-size:13px;color:#dc2626}
.error-list{display:flex;flex-direction:column;gap:4px}
.error-item{padding:6px 10px;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;font-size:12px}
.error-phase{color:#991b1b;font-weight:600;margin-right:6px}
.error-msg{color:#7f1d1d}
.demo-integration-logs{margin-bottom:16px}
.demo-integration-logs summary{cursor:pointer;font-size:13px;color:#6366f1;padding:4px 0}
.log-list{display:flex;flex-direction:column;gap:2px;max-height:300px;overflow-y:auto}
.log-item{padding:4px 8px;font-size:11px;color:#475569;border-bottom:1px solid #f1f5f9}
.log-time{color:#94a3b8;margin-right:8px}
.demo-integration-empty{padding:40px;text-align:center;color:#94a3b8;font-size:14px}
.demo-integration-history{margin-top:20px}
.demo-integration-history h3{margin:0 0 12px;font-size:14px;color:#334155}
.history-list{display:flex;flex-direction:column;gap:4px}
.history-item{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;font-size:12px}
.history-item.history-completed{border-left:3px solid #22c55e}
.history-item.history-failed{border-left:3px solid #ef4444}
.history-item.history-running{border-left:3px solid #3b82f6}
.history-status{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;background:#f1f5f9;color:#475569}
.history-time{color:#64748b}
.history-match{font-weight:600;color:#1e293b}
.history-phases{color:#64748b;margin-left:auto}

/* Provider setup follows the restrained green workbench palette. */
.provider-modal{width:min(960px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow-y:auto;padding:32px}
.provider-intro{color:#64736b;line-height:1.7;margin:12px 0 24px}
.provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.provider-card{padding:22px;background:#f9fbf9;border:1px solid #dce5de;border-radius:12px}
.provider-card header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.provider-card h2{margin:0;font-size:18px;color:#233c2c}
.provider-card>p{font-size:13px;line-height:1.6;color:#65716a}
.provider-state{font-size:12px;padding:4px 9px;border-radius:20px;background:#edf0ed;color:#707870;white-space:nowrap}
.provider-state.ready{background:#e0eee2;color:#2d633e}
.provider-enable,.provider-clear{display:flex;align-items:center;gap:7px;font-size:12px;color:#65716a}
.provider-fields{display:grid;gap:14px;margin:16px 0}
.provider-fields input[type=checkbox],.provider-enable input{width:15px;height:15px;flex:none}
.provider-fields .field{min-width:0}
.provider-fields input:not([type=checkbox]),.provider-fields select{width:100%;min-width:0}
.provider-test-result{min-height:20px;margin-bottom:0;overflow-wrap:anywhere}
.provider-test-result.error{color:#9b3b35}
#providerSaveStatus{font-size:13px;line-height:1.6;color:#356344;flex:1}
@media(max-width:640px){.provider-grid{grid-template-columns:1fr}.provider-modal{padding:22px}.provider-card{padding:18px}#providerSettingsButton span{display:none}}

.project-rail .rail-label{display:flex!important;padding:20px 18px 8px;color:#bbc6d6}
.project-rail .project-list{display:flex!important;flex-direction:column;overflow-y:auto;min-height:0;margin:0 10px;gap:5px}
.project-rail .project-item{flex:none;text-align:left;white-space:normal}

/* Authentication additions follow the existing restrained green/grey portal. */
#loginPortal [hidden]{display:none!important}
#loginPortal .login-tabs{gap:18px;justify-content:space-between}
#loginPortal .login-tabs button{font-size:15px;white-space:nowrap}
#loginPortal #qrLoginPanel{text-align:center;padding:0 0 8px}
#qrLoginImage{display:block;width:200px;height:200px;margin:0 auto 10px}
#qrLoginStatus{font-size:14px;line-height:1.7;color:#68756d}
#refreshQrLogin{background:none;border:1px solid #acacae;border-radius:9px;padding:8px 16px;color:#283139}
.auth-dialog{width:min(460px,calc(100vw - 32px));padding:28px;border:1px solid #d8e0da;border-radius:20px;color:#283139}
.auth-dialog::backdrop{background:#18221f88;backdrop-filter:blur(4px)}
.auth-dialog h2{margin:0 0 12px}.auth-dialog p{font-size:14px;line-height:1.7}.auth-dialog label{display:block;margin:14px 0;font-size:14px}.auth-dialog input,.auth-dialog select{display:block;width:100%;height:46px;margin-top:6px;border:1px solid #acacae;border-radius:9px;padding:10px;font:inherit}.auth-dialog .auth-actions{display:flex;gap:12px;margin-top:18px}.auth-dialog button{flex:1;border:1px solid #283139;border-radius:9px;padding:12px;background:white;color:#283139}.auth-dialog button[type=submit]{background:#283139;color:white}.auth-error{color:#97483f}.auth-dialog button:disabled{opacity:.5}
#loginPortal .card-in{overflow-y:auto}

/* History belongs to each feature, with a shared compact record drawer. */
.feature-history-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 24px;padding:0 0 16px;border-bottom:1px solid #dce5de}
.feature-history-caption{display:flex;align-items:baseline;gap:14px;min-width:0;color:#345344;font-size:14px;font-weight:600}
.feature-history-caption small{color:#77847c;font-size:12px;font-weight:400}
.feature-history-tools{display:flex;gap:8px;flex-wrap:wrap}
.feature-history-tools .button{font-size:13px;padding:9px 13px;min-height:38px}
.feature-history-caption .history-save-error{color:#a44738}
.feature-history-dialog{width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;border:1px solid #dce5de;border-radius:16px;background:#fcfdfb;color:#233c2c;box-shadow:0 24px 80px #18221f33}
.feature-history-dialog::backdrop{background:#18221f80;backdrop-filter:blur(3px)}
.feature-history-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 28px;border-bottom:1px solid #e0e7e1}
.feature-history-heading span{font-size:12px;color:#718074;letter-spacing:.1em}
.feature-history-heading h2{font-size:20px;margin:6px 0 0}
.feature-history-heading .icon-button{font-size:25px;flex:none;color:#5c6e61}
.feature-history-body{padding:8px 28px 28px;overflow-wrap:anywhere}
.feature-history-count{font-size:12px;color:#77847c;margin:18px 0 12px}
.feature-history-list{display:grid;gap:8px}
.feature-history-row{display:flex;align-items:center;gap:12px;padding:6px 12px;border:1px solid #e0e7e1;border-radius:10px;background:white}
.feature-history-row>button:first-child{flex:1;min-width:0;border:0;background:transparent;text-align:left;padding:12px 0;color:#233c2c;cursor:pointer}
.feature-history-row strong{display:block;font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.feature-history-row button>span{display:flex;align-items:center;gap:12px;margin-top:6px;font-size:12px;color:#77847c;flex-wrap:wrap}
.feature-history-row b{font-size:11px;font-weight:500;color:#3b6c4b;background:#edf4ee;border-radius:5px;padding:2px 6px}
.history-delete{display:flex;align-items:center;gap:5px;flex:none;border:0;background:transparent;color:#9b5349;padding:10px 8px;cursor:pointer;font-size:12px}
.history-delete svg{width:16px;height:16px}
.history-delete:hover{background:#f8ebe7;border-radius:6px}
.feature-history-row:has(button:first-child:hover){border-color:#82a48b;background:#f8fbf7}
.feature-history-dialog button:focus-visible,.feature-history-toolbar button:focus-visible{outline:2px solid #44815b;outline-offset:3px}
.feature-history-empty{display:grid;justify-items:center;text-align:center;padding:52px 16px;color:#718074;gap:14px}
.feature-history-empty svg{width:32px;height:32px;color:#91a895}
.feature-history-empty p{font-size:13px;margin:0}
.history-detail-section{margin:22px 0;padding-bottom:18px;border-bottom:1px solid #e0e7e1}
.history-detail-section h3{font-size:15px;line-height:1.7;margin:0 0 8px}
.history-detail-section p{white-space:pre-wrap;font-size:14px;line-height:1.9;margin:0;color:#58675e}
.reading-session-history{margin-top:20px;padding-top:16px;border-top:1px solid #dce5de;font-size:13px}
.reading-session-history summary{cursor:pointer;color:#426951}.reading-session-history section{margin-top:16px}.reading-session-history p{white-space:pre-wrap;line-height:1.8}
@media(max-width:640px){.feature-history-toolbar{align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:18px}.feature-history-caption{flex-wrap:wrap}.feature-history-tools{width:100%}.feature-history-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 24px)}.feature-history-heading{padding:20px}.feature-history-heading h2{font-size:17px}.feature-history-body{padding:6px 16px 20px}.feature-history-row{gap:6px;padding:5px 10px}.history-delete{padding:12px 8px}.history-delete span{display:none}}

/* Zotero-style library: compact rows, independent bibliographic columns. */
#libraryList{display:block;overflow:auto;max-height:60vh;border:1px solid #dedede;border-radius:3px;background:white}.zotero-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:1250px;font-size:13px;color:#252525}.zotero-table thead{position:sticky;top:0;z-index:3;background:#fafafa}.zotero-table th{text-align:left;font-weight:500;padding:9px 10px;border-bottom:1px solid #ccc;border-right:1px solid #ddd;resize:horizontal;overflow:hidden;cursor:pointer}.zotero-table th:nth-child(1){width:35px}.zotero-table th:nth-child(2){width:34px}.zotero-table th:nth-child(3){width:330px}.zotero-table th:nth-child(4){width:100px}.zotero-table th:nth-child(5){width:65px}.zotero-table th:nth-child(6){width:150px}.zotero-table th:nth-child(7){width:90px}.zotero-table th:nth-child(8){width:220px}.zotero-table th:nth-child(9){width:85px}.zotero-table th:nth-child(10){width:55px}.zotero-table .library-row{display:table-row;border:0;border-radius:0;background:white;box-shadow:none;padding:0}.zotero-table .library-row:nth-child(even){background:#f5f5f5}.zotero-table .library-row:hover{background:#ededed}.zotero-table .library-row.selected{background:#d8d8d8}.zotero-table td{height:39px;padding:5px 10px;border:0;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.zotero-table a{color:inherit;text-decoration:none}.zotero-table svg{width:17px;height:17px}.zotero-table .pdf-mark{color:#888}.zotero-table .rank-cell{border:0;background:transparent;padding:0;display:flex;gap:5px;align-items:center;cursor:pointer;max-width:100%;overflow:hidden}.zotero-table .publication-tag{display:inline-block;padding:2px 6px;border:0;border-radius:4px;background:#e5eff7;color:#316c94;font-size:12px;font-weight:400;line-height:1.5;white-space:nowrap}.zotero-table .publication-tag-index{background:#e4f0e8;color:#39734e}.zotero-table .publication-tag-top{background:#fff1d8;color:#986400}.zotero-table .publication-tag.rank-pku{background:#ffe4e0;color:#e63212}.rank-empty{color:#bbb}.index-state{color:#888;font-size:11px}.number-cell{font-variant-numeric:tabular-nums}.row-menu summary{cursor:pointer;list-style:none;color:#888}.row-menu div{position:absolute;right:25px;z-index:5;width:170px;display:grid;gap:7px;padding:12px;background:white;box-shadow:0 3px 18px #0002;border:1px solid #ddd}.row-menu button{border:0;background:transparent;text-align:left;font:inherit;cursor:pointer}.row-menu label{display:grid;gap:4px;font-size:12px}.metadata-dialog{width:min(1000px,94vw);max-height:85vh;border:1px solid #ddd;border-radius:6px;padding:22px}.metadata-dialog::backdrop{background:#0005}.metadata-dialog header{display:flex;align-items:center;justify-content:space-between}.metadata-dialog h2{margin:0;font-size:20px}.metadata-preview{max-height:50vh;overflow:auto;margin:15px 0}.metadata-preview table{border-collapse:collapse;width:100%;font-size:12px}.metadata-preview td,.metadata-preview th{padding:8px;border-bottom:1px solid #eee;text-align:left}.metadata-preview td:first-child{max-width:360px}.metadata-preview select{max-width:330px}.metadata-dialog footer{display:flex;gap:12px;align-items:center}.metadata-dialog p{color:#777;font-size:13px}.library-drop-zone{padding:10px!important;min-height:0!important}.library-drop-zone svg{width:20px;height:20px}

.library-modal{width:96vw!important;max-width:1800px!important;padding:18px 22px!important;max-height:95vh!important}.library-modal>h2,.library-modal-heading h2{font-size:22px}.library-manager{grid-template-columns:190px minmax(0,1fr)!important}.library-document-tools{flex-wrap:wrap!important;gap:8px!important}.library-document-tools label{white-space:nowrap;flex-shrink:0}.library-document-tools .library-search{flex:1;min-width:200px}.library-document-tools button{white-space:nowrap;min-width:max-content}.library-document-tools svg{flex-shrink:0}.zotero-table{min-width:1100px}.zotero-table th:nth-child(3){width:290px}.zotero-table th:nth-child(4){width:85px}.zotero-table th:nth-child(6){width:130px}.zotero-table th:nth-child(8){width:180px}.zotero-table .library-row::before,.zotero-table .library-row::after{display:none!important}@media(max-width:800px){.library-manager{grid-template-columns:1fr!important}.library-folders{max-height:140px;overflow:auto}.library-modal{width:98vw!important;padding:12px!important}.library-rank-toolbar{flex-wrap:wrap}}
.report-mode-picker{border:1px solid #d8e1de;border-radius:12px;padding:16px;min-width:0;margin:12px 0 20px}.report-mode-picker legend{font-weight:600;padding:0 6px}.report-mode-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.report-mode-options label{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid #d8e1de;border-radius:8px;cursor:pointer}.report-mode-options label:has(input:checked){border-color:#337b64;background:#f1f8f4}.report-mode-options input{margin-top:4px;flex:none}.report-mode-options strong,.report-mode-options small{display:block}.report-mode-options small,.report-mode-picker p{color:#64736c;font-size:13px;line-height:1.65}.report-mode-picker p{margin:12px 0 0}.report-review-notice{padding:12px 16px;margin:12px 0;border:1px solid #d9c895;border-radius:8px;background:#fff9e9;color:#665322;font-size:13px;line-height:1.7}@media(max-width:700px){.report-mode-options{grid-template-columns:1fr}}
