:root{
  --ink:#10272b;--ink-2:#173f46;--teal:#0e7779;--teal-2:#159395;--teal-soft:#e4f3f1;
  --blue:#356ae6;--blue-soft:#edf3ff;--amber:#e39222;--amber-soft:#fff5e5;
  --red:#b9343d;--red-deep:#8f2028;--red-soft:#fff0f1;--purple:#8156b5;--paper:#f1f5f5;--white:#fff;
  --line:#d9e3e2;--line-soft:#e9efee;--muted:#6f8082;--shadow:0 12px 35px rgba(17,57,62,.08);
  font-family:"Microsoft YaHei UI","PingFang SC","Segoe UI",sans-serif;color:var(--ink);background:var(--paper)
}
*{box-sizing:border-box}body{margin:0;min-width:1180px;background:linear-gradient(145deg,#e7f0ef 0,#f5f7f7 38%,#eef2f2 100%);font-size:14px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}[hidden]{display:none!important}
.auth-state{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:12px;color:var(--muted)}.auth-state>span,.busy span{width:28px;height:28px;border:3px solid #c9d8d5;border-top-color:var(--teal);border-radius:50%;animation:spin .75s linear infinite}.quotation-login{width:min(390px,calc(100vw - 32px));padding:30px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.quotation-login header{display:flex;align-items:center;gap:13px;margin-bottom:22px}.quotation-login header i{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--red-deep);color:#fff;font-style:normal;font-weight:800}.quotation-login h1{margin:0;color:var(--ink);font-size:21px}.quotation-login header p{margin:5px 0 0;font-size:11px}.quotation-login label{display:grid;gap:7px;margin-top:13px;color:var(--muted);font-size:11px}.quotation-login input{height:42px;padding:0 11px;border:1px solid var(--line);border-radius:9px;outline:none}.quotation-login input:focus{border-color:#68aaa7;box-shadow:0 0 0 3px rgba(14,119,121,.1)}.quotation-login button{width:100%;margin-top:18px}.quotation-login .login-message{min-height:18px;margin:12px 0 0;color:var(--red);font-size:11px}.quotation-login small{display:block;margin-top:14px;text-align:center}.quotation-login small a{color:var(--teal);text-decoration:none}
.app-shell{min-height:100vh}.sidebar{position:fixed;z-index:30;inset:0 auto 0 0;width:224px;padding:20px 14px;background:linear-gradient(180deg,#10282d 0,#0d2025 100%);color:#d9e7e7}.side-brand{display:flex;align-items:center;gap:12px;padding:4px 8px 24px;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.09)}.side-brand i{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#b82b2f;color:#fff;font-style:normal;font-weight:800;box-shadow:inset 0 0 0 2px rgba(255,255,255,.75)}.side-brand span,.side-brand b,.side-brand small{display:block}.side-brand b{font-size:17px;letter-spacing:.05em}.side-brand small{margin-top:3px;color:#95afb1;font-size:11px}.sidebar nav{margin-top:18px}.sidebar nav p{margin:20px 10px 7px;color:#799598;font-size:11px}.sidebar nav button{display:flex;align-items:center;gap:11px;width:100%;height:44px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:#bfd0d1;text-align:left}.sidebar nav button span{width:20px;color:#7f9da0;font-size:17px;text-align:center}.sidebar nav button:hover{background:rgba(255,255,255,.05)}.sidebar nav button.active{background:#fff;color:var(--ink);font-weight:800;box-shadow:0 8px 22px rgba(0,0,0,.18)}.sidebar nav button.active span{color:var(--teal)}.side-foot{position:absolute;left:14px;right:14px;bottom:18px;padding:13px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.04)}.side-foot b,.side-foot span,.side-foot small{display:block}.side-foot b{color:#fff;font-size:12px}.side-foot span{margin:6px 0 9px;color:#8fa7a9;font-size:11px;line-height:1.55}.side-foot small{color:#63c5bb}
.main-shell{min-height:100vh;margin-left:224px;padding-bottom:88px}.topbar{position:sticky;top:0;z-index:25;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;border-bottom:1px solid rgba(180,200,199,.75);background:rgba(246,249,249,.9);backdrop-filter:blur(16px)}.topbar:before{content:"";position:absolute;left:26px;bottom:-1px;width:46px;height:3px;border-radius:9px;background:linear-gradient(90deg,var(--red-deep),#dd5860)}.topbar h1{margin:0;font-size:23px}.topbar p{margin:5px 0 0;color:var(--muted);font-size:11px}.session{display:flex;align-items:center;gap:16px}.session a{color:var(--teal);text-decoration:none;font-size:12px}.session-logout{padding:0;border:0;background:transparent;color:var(--red-deep);font-size:12px}.server-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:99px;background:var(--teal-soft);color:var(--teal);font-size:11px;font-weight:800}.page-area{padding:22px}.app-page{display:none}.app-page.active{display:block}.card{border:1px solid rgba(199,215,213,.9);border-radius:16px;background:#fff;box-shadow:var(--shadow)}
.quote-context{position:relative;padding:20px 22px;overflow:hidden}.quote-context:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,var(--red-deep),rgba(185,52,61,.18) 45%,transparent)}.context-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.context-head h2{display:inline-block;margin:0 0 0 10px;font-size:21px}.context-head p{margin:9px 0 0;color:var(--muted);font-size:12px}.primary-actions{display:flex;gap:9px}.button{min-height:38px;padding:9px 15px;border:0;border-radius:9px;font-weight:700;white-space:nowrap}.button:disabled{opacity:.45;cursor:not-allowed}.button-soft{border:1px solid var(--line);background:#fff}.button-dark{background:var(--ink);color:#fff}.button-blue{background:var(--blue);color:#fff;box-shadow:0 7px 18px rgba(53,106,230,.2)}.button-red{background:linear-gradient(135deg,var(--red-deep),#c83d45);color:#fff;box-shadow:0 8px 20px rgba(143,32,40,.2)}.button-red:hover{background:linear-gradient(135deg,#7d1820,#b52d36)}.button-red-soft{border:1px solid #e8bec1;background:var(--red-soft);color:var(--red-deep)}.text-button{border:0;background:transparent;color:var(--teal);padding:6px;font-weight:700;font-size:12px}.text-button:disabled{color:#aab5b5}.status-pill{display:inline-flex;padding:5px 9px;border-radius:99px;background:var(--teal-soft);color:var(--teal);font-size:11px;font-weight:800}.status-pill.final{background:#f9e8e9;color:#992e34}
.context-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line-soft)}.context-grid label,.totals-bar label,.mapping-controls label,.mapping-grid label,.dictionary-editor label{display:grid;gap:6px;color:var(--muted);font-size:11px}.context-grid .span-2{grid-column:span 2}.context-grid input,.context-grid select,.totals-bar input,.mapping-controls :is(input,select),.mapping-grid select,.dictionary-toolbar input,.dictionary-editor input,.dictionary-editor select,.library-search input,.price-search input{height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px;outline:none}.context-grid :is(input,select):focus,.totals-bar input:focus,.mapping-controls :is(input,select):focus,.mapping-grid select:focus,.dictionary-toolbar input:focus,.dictionary-editor :is(input,select):focus,.library-search input:focus,.price-search input:focus{border-color:#68aaa7;box-shadow:0 0 0 3px rgba(14,119,121,.1)}.context-foot{display:flex;gap:16px;align-items:center;margin-top:13px;color:var(--muted);font-size:11px}.context-foot span:first-child{color:var(--teal);font-weight:800}
.stats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:14px 0}.stat{position:relative;min-height:92px;padding:16px 18px;overflow:hidden}.stat:after{content:"";position:absolute;right:-22px;bottom:-32px;width:72px;height:72px;border-radius:50%;background:currentColor;opacity:.07}.stat span{color:var(--muted);font-size:12px}.stat strong{display:block;margin-top:8px;font-size:26px;line-height:1}.stat.total{color:var(--blue)}.stat.confirmed{color:var(--teal)}.stat.recommended{color:#4383d9}.stat.review{color:var(--amber)}.stat.unmatched{color:var(--red)}.stat.inquiry{color:var(--purple)}
.workbench-grid{display:grid;grid-template-columns:minmax(930px,1fr) 330px;gap:14px}.quote-board,.match-panel{min-width:0}.table-toolbar{display:flex;align-items:center;gap:12px;min-height:61px;padding:10px 14px;border-bottom:1px solid var(--line-soft)}.search-box{display:flex;align-items:center;width:310px;height:39px;border:1px solid var(--line);border-radius:9px;background:#fff}.search-box span{padding-left:11px;color:#789091;font-size:18px}.search-box input{min-width:0;flex:1;border:0;outline:none;padding:0 10px;background:transparent}.filter-tabs{display:flex;gap:4px;padding:4px;border-radius:9px;background:#f1f5f5}.filter-tabs button{height:30px;padding:0 11px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:11px}.filter-tabs button.active{background:#fff;color:var(--blue);font-weight:800;box-shadow:0 2px 8px rgba(20,54,59,.09)}.line-summary{margin-left:auto;white-space:nowrap}.line-summary b{font-size:12px}.line-summary span{margin-left:8px;color:var(--amber);font-size:11px}
.quote-table-wrap{position:relative;min-height:450px;max-height:calc(100vh - 455px);overflow:auto}.quote-table{width:1510px;min-width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:12px}.quote-table th{position:sticky;top:0;z-index:6;padding:11px 8px;border-bottom:1px solid var(--line);background:#f2f7f6;color:#556b6d;text-align:left;white-space:nowrap}.column-resizer{position:absolute;z-index:8;top:0;right:-5px;width:10px;height:100%;cursor:col-resize;touch-action:none}.column-resizer:after{content:"";position:absolute;top:7px;bottom:7px;left:4px;width:1px;background:#cddbd9}.column-resizer:hover:after,.column-resizer.active:after{width:2px;background:var(--red)}body.column-resizing{cursor:col-resize;user-select:none}.quote-table td{padding:8px;border-bottom:1px solid var(--line-soft);background:#fff;vertical-align:top}.quote-table tr:hover td{background:#f8fbfa}.quote-table tr.selected td{background:#eef8f6}.quote-table tr td:first-child{padding-left:12px}.status-dot{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid;border-radius:99px;font-weight:800;white-space:nowrap}.status-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.status-dot.s-confirmed{color:#087a67;border-color:#bfe4dc;background:#eaf8f5}.status-dot.s-recommended{color:#356ae6;border-color:#cfe0ff;background:#edf3ff}.status-dot.s-review{color:#a46108;border-color:#f2d2a3;background:#fff5e6}.status-dot.s-unmatched{color:#b62d49;border-color:#f1c4ce;background:#fff0f3}.status-dot.s-inquiry{color:#7650a8;border-color:#dacced;background:#f6f0fc}.instrument-cell{min-width:0}.instrument-cell input,.spec-input,.cell-input,.cell-select,.cell-textarea{width:100%;min-width:0;border:1px solid transparent;border-radius:6px;background:transparent;padding:6px;outline:none}.instrument-cell input:first-child{font-weight:800}.instrument-cell small{display:block;margin:3px 6px 0;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.instrument-cell input:focus,.spec-input:focus,.cell-input:focus,.cell-select:focus,.cell-textarea:focus{border-color:#7eb9b5;background:#fff}.cell-textarea{min-height:34px;resize:vertical}.candidate-button{width:100%;min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;text-align:left}.candidate-button b,.candidate-button span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.candidate-button span{margin-top:3px;color:var(--muted);font-size:10px}.match-dot{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%}.institution-name{display:block;max-width:100%;overflow:hidden;color:var(--teal);font-weight:700;white-space:nowrap;text-overflow:ellipsis}.money{text-align:right;white-space:nowrap}.delete-line{border:0;background:transparent;color:#a5afaf;font-size:18px}.delete-line:hover{color:var(--red)}.empty-table{min-height:440px;display:grid;place-content:center;justify-items:center;gap:10px;color:var(--muted)}.empty-table b{color:var(--ink);font-size:19px}.empty-table span{font-size:12px}
.totals-bar{display:flex;align-items:center;justify-content:flex-end;gap:28px;padding:14px 18px;border-top:1px solid var(--line);background:#fbfcfc;border-radius:0 0 16px 16px}.totals-bar>p{margin:0 auto 0 0;color:var(--muted);font-size:11px}.totals-bar label{width:130px}.totals-bar>div span,.totals-bar>div b{display:block}.totals-bar>div span{color:var(--muted);font-size:10px}.totals-bar>div b{margin-top:4px;font-size:18px}.totals-bar .grand b{color:var(--teal);font-size:24px}
.match-panel{align-self:start;overflow:hidden}.match-panel>header{display:flex;align-items:center;justify-content:space-between;padding:17px;border-bottom:1px solid var(--line-soft)}.match-panel header span:first-child{color:var(--muted);font-size:10px}.match-panel h2{margin:5px 0 0;font-size:16px}.panel-badge{padding:4px 8px;border-radius:99px;background:var(--amber-soft);color:#966015;font-size:10px;font-weight:800}.price-search{display:grid;grid-template-columns:1fr auto;gap:7px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}.evidence-empty{padding:52px 18px;color:var(--muted);font-size:12px;line-height:1.8}.source-card{margin:14px;padding:12px;border-radius:10px;background:#f3f7f7}.source-card b,.source-card span{display:block}.source-card span{margin-top:5px;color:var(--muted);font-size:11px}.candidate-list{display:grid;gap:8px;padding:0 14px 14px;max-height:520px;overflow:auto}.candidate-card{padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left}.candidate-card:hover,.candidate-card.active{border-color:#58a8a4;box-shadow:0 0 0 3px rgba(14,119,121,.08)}.candidate-card b{display:block}.candidate-card p{margin:5px 0;color:var(--muted);font-size:11px;line-height:1.5}.candidate-card footer{display:flex;justify-content:space-between;color:var(--teal);font-weight:800;font-size:11px}.confirm-match{margin:0 14px 14px;width:calc(100% - 28px)}.ocr-confidence{margin:12px 14px;padding:8px;border-radius:7px;background:var(--teal-soft);color:var(--teal);font-size:11px}.ocr-confidence.low{background:var(--amber-soft);color:#8b5b17}
.section-title{display:flex;align-items:flex-start;justify-content:space-between;margin:4px 2px 18px}.section-title h2{margin:0;font-size:24px}.section-title p{margin:7px 0 0;color:var(--muted);font-size:12px}.page-card{overflow:hidden}.page-toolbar{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line-soft)}.history-list>p,.dictionary-list>p{padding:20px;color:var(--muted)}.history-item{display:grid;grid-template-columns:170px 1fr 120px 110px 80px;align-items:center;width:100%;padding:14px 18px;border:0;border-bottom:1px solid var(--line-soft);background:#fff;text-align:left}.history-item:hover{background:#f5faf9}.history-item b,.history-item span,.history-item em{font-style:normal}.history-item span{color:var(--muted)}.history-item em{color:var(--teal);font-weight:800}.library-search{display:grid;grid-template-columns:1fr auto;gap:10px;padding:18px;border-bottom:1px solid var(--line-soft)}.library-search input{height:42px}.library-result{min-height:400px}.empty-page{display:grid;place-items:center;min-height:400px;color:var(--muted)}.library-result table,.dictionary-list table{width:100%;border-collapse:collapse;font-size:12px}.library-result th,.library-result td,.dictionary-list th,.dictionary-list td{padding:11px 12px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}.library-result th,.dictionary-list th{background:#f3f7f7;color:var(--muted)}.library-result small,.dictionary-list small{display:block;margin-top:4px;color:var(--muted)}
.dictionary-intro{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:14px;overflow:hidden}.dictionary-intro>div{padding:20px;border-right:1px solid var(--line-soft)}.dictionary-intro>div:last-child{border-right:0}.dictionary-intro span,.dictionary-intro strong{display:block}.dictionary-intro span{color:var(--muted);font-size:11px}.dictionary-intro strong{margin-top:7px;font-size:17px}.dictionary-intro p{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.65}.dict-actions{display:flex;gap:5px}.dict-actions button{border:0;background:transparent;color:var(--teal);font-size:11px}.dict-actions .danger{color:var(--red)}.dictionary-state{display:inline-flex;padding:4px 7px;border-radius:99px;background:var(--teal-soft);color:var(--teal);font-weight:800}.dictionary-state.off{background:#eef0f0;color:#7d8989}.base-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.institution-card{padding:20px}.institution-card header{display:flex;justify-content:space-between;gap:10px}.institution-card h3{margin:0}.institution-card p{color:var(--muted);font-size:11px;line-height:1.65}.institution-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 0}.institution-card dt{color:var(--muted);font-size:10px}.institution-card dd{margin:5px 0 0;font-weight:800}.architecture-note{margin-top:14px;padding:20px}.architecture-note h3{margin:0}.architecture-note dl{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 0}.architecture-note dl div{padding:14px;border-radius:10px;background:#f3f7f7}.architecture-note dt{color:var(--muted);font-size:11px}.architecture-note dd{margin:7px 0 0;font-weight:700}
.action-dock{position:fixed;z-index:20;left:224px;right:0;bottom:0;min-height:76px;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-top:1px solid var(--line);background:rgba(255,255,255,.94);box-shadow:0 -12px 35px rgba(17,57,62,.08);backdrop-filter:blur(14px)}.action-dock>div:last-child{display:flex;gap:9px}.action-dock b,.action-dock span{display:block}.action-dock span{margin-top:4px;color:var(--muted);font-size:10px}
.busy{position:fixed;inset:0;z-index:80;display:grid;place-content:center;justify-items:center;gap:12px;background:rgba(242,247,246,.9)}.toast{position:fixed;z-index:90;right:24px;bottom:96px;padding:12px 17px;border-radius:9px;background:var(--ink);color:#fff;opacity:0;transform:translateY(8px);transition:.18s;pointer-events:none}.toast.show{opacity:1;transform:none}
dialog{width:min(760px,calc(100% - 40px));border:0;border-radius:16px;padding:0;box-shadow:0 35px 110px rgba(9,36,40,.35)}dialog::backdrop{background:rgba(12,34,38,.65)}.dialog-card{padding:22px}.dialog-card>header,.dialog-card>footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-card header h2{margin:0;font-size:21px}.dialog-card header p{margin:7px 0 0;color:var(--muted);font-size:12px}.dialog-card header>button{border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 12px}.dialog-card>footer{justify-content:flex-end;margin-top:18px}.dialog-message{margin-right:auto;color:var(--red);font-size:11px}.dialog-kicker{display:block;margin-bottom:6px;color:var(--muted);font-size:10px}.mapping-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.mapping-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f3f7f7}
.learning-dialog{width:min(820px,calc(100% - 40px))}.learning-summary{margin:18px 0 12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f7f9fc}.learning-summary small,.learning-summary b,.learning-summary p{display:block}.learning-summary>small{color:var(--muted)}.learning-summary>b{margin-top:8px;font-size:16px}.learning-summary strong{color:var(--blue);font-size:21px}.learning-summary>p{margin:7px 0 0;color:var(--muted);font-size:12px}.learning-summary.no-new{border-color:#cbd6d4;background:#f3f7f6}.learning-summary.no-new strong{color:var(--green)}.learning-breakdown{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.learning-metric{display:inline-flex!important;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;background:#e7f6f1;color:#08785d;font-size:12px;font-weight:700}.learning-metric::before{content:"";width:7px;height:7px;border-radius:50%;background:#149875}.learning-metric.pending{background:#fff2da;color:#9b6014}.learning-metric.pending::before{background:#e28a17}.learning-metric.existing{background:#eaf0f4;color:#536674}.learning-metric.existing::before{background:#7f919e}.learning-warning{padding:12px;border:1px solid #f2d299;border-radius:10px;background:var(--amber-soft);color:#8a5a16;font-size:12px}.learning-warning.neutral{border-color:#d8e1e0;background:#f4f8f7;color:#526b66}.learning-list{display:grid;gap:8px;max-height:320px;margin-top:12px;overflow:auto}.learning-item{display:grid;grid-template-columns:minmax(150px,1fr) 28px minmax(180px,1fr);align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fafcfc}.learning-item small{display:block;margin-top:4px;color:var(--muted)}.learning-item i{font-style:normal;color:var(--blue);text-align:center}.learning-empty{padding:18px;border:1px dashed #c9d5d3;border-radius:10px;background:#fbfdfc;text-align:center}.learning-empty b{display:block;color:var(--ink)}.learning-empty span{display:block;margin-top:5px;color:var(--muted);font-size:12px}.learning-dialog footer>span{margin-right:auto;color:var(--muted);font-size:11px}
.session-expired-dialog{width:min(520px,calc(100% - 40px))}.session-expired-copy{margin:18px 0;padding:18px;border:1px solid #d7e1df;border-radius:12px;background:#f4f8f7}.session-expired-copy b{display:block;color:var(--ink);font-size:16px}.session-expired-copy p{margin:8px 0 0;color:var(--muted);line-height:1.7}.session-expired-dialog footer{justify-content:flex-end}
.quote-preview-dialog{width:min(1240px,calc(100% - 36px));height:min(90vh,860px);max-height:90vh;border-radius:20px;background:#edf2f1}.quote-preview-card{height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}.quote-preview-card>header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 24px 16px;border-bottom:1px solid #d8e1df;background:#fff}.quote-preview-card>header:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(180deg,var(--red-deep),#d84c54)}.quote-preview-card h2{margin:0;font-size:23px}.quote-preview-card header p{margin:6px 0 0;color:var(--muted);font-size:12px}.preview-header-actions{display:flex;align-items:center;gap:10px}.preview-header-actions button{border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px 12px}.official-badge{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid #ecc7ca;border-radius:99px;background:var(--red-soft);color:var(--red-deep);font-size:11px;font-weight:800}.official-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red)}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 24px;border-bottom:1px solid #d8e1df;background:#f8fafa}.preview-setting label{display:flex;align-items:center;gap:10px;cursor:pointer}.preview-setting input{width:17px;height:17px;accent-color:var(--red-deep)}.preview-setting span,.preview-setting b,.preview-setting small,.preview-security b,.preview-security span{display:block}.preview-setting b,.preview-security b{font-size:12px}.preview-setting small,.preview-security span{margin-top:3px;color:var(--muted);font-size:10px}.preview-security{padding-left:28px;background:linear-gradient(90deg,transparent,rgba(185,52,61,.05));text-align:right}.preview-security b{color:var(--red-deep)}.preview-stage{min-height:0;padding:16px 22px;overflow:auto;background:linear-gradient(145deg,#dfe6e5,#eef2f1)}.preview-document{max-width:1140px;min-height:100%;margin:0 auto;padding:26px 28px 22px;border-top:4px solid var(--red-deep);border-radius:12px;background:#fff;box-shadow:0 14px 36px rgba(22,51,55,.11)}.preview-doc-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid var(--line)}.preview-doc-head span,.preview-doc-head h3,.preview-doc-head p{display:block;margin:0}.preview-doc-head span{color:var(--red-deep);font-size:12px;font-weight:800;letter-spacing:.18em}.preview-doc-head h3{margin-top:5px;font-size:25px;letter-spacing:.03em}.preview-doc-head p{margin-top:5px;color:var(--muted);font-size:11px}.preview-doc-head em{padding:7px 11px;border-radius:99px;background:var(--teal-soft);color:var(--teal);font-size:11px;font-style:normal;font-weight:800}.preview-doc-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:18px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.preview-doc-meta>div{min-width:0;padding:10px 12px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}.preview-doc-meta>div:nth-child(4n){border-right:0}.preview-doc-meta>div:nth-last-child(-n+4){border-bottom:0}.preview-doc-meta>div.wide{grid-column:span 2}.preview-doc-meta span,.preview-doc-meta b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-doc-meta span{color:var(--muted);font-size:10px}.preview-doc-meta b{margin-top:5px;font-size:12px}.preview-doc-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}.preview-doc-table{width:100%;min-width:1000px;border-collapse:collapse;font-size:11px}.preview-doc-table th,.preview-doc-table td{padding:10px 9px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}.preview-doc-table th{background:#f1f6f5;color:#52686a;white-space:nowrap}.preview-doc-table tbody tr:last-child td{border-bottom:0}.preview-doc-table th:last-child,.preview-doc-table td:last-child{border-right:0}.preview-doc-table td:first-child,.preview-doc-table th:first-child{text-align:center}.preview-doc-table .money{text-align:right}.preview-doc-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.preview-doc-bottom>p{margin:0;color:var(--muted);font-size:11px}.preview-doc-bottom>p b,.preview-doc-bottom>p span{display:block}.preview-doc-bottom>p b{margin-bottom:5px;color:var(--ink)}.preview-doc-bottom>div{display:flex;align-items:flex-end;gap:22px}.preview-doc-bottom>div span,.preview-doc-bottom>div strong{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:400;white-space:nowrap}.preview-doc-bottom>div b{color:var(--ink);font-size:15px}.preview-doc-bottom>div strong b{color:var(--red-deep);font-size:22px}.quote-preview-card>footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 24px;border-top:1px solid #d8e1df;background:#fff}.quote-preview-card>footer p{margin:0}.quote-preview-card>footer p b,.quote-preview-card>footer p span{display:block}.quote-preview-card>footer p b{font-size:12px}.quote-preview-card>footer p span{margin-top:4px;color:var(--muted);font-size:10px}.preview-export-actions{display:flex;gap:8px}
.preview-doc-meta{gap:1px;background:var(--line-soft)}.preview-doc-meta>div{border:0;background:#fff}
.preview-document{max-width:860px;min-height:0;padding:18px;border:0;background:transparent;box-shadow:none}.official-quote-sheet{position:relative;width:min(100%,794px);min-height:1123px;margin:0 auto;padding:12px 14px 14px;background:#fff;color:#111;font-family:"SimSun","宋体","Microsoft YaHei UI",sans-serif;font-size:10px;box-shadow:0 14px 38px rgba(22,51,55,.16)}.official-letterhead{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;min-height:132px;border-bottom:1px solid #111}.official-letterhead img{width:96px;height:96px;margin:auto;object-fit:contain}.official-letterhead>div{text-align:center}.official-letterhead h3{margin:1px 0;font-family:"SimHei","黑体",sans-serif;font-size:20px;letter-spacing:1px}.official-letterhead p{margin:3px 0;font-weight:700;line-height:1.15}.official-contact-grid{display:grid;grid-template-columns:1fr 1fr;border-left:1px solid #111}.official-contact-grid>div{display:grid;grid-template-columns:63px minmax(0,1fr);min-height:21px;border-right:1px solid #111;border-bottom:1px solid #111}.official-contact-grid>div.full{grid-column:1/-1}.official-contact-grid b,.official-contact-grid span{display:flex;align-items:center;padding:2px 5px}.official-contact-grid b{justify-content:center;border-right:1px solid #111;letter-spacing:2px;white-space:nowrap}.official-contact-grid span{font-weight:700}.official-quote-title{height:28px;display:flex;align-items:center;justify-content:center;margin:0;border-right:1px solid #111;border-bottom:1px solid #111;border-left:1px solid #111;font-family:"SimHei","黑体",sans-serif;font-size:18px;letter-spacing:6px}.official-quote-sheet .preview-doc-table-wrap{border:0;border-radius:0;overflow:visible}.official-quote-sheet .preview-doc-table{min-width:0;border-collapse:collapse;table-layout:fixed;font-size:10px}.official-quote-sheet .preview-doc-table th,.official-quote-sheet .preview-doc-table td{height:22px;padding:2px 4px;border:1px solid #111;text-align:center;vertical-align:middle;line-height:1.15;overflow-wrap:anywhere}.official-quote-sheet .preview-doc-table th{background:#fff;color:#111;font-weight:700;white-space:normal}.official-quote-sheet .preview-doc-table td.money{text-align:center}.official-detail-table th:nth-child(1){width:7%}.official-detail-table th:nth-child(2){width:21%}.official-detail-table th:nth-child(3){width:17%}.official-detail-table th:nth-child(4){width:8%}.official-detail-table th:nth-child(5),.official-detail-table th:nth-child(6){width:8%}.official-detail-table th:nth-child(7){width:10%}.official-detail-table th:nth-child(8){width:7%}.official-detail-table th:nth-child(9){width:14%}.official-detail-table tfoot th,.official-detail-table tfoot td{height:23px;font-weight:700}.official-terms{border-right:1px solid #111;border-left:1px solid #111}.official-terms p{margin:0;padding:3px 5px;border-bottom:1px solid #111;line-height:1.25}.official-payment{position:relative;min-height:132px;border-right:1px solid #111;border-left:1px solid #111}.official-payment p{min-height:21px;margin:0;padding:3px 5px;border-bottom:1px solid #111;line-height:1.25}.official-payment img{position:absolute;z-index:2;right:9%;bottom:8px;width:112px;height:112px;object-fit:contain}.official-signatures{display:grid;grid-template-columns:1.15fr 1.15fr 1.6fr;min-height:48px;border-left:1px solid #111}.official-signatures div{display:flex;align-items:center;justify-content:center;padding:5px;border-right:1px solid #111;border-bottom:1px solid #111;text-align:center}.official-quote-sheet img{user-select:none}
.learning-metric.excluded{background:#f8e7e8;color:#a23b43}.learning-metric.excluded::before{background:#c95159}
.wide-dialog{width:min(1120px,calc(100% - 40px))}.dictionary-card{min-height:560px}.dictionary-toolbar{display:grid;grid-template-columns:1fr auto auto;gap:8px;margin:18px 0 12px}.dictionary-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,.8fr);gap:14px}.dictionary-list{max-height:470px;overflow:auto;border:1px solid var(--line);border-radius:10px}.dictionary-editor{align-content:start;gap:10px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#f8fafa}.dictionary-editor:not([hidden]){display:grid}.dictionary-editor h3{margin:0 0 4px}.dictionary-target-search{display:grid;grid-template-columns:1fr auto;gap:6px}.dictionary-enabled{grid-template-columns:auto 1fr!important;align-items:center}.dictionary-enabled input{height:auto}.dictionary-editor>div:last-child{display:flex;justify-content:flex-end;gap:8px}.dictionary-editor .dialog-message{min-height:18px;margin:0}
@keyframes spin{to{transform:rotate(1turn)}}
@media(max-width:1450px){.context-grid{grid-template-columns:repeat(4,1fr)}.workbench-grid{grid-template-columns:1fr}.match-panel{display:grid;grid-template-columns:260px 1fr}.match-panel>header{grid-column:1}.price-search{grid-column:1}.match-panel #match-evidence{grid-column:2;grid-row:1/3}.candidate-list{grid-template-columns:repeat(2,1fr);max-height:300px}.quote-table-wrap{max-height:560px}}
