.ledger-separation-shell{display:grid;gap:14px}.ls-legacy{display:none!important}.ls-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:20px;border:1px solid #dbe4ef;border-radius:14px;background:linear-gradient(135deg,#f8fbff,#eef6ff)}.ls-hero h1{margin:4px 0 7px;font-size:24px}.ls-hero p{margin:0;color:#64748b}.ls-eyebrow{font-size:12px;font-weight:700;color:#2563eb}.ls-actions{display:flex;gap:8px;flex-wrap:wrap}.ls-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.ls-kpi{padding:15px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.ls-kpi span{display:block;color:#64748b;font-size:12px}.ls-kpi strong{display:block;margin:7px 0 4px;font-size:24px}.ls-kpi small{color:#94a3b8}.ls-panel{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.ls-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid #edf0f4}.ls-panel-head h2{font-size:17px;margin:0 0 4px}.ls-panel-head p{margin:0;color:#64748b;font-size:12px}.ls-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 18px;background:#fafcff;border-bottom:1px solid #edf0f4}.ls-filters select,.ls-filters input{height:36px;border:1px solid #d7dee8;border-radius:8px;background:#fff;padding:0 10px;color:#334155}.ls-table-wrap{overflow:auto}.ls-table{width:100%;min-width:1120px;border-collapse:collapse}.ls-table th{padding:11px 12px;background:#f8fafc;color:#64748b;font-size:12px;text-align:left;white-space:nowrap;border-bottom:1px solid #e5e7eb}.ls-table td{padding:12px;border-bottom:1px solid #edf0f4;font-size:13px;vertical-align:middle}.ls-table tr:hover td{background:#fbfdff}.ls-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#1e3a8a;font-weight:600}.ls-muted{color:#94a3b8}.ls-stack{display:grid;gap:3px}.ls-tag{display:inline-flex;align-items:center;width:max-content;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#f1f5f9;color:#475569}.ls-tag.demand{background:#dbeafe;color:#1d4ed8}.ls-tag.stock{background:#dcfce7;color:#047857}.ls-tag.warning{background:#fef3c7;color:#92400e}.ls-tag.success{background:#d1fae5;color:#065f46}.ls-tag.purple{background:#ede9fe;color:#6d28d9}.ls-row-actions{display:flex;gap:6px;flex-wrap:wrap}.ls-row-actions button{border:1px solid #dbe3ec;background:#fff;color:#334155;border-radius:7px;padding:5px 9px;cursor:pointer}.ls-row-actions button.primary{background:#2563eb;border-color:#2563eb;color:#fff}.ls-row-actions button:disabled{opacity:.45;cursor:not-allowed}.ls-empty{padding:44px;text-align:center;color:#94a3b8}.ls-modal-overlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.45);z-index:3000}.ls-modal-overlay.show{display:flex}.ls-modal{width:min(620px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 24px 70px rgba(15,23,42,.25)}.ls-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #e5e7eb}.ls-modal-head h2{margin:0 0 4px}.ls-modal-head p{margin:0;color:#64748b;font-size:12px}.ls-modal-close{border:0;background:#f1f5f9;width:30px;height:30px;border-radius:50%;cursor:pointer}.ls-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:20px}.ls-field{display:grid;gap:6px}.ls-field.full{grid-column:1/-1}.ls-field label{font-size:12px;color:#64748b}.ls-field input,.ls-field select,.ls-field textarea{width:100%;border:1px solid #d7dee8;border-radius:8px;padding:9px 10px;background:#fff}.ls-field textarea{min-height:72px;resize:vertical}.ls-readonly{padding:10px;border-radius:8px;background:#f8fafc;color:#475569}.ls-modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid #e5e7eb}.ls-note{padding:11px 12px;border-left:3px solid #3b82f6;background:#eff6ff;color:#334155;font-size:12px}.ls-topline{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.ls-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.ls-detail{padding:12px;background:#f8fafc;border-radius:10px}.ls-detail span{display:block;color:#94a3b8;font-size:11px;margin-bottom:4px}.ls-detail strong{font-size:13px}.ls-source-link{color:#2563eb;cursor:pointer}.ls-page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:4px}.ls-page-title h1{margin:0 0 5px}.ls-page-title p{margin:0;color:#64748b}@media(max-width:1000px){.ls-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.ls-hero,.ls-page-title{display:block}.ls-actions{margin-top:12px}.ls-kpis,.ls-detail-grid,.ls-form{grid-template-columns:1fr}.ls-field.full{grid-column:auto}}

.ls-actions .btn:disabled{opacity:.45;cursor:not-allowed}.ls-production-table{min-width:1540px}.ls-production-table th:first-child,.ls-production-table td:first-child{width:42px;text-align:center}.ls-monitor-summary{display:block;max-width:220px;line-height:1.6;color:#334155}.ls-device-qty-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.ls-device-qty-grid label{display:grid;gap:5px;padding:10px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;color:#475569}.ls-device-qty-grid input{min-width:0;background:#fff}@media(max-width:720px){.ls-device-qty-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Project ledger aligned with the production workbench */
#lsProjectRoot{--vff-primary:#177d70;--vff-primary-2:#1c9483;--vff-line:#e4eaee;--vff-text:#26333c;--vff-text-secondary:#5f6b73;--vff-muted:#788791;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--vff-text)}
#lsProjectRoot .ls-project-main-panel{overflow:hidden;border:1px solid var(--vff-line);border-radius:7px;background:#fff;box-shadow:0 2px 10px rgba(27,53,68,.06)}
#lsProjectRoot .ls-project-titlebar{min-height:62px;padding:10px 14px;border-bottom:1px solid var(--vff-line);background:#fff}
#lsProjectRoot .ls-project-titlebar h1{margin:0;font-size:20px;font-weight:600;line-height:28px;color:var(--vff-text)}
#lsProjectRoot .ls-project-titlebar p{margin:0;font-size:12px;line-height:20px;color:var(--vff-muted)}
#lsProjectRoot .ls-actions{gap:8px}
#lsProjectRoot .ls-tag{padding:2px 7px;border-radius:4px;background:#eef2f4;color:#52636d;font-size:12px;font-weight:400;line-height:20px}
#lsProjectRoot .ls-tag.demand{background:#e8f1f8;color:#3678b7}
#lsProjectRoot .ls-tag.warning{background:#fff3dd;color:#a66d18}
#lsProjectRoot .ls-tag.success{background:#e5f5ee;color:#177d70}
#lsProjectRoot .ls-tag.purple{background:#f0edf8;color:#7565a8}
#lsProjectRoot .ls-project-filters{display:grid;grid-template-columns:minmax(240px,360px) auto 1fr;gap:8px;padding:8px 10px;border-bottom:1px solid var(--vff-line);background:#fff}
#lsProjectRoot .ls-project-filters select{width:100%;height:36px;border:1px solid #dce4e8;border-radius:4px;background:#fff;padding:0 9px;font-family:inherit;font-size:14px;color:var(--vff-text);outline:none}
#lsProjectRoot .ls-project-filters select:focus{border-color:var(--vff-primary);box-shadow:0 0 0 2px rgba(23,125,112,.10)}
#lsProjectRoot .btn{height:36px;border-radius:4px;padding:0 14px;font-family:inherit;font-size:14px;line-height:34px;box-shadow:none}
#lsProjectRoot .btn-primary{border:1px solid var(--vff-primary);background:var(--vff-primary);color:#fff}
#lsProjectRoot .btn-primary:hover{border-color:var(--vff-primary-2);background:var(--vff-primary-2)}
#lsProjectRoot .ls-project-table{min-width:1180px}
#lsProjectRoot .ls-table th{height:42px;padding:0 12px;border-bottom:1px solid var(--vff-line);background:#f6f8f9;color:var(--vff-text-secondary);font-size:12px;font-weight:500}
#lsProjectRoot .ls-table td{padding:10px 12px;border-bottom:1px solid #e9eef1;color:var(--vff-text);font-size:14px;line-height:22px}
#lsProjectRoot .ls-table tbody tr:hover td{background:#f4faf8}
#lsProjectRoot .ls-code{font-family:Consolas,"SFMono-Regular",monospace;font-size:13px;font-weight:600;color:var(--vff-text)}
#lsProjectRoot .ls-empty{color:var(--vff-muted)}
@media(max-width:720px){#lsProjectRoot .ls-project-filters{grid-template-columns:1fr}#lsProjectRoot .ls-project-filters select,#lsProjectRoot .ls-project-filters .btn{width:100%}}

#lsProjectRoot .ls-project-scope{display:grid;grid-template-columns:auto var(--pg-project-context-width);align-items:center;gap:8px}
#lsProjectRoot .ls-project-scope label{font-size:12px;color:var(--vff-muted)}
#lsProjectRoot .ls-project-scope select{height:36px;border:1px solid #dce4e8;border-radius:4px;background:#fff;padding:0 9px;color:var(--vff-text);outline:none}
#lsProjectRoot .ls-project-scope select:focus{border-color:var(--vff-primary);box-shadow:0 0 0 2px rgba(23,125,112,.10)}
.ls-project-tabs{display:flex;gap:24px;padding:0 14px;border-bottom:1px solid var(--vff-line);background:#fff}
.ls-project-tabs button{height:44px;padding:0 4px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--vff-muted);font-family:inherit;font-size:14px;cursor:pointer}
.ls-project-tabs button.active{border-bottom-color:var(--vff-primary);color:var(--vff-primary);font-weight:600}
.ls-project-tabs span{display:inline-flex;margin-left:4px;padding:0 6px;border-radius:9px;background:#eef2f4;font-size:11px;line-height:18px}
.ls-project-tab-panel{min-height:320px;background:#f4f7f8}
.ls-project-overview{display:grid;gap:12px;padding:12px}
.ls-project-total-card{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:2px 16px;padding:16px;border:1px solid var(--vff-line);border-radius:7px;background:#fff;box-shadow:0 2px 8px rgba(27,53,68,.04)}
.ls-project-total-card span,.ls-project-total-card small{color:var(--vff-muted);font-size:12px}
.ls-project-total-card strong{grid-row:1/3;font-size:34px;line-height:40px;color:var(--vff-primary)}
.ls-project-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ls-project-ranking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ls-project-metric-card{min-width:0;padding:14px;border:1px solid var(--vff-line);border-radius:7px;background:#fff;box-shadow:0 2px 8px rgba(27,53,68,.04)}
.ls-project-metric-card h3{margin:0 0 12px;font-size:14px;color:var(--vff-text)}
.ls-project-bar-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:4px 8px;margin-bottom:10px}
.ls-project-bar-row:last-child{margin-bottom:0}
.ls-project-bar-row>div:first-child{grid-column:1;display:flex;justify-content:space-between;gap:8px;min-width:0;font-size:12px;color:var(--vff-text-secondary)}
.ls-project-bar-row>div:first-child span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ls-project-bar-row strong{color:var(--vff-primary);font-weight:600}
.ls-project-bar-track{grid-column:1;overflow:hidden;height:6px;border-radius:4px;background:#edf2f3}
.ls-project-bar-track i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--vff-primary),#42a695)}
.ls-project-bar-row small{grid-column:2;grid-row:1/3;align-self:center;color:var(--vff-muted);text-align:right}
.ls-project-overview-empty{padding:28px 0;color:var(--vff-muted);text-align:center}
#lsProjectRoot .ls-project-context-empty{
  min-height:260px;
  display:grid;
  place-items:center;
  color:#94a3b8;
  font-size:14px;
  background:#fff;
  border:1px dashed #d7e2e8;
  border-radius:6px;
}
#lsProjectRoot .ls-project-filters{grid-template-columns:repeat(4,minmax(130px,1fr)) minmax(240px,1.4fr) auto auto}
#lsProjectRoot .ls-project-filters .btn{white-space:nowrap}
#lsProjectRoot .ls-project-filters .btn:disabled{border-color:#cfd8dc;background:#eef2f4;color:#9aa7ae;cursor:not-allowed}
#lsProjectRoot .ls-project-filters input{box-sizing:border-box;width:100%;height:36px;border:1px solid #dce4e8;border-radius:4px;background:#fff;padding:0 9px;font-family:inherit;font-size:14px;color:var(--vff-text);outline:none}
#lsProjectRoot .ls-project-filters input:focus{border-color:var(--vff-primary);box-shadow:0 0 0 2px rgba(23,125,112,.10)}
#lsProjectRoot .ls-project-table{min-width:2450px}
.ls-project-assets{display:grid;gap:5px;min-width:140px}
.ls-project-assets span{display:grid;gap:1px}
.ls-project-assets b{font-family:Consolas,monospace;font-size:12px;color:var(--vff-text)}
.ls-project-assets small{font-family:Consolas,monospace;color:var(--vff-muted)}
.ls-project-action{position:sticky;right:0;z-index:3;min-width:150px;background:#fff;box-shadow:-8px 0 12px rgba(38,51,60,.06)}
#lsProjectRoot thead .ls-project-action{z-index:5;background:#f6f8f9}
#lsProjectRoot tbody tr:hover .ls-project-action{background:#f4faf8}
#lsProjectRoot .ls-row-actions{display:flex;gap:6px;flex-wrap:nowrap}
#lsProjectRoot .ls-row-actions button{height:30px;white-space:nowrap;padding:0 10px;border:1px solid #d6e0e5;border-radius:4px;background:#fff;color:#51616b;cursor:pointer}
#lsProjectRoot .ls-row-actions button.danger{border-color:#e8c2c0;color:#c84642}
#lsProjectRoot .ls-row-actions button.danger:hover{border-color:#c84642;background:#fff4f3}
#lsProjectRoot .ls-project-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;border-top:1px solid var(--vff-line);background:#fff;color:var(--vff-text-secondary);font-size:13px}
#lsProjectRoot .ls-project-pagination>div{display:flex;align-items:center;gap:10px}
#lsProjectRoot .ls-page-size-control{display:flex;align-items:center;gap:6px;color:var(--vff-text-secondary);white-space:nowrap}
#lsProjectRoot .ls-page-size-control select{height:32px;min-width:76px;border:1px solid #d4dee4;border-radius:4px;padding:0 8px;background:#fff;color:#42515b;font-family:inherit;font-size:13px;outline:none}
#lsProjectRoot .ls-page-size-control select:focus{border-color:var(--vff-primary);box-shadow:0 0 0 2px rgba(23,125,112,.10)}
#lsProjectRoot .ls-project-pagination button{height:32px;padding:0 13px;border:1px solid #d4dee4;border-radius:4px;background:#fff;color:#42515b;cursor:pointer}
#lsProjectRoot .ls-project-pagination button:hover:not(:disabled){border-color:var(--vff-primary);color:var(--vff-primary)}
#lsProjectRoot .ls-project-pagination button:focus-visible{outline:2px solid rgba(23,125,112,.25);outline-offset:2px}
#lsProjectRoot .ls-project-pagination button:disabled{background:#f5f7f8;color:#a9b3b9;cursor:not-allowed}
@media(max-width:1100px){#lsProjectRoot .ls-project-pagination{justify-content:flex-start;flex-wrap:wrap}}
@media(max-width:720px){#lsProjectRoot .ls-project-pagination{align-items:stretch;flex-direction:column}#lsProjectRoot .ls-pagination-summary,#lsProjectRoot .ls-pagination-buttons{justify-content:space-between}}.ls-project-unbind-modal{width:min(680px,96vw)}
.ls-project-unbind-modal .required{color:#d9534f}
.ls-project-history-section{margin-top:14px;border:1px solid #e3e9ed;border-radius:7px;overflow:hidden}
.ls-project-history-section .ls-detail-section-head{background:#f8fafb}
@media(max-width:1100px){.ls-project-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1024px){#lsProjectRoot .ls-project-titlebar{align-items:flex-start;flex-direction:column}#lsProjectRoot .ls-project-scope{grid-template-columns:1fr;width:100%}#lsProjectRoot .ls-project-scope select{width:100%}}
@media(max-width:720px){.ls-project-metric-grid,.ls-project-ranking-grid{grid-template-columns:1fr}#lsProjectRoot .ls-project-filters{grid-template-columns:1fr}.ls-project-total-card{padding:14px}}

/* Worksite ledger aligned with the production workbench */
#lsWorksiteRoot{--vff-primary:#177d70;--vff-primary-2:#1c9483;--vff-line:#e4eaee;--vff-text:#26333c;--vff-text-secondary:#5f6b73;--vff-muted:#788791;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--vff-text)}
#lsWorksiteRoot .ls-worksite-main-panel{overflow:hidden;border:1px solid var(--vff-line);border-radius:7px;background:#fff;box-shadow:0 2px 10px rgba(27,53,68,.06)}
#lsWorksiteRoot .ls-worksite-titlebar{min-height:62px;padding:10px 14px;border-bottom:1px solid var(--vff-line);background:#fff}
#lsWorksiteRoot .ls-worksite-titlebar h1{margin:0;font-size:20px;font-weight:600;line-height:28px;color:var(--vff-text)}
#lsWorksiteRoot .ls-worksite-titlebar p{margin:0;font-size:12px;line-height:20px;color:var(--vff-muted)}
#lsWorksiteRoot .ls-worksite-title-tools{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
#lsWorksiteRoot .ls-worksite-scope{display:grid;grid-template-columns:auto var(--pg-project-context-width);align-items:center;gap:8px}
#lsWorksiteRoot .ls-worksite-scope label{font-size:12px;color:var(--vff-muted)}
#lsWorksiteRoot .ls-worksite-scope label span{color:#dc5b57}
#lsWorksiteRoot .ls-worksite-scope select{height:36px;border:1px solid #dce4e8;border-radius:4px;background:#fff;padding:0 9px;font-family:inherit;font-size:14px;color:var(--vff-text);outline:none}
#lsWorksiteRoot .ls-worksite-scope select:hover:not(:disabled){border-color:#bdcbd2}
#lsWorksiteRoot .ls-worksite-scope select:focus{border-color:var(--vff-primary);box-shadow:0 0 0 2px rgba(23,125,112,.10)}
#lsWorksiteRoot .ls-worksite-scope select:disabled{background:#f5f7f8;color:#aab5bc;cursor:not-allowed}
#lsWorksiteRoot .ls-worksite-tabs{display:flex;gap:24px;padding:0 14px;border-bottom:1px solid var(--vff-line);background:#fff}
#lsWorksiteRoot .ls-worksite-tabs button{height:42px;padding:0 4px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--vff-muted);font-family:inherit;font-size:14px;cursor:pointer}
#lsWorksiteRoot .ls-worksite-tabs button:hover{color:var(--vff-primary)}
#lsWorksiteRoot .ls-worksite-tabs button:focus-visible{border-radius:4px;outline:2px solid rgba(23,125,112,.28);outline-offset:-2px}
#lsWorksiteRoot .ls-worksite-tabs button.active{border-bottom-color:var(--vff-primary);color:var(--vff-primary);font-weight:600}
#lsWorksiteRoot .ls-worksite-tabs span{display:inline-flex;margin-left:4px;padding:0 6px;border-radius:4px;background:#eef2f4;font-size:11px;line-height:18px}
#lsWorksiteRoot .ls-worksite-tab-panel{min-height:320px;background:#f3f6f8}
#lsWorksiteRoot .ls-worksite-overview{display:grid;gap:12px;padding:12px}
#lsWorksiteRoot .ls-worksite-total-card{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:2px 16px;padding:16px;border:1px solid var(--vff-line);border-radius:7px;background:#fff;box-shadow:0 2px 10px rgba(27,53,68,.06)}
#lsWorksiteRoot .ls-worksite-total-card span,#lsWorksiteRoot .ls-worksite-total-card small{color:var(--vff-muted);font-size:12px}
#lsWorksiteRoot .ls-worksite-total-card strong{grid-row:1/3;font-size:24px;line-height:32px;color:var(--vff-primary)}
#lsWorksiteRoot .ls-worksite-ranking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#lsWorksiteRoot .ls-worksite-ranking-card{min-width:0;padding:16px;border:1px solid var(--vff-line);border-radius:7px;background:#fff;box-shadow:0 2px 10px rgba(27,53,68,.06)}
#lsWorksiteRoot .ls-worksite-ranking-card h3{margin:0 0 12px;font-size:14px;line-height:22px;color:var(--vff-text)}
#lsWorksiteRoot .ls-worksite-bar-row{display:grid;gap:4px;margin-bottom:12px}
#lsWorksiteRoot .ls-worksite-bar-row:last-child{margin-bottom:0}
#lsWorksiteRoot .ls-worksite-bar-row>div:first-child{display:flex;justify-content:space-between;gap:12px;min-width:0;font-size:13px;color:var(--vff-text-secondary)}
#lsWorksiteRoot .ls-worksite-bar-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#lsWorksiteRoot .ls-worksite-bar-row strong{color:var(--vff-primary);font-size:12px;font-weight:600}
#lsWorksiteRoot .ls-worksite-bar-track{overflow:hidden;height:6px;border-radius:4px;background:#eaf5f3}
#lsWorksiteRoot .ls-worksite-bar-track i{display:block;height:100%;border-radius:4px;background:var(--vff-primary)}
#lsWorksiteRoot .ls-worksite-overview-empty{padding:28px 0;color:var(--vff-muted);font-size:13px;text-align:center}
#lsWorksiteRoot .ls-worksite-context-empty{display:grid;min-height:320px;place-items:center;padding:24px;color:var(--vff-muted);font-size:14px;text-align:center}
#lsWorksiteRoot .ls-actions{align-items:center;gap:8px;flex-wrap:nowrap}
#lsWorksiteRoot .btn{height:36px;border-radius:4px;padding:0 14px;font-family:inherit;font-size:14px;line-height:34px;box-shadow:none}
#lsWorksiteRoot .btn-primary{border:1px solid var(--vff-primary);background:var(--vff-primary);color:#fff}
#lsWorksiteRoot .btn-outline{border:1px solid #d6e0e5;background:#fff;color:#51616b}
#lsWorksiteRoot .btn-outline:hover:not(:disabled){border-color:#aebdc5;background:#f7f9fa;color:var(--vff-text)}
#lsWorksiteRoot .ls-btn-danger{border:1px solid #d9534f;background:#fff;color:#c84642}
#lsWorksiteRoot .ls-btn-danger:hover:not(:disabled){border-color:#c84642;background:#fff4f3;color:#b53834}
#lsWorksiteRoot .btn:disabled{opacity:.45;cursor:not-allowed}
#lsWorksiteRoot .ls-tag{padding:2px 7px;border-radius:4px;background:#eef2f4;color:#52636d;font-size:12px;font-weight:400;line-height:20px}
#lsWorksiteRoot .ls-worksite-list-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 10px;border-bottom:1px solid var(--vff-line);background:#fff}
#lsWorksiteRoot .ls-worksite-filters{display:grid;grid-template-columns:180px minmax(240px,320px) 72px;align-items:center;gap:8px;min-width:0;padding:0;border:0;background:transparent}
#lsWorksiteRoot .ls-worksite-batch-actions{justify-self:end;white-space:nowrap}
#lsWorksiteRoot .ls-worksite-filters select,#lsWorksiteRoot .ls-worksite-filters input{box-sizing:border-box;min-width:0;width:100%;height:36px;border:1px solid #dce4e8;border-radius:4px;background:#fff;padding:0 9px;font-family:inherit;font-size:14px;font-weight:400;color:var(--vff-text);outline:none;box-shadow:none}
#lsWorksiteRoot .ls-worksite-filters select:hover,#lsWorksiteRoot .ls-worksite-filters input:hover{border-color:#bdcbd2}
#lsWorksiteRoot .ls-worksite-filters select:focus,#lsWorksiteRoot .ls-worksite-filters input:focus{border-color:var(--vff-primary);box-shadow:0 0 0 2px rgba(23,125,112,.10)}
#lsWorksiteRoot .ls-table-wrap{overflow-x:auto;background:#fff;scrollbar-color:#94a3a8 #eef2f3;scrollbar-width:thin}
#lsWorksiteRoot .ls-worksite-table{min-width:1230px}
#lsWorksiteRoot .ls-select-col{width:42px;text-align:center}
#lsWorksiteRoot .ls-select-col input{width:16px;height:16px;accent-color:var(--vff-primary);cursor:pointer}
#lsWorksiteRoot .ls-table th{height:42px;padding:0 12px;border-bottom:1px solid var(--vff-line);background:#f6f8f9;color:var(--vff-text-secondary);font-size:12px;font-weight:500;line-height:20px}
#lsWorksiteRoot .ls-table td{padding:10px 12px;border-bottom:1px solid #e9eef1;color:var(--vff-text);font-size:14px;line-height:22px}
#lsWorksiteRoot .ls-table tbody tr:last-child td{border-bottom:0}
#lsWorksiteRoot .ls-table tbody tr:hover td{background:#f4faf8}
#lsWorksiteRoot .ls-code,#lsWorksiteRoot .ls-coordinate{font-family:Consolas,"SFMono-Regular",monospace;font-size:13px;color:var(--vff-text)}
#lsWorksiteRoot .ls-row-actions{gap:6px;flex-wrap:nowrap}
#lsWorksiteRoot .ls-row-actions button{height:30px;padding:0 10px;border:1px solid #d6e0e5;border-radius:4px;background:#fff;font-family:inherit;font-size:12px;color:#51616b;cursor:pointer}
#lsWorksiteRoot .ls-row-actions button:hover{border-color:#aebdc5;background:#f7f9fa;color:var(--vff-text)}
#lsWorksiteRoot .ls-empty{color:var(--vff-muted)}
#lsWorksiteRoot .ls-sticky-action{position:sticky;right:0;z-index:3;min-width:88px;background:#fff;box-shadow:-8px 0 12px rgba(38,51,60,.06)}
#lsWorksiteRoot thead .ls-sticky-action{z-index:5;background:#f6f8f9}
#lsWorksiteRoot tbody tr:hover .ls-sticky-action{background:#f4faf8}
#lsWorksiteRoot .ls-worksite-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;border-top:1px solid #e3e9ed;background:#fff;color:#667681;font-size:13px}
#lsWorksiteRoot .ls-pagination-summary,#lsWorksiteRoot .ls-pagination-buttons{display:flex;align-items:center;gap:10px}
#lsWorksiteRoot .ls-page-size-control{display:flex;align-items:center;gap:6px}
#lsWorksiteRoot .ls-page-size-control select{height:32px;border:1px solid #d4dee4;border-radius:4px;background:#fff;padding:0 8px;color:#42515b}
#lsWorksiteRoot .ls-worksite-pagination button{height:32px;padding:0 13px;border:1px solid #d4dee4;border-radius:4px;background:#fff;color:#42515b;cursor:pointer}
#lsWorksiteRoot .ls-worksite-pagination button:hover:not(:disabled){border-color:var(--vff-primary);color:var(--vff-primary)}
#lsWorksiteRoot .ls-worksite-pagination button:disabled{background:#f5f7f8;color:#a9b3b9;cursor:not-allowed}
.ls-worksite-detail-modal{width:min(760px,96vw)}
.ls-worksite-detail-content{display:grid;gap:18px;padding:20px}
.ls-worksite-detail-section{display:grid;gap:10px}
.ls-worksite-detail-section h3{margin:0;padding-bottom:8px;border-bottom:1px solid #e5eaed;color:#26333c;font-size:14px;font-weight:600}
.ls-worksite-detail-modal .ls-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.ls-worksite-detail-modal .ls-detail{min-width:0;border:1px solid #e6ecef;border-radius:6px;background:#f8fafb}
.ls-worksite-detail-modal .ls-detail strong{display:block;overflow:hidden;color:#26333c;text-overflow:ellipsis;white-space:nowrap}
.ls-worksite-demand-field{grid-column:1/-1}
.ls-worksite-demand-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.ls-worksite-demand-tag{display:inline-flex;align-items:center;min-height:28px;padding:3px 10px;border:1px solid #cfe3de;border-radius:4px;background:#eaf7f4;color:#176f63;font-size:13px}
.ls-worksite-demand-empty{margin-top:6px;color:#788791;font-size:13px}
@media(max-width:1024px){
  #lsWorksiteRoot .ls-worksite-titlebar{align-items:flex-start;flex-direction:column}
  #lsWorksiteRoot .ls-worksite-title-tools{align-items:stretch;justify-content:space-between;width:100%}
  #lsWorksiteRoot .ls-worksite-scope{grid-template-columns:1fr;width:100%}
  #lsWorksiteRoot .ls-worksite-scope select{width:100%}
  #lsWorksiteRoot .ls-worksite-ranking-grid{grid-template-columns:1fr}
}

@media(max-width:720px){
  #lsWorksiteRoot .ls-worksite-title-tools{align-items:stretch;flex-direction:column}
  #lsWorksiteRoot .ls-worksite-scope{grid-template-columns:1fr;width:100%}
  #lsWorksiteRoot .ls-worksite-scope select{width:100%}
  #lsWorksiteRoot .ls-actions{width:100%}
  #lsWorksiteRoot .ls-worksite-list-toolbar{grid-template-columns:1fr}
  #lsWorksiteRoot .ls-worksite-filters{grid-template-columns:1fr}
  #lsWorksiteRoot .ls-worksite-batch-actions{justify-self:stretch}
  #lsWorksiteRoot .ls-worksite-filters select,#lsWorksiteRoot .ls-worksite-filters input,#lsWorksiteRoot .ls-worksite-filters .btn{width:100%}
  #lsWorksiteRoot .ls-worksite-pagination{align-items:stretch;flex-direction:column}
  #lsWorksiteRoot .ls-pagination-summary,#lsWorksiteRoot .ls-pagination-buttons{justify-content:space-between}
  .ls-worksite-detail-modal .ls-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Production ledger · VFF realtime visual theme */
#lsProductionRoot{--vff-primary:#177d70;--vff-primary-2:#1c9483;--vff-bg:#f3f6f8;--vff-card:#fff;--vff-line:#e4eaee;--vff-text:#26333c;--vff-text-secondary:#5f6b73;--vff-muted:#788791;--vff-danger:#dc5b57;--vff-warn:#e7a13b;--vff-info:#4389cc;--vff-shadow:0 2px 10px rgba(27,53,68,.06);font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--vff-text);gap:12px}
#lsProductionRoot .ls-hero{align-items:center;gap:16px;padding:14px 16px;border:1px solid var(--vff-line);border-radius:7px;background:var(--vff-card);box-shadow:var(--vff-shadow)}
#lsProductionRoot .ls-hero h1{margin:0;font-size:20px;font-weight:600;line-height:28px;color:var(--vff-text)}
#lsProductionRoot .ls-hero p{margin:2px 0 0;font-size:12px;line-height:20px;color:var(--vff-muted)}
#lsProductionRoot .ls-eyebrow{display:block;margin-bottom:2px;font-size:12px;font-weight:400;line-height:20px;color:var(--vff-primary)}
#lsProductionRoot .ls-actions{gap:8px}
#lsProductionRoot .btn{height:36px;border-radius:4px;padding:0 14px;font-family:inherit;font-size:14px;font-weight:400;line-height:34px;box-shadow:none;transition:background-color .16s ease,border-color .16s ease,color .16s ease}
#lsProductionRoot .btn-primary{border:1px solid var(--vff-primary);background:var(--vff-primary);color:#fff}
#lsProductionRoot .btn-primary:hover:not(:disabled){border-color:var(--vff-primary-2);background:var(--vff-primary-2)}
#lsProductionRoot .btn-outline{border:1px solid #d6e0e5;background:#fff;color:#51616b}
#lsProductionRoot .btn-outline:hover:not(:disabled){border-color:#aebdc5;background:#f7f9fa;color:var(--vff-text)}
#lsProductionRoot .btn:disabled{opacity:.45;cursor:not-allowed}
#lsProductionRoot .ls-kpis{gap:10px}
#lsProductionRoot .ls-kpi{min-height:104px;padding:12px 14px;border:1px solid var(--vff-line);border-radius:7px;background:var(--vff-card);box-shadow:var(--vff-shadow)}
#lsProductionRoot .ls-kpi span{font-size:12px;line-height:20px;color:var(--vff-text-secondary)}
#lsProductionRoot .ls-kpi strong{display:block;margin:2px 0;font-size:24px;font-weight:600;line-height:32px;color:var(--vff-text)}
#lsProductionRoot .ls-kpi small{font-size:12px;line-height:20px;color:var(--vff-muted)}
#lsProductionRoot .ls-panel{border:1px solid var(--vff-line);border-radius:7px;background:var(--vff-card);box-shadow:0 2px 10px rgba(27,53,68,.06);overflow:hidden}
#lsProductionRoot .ls-panel-head{min-height:62px;padding:10px 14px;border-bottom:1px solid var(--vff-line);background:#fff}
#lsProductionRoot .ls-panel-head h2{margin:0;font-size:16px;font-weight:600;line-height:24px;color:var(--vff-text)}
#lsProductionRoot .ls-panel-head p{margin:0;font-size:12px;line-height:20px;color:var(--vff-muted)}
#lsProductionRoot .ls-filters{gap:8px;padding:8px 10px;border-bottom:1px solid var(--vff-line);background:#fff}
#lsProductionRoot .ls-filters select,#lsProductionRoot .ls-filters input{height:36px;border:1px solid #dce4e8;border-radius:4px;background:#fff;padding:0 9px;font-family:inherit;font-size:14px;font-weight:400;color:var(--vff-text);outline:none;box-shadow:none}
#lsProductionRoot .ls-filters input{flex:1 1 260px;min-width:240px}
#lsProductionRoot .ls-filters select{min-width:126px}
#lsProductionRoot .ls-filters select:hover,#lsProductionRoot .ls-filters input:hover{border-color:#bdcbd2}
#lsProductionRoot .ls-filters select:focus,#lsProductionRoot .ls-filters input:focus{border-color:var(--vff-primary);box-shadow:0 0 0 2px rgba(23,125,112,.10)}
#lsProductionRoot .ls-table-wrap{background:#fff;scrollbar-color:#94a3a8 #eef2f3;scrollbar-width:thin}
#lsProductionRoot .ls-production-table{min-width:1540px}
#lsProductionRoot .ls-table th{height:42px;padding:0 12px;border-bottom:1px solid var(--vff-line);background:#f6f8f9;font-size:12px;font-weight:500;line-height:20px;color:var(--vff-text-secondary)}
#lsProductionRoot .ls-table td{padding:10px 12px;border-bottom:1px solid #e9eef1;font-size:14px;line-height:22px;color:var(--vff-text)}
#lsProductionRoot .ls-table tbody tr:last-child td{border-bottom:0}
#lsProductionRoot .ls-table tbody tr:hover td{background:#f4faf8}
#lsProductionRoot .ls-code{font-family:Consolas,"SFMono-Regular",monospace;font-size:13px;font-weight:600;color:var(--vff-text)}
#lsProductionRoot .ls-muted{font-size:12px;line-height:20px;color:var(--vff-muted)}
#lsProductionRoot .ls-source-link{color:var(--vff-primary)}
#lsProductionRoot .ls-monitor-summary{line-height:22px;color:var(--vff-text-secondary)}
#lsProductionRoot .ls-tag{padding:2px 7px;border-radius:4px;font-size:12px;font-weight:400;line-height:20px;background:#eef2f4;color:#52636d}
#lsProductionRoot .ls-tag.demand{background:#e8f1f8;color:#3678b7}
#lsProductionRoot .ls-tag.stock{background:#e7f5f2;color:#177d70}
#lsProductionRoot .ls-tag.warning{background:#fff3dd;color:#a66d18}
#lsProductionRoot .ls-tag.danger{background:#fdebea;color:#a33f3b}
#lsProductionRoot .ls-tag.success{background:#e5f5ee;color:#177d70}
#lsProductionRoot .ls-tag.purple{background:#f0edf8;color:#7565a8}
#lsProductionRoot input[type="checkbox"]{width:14px;height:14px;accent-color:var(--vff-primary)}
#lsProductionRoot .ls-row-actions{gap:6px;flex-wrap:nowrap}
#lsProductionRoot .ls-row-actions button{height:30px;flex:0 0 auto;white-space:nowrap;padding:0 10px;border:1px solid #d6e0e5;border-radius:4px;background:#fff;font-family:inherit;font-size:12px;font-weight:400;color:#51616b;cursor:pointer}
#lsProductionRoot .ls-row-actions button:hover:not(:disabled){border-color:#aebdc5;background:#f7f9fa;color:var(--vff-text)}
#lsProductionRoot .ls-row-actions button.primary{border-color:var(--vff-primary);background:var(--vff-primary);color:#fff}
#lsProductionRoot .ls-row-actions button.primary:hover:not(:disabled){border-color:var(--vff-primary-2);background:var(--vff-primary-2)}
#lsProductionRoot .ls-empty{color:var(--vff-muted)}
@media(max-width:1000px){#lsProductionRoot .ls-hero{align-items:flex-start}#lsProductionRoot .ls-kpi{min-height:96px}}
@media(max-width:720px){#lsProductionRoot .ls-hero{padding:12px}#lsProductionRoot .ls-filters input,#lsProductionRoot .ls-filters select{width:100%;min-width:100%}}
/* Production ledger sticky actions and complete detail archive */
#lsProductionRoot .ls-production-table{min-width:1260px}
#lsProductionRoot .ls-sticky-action{position:sticky;right:0;z-index:3;min-width:150px;background:#fff;box-shadow:-8px 0 12px rgba(38,51,60,.06)}
#lsProductionRoot thead .ls-sticky-action{z-index:5;background:#f6f8f9}
#lsProductionRoot tbody tr:hover .ls-sticky-action{background:#f4faf8}
.ls-production-detail-modal{width:min(1040px,96vw)}
.ls-detail-body{display:grid;gap:14px;padding:18px 20px;background:#f6f8fa}
.ls-detail-section{overflow:hidden;border:1px solid #e3e9ed;border-radius:8px;background:#fff}
.ls-detail-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e8edef}
.ls-detail-section-head h3{margin:0;font-size:15px;font-weight:600;color:#26333c}
.ls-detail-section .ls-detail-grid{padding:14px}
.ls-production-detail-modal .ls-detail{border:1px solid #edf1f3;border-radius:6px;background:#f8fafb}
.ls-production-detail-modal .ls-detail strong{display:block;overflow-wrap:anywhere;color:#26333c;line-height:21px}
.ls-detail-table-wrap{overflow:auto}
.ls-detail-table{width:100%;min-width:760px;border-collapse:collapse}
.ls-detail-table th{padding:10px 12px;border-bottom:1px solid #e4eaee;background:#f6f8f9;color:#5f6b73;font-size:12px;font-weight:500;text-align:left;white-space:nowrap}
.ls-detail-table td{padding:10px 12px;border-bottom:1px solid #edf1f3;color:#26333c;font-size:13px}
.ls-detail-table tbody tr:last-child td{border-bottom:0}
.ls-debug-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.ls-detail-empty{margin:14px;padding:18px;border:1px dashed #ced8dd;border-radius:6px;background:#f8fafb;color:#788791;text-align:center}
@media(max-width:800px){.ls-debug-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-production-detail-modal{width:98vw}.ls-detail-body{padding:12px}}
/* Simplified production ledger header and explicit search */
#lsProductionRoot .ls-production-main-panel{overflow:hidden}
#lsProductionRoot .ls-production-titlebar h1{margin:0;font-size:20px;font-weight:600;line-height:28px;color:var(--vff-text)}
#lsProductionRoot .ls-production-scope{display:grid;grid-template-columns:auto var(--pg-project-context-width,320px);align-items:center;gap:8px}
#lsProductionRoot .ls-production-scope label{font-size:12px;color:var(--vff-muted)}
#lsProductionRoot .ls-production-scope select{height:36px;border:1px solid #dce4e8;border-radius:4px;background:#fff;padding:0 9px;font-family:inherit;font-size:14px;color:var(--vff-text);outline:none}
#lsProductionRoot .ls-production-scope select:focus{border-color:var(--vff-primary);box-shadow:0 0 0 2px rgba(23,125,112,.10)}
#lsProductionRoot .ls-production-scan-button{flex:0 0 auto;align-self:center;margin-left:auto;white-space:nowrap}
@media(max-width:1024px){#lsProductionRoot .ls-production-titlebar{align-items:flex-start;flex-direction:column}#lsProductionRoot .ls-production-scope{grid-template-columns:1fr;width:100%}#lsProductionRoot .ls-production-scope select{width:100%}}
#lsProductionRoot .ls-search-button{min-width:72px}#lsProductionRoot .ls-btn-danger,.ls-modal .ls-btn-danger{border:1px solid #d9534f;background:#fff;color:#c84642}
#lsProductionRoot .ls-btn-danger:hover:not(:disabled),.ls-modal .ls-btn-danger:hover:not(:disabled){border-color:#c84642;background:#fff4f3;color:#b53834}
.ls-delete-code-list{display:flex;gap:8px;flex-wrap:wrap;padding:12px;border:1px solid #e3e9ed;border-radius:7px;background:#f8fafb}
.ls-delete-code-list span{padding:5px 8px;border-radius:4px;background:#eef2f4;color:#26333c;font-family:Consolas,monospace;font-size:13px}
.ls-delete-warning{padding:11px 12px;border-left:3px solid #d9534f;background:#fff4f3;color:#8f3431;font-size:12px;line-height:20px}
/* Production assembly, network and debug forms */
#lsProductionRoot .ls-production-tabs{display:flex;align-items:flex-end;gap:4px;overflow-x:auto;padding:0 18px;border-bottom:1px solid #e3e9ed;background:#fff}
#lsProductionRoot .ls-production-tab{display:flex;flex:0 0 auto;align-items:center;gap:7px;height:44px;padding:0 15px;border:0;border-bottom:2px solid transparent;background:transparent;color:#667681;font-size:14px;white-space:nowrap;cursor:pointer}
#lsProductionRoot .ls-production-tab:hover{color:var(--vff-primary);background:#f6faf9}
#lsProductionRoot .ls-production-tab.active{border-bottom-color:var(--vff-primary);color:var(--vff-primary);font-weight:600}
#lsProductionRoot .ls-production-tab b{display:inline-flex;min-width:22px;height:20px;padding:0 6px;align-items:center;justify-content:center;border-radius:10px;background:#eef2f4;color:#6c7b85;font-size:11px;font-weight:500}
#lsProductionRoot .ls-production-tab.active b{background:#dff3ef;color:var(--vff-primary)}
#lsProductionRoot .ls-production-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;align-items:center}
#lsProductionRoot .ls-production-filters.has-burn-filter{grid-template-columns:repeat(6,minmax(0,1fr)) auto}
#lsProductionRoot .ls-production-filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:max-content}
#lsProductionRoot .ls-production-filter-actions .ls-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
#lsProductionRoot .ls-production-action-divider{width:1px;height:24px;background:#dce4e8}
#lsProductionRoot .ls-production-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;border-top:1px solid #e3e9ed;background:#fff;color:#667681;font-size:13px}
#lsProductionRoot .ls-production-pagination>div{display:flex;align-items:center;gap:10px}
#lsProductionRoot .ls-page-size-control{display:flex;align-items:center;gap:6px;color:#667681;white-space:nowrap}
#lsProductionRoot .ls-page-size-control select{height:32px;min-width:76px;border:1px solid #d4dee4;border-radius:4px;padding:0 8px;background:#fff;color:#42515b;font-family:inherit;font-size:13px}
#lsProductionRoot .ls-production-pagination button{height:32px;padding:0 13px;border:1px solid #d4dee4;border-radius:4px;background:#fff;color:#42515b;cursor:pointer}
#lsProductionRoot .ls-production-pagination button:hover:not(:disabled){border-color:var(--vff-primary);color:var(--vff-primary)}
#lsProductionRoot .ls-production-pagination button:disabled{background:#f5f7f8;color:#a9b3b9;cursor:not-allowed}
#lsProductionRoot .ls-progress-text{color:var(--vff-primary);font-weight:600}
#lsProductionRoot .ls-production-filters input,#lsProductionRoot .ls-production-filters select{min-width:0;width:100%}
#lsProductionRoot .ls-production-table{min-width:980px}
#lsProductionRoot .ls-sticky-action{min-width:235px}
#lsProductionRoot .ls-production-table{min-width:1420px}
#lsProductionRoot .ls-production-table-with-burn{min-width:1760px}
#lsProductionRoot .ls-burn-time{white-space:nowrap}
#lsProductionRoot .ls-table-link{height:28px;padding:0;border:0;background:transparent;color:#177d70;font-family:inherit;font-size:12px;cursor:pointer;white-space:nowrap}
#lsProductionRoot .ls-table-link:hover{color:#12695f;text-decoration:underline}
#lsProductionRoot .ls-online-cell{min-width:118px}
#lsProductionRoot .ls-online-cell small{display:block;margin-top:3px;color:var(--vff-muted);font-size:11px;line-height:16px;white-space:nowrap}
#lsProductionRoot .ls-online-state{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:0 7px;border-radius:4px;font-size:12px;line-height:20px;white-space:nowrap}
#lsProductionRoot .ls-online-state i{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 2px rgba(101,116,125,.12)}
#lsProductionRoot .ls-online-state.is-online{background:#e3f3f0;color:#12695f}
#lsProductionRoot .ls-online-state.is-offline{background:#fff2d8;color:#9a6416}
#lsProductionRoot .ls-online-state.is-unknown{background:#eef2f4;color:#65747d}
.ls-production-form-modal{width:min(1280px,98vw);max-height:94vh}
.ls-production-form-body{display:grid;gap:14px;padding:16px 18px;background:#f5f7f9}
.ls-form-section{overflow:hidden;border:1px solid #e2e8ec;border-radius:8px;background:#fff}
.ls-form-section>h3,.ls-form-section-head{margin:0;padding:11px 14px;border-bottom:1px solid #e7ecef;background:#f8fafb;color:#26333c;font-size:15px;font-weight:600}
.ls-form-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ls-form-section-head h3{margin:0;font-size:15px}.ls-form-section-head p{margin:3px 0 0;color:#788791;font-size:12px;font-weight:400}
.ls-production-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px}
.ls-production-form-grid .ls-field input,.ls-production-form-grid .ls-field select,.ls-production-form-grid .ls-field textarea{box-sizing:border-box;width:100%;border:1px solid #d7e0e5;border-radius:4px;padding:8px 9px;background:#fff;color:#26333c}
.ls-production-form-grid .ls-field textarea{min-height:68px}.ls-network-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.ls-equipment-table,.ls-port-table{overflow:auto;padding:12px 14px 14px}
.ls-equipment-header,.ls-equipment-row{display:grid;grid-template-columns:130px 150px 130px 130px 130px 140px 130px 110px 120px 110px 90px 120px 34px;gap:8px;min-width:1570px;align-items:center}
.ls-equipment-header,.ls-port-header{padding:0 0 7px;color:#667681;font-size:12px;font-weight:600}
.ls-equipment-row{margin-bottom:7px}.ls-equipment-row input,.ls-equipment-row select,.ls-port-row input,.ls-port-row select{box-sizing:border-box;width:100%;height:36px;border:1px solid #d4dee4;border-radius:4px;padding:0 8px;background:#fff;color:#26333c}
.ls-port-header,.ls-port-row{display:grid;grid-template-columns:180px 200px 160px 180px 120px 34px;gap:8px;min-width:940px;align-items:center}.ls-port-row{margin-bottom:7px}
.ls-remove-row{width:30px;height:30px;border:0;background:transparent;color:#d9534f;font-size:20px;cursor:pointer}
.ls-component-detail-table{min-width:1680px}
@media(max-width:1180px){#lsProductionRoot .ls-production-filters,#lsProductionRoot .ls-production-filters.has-burn-filter{grid-template-columns:repeat(4,minmax(150px,1fr))}.ls-production-form-grid,.ls-network-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){#lsProductionRoot .ls-production-tabs{overflow:auto;padding:0 10px}#lsProductionRoot .ls-production-tab{flex:0 0 auto;padding:0 10px}#lsProductionRoot .ls-production-filters,.ls-production-form-grid,.ls-network-grid{grid-template-columns:1fr}.ls-production-form-body{padding:10px}}
/* Rule-derived production assembly editor */
.ls-rule-assembly-modal{width:min(1480px,calc(100vw - 24px));max-width:none;height:min(880px,94vh);display:flex;flex-direction:column;overflow:hidden}
.ls-rule-assembly-modal .ls-modal-head{flex:0 0 auto}
.ls-rule-assembly-modal .btn-primary{border:1px solid #177d70;background:#177d70;color:#fff}
.ls-rule-assembly-modal .btn-primary:hover:not(:disabled){border-color:#146b60;background:#146b60}
.ls-rule-assembly-body{padding:18px 20px 0;display:flex;flex-direction:column;min-height:0;flex:1;background:#fff}
.ls-assembly-overview{display:grid;grid-template-columns:1.25fr .75fr 1fr .65fr;gap:10px;margin-bottom:14px}
.ls-assembly-overview>div{min-height:72px;padding:13px 16px;border:1px solid #dce5ea;border-radius:7px;background:#f8fafb;display:flex;flex-wrap:wrap;align-content:center;gap:4px 8px}
.ls-assembly-overview span{width:100%;font-size:12px;color:#8493a3}
.ls-assembly-overview strong{font-size:15px;color:#22313f;font-weight:600}
.ls-assembly-overview strong.ls-overview-number{font-size:23px;line-height:24px;color:#167d70}
.ls-assembly-overview small{width:100%;font-size:11px;color:#177d70}
.ls-assembly-overview em{font-size:13px;color:#526273;font-style:normal;align-self:flex-end}
.ls-assembly-tabs{display:flex;gap:32px;border-bottom:1px solid #dce5ea;flex:0 0 auto}
.ls-assembly-tabs button{height:48px;padding:0 2px;border:0;border-bottom:2px solid transparent;background:transparent;color:#738293;font-size:14px;cursor:pointer}
.ls-assembly-tabs button.active{color:#177d70;border-bottom-color:#177d70;font-weight:600}
.ls-assembly-tabs button span{display:inline-flex;min-width:18px;height:18px;padding:0 5px;margin-left:4px;align-items:center;justify-content:center;border-radius:9px;background:#eef3f5;color:#657687;font-size:11px}
.ls-assembly-tabs button.active span{background:#dff3ef;color:#177d70}
.ls-assembly-tab-shell{min-height:0;flex:1;position:relative}
.ls-assembly-panel{display:none;height:100%;padding:16px 0 18px;overflow:auto}
.ls-assembly-panel.active{display:block}
.ls-assembly-panel-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:10px}
.ls-assembly-panel-head h3{margin:0 0 3px;font-size:14px;color:#263746;font-weight:600}
.ls-assembly-panel-head p{margin:0;color:#8997a6;font-size:12px}
.ls-rule-source{display:inline-flex;padding:5px 9px;border-radius:4px;background:#e9f5f2;color:#177d70;font-size:12px}
.ls-common-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ls-rule-card{padding:13px;border:1px solid #dce5ea;border-radius:7px;background:#fff}
.ls-rule-card h4{margin:0 0 11px;font-size:13px;color:#314150}
.ls-rule-card>label,.ls-rule-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#6d7c8c}
.ls-rule-card small{display:block;margin-top:7px;color:#91a0ae;font-size:11px}
.ls-rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 11px}
.ls-rule-card input,.ls-rule-card select,.ls-rule-table input,.ls-rule-table select{box-sizing:border-box;width:100%;height:36px;padding:0 10px;border:1px solid #ccd8df;border-radius:4px;background:#fff;color:#314150;font-size:13px;outline:none}
.ls-rule-card input:focus,.ls-rule-card select:focus,.ls-rule-table input:focus,.ls-rule-table select:focus{border-color:#177d70;box-shadow:0 0 0 2px rgba(23,125,112,.1)}
.ls-rule-card input:disabled{background:#f4f7f8;color:#71808f}
.ls-rule-table-wrap{overflow:auto;border:1px solid #dce5ea;border-radius:6px}
.ls-rule-table{width:100%;min-width:940px;border-collapse:separate;border-spacing:0;font-size:12px}
.ls-rule-table th{position:sticky;top:0;z-index:1;padding:10px;background:#f5f8f9;color:#68798a;text-align:left;font-weight:600;border-bottom:1px solid #dce5ea;white-space:nowrap}
.ls-rule-table td{padding:8px 10px;border-bottom:1px solid #edf1f3;color:#344452;vertical-align:middle}
.ls-rule-table tr:last-child td{border-bottom:0}
.ls-layer-tag{display:inline-flex;padding:3px 7px;border-radius:4px;background:#eef4f6;color:#536677}
.ls-na{color:#9aa7b3}
.ls-difference-summary{display:flex;align-items:center;gap:9px;margin-bottom:10px;padding:11px 13px;border:1px solid #cfe7e2;border-radius:6px;background:#f0f9f7;color:#4d625f;font-size:12px}
.ls-difference-summary strong{font-size:21px;line-height:22px;color:#177d70}
.ls-difference-table .ls-before-value{color:#8a5b25;background:#fffaf2}
.ls-difference-table .ls-after-value{color:#147368;background:#f1faf8;font-weight:600}
.ls-rule-assembly-modal .ls-modal-foot{flex:0 0 auto}
@media(max-width:900px){.ls-rule-assembly-modal{width:98vw;height:96vh}.ls-assembly-overview{grid-template-columns:1fr 1fr}.ls-assembly-tabs{gap:14px;overflow-x:auto}.ls-assembly-tabs button{white-space:nowrap}.ls-common-card-grid{grid-template-columns:1fr}.ls-rule-grid{grid-template-columns:1fr}}
/* One-page production assembly work order */
.ls-assembly-work-order{display:block;overflow:auto;padding:18px 20px 28px;background:#f6f8f9;scroll-behavior:smooth}
.ls-assembly-work-order .ls-assembly-overview{grid-template-columns:1.1fr .7fr .7fr 1.45fr .7fr 1.05fr .55fr;gap:6px;margin-bottom:12px}
.ls-assembly-work-order .ls-assembly-overview>div{min-width:0;min-height:52px;padding:8px 10px;background:#fff}
.ls-assembly-work-order .ls-assembly-overview strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ls-assembly-workspace{display:grid;grid-template-columns:176px minmax(0,1fr);align-items:start;gap:12px}
.ls-assembly-sidebar{position:sticky;top:0;display:grid;gap:6px;padding:10px;border:1px solid #dce5ea;border-radius:8px;background:#fff}
.ls-assembly-nav-head{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 8px;border-bottom:1px solid #e6ecef}
.ls-assembly-nav-head strong{font-size:14px;color:#263746}
.ls-assembly-nav-head span{font-size:11px;color:#7c8b97}
.ls-assembly-nav-item{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;width:100%;min-height:54px;padding:8px;border:1px solid transparent;border-radius:7px;background:#f7f9fa;color:#53636f;text-align:left;cursor:pointer}
.ls-assembly-nav-item:hover{border-color:#bdd7d2;background:#f0f8f6}
.ls-assembly-nav-item.is-active{border-color:#96cfc5;background:#eaf7f4;color:#146b60}
.ls-assembly-nav-item>b{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:6px;background:#e9eef1;color:#70808c;font:600 11px/1 Consolas,monospace}
.ls-assembly-nav-item.is-active>b{background:#177d70;color:#fff}
.ls-assembly-nav-item>span{display:grid;gap:3px;min-width:0}
.ls-assembly-nav-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:inherit}
.ls-assembly-nav-item small{font-size:10px;color:#8b99a5}
.ls-assembly-nav-item.is-active small{color:#408b80}
.ls-assembly-content{min-width:0}
.ls-assembly-content .ls-work-order-section{margin-top:0}
.ls-assembly-pane[hidden]{display:none!important}
.ls-assembly-content .ls-difference-section{padding:16px;overflow:hidden}
.ls-assembly-content .ls-difference-content{padding:0;border-top:0}
.ls-work-order-section{margin-top:12px;padding:16px;border:1px solid #dce5ea;border-radius:8px;background:#fff;scroll-margin-top:12px}
.ls-work-order-section-head{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.ls-work-order-section-head>div{min-width:0}
.ls-work-order-section-head h3{margin:0 0 3px;font-size:15px;font-weight:600;color:#263746}
.ls-work-order-section-head p{margin:0;color:#8594a2;font-size:12px}
.ls-work-order-section-head>.btn,.ls-work-order-section-head>.ls-rule-source,.ls-work-order-section-head>.ls-section-progress{margin-left:auto;flex:0 0 auto}
.ls-step-number{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:7px;background:#e5f4f1;color:#177d70;font:600 12px/1 Consolas,monospace}
.ls-section-progress{padding:6px 9px;border-radius:4px;background:#eef7f5;color:#177d70;font-size:12px;font-weight:600}
.ls-assembly-device-groups,.ls-assembly-component-groups{display:grid;gap:14px}
.ls-assembly-asset-group{overflow:hidden;border:1px solid #dce5ea;border-radius:8px;background:#fbfcfd}
.ls-assembly-asset-group-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border-bottom:1px solid #e2e9ec;background:#f5f8f9}
.ls-assembly-asset-group-head h4{margin:0 0 2px;color:#263746;font-size:13px}
.ls-assembly-asset-group-head p{margin:0;color:#8795a1;font-size:11px}
.ls-assembly-asset-group-head>span{flex:0 0 auto;padding:4px 8px;border-radius:4px;background:#e8f4f1;color:#177d70;font-size:11px;font-weight:600}
.ls-assembly-asset-list{display:grid;gap:10px;padding:10px}
.ls-assembly-asset-card{overflow:hidden;border:1px solid #dce5ea;border-radius:7px;background:#fff}
.ls-assembly-asset-card>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border-bottom:1px solid #e6ecef;background:#fbfdfd}
.ls-assembly-asset-card>header>div{display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 8px}
.ls-assembly-asset-card>header h4{margin:0;color:#263746;font-size:14px}
.ls-assembly-asset-card>header small{grid-column:1/-1;color:#8a98a4;font-size:10px}
.ls-device-confirm,.ls-component-confirm{display:flex;align-items:center;gap:7px;flex:0 0 auto;min-height:34px;padding:5px 8px;border:1px solid #d5e0e5;border-radius:5px;background:#f8fafb;color:#63727f;cursor:pointer;font-size:11px;line-height:16px}
.ls-device-confirm input,.ls-component-confirm input{width:16px!important;height:16px!important;margin:0;accent-color:#177d70}
.ls-device-confirm:has(input:checked),.ls-component-confirm:has(input:checked){border-color:#93cfc4;background:#eaf7f4;color:#146b60}
.ls-assembly-asset-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;padding:12px}
.ls-assembly-asset-fields label,.ls-assembly-asset-readonly,.ls-assembly-no-network{display:grid;gap:5px;min-width:0}
.ls-assembly-asset-fields label>span,.ls-assembly-asset-readonly>span,.ls-assembly-no-network>span{font-size:11px;color:#72818e}
.ls-assembly-asset-fields input{box-sizing:border-box;width:100%;height:36px;padding:0 10px;border:1px solid #d8e2e7;border-radius:4px;background:#fff;color:#2f404c;font:13px/34px "Microsoft YaHei","PingFang SC",Arial,sans-serif;outline:none}
.ls-assembly-asset-fields input:focus{border-color:#177d70;box-shadow:0 0 0 2px rgba(23,125,112,.09)}
.ls-assembly-asset-readonly strong,.ls-assembly-no-network strong{box-sizing:border-box;display:flex;align-items:center;min-height:36px;padding:0 10px;border:1px solid #e1e8eb;border-radius:4px;background:#f5f7f8;color:#53636f;font-size:12px;font-weight:500}
.ls-assembly-no-network strong{color:#87939d}
.ls-assembly-component-empty{border:1px dashed #d9e3e7;border-radius:7px;background:#fafcfc}
.ls-rule-readonly{box-sizing:border-box;display:flex;align-items:center;width:100%;height:36px;padding:0 10px;border:1px solid #e0e7eb;border-radius:4px;background:#f5f7f8;color:#53636f;font-size:13px}
.ls-rule-summary-card{background:#fbfefd}
.ls-assembly-checklist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.ls-assembly-check-card{display:flex;align-items:center;gap:11px;min-height:70px;padding:11px 12px;border:1px solid #dce5ea;border-radius:7px;background:#fff;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.ls-assembly-check-card:hover{border-color:#a9c9c3;box-shadow:0 2px 8px rgba(23,125,112,.07)}
.ls-assembly-check-card input{width:17px;height:17px;flex:0 0 auto;margin:0;accent-color:#177d70}
.ls-assembly-check-card .ls-check-index{display:inline-flex;width:29px;height:29px;align-items:center;justify-content:center;flex:0 0 auto;border-radius:50%;background:#eef2f4;color:#72818e;font:600 11px/1 Consolas,monospace}
.ls-assembly-check-card>span:last-child{display:grid;gap:4px}
.ls-assembly-check-card strong{color:#344550;font-size:12px;line-height:18px;font-weight:500}
.ls-assembly-check-card small{color:#95a1ab;font-size:10px}
.ls-assembly-check-card.checked{border-color:#97d0c6;background:#eef9f6}
.ls-assembly-check-card.checked .ls-check-index{background:#177d70;color:#fff}
.ls-assembly-check-card.checked strong{color:#146b60}
.ls-difference-section{padding:0;overflow:hidden}
.ls-difference-section details>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 16px;cursor:pointer;list-style:none}
.ls-difference-section details>summary::-webkit-details-marker{display:none}
.ls-difference-section details>summary>span{display:flex;align-items:center;gap:10px}
.ls-difference-section details>summary b{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:7px;background:#e5f4f1;color:#177d70;font:600 12px/1 Consolas,monospace}
.ls-difference-section details>summary strong{font-size:15px;color:#263746}
.ls-difference-section details>summary small{color:#8997a6;font-size:12px;font-weight:400}
.ls-difference-section details>summary em{font-style:normal;color:#758591;font-size:12px}
.ls-difference-section details>summary i{font-style:normal;color:#177d70;font-weight:700}
.ls-difference-content{padding:0 16px 16px;border-top:1px solid #e4eaed}
.ls-difference-content .ls-difference-summary{margin-top:12px}
.ls-work-order-foot{display:flex!important;align-items:center;justify-content:space-between!important;gap:22px;background:#fff}
.ls-footer-progress{display:flex;align-items:center;gap:14px;min-width:420px}
.ls-footer-progress>div:first-child{display:grid;grid-template-columns:auto auto;gap:1px 8px;min-width:230px}
.ls-footer-progress span{font-size:12px;color:#697986}
.ls-footer-progress strong{font-size:13px;color:#177d70}
.ls-footer-progress small{grid-column:1/-1;color:#8b99a5;font-size:10px}
.ls-assembly-progress-bar{width:170px;height:7px;border-radius:4px;background:#e7edef;overflow:hidden}
.ls-assembly-progress-bar i{display:block;height:100%;border-radius:inherit;background:#177d70;transition:width .2s ease}
.ls-foot-actions{display:flex;gap:8px;margin-left:auto}
@media(max-width:1100px){.ls-assembly-asset-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-assembly-checklist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-work-order-foot{align-items:flex-end}.ls-footer-progress{min-width:330px;flex-wrap:wrap}.ls-assembly-progress-bar{width:100%}}
@media(max-width:720px){.ls-assembly-asset-fields{grid-template-columns:1fr}.ls-assembly-asset-card>header{align-items:flex-start;flex-direction:column}.ls-assembly-work-order{padding:12px}.ls-work-order-section{padding:12px}.ls-work-order-section-head{align-items:flex-start;flex-wrap:wrap}.ls-work-order-section-head>.btn,.ls-work-order-section-head>.ls-rule-source,.ls-work-order-section-head>.ls-section-progress{margin-left:41px}.ls-assembly-checklist-grid{grid-template-columns:1fr}.ls-difference-section details>summary small{display:none}.ls-work-order-foot{align-items:stretch;flex-direction:column}.ls-footer-progress{width:100%;min-width:0}.ls-foot-actions{width:100%;margin:0}.ls-foot-actions .btn{flex:1}}
@media(max-width:900px){.ls-assembly-workspace{grid-template-columns:142px minmax(0,1fr)}.ls-assembly-sidebar{padding:8px}.ls-assembly-nav-item{grid-template-columns:24px minmax(0,1fr);gap:6px;padding:7px 6px}.ls-assembly-nav-item>b{width:24px;height:24px}}
/* Three-item production assembly prototype */
.ls-base-network-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ls-base-network-card{overflow:hidden;border:1px solid #dce5ea;border-radius:8px;background:#fff}
.ls-base-network-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-bottom:1px solid #e5ebee;background:#f7f9fa}
.ls-base-network-head span{font-size:11px;color:#177d70}.ls-base-network-head h4{margin:3px 0 0;font-size:14px;color:#263746}
.ls-network-check{display:flex;align-items:center;gap:7px;padding:6px 9px;border:1px solid #d7e2e5;border-radius:5px;background:#fff;color:#62727e;font-size:11px;cursor:pointer}
.ls-network-check:has(input:checked){border-color:#91cfc4;background:#eaf7f4;color:#146b60}.ls-network-check input{width:16px;height:16px;margin:0;accent-color:#177d70}
.ls-base-network-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;padding:13px}
.ls-base-network-fields label{display:grid;gap:5px;color:#72818e;font-size:11px}.ls-base-network-fields input{box-sizing:border-box;width:100%;height:37px;padding:0 10px;border:1px solid #d8e2e7;border-radius:4px;outline:none;color:#2f404c}
.ls-asset-tree,.ls-asset-tree-node{display:grid;gap:12px}.ls-asset-children{position:relative;display:grid;gap:9px;margin-left:34px;padding:12px 0 0 22px;border-left:2px solid #b9d9d3}
.ls-child-connector{position:absolute;left:-2px;top:-4px;display:flex;align-items:center;gap:7px;padding:3px 8px;border-radius:0 4px 4px 0;background:#e8f5f2;color:#177d70;font-size:11px}.ls-child-connector em{font-style:normal;color:#67817c}
.ls-asset-service-block{margin:0 12px 12px;border:1px solid #e0e7ea;border-radius:6px;background:#fbfcfd;overflow:hidden}
.ls-asset-service-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-bottom:1px solid #e5ebee;background:#f5f8f9}.ls-asset-service-head>div{display:grid;gap:2px}.ls-asset-service-head strong{font-size:12px;color:#344550}.ls-asset-service-head small{font-size:10px;color:#8996a0}
.ls-service-port-labels,.ls-service-port-row{display:grid;grid-template-columns:1.25fr 1fr 1.15fr .75fr 62px;align-items:center;gap:8px;padding:7px 10px}.ls-service-port-labels{background:#fafbfc;color:#7b8994;font-size:10px}.ls-service-port-row{border-top:1px solid #e8edef}
.ls-service-port-row input,.ls-service-port-row select{box-sizing:border-box;width:100%;height:33px;padding:0 8px;border:1px solid #d8e2e7;border-radius:4px;background:#fff;color:#344550;font-size:12px}.ls-service-type-readonly{display:flex;align-items:center;height:33px;padding:0 8px;border:1px solid #e1e7ea;border-radius:4px;background:#f2f5f6;color:#52636f;font-size:12px}.ls-required-service{color:#178071;font-size:10px}.ls-remove-service{border:0;background:transparent;color:#d35d58;font-size:11px;cursor:pointer}.ls-no-service{padding:16px;text-align:center;color:#98a3ab;font-size:11px}
.ls-history-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:16px}.ls-history-summary>div{display:grid;gap:5px;padding:11px 12px;border:1px solid #e0e7ea;border-radius:6px;background:#f8fafb}.ls-history-summary span{color:#87939d;font-size:10px}.ls-history-summary strong{color:#2e404c;font-size:13px}
.ls-change-item{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;padding-bottom:12px}.ls-change-item:before{content:"";position:absolute;left:8px;top:14px;bottom:-2px;width:1px;background:#dbe5e8}.ls-change-item:last-child:before{display:none}.ls-change-dot{position:relative;z-index:1;width:9px;height:9px;margin-top:14px;border:3px solid #d8eee9;border-radius:50%;background:#177d70}.ls-change-card{padding:11px 13px;border:1px solid #dee6e9;border-radius:7px;background:#fff}.ls-change-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ls-change-card-head>div{display:flex;align-items:center;gap:7px}.ls-change-card-head em{padding:2px 6px;border-radius:3px;background:#fff2df;color:#a66c1d;font-size:10px;font-style:normal}.ls-change-card-head time{color:#8b98a2;font-size:10px}.ls-change-status{display:flex;align-items:center;gap:7px;margin-top:7px;color:#177d70;font-size:12px;font-weight:600}.ls-change-status i{font-style:normal;color:#9aa6ad}.ls-change-card p{margin:6px 0;color:#52636f;font-size:12px}.ls-change-card small{color:#8b98a2;font-size:10px}.ls-change-item.is-rollback .ls-change-dot{border-color:#fae8c9;background:#d88b22}
.ls-status-savebar{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:16px;padding:11px 18px!important;background:#fff}.ls-status-controls{display:grid;grid-template-columns:150px minmax(320px,1fr) auto;align-items:end;gap:10px;flex:1}.ls-status-controls label{display:grid;gap:4px}.ls-status-controls span{color:#72818e;font-size:10px}.ls-status-controls select,.ls-status-controls input{box-sizing:border-box;width:100%;height:36px;padding:0 9px;border:1px solid #d7e1e5;border-radius:4px;background:#fff}.ls-status-controls input.is-required{border-color:#df8f88;background:#fffafa}.ls-status-warning{display:flex;align-items:center;align-self:end;min-height:36px;color:#b7791f;font-size:11px;white-space:nowrap}.ls-rule-assembly-modal .ls-status-savebar .btn{box-sizing:border-box;height:36px;padding:0 16px;border-radius:4px;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;font-size:14px;line-height:34px}
@media(max-width:1100px){.ls-base-network-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-history-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-status-controls{grid-template-columns:135px minmax(240px,1fr) auto}}
@media(max-width:720px){.ls-base-network-fields{grid-template-columns:1fr}.ls-asset-children{margin-left:14px;padding-left:12px}.ls-service-port-labels{display:none}.ls-service-port-row{grid-template-columns:1fr 1fr}.ls-history-summary{grid-template-columns:1fr}.ls-status-savebar{align-items:stretch!important;flex-direction:column}.ls-status-controls{grid-template-columns:1fr}}

/* Compact one-line asset rows */
#lsAssemblyAssetSection .ls-asset-tree,
#lsAssemblyAssetSection .ls-asset-tree-node{gap:6px}
#lsAssemblyAssetSection .ls-assembly-asset-card{display:grid;grid-template-columns:115px minmax(0,1fr);align-items:stretch}
#lsAssemblyAssetSection .ls-assembly-asset-card>header{display:flex;align-items:center;padding:7px 10px;border-right:1px solid #e6ecef;border-bottom:0}
#lsAssemblyAssetSection .ls-assembly-asset-card>header>div{display:flex;align-items:center;gap:7px;min-width:0}
#lsAssemblyAssetSection .ls-assembly-asset-card>header h4{overflow:hidden;font-size:13px;white-space:nowrap;text-overflow:ellipsis}
#lsAssemblyAssetSection .ls-assembly-asset-card>header small{display:none}
#lsAssemblyAssetSection .ls-layer-tag{display:none}
#lsAssemblyAssetSection .ls-assembly-asset-fields{align-items:end;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:6px 8px;padding:7px 9px}
#lsAssemblyAssetSection .ls-assembly-asset-fields label{gap:3px}
#lsAssemblyAssetSection .ls-assembly-asset-fields label>span{font-size:10px;line-height:14px}
#lsAssemblyAssetSection .ls-assembly-asset-fields input{height:32px;padding:0 8px;font-size:12px;line-height:30px}
#lsAssemblyAssetSection .ls-inline-port-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
#lsAssemblyAssetSection .ls-assembly-asset-readonly{display:none}
#lsAssemblyAssetSection .ls-assembly-asset-card[data-direct-network="false"] .ls-assembly-asset-fields{grid-template-columns:minmax(180px,320px)}
#lsAssemblyAssetSection .ls-asset-children{gap:6px;margin-left:16px;padding:4px 0 0 12px}
#lsAssemblyAssetSection .ls-child-connector{display:none}
@media(max-width:850px){#lsAssemblyAssetSection .ls-assembly-asset-card{grid-template-columns:125px minmax(0,1fr)}#lsAssemblyAssetSection .ls-assembly-asset-fields{grid-template-columns:repeat(2,minmax(110px,1fr))}}
@media(max-width:620px){#lsAssemblyAssetSection .ls-assembly-asset-card{grid-template-columns:1fr}#lsAssemblyAssetSection .ls-assembly-asset-card>header{border-right:0;border-bottom:1px solid #e6ecef}#lsAssemblyAssetSection .ls-assembly-asset-fields{grid-template-columns:1fr}}

.ls-stock-create-modal{width:min(900px,94vw)}.ls-stock-create-body{overflow:auto;padding:16px 18px;background:#f5f8f9}.ls-stock-create-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.ls-stock-create-summary>div{display:grid;gap:5px;padding:11px 12px;border:1px solid #dce5e8;border-radius:6px;background:#fff}.ls-stock-create-summary span{color:#7a8995;font-size:11px}.ls-stock-create-summary strong{color:#223441;font-size:14px}.ls-stock-create-body .ls-form-section{margin-bottom:12px;padding:14px;border:1px solid #dce5e8;border-radius:7px;background:#fff}.ls-stock-create-body .ls-form-section:last-child{margin-bottom:0}.ls-stock-create-body .ls-form-section h3{margin:0 0 12px;color:#223441;font-size:14px}

.ls-production-detail-v2{width:min(1160px,96vw);height:min(760px,92vh)}.ls-production-detail-workspace{display:grid;grid-template-columns:176px minmax(0,1fr);gap:12px;min-height:0;flex:1;padding:12px 16px;background:#f4f7f8}.ls-detail-sidebar{box-sizing:border-box;width:176px;min-width:176px;max-width:176px;align-self:stretch}.ls-detail-sidebar .ls-assembly-nav-item{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.ls-production-detail-content{min-width:0;overflow:auto}.ls-production-detail-pane{min-height:100%;padding:14px;border:1px solid #d9e3e6;border-radius:7px;background:#fff}.ls-production-detail-pane[hidden]{display:none}.ls-detail-readonly-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.ls-detail-readonly-item{display:grid;gap:5px;min-width:0;padding:10px 11px;border:1px solid #e0e7e9;border-radius:5px;background:#f8fafb}.ls-detail-readonly-item span{color:#768691;font-size:10px}.ls-detail-readonly-item strong{overflow:hidden;color:#233642;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.ls-detail-network-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px}.ls-detail-network-values .ls-detail-readonly-item{padding:8px 9px}.ls-detail-asset-table th:nth-child(1){width:64px}.ls-detail-asset-table th:nth-child(2){width:100px}.ls-detail-asset-table th:nth-child(3){width:110px}.ls-detail-asset-table th:nth-child(4){width:180px}.ls-detail-asset-table th:nth-child(5){width:130px}.ls-detail-kind{display:inline-flex;padding:3px 7px;border-radius:4px;background:#e9f5f2;color:#177d70;font-size:10px}.ls-detail-kind.is-component{background:#eef2f5;color:#536673}
.ls-detail-sidebar{height:max-content;align-self:start;align-content:start}
.ls-detail-sidebar .ls-assembly-nav-item{height:64px;min-height:64px;max-height:64px;align-self:start}
@media(max-width:900px){.ls-production-detail-workspace{grid-template-columns:176px minmax(0,1fr)}.ls-detail-readonly-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-detail-network-grid{grid-template-columns:1fr}}

.ls-production-detail-v2 .btn-primary,.ls-stock-create-modal .btn-primary{border-color:#177d70;background:#177d70;color:#fff}

/* Project allocation and reallocation history */
.ls-allocation-modal{width:min(880px,96vw)}
.ls-allocation-form{gap:10px 12px;padding:14px 18px}
.ls-allocation-form .ls-field textarea{min-height:58px}
.ls-allocation-history{gap:8px;padding-top:2px}
.ls-allocation-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ls-allocation-history-head>div{display:flex;align-items:baseline;gap:10px}
.ls-allocation-history-head strong{color:#263746;font-size:14px}
.ls-allocation-history-head span{color:#84929d;font-size:11px}
.ls-allocation-history-scroll{max-height:210px;overflow:auto;border:1px solid #dce5e8;border-radius:6px;background:#fff}
.ls-allocation-history-scroll .ls-detail-table{min-width:720px}
.ls-allocation-history-scroll .ls-detail-table th,.ls-allocation-history-scroll .ls-detail-table td{padding:8px 10px}
.ls-allocation-modal .btn-primary{border-color:#177d70;background:#177d70;color:#fff}
@media(max-width:720px){.ls-allocation-form{grid-template-columns:1fr}.ls-allocation-form .ls-field.full{grid-column:auto}.ls-allocation-history-head{align-items:flex-start}.ls-allocation-history-head>div{display:grid;gap:2px}}
/* Compact source-aware production creation */
.ls-stock-create-modal{width:min(1040px,96vw);max-height:none;overflow:visible}
.ls-stock-create-body{overflow:visible;padding:10px 14px;background:#f5f8f9}
.ls-stock-create-body .ls-stock-create-section{margin-bottom:8px;padding:10px 12px}
.ls-stock-create-body .ls-stock-create-section:last-child{margin-bottom:0}
.ls-stock-create-body .ls-stock-create-section h3{margin:0 0 8px;font-size:13px}
.ls-stock-create-source-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 10px}
.ls-stock-create-config-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 10px}
.ls-stock-create-device-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.ls-stock-create-device-grid label{display:grid;grid-template-columns:1fr 54px;align-items:center;gap:6px;padding:6px 8px;border:1px solid #dfe7ea;border-radius:5px;background:#f8fafb;color:#5e6e79;font-size:11px}
.ls-stock-create-device-grid input{box-sizing:border-box;width:54px;height:30px;padding:0 6px;border:1px solid #d8e2e7;border-radius:4px;background:#fff}
.ls-stock-create-section-title{display:flex;align-items:baseline;gap:8px}.ls-stock-create-section-title span{color:#8996a0;font-size:10px}
.ls-stock-create-note{grid-template-columns:56px minmax(0,1fr);align-items:center;margin-top:8px}.ls-stock-create-note label{margin:0}.ls-stock-create-note input{height:32px}
.ls-stock-create-modal .ls-field{gap:4px}.ls-stock-create-modal .ls-field label{font-size:11px}.ls-stock-create-modal .ls-field input,.ls-stock-create-modal .ls-field select{box-sizing:border-box;height:34px;padding:0 8px;border-radius:4px}
@media(max-width:900px){.ls-stock-create-modal{max-height:92vh;overflow:auto}.ls-stock-create-body{overflow:auto}.ls-stock-create-source-grid,.ls-stock-create-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-stock-create-device-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Parent-child tree in production detail */
.ls-detail-component-row{background:#f7fbfa}
.ls-detail-component-row:hover td{background:#f0f8f6!important}
.ls-detail-component-row td{border-bottom-color:#e3eeeb}
.ls-detail-tree-type{position:relative;display:inline-flex;align-items:center;padding-left:24px;color:#4c625e}
.ls-detail-tree-type:before{content:"";position:absolute;left:7px;top:-18px;width:10px;height:26px;border-left:1px solid #9fc9c1;border-bottom:1px solid #9fc9c1;border-radius:0 0 0 3px}
.ls-detail-device-row td{font-weight:500}
/* Shared ledger workbench chrome */
.ls-ledger-titlebar h1{margin:0;font-size:20px;font-weight:600;line-height:28px;color:var(--vff-text)}
.ls-ledger-titlebar p{margin:0;font-size:12px;line-height:20px;color:var(--vff-muted)}
.ls-ledger-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;border-top:1px solid #e3e9ed;background:#fff;color:#667681;font-size:13px}
.ls-ledger-pagination>div{display:flex;align-items:center;gap:10px}
.ls-ledger-pagination .ls-page-size-control{display:flex;align-items:center;gap:6px;color:#667681;white-space:nowrap}
.ls-ledger-pagination .ls-page-size-control select{height:32px;min-width:76px;border:1px solid #d4dee4;border-radius:4px;padding:0 8px;background:#fff;color:#42515b;font-family:inherit;font-size:13px}
.ls-ledger-pagination button{height:32px;padding:0 13px;border:1px solid #d4dee4;border-radius:4px;background:#fff;color:#42515b;cursor:pointer}
.ls-ledger-pagination button:hover:not(:disabled){border-color:var(--vff-primary);color:var(--vff-primary)}
.ls-ledger-pagination button:disabled{background:#f5f7f8;color:#a9b3b9;cursor:not-allowed}

/* Device ledger aligned with the production workbench */
#lsDeviceRoot{--vff-primary:#177d70;--vff-primary-2:#1c9483;--vff-line:#e3e9ed;--vff-text:#26333c;--vff-muted:#788791;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--vff-text)}
#lsDeviceRoot .ls-device-main-panel{overflow:hidden;border:1px solid var(--vff-line);border-radius:7px;background:#fff;box-shadow:0 2px 10px rgba(27,53,68,.06)}
#lsDeviceRoot .ls-panel-head{min-height:62px;padding:10px 14px;border-bottom:1px solid var(--vff-line);background:#fff}
#lsDeviceRoot .ls-device-project-scope{display:grid;grid-template-columns:auto var(--pg-project-context-width);align-items:center;gap:8px}
#lsDeviceRoot .ls-device-project-scope label{font-size:12px;color:var(--vff-muted)}
#lsDeviceRoot .ls-device-project-scope select{height:36px;border:1px solid #dce4e8;border-radius:4px;background:#fff;padding:0 9px;font-family:inherit;font-size:14px;color:var(--vff-text);outline:none}
#lsDeviceRoot .ls-device-project-scope select:hover{border-color:#bdcbd2}
#lsDeviceRoot .ls-device-project-scope select:focus{border-color:var(--vff-primary);box-shadow:0 0 0 2px rgba(23,125,112,.10)}
#lsDeviceRoot .ls-device-tabs{display:flex;gap:24px;padding:0 14px;border-bottom:1px solid var(--vff-line);background:#fff}
#lsDeviceRoot .ls-device-tabs button{height:42px;padding:0 4px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--vff-muted);font-family:inherit;font-size:14px;cursor:pointer}
#lsDeviceRoot .ls-device-tabs button:hover{color:var(--vff-text)}
#lsDeviceRoot .ls-device-tabs button:focus-visible{outline:0;box-shadow:0 0 0 2px rgba(23,125,112,.18)}
#lsDeviceRoot .ls-device-tabs button.active{border-bottom-color:var(--vff-primary);color:var(--vff-primary);font-weight:600}
#lsDeviceRoot .ls-device-tabs span{display:inline-flex;margin-left:4px;padding:0 6px;border-radius:9px;background:#eef2f4;font-size:11px;line-height:18px}
#lsDeviceRoot .ls-device-tab-panel{min-height:320px;background:#f4f7f8}
#lsDeviceRoot .ls-device-filters{display:grid;grid-template-columns:minmax(130px,.9fr) minmax(130px,.9fr) minmax(150px,1fr) minmax(220px,1.4fr) auto;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--vff-line);background:#fff}
#lsDeviceRoot .ls-device-filters select,#lsDeviceRoot .ls-device-filters input{width:100%;min-width:0;height:36px;border:1px solid #dce4e8;border-radius:4px;background:#fff;padding:0 9px;font-family:inherit;font-size:14px;color:var(--vff-text);outline:none}
#lsDeviceRoot .ls-device-filters select:hover,#lsDeviceRoot .ls-device-filters input:hover{border-color:#bdcbd2}
#lsDeviceRoot .ls-device-filters select:focus,#lsDeviceRoot .ls-device-filters input:focus{border-color:var(--vff-primary);box-shadow:0 0 0 2px rgba(23,125,112,.10)}
#lsDeviceRoot .ls-device-filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;white-space:nowrap}
#lsDeviceRoot .btn{height:36px;border-radius:4px;padding:0 14px;font-family:inherit;font-size:14px;font-weight:400;line-height:34px;box-shadow:none;cursor:pointer}
#lsDeviceRoot .btn-primary{border:1px solid #177d70;background:#177d70;color:#fff}
#lsDeviceRoot .btn-primary:hover:not(:disabled){border-color:#1c9483;background:#1c9483}
#lsDeviceRoot .btn-outline{border:1px solid #d6e0e5;background:#fff;color:#51616b}
#lsDeviceRoot .btn-outline:hover:not(:disabled){border-color:#aebdc5;background:#f7f9fa;color:var(--vff-text)}
#lsDeviceRoot .ls-btn-danger{border:1px solid #d9534f;background:#fff;color:#c84642}
#lsDeviceRoot .ls-btn-danger:hover:not(:disabled){border-color:#c84642;background:#fff4f3;color:#b53834}
#lsDeviceRoot .btn:focus-visible,#lsDeviceRoot .ls-row-actions button:focus-visible{outline:0;box-shadow:0 0 0 2px rgba(23,125,112,.18)}
#lsDeviceRoot .btn:disabled{opacity:.45;cursor:not-allowed}
#lsDeviceRoot .ls-search-button{min-width:72px}
#lsDeviceRoot .ls-device-overview{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:12px;padding:12px}
#lsDeviceRoot .ls-device-total-card,#lsDeviceRoot .ls-device-distribution-card{border:1px solid var(--vff-line);border-radius:7px;background:#fff;box-shadow:0 2px 8px rgba(27,53,68,.04)}
#lsDeviceRoot .ls-device-total-card{display:grid;align-content:center;min-height:154px;padding:18px}
#lsDeviceRoot .ls-device-total-card span,#lsDeviceRoot .ls-device-total-card small{font-size:12px;line-height:20px;color:var(--vff-muted)}
#lsDeviceRoot .ls-device-total-card strong{margin:4px 0;font-size:34px;line-height:42px;color:var(--vff-primary)}
#lsDeviceRoot .ls-device-distribution-card{padding:14px}
#lsDeviceRoot .ls-device-distribution-card h3{margin:0 0 12px;font-size:15px;line-height:22px;color:var(--vff-text)}
#lsDeviceRoot .ls-device-bar-row{display:grid;grid-template-columns:minmax(0,1fr) 58px;gap:5px 10px;padding:7px 0;border-bottom:1px solid #edf1f3}
#lsDeviceRoot .ls-device-bar-row:last-child{border-bottom:0}
#lsDeviceRoot .ls-device-bar-row>div:first-child{display:flex;justify-content:space-between;gap:8px;min-width:0;font-size:13px;color:#5f6b73}
#lsDeviceRoot .ls-device-bar-row strong{color:var(--vff-primary);font-weight:600}
#lsDeviceRoot .ls-device-bar-track{overflow:hidden;height:6px;border-radius:4px;background:#edf2f3}
#lsDeviceRoot .ls-device-bar-track i{display:block;height:100%;border-radius:4px;background:var(--vff-primary)}
#lsDeviceRoot .ls-device-bar-row small{grid-column:2;grid-row:1/3;align-self:center;color:var(--vff-muted);text-align:right}
#lsDeviceRoot .ls-device-overview-empty,#lsDeviceRoot .ls-device-context-empty{display:grid;min-height:220px;place-items:center;color:var(--vff-muted);font-size:14px}
#lsDeviceRoot .ls-table-wrap{background:#fff;scrollbar-color:#94a3a8 #eef2f3;scrollbar-width:thin}
#lsDeviceRoot .ls-device-table{min-width:1320px}
#lsDeviceRoot .ls-device-table th{height:42px;padding:9px 10px;background:#f6f8f9;color:#5f6b73;font-weight:500}
#lsDeviceRoot .ls-device-table td{height:46px;padding:9px 10px;color:#31414b}
#lsDeviceRoot .ls-select-col{width:42px;min-width:42px;text-align:center}
#lsDeviceRoot .ls-sticky-action{position:sticky;right:0;z-index:2;min-width:88px;background:#fff;box-shadow:-4px 0 8px rgba(38,51,60,.04)}
#lsDeviceRoot thead .ls-sticky-action{z-index:3;background:#f6f8f9}
#lsDeviceRoot .ls-row-actions{gap:6px;flex-wrap:nowrap}
#lsDeviceRoot .ls-row-actions button{height:30px;white-space:nowrap;padding:0 10px;border:1px solid #d6e0e5;border-radius:4px;background:#fff;font-family:inherit;font-size:12px;color:#51616b;cursor:pointer}
#lsDeviceRoot .ls-row-actions button:hover{border-color:#aebdc5;background:#f7f9fa;color:var(--vff-text)}
.ls-device-detail-modal{width:min(820px,96vw);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;border-radius:8px;box-shadow:0 16px 40px rgba(23,36,46,.18)}
.ls-device-detail-modal .ls-modal-head,.ls-device-detail-modal .ls-modal-foot{flex:0 0 auto}
.ls-device-detail-content{display:grid;gap:14px;padding:16px 18px;overflow:auto;background:#f5f7f9}
.ls-device-detail-section{overflow:hidden;border:1px solid #e2e8ec;border-radius:7px;background:#fff}
.ls-device-detail-section h3{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:11px 14px;border-bottom:1px solid #e7ecef;background:#f8fafb;color:#26333c;font-size:15px}
.ls-device-detail-section h3 span{font-size:12px;font-weight:400;color:#788791}
.ls-device-detail-section .ls-detail-grid{padding:14px}
.ls-device-detail-modal .ls-detail{border:1px solid #edf1f3;border-radius:6px;background:#f8fafb}
.ls-device-detail-modal .ls-detail strong{display:block;overflow-wrap:anywhere;color:#26333c;line-height:21px}
.ls-device-component-section .ls-detail-table{min-width:640px}
.ls-device-detail-modal .btn{height:36px;border-radius:4px;padding:0 14px;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;font-size:14px;line-height:34px;box-shadow:none;cursor:pointer}
.ls-device-detail-modal .btn-primary{border:1px solid #177d70;background:#177d70;color:#fff}
.ls-device-detail-modal .btn-primary:hover{border-color:#1c9483;background:#1c9483}
.ls-device-detail-modal .btn:focus-visible{outline:0;box-shadow:0 0 0 2px rgba(23,125,112,.18)}
@media(max-width:1100px){
  #lsDeviceRoot .ls-device-filters{grid-template-columns:1fr 1fr}
  #lsDeviceRoot .ls-device-filter-actions{grid-column:1/-1}
  #lsDeviceRoot .ls-device-overview{grid-template-columns:1fr}
  .ls-ledger-pagination{align-items:flex-start;flex-direction:column}
}
@media(max-width:1024px){
  #lsDeviceRoot .ls-device-titlebar{align-items:flex-start;flex-direction:column}
  #lsDeviceRoot .ls-device-project-scope{width:100%;grid-template-columns:1fr}
  #lsDeviceRoot .ls-device-project-scope select{width:100%}
}
@media(max-width:620px){
  #lsDeviceRoot .ls-device-titlebar{align-items:flex-start;flex-direction:column}
  #lsDeviceRoot .ls-device-project-scope{width:100%;grid-template-columns:1fr}
  #lsDeviceRoot .ls-device-project-scope select{width:100%}
  #lsDeviceRoot .ls-device-filters{grid-template-columns:1fr}
  #lsDeviceRoot .ls-device-filter-actions{display:grid;grid-template-columns:1fr 1fr 1fr}
}

/* Production assembly one-click provisioning prototype */
.ls-assembly-work-order .ls-assembly-overview{grid-template-columns:1.05fr .65fr .7fr .78fr 1.25fr .65fr .9fr .55fr}
.ls-provision-status{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 15px;border:1px solid #dce5ea;border-radius:7px;background:#f8fafb}
.ls-provision-status-icon{display:flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:7px;background:#e8eef1;color:#6b7b86;font-size:20px;font-weight:600}
.ls-provision-status strong{display:block;margin-bottom:3px;color:#26333c;font-size:15px}.ls-provision-status p{margin:0;color:#6f7e88;font-size:12px}.ls-provision-status>span{color:#26333c;font:600 22px/28px Consolas,monospace}
.ls-provision-status.running{border-color:#b9d6e9;background:#f2f8fc}.ls-provision-status.running .ls-provision-status-icon{background:#e7f1fa;color:#4389cc}
.ls-provision-status.success{border-color:#a9d8cf;background:#eef8f6}.ls-provision-status.success .ls-provision-status-icon{background:#177d70;color:#fff}.ls-provision-status.success>span{color:#177d70}
.ls-provision-status.failed{border-color:#efc2bf;background:#fff6f5}.ls-provision-status.failed .ls-provision-status-icon{background:#fde9e8;color:#a43e3b}
.ls-provision-progress{height:7px;margin:10px 0 13px;overflow:hidden;border-radius:4px;background:#e7edef}.ls-provision-progress i{display:block;height:100%;border-radius:inherit;background:#177d70;transition:width .35s ease}
.ls-provision-readiness{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:12px}.ls-provision-readiness article{display:grid;gap:4px;padding:11px 12px;border:1px solid #dce5ea;border-radius:7px;background:#fff}.ls-provision-readiness span{font-size:11px;color:#7b8994}.ls-provision-readiness strong{font-size:13px;color:#26333c}.ls-provision-readiness small{overflow:hidden;color:#84929d;font-size:11px;white-space:nowrap;text-overflow:ellipsis}
.ls-provision-step-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ls-provision-step{display:grid;grid-template-columns:30px minmax(0,1fr) 58px;align-items:center;gap:10px;min-height:50px;padding:7px 10px;border:1px solid #e1e7ea;border-radius:6px;background:#fff}.ls-provision-step>b{display:flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:6px;background:#edf1f3;color:#74838e;font:600 11px/1 Consolas,monospace}.ls-provision-step>span{display:grid;gap:2px}.ls-provision-step strong{color:#33434e;font-size:12px}.ls-provision-step small{color:#8996a0;font-size:10px}.ls-provision-step em{justify-self:end;color:#8b98a2;font-size:11px;font-style:normal}.ls-provision-step.active{border-color:#a9c9df;background:#f3f8fb}.ls-provision-step.active>b{background:#4389cc;color:#fff}.ls-provision-step.active em{color:#2f6c9f}.ls-provision-step.done{border-color:#b9dbd5;background:#f3faf8}.ls-provision-step.done>b{background:#177d70;color:#fff}.ls-provision-step.done em{color:#177d70}
.ls-provision-note{margin-top:12px;padding:10px 12px;border-left:3px solid #177d70;background:#f1f8f6;color:#5f6b73;font-size:12px;line-height:20px}.ls-provision-note strong{color:#26333c}
.ls-reburn-confirm{display:grid;grid-template-columns:minmax(0,.9fr) minmax(280px,1.1fr);gap:14px;margin-top:12px;padding:12px;border:1px solid #ead7ae;border-radius:7px;background:#fff9ec}.ls-reburn-confirm>div,.ls-reburn-confirm label{display:grid;gap:4px}.ls-reburn-confirm strong{color:#604a21;font-size:13px}.ls-reburn-confirm small,.ls-reburn-confirm label>span{color:#876f40;font-size:11px;line-height:18px}.ls-reburn-confirm textarea{box-sizing:border-box;width:100%;min-height:62px;padding:8px 10px;border:1px solid #dccb9f;border-radius:4px;background:#fff;color:#344550;font-family:inherit;resize:vertical}.ls-reburn-confirm.is-blocked{grid-template-columns:1fr;border-color:#efc2bf;background:#fff6f5}.ls-reburn-confirm.is-blocked strong{color:#a33f3b}.ls-reburn-confirm.is-blocked small{color:#875754}
.ls-software-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.ls-software-main,.ls-device-binding-card{border:1px solid #dce5ea;border-radius:7px;background:#fff}.ls-software-main{padding:13px}.ls-software-config-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.ls-software-config-grid label{display:grid;gap:5px}.ls-software-config-grid label>span{font-size:11px;color:#72818e}.ls-software-config-grid input,.ls-software-config-grid select{box-sizing:border-box;width:100%;height:36px;padding:0 10px;border:1px solid #d8e2e7;border-radius:4px;background:#fff;color:#2f404c;font:13px/34px "Microsoft YaHei","PingFang SC",Arial,sans-serif;outline:none}.ls-software-config-grid input:focus,.ls-software-config-grid select:focus{border-color:#177d70;box-shadow:0 0 0 2px rgba(23,125,112,.1)}
.ls-software-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:15px 0 8px}.ls-software-section-title div{display:grid;gap:2px}.ls-software-section-title strong{font-size:13px;color:#26333c}.ls-software-section-title small{font-size:11px;color:#8795a0}.ls-software-section-title>span{font-size:11px;color:#177d70}
.ls-software-package-list{display:grid;gap:10px}.ls-software-package-group{display:grid;gap:6px}.ls-software-package-group+.ls-software-package-group{padding-top:10px;border-top:1px solid #e4eaee}.ls-software-package-group-title{display:flex;align-items:center;justify-content:space-between}.ls-software-package-group-title strong{color:#344550;font-size:12px}.ls-software-package-group-title span{color:#788791;font-size:11px}.ls-software-package-row{display:grid;grid-template-columns:18px minmax(170px,.75fr) 130px minmax(280px,1.35fr);align-items:start;gap:9px;min-height:64px;padding:9px;border:1px solid #e1e8eb;border-radius:6px;background:#fbfcfd}.ls-software-package-row>input{width:16px;height:16px;margin-top:8px;accent-color:#177d70}.ls-software-package-row>span{display:grid;gap:2px;padding-top:5px}.ls-software-package-row strong{font-size:12px;color:#31414c}.ls-software-package-row small{font-size:10px;color:#8a97a1}.ls-software-package-row select{height:32px;border:1px solid #d8e2e7;border-radius:4px;background:#fff;color:#52616c}.ls-software-package-row.is-service{min-height:52px;background:#fff}.ls-software-device-binding{display:grid;gap:4px}.ls-software-device-binding>span{color:#65747d;font-size:11px}.ls-software-device-binding.is-service{padding-top:5px}.ls-software-device-binding.is-service small{color:#65747d;font-size:11px}.ls-software-device-codes{display:flex;flex-wrap:wrap;gap:4px}.ls-software-device-codes code{display:inline-flex;gap:5px;padding:3px 5px;border:1px solid #d8e2e5;border-radius:4px;background:#fff;color:#344550;font:11px/18px Consolas,monospace}.ls-software-device-codes code span{color:#788791;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif}.ls-software-device-empty,.ls-software-package-empty{padding:6px 0;color:#8a97a1;font-size:11px}
.ls-software-package-row{grid-template-columns:18px minmax(250px,1.05fr) minmax(190px,.72fr) minmax(360px,1.35fr);column-gap:18px}.ls-software-package-row select{box-sizing:border-box;width:100%;padding:0 9px}
.ls-auto-start{display:flex;align-items:center;gap:9px;margin-top:10px;padding:9px 10px;border:1px solid #dce5ea;border-radius:6px;background:#f7faf9}.ls-auto-start>input{width:16px;height:16px;accent-color:#177d70}.ls-auto-start>span{display:grid;gap:2px}.ls-auto-start strong{font-size:12px;color:#31414c}.ls-auto-start small{font-size:10px;color:#87949e}
.ls-device-binding-card{padding:13px;background:#f8fafb}.ls-device-binding-card>div:first-child{display:grid;grid-template-columns:1fr auto;align-items:end;gap:2px 8px;padding-bottom:10px;border-bottom:1px solid #e1e8eb}.ls-device-binding-card>div:first-child span{font-size:11px;color:#74838f}.ls-device-binding-card>div:first-child strong{grid-row:1/3;grid-column:2;font-size:24px;color:#177d70}.ls-device-binding-card>div:first-child small{font-size:10px;color:#8c99a3}.ls-device-code-list{display:flex;align-content:flex-start;flex-wrap:wrap;gap:5px;max-height:210px;margin:10px 0;overflow:auto}.ls-device-code-list code{padding:4px 6px;border:1px solid #d8e2e5;border-radius:4px;background:#fff;color:#40515d;font:11px/16px Consolas,monospace}.ls-empty-binding{color:#8d9aa3;font-size:11px}.ls-device-binding-card p{margin:0;color:#75848f;font-size:11px;line-height:19px}
.ls-rule-assembly-modal .ls-foot-actions{display:flex;gap:8px;flex:0 0 auto}.ls-rule-assembly-modal .ls-foot-actions .btn:disabled{cursor:not-allowed;opacity:.6}.ls-rule-assembly-modal .btn:focus-visible,.ls-rule-assembly-modal input:focus-visible,.ls-rule-assembly-modal select:focus-visible{outline:0;box-shadow:0 0 0 2px rgba(23,125,112,.14)}
@media(max-width:1100px){.ls-assembly-work-order .ls-assembly-overview{grid-template-columns:repeat(4,minmax(0,1fr))}.ls-software-layout{grid-template-columns:1fr}.ls-software-package-row{grid-template-columns:18px minmax(180px,1fr) 150px minmax(220px,1.25fr);column-gap:12px}.ls-device-binding-card{display:grid;grid-template-columns:180px minmax(0,1fr) 220px;align-items:start;gap:12px}.ls-device-binding-card>div:first-child{border:0;padding:0}.ls-device-code-list{margin:0;max-height:130px}.ls-provision-readiness{grid-template-columns:1fr}}
@media(max-width:720px){.ls-assembly-work-order .ls-assembly-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-software-config-grid{grid-template-columns:1fr}.ls-software-package-row{grid-template-columns:18px minmax(0,1fr) 110px;gap:8px}.ls-software-package-row em{display:none}.ls-software-device-binding{grid-column:2/-1}.ls-device-binding-card{display:block}.ls-device-code-list{margin:10px 0}.ls-provision-step{grid-template-columns:30px minmax(0,1fr)}.ls-provision-step em{display:none}}
/* Assembly burn flow v2 */
.ls-burn-flow{height:min(820px,calc(100vh - 48px));max-height:calc(100vh - 48px)}
.ls-burn-flow .ls-assembly-work-order{padding:14px 16px 20px;background:var(--pg-page-bg,#f3f6f8)}
.ls-burn-flow .ls-assembly-overview{grid-template-columns:1.05fr .65fr .7fr .75fr 1.3fr .65fr .9fr .65fr;margin-bottom:10px}
.ls-burn-flow .ls-assembly-overview>div{min-height:48px;padding:7px 9px;border-color:var(--pg-border,#e4eaee);border-radius:var(--pg-radius-card,7px)}
.ls-burn-flow .ls-assembly-overview span{font-size:11px}.ls-burn-flow .ls-assembly-overview strong{font-size:13px}.ls-burn-flow .ls-assembly-overview strong.ls-overview-number{font-size:20px}
.ls-burn-flow .ls-assembly-workspace{grid-template-columns:190px minmax(0,1fr);gap:10px}
.ls-burn-flow .ls-assembly-sidebar{gap:3px;padding:8px;border-radius:var(--pg-radius-card,7px);box-shadow:var(--pg-shadow-card,0 2px 10px rgba(27,53,68,.06))}
.ls-burn-flow .ls-assembly-nav-head{padding:2px 3px 6px}.ls-burn-flow .ls-assembly-nav-head strong{font-size:13px}
.ls-burn-flow .ls-assembly-nav-item{grid-template-columns:25px minmax(0,1fr);gap:7px;min-height:43px;padding:5px 7px;border-radius:4px;background:#f7f9fa}
.ls-burn-flow .ls-assembly-nav-item>b{width:25px;height:25px;border-radius:4px}
.ls-burn-flow .ls-assembly-nav-item strong{font-size:12px}.ls-burn-flow .ls-assembly-nav-item small{font-size:10px;line-height:14px}
.ls-burn-flow .ls-assembly-nav-item.is-complete:not(.is-active){background:#f0f7f5;color:#177d70}.ls-burn-flow .ls-assembly-nav-item.is-complete:not(.is-active)>b{background:#dcefeb;color:#177d70}
.ls-burn-flow .ls-assembly-nav-item.has-warning{border-color:#e7c887;background:#fff9ec}.ls-burn-flow .ls-assembly-nav-item.has-warning>b{background:#fff0cf;color:#9a6416}
.ls-box-scan-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:12px;padding:14px;border:1px solid var(--pg-border,#e4eaee);border-radius:var(--pg-radius-card,7px);background:#fff}
.ls-box-scan-main label{display:grid;gap:6px}.ls-box-scan-main label>span{color:var(--pg-text-secondary,#5f6b73);font-size:12px}.ls-box-scan-main label>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.ls-box-scan-main input{box-sizing:border-box;height:36px;padding:0 10px;border:1px solid #d7e1e5;border-radius:4px;color:#26333c;font:600 13px/34px Consolas,monospace;outline:none}.ls-box-scan-main input:focus{border-color:#177d70;box-shadow:0 0 0 2px rgba(23,125,112,.1)}.ls-box-scan-main p{margin:7px 0 0;color:#788791;font-size:11px;line-height:18px}
.ls-box-scan-state{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #e1e7ea;border-radius:7px;background:#f7f9fa}.ls-box-scan-state>b{display:flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:6px;background:#e8edef;color:#6f7e88}.ls-box-scan-state>span{display:grid;gap:2px}.ls-box-scan-state strong{color:#344550;font-size:13px}.ls-box-scan-state small{color:#788791;font:11px/16px Consolas,monospace}.ls-box-scan-state.is-success{border-color:#a9d8cf;background:#eef8f6}.ls-box-scan-state.is-success>b{background:#177d70;color:#fff}.ls-box-scan-state.is-success strong{color:#12695f}.ls-box-scan-state.is-error{border-color:#efc2bf;background:#fff6f5}.ls-box-scan-state.is-error>b{background:#fde9e8;color:#a43e3b}.ls-box-scan-state.is-error strong{color:#a43e3b}
.ls-work-order-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));overflow:hidden;margin-bottom:12px;border:1px solid var(--pg-border,#e4eaee);border-radius:7px;background:#fff}.ls-work-order-summary>div{display:grid;gap:4px;min-width:0;padding:10px 11px;border-right:1px solid var(--pg-border,#e4eaee)}.ls-work-order-summary>div:last-child{border-right:0}.ls-work-order-summary span{color:#788791;font-size:11px}.ls-work-order-summary strong{overflow:hidden;color:#26333c;font-size:12px;white-space:nowrap;text-overflow:ellipsis}.ls-work-order-summary .ls-state-success{color:#177d70}
.ls-flow-tip{margin-top:12px;padding:9px 11px;border-left:3px solid #177d70;background:#f1f8f6;color:#5f6b73;font-size:12px;line-height:20px}.ls-flow-tip strong{color:#26333c}
.ls-flow-table-wrap{overflow:auto;border:1px solid var(--pg-border,#e4eaee);border-radius:7px;background:#fff}.ls-flow-table{width:100%;min-width:720px;border-collapse:collapse}.ls-flow-table th{height:40px;padding:0 10px;border-bottom:1px solid var(--pg-border,#e4eaee);background:#f5f7f8;color:#5f6b73;font-size:12px;text-align:left;font-weight:600}.ls-flow-table td{height:44px;padding:0 10px;border-bottom:1px solid #edf1f3;color:#3d4d58;font-size:12px}.ls-flow-table tr:last-child td{border-bottom:0}.ls-flow-table tbody tr:hover{background:#f6fbfa}.ls-flow-table .ls-code{font-family:Consolas,monospace}
.ls-flow-state{display:inline-flex;align-items:center;min-height:23px;padding:0 7px;border-radius:4px;font-size:11px}.ls-flow-state.success{background:#e3f3f0;color:#12695f}.ls-flow-state.info{background:#e7f1fa;color:#2f6c9f}.ls-flow-state.warning{background:#fff3dc;color:#956018}.ls-flow-state.neutral{background:#eef2f4;color:#65747d}
.ls-flow-subtitle{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:14px 0 8px}.ls-flow-subtitle>div{display:grid;gap:2px}.ls-flow-subtitle strong{color:#26333c;font-size:13px}.ls-flow-subtitle small{color:#788791;font-size:11px}.ls-flow-subtitle>span{color:#177d70;font-size:11px}
.ls-flow-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ls-flow-check{display:grid;grid-template-columns:18px 28px minmax(0,1fr);align-items:center;gap:9px;min-height:58px;padding:9px 10px;border:1px solid var(--pg-border,#e4eaee);border-radius:7px;background:#fff;cursor:pointer}.ls-flow-check:hover{border-color:#a9c9c3;background:#fbfefd}.ls-flow-check>input{width:17px;height:17px;margin:0;accent-color:#177d70}.ls-flow-check>b{display:flex;width:27px;height:27px;align-items:center;justify-content:center;border-radius:4px;background:#edf1f3;color:#71808b;font:600 10px/1 Consolas,monospace}.ls-flow-check>span{display:grid;gap:2px}.ls-flow-check strong{color:#344550;font-size:12px;font-weight:500}.ls-flow-check small{color:#87949e;font-size:10px}.ls-flow-check.is-checked{border-color:#abd7cf;background:#eff8f6}.ls-flow-check.is-checked>b{background:#177d70;color:#fff}.ls-flow-check.is-checked strong{color:#12695f}
.ls-preflight-banner{display:flex;align-items:center;gap:11px;margin-bottom:12px;padding:11px 12px;border:1px solid #ecd49e;border-radius:7px;background:#fff9ec}.ls-preflight-banner>b{display:flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:6px;background:#fff0cf;color:#9a6416}.ls-preflight-banner>div{display:grid;gap:2px}.ls-preflight-banner strong{color:#624715;font-size:13px}.ls-preflight-banner p{margin:0;color:#8d6b2d;font-size:11px}
.ls-identity-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:10px 11px;border:1px solid #cfe3df;border-radius:7px;background:#f2f8f7}.ls-identity-toolbar>div{display:grid;gap:2px}.ls-identity-toolbar strong{color:#26333c;font-size:13px}.ls-identity-toolbar small{color:#65747d;font-size:11px}.ls-identity-table-wrap{margin-bottom:12px}
#lsAssemblyIdentitySection .ls-assembly-asset-card.is-discovered{border-color:#a9d8cf}#lsAssemblyIdentitySection .ls-assembly-asset-card.is-discovered>header{background:#f1f8f6}
.ls-local-client{display:grid;grid-template-columns:minmax(230px,1.5fr) minmax(150px,1fr) minmax(150px,1fr) auto;align-items:center;gap:10px;margin-bottom:12px;padding:10px 11px;border:1px solid #e2c98f;border-radius:7px;background:#fff9ec}.ls-local-client-title{display:flex;align-items:center;gap:9px}.ls-local-client-title>b{display:flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:5px;background:#fff0cf;color:#9a6416}.ls-local-client-title>span,.ls-client-target{display:grid;gap:2px}.ls-local-client strong{color:#604a21;font-size:12px}.ls-local-client small,.ls-client-target span{color:#8a754b;font-size:10px}.ls-client-target{padding-left:10px;border-left:1px solid #ead9b5}.ls-local-client.is-connected{border-color:#add8d0;background:#eff8f6}.ls-local-client.is-connected .ls-local-client-title>b{background:#177d70;color:#fff}.ls-local-client.is-connected strong{color:#12695f}.ls-local-client.is-connected small,.ls-local-client.is-connected .ls-client-target span{color:#5f807a}.ls-local-client.is-connected .ls-client-target{border-left-color:#cae3df}
.ls-config-confirm{display:flex;align-items:center;gap:9px;margin-top:8px;padding:10px;border:1px solid #cddfdb;border-radius:6px;background:#f2f8f7}.ls-config-confirm>input{width:17px;height:17px;accent-color:#177d70}.ls-config-confirm>span{display:grid;gap:2px}.ls-config-confirm strong{color:#26333c;font-size:12px}.ls-config-confirm small{color:#65747d;font-size:10px}
.ls-auto-check-summary{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;margin-bottom:10px;padding:12px;border:1px solid var(--pg-border,#e4eaee);border-radius:7px;background:#f7f9fa}.ls-auto-check-summary>b{display:flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:6px;background:#e8edef;color:#6f7e88}.ls-auto-check-summary div{display:grid;gap:2px}.ls-auto-check-summary strong{color:#26333c;font-size:13px}.ls-auto-check-summary p{margin:0;color:#788791;font-size:11px}.ls-auto-check-summary>span{font:600 18px/24px Consolas,monospace}.ls-auto-check-summary.is-success{border-color:#a9d8cf;background:#eef8f6}.ls-auto-check-summary.is-success>b{background:#177d70;color:#fff}.ls-auto-check-summary.is-success>span{color:#177d70}
.ls-auto-check-list{display:grid;gap:6px}.ls-auto-check-item{display:grid;grid-template-columns:28px minmax(0,1fr) 50px;align-items:center;gap:9px;min-height:50px;padding:7px 9px;border:1px solid var(--pg-border,#e4eaee);border-radius:6px;background:#fff}.ls-auto-check-item>b{display:flex;width:26px;height:26px;align-items:center;justify-content:center;border-radius:4px;background:#edf1f3;color:#71808b}.ls-auto-check-item>span{display:grid;gap:2px}.ls-auto-check-item strong{color:#344550;font-size:12px}.ls-auto-check-item small{color:#87949e;font-size:10px}.ls-auto-check-item em{justify-self:end;color:#788791;font-size:11px;font-style:normal}.ls-auto-check-item.is-success{border-color:#c7e2dd;background:#f4faf9}.ls-auto-check-item.is-success>b{background:#177d70;color:#fff}.ls-auto-check-item.is-success em{color:#177d70}
.ls-commission-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:12px}.ls-commission-checks{display:grid;gap:7px}.ls-commission-checks .ls-flow-check{grid-template-columns:18px 28px minmax(0,1fr)}.ls-commission-form{display:grid;align-content:start;gap:9px;padding:12px;border:1px solid var(--pg-border,#e4eaee);border-radius:7px;background:#f8fafb}.ls-commission-form label{display:grid;gap:4px}.ls-commission-form label>span{color:#65747d;font-size:11px}.ls-commission-form input,.ls-commission-form select,.ls-commission-form textarea{box-sizing:border-box;width:100%;border:1px solid #d7e1e5;border-radius:4px;background:#fff;color:#26333c;font:13px/20px "Microsoft YaHei","PingFang SC",Arial,sans-serif;outline:none}.ls-commission-form input,.ls-commission-form select{height:32px;padding:0 9px}.ls-commission-form textarea{min-height:86px;padding:8px;resize:vertical}.ls-commission-form input:focus,.ls-commission-form select:focus,.ls-commission-form textarea:focus{border-color:#177d70;box-shadow:0 0 0 2px rgba(23,125,112,.1)}.ls-commission-form>small{color:#788791;font-size:10px;line-height:17px}.ls-validation-record{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;margin-top:10px}.ls-validation-record .ls-validation-note,.ls-validation-record>small{grid-column:1/-1}.ls-validation-record textarea{min-height:64px}.ls-validation-record>button{justify-self:end;grid-column:1/-1}.ls-validation-record input[readonly]{background:#f1f4f5;color:#5f6b73}
.ls-flow-savebar{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px;padding:10px 18px!important;background:#fff}.ls-flow-footer-state{display:grid;gap:2px;min-width:0}.ls-flow-footer-state>span{color:#788791;font-size:10px}.ls-flow-footer-state>strong{color:#26333c;font-size:13px}.ls-flow-footer-state>small{overflow:hidden;color:#65747d;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.ls-burn-flow .ls-flow-savebar .btn{height:36px;padding:0 16px;border-radius:4px;font-size:14px}
.ls-flow-savebar #lsProvisionStart[hidden]{display:none!important}
.ls-burn-detail-modal{display:flex;flex-direction:column;width:min(960px,calc(100vw - 40px));max-height:92vh;overflow:hidden}.ls-burn-detail-body{display:grid;gap:12px;overflow:auto;padding:16px 18px;background:#f5f7f9}.ls-burn-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid #dfe7eb;border-radius:7px;background:#fff}.ls-burn-detail-summary>div{display:grid;gap:5px;padding:12px 14px;border-right:1px solid #e5ebee}.ls-burn-detail-summary>div:last-child{border-right:0}.ls-burn-detail-summary span{color:#788791;font-size:11px}.ls-burn-detail-summary strong{color:#26333c;font-size:13px}.ls-burn-detail-section{overflow:hidden;border:1px solid #e1e8ec;border-radius:7px;background:#fff}.ls-burn-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.ls-burn-detail-grid .ls-detail-readonly-item{min-height:62px;padding:10px 12px;border-right:1px solid #edf1f3;border-bottom:1px solid #edf1f3}.ls-burn-detail-grid .ls-detail-readonly-item:nth-child(4n){border-right:0}.ls-burn-detail-failure{border-color:#edc5c2}.ls-burn-detail-failure .ls-detail-section-head{background:#fff7f6}.ls-burn-package-table{min-width:620px}
.ls-burn-detail-modal .ls-tag.success{background:#e5f5ee;color:#177d70}.ls-burn-detail-modal .ls-tag.demand{background:#e8f1f8;color:#3678b7}.ls-burn-detail-modal .ls-tag.danger{background:#fdebea;color:#a33f3b}
.ls-burn-detail-inline{overflow:visible;padding:0;background:transparent}.ls-production-detail-v2 .ls-tag.success{background:#e5f5ee;color:#177d70}.ls-production-detail-v2 .ls-tag.demand{background:#e8f1f8;color:#3678b7}.ls-production-detail-v2 .ls-tag.danger{background:#fdebea;color:#a33f3b}
@media(max-width:760px){.ls-burn-detail-summary,.ls-burn-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-burn-detail-summary>div:nth-child(2){border-right:0}.ls-burn-detail-summary>div:nth-child(-n+2){border-bottom:1px solid #e5ebee}.ls-burn-detail-grid .ls-detail-readonly-item:nth-child(2n){border-right:0}}
@media(max-width:1100px){.ls-burn-flow .ls-assembly-overview{grid-template-columns:repeat(4,minmax(0,1fr))}.ls-burn-flow .ls-assembly-workspace{grid-template-columns:174px minmax(0,1fr)}.ls-work-order-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.ls-work-order-summary>div:nth-child(3n){border-right:0}.ls-work-order-summary>div:nth-child(-n+3){border-bottom:1px solid var(--pg-border,#e4eaee)}.ls-local-client{grid-template-columns:1fr 1fr}.ls-local-client .btn{justify-self:end}.ls-commission-grid{grid-template-columns:1fr}.ls-commission-form{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-commission-form label:last-of-type{grid-column:1/-1}.ls-commission-form>button,.ls-commission-form>small{grid-column:1/-1}}
@media(max-width:860px){.ls-provision-step-list{grid-template-columns:1fr}.ls-burn-flow .ls-assembly-workspace{grid-template-columns:148px minmax(0,1fr)}.ls-burn-flow .ls-assembly-nav-item{grid-template-columns:23px minmax(0,1fr);padding:5px}.ls-burn-flow .ls-assembly-nav-item>b{width:23px;height:23px}.ls-flow-check-grid{grid-template-columns:1fr}.ls-box-scan-panel{grid-template-columns:1fr}.ls-config-targets{grid-template-columns:1fr}.ls-local-client{grid-template-columns:1fr}.ls-client-target{padding:7px 0 0;border-top:1px solid #ead9b5;border-left:0}.ls-local-client .btn{justify-self:stretch}.ls-burn-flow .ls-flow-savebar{align-items:flex-end!important}.ls-flow-footer-state{max-width:45%}}
@media(max-width:620px){.ls-burn-flow .ls-assembly-workspace{grid-template-columns:1fr}.ls-burn-flow .ls-assembly-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.ls-burn-flow .ls-assembly-nav-head{grid-column:1/-1}.ls-work-order-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-box-scan-main label>div{grid-template-columns:1fr}.ls-commission-form{grid-template-columns:1fr}.ls-commission-form label:last-of-type,.ls-commission-form>button,.ls-commission-form>small{grid-column:auto}.ls-burn-flow .ls-flow-savebar{align-items:stretch!important;flex-direction:column}.ls-flow-footer-state{max-width:none}.ls-burn-flow .ls-foot-actions{width:100%}.ls-burn-flow .ls-foot-actions .btn{flex:1}}
.ls-box-hardware-confirm{display:flex;align-items:center;gap:8px;cursor:pointer}.ls-box-hardware-confirm input{width:16px;height:16px;margin:0;accent-color:#177d70}.ls-box-hardware-confirm strong{font-weight:500}

/* Software version management and merged assembly verification */
.ls-version-main-panel{min-height:calc(100vh - 104px)}
.ls-version-titlebar{display:flex;align-items:center;justify-content:space-between;gap:16px}
.ls-version-delivery-card{display:grid;grid-template-columns:1.45fr repeat(3,minmax(0,1fr));margin:0 16px 12px;overflow:hidden;border:1px solid var(--pg-border,#e4eaee);border-radius:7px;background:#fff}
.ls-version-delivery-card>div{display:grid;align-content:center;gap:3px;min-height:76px;padding:12px 14px;border-right:1px solid var(--pg-border,#e4eaee)}.ls-version-delivery-card>div:last-child{border-right:0}.ls-version-delivery-card span{color:#788791;font-size:11px}.ls-version-delivery-card strong{color:#26333c;font-size:14px}.ls-version-delivery-card>div:not(:first-child) strong{color:#177d70;font-size:18px}.ls-version-delivery-card small{overflow:hidden;color:#788791;font-size:10px;white-space:nowrap;text-overflow:ellipsis}
.ls-version-filters{display:grid;grid-template-columns:180px 150px minmax(260px,1fr) auto;gap:8px;margin:0 16px 12px}.ls-version-filters input,.ls-version-filters select{height:32px;border:1px solid #d8e2e7;border-radius:4px;background:#fff;color:#26333c;font-size:13px}.ls-version-filters input{padding:0 10px}.ls-version-filters .btn{height:32px}
.ls-version-main-panel>.ls-table-wrap{margin:0 16px}.ls-version-table{min-width:1160px}.ls-version-product,.ls-version-release{display:grid;gap:2px}.ls-version-product strong,.ls-version-release strong{font-size:13px}.ls-version-product small,.ls-version-release small{color:#788791;font-size:10px}.ls-version-checksum{color:#52616c;font:11px/18px Consolas,monospace}.ls-version-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;color:#5f6b73;font-size:12px}.ls-version-footer small{color:#788791}
.ls-version-modal{width:min(780px,calc(100vw - 40px))}.ls-version-form{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-version-upload{display:grid;gap:5px;padding:10px;border:1px dashed #b9cbc8;border-radius:4px;background:#f7faf9}.ls-version-upload span{color:#788791;font-size:11px}.ls-version-publish-now{display:flex!important;align-items:center;gap:9px;padding:10px;border:1px solid #cfe3df;border-radius:7px;background:#f1f8f6}.ls-version-publish-now>input{width:17px;height:17px;margin:0;accent-color:#177d70}.ls-version-publish-now>span{display:grid;gap:2px}.ls-version-publish-now strong{color:#26333c;font-size:13px}.ls-version-publish-now small{color:#65747d;font-size:11px}
.ls-version-detail-modal{width:min(720px,calc(100vw - 40px))}.ls-version-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:18px;border:1px solid var(--pg-border,#e4eaee);border-radius:7px;overflow:hidden}.ls-version-detail-grid>div{display:grid;gap:4px;padding:12px;border-right:1px solid var(--pg-border,#e4eaee);border-bottom:1px solid var(--pg-border,#e4eaee)}.ls-version-detail-grid>div:nth-child(2n){border-right:0}.ls-version-detail-grid>div.wide{grid-column:1/-1;border-right:0}.ls-version-detail-grid span{color:#788791;font-size:11px}.ls-version-detail-grid strong,.ls-version-detail-grid code{color:#26333c;font-size:13px}.ls-version-detail-grid code{font-family:Consolas,monospace}
.ls-scan-assembly-modal{width:min(560px,calc(100vw - 40px));overflow:hidden}.ls-scan-assembly-modal .btn-primary{border-color:#177d70;background:#177d70;color:#fff}.ls-scan-assembly-modal .btn-primary:hover{border-color:#1c9483;background:#1c9483}.ls-scan-assembly-body{display:grid;gap:14px;padding:16px 18px;background:#f5f8f9}.ls-scan-device-hint{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:11px;padding:12px;border:1px solid #cfe3df;border-radius:7px;background:#f0f8f6}.ls-scan-device-hint>b{display:flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:6px;background:#177d70;color:#fff;font-size:18px}.ls-scan-device-hint>div{display:grid;gap:2px}.ls-scan-device-hint strong{color:#26333c;font-size:13px}.ls-scan-device-hint small{color:#65747d;font-size:11px}.ls-scan-code-field{display:grid;gap:6px}.ls-scan-code-field>span{color:#5f6b73;font-size:12px}.ls-scan-code-field>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.ls-scan-code-field input{box-sizing:border-box;width:100%;height:36px;padding:0 10px;border:1px solid #d7e1e5;border-radius:4px;background:#fff;color:#26333c;font-size:13px;outline:none}.ls-scan-code-field input:focus{border-color:#177d70;box-shadow:0 0 0 2px rgba(23,125,112,.1)}.ls-scan-match-result{overflow:hidden;min-height:116px;border:1px solid #dfe7ea;border-radius:7px;background:#fff}.ls-scan-empty,.ls-scan-result-state{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;min-height:92px;padding:12px}.ls-scan-empty>b,.ls-scan-result-state>b{display:flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:5px;background:#eef2f4;color:#65747d}.ls-scan-empty>span,.ls-scan-result-state>span{display:grid;gap:3px}.ls-scan-empty strong,.ls-scan-result-state strong{color:#344550;font-size:13px}.ls-scan-empty small,.ls-scan-result-state small{color:#788791;font-size:11px;line-height:18px}.ls-scan-result-state.is-error{background:#fff7f6}.ls-scan-result-state.is-error>b{background:#dc5b57;color:#fff}.ls-scan-result-state.is-error strong{color:#a43e3b}.ls-scan-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid #e6ecef}.ls-scan-result-head>div{display:flex;align-items:center;gap:8px}.ls-scan-result-head>div>strong{color:#26333c;font:600 13px/20px Consolas,monospace}.ls-scan-result-head>small{max-width:290px;color:#65747d;font-size:11px;line-height:18px;text-align:right}.ls-scan-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.ls-scan-result-grid>div{display:grid;gap:3px;padding:10px 12px;border-right:1px solid #edf1f3;border-bottom:1px solid #edf1f3}.ls-scan-result-grid>div:nth-child(2n){border-right:0}.ls-scan-result-grid>div:nth-last-child(-n+2){border-bottom:0}.ls-scan-result-grid span{color:#788791;font-size:10px}.ls-scan-result-grid strong{overflow:hidden;color:#344550;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.ls-ipc-binding-card{display:grid;gap:10px;margin-bottom:12px;padding:12px 13px;border:1px solid #cfe3df;border-radius:7px;background:#f7fbfa}.ls-ipc-binding-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.ls-ipc-binding-head>div:first-child{display:grid;gap:2px}.ls-ipc-binding-head span{color:#788791;font-size:11px}.ls-ipc-binding-head strong{color:#26333c;font-size:13px}.ls-ipc-binding-head small{color:#65747d;font-size:11px}.ls-ipc-binding-badges{display:flex;gap:6px}.ls-ipc-binding-body{display:grid;grid-template-columns:minmax(320px,1fr) minmax(300px,1fr);align-items:end;gap:12px}.ls-ipc-binding-body>label{display:grid;gap:5px}.ls-ipc-binding-body>label>span{color:#65747d;font-size:11px}.ls-ipc-binding-body>label em{color:#dc5b57;font-style:normal}.ls-ipc-binding-body>label>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.ls-ipc-binding-body input{box-sizing:border-box;width:100%;height:36px;padding:0 10px;border:1px solid #d7e1e5;border-radius:4px;background:#fff;color:#26333c;font-size:13px;outline:none}.ls-ipc-binding-body input:focus{border-color:#177d70;box-shadow:0 0 0 2px rgba(23,125,112,.1)}.ls-ipc-binding-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.ls-ipc-binding-state{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;min-height:44px;padding:6px 9px;border:1px solid #dfe7ea;border-radius:6px;background:#fff}.ls-ipc-binding-state>b{display:flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:4px;background:#eef2f4;color:#65747d;font:600 10px/1 Consolas,monospace}.ls-ipc-binding-state>span{display:grid;gap:1px}.ls-ipc-binding-state strong{color:#344550;font-size:12px}.ls-ipc-binding-state small{overflow:hidden;color:#788791;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.ls-ipc-binding-state.is-success{border-color:#b8ddd6;background:#eff8f6}.ls-ipc-binding-state.is-success>b{background:#177d70;color:#fff}.ls-ipc-binding-state.is-error{border-color:#efc2bf;background:#fff5f4}.ls-ipc-binding-state.is-error>b{background:#dc5b57;color:#fff}.ls-ipc-binding-state.is-error strong{color:#a43e3b}
.ls-hardware-table-wrap .ls-flow-table{min-width:960px}.ls-hardware-count{box-sizing:border-box;width:58px;height:30px;padding:0 7px;border:1px solid #d8e2e7;border-radius:4px;color:#26333c}.ls-inline-check{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;cursor:pointer}.ls-inline-check input{width:16px;height:16px;margin:0;accent-color:#177d70}.ls-inline-check span{color:#52616c;font-size:12px}
.ls-scan-assembly-modal #lsScanAssemblyEnter[hidden],.ls-scan-assembly-modal .ls-scan-match-result[hidden]{display:none!important}
.ls-scan-assembly-modal .ls-scan-result-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ls-scan-assembly-modal .ls-scan-result-grid>div{border-bottom:0}.ls-scan-assembly-modal .ls-scan-result-grid>div:nth-child(2){border-right:1px solid #edf1f3}.ls-scan-assembly-modal .ls-scan-result-grid>div:last-child{border-right:0}
.ls-burn-flow .ls-assembly-overview-essential{grid-template-columns:1.1fr .65fr .72fr .78fr 1.35fr}.ls-burn-flow .ls-work-order-section-head p,.ls-burn-flow .ls-flow-subtitle small,.ls-burn-flow .ls-flow-subtitle>span{display:none}.ls-burn-flow .ls-work-order-section-head{margin-bottom:10px}.ls-burn-flow .ls-flow-subtitle{align-items:center;margin:12px 0 7px}.ls-burn-flow .ls-ipc-binding-body{grid-template-columns:minmax(0,1fr)}.ls-burn-flow .ls-ipc-binding-body>label>div{grid-template-columns:minmax(0,1fr)}
@media(max-width:900px){.ls-ipc-binding-body{grid-template-columns:1fr}.ls-ipc-binding-head{align-items:stretch;flex-direction:column}.ls-ipc-binding-badges{justify-content:flex-start}}
.ls-network-device-table-wrap{overflow-x:hidden}.ls-network-device-table{min-width:0;table-layout:fixed}.ls-network-device-table th,.ls-network-device-table td{box-sizing:border-box;padding-left:7px;padding-right:7px}.ls-network-device-table th:nth-child(1){width:15%}.ls-network-device-table th:nth-child(2){width:16%}.ls-network-device-table th:nth-child(3){width:23%}.ls-network-device-table th:nth-child(4){width:11%}.ls-network-device-table th:nth-child(5){width:21%}.ls-network-device-table th:nth-child(6),.ls-network-device-table th:nth-child(7){width:7%}.ls-network-device-table td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ls-network-device-table .ls-network-port-pair{min-width:0;white-space:pre-line;line-height:18px;overflow-wrap:anywhere;text-overflow:clip}.ls-camera-standard-code span{display:block;line-height:19px}.ls-camera-standard-code b{display:inline-block;width:32px;margin-right:5px;color:#788791;font:10px/18px sans-serif;font-weight:500}.ls-network-device-name{display:flex;align-items:center;gap:7px}.ls-network-device-name strong{font-size:13px}.ls-network-component-row{background:#f8fbfa}.ls-network-component-row .ls-network-device-name{padding-left:28px}.ls-component-branch{width:14px;color:#aab5bc;font-family:Consolas,monospace;text-align:center}.ls-device-tag,.ls-component-tag{display:inline-flex;padding:2px 6px;border-radius:4px;font-size:10px}.ls-device-tag{background:#eef2f4;color:#65747d}.ls-component-tag{background:#eaf5f3;color:#12695f}
.ls-vpdn-mode-select{padding:12px 13px 0}.ls-vpdn-mode-select label{display:grid;gap:5px;color:#72818e;font-size:11px}.ls-vpdn-mode-select select{height:32px;border:1px solid #d8e2e7;border-radius:4px;background:#fff;color:#26333c}.ls-vpdn-mode-panel{display:grid;gap:8px;margin:10px 13px 13px;padding:9px;border:1px solid #dce7e4;border-radius:6px;background:#f7faf9}.ls-vpdn-mode-panel[hidden]{display:none}.ls-vpdn-mode-panel>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.ls-vpdn-mode-panel span,.ls-vpdn-mode-panel small{color:#788791;font-size:10px}.ls-vpdn-mode-panel strong{color:#344550;font-size:11px}.ls-vpdn-mode-panel small{line-height:17px}
.ls-interface-table-wrap{overflow-x:hidden}.ls-interface-table{min-width:0;table-layout:fixed}.ls-interface-table .ls-interface-col-source{width:15%}.ls-interface-table .ls-interface-col-api{width:19%}.ls-interface-table .ls-interface-col-data{width:19%}.ls-interface-table .ls-interface-col-schema{width:11%}.ls-interface-table .ls-interface-col-response{width:10%}.ls-interface-table .ls-interface-col-time{width:16%}.ls-interface-table .ls-interface-col-result{width:10%}.ls-interface-table th,.ls-interface-table td{box-sizing:border-box;padding:6px 7px;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.ls-interface-table td{height:50px;line-height:18px}.ls-interface-table td:nth-child(2),.ls-interface-table td:nth-child(3){display:table-cell}.ls-interface-table td:nth-child(2)>span,.ls-interface-table td:nth-child(3)>strong{display:block;color:#344550;font-size:12px}.ls-interface-table td:nth-child(2)>code,.ls-interface-table td:nth-child(3)>small{display:block;margin-top:2px;color:#788791;font:10px/15px Consolas,monospace;white-space:normal;overflow-wrap:anywhere}.ls-interface-response,.ls-interface-time{color:#52616c;font:11px/18px Consolas,monospace;white-space:normal}
@media(max-width:1100px){.ls-version-delivery-card{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-version-delivery-card>div:nth-child(2){border-right:0}.ls-version-delivery-card>div:nth-child(-n+2){border-bottom:1px solid var(--pg-border,#e4eaee)}.ls-version-filters{grid-template-columns:1fr 1fr minmax(220px,1.4fr) auto}}
@media(max-width:760px){.ls-version-delivery-card{grid-template-columns:1fr}.ls-version-delivery-card>div{border-right:0;border-bottom:1px solid var(--pg-border,#e4eaee)}.ls-version-delivery-card>div:last-child{border-bottom:0}.ls-version-filters{grid-template-columns:1fr 1fr}.ls-version-filters input{grid-column:1/-1}.ls-version-filters .btn{grid-column:2}.ls-version-form,.ls-version-detail-grid{grid-template-columns:1fr}.ls-version-detail-grid>div{border-right:0}.ls-version-detail-grid>div.wide{grid-column:auto}}
.ls-camera-template-card{margin-bottom:12px;overflow:hidden;border:1px solid var(--pg-border,#e4eaee);border-radius:7px;background:#fff}
.ls-camera-template-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--pg-border,#e4eaee);background:#f7faf9}.ls-camera-template-head>div{display:grid;gap:2px}.ls-camera-template-head strong{color:#26333c;font-size:13px}.ls-camera-template-head small{color:#65747d;font-size:11px}
.ls-camera-template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.ls-camera-template-grid>div{display:grid;gap:3px;min-width:0;padding:9px 11px;border-right:1px solid #edf1f3;border-bottom:1px solid #edf1f3}.ls-camera-template-grid>div:nth-child(3n){border-right:0}.ls-camera-template-grid>div:nth-last-child(-n+3){border-bottom:0}.ls-camera-template-grid span{color:#788791;font-size:10px}.ls-camera-template-grid strong{overflow:hidden;color:#344550;font-size:11px;white-space:nowrap;text-overflow:ellipsis}
.ls-site-config-note{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-top:1px solid #ead9b5;background:#fff9ec}.ls-site-config-note>div{display:grid;gap:2px}.ls-site-config-note strong{color:#604a21;font-size:12px}.ls-site-config-note small,.ls-site-config-note>span{color:#8a754b;font-size:10px}
@media(max-width:860px){.ls-camera-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-camera-template-grid>div:nth-child(3n){border-right:1px solid #edf1f3}.ls-camera-template-grid>div:nth-child(2n){border-right:0}.ls-camera-template-grid>div:nth-last-child(-n+3){border-bottom:1px solid #edf1f3}.ls-camera-template-grid>div:nth-last-child(-n+2){border-bottom:0}}

/* Batch provisioning confirmation */
.ls-batch-burn-modal{width:min(1040px,calc(100vw - 40px));height:min(720px,92vh)}
.ls-batch-burn-body{min-height:0;overflow:auto;padding:14px 16px 18px;background:var(--pg-page-bg,#f3f6f8)}
.ls-batch-burn-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px;overflow:hidden;border:1px solid var(--pg-border,#e4eaee);border-radius:7px;background:#fff}
.ls-batch-burn-summary>div{display:grid;gap:2px;min-height:72px;padding:11px 13px;border-right:1px solid var(--pg-border,#e4eaee)}.ls-batch-burn-summary>div:last-child{border-right:0}
.ls-batch-burn-summary span{color:#788791;font-size:11px}.ls-batch-burn-summary strong{color:#177d70;font:600 22px/28px Consolas,monospace}.ls-batch-burn-summary small{color:#65747d;font-size:10px}.ls-batch-burn-summary .has-warning{background:#fff9ec}.ls-batch-burn-summary .has-warning strong{color:#9a6416}
.ls-batch-burn-table-wrap{overflow:auto;border:1px solid var(--pg-border,#e4eaee);border-radius:7px;background:#fff}.ls-batch-burn-table{min-width:860px}.ls-batch-burn-table th{height:42px}.ls-batch-burn-table td{height:50px}.ls-batch-burn-table td:first-child{min-width:175px}.ls-batch-burn-table td:nth-child(4){min-width:220px}.ls-batch-burn-table td strong,.ls-batch-burn-table td small{display:block}.ls-batch-burn-table td small{margin-top:2px;color:#788791;font-size:10px}.ls-batch-burn-result{min-width:155px}
.ls-batch-burn-rule{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;margin-top:12px;padding:10px 12px;border-left:3px solid #177d70;background:#eef7f5}.ls-batch-burn-rule strong{color:#26333c;font-size:12px}.ls-batch-burn-rule span{color:#5f6b73;font-size:11px;line-height:19px}
.ls-batch-reburn-confirm{display:grid;grid-template-columns:minmax(0,.8fr) minmax(320px,1.2fr);gap:14px;margin-top:12px;padding:12px;border:1px solid #ead7ae;border-radius:7px;background:#fff9ec}.ls-batch-reburn-confirm>div,.ls-batch-reburn-confirm label{display:grid;gap:4px}.ls-batch-reburn-confirm strong{color:#604a21;font-size:13px}.ls-batch-reburn-confirm small,.ls-batch-reburn-confirm label>span{color:#876f40;font-size:11px;line-height:18px}.ls-batch-reburn-confirm textarea{box-sizing:border-box;width:100%;min-height:64px;padding:8px 10px;border:1px solid #dccb9f;border-radius:4px;background:#fff;color:#344550;font-family:inherit;resize:vertical}
.ls-batch-burn-modal .ls-modal-foot{flex-wrap:wrap}.ls-batch-burn-footnote{margin-right:auto;color:#5f6b73;font-size:12px}
@media(max-width:760px){.ls-batch-burn-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-batch-burn-summary>div:nth-child(2){border-right:0}.ls-batch-burn-summary>div:nth-child(-n+2){border-bottom:1px solid var(--pg-border,#e4eaee)}.ls-batch-burn-rule,.ls-batch-reburn-confirm,.ls-reburn-confirm{grid-template-columns:1fr}.ls-batch-burn-footnote{width:100%;margin:0 0 4px}}
