body.workshop-board-mode{background:#0b1015!important}
.ws-board.ws-board-v4{
  --ws-bg:#0b1015;--ws-panel:#121a22;--ws-panel2:#17212b;--ws-line:#2a3742;
  --ws-text:#f2f5f7;--ws-muted:#8d9aa5;--ws-cyan:#4ca6d8;--ws-blue:#4f8fbd;
  --ws-green:#35b67a;--ws-amber:#e5a83b;--ws-red:#df5b60;
  min-height:100vh;background:#0b1015;color:var(--ws-text);letter-spacing:0;
}
.ws-board-v4:before,.ws-board-v4 .ws-scanline{display:none}
.ws-board-v4 .ws-header{min-height:76px;padding:12px 22px;border-bottom:1px solid #26333d;background:#101820}
.ws-board-v4 .ws-logo{width:44px;height:44px;border:1px solid #344754;border-radius:7px;box-shadow:none}
.ws-board-v4 .ws-brand small{color:#7f9bad;font-size:10px;letter-spacing:0}
.ws-board-v4 .ws-brand h1{margin-top:2px;font-size:24px;letter-spacing:0}
.ws-board-v4 .ws-head-status{gap:8px}
.ws-board-v4 .ws-head-status span{color:#a7b2bb;font-size:11px}
.ws-board-v4 .ws-head-status span i,.ws-board-v4 .ws-dot{box-shadow:none}
.ws-board-v4 .ws-head-status #wsClock{min-width:190px;margin-right:4px;color:#fff;font-size:17px;letter-spacing:0}
.ws-board-v4 .ws-head-status button{height:34px;padding:0 12px;border:1px solid #394a57;border-radius:5px;background:#18232c;color:#d9e2e8}
.ws-board-v4 .ws-head-status button:hover{border-color:#5a7485;background:#202e39}
.ws-board-v4 .ws-head-status .ws-exit{border-color:#744047;background:#2f1e22;color:#ffcbce;box-shadow:none}
.ws-shift-state{position:relative;z-index:2;display:flex;align-items:center;gap:22px;min-height:32px;padding:0 22px;border-bottom:1px solid #202b34;background:#0d141a;color:#7f8e99;font-size:10px}
.ws-shift-state span:first-child{color:#cbd5db}.ws-shift-state i{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:#35b67a}
.ws-shift-state span:last-child{margin-left:auto}.ws-shift-state b{color:#bfcbd3;font-weight:700}
.ws-board-v4 .ws-kpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:12px 16px 0;border:0;background:transparent}
.ws-board-v4 .ws-kpis article{min-height:82px;padding:13px 15px;border:1px solid #2a3742;border-radius:7px;background:#121a22}
.ws-board-v4 .ws-kpis article:after{left:0;top:0;bottom:0;width:3px;height:auto;background:#4f8fbd;box-shadow:none}
.ws-board-v4 .ws-kpis article:nth-child(3):after{background:#35b67a}.ws-board-v4 .ws-kpis article:nth-child(5):after{background:#e5a83b}.ws-board-v4 .ws-kpis article.alert:after{background:#df5b60}
.ws-board-v4 .ws-kpis small{color:#87949e;font-size:11px}.ws-board-v4 .ws-kpis strong{margin-top:5px;font-size:28px}
.ws-board-v4 .ws-kpis span{margin-top:5px;color:#6f7e89;font-size:10px}
.ws-board-v4 .ws-grid{grid-template-columns:minmax(290px,1.04fr) minmax(520px,1.62fr) minmax(300px,1.04fr);gap:10px;height:calc(100vh - 244px);padding:10px 16px 42px}
.ws-board-v4 .ws-column{gap:10px}.ws-board-v4 .ws-column.left{grid-template-rows:minmax(0,1fr) 224px;align-content:stretch}
.ws-board-v4 .ws-column.left>.ws-panel:first-child .ws-orders{max-height:none;overflow:auto}
.ws-board-v4 .ws-panel{border:1px solid #2a3742;border-radius:7px;background:#121a22;box-shadow:none}
.ws-board-v4 .ws-panel-head{min-height:42px;padding:9px 12px;border-bottom:1px solid #28343e;background:#151f28}
.ws-board-v4 .ws-panel-head b{font-size:13px;letter-spacing:0}.ws-board-v4 .ws-panel-head small{color:#728a9a;font-size:9px;letter-spacing:0}
.ws-board-v4 .ws-order{padding:11px 12px;border-bottom-color:#25313a}.ws-board-v4 .ws-order-top small{color:#798994}.ws-board-v4 .ws-order-top b{font-size:12px}
.ws-board-v4 .ws-pill{border-radius:4px}.ws-board-v4 .ws-pill.run{background:#20384a;color:#8fc5e8}.ws-board-v4 .ws-pill.good{background:#183a2d;color:#7dd3a8}
.ws-board-v4 .ws-pill.warn{background:#41351e;color:#eac67d}.ws-board-v4 .ws-pill.bad{background:#46272b;color:#f2a0a4}
.ws-board-v4 .ws-track{height:6px;border-radius:3px;background:#27323a}.ws-board-v4 .ws-track i{border-radius:3px;background:#4f8fbd;box-shadow:none}
.ws-board-v4 .ws-order-foot,.ws-board-v4 .ws-order-current{color:#778690}.ws-board-v4 .ws-bars{padding:16px 12px 10px}
.ws-board-v4 .ws-bar i{width:62%;border-radius:3px 3px 0 0;background:#4f8fbd;box-shadow:none}.ws-board-v4 .ws-bar span{color:#d9e4ea}
.ws-board-v4 .ws-hero{grid-template-columns:160px minmax(0,1fr);min-height:192px;padding:16px;border:1px solid #2f414e;border-radius:7px;background:#13202a;box-shadow:none}
.ws-board-v4 .ws-ring{width:142px;height:142px;background:conic-gradient(#35b67a var(--ws-angle),#2b3943 0);box-shadow:none}
.ws-board-v4 .ws-ring:before{inset:10px;border-color:#354651;background:#101820}.ws-board-v4 .ws-ring small{color:#8799a4}
.ws-board-v4 .ws-ring strong{font-size:32px}.ws-board-v4 .ws-ring span{color:#82939e}.ws-board-v4 .ws-hero-copy small{color:#7ca7be;letter-spacing:0}
.ws-board-v4 .ws-hero-copy h2{font-size:22px}.ws-board-v4 .ws-hero-copy p{color:#8999a3}.ws-board-v4 .ws-hero-status{color:#94a3ad}.ws-board-v4 .ws-hero-status i{box-shadow:none}
.ws-board-v4 .ws-flow{padding:12px 10px}.ws-board-v4 .ws-station{border-color:#30404b;border-radius:5px;background:#151f27}
.ws-board-v4 .ws-station.bad{border-color:#704047;background:#2b1e22}.ws-board-v4 .ws-station-track{background:#293640}.ws-board-v4 .ws-station-track i{background:#4f8fbd}
.ws-board-v4 .ws-station.good .ws-station-track i{background:#35b67a}.ws-board-v4 .ws-flow-link:after{background:#3a4a55;box-shadow:none}
.ws-board-v4 .ws-activity{align-content:start;scrollbar-color:#536772 #121a22}.ws-board-v4 .ws-activity li,.ws-board-v4 .ws-alert,.ws-board-v4 .ws-equipment{border-bottom-color:#25313a}
.ws-board-v4 .ws-alert>i{box-shadow:none}.ws-board-v4 .ws-quality{background:#2a3742}.ws-board-v4 .ws-quality>div{background:#121a22}
.ws-board-v4 .ws-quality small{color:#7d8c96}.ws-board-v4 .ws-equipment strong{color:#9dc7dd}
.ws-board-v4 .ws-ticker{min-height:34px;border-top-color:#2a3742;background:#101820;color:#8999a3}
.ws-board-v4 .ws-ticker>span{color:#86a7ba;letter-spacing:0}.ws-board-v4 .ws-ticker b{color:#b7c4cc}

.ws-board-tech{
  --ws-panel:#061425;--ws-panel2:#081b31;--ws-line:#145bd0;--ws-text:#f3fbff;--ws-muted:#7893ac;
  --ws-cyan:#00e5ef;--ws-blue:#1c7eff;--ws-green:#19d58d;--ws-amber:#ffb02e;--ws-red:#ff4f5e;
  background:radial-gradient(circle at 50% -18%,rgba(13,79,155,.42),transparent 34%),linear-gradient(180deg,#020916,#04101e 52%,#020813);
}
.ws-board-v4.ws-board-tech:before{
  display:block;content:"";position:absolute;inset:0;pointer-events:none;opacity:.28;
  background-image:linear-gradient(rgba(28,126,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(28,126,255,.07) 1px,transparent 1px);
  background-size:38px 38px;mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 88%,transparent);
}
.ws-board-tech .ws-header{
  position:relative;display:grid;grid-template-columns:minmax(250px,1fr) auto minmax(460px,1fr);min-height:82px;padding:8px 18px;
  border-bottom:1px solid #1260d6;background:linear-gradient(90deg,rgba(3,14,31,.98),rgba(4,27,58,.96),rgba(3,14,31,.98));
  box-shadow:0 5px 22px rgba(0,94,255,.18);
}
.ws-board-tech .ws-header:before,.ws-board-tech .ws-header:after{
  content:"";position:absolute;bottom:-1px;width:24%;height:4px;background:linear-gradient(90deg,transparent,#067fff,#00e5ef);
}
.ws-board-tech .ws-header:before{left:14%}.ws-board-tech .ws-header:after{right:14%;transform:scaleX(-1)}
.ws-board-tech .ws-board-date{grid-column:1;grid-row:1;display:flex;align-items:baseline;gap:13px;justify-self:start;color:#fff;font-variant-numeric:tabular-nums}
.ws-board-tech .ws-board-date b{font-size:21px}.ws-board-tech .ws-board-date span{color:#79a1c1;font-size:11px}
.ws-board-tech .ws-brand{grid-column:2;grid-row:1;justify-self:center;gap:10px;text-align:center}
.ws-board-tech .ws-logo{width:42px;height:42px;border-color:#00dbe7;box-shadow:0 0 18px rgba(0,229,239,.28)}
.ws-board-tech .ws-brand small{color:#53a4cf;font-size:9px}.ws-board-tech .ws-brand h1{color:#00e5ef;font-size:29px;text-shadow:0 0 22px rgba(0,229,239,.34)}
.ws-board-tech .ws-head-status{grid-column:3;grid-row:1;justify-self:end;gap:7px}
.ws-board-tech .ws-head-status>span:not(#wsClock){font-size:10px}.ws-board-tech .ws-head-status #wsClock{display:none}
.ws-board-tech .ws-head-status button{min-width:48px;height:34px;border-color:#1a5ca4;background:#071b32;color:#c7efff;box-shadow:inset 0 0 12px rgba(22,105,207,.12)}
.ws-board-tech .ws-head-status button:hover{border-color:#00dbe7;background:#0a294a;color:#fff}
.ws-board-tech .ws-head-status .ws-exit{border-color:#8a3442;background:#351520;color:#ffd7da}
.ws-board-tech .ws-shift-state{min-height:30px;border-bottom-color:#0e3974;background:#041020;color:#6889a5}
.ws-board-tech .ws-shift-state i{background:#19d58d;box-shadow:0 0 11px rgba(25,213,141,.8)}
.ws-board-tech .ws-kpis{gap:9px;margin-top:10px}
.ws-board-tech .ws-kpis article{
  position:relative;min-height:82px;overflow:hidden;border-color:#104a9e;border-radius:5px;
  background:linear-gradient(145deg,rgba(7,27,51,.98),rgba(3,13,28,.98));box-shadow:inset 0 0 18px rgba(11,88,189,.1),0 0 14px rgba(0,65,170,.1);
  animation:wsPanelEnter .48s both;
}
.ws-board-tech .ws-kpis article:nth-child(2){animation-delay:.04s}.ws-board-tech .ws-kpis article:nth-child(3){animation-delay:.08s}
.ws-board-tech .ws-kpis article:nth-child(4){animation-delay:.12s}.ws-board-tech .ws-kpis article:nth-child(5){animation-delay:.16s}.ws-board-tech .ws-kpis article:nth-child(6){animation-delay:.2s}
.ws-board-tech .ws-kpis article:before{content:"";position:absolute;right:10px;top:8px;width:29px;height:4px;background:repeating-linear-gradient(120deg,#00e5ef 0 5px,transparent 5px 8px)}
.ws-board-tech .ws-kpis article:after{background:#00e5ef}.ws-board-tech .ws-kpis article:nth-child(3):after{background:#19d58d}
.ws-board-tech .ws-kpis article:nth-child(5):after{background:#ffb02e}.ws-board-tech .ws-kpis article.alert:after{background:#ff4f5e}
.ws-board-tech .ws-kpis small{color:#a4bbcd}.ws-board-tech .ws-kpis strong{color:#00f1f2;font-size:31px;text-shadow:0 0 15px rgba(0,229,239,.3)}
.ws-board-tech .ws-kpis article:nth-child(3) strong,.ws-board-tech .ws-kpis .ok strong{color:#20dda0}.ws-board-tech .ws-kpis .alert strong{color:#ff5865}
.ws-board-tech .ws-grid{gap:10px}
.ws-board-tech .ws-panel,.ws-board-tech .ws-hero{
  position:relative;border-color:#115ac6;border-radius:5px;background:linear-gradient(180deg,rgba(5,21,40,.98),rgba(3,13,27,.98));
  box-shadow:inset 0 0 22px rgba(10,78,170,.1),0 0 16px rgba(0,76,200,.1);animation:wsPanelEnter .55s both;
}
.ws-board-tech .ws-panel:before,.ws-board-tech .ws-hero:before{content:"";position:absolute;left:9px;top:-1px;width:30px;height:3px;background:#ff7a18;z-index:2}
.ws-board-tech .ws-panel:after,.ws-board-tech .ws-hero:after{content:"";position:absolute;right:9px;top:8px;width:27px;height:4px;background:repeating-linear-gradient(120deg,#00e5ef 0 5px,transparent 5px 8px);z-index:2}
.ws-board-tech .ws-panel-head{border-bottom-color:#1454b2;background:linear-gradient(90deg,#071b34,#061326)}
.ws-board-tech .ws-panel-head b{color:#f2fbff}.ws-board-tech .ws-panel-head b:before{content:"";display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#1be18d;box-shadow:0 0 9px rgba(27,225,141,.8)}
.ws-board-tech .ws-panel-head small{color:#00dce8}
.ws-board-tech .ws-order{border-bottom-color:#0b315f}.ws-board-tech .ws-order-top b{color:#fff}.ws-board-tech .ws-order-top small{color:#63b4de}
.ws-board-tech .ws-track{background:#0b2742}.ws-board-tech .ws-track i{background:linear-gradient(90deg,#1269e7,#00e5ef);box-shadow:0 0 10px rgba(0,229,239,.35)}
.ws-board-tech .ws-bars{position:relative;isolation:isolate;background:linear-gradient(rgba(31,80,124,.18) 1px,transparent 1px);background-size:100% 25%}
.ws-board-tech .ws-bar{position:relative;z-index:2}.ws-board-tech .ws-bar i{display:none}.ws-board-tech .ws-bar span{position:absolute;top:0;color:#bdefff;font-size:9px}
.ws-board-tech .ws-bar small{color:#819bb1}
.ws-line-chart{position:absolute;inset:11px 8px 21px;width:calc(100% - 16px);height:calc(100% - 32px);z-index:1;overflow:visible}
.ws-chart-grid line{stroke:#446079;stroke-width:1;opacity:.55}.ws-chart-area{fill:url(#wsLineArea)}
.ws-chart-line{fill:none;stroke:#00e5ef;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px rgba(0,229,239,.6));stroke-dasharray:1600;stroke-dashoffset:1600;animation:wsDrawLine 1.5s ease forwards}
.ws-chart-point{fill:#00f1f2;stroke:#041322;stroke-width:3;filter:drop-shadow(0 0 5px rgba(0,229,239,.9));opacity:0;animation:wsPointIn .25s ease forwards;animation-delay:calc(.7s + var(--point-delay))}
.ws-board-tech .ws-ring{background:conic-gradient(#00e5ef var(--ws-angle),#0b3154 0);box-shadow:0 0 25px rgba(0,229,239,.22);animation:wsRingPulse 2.6s ease-in-out infinite}
.ws-board-tech .ws-ring:before{border-color:#14579c;background:#041322}.ws-board-tech .ws-ring strong{color:#fff;text-shadow:0 0 14px rgba(0,229,239,.45)}
.ws-board-tech .ws-hero-copy small{color:#00dce8}.ws-board-tech .ws-hero-copy h2{color:#fff}.ws-board-tech .ws-hero-copy p{color:#7696ad}
.ws-board-tech .ws-station{border-color:#164d82;background:#06172a}.ws-board-tech .ws-station.run{border-color:#1388ce;animation:wsRunPulse 2s ease-in-out infinite}
.ws-board-tech .ws-station.good{border-color:#167b5a}.ws-board-tech .ws-station.bad{border-color:#9d3546;background:#2a101a}
.ws-board-tech .ws-activity li,.ws-board-tech .ws-alert,.ws-board-tech .ws-equipment{border-bottom-color:#0c3158}
.ws-board-tech .ws-activity .ws-dot{background:#19d58d;box-shadow:0 0 8px rgba(25,213,141,.75)}
.ws-board-tech .ws-alert>i{box-shadow:0 0 8px currentColor}.ws-board-tech .ws-equipment strong{color:#00e5ef}
.ws-board-tech .ws-quality{background:#124a91}.ws-board-tech .ws-quality>div{background:#061426}
.ws-board-tech .ws-quality strong{color:#00ecf0;text-shadow:0 0 12px rgba(0,229,239,.3)}
.ws-board-tech .ws-ticker{border-top-color:#1359bd;background:linear-gradient(90deg,#041020,#08234a,#041020);color:#78a2c0}
.ws-board-tech .ws-ticker>span{color:#00e5ef}.ws-board-tech .ws-ticker div{animation:wsTickerMove 22s linear infinite}
@keyframes wsPanelEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes wsDrawLine{to{stroke-dashoffset:0}}
@keyframes wsPointIn{to{opacity:1}}
@keyframes wsRingPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.16)}}
@keyframes wsRunPulse{0%,100%{box-shadow:inset 0 0 0 rgba(0,229,239,0)}50%{box-shadow:inset 0 0 18px rgba(0,229,239,.12)}}
@keyframes wsTickerMove{0%{transform:translateX(0)}50%{transform:translateX(-7%)}100%{transform:translateX(0)}}

body.assembly-workstation-mode{background:#edf1f4}body.assembly-workstation-mode .content{background:#edf1f4}
.assembly-station-v4{padding:0 18px 20px;color:#1c2c38}
.assembly-station-v4 .assembly-station-top{grid-template-columns:minmax(250px,1.15fr) repeat(4,minmax(150px,.72fr)) minmax(220px,.82fr);gap:8px;margin:0 -18px 14px;padding:14px 18px;border-bottom:1px solid #d3dde4;background:#fff}
.assembly-station-v4 .assembly-station-top>div:first-child{padding:3px 4px}.assembly-station-v4 .station-kicker{color:#658298;font-size:10px;letter-spacing:0}
.assembly-station-v4 h1{margin-top:2px;color:#17344a;font-size:27px;letter-spacing:0}
.assembly-station-v4 .station-top-field,.assembly-station-v4 .station-overall{padding:8px 10px;border:1px solid #d6e0e6;border-radius:6px;background:#f8fafb;box-shadow:none}
.assembly-station-v4 .station-top-field small{color:#7a8993}.assembly-station-v4 .station-top-field b{color:#243c4d;font-size:13px;line-height:26px}
.assembly-station-v4 .station-top-actions{grid-template-columns:1fr 1fr 1fr;gap:6px;min-width:220px}.assembly-station-v4 .station-top-actions .station-overall{grid-column:1/-1}
.assembly-station-v4 .station-action-button{height:31px;border-color:#cbd8df;background:#fff;color:#315e77}.assembly-station-v4 .portrait-preview-button{border-color:#72a8c2;background:#eaf4f8;color:#155f82}
.assembly-station-v4 .portrait-preview-button span{margin-right:4px;font-size:16px}
.assembly-station-v4 .assembly-station-main{display:grid;grid-template-columns:minmax(620px,1fr) minmax(620px,1fr);grid-template-areas:"drawing operation" "trace trace";gap:12px;align-items:start}
.assembly-station-v4 .station-left{grid-area:drawing;display:block}.assembly-station-v4 .station-operation-side{grid-area:operation;display:grid;gap:12px;align-content:start;min-width:0}
.assembly-station-v4 .scan-panel{min-height:526px}
.assembly-station-v4 .trace-panel{grid-area:trace}.assembly-station-v4 .assembly-station-panel{border-color:#d3dde4;border-radius:7px;box-shadow:0 3px 12px rgba(28,55,74,.06)}
.assembly-station-v4 .assembly-panel-head{min-height:43px;padding:10px 12px;background:#f8fafb}
.assembly-station-v4 .assembly-drawing-workspace{display:flex;flex-direction:column;height:calc(100vh - 170px);min-height:760px}
.assembly-drawing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:7px 12px;border-bottom:1px solid #d1dce2;background:#eef3f5}
.assembly-drawing-toolbar>div:first-child{display:flex;align-items:center;gap:9px;min-width:0}.assembly-drawing-toolbar b{font-size:13px}.assembly-drawing-toolbar small{color:#75858e;font-size:11px}
.drawing-file-type{display:grid;place-items:center;width:36px;height:28px;border-radius:4px;background:#c9474e;color:#fff;font-size:10px;font-weight:800}
.drawing-toolbar-actions{display:flex;gap:5px}.drawing-toolbar-actions button{display:grid;place-items:center;min-width:34px;height:32px;padding:0 8px;border:1px solid #bccbd3;border-radius:5px;background:#fff;color:#315266;font:700 16px "Microsoft YaHei",sans-serif;cursor:pointer}
.drawing-toolbar-actions button:hover{border-color:#6e9eb7;background:#f6fbfd}.drawing-toolbar-actions .drawing-zoom-value{min-width:72px;font-size:11px}
.assembly-station-v4 .station-drawing{display:flex;align-items:flex-start;justify-content:center;flex:1;height:auto;min-height:0;padding:18px;overflow:auto;background:#dfe5e8}
.assembly-a4-page{display:grid;grid-template-rows:auto minmax(0,1fr) auto;flex:none;width:min(86%,clamp(440px,calc(70.7vh - 254px),560px));aspect-ratio:210/297;border:1px solid #b8c1c7;background:#fff;box-shadow:0 8px 22px rgba(24,43,55,.16)}
.assembly-a4-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:10px 14px;border-bottom:1px solid #b9c3c9;color:#233d4d}
.assembly-a4-header>div{display:grid}.assembly-a4-header b{font-size:10px}.assembly-a4-header span{font-size:17px;font-weight:800}.assembly-a4-header small{color:#60747f;font-size:9px}
.assembly-a4-content{display:grid;place-items:center;min-height:0;padding:24px 26px}.assembly-a4-content svg{width:100%;height:auto;max-height:100%}
.assembly-a4-titleblock{display:grid;grid-template-columns:minmax(0,1fr) 62px 62px 62px;min-height:66px;border-top:1px solid #8999a2}
.assembly-a4-titleblock>div{display:flex;flex-direction:column;justify-content:center;padding:7px 9px;border-left:1px solid #aab6bc}.assembly-a4-titleblock>div:first-child{border-left:0}
.assembly-a4-titleblock strong,.assembly-a4-titleblock small,.assembly-a4-titleblock b{display:block}.assembly-a4-titleblock strong{font-size:14px}.assembly-a4-titleblock small{margin-top:3px;color:#61727c;font-size:8px}.assembly-a4-titleblock b{font-size:12px}
.assembly-station-v4 .station-drawing-meta{grid-template-columns:repeat(3,minmax(0,1fr));padding:8px 10px}.assembly-station-v4 .station-drawing-meta span{padding:6px 8px}
.assembly-station-v4 .station-process-list{gap:6px;padding:9px}
.assembly-station-v4 .station-process-list li{min-height:47px;padding:6px 8px;background:#fff}.assembly-station-v4 .station-process-list span{background:#2c789e}
.assembly-station-v4 .station-task-head{padding:15px 17px}.assembly-station-v4 .station-task-head h2{font-size:30px}.assembly-station-v4 .station-task-state{height:78px;border-radius:6px}
.assembly-station-v4 .station-flow{gap:6px;padding:10px 12px;background:#f4f7f9}.assembly-station-v4 .station-flow-step{min-height:39px;border-radius:5px}
.assembly-station-v4 .station-active-scan{margin:12px;padding:24px;border-width:2px;background:#f7fafb}.assembly-station-v4 .station-active-scan>b{font-size:36px}
.assembly-station-v4 .station-scan-line input{height:60px;font-size:19px}.assembly-station-v4 .station-scan-line button{height:60px;font-size:15px}.assembly-station-v4 .station-scan-result{min-height:76px}
.assembly-station-v4 .trace-panel .station-bom-list{grid-template-columns:repeat(3,minmax(0,1fr))}.assembly-station-v4 .station-bom-row{min-height:66px;padding:9px}
.assembly-station-v4 .station-bom-row small{font-size:11px}.assembly-station-v4 .station-trace-table{max-height:225px}
.assembly-drawing-workspace:fullscreen{height:100vh;min-height:100vh;border:0;border-radius:0;background:#dfe5e8}
.assembly-drawing-workspace:fullscreen .station-drawing{padding:24px}.assembly-drawing-workspace:fullscreen .assembly-a4-page{width:min(760px,72vh)}

.assembly-portrait-overlay{position:fixed;inset:0;z-index:20000;overflow:auto;background:#e9eef1;color:#1c2d38;font-family:"Microsoft YaHei",Arial,sans-serif;letter-spacing:0}
.portrait-shell{position:relative;width:min(1280px,100%);min-height:100vh;margin:0 auto;background:#eef2f4}
.portrait-header{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:20px;min-height:112px;padding:20px 28px;border-bottom:1px solid #cad6dd;background:#15242e;color:#fff}
.portrait-brand{display:flex;align-items:center;gap:14px}.portrait-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:7px;background:#fff;color:#1f6f96;font-size:28px;font-weight:800}
.portrait-brand div{display:grid;gap:2px}.portrait-brand small{color:#86a9bb;font-size:11px}.portrait-brand b{font-size:24px}
.portrait-system{display:flex;align-items:center;gap:16px}.portrait-system span{display:flex;align-items:center;gap:8px;color:#b8c9d2;font-size:12px}
.portrait-system i{width:8px;height:8px;border-radius:50%;background:#35b67a}.portrait-system b{font-size:23px;font-variant-numeric:tabular-nums}
.portrait-header-actions{display:flex;gap:8px}.portrait-header-actions button{height:40px;padding:0 15px;border:1px solid #526773;border-radius:5px;background:#21333e;color:#fff;font-weight:700}
.portrait-main{display:grid;grid-template-rows:auto auto auto minmax(420px,1fr);gap:16px;min-height:calc(100vh - 112px);padding:18px 22px 112px}
.portrait-order{position:relative;display:grid;grid-template-columns:1fr 1fr 1.45fr .8fr;gap:1px;padding-right:168px;overflow:hidden;border:1px solid #cbd6dc;border-radius:7px;background:#cbd6dc}
.portrait-order>div{min-width:0;padding:14px 15px;background:#fff}.portrait-order small,.portrait-order strong{display:block}.portrait-order small{color:#74838d;font-size:11px}
.portrait-order strong{margin-top:5px;overflow:hidden;color:#1d394b;font-size:16px;text-overflow:ellipsis;white-space:nowrap}
.portrait-order-state{position:absolute;right:0;top:0;bottom:0;display:flex;flex-direction:column;justify-content:center;width:168px;padding:12px 16px;background:#e8f6ef;color:#176744}
.portrait-order-state b,.portrait-order-state small{display:block}.portrait-order-state b{font-size:16px}.portrait-order-state small{margin-top:4px;color:#4c7b66}
.portrait-current{padding:24px;border:2px solid #b8cad4;border-radius:7px;background:#fff}.portrait-current.pass{border-color:#72c69d}.portrait-current.alarm{border-color:#df7478;background:#fffafa}
.portrait-current-label{display:flex;align-items:center;justify-content:space-between;gap:16px}.portrait-current-label span{padding:5px 9px;border-radius:4px;background:#1d6f98;color:#fff;font-size:12px;font-weight:700}
.portrait-current-label b{color:#6d7e88;font-size:13px}.portrait-current>strong{display:block;margin-top:18px;color:#17364a;font-size:42px;line-height:1.2;overflow-wrap:anywhere}
.portrait-current>p{margin:9px 0 0;color:#617581;font-size:18px}
.portrait-scan-entry{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:10px;margin-top:22px}.portrait-scan-entry input{width:100%;height:70px;border:2px solid #79a9bf;border-radius:6px;padding:0 18px;background:#fafdff;color:#17384c;font:700 21px "Microsoft YaHei",sans-serif;outline:none}
.portrait-scan-entry input:focus{border-color:#1c7aa5;box-shadow:0 0 0 4px rgba(28,122,165,.12)}.portrait-scan-entry button{border:0;border-radius:6px;background:#176f9d;color:#fff;font:700 18px "Microsoft YaHei",sans-serif}
.portrait-result{display:grid;grid-template-columns:48px minmax(0,1fr);gap:13px;align-items:center;min-height:76px;margin-top:14px;padding:12px 15px;border:1px solid #d5dfe4;border-radius:6px;background:#f7f9fa}
.portrait-result-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#e3eaee;color:#59707e;font-size:22px;font-weight:800}
.portrait-result.pass{border-color:#a9d9c1;background:#f0faf5}.portrait-result.pass .portrait-result-icon{background:#35b67a;color:#fff}
.portrait-result.alarm{border-color:#e6b1b3;background:#fff1f1}.portrait-result.alarm .portrait-result-icon{background:#d94e55;color:#fff}
.portrait-result b,.portrait-result div span{display:block}.portrait-result b{font-size:18px}.portrait-result div span{margin-top:4px;color:#637681;font-size:13px}
.portrait-lower{display:grid;grid-template-columns:.78fr 1.22fr;gap:16px;align-items:stretch}.portrait-section{display:flex;flex-direction:column;overflow:hidden;border:1px solid #cbd6dc;border-radius:7px;background:#fff}
.portrait-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:66px;padding:12px 16px;border-bottom:1px solid #d7e0e5;background:#f8fafb}
.portrait-section-head div{display:grid}.portrait-section-head small{color:#6b8999;font-size:9px}.portrait-section-head b{margin-top:2px;font-size:17px}.portrait-section-head>span{color:#7b8992;font-size:11px}
.portrait-flow{display:grid;grid-template-rows:repeat(6,52px);padding:9px 14px 12px}.portrait-flow .station-flow-step{position:relative;display:flex;align-items:center;justify-content:flex-start;min-height:52px;padding:0 12px 0 42px;border:0;border-bottom:1px solid #e0e7eb;border-radius:0;background:#fff;color:#677984;font-weight:700}
.portrait-flow .station-flow-step:before{content:"";position:absolute;left:13px;width:16px;height:16px;border:2px solid #aab8c0;border-radius:50%;background:#fff}
.portrait-flow .station-flow-step:not(:last-child):after{content:"";position:absolute;left:21px;top:35px;bottom:-18px;width:2px;background:#d7e0e5}
.portrait-flow .station-flow-step.done{color:#176744}.portrait-flow .station-flow-step.done:before{border-color:#35b67a;background:#35b67a}
.portrait-flow .station-flow-step.current{color:#176f9d;background:#eef7fb}.portrait-flow .station-flow-step.current:before{border-color:#176f9d;box-shadow:inset 0 0 0 4px #fff;background:#176f9d}
.portrait-bom-list{display:grid;align-content:start;gap:7px;max-height:375px;padding:10px;overflow:auto}.portrait-bom-list .station-bom-row{min-height:66px;border-color:#d3dde3;border-radius:6px;padding:9px 10px;background:#fff}
.portrait-bom-list .station-bom-row.active{border-color:#2f8ab0;background:#eef7fb}.portrait-bom-list .station-bom-row b{font-size:14px}.portrait-bom-list .station-bom-row small{font-size:11px}
.portrait-empty{padding:30px;color:#788791;text-align:center}
.portrait-reference{display:grid;grid-template-columns:.92fr 1.08fr;gap:16px;min-height:0}
.portrait-reference>div{display:flex;flex-direction:column;min-height:0;overflow:hidden;border:1px solid #cbd6dc;border-radius:7px;background:#fff}
.portrait-drawing{display:grid;place-items:center;flex:1;min-height:330px;padding:18px;background:#fbfcfd}
.portrait-drawing svg{width:100%;height:100%;max-height:500px}
.portrait-process-list{display:grid;align-content:start;gap:8px;margin:0;padding:14px;list-style:none}
.portrait-process-list li{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;min-height:58px;padding:8px 10px;border:1px solid #d7e1e6;border-radius:6px;background:#f8fafb}
.portrait-process-list li span{display:grid;place-items:center;width:34px;height:34px;border-radius:5px;background:#25779d;color:#fff;font-size:12px;font-weight:800}
.portrait-process-list li b{font-size:13px;line-height:1.5}
.portrait-actions{position:fixed;left:50%;bottom:0;z-index:6;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:min(1280px,100%);padding:12px 22px 16px;transform:translateX(-50%);border-top:1px solid #c8d4da;background:rgba(239,243,245,.97)}
.portrait-actions button{display:flex;align-items:center;justify-content:center;gap:9px;height:66px;border:1px solid #b9c8d0;border-radius:6px;background:#fff;color:#304a59;font:700 16px "Microsoft YaHei",sans-serif}
.portrait-actions button span{font-size:20px}.portrait-actions .danger{border-color:#dfaaaa;color:#ae3036;background:#fff7f7}.portrait-actions .complete{border-color:#77bd99;color:#176744;background:#eff9f4}
.portrait-toast{position:fixed;left:50%;bottom:98px;z-index:8;max-width:min(760px,calc(100% - 40px));padding:13px 20px;border-radius:6px;background:#172a35;color:#fff;opacity:0;transform:translate(-50%,15px);pointer-events:none;transition:opacity .18s,transform .18s}
.portrait-toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-height:900px) and (min-width:1181px){
  .ws-board-v4 .ws-header{min-height:62px;padding:8px 16px}.ws-shift-state{min-height:26px;padding:0 16px}.ws-board-v4 .ws-kpis{margin-top:8px}
  .ws-board-v4 .ws-kpis article{min-height:64px;padding:9px 12px}.ws-board-v4 .ws-kpis strong{font-size:23px}.ws-board-v4 .ws-grid{height:calc(100vh - 190px);padding-top:8px}
  .ws-board-v4 .ws-hero{grid-template-columns:122px minmax(0,1fr);min-height:138px}.ws-board-v4 .ws-ring{width:110px;height:110px}
  .ws-board-v4 .ws-column.left>.ws-panel:last-child{height:160px;min-height:160px;max-height:160px}
}
@media(max-width:1400px){
  .assembly-station-v4 .assembly-station-top{grid-template-columns:repeat(3,minmax(0,1fr))}
  .assembly-station-v4 .assembly-station-main{grid-template-columns:1fr;grid-template-areas:"drawing" "operation" "trace"}
  .assembly-station-v4 .assembly-drawing-workspace{height:900px}
  .assembly-station-v4 .trace-panel .station-bom-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:800px){
  .assembly-station-v4{padding:0 10px 14px}.assembly-station-v4 .assembly-station-top{grid-template-columns:1fr;margin:0 -10px 10px;padding:12px 10px}
  .assembly-station-v4 .station-left{grid-template-columns:1fr}.assembly-station-v4 .trace-panel .station-bom-list{grid-template-columns:1fr}
  .portrait-header{grid-template-columns:1fr auto;min-height:92px;padding:15px}.portrait-system{display:none}.portrait-brand b{font-size:19px}.portrait-mark{width:46px;height:46px}
  .portrait-main{padding:12px 12px 108px}.portrait-order{grid-template-columns:1fr 1fr;padding-right:0}.portrait-order-state{position:static;width:auto;grid-column:1/-1}
  .portrait-current{padding:17px}.portrait-current>strong{font-size:30px}.portrait-scan-entry{grid-template-columns:1fr}.portrait-scan-entry button{height:62px}
  .portrait-lower,.portrait-reference{grid-template-columns:1fr}.portrait-actions{padding:8px 10px 11px}.portrait-actions button{height:60px;font-size:12px}.portrait-actions button span{display:none}
}
