:root{color:#182126;background:#eef1f2;font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}button,select,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}body{min-width:320px;min-height:100vh;margin:0}.app-shell{min-height:100vh}.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid #d7dcde;background:#fff}.brand,.topbar-actions,.identity-control,.identity-session,.document-title,.title-line,.content-heading,.extraction-heading,.extraction-actions,.rag-heading,.rag-actions,.rag-form-footer,.scope-toggle,.compact-heading{display:flex;align-items:center}.brand{gap:11px}.brand-mark{display:grid;width:36px;height:36px;place-items:center;border-radius:6px;background:#163f4a;color:#fff;font-size:.72rem;font-weight:800}.brand strong,.brand span{display:block;letter-spacing:0}.brand strong{font-size:.96rem}.brand span{margin-top:2px;color:#69777d;font-size:.72rem}.topbar-actions{gap:22px}.connection{display:flex;align-items:center;gap:7px;color:#66747a;font-size:.8rem}.connection>span{width:8px;height:8px;border-radius:50%;background:#b8c0c3}.connection.online>span{background:#25815f}.connection.offline>span{background:#bf4e42}.identity-control{gap:9px;color:#5d6b71;font-size:.78rem}.identity-control select{min-width:92px;padding:7px 28px 7px 10px;border:1px solid #cad1d4;border-radius:5px;background:#fff;color:#1f2c31}.identity-session{gap:10px;color:#42535a;font-size:.78rem}.identity-session>span{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-status{color:#66747a;font-size:.78rem}.compact-button{min-height:32px;padding:5px 11px}.auth-gate{display:grid;min-height:calc(100vh - 68px);place-items:center;padding:32px 18px;background:#f7f9f9;text-align:center}.auth-gate>div{display:grid;justify-items:center;gap:18px}.auth-gate .brand-mark{width:48px;height:48px}.auth-gate h1{font-size:1.35rem}.session-error{max-width:36rem;color:#b42318;font-size:.9rem}.workspace{display:grid;grid-template-columns:minmax(320px,380px) minmax(0,1fr);min-height:calc(100vh - 68px)}.sidebar{padding:28px 22px;border-right:1px solid #d7dcde;background:#f8f9f9}.sidebar-heading{display:flex;justify-content:space-between;align-items:end;gap:16px}.section-label{margin:0 0 5px;color:#397180;font-size:.7rem;font-weight:800;text-transform:uppercase}h1,h2,h3,h4,p{letter-spacing:0}h1{margin:0;font-size:1.55rem;line-height:1.2}.secondary-button,.danger-button,.load-more,.primary-button{min-height:36px;padding:7px 13px;border:1px solid #c7d0d3;border-radius:5px;background:#fff;color:#26363c;font-weight:650}.secondary-button:hover,.load-more:hover{border-color:#77939b;background:#f5f8f8}.upload-button{width:100%;min-height:44px;margin:24px 0 18px;border:0;border-radius:6px;background:#176b62;color:#fff;font-weight:750}.upload-button span{margin-right:6px;font-size:1.2rem}.upload-button:hover{background:#125950}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.summary-strip{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:16px;border:1px solid #dfe4e5;background:#fff}.summary-strip div{padding:10px 12px;border-right:1px solid #e4e8e9}.summary-strip div:last-child{border-right:0}.summary-strip strong,.summary-strip span{display:block}.summary-strip strong{font-size:1rem}.summary-strip span{margin-top:2px;color:#718087;font-size:.68rem}.daily-summary{margin:18px 0 16px;padding:16px 0 18px;border-top:1px solid #d9dfe0;border-bottom:1px solid #d9dfe0}.compact-heading{justify-content:space-between;gap:12px;margin-bottom:12px}.compact-heading h2,.compact-heading h3{margin:0;font-size:1rem}.full-width{width:100%}.summary-status{padding:4px 6px;border-radius:4px;font-size:.64rem;font-weight:750}.summary-pending,.summary-running{background:#e3eef3;color:#24627a}.summary-ready{background:#f1ece0;color:#775b20}.summary-confirmed{background:#dcefe7;color:#196149}.summary-failed{background:#f5dfdc;color:#953b33}.summary-preview{display:grid;gap:10px}.summary-preview p{margin:0;overflow-wrap:anywhere;color:#34444a;font-size:.76rem;line-height:1.55}.summary-preview>span{color:#708087;font-size:.68rem}.delivery-note{padding:8px 10px;border-left:2px solid #429077;background:#eaf5f0;color:#196149!important}.inline-error{margin:10px 0 0;color:#983f36;font-size:.72rem}.document-list{display:grid;gap:4px}.document-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:68px;padding:10px;border:1px solid transparent;border-radius:6px;background:transparent;text-align:left}.document-row:hover{background:#eef3f3}.document-row.selected{border-color:#bdd1d0;background:#e4eeee}.file-type{display:grid;width:40px;height:46px;place-items:center;border:1px solid #c8d1d3;border-radius:4px;background:#fff;color:#54656c;font-size:.58rem;font-weight:800}.file-type.large{width:48px;height:56px;flex:0 0 auto}.file-summary{min-width:0}.file-summary strong,.file-summary span{display:block}.file-summary strong{overflow:hidden;font-size:.83rem;text-overflow:ellipsis;white-space:nowrap}.file-summary span{margin-top:5px;color:#748086;font-size:.68rem}.status-badge{padding:4px 7px;border-radius:999px;font-size:.64rem;font-weight:750;white-space:nowrap}.status-stored{background:#e8edf0;color:#52636b}.status-processing{background:#e3eef3;color:#24627a}.status-ready{background:#dcefe7;color:#196149}.status-failed{background:#f5dfdc;color:#953b33}.list-message,.empty-list,.content-message{padding:32px 16px;color:#748188;text-align:center}.empty-list strong,.empty-list span{display:block}.empty-list span{margin-top:6px;font-size:.78rem}.detail-panel{position:relative;min-width:0;padding:36px clamp(28px,5vw,76px) 64px;background:#fff}.notice{display:flex;justify-content:space-between;gap:18px;margin-bottom:22px;padding:11px 14px;border-left:3px solid;font-size:.82rem}.notice.success{border-color:#25815f;background:#edf7f3;color:#245c49}.notice.error{border-color:#bf4e42;background:#fbefed;color:#833a34}.notice button{border:0;background:transparent;color:inherit;font-size:1rem}.empty-detail{min-height:62vh;display:grid;align-content:center;justify-items:center;color:#738087;text-align:center}.empty-symbol{display:grid;width:72px;height:84px;place-items:center;border:1px solid #ccd4d6;color:#52666d;font-size:.72rem;font-weight:800}.empty-detail h2{margin:18px 0 6px;color:#27363c;font-size:1.2rem}.empty-detail p{margin:0;font-size:.85rem}.document-header{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;padding-bottom:28px;border-bottom:1px solid #e0e4e5}.document-title{min-width:0;gap:16px;align-items:flex-start}.document-title>div{min-width:0}.title-line{gap:12px;align-items:flex-start}.title-line h2{overflow-wrap:anywhere;margin:2px 0 0;font-size:clamp(1.25rem,2.4vw,1.8rem);line-height:1.25}.document-title p{margin:8px 0 0;color:#718087;font-size:.78rem}.danger-button{flex:0 0 auto;border-color:#d7aaa5;color:#933f37}.metadata-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:22px 0;border:1px solid #e2e6e7;background:#e2e6e7}.metadata-grid div{min-width:0;padding:12px 14px;background:#f8f9f9}.metadata-grid dt{color:#748188;font-size:.67rem}.metadata-grid dd{margin:5px 0 0;overflow-wrap:anywhere;font-size:.8rem;font-weight:650}.mono{font-family:Consolas,monospace;font-weight:400!important}.state-banner{margin-top:24px;padding:18px 20px;border-left:3px solid}.state-banner strong{font-size:.9rem}.state-banner p{margin:6px 0 0;color:#5f6f75;font-size:.8rem}.waiting-state{border-color:#3c7a8d;background:#edf5f7}.failed-state{border-color:#b94d42;background:#fbefed}.sync-section{margin-top:34px;padding:26px 0 30px;border-top:1px solid #dfe4e5;border-bottom:1px solid #dfe4e5}.sync-empty{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:76px;padding:18px 20px;background:#f7f9f9;color:#68777d;font-size:.82rem}.sync-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.sync-target{min-width:0;padding:14px;border:1px solid #dce2e3;background:#f8fafa}.sync-target div{display:flex;justify-content:space-between;gap:8px}.sync-target strong{overflow-wrap:anywhere;font-size:.78rem}.sync-target span{color:#397180;font-size:.66rem}.sync-target small{display:block;margin-top:10px;overflow-wrap:anywhere;color:#748188;font-family:Consolas,monospace;font-size:.62rem}.extraction-section{padding:26px 0 30px;border-bottom:1px solid #dfe4e5}.extraction-heading{justify-content:space-between;gap:20px;margin-bottom:18px}.extraction-heading h3{margin:0;font-size:1.25rem}.extraction-actions{gap:9px}.extraction-status{padding:5px 8px;border-radius:4px;font-size:.68rem;font-weight:750}.extraction-pending{background:#f1ece0;color:#775b20}.extraction-running{background:#e3eef3;color:#24627a}.extraction-succeeded{background:#dcefe7;color:#196149}.extraction-failed{background:#f5dfdc;color:#953b33}.icon-button{display:grid;width:34px;height:34px;place-items:center;border:1px solid #c7d0d3;border-radius:5px;background:#fff;color:#35474e;font-size:1.05rem}.icon-button:hover{border-color:#77939b;background:#f5f8f8}.primary-button{border-color:#176b62;background:#176b62;color:#fff}.primary-button:hover{background:#125950}.extraction-message,.extraction-empty,.extraction-progress{min-height:76px;padding:20px;background:#f7f9f9;color:#68777d;font-size:.82rem}.extraction-empty{display:flex;align-items:center;justify-content:space-between;gap:20px}.extraction-progress{display:grid;align-content:center;gap:5px;border-left:3px solid #3c7a8d}.extraction-progress strong{color:#294951}.extraction-error{border-left:3px solid #b94d42;background:#fbefed;color:#833a34}.extraction-results{border-top:1px solid #e3e7e8}.extraction-field{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(0,1.8fr);gap:28px;padding:20px 0;border-bottom:1px solid #e3e7e8}.field-summary{min-width:0}.field-summary>span,.field-summary>strong,.field-summary>small{display:block}.field-summary>span{color:#718087;font-size:.68rem}.field-summary>strong{margin-top:6px;overflow-wrap:anywhere;color:#1f2d32;font-size:.96rem}.field-summary>strong.unidentified{color:#78858a;font-weight:500}.field-summary>small{margin-top:7px;color:#397180;font-size:.68rem}.evidence-list{display:grid;gap:10px}.evidence-list figure{margin:0;padding-left:14px;border-left:2px solid #b7cacd}.evidence-list figcaption{color:#68787e;font-size:.67rem}.evidence-list blockquote{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#34444a;font-size:.8rem;line-height:1.55}.no-evidence{align-self:center;color:#8a9498;font-size:.72rem}.rag-section{padding:30px 0;border-bottom:1px solid #dfe4e5}.rag-heading{justify-content:space-between;gap:20px;margin-bottom:18px}.rag-heading h3{margin:0;font-size:1.25rem}.rag-actions{gap:9px}.rag-status{padding:5px 8px;border-radius:4px;font-size:.68rem;font-weight:750}.rag-pending{background:#f1ece0;color:#775b20}.rag-running{background:#e3eef3;color:#24627a}.rag-answered{background:#dcefe7;color:#196149}.rag-refused{background:#eceff0;color:#59696f}.rag-failed{background:#f5dfdc;color:#953b33}.rag-form{display:grid;gap:10px}.rag-form textarea{width:100%;min-height:84px;resize:vertical;padding:12px 14px;border:1px solid #cbd3d5;border-radius:5px;background:#fff;color:#243238;line-height:1.5}.rag-form textarea:focus{outline:2px solid #acd0cc;outline-offset:1px;border-color:#438078}.rag-form-footer{justify-content:space-between;gap:16px}.scope-toggle{gap:8px;color:#5f6f75;font-size:.76rem}.scope-toggle input{width:16px;height:16px;accent-color:#176b62}.rag-message{display:grid;gap:5px;margin-top:16px;padding:18px 20px;color:#68777d;font-size:.82rem}.rag-progress{border-left:3px solid #3c7a8d;background:#edf5f7}.rag-progress strong{color:#294951}.rag-refused{border-left:3px solid #8b989d;background:#f4f6f6}.rag-error{border-left:3px solid #b94d42;background:#fbefed;color:#833a34}.rag-result{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);gap:28px;margin-top:20px;padding-top:20px;border-top:1px solid #e3e7e8}.rag-answer>span{color:#718087;font-size:.68rem}.rag-answer p{margin:7px 0 0;overflow-wrap:anywhere;color:#1f2d32;font-size:.98rem;font-weight:650;line-height:1.6}.rag-answer small{display:block;margin-top:10px;color:#718087;font-size:.68rem}.rag-citations{display:grid;gap:10px}.rag-citations figure{margin:0;padding:12px 14px;border-left:2px solid #8eb4b4;background:#f7f9f9}.rag-citations figcaption{display:flex;justify-content:space-between;gap:14px;color:#61747a;font-size:.67rem}.rag-citations blockquote{margin:8px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#34444a;font-size:.8rem;line-height:1.55}.content-section{margin-top:34px}.content-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px}.content-heading h3{margin:0;font-size:1.25rem}.parser-meta{color:#728087;font-size:.7rem;text-align:right}.content-block{display:grid;grid-template-columns:92px minmax(0,1fr);gap:20px;padding:18px 0;border-top:1px solid #e6e9ea}.block-locator{display:flex;flex-direction:column;gap:4px;color:#728087;font-size:.67rem}.content-block p,.content-block h4{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.content-block p{color:#2c3a40;font-size:.9rem}.content-block h4{font-size:1rem}.load-more{display:block;margin:22px auto 0}@media(max-width:820px){.topbar{height:auto;min-height:64px;padding:12px 16px}.topbar-actions{gap:12px}.connection{gap:5px;font-size:.72rem}.identity-control>span{display:none}.workspace{display:block}.sidebar{padding:22px 16px;border-right:0;border-bottom:1px solid #d7dcde}.document-list{max-height:280px;overflow-y:auto}.detail-panel{padding:26px 18px 52px}}@media(max-width:520px){.brand span{display:none}.document-header{display:block}.danger-button{margin-top:18px}.metadata-grid{grid-template-columns:1fr}.content-heading{display:block}.extraction-field{grid-template-columns:1fr;gap:12px}.sync-grid{grid-template-columns:1fr}.sync-empty{align-items:flex-start;flex-direction:column}.rag-result{grid-template-columns:1fr;gap:18px}.rag-form-footer{align-items:flex-start;flex-direction:column}.parser-meta{margin-top:8px;text-align:left}.content-block{grid-template-columns:1fr;gap:8px}.block-locator{flex-direction:row;gap:10px}}
