:root{--color-bg: #f5f7fa;--color-surface: #ffffff;--color-surface-muted: #f8fafc;--color-border: #d7dde6;--color-border-strong: #b8c2d1;--color-text: #1d2633;--color-text-muted: #637083;--color-text-soft: #8793a5;--color-primary: #2458d3;--color-primary-hover: #1f49b7;--color-green: #15803d;--color-green-bg: #e8f7ee;--color-amber: #b45309;--color-amber-bg: #fff4db;--color-red: #b42318;--color-red-bg: #fee9e7;--color-blue-bg: #e9f0ff;--color-gray-bg: #eef1f5;--shadow-drawer: -16px 0 32px rgba(25, 33, 46, .16);--font-main: "Microsoft YaHei", "PingFang SC", "Segoe UI", Arial, sans-serif;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--radius-sm: 4px;--radius-md: 6px;--header-height: 48px;--sidebar-width: 188px;--table-row-height: 34px}*{box-sizing:border-box}html,body,#root{width:100%;height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-main);font-size:var(--font-size-sm)}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(320px,440px) 1fr;background:linear-gradient(90deg,#172030c7,#2458d34d),url(https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=1800&q=80);background-size:cover;background-position:center}.login-panel{display:flex;flex-direction:column;justify-content:center;gap:var(--space-4);padding:48px 40px;background:#fffffff0;border-right:1px solid rgba(255,255,255,.6)}.login-title{margin:0;font-size:24px;letter-spacing:0}.login-field{display:grid;gap:var(--space-2)}.login-field input{height:34px;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 10px}.login-note,.form-error{margin:0;font-size:var(--font-size-xs);line-height:1.6}.form-error{border:1px solid #fecaca;border-radius:var(--radius-sm);background:#fff1f2;color:#991b1b;padding:var(--space-2)}.primary-button{min-height:32px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);color:#fff;background:var(--color-primary);padding:0 12px}.primary-button:hover{background:var(--color-primary-hover)}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--header-height) 1fr}.topbar{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);background:#172030;color:#fff;border-bottom:1px solid #0d1420}.topbar-title{display:flex;align-items:center;gap:var(--space-3);font-weight:700}.topbar-mark{display:inline-flex;align-items:center;height:24px;padding:0 8px;border:1px solid rgba(255,255,255,.36);border-radius:var(--radius-sm);color:#e4ebf7;font-size:var(--font-size-xs);font-weight:400}.topbar-meta{display:flex;align-items:center;gap:var(--space-3);color:#dce5f2;font-size:var(--font-size-xs)}.topbar-user{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-icon-button{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.28);border-radius:var(--radius-sm);color:#fff;background:transparent}.sidebar{grid-row:2;background:#fff;border-right:1px solid var(--color-border);padding:var(--space-3) var(--space-2)}.nav-button{width:100%;min-height:34px;display:flex;align-items:center;gap:var(--space-2);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);padding:0 var(--space-3);text-align:left}.nav-button:hover{background:var(--color-surface-muted)}.nav-button.active{color:var(--color-primary);background:var(--color-blue-bg);font-weight:700}.main-content{grid-row:2;min-width:0;padding:var(--space-4)}.page{display:grid;gap:var(--space-3)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}.page-title{margin:0 0 var(--space-1);font-size:var(--font-size-xl);letter-spacing:0}.page-subtitle{margin:0;color:var(--color-text-muted);font-size:var(--font-size-xs)}.api-readiness-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);border:1px solid #f1c27d;border-radius:var(--radius-md);background:#fff8e8;color:#7a4100;padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.uat-snapshot-note,.uat-status-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-3);color:var(--color-text);font-size:var(--font-size-xs);line-height:1.6}.uat-status-panel{display:grid;gap:var(--space-2)}.uat-status-title{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:700}.status-grid,.issue-field-grid{display:flex;flex-wrap:wrap;gap:var(--space-2)}.issue-field-grid span{min-height:28px;display:inline-flex;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);padding:0 10px;font-size:var(--font-size-xs)}.uat-list{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.uat-list li{display:flex;align-items:flex-start;gap:var(--space-2);line-height:1.6}.api-readiness-banner strong{color:#572c00}.filter-bar{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr)) auto;gap:var(--space-2);align-items:end;padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.filter-item{display:grid;gap:var(--space-1)}.filter-item label{color:var(--color-text-muted);font-size:var(--font-size-xs)}.filter-item input,.filter-item select{height:30px;min-width:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;padding:0 8px}.filter-actions{display:flex;gap:var(--space-2)}.icon-button,.secondary-button{min-height:30px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:#fff;padding:0 10px;white-space:nowrap}.secondary-button:disabled,.icon-button:disabled{cursor:not-allowed;color:#94a3b8;background:#f8fafc}.tab-bar{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.tab-button{min-height:30px;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:#fff;padding:0 12px}.tab-button.active{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-blue-bg);font-weight:700}.row-actions{display:inline-flex;gap:var(--space-1);align-items:center}.field-hint{margin:0;color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:1.5;word-break:break-word}.icon-button{width:30px;padding:0}.icon-button:hover,.secondary-button:hover{border-color:var(--color-primary);color:var(--color-primary)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.table-shell{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.table-scroll{width:100%;overflow-x:auto}.compat-table{width:100%;min-width:1180px;border-collapse:collapse;font-size:var(--font-size-xs)}.compat-table th,.compat-table td{height:var(--table-row-height);border-bottom:1px solid var(--color-border);padding:0 8px;text-align:left;vertical-align:middle;white-space:nowrap}.compat-table th{background:#eef3f9;color:#344153;font-weight:700}.compat-table tr:hover td{background:#f8fbff}.table-empty{padding:var(--space-6);text-align:center;color:var(--color-text-muted)}.status-tag{display:inline-flex;align-items:center;height:22px;padding:0 7px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:700}.status-blue{color:var(--color-primary);background:var(--color-blue-bg)}.status-green{color:var(--color-green);background:var(--color-green-bg)}.status-amber{color:var(--color-amber);background:var(--color-amber-bg)}.status-red{color:var(--color-red);background:var(--color-red-bg)}.status-gray{color:var(--color-text-muted);background:var(--color-gray-bg)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#1118272e}.detail-drawer{position:fixed;top:0;right:0;z-index:40;width:min(560px,92vw);height:100vh;display:grid;grid-template-rows:auto 1fr;background:#fff;box-shadow:var(--shadow-drawer)}.drawer-header{min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);border-bottom:1px solid var(--color-border);padding:0 var(--space-4)}.drawer-title{margin:0;font-size:var(--font-size-lg)}.drawer-body{overflow:auto;padding:var(--space-4)}.detail-grid{border:1px solid var(--color-border);border-bottom:0}.detail-row{display:grid;grid-template-columns:120px 1fr}.detail-grid dt,.detail-grid dd{min-height:34px;margin:0;border-bottom:1px solid var(--color-border);padding:8px 10px}.detail-grid dt{color:var(--color-text-muted);background:var(--color-surface-muted)}.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:var(--space-3)}.metric-card,.work-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-3)}.metric-label{color:var(--color-text-muted);font-size:var(--font-size-xs)}.metric-value{margin-top:var(--space-2);font-size:22px;font-weight:700}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:var(--space-3)}.uat-guide-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}.work-card{display:grid;gap:var(--space-2)}.work-card h3{margin:0;font-size:var(--font-size-lg)}.work-card p{margin:0;color:var(--color-text-muted);line-height:1.6}.import-export-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:var(--space-3)}.feedback-grid{display:grid;grid-template-columns:minmax(420px,1fr) minmax(280px,.6fr);gap:var(--space-3);align-items:start}.feedback-form{display:grid;gap:var(--space-3)}.feedback-form label,.form-grid label{display:grid;gap:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-xs)}.feedback-form input,.feedback-form select,.feedback-form textarea{width:100%;min-height:34px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text);padding:6px 10px}.feedback-form textarea{min-height:72px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.empty-state{border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);color:var(--color-text-muted);background:var(--color-surface)}@media(max-width:920px){.login-page,.app-shell{grid-template-columns:1fr}.sidebar{display:flex;gap:var(--space-2);overflow-x:auto;grid-column:1;grid-row:2;border-right:0;border-bottom:1px solid var(--color-border)}.nav-button{width:auto;min-width:108px}.main-content{grid-row:3}.filter-bar{grid-template-columns:repeat(2,minmax(140px,1fr))}.dashboard-grid,.work-grid,.uat-guide-grid,.feedback-grid,.import-export-grid{grid-template-columns:1fr}}.api-readiness-error{border-color:var(--color-red);background:var(--color-red-bg);color:var(--color-red)}.api-readiness-error strong{color:var(--color-red)}.order-workbench-page{gap:10px}.workbench-flags{color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:1.5;text-align:right}.order-workbench-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:10px;align-items:start}.order-status-tree,.order-workbench-main{min-width:0}.order-status-tree{position:sticky;top:8px;display:grid;gap:8px;max-height:calc(100vh - 88px);overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;padding:10px}.tree-header,.workbench-table-meta,.workbench-pagination{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--color-text-muted);font-size:var(--font-size-xs)}.tree-refresh,.tree-node{width:100%;min-height:28px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;padding:0 8px;text-align:left}.tree-node span,.tree-refresh{display:inline-flex;align-items:center;gap:6px}.tree-node em{min-width:42px;color:var(--color-text-muted);font-style:normal;text-align:right}.tree-group h3{margin:8px 0 6px;font-size:var(--font-size-sm);letter-spacing:0}.order-workbench-main{display:grid;gap:10px}.order-status-pool{display:grid;grid-template-columns:repeat(9,minmax(92px,1fr));gap:6px}.status-pool-card{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;padding:0 8px;font-size:var(--font-size-xs)}.status-pool-card.active{border-color:var(--color-primary);background:var(--color-blue-bg);color:var(--color-primary);font-weight:700}.jst-toolbar{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;padding:8px;overflow-x:auto}.jst-toolbar-row{display:flex;align-items:center;gap:6px;min-width:max-content}.compact{min-height:26px;padding:0 8px;font-size:var(--font-size-xs)}.link-button{border:0;background:transparent;color:var(--color-primary);padding:0;text-align:left;white-space:nowrap}.row-tags,.product-cell,.order-detail-sections h3{display:inline-flex;align-items:center;gap:6px}.row-tags{flex-wrap:wrap}.mini-tag{display:inline-flex;align-items:center;min-height:20px;border-radius:var(--radius-sm);padding:0 6px;font-size:11px;line-height:1}.mini-tag.blue{color:#1d4ed8;background:#dbeafe}.mini-tag.amber{color:#92400e;background:#fef3c7}.mini-tag.muted{color:#64748b;background:#f1f5f9}.product-cell{align-items:flex-start}.product-cell strong,.product-cell small{display:block;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-cell small{color:var(--color-text-muted)}.product-thumb{width:30px;height:30px;flex:0 0 30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#f8fafc;color:#64748b}.order-workbench-page .table-scroll{max-height:calc(100vh - 390px);overflow:auto}.order-workbench-page .compat-table{min-width:2600px;font-size:12px}.order-workbench-page .compat-table th{position:sticky;top:0;z-index:2}.order-workbench-page .compat-table th,.order-workbench-page .compat-table td{padding:5px 8px}.order-workbench-page .compat-table tbody tr:hover td{background:#fff7ed}.order-detail-sections{display:grid;gap:14px}.order-detail-sections h3{margin:0 0 8px;font-size:var(--font-size-sm)}@media(max-width:1100px){.order-workbench-layout{grid-template-columns:1fr}.order-status-tree{position:static;max-height:none}.order-status-pool{grid-template-columns:repeat(3,minmax(100px,1fr))}}.product-workbench-page{gap:10px}.product-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(128px,1fr));gap:6px}.product-column-panel{display:grid;gap:10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;padding:10px}.product-column-panel p{margin:4px 0 0;color:var(--color-text-muted);font-size:var(--font-size-xs)}.column-toggle-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:6px 10px}.column-toggle-grid label{min-height:28px;display:inline-flex;align-items:center;gap:6px;color:var(--color-text);font-size:var(--font-size-xs)}.column-toggle-grid input{margin:0}.product-workbench-page .table-scroll{max-height:calc(100vh - 430px);overflow:auto}.product-workbench-page .compat-table{min-width:2700px;font-size:12px}.product-workbench-page .compat-table th{position:sticky;top:0;z-index:2}.product-workbench-page .compat-table th,.product-workbench-page .compat-table td{padding:5px 8px}.product-workbench-page .compat-table tbody tr:hover td{background:#f7fee7}.product-workbench-page .product-thumb{width:auto;min-width:54px;gap:4px;padding:0 5px;font-size:11px}.money-cell{display:block;min-width:58px;text-align:right;font-variant-numeric:tabular-nums}.muted-cell{display:block;min-width:58px;text-align:right;color:var(--color-text-muted)}@media(max-width:1100px){.product-stat-grid{grid-template-columns:repeat(2,minmax(128px,1fr))}.column-toggle-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}}
