:root { --primary:#0486fe; --success:#67c23a; --warning:#e6a23c; --text:#303133; --regular:#606266; --muted:#909399; --line:#e4e7ed; --line-soft:#f2f6fc; --surface:#fff; --page:#f2f6fc; --sidebar:#1f2d3d; --sidebar-active:#475669; }
* { box-sizing:border-box; }
body { margin:0; min-width:1100px; color:var(--text); background:var(--page); font:14px/1.55 Inter,"PingFang SC","Microsoft YaHei",sans-serif; }
button,input { font:inherit; }
button { cursor:pointer; }
.order-app { display:grid; grid-template-columns:256px minmax(0,1fr); min-height:100vh; }
.order-sidebar { position:sticky; top:0; height:100vh; padding:22px 20px; background:var(--sidebar); color:#fff; }
.order-brand { position:relative; display:flex; gap:14px; align-items:center; }
.order-brand-mark { display:grid; place-items:center; width:34px; height:34px; border-radius:8px; background:var(--primary); color:#fff; font-size:12px; }
.order-brand b,.order-brand small { display:block; white-space:nowrap; }.order-brand b { font-size:15px; }.order-brand small { margin-top:1px; color:#9ba6b5; font-size:11px; letter-spacing:.2px; }
.order-nav { display:grid; gap:5px; margin-top:46px; }.order-nav a { display:block; padding:10px 12px; border-radius:6px; color:#aeb9c7; text-decoration:none; }.order-nav a:not(.nav-group) span { margin-left:16px; }.order-nav a.active { background:var(--sidebar-active); color:#fff; }.order-nav .nav-group { color:#fff; font-weight:600; }.order-nav .nav-system { margin-top:30px; }
.sidebar-toggle { position:absolute; top:4px; right:0; display:grid; place-items:center; width:26px; height:26px; padding:0; border:1px solid rgba(255,255,255,.18); border-radius:4px; background:rgba(255,255,255,.06); color:#dce5ef; font-size:20px; line-height:1; }.sidebar-toggle:hover { background:rgba(255,255,255,.14); }
.order-app.sidebar-collapsed { grid-template-columns:64px minmax(0,1fr); }.order-app.sidebar-collapsed .order-sidebar { padding:22px 12px; }.order-app.sidebar-collapsed .order-brand { justify-content:center; }.order-app.sidebar-collapsed .order-brand > span:last-of-type,.order-app.sidebar-collapsed .order-nav span { display:none; }.order-app.sidebar-collapsed .sidebar-toggle { top:39px; right:7px; }.order-app.sidebar-collapsed .order-nav { margin-top:48px; }.order-app.sidebar-collapsed .order-nav a { display:grid; place-items:center; padding:10px 0; }.order-app.sidebar-collapsed .order-nav a:not(.nav-group)::before { color:inherit; content:'•'; font-size:22px; line-height:14px; }
.order-main { min-width:0; padding-bottom:38px; }.order-topbar { display:flex; justify-content:space-between; height:76px; padding:25px 32px; border-bottom:1px solid var(--line-soft); background:#fff; color:var(--regular); font-size:12px; }.topbar-tools { display:flex; align-items:center; gap:18px; }.autosave { color:var(--muted); }.autosave::first-letter { color:var(--success); }.role-switch { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:12px; }.role-switch select { height:26px; padding:0 24px 0 8px; border:1px solid var(--line); border-radius:3px; outline:0; background:#fff; color:var(--regular); font:inherit; }
.workbench-tab-row { display:flex; gap:8px; padding:10px 28px; border-bottom:1px solid var(--line); background:#fff; }.workbench-tab-row a,.workbench-tab-row button { padding:6px 10px; border:1px solid var(--line); border-radius:4px; background:#fff; color:var(--regular); font-size:12px; line-height:18px; text-decoration:none; }.workbench-tab-row button.active { border-color:var(--primary); background:var(--primary); color:#fff; }.workbench-tab-row i { margin-left:6px; font-style:normal; }
.card { margin:24px 28px 0; border:1px solid var(--line-soft); border-radius:8px; background:var(--surface); }.page-title-bar { display:flex; align-items:center; height:48px; min-height:48px; margin:14px 28px 0; padding:0 18px; border:0; border-left:3px solid var(--text); border-radius:0; background:#fff; }.page-title-bar h1 { margin:0; font-size:16px; font-weight:700; line-height:22px; white-space:nowrap; }.page-title-bar p { overflow:hidden; margin:0 0 0 12px; color:var(--muted); font-size:12px; font-weight:400; line-height:18px; text-overflow:ellipsis; white-space:nowrap; }.order-hero { justify-content:space-between; }.order-hero-title { display:flex; align-items:center; min-width:0; }.order-hero h1 em { color:var(--muted); font-style:normal; }.hero-actions { display:flex; align-items:center; gap:12px; }.btn { display:inline-flex; align-items:center; justify-content:center; height:36px; padding:0 18px; border:1px solid transparent; border-radius:5px; font-weight:500; text-decoration:none; }.btn-primary { background:var(--primary); color:#fff; }.btn-secondary { border-color:var(--line); background:#fff; color:var(--regular); }.status { padding:3px 10px; border:1px solid; border-radius:4px; font-size:12px; }.status-warning { border-color:var(--warning); color:var(--warning); background:#fffcf5; }.status-success { border-color:var(--success); color:var(--success); background:#f3f9ee; }.status-danger { border-color:#f56c6c; color:#f56c6c; background:#fef1f1; }.hero-approve-btn { background:var(--success); color:#fff; }.hero-reject-btn { border-color:#f5a2a2; background:#fff; color:#e65353; }.order-locked-tip { color:var(--muted); font-size:12px; }
.flow-card { padding:15px 24px 20px; }.section-title { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }.section-title h2 { margin:0; font-size:16px; line-height:24px; }.section-title p { margin:2px 0 0; color:var(--muted); font-size:12px; }.section-title.compact { justify-content:flex-start; align-items:center; }.section-title.compact p { margin:0; }.order-flow { display:grid; grid-template-columns:repeat(4,1fr); gap:0; padding:19px 0 0; margin:0; list-style:none; }.order-flow li { position:relative; display:flex; align-items:center; gap:8px; color:var(--muted); white-space:nowrap; }.order-flow li:not(:last-child)::after { position:absolute; z-index:0; top:13px; left:29px; width:calc(100% - 50px); height:2px; background:var(--line); content:""; }.order-flow b { position:relative; z-index:1; display:grid; place-items:center; width:26px; height:26px; border:2px solid var(--line); border-radius:50%; background:#fff; font-size:12px; }.order-flow .done,.order-flow .done b { color:var(--success); border-color:var(--success); }.order-flow .done::after { background:var(--success); }.order-flow .current,.order-flow .current b { color:var(--warning); border-color:var(--warning); }.order-flow .current::after { background:var(--warning); }
.order-grid { display:grid; grid-template-columns:1fr; gap:20px; margin:20px 28px 0; }.order-grid .card { margin:0; padding:20px 24px; }.upload-trigger { cursor:pointer; }.material-list { margin-top:18px; }.material-row { display:grid; grid-template-columns:28px 112px 1fr 120px; gap:16px; align-items:center; min-height:52px; border-bottom:1px solid var(--line-soft); color:var(--regular); font-size:12px; }.material-row b { color:var(--text); }.material-row strong { color:var(--success); font-weight:500; }.doc { display:grid; place-items:center; width:28px; height:28px; border-radius:5px; color:#fff; font-style:normal; font-weight:700; }.doc.ok { background:var(--success); }.doc.warn { background:var(--warning); }.warn-text { color:var(--warning)!important; }
.review-reject-modal[hidden] { display:none; }.review-reject-modal { position:fixed; z-index:40; inset:0; display:grid; place-items:center; padding:24px; background:rgba(18,36,58,.38); }.review-reject-dialog { width:min(440px,100%); padding:22px; border-radius:8px; background:#fff; box-shadow:0 18px 42px rgba(26,48,77,.22); }.review-reject-dialog h2 { margin:0; color:var(--text); font-size:16px; line-height:24px; }.review-reject-dialog p { margin:6px 0 14px; color:var(--muted); font-size:12px; }.review-reject-dialog textarea { box-sizing:border-box; width:100%; padding:9px 10px; border:1px solid var(--line); border-radius:4px; outline:0; color:var(--regular); font:inherit; resize:vertical; }.review-reject-dialog textarea:focus { border-color:var(--primary); }.review-reject-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:16px; }.review-reject-actions .btn { height:32px; padding:0 14px; font-size:12px; }.hero-reject-confirm-btn { border:1px solid #f56c6c; background:#f56c6c; color:#fff; }
.declaration-card,.goods-card,.attachment-card { padding:20px 24px; }.declaration-fields { display:grid; grid-template-columns:repeat(3,1fr); gap:18px 48px; margin-top:24px; }.declaration-fields label { display:grid; gap:5px; color:var(--muted); font-size:12px; }.declaration-fields input,.declaration-fields textarea { width:100%; padding:0 0 8px; border:0; border-bottom:1px solid var(--line); outline:0; color:var(--regular); background:transparent; resize:vertical; }.declaration-fields input:focus,.declaration-fields textarea:focus { border-color:var(--primary); }.field-wide { grid-column:1 / -1; }.needs-input { color:var(--primary)!important; }.needs-input::placeholder { color:var(--primary); opacity:1; }
.link-btn,.text-btn { border:0; background:transparent; color:var(--primary); }.table-wrap { margin-top:18px; overflow:auto; }.goods-card table { width:100%; min-width:900px; border-collapse:collapse; text-align:left; }.goods-card th { padding:10px 14px; background:var(--page); color:var(--regular); font-size:12px; font-weight:500; }.goods-card td { padding:13px 14px; border-bottom:1px solid var(--line-soft); color:var(--regular); }.inline-input { width:96px; padding:2px 0; border:0; border-bottom:1px solid var(--primary); outline:0; background:transparent; }.result { font-size:12px; }.ok-result { color:var(--success); }.warn-result { color:var(--warning); }.goods-note { margin:12px 0 0; color:var(--muted); font-size:12px; }
.small-btn { height:30px; padding:0 12px; font-size:12px; }.attachment-tabs { display:flex; align-items:center; gap:20px; margin-top:18px; border-bottom:1px solid var(--line); }.attachment-tabs button { padding:9px 0; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--regular); font-size:12px; }.attachment-tabs button.active { border-bottom-color:var(--primary); color:var(--primary); }.attachment-tabs .btn { margin:0 0 8px auto; border-bottom:0; color:#fff; }.attachment-card table { width:100%; border-collapse:collapse; text-align:left; }.attachment-card th,.attachment-card td { padding:10px 14px; border:1px solid var(--line-soft); color:var(--regular); font-size:12px; }.empty-row { height:56px; text-align:center; color:var(--muted)!important; }.toast { position:fixed; right:24px; bottom:24px; z-index:3; transform:translateY(80px); padding:10px 14px; border-radius:6px; background:#27364a; color:#fff; opacity:0; transition:.2s; }.toast.show { transform:translateY(0); opacity:1; }
@media (max-width:1280px) { body { min-width:0; }.order-app { grid-template-columns:200px minmax(0,1fr); }.order-sidebar { padding:18px 12px; }.order-brand b { font-size:13px; }.order-brand small { font-size:9px; }.order-grid { grid-template-columns:1fr; }.declaration-fields { grid-template-columns:repeat(2,1fr); }.order-flow { font-size:12px; } }
@media (max-width:760px) { .order-app { display:block; }.order-sidebar { position:static; height:auto; }.order-nav { grid-template-columns:repeat(2,1fr); margin-top:20px; }.order-nav .nav-system { margin-top:0; }.order-main { overflow:hidden; }.order-topbar { height:auto; padding:14px 18px; }.workbench-tab-row { padding:10px 16px; }.card { margin:14px 16px 0; }.page-title-bar { margin:14px 16px 0; }.order-hero { gap:12px; overflow-x:auto; }.hero-actions { flex:none; }.flow-card { overflow:auto; }.order-flow { min-width:700px; }.order-grid { margin:14px 16px 0; }.declaration-fields { grid-template-columns:1fr; }.material-row { grid-template-columns:28px 78px 1fr 90px; gap:8px; }.material-row span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } }

/* OCR 校验：原单据与结构化识别结果并置，便于人工核对。 */
.ocr-workbench { display:grid; grid-template-columns:190px minmax(360px,1fr) minmax(300px,.8fr); gap:16px; margin-top:16px; }.ocr-file-list,.source-panel { overflow:hidden; border:1px solid var(--line); border-radius:6px; background:#f7f9fc; }.ocr-file-list { padding:10px; background:#fff; }.ocr-pane-title { display:flex; justify-content:space-between; padding:4px 4px 10px; border-bottom:1px solid var(--line-soft); color:var(--text); font-size:12px; }.ocr-pane-title span { color:var(--muted); }.ocr-file-button { display:grid; grid-template-columns:26px 1fr; gap:8px; width:100%; padding:10px 6px; border:0; border-bottom:1px solid var(--line-soft); background:#fff; color:var(--text); text-align:left; }.ocr-file-button:hover,.ocr-file-button.active { border-radius:5px; background:#eef7ff; }.ocr-file-button span { display:grid; gap:1px; min-width:0; }.ocr-file-button b { font-size:12px; font-weight:500; }.ocr-file-button small { overflow:hidden; color:var(--muted); font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.ocr-file-button em { grid-column:2; color:var(--warning); font-size:10px; font-style:normal; }.ocr-file-button em.ok { color:var(--success); }.file-icon { display:grid; place-items:center; width:24px; height:28px; border-radius:4px; color:#fff; font-size:10px; font-style:normal; font-weight:700; }.file-icon.excel { background:#29a36a; }.file-icon.pdf { background:#e16464; }.file-icon.empty { background:#b1bac6; }.ocr-file-tip { margin:12px 4px 0; color:var(--muted); font-size:10px; line-height:1.55; }.document-preview { padding:10px; }.pdf-toolbar { display:flex; justify-content:space-between; padding:7px 10px; border:1px solid var(--line); border-bottom:0; background:#fff; color:var(--muted); font-size:11px; }.document-sheet { min-height:260px; padding:18px 28px; border:1px solid #d8dee7; background:#fff; box-shadow:0 3px 10px rgba(31,45,61,.08); color:#495466; font-family:Georgia,"Times New Roman",serif; font-size:10px; }.sheet-title { margin:0; color:#202936; font-family:Arial,sans-serif; font-size:16px; font-weight:700; letter-spacing:1px; text-align:center; }.sheet-ref { margin:7px 0 14px; border-bottom:1px solid #d8dee7; padding-bottom:7px; color:#6b7685; text-align:center; }.sheet-grid { display:grid; grid-template-columns:110px 1fr; gap:4px 10px; }.sheet-grid span { color:#788391; }.sheet-grid b { font-weight:500; }.source-highlight { outline:2px solid rgba(230,162,60,.8); outline-offset:2px; background:#fff7df; cursor:pointer; }.sheet-table { display:grid; grid-template-columns:1.8fr .6fr .8fr; gap:0; margin-top:16px; border:1px solid #bfc8d3; }.sheet-table span { padding:5px; border-right:1px solid #bfc8d3; border-bottom:1px solid #bfc8d3; }.ocr-fields { display:grid; align-content:start; gap:7px; }.ocr-summary { display:flex; justify-content:space-between; padding:7px 0 10px; border-bottom:1px solid var(--line-soft); color:var(--muted); font-size:12px; }.ocr-summary b { color:var(--text); }.ocr-summary i { color:var(--warning); font-style:normal; }.ocr-field { display:grid; grid-template-columns:1fr auto; gap:3px 12px; width:100%; padding:9px 10px; border:1px solid var(--line-soft); border-radius:6px; background:#fff; color:var(--text); text-align:left; }.ocr-field:hover,.ocr-field.selected { border-color:#a9d2fb; background:#f8fcff; }.ocr-field span { color:var(--regular); font-size:12px; }.ocr-field small { margin-left:5px; color:var(--muted); }.ocr-field b { grid-column:1; font-size:12px; font-weight:500; }.ocr-field em { grid-column:2; grid-row:1 / span 2; align-self:center; color:var(--success); font-size:11px; font-style:normal; }.ocr-field.warning em,.ocr-field.warning b { color:var(--warning); }.ocr-issue-box { display:grid; gap:3px; padding:9px 10px; border-left:3px solid var(--warning); background:#fffbf3; color:var(--regular); font-size:11px; }.ocr-issue-box b { color:var(--warning); }.field-confirm { justify-self:start; margin-top:4px; padding:4px 0; }.ocr-focus { animation:ocrPulse 1.2s ease 2; } @keyframes ocrPulse { 50% { outline-color:var(--primary); background:#e8f3ff; } }
@media (max-width:1150px) { .ocr-workbench { grid-template-columns:180px 1fr; }.ocr-fields { grid-column:1 / -1; grid-template-columns:repeat(2,1fr); }.ocr-summary,.ocr-issue-box,.field-confirm { grid-column:1 / -1; }.document-sheet { min-height:180px; } } @media (max-width:760px) { .ocr-workbench { grid-template-columns:1fr; }.ocr-fields { grid-column:auto; grid-template-columns:1fr; }.ocr-summary,.ocr-issue-box,.field-confirm { grid-column:auto; } }

/* 订单资料识别卡：上传文件 → 客户/附属资料 → 商品明细。 */
.ocr-workbench { grid-template-columns:minmax(260px,.78fr) minmax(520px,1.22fr); align-items:stretch; }.ocr-upload-pane { min-height:330px; }.upload-material-link { appearance:none; border:0; background:transparent; color:var(--primary); cursor:pointer; font:inherit; font-size:12px; padding:0; }.upload-material-link:hover { color:var(--primary-dark); }.ocr-result-stack { display:grid; gap:12px; }.ocr-result-panel,.ocr-goods-result { border:1px solid var(--line); border-radius:6px; background:#fff; }.ocr-panel-head { display:flex; justify-content:space-between; align-items:center; padding:10px 12px; border-bottom:1px solid var(--line-soft); }.ocr-panel-head h3 { margin:0; font-size:14px; }.ocr-panel-head span { color:var(--muted); font-size:11px; }.ocr-result-panel { padding-bottom:10px; }.ocr-mini-fields { display:grid; grid-template-columns:repeat(2,1fr); gap:7px; padding:10px; }.ocr-mini-fields button { display:grid; gap:3px; padding:7px 8px; border:1px solid var(--line-soft); border-radius:4px; background:#fff; color:var(--text); text-align:left; }.ocr-mini-fields button:hover { border-color:#b8d9fb; background:#f8fcff; }.ocr-mini-fields span { color:var(--muted); font-size:11px; }.ocr-mini-fields b { font-size:12px; font-weight:500; }.ocr-mini-fields .warning b { color:var(--warning); }.ocr-attachment-list { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; padding:10px; }.ocr-attachment-list span { display:grid; gap:3px; padding:6px 8px; border:1px solid var(--line-soft); border-radius:4px; }.ocr-attachment-list b { color:var(--regular); font-size:11px; font-weight:500; }.ocr-attachment-list em { overflow:hidden; color:var(--muted); font-size:11px; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }.ocr-attachment-list em.ok,.ocr-goods-table em.ok { color:var(--success); }.ocr-goods-result { grid-column:1 / -1; overflow:hidden; }.ocr-goods-table { display:grid; grid-template-columns:50px 1.5fr 1fr .9fr .8fr .75fr; overflow:auto; }.ocr-goods-table > * { min-width:0; padding:8px 9px; border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); color:var(--regular); font-size:11px; font-style:normal; }.ocr-goods-table span { background:#f7f9fc; color:var(--muted); }.ocr-goods-table b { overflow:hidden; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }.ocr-goods-result .field-confirm { margin:7px 12px 9px; }.warning-text { color:var(--warning)!important; }
@media (max-width:1050px) { .ocr-workbench { grid-template-columns:1fr; }.ocr-upload-pane { min-height:0; }.ocr-result-stack { grid-template-columns:1fr; }.ocr-goods-result { grid-column:auto; } } @media (max-width:760px) { .ocr-mini-fields,.ocr-attachment-list { grid-template-columns:1fr; } }

/* 附属资料采用页签切换，新增操作与主操作按钮保持同一视觉层级。 */
.ocr-header-btn { height:28px; padding:0 10px; border-radius:4px; font-size:12px; line-height:28px; }
.ocr-pane-title .ocr-header-btn { margin-top:-3px; }
.attachment-result { padding-bottom:0; }
.attachment-result .ocr-panel-head { padding:8px 12px; }
.attachment-tabs { display:flex; gap:22px; margin:0; padding:0 12px; border-bottom:1px solid var(--line-soft); }
.attachment-tabs button { padding:9px 0 8px; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--regular); font-size:12px; }
.attachment-tabs button.active { border-bottom-color:var(--primary); color:var(--primary); }
.attachment-table-wrap { padding:10px 12px; overflow:auto; }
.attachment-ocr-table { width:100%; min-width:460px; border-collapse:collapse; text-align:left; }
.attachment-ocr-table th,.attachment-ocr-table td { padding:8px 10px; border:1px solid var(--line-soft); color:var(--regular); font-size:11px; font-weight:400; }
.attachment-ocr-table th { background:#f7f9fc; color:var(--muted); font-weight:500; }
.attachment-ocr-table .empty-row { height:42px; color:var(--muted); text-align:center; }
.attachment-ocr-table .table-action { color:var(--primary); }

/* 文件列表沿用订单表格的细边框、列分隔与紧凑行距，不改变文件字段内容。 */
.ocr-file-list { padding:0; border-color:#edf1f7; border-radius:6px; }
.ocr-pane-title { align-items:center; min-height:40px; padding:6px 12px; background:#fff; }
.ocr-file-button { grid-template-columns:38px minmax(0,1fr) 78px; column-gap:0; min-height:62px; padding:0 10px; border-radius:0!important; border-bottom:1px solid #edf1f7; }
.ocr-file-button:hover,.ocr-file-button.active { background:#f7fbff; }
.ocr-file-button > span { align-self:stretch; display:grid; align-content:center; gap:2px; padding:0 10px; border-left:1px solid #edf1f7; }
.ocr-file-button > em { grid-column:3; grid-row:1; align-self:stretch; display:flex; align-items:center; padding-left:10px; border-left:1px solid #edf1f7; font-size:11px; }
.ocr-file-button .file-icon { justify-self:center; align-self:center; width:22px; height:22px; border-radius:3px; }
.ocr-file-button b { font-size:12px; font-weight:500; }
.ocr-file-button small { font-size:10px; }
.ocr-file-tip { margin:0; padding:10px 12px; border-top:0; background:#fff; }

/* 文件项改为与“客户与报关要素”一致的独立细边框信息卡。 */
.ocr-file-list { padding:10px; }
.ocr-pane-title { min-height:34px; padding:2px 2px 8px; }
.ocr-file-button { grid-template-columns:28px minmax(0,1fr); column-gap:8px; min-height:0; margin:0 0 8px; padding:8px; border:1px solid var(--line-soft); border-radius:4px!important; }
.ocr-file-button:hover,.ocr-file-button.active { border-color:#b8d9fb; background:#f8fcff; }
.ocr-file-button > span { align-self:auto; display:grid; align-content:start; gap:2px; padding:0; border:0; }
.ocr-file-button > em { grid-column:2; grid-row:auto; align-self:auto; display:block; padding:0; border:0; font-size:10px; }
.ocr-file-button .file-icon { width:24px; height:28px; }
.ocr-file-tip { margin:2px 0 0; padding:4px 2px 0; border:0; }

/* 文件卡右侧固定显示解析状态及单文件操作。 */
.ocr-file-card { display:grid; grid-template-columns:minmax(0,1fr) 132px; min-height:66px; margin:0 0 8px; border:1px solid var(--line-soft); border-radius:4px; overflow:hidden; background:#fff; }
.ocr-file-card.active { border-color:#b8d9fb; background:#f8fcff; }
.ocr-file-card .ocr-file-button { min-height:0; margin:0; border:0!important; border-radius:0!important; background:transparent!important; }
.ocr-file-card .ocr-file-button > span { padding-right:8px; }
.file-status-bar { display:grid; align-content:center; gap:6px; padding:8px 9px; border-left:1px solid var(--line-soft); background:#fcfdff; }
.file-parse-status { color:var(--muted); font-size:11px; font-style:normal; }.file-parse-status.ok { color:var(--success); }.file-parse-status.pending { color:var(--warning); }.file-parse-status.parsing { color:var(--primary); }
.file-action-buttons { display:flex; gap:5px; }.file-action-buttons button { padding:0; border:0; background:transparent; color:var(--primary); font-size:11px; }.file-action-buttons button.danger { color:#f56c6c; }.file-action-buttons button:disabled { color:#c5cbd3; cursor:not-allowed; }.file-action-buttons button:hover:not(:disabled) { text-decoration:underline; }

/* 文件解析列表采用标准表格结构，字段与订单列表保持一致。 */
.ocr-workbench { grid-template-columns:minmax(560px,.95fr) minmax(520px,1.05fr); }
.ocr-file-list { overflow:visible; }
.file-table-wrap { overflow:auto; }
.file-parse-table { width:100%; min-width:550px; border-collapse:collapse; text-align:left; }
.file-parse-table th,.file-parse-table td { padding:8px 9px; border:1px solid var(--line-soft); color:var(--regular); font-size:11px; vertical-align:middle; }
.file-parse-table th { background:#f7f9fc; color:var(--muted); font-weight:500; white-space:nowrap; }
.file-parse-table th:first-child { width:42%; }.file-parse-table th:nth-child(2) { width:12%; }.file-parse-table th:nth-child(3) { width:10%; }.file-parse-table th:nth-child(4) { width:18%; }.file-parse-table th:last-child { width:18%; }
.ocr-file-row.active td { background:#f8fcff; }
.file-parse-table .ocr-file-button { display:grid; grid-template-columns:24px minmax(0,1fr); gap:8px; width:100%; min-height:0; margin:0; padding:0; border:0!important; border-radius:0!important; background:transparent!important; color:var(--text); text-align:left; }
.file-parse-table .ocr-file-button > span { display:grid; gap:2px; padding:0; border:0; }.file-parse-table .ocr-file-button b { font-size:11px; font-weight:500; }.file-parse-table .ocr-file-button small { font-size:10px; }.file-parse-table .file-icon { width:22px; height:24px; align-self:center; }
.file-parse-table td.file-action-buttons { display:table-cell; white-space:nowrap; }.file-parse-table .file-action-buttons button { margin-right:5px; font-size:11px; }.file-parse-table .file-action-buttons button:last-child { margin-right:0; }

/* 附属资料在商品明细后单独占满一行。 */
.ocr-workbench > .attachment-result { grid-column:1 / -1; }
.order-event-log { grid-column:1 / -1; border:1px solid var(--line); border-radius:6px; background:#fff; overflow:hidden; }
.event-timeline { display:flex; gap:0; margin:0; padding:14px 18px 16px; list-style:none; overflow:auto; }
.event-timeline li { position:relative; display:grid; grid-template-columns:auto 1fr; flex:1 0 190px; gap:7px; min-width:0; padding:0 16px 0 22px; color:var(--regular); font-size:12px; }
.event-timeline li::before { position:absolute; top:4px; left:6px; width:9px; height:9px; border:2px solid var(--primary); border-radius:50%; background:#fff; content:""; }
.event-timeline li:not(:last-child)::after { position:absolute; top:8px; left:17px; width:calc(100% - 18px); height:1px; background:var(--line); content:""; }
.event-timeline time { color:var(--muted); font-variant-numeric:tabular-nums; }.event-timeline span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.event-timeline .current::before { border-color:var(--success); background:var(--success); }
@media (max-width:760px) { .event-timeline { flex-direction:column; }.event-timeline li { flex-basis:auto; }.event-timeline li:not(:last-child)::after { display:none; } }

/* 客户与报关要素按申报字段采用三列完整展示。 */
.ocr-mini-fields { grid-template-columns:1fr; }
.ocr-mini-fields .field-wide { grid-column:1 / -1; }

/* 与既有 UI 规范统一：客户要素为“左标签 + 右输入框”的四列表单。 */
.ocr-mini-fields { grid-template-columns:1fr; gap:10px; padding:14px 12px; }
.ocr-mini-fields button { grid-template-columns:62px minmax(0, 1fr); align-items:center; gap:8px; padding:0; border:0; border-radius:0; background:transparent; }
.ocr-mini-fields button:hover { border:0; background:transparent; }
.ocr-mini-fields span { color:var(--regular); font-size:12px; text-align:right; }
.ocr-mini-fields b { display:flex; align-items:center; min-width:0; min-height:30px; padding:5px 8px; border:1px solid var(--line); border-radius:3px; background:#fff; color:var(--primary); font-size:11px; font-weight:400; line-height:1.35; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ocr-mini-fields b[contenteditable="true"],.ocr-goods-table b[contenteditable="true"],.attachment-ocr-table td[contenteditable="true"] { cursor:text; outline:0; }
.ocr-mini-fields b[contenteditable="true"]:focus,.ocr-goods-table b[contenteditable="true"]:focus,.attachment-ocr-table td[contenteditable="true"]:focus { border-color:var(--primary); box-shadow:0 0 0 2px rgba(4,134,254,.12); }
.ocr-mini-fields .warning-text { color:var(--warning); }
.ocr-mini-fields .field-wide { grid-template-columns:62px minmax(0, 1fr); }
.ocr-mini-fields .field-wide b { min-height:48px; align-items:flex-start; padding-top:8px; white-space:normal; }

/* 商品明细值以独立输入框呈现，保持原有表头与识别状态。 */
.ocr-goods-table { background:#fff; }
.ocr-goods-table > * { display:flex; align-items:center; min-height:42px; border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); }
.ocr-goods-table span { min-height:34px; background:#f7f9fc; color:var(--regular); font-size:11px; }
.ocr-goods-table b { min-height:28px; margin:7px 8px; padding:5px 8px; border:1px solid var(--line); border-radius:3px; background:#fff; color:var(--primary); font-size:11px; font-weight:400; line-height:1.35; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ocr-goods-table em { min-height:28px; margin:7px 8px; padding:5px 8px; border:1px solid var(--line); border-radius:3px; background:#fff; font-size:11px; }
@media (max-width:1250px) { .ocr-mini-fields { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width:760px) { .ocr-mini-fields { grid-template-columns:1fr; }.ocr-mini-fields .field-wide { grid-column:auto; } }

/* 商品明细表头与字段顺序对齐既有订单 UI。滚动仅发生在表格内容区，标题与新增按钮保持固定。 */
.ocr-goods-result { overflow:hidden; }
.ocr-goods-result > .ocr-panel-head { position:relative; z-index:1; flex:none; }
.ocr-goods-table span { display:flex; align-items:center; }
.ocr-goods-table span small { margin-left:auto; color:#a8b1bd; font-size:10px; font-weight:400; font-variant-numeric:tabular-nums; text-align:right; }
.ocr-goods-scroll { min-width:0; overflow:auto; }
.ocr-goods-scroll > .ocr-goods-table { overflow:visible; }
.ocr-goods-table { grid-template-columns:80px 100px 1.25fr 1fr 1fr 1fr 1.15fr 100px 70px 100px 70px 1.55fr 180px; min-width:1650px; }
.ocr-goods-table .goods-diff { min-height:42px; margin:0; padding:8px 9px; border:0; border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); background:transparent; font-style:normal; }.ocr-goods-table .goods-diff.has-diff { color:var(--warning); }.ocr-goods-table .goods-diff.no-diff { color:var(--success); }
.ocr-goods-table .goods-elements { min-height:60px; align-items:flex-start; overflow:visible; padding-top:7px; white-space:normal; }
.ocr-goods-table .goods-actions { gap:10px; padding:7px 9px; white-space:nowrap; }
.goods-actions button { padding:0; border:0; background:transparent; color:var(--primary); font-size:11px; }.goods-actions button.danger { color:#f56c6c; }

/* 顶部操作与进度条按既有 UI 的主按钮、箭头流程规范呈现。 */
.hero-actions { gap:10px; }.hero-actions .btn { height:32px; padding:0 12px; border-radius:3px; font-size:12px; }.hero-actions .btn span { margin-right:5px; font-size:12px; }
.hero-save-btn { background:var(--primary); color:#fff; }.hero-submit-btn { background:var(--success); color:#fff; }
.hero-draft-download { position:relative; display:inline-block; }.hero-draft-download .hero-draft-trigger { margin:0; }.hero-draft-trigger i { margin-left:2px; font-size:10px; font-style:normal; }.hero-draft-menu { position:absolute; z-index:20; top:calc(100% + 4px); left:-6px; display:none; min-width:104px; padding:5px 0; border:1px solid var(--line); border-radius:4px; background:#fff; box-shadow:0 6px 14px rgba(24,55,88,.14); }.hero-draft-download:hover .hero-draft-menu,.hero-draft-download:focus-within .hero-draft-menu { display:grid; }.hero-draft-menu button { height:28px; padding:0 12px; border:0; background:#fff; color:var(--regular); font-size:12px; text-align:left; white-space:nowrap; }.hero-draft-menu button:hover,.hero-draft-menu button:focus { background:#f0f7ff; color:var(--primary); outline:0; }
.hero-actions [hidden] { display:none !important; }
.flow-card { display:flex; align-items:center; height:34px; padding:0 12px; border:0; border-radius:0; background:#f7f9fc; }
.order-flow { width:100%; height:100%; padding:0; align-items:center; }.order-flow li { height:100%; justify-content:center; gap:8px; color:var(--muted); font-size:12px; }.order-flow li:not(:last-child)::after { top:50%; left:auto; right:-7px; width:11px; height:11px; border-top:1px solid #b9c1cc; border-right:1px solid #b9c1cc; background:transparent; transform:translateY(-50%) rotate(45deg); }
.order-flow b { width:18px; height:18px; border-width:1px; font-size:11px; }.order-flow .done,.order-flow .done b { color:var(--success); border-color:var(--success); }.order-flow .current,.order-flow .current b { color:var(--text); border-color:var(--regular); }.order-flow .done::after,.order-flow .current::after { background:transparent; }

/* 资料识别优先展示：客户资料置于文件识别结果下方，并沿用后台表单栅格。 */
.ocr-workbench { grid-template-columns:1fr; gap:16px; }
.ocr-upload-pane,.ocr-result-stack { grid-column:1 / -1; }
.ocr-upload-pane { min-height:0; }
.ocr-result-stack { display:block; }
.ocr-result-stack .ocr-result-panel { width:100%; }
.ocr-mini-fields { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px 24px; padding:14px 16px 16px; }
.ocr-mini-fields button { grid-template-columns:72px minmax(0, 1fr); }
.ocr-mini-fields .field-wide { grid-column:1 / -1; }

@media (min-width:1251px) {
  .ocr-mini-fields { grid-template-columns:repeat(4, minmax(0, 1fr)); }
}

@media (max-width:760px) {
  .ocr-mini-fields { grid-template-columns:1fr; }
}

/* OCR 核对窗口：源文件与识别字段并排，字段支持复制和直接回填。 */
.ocr-upload-pane { padding:0; }
.ocr-upload-pane .ocr-pane-title { min-height:auto; padding:10px 12px; border-bottom:1px solid var(--line-soft); }
.ocr-upload-pane .ocr-pane-title > b { font-size:14px; line-height:20px; }
.ocr-upload-pane .ocr-header-btn { margin-top:0; }
.ocr-file-toolbar { display:flex; align-items:center; gap:8px; }
.ocr-file-toolbar .ocr-header-btn { height:28px; padding:0 10px; font-size:12px; }
.ocr-file-toolbar .btn-secondary { border-color:var(--line); background:#fff; color:var(--regular); }
.ocr-file-toolbar .btn:disabled { border-color:#e8edf4; background:#f5f7fa; color:#b8c1cc; cursor:not-allowed; }
.ocr-modal-open { overflow:hidden; }
.ocr-preview-modal[hidden] { display:none; }
.ocr-preview-modal { position:fixed; z-index:30; inset:0; display:grid; place-items:center; padding:28px; background:rgba(18,36,58,.38); }
.ocr-preview-dialog { display:flex; flex-direction:column; width:min(1120px,100%); max-height:calc(100vh - 56px); overflow:hidden; border:1px solid #dfe7f1; border-radius:8px; background:#fff; box-shadow:0 18px 42px rgba(26,48,77,.22); }
.ocr-preview-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:17px 20px; border-bottom:1px solid var(--line-soft); background:#fff; }
.ocr-preview-header p { margin:0 0 4px; color:var(--primary); font-size:10px; font-weight:700; letter-spacing:.7px; }
.ocr-preview-header h2 { margin:0; color:var(--text); font-size:17px; line-height:24px; }
.ocr-preview-header span { display:block; margin-top:4px; color:var(--muted); font-size:12px; }
.ocr-preview-close { display:grid; width:28px; height:28px; place-items:center; border:1px solid var(--line); border-radius:4px; background:#fff; color:var(--regular); font-size:19px; line-height:1; }
.ocr-preview-close:hover { border-color:#a9cfee; color:var(--primary); }
.ocr-preview-body { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr); min-height:0; overflow:auto; background:#f5f8fc; }
.ocr-source-panel,.ocr-fields-panel { min-width:0; padding:18px; }
.ocr-source-panel { border-right:1px solid var(--line-soft); }
.ocr-preview-panel-title { display:flex; align-items:center; justify-content:space-between; min-height:26px; margin-bottom:10px; }
.ocr-preview-panel-title h3 { margin:0; color:var(--text); font-size:14px; }
.ocr-preview-panel-title span { color:var(--muted); font-size:11px; }
.ocr-source-document { min-height:430px; padding:36px 38px; border:1px solid #dae2ec; background:#fff; box-shadow:0 2px 8px rgba(36,58,90,.06); color:#334155; }
.ocr-source-document h4 { margin:0; color:#263b55; font-size:20px; letter-spacing:1.1px; }
.ocr-source-document > p:not(.ocr-source-line) { margin:5px 0 24px; color:#8390a2; font-size:11px; }
.ocr-source-document hr { margin:0 0 24px; border:0; border-top:1px solid #e5eaf0; }
.ocr-source-document .ocr-source-line { margin:0; padding:12px 0; border-bottom:1px dashed #e4e9f0; color:#4b5e75; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; white-space:pre-wrap; }
.ocr-source-document small { display:block; margin-top:32px; color:#93a0b0; font-size:11px; line-height:1.6; }
.ocr-preview-field-list { display:grid; gap:8px; }
.ocr-preview-field { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:63px; padding:10px 11px; border:1px solid var(--line-soft); border-radius:5px; background:#fff; }
.ocr-preview-field > div:first-child { display:grid; min-width:0; gap:4px; }
.ocr-preview-field span { color:var(--muted); font-size:11px; }
.ocr-preview-field b { overflow:hidden; color:var(--regular); font-size:12px; font-weight:500; line-height:18px; text-overflow:ellipsis; white-space:nowrap; }
.ocr-preview-field-actions { display:flex; flex:none; gap:8px; }
.ocr-preview-field-actions button { height:26px; padding:0 8px; border:0; background:transparent; color:var(--primary); font-size:12px; }
.ocr-preview-field-actions button + button { padding-left:9px; border-left:1px solid var(--line-soft); color:var(--success); }
.ocr-preview-field-actions button:hover { text-decoration:underline; }
.ocr-source-panel,.ocr-fields-panel { display:flex; flex-direction:column; }.ocr-source-document,.ocr-preview-text { box-sizing:border-box; height:430px; min-height:430px; overflow:auto; }.ocr-preview-text { width:100%; padding:28px 30px; border:1px solid #dae2ec; outline:0; background:#fff; color:#334155; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:13px; line-height:1.9; resize:none; }.ocr-preview-text:focus { border-color:#a9cfee; }
@media (max-width:760px) { .ocr-preview-modal { padding:12px; }.ocr-preview-body { grid-template-columns:1fr; }.ocr-source-panel { border-right:0; border-bottom:1px solid var(--line-soft); }.ocr-source-document { min-height:280px; padding:24px; }.ocr-preview-dialog { max-height:calc(100vh - 24px); } }

/* 订单处理记录仅保留影响流转的关键时间节点，避免形成冗长修改日志。 */
.order-grid .milestone-card { padding:0; overflow:hidden; }
.milestone-card .ocr-panel-head { align-items:flex-start; }
.milestone-card .ocr-panel-head h3 { margin-bottom:2px; }
.milestone-card .ocr-panel-head time { color:var(--muted); font-size:11px; white-space:nowrap; }
.milestone-timeline { display:grid; gap:0; margin:0; padding:14px 18px 16px; list-style:none; }
.milestone-timeline li { position:relative; display:grid; grid-template-columns:18px minmax(0,1fr) 142px; align-items:center; gap:9px; min-height:49px; }
.milestone-timeline li:not(:last-child)::after { position:absolute; top:31px; left:8px; width:1px; height:24px; background:#dce5ef; content:""; }
.milestone-timeline li > i { position:relative; z-index:1; width:10px; height:10px; margin-left:4px; border:2px solid var(--primary); border-radius:50%; background:#fff; }
.milestone-timeline li.created > i { border-color:var(--success); background:var(--success); }.milestone-timeline li.approved > i { border-color:var(--success); background:#fff; }.milestone-timeline li.rejected > i { border-color:#f56c6c; background:#f56c6c; }
.milestone-timeline li > div { display:grid; min-width:0; gap:1px; }.milestone-timeline b { color:var(--text); font-size:12px; }.milestone-timeline span { overflow:hidden; color:var(--muted); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.milestone-timeline time { justify-self:end; color:var(--regular); font-size:11px; font-variant-numeric:tabular-nums; }
.hero-actions button:disabled,.attachment-result button:disabled,.ocr-goods-result button:disabled { cursor:not-allowed; opacity:.5; }
@media (max-width:760px) { .topbar-tools { gap:9px; }.role-switch { display:none; }.milestone-timeline li { grid-template-columns:18px minmax(0,1fr); }.milestone-timeline time { grid-column:2; justify-self:start; }.milestone-timeline li:not(:last-child)::after { height:37px; } }

/* 报关信息字段与既有后台表单对齐，并明确展示 OCR 核对状态。 */
.ocr-result-stack .ocr-panel-head h3 { display:flex; align-items:center; gap:8px; }
.ocr-result-stack .ocr-panel-head h3 small { color:var(--muted); font-size:11px; font-weight:400; }
.ocr-mini-fields button,
.ocr-mini-fields .field-wide { grid-template-columns:72px minmax(0, 1fr) 24px; }
.ocr-mini-fields button > span { justify-self:stretch; text-align:right; white-space:nowrap; }
.field-ocr-status { display:none; width:18px; height:18px; place-items:center; border-radius:50%; font-style:normal; line-height:1; }
.field-ocr-status.has-diff { display:grid; border:1px solid #ff9a9a; background:#fff1f0; color:#f56c6c; font-size:14px; font-weight:700; }
@media (max-width:760px) { .ocr-mini-fields button,.ocr-mini-fields .field-wide { grid-template-columns:72px minmax(0, 1fr) 22px; } }

/* 左侧模块导航：一级组可独立收起，子菜单保持原有链接和选中态。 */
.order-nav { gap:12px; }.nav-section { display:grid; gap:5px; }.nav-group { display:flex; align-items:center; width:100%; padding:10px 12px; border:0; border-radius:6px; background:transparent; color:#fff; font:inherit; font-weight:600; text-align:left; }.nav-group:hover { background:rgba(255,255,255,.07); }.nav-group i { margin-left:auto; color:#aeb9c7; font-size:14px; font-style:normal; transition:transform .18s ease; }.nav-section.is-collapsed .nav-group i { transform:rotate(-90deg); }.nav-children { display:grid; gap:5px; }.nav-section.is-collapsed .nav-children { display:none; }.order-nav .nav-children a span { margin-left:16px; }.order-app.sidebar-collapsed .order-nav { gap:5px; }.order-app.sidebar-collapsed .nav-section { gap:0; }.order-app.sidebar-collapsed .nav-children { display:none; }.order-app.sidebar-collapsed .nav-group { display:grid; place-items:center; padding:10px 0; }.order-app.sidebar-collapsed .nav-group::before { color:inherit; content:'▦'; font-size:14px; line-height:14px; }.order-app.sidebar-collapsed .order-nav i { display:none; }
