:root{--bg:#f7f8fc;--panel:#fff;--panel-soft:#f8f9fd;--text:#1d1f2f;--muted:#7a7f8f;--line:#eceef5;--line-strong:#dde1ec;--brand:#4b45c9;--brand-2:#348ff5;--brand-soft:#f0efff;--green:#31bb75;--green-soft:#e8f8ef;--amber:#ffae2b;--amber-soft:#fff3de;--red:#ff5157;--red-soft:#ffecec;--purple:#ba4bd3;--font-sans:Inter, "Microsoft YaHei UI", "PingFang SC", "Segoe UI", Arial, sans-serif;--radius-panel:8px;--radius-pill:999px;--shadow-panel:0 18px 44px #2225480f;--space-page-x:28px;--space-section-y:18px;--space-workbench-gap:12px;--space-panel:14px}*{box-sizing:border-box}html{background:var(--bg);min-width:920px}body{min-width:920px;min-height:100vh;color:var(--text);background:var(--bg);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}button,input,textarea,select{font:inherit}button{cursor:default;border:0}button:disabled{cursor:not-allowed;opacity:.58}#root{min-height:100vh}.app-shell{background:var(--bg);grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.app-sidebar{background:var(--panel);border-right:1px solid var(--line);width:260px;min-height:100vh;padding:28px 20px}.brand{align-items:center;gap:10px;min-height:42px;margin-bottom:28px;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg, var(--brand-2), var(--brand));border-radius:var(--radius-panel);place-items:center;width:34px;height:34px;font-size:18px;font-weight:900;display:grid}.brand-text{min-width:0}.brand-title{letter-spacing:0;margin:0;font-size:22px;font-weight:800;line-height:1.15}.brand-subtitle{color:var(--muted);margin:4px 0 0;font-size:12px;font-weight:700}.sidebar-nav{gap:8px;display:grid}.sidebar-link{color:#4a5060;border-radius:var(--radius-panel);text-align:left;background:0 0;align-items:center;width:100%;min-height:44px;padding:0 12px;font-size:14px;font-weight:700;text-decoration:none;display:flex}.sidebar-link.is-active{color:var(--brand);background:var(--brand-soft)}.app-main{grid-template-rows:auto 1fr;min-width:0;display:grid}.topbar{min-height:72px;padding:14px var(--space-page-x) 12px;background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;display:flex}.topbar-title{min-width:0}.page-title{color:var(--text);letter-spacing:0;margin:0;font-size:24px;font-weight:800;line-height:1.2}.topbar-meta{color:var(--muted);margin:5px 0 0;font-size:13px;font-weight:700}.topbar-status{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.status-badge{color:#6f7482;border-radius:var(--radius-pill);white-space:nowrap;background:#f0f2f6;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.status-badge.is-online{color:var(--green);background:var(--green-soft)}.logout-button{min-height:28px;color:var(--red);background:var(--red-soft);border-radius:var(--radius-pill);white-space:nowrap;padding:0 10px;font-size:12px;font-weight:900}.content-shell{min-width:0;padding:18px var(--space-page-x) 28px}.workbench-page{gap:12px;min-width:0;display:grid}.login-page{background:var(--bg);place-items:center;min-width:920px;min-height:100vh;padding:28px;display:grid}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-panel);width:min(460px,100%);box-shadow:var(--shadow-panel);padding:28px}.login-brand{margin-bottom:22px}.login-form{gap:14px;display:grid}.login-form h1{color:var(--text);margin:0;font-size:24px;line-height:1.2}.login-form p{color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.45}.login-form label{gap:6px;display:grid}.login-form label span{color:var(--muted);font-size:13px;font-weight:900}.login-form input{width:100%;min-height:42px;color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius-panel);background:#fff;padding:0 12px;font-weight:800}.login-form input:focus{border-color:var(--brand);outline:2px solid #4b45c924}.product-tabs{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-panel);min-height:48px;box-shadow:var(--shadow-panel);align-items:center;gap:8px;padding:7px 10px;display:flex;overflow-x:auto}.product-tabs button,.result-tabs button{color:#6c7280;border-radius:var(--radius-pill);white-space:nowrap;background:0 0;min-height:32px;padding:0 16px;font-weight:800}.product-tabs button.is-active,.result-tabs button.is-active{color:#fff;background:var(--brand)}.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.metric-card{color:#fff;border-radius:var(--radius-panel);align-content:center;gap:4px;min-height:82px;padding:14px 18px;display:grid;overflow:hidden}.metric-card span,.metric-card small{opacity:.88}.metric-card strong{font-size:24px;line-height:1.15}.metric-card.blue{background:linear-gradient(135deg,#348ff5,#3279ee)}.metric-card.purple{background:linear-gradient(135deg,#6b65d8,#56519b)}.metric-card.amber{background:linear-gradient(135deg,#ffb037,#ff9d25)}.metric-card.green{background:linear-gradient(135deg,#31bb75,#11a36a)}.workbench-grid{align-items:stretch;gap:var(--space-workbench-gap);grid-template-columns:minmax(230px,.62fr) minmax(630px,1.5fr) minmax(310px,.82fr);min-width:0;display:grid}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-panel);min-width:0;box-shadow:var(--shadow-panel)}.input-panel,.check-panel,.result-panel{min-height:500px;padding:var(--space-panel)}.panel-head{justify-content:space-between;align-items:flex-start;gap:10px;min-height:40px;margin-bottom:10px;display:flex}.panel-head h2,.section-head h2{color:var(--text);margin:0;font-size:16px;font-weight:800;line-height:1.25}.section-head h2{font-size:18px}.panel-head p,.section-head p{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.35}.pill{border-radius:var(--radius-pill);white-space:nowrap;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.pill.success{color:var(--green);background:var(--green-soft)}.pill.warning{color:#a76100;background:var(--amber-soft)}.pill.neutral{color:#6f7482;background:#f0f2f6}.tsv-field{gap:8px;margin-bottom:12px;display:grid}.tsv-field span{color:var(--muted);font-size:13px;font-weight:800}.tsv-field textarea{resize:vertical;width:100%;min-height:218px;color:var(--text);border-radius:var(--radius-panel);background:#fbfcff;border:1px dashed #cbd1df;padding:12px;font-family:Consolas,Microsoft YaHei UI,monospace;font-size:13px;line-height:1.45}.tsv-field textarea:focus,.prefix-field input:focus{border-color:var(--brand);outline:2px solid #4b45c924}.image-drop{min-height:86px;color:var(--muted);text-align:center;border-radius:var(--radius-panel);background:#fbfcff;border:1px dashed #cbd1df;place-items:center;gap:6px;margin-bottom:10px;padding:12px;display:grid}.image-drop strong{color:var(--text);font-size:14px}.image-drop span{max-width:280px;font-size:12px;line-height:1.45}.image-drop.has-image{text-align:left;grid-template-columns:72px minmax(0,1fr);place-items:center stretch}.image-drop img{object-fit:cover;border:1px solid var(--line);border-radius:6px;width:72px;height:56px}.image-drop.has-image div{gap:6px;min-width:0;display:grid}.image-drop.has-image strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-button{min-height:36px;color:var(--brand);background:var(--brand-soft);border-radius:var(--radius-pill);justify-content:center;align-items:center;margin-bottom:12px;padding:0 14px;font-size:13px;font-weight:900;display:inline-flex}.file-button input{display:none}.text-button{color:var(--brand);background:0 0;justify-self:start;padding:0;font-size:12px;font-weight:900}.prefix-field{gap:6px;display:grid}.prefix-field span{color:var(--muted);font-size:13px;font-weight:800}.prefix-field input{width:100%;min-height:38px;color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius-panel);background:#fff;padding:0 12px;font-weight:800}.prefix-field small{color:var(--muted);font-size:12px}.error-note{color:#9d2529;background:var(--red-soft);border-radius:var(--radius-panel);margin-top:10px;padding:10px;font-size:13px;font-weight:800;line-height:1.4}.action-row,.action-stack{gap:8px;margin-top:12px;display:flex}.action-stack{flex-wrap:wrap}.primary,.secondary{border-radius:var(--radius-pill);white-space:nowrap;justify-content:center;align-items:center;min-height:42px;padding:0 18px;font-weight:900;display:inline-flex}.primary{color:#fff;background:var(--brand)}.secondary{color:var(--brand);background:var(--brand-soft)}.secondary.small{min-height:36px}.quote-matrix-wrap{border:1px solid var(--line);border-radius:var(--radius-panel);overflow-x:auto}.quote-matrix,.history-table{border-collapse:collapse;width:100%}.quote-matrix{table-layout:fixed;min-width:0}.quote-matrix th,.quote-matrix td{text-align:left;vertical-align:middle;border-bottom:1px solid var(--line);min-height:38px;padding:8px 9px}.quote-matrix thead th,.quote-matrix tbody th{color:var(--muted);background:#fbfcff}.quote-matrix thead th{font-size:12px}.quote-matrix tbody th{width:82px;font-size:13px}.quote-matrix td span{overflow-wrap:anywhere;color:var(--text);font-weight:800;line-height:1.25;display:block}.matrix-input{width:100%;min-height:32px;color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 6px;font-weight:800;line-height:1.25}.matrix-input:focus{border-color:var(--brand);background:#fff;outline:2px solid #4b45c924}.empty-cell{color:var(--muted)!important;font-weight:700!important}.empty-state{line-height:1.5;color:var(--muted)!important;font-weight:700!important}.quote-matrix td em{min-width:36px;min-height:20px;color:var(--green);background:var(--green-soft);border-radius:var(--radius-pill);justify-content:center;align-items:center;margin-top:4px;font-size:11px;font-style:normal;font-weight:900;display:inline-flex}.quote-matrix .needs-review th,.quote-matrix .needs-review td{background:var(--amber-soft)}.quote-matrix .needs-review td em{color:#a76100;background:#ffe7b7}.review-note{color:#8a5300;background:var(--amber-soft);border-radius:var(--radius-panel);gap:4px;margin-top:10px;padding:10px;display:grid}.review-note span{font-size:13px;line-height:1.35}.result-tabs{background:var(--panel-soft);border-radius:var(--radius-pill);gap:8px;margin-bottom:10px;padding:5px;display:flex;overflow-x:auto}.quote-output{overflow-wrap:anywhere;min-width:0;min-height:318px;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-panel);background:#fcfdff;padding:13px;font-size:13px;line-height:1.42}.quote-output p{margin:0 0 7px}.quote-output hr{background:var(--line);border:0;height:1px;margin:14px 0}.highlight{color:#a86600;background:var(--amber-soft);border-radius:4px;padding:1px 4px;font-weight:900}.history-section{min-width:0;margin-top:6px}.section-head{justify-content:space-between;align-items:center;gap:18px;margin-bottom:12px;display:flex}.table-panel{overflow-x:auto}.history-table th,.history-table td{text-align:left;white-space:nowrap;border-bottom:1px solid var(--line);padding:12px 14px}.history-table th{color:var(--muted);background:#fbfcff;font-size:13px}.history-table tr:last-child td{border-bottom:0}.history-actions{align-items:center;gap:10px;display:inline-flex}.status{border-radius:var(--radius-pill);justify-content:center;align-items:center;min-width:72px;min-height:28px;font-size:12px;font-weight:900;display:inline-flex}.status.done,.status.sent{color:var(--green);background:var(--green-soft)}.status.warning{color:#a76100;background:var(--amber-soft)}.status.failed{color:var(--red);background:var(--red-soft)}.status.planned{color:#6f7482;background:#f0f2f6}.history-detail{padding:var(--space-panel);margin-top:12px}.history-detail-grid{gap:12px;display:grid}.history-detail-grid strong{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.history-detail-grid p,.history-detail-grid pre{color:var(--text);margin:0;font-size:13px;line-height:1.45}.history-detail-grid pre{white-space:pre-wrap;border:1px solid var(--line);border-radius:var(--radius-panel);background:#fbfcff;max-height:240px;padding:12px;font-family:Consolas,Microsoft YaHei UI,monospace;overflow:auto}.settings-page,.integrations-page{gap:12px;display:grid}.settings-head{justify-content:space-between;align-items:center;gap:18px;min-height:62px;padding:0 2px;display:flex}.settings-head h2{color:var(--text);margin:0;font-size:22px;line-height:1.2}.settings-head p{color:var(--muted);margin:5px 0 0;font-size:13px;font-weight:700}.settings-panel,.config-card,.settings-empty,.placeholder-page{padding:var(--space-panel)}.settings-table-wrap{border:1px solid var(--line);border-radius:var(--radius-panel);overflow-x:auto}.settings-table{border-collapse:collapse;width:100%;min-width:920px}.settings-table th,.settings-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:12px 14px;font-size:13px;line-height:1.45}.settings-table th{color:var(--muted);background:#fbfcff;font-weight:900}.settings-table tr:last-child td{border-bottom:0}.settings-table td strong{color:var(--text)}.field-chip-list{flex-wrap:wrap;gap:6px;min-width:260px;display:flex}.field-chip-list span{color:#5e6475;border-radius:var(--radius-pill);background:#f1f3f8;align-items:center;min-height:24px;padding:0 8px;font-size:12px;font-weight:800;display:inline-flex}.settings-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.config-card h2{color:var(--text);margin:0 0 12px;font-size:16px}.config-card dl{gap:12px;margin:0;display:grid}.config-card div{gap:4px;display:grid}.config-card dt{color:var(--muted);font-size:12px;font-weight:900}.config-card dd{overflow-wrap:anywhere;color:var(--text);margin:0;font-size:13px;font-weight:700;line-height:1.45}.settings-empty,.placeholder-page{color:var(--muted);font-weight:800}.integration-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.integration-summary-card{align-content:center;gap:4px;min-height:110px;padding:18px;display:grid}.integration-summary-card span{color:var(--muted);font-size:13px;font-weight:900}.integration-summary-card strong{color:var(--text);font-size:28px;line-height:1.1}.integration-summary-card p{color:var(--muted);margin:0;font-size:13px;line-height:1.4}.integration-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.integration-card{min-height:280px;padding:var(--space-panel);align-content:start;gap:12px;display:grid}.integration-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.integration-card-head span:first-child{color:var(--muted);font-size:12px;font-weight:900}.integration-card h2{color:var(--text);margin:4px 0 0;font-size:17px;line-height:1.25}.integration-card p{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.integration-scope{min-height:26px;color:var(--brand);background:var(--brand-soft);border-radius:var(--radius-pill);justify-self:start;align-items:center;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.integration-card dl{gap:8px;margin:0;display:grid}.integration-card dl div{border-top:1px solid var(--line);grid-template-columns:96px minmax(0,1fr);gap:10px;padding-top:8px;display:grid}.integration-card dt,.integration-card dd{margin:0;font-size:13px;line-height:1.35}.integration-card dt{color:var(--muted);font-weight:900}.integration-card dd{overflow-wrap:anywhere;color:var(--text);font-weight:700}@media (width<=1100px){html,body{min-width:920px}.workbench-grid{grid-template-columns:minmax(230px,.62fr) minmax(420px,1.5fr) minmax(260px,.82fr)}}@media (width<=1280px){.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workbench-grid{grid-template-columns:1fr}.input-panel,.check-panel,.result-panel{min-height:auto}.quote-matrix{min-width:620px}.settings-card-grid,.integration-summary,.integration-grid{grid-template-columns:1fr}}
