:root{--ink:#18241f;--muted:#6d7872;--paper:#f4f1e9;--card:#fffdf8;--line:#ddd9cf;--green:#1d6a4a;--green2:#cfe7d9;--orange:#d36d35;--red:#b84437;--yellow:#f1c76b;--shadow:0 14px 40px rgba(31,45,38,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:236px;background:#14271f;color:#eff8f3;padding:26px 18px;display:flex;flex-direction:column;z-index:20}.brand{color:inherit;text-decoration:none;display:flex;align-items:center;gap:12px;padding:0 8px 28px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-mark{display:grid;place-items:center;width:42px;height:42px;background:#edc96f;color:#14271f;font-size:21px;font-weight:900;border-radius:12px}.brand strong,.brand small{display:block}.brand small{margin-top:4px;color:#9cb3a8;font-size:11px}.nav-list{display:grid;gap:8px;margin-top:26px}.nav-item{border:0;background:transparent;color:#b8c9c0;text-align:left;padding:13px 14px;border-radius:10px;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:11px}.nav-item span{font-size:18px;width:20px;text-align:center}.nav-item i{font-style:normal;margin-left:auto;background:#bd4b3e;color:white;padding:2px 7px;border-radius:10px;font-size:11px}.nav-item:hover,.nav-item.is-active{background:#294238;color:#fff}.sidebar-note{margin-top:auto;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);padding:13px;border-radius:12px;display:flex;gap:10px;align-items:flex-start}.sidebar-note strong,.sidebar-note small{display:block}.sidebar-note strong{font-size:12px}.sidebar-note small{color:#9cb3a8;font-size:10px;margin-top:4px;line-height:1.5}.live-dot{width:8px;height:8px;background:#65d596;border-radius:50%;box-shadow:0 0 0 4px rgba(101,213,150,.12);margin-top:3px}.main{margin-left:236px;min-height:100vh;padding:0 34px 48px}.topbar{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:28px}.topbar h1{margin:2px 0 0;font-size:26px}.eyebrow,.section-kicker{font-size:10px;letter-spacing:.15em;font-weight:800;color:var(--green);margin:0;text-transform:uppercase}.top-actions{display:flex;align-items:center;gap:10px}.today{font-size:12px;color:var(--muted);margin-right:8px}.ghost-button,.primary-button,.hero-action,.camera-button,.scan-input-row button{border:0;border-radius:9px;padding:11px 15px;font-weight:700;cursor:pointer}.ghost-button{background:transparent;border:1px solid var(--line);color:var(--ink)}.primary-button{background:var(--green);color:white}.primary-button:hover{background:#17583e}.mobile-menu{display:none;border:0;background:transparent;font-size:23px}.view{display:none}.view.is-visible{display:block;animation:fade .25s ease}@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.hero-strip{background:#203b30;color:#f7fbf9;border-radius:18px;padding:28px 30px;display:flex;justify-content:space-between;align-items:flex-end;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero-strip:after{content:"";position:absolute;width:300px;height:300px;border:55px solid rgba(237,201,111,.09);border-radius:50%;right:130px;top:-160px}.hero-strip .section-kicker{color:#efce7c}.hero-strip h2{font-size:25px;margin:7px 0}.hero-strip p{color:#b9cbc2;margin:0;max-width:670px;font-size:13px}.hero-action{background:#edc96f;color:#203b30;z-index:1}.hero-action span{margin-left:14px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.kpi-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;align-items:center;justify-content:space-between}.kpi-card small{display:block;color:var(--muted);font-size:12px}.kpi-card strong{display:block;font-size:27px;margin-top:7px}.kpi-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#e6efe9;color:var(--green);font-weight:900}.kpi-card.risk .kpi-icon{background:#f7e2dc;color:var(--red)}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;margin-bottom:16px}.panel{background:var(--card);border:1px solid var(--line);border-radius:15px;box-shadow:0 6px 20px rgba(29,45,37,.035)}.flow-panel,.urgent-panel,.recent-panel{padding:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.panel h3{font-size:17px;margin:5px 0 0}.legend{font-size:11px;color:var(--muted)}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--green);margin-right:6px}.flow-chart{height:195px;display:flex;align-items:flex-end;gap:16px;padding-top:24px}.bar-item{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px}.bar-track{width:100%;height:142px;background:#edf0eb;border-radius:9px 9px 4px 4px;display:flex;align-items:flex-end;overflow:hidden}.bar-fill{width:100%;background:linear-gradient(180deg,#3f936f,#1f694b);border-radius:9px 9px 4px 4px;min-height:5px;transition:height .4s ease}.bar-item strong{font-size:12px}.bar-item small{font-size:10px;color:var(--muted)}.text-button{border:0;background:none;color:var(--green);font-weight:700;cursor:pointer}.urgent-list{display:grid;gap:10px;margin-top:18px}.urgent-row{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid #ebe7de}.urgent-row:last-child{border-bottom:0}.urgency-dot{width:8px;height:8px;border-radius:50%;background:var(--red);margin-top:6px;flex:0 0 auto}.urgent-row strong,.urgent-row small{display:block}.urgent-row strong{font-size:12px}.urgent-row small{color:var(--muted);font-size:11px;margin-top:4px}.urgent-row time{margin-left:auto;font-size:11px;color:var(--red);white-space:nowrap}.filter-pills{display:flex;background:#efede6;padding:3px;border-radius:9px}.filter-pills button{border:0;background:transparent;padding:6px 10px;border-radius:7px;font-size:11px;color:var(--muted);cursor:pointer}.filter-pills button.is-active{background:white;color:var(--ink);box-shadow:0 2px 7px rgba(0,0,0,.07)}.order-table-wrap{overflow:auto;margin-top:17px}.order-table{width:100%;border-collapse:collapse;min-width:720px}.order-table th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:left;padding:9px;border-bottom:1px solid var(--line)}.order-table td{padding:13px 9px;border-bottom:1px solid #ebe7de;font-size:12px}.order-table tbody tr{cursor:pointer}.order-table tbody tr:hover{background:#f7f5ef}.order-main strong,.order-main small{display:block}.order-main small{color:var(--muted);margin-top:3px}.progress-line{display:flex;align-items:center;gap:8px}.progress-track{width:84px;height:6px;background:#e2e3de;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--green);border-radius:3px}.status-chip{display:inline-flex;align-items:center;border-radius:99px;padding:5px 9px;font-size:10px;font-weight:800;background:#e2efe8;color:var(--green)}.status-chip.risk{background:#f8e2db;color:var(--red)}.status-chip.wait{background:#f6edd6;color:#946a18}.toolbar{padding:13px;display:flex;gap:10px;margin-bottom:16px}.search-box{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:white;border-radius:9px;padding:0 12px;flex:1}.search-box input,.toolbar select,.scan-input-row input{border:0;outline:0;background:transparent;width:100%;padding:11px;font:inherit;font-size:13px}.toolbar select{width:auto;border:1px solid var(--line);border-radius:9px;color:var(--ink)}.order-card-list{display:grid;gap:12px}.order-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;grid-template-columns:1.25fr .8fr 1.2fr auto;gap:20px;align-items:center;cursor:pointer}.order-card:hover{border-color:#a8b8af;box-shadow:var(--shadow)}.order-card h3{margin:0;font-size:15px}.order-card p{margin:5px 0 0;color:var(--muted);font-size:11px}.meta-pair small,.meta-pair strong{display:block}.meta-pair small{font-size:10px;color:var(--muted);margin-bottom:5px}.process-route{display:flex;align-items:center;gap:4px}.process-step{height:7px;flex:1;background:#e5e5df;border-radius:4px}.process-step.done{background:var(--green)}.process-step.now{background:var(--yellow)}.order-card .open-arrow{font-size:22px;color:var(--green)}.report-layout{display:grid;grid-template-columns:minmax(320px,.8fr) 1.2fr;gap:18px}.scan-card,.report-history{padding:28px}.scan-card{text-align:center}.scan-card h2{margin:7px 0 4px}.scan-card>p{color:var(--muted);font-size:13px}.scan-visual{width:150px;height:150px;border:2px solid var(--ink);margin:26px auto;position:relative;padding:14px;background:repeating-linear-gradient(45deg,#fff 0 5px,#eff2ed 5px 10px)}.scan-visual div{position:absolute;width:32px;height:32px;border:6px solid var(--ink)}.scan-visual div:nth-child(1){top:14px;left:14px}.scan-visual div:nth-child(2){top:14px;right:14px}.scan-visual div:nth-child(3){bottom:14px;left:14px}.scan-visual div:nth-child(4){bottom:14px;right:14px}.scan-visual span{position:absolute;left:8px;right:8px;top:50%;height:2px;background:var(--red);box-shadow:0 0 8px var(--red)}.field-label{text-align:left;display:block;font-size:11px;color:var(--muted);margin-bottom:6px}.scan-input-row{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.scan-input-row button{border-radius:0;background:var(--ink);color:white}.camera-button{width:100%;margin-top:10px;background:#e2eee7;color:var(--green)}.history-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:14px 0;border-bottom:1px solid #ebe7de}.history-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e5f1ea;color:var(--green);font-weight:900}.history-row strong,.history-row small{display:block}.history-row strong{font-size:12px}.history-row small{color:var(--muted);font-size:10px;margin-top:4px}.history-row time{font-size:10px;color:var(--muted)}.empty-state{text-align:center;padding:44px 12px;color:var(--muted)}.exception-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.exception-stat{padding:18px;background:var(--card);border:1px solid var(--line);border-radius:14px}.exception-stat span{font-size:11px;color:var(--muted)}.exception-stat strong{display:block;font-size:26px;margin-top:7px}.exception-list{display:grid;gap:10px}.exception-card{display:grid;grid-template-columns:auto 1fr auto;gap:15px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--red);border-radius:12px;padding:17px}.exception-card.warning{border-left-color:#dd9f30}.exception-icon{width:37px;height:37px;border-radius:10px;background:#f8e5df;color:var(--red);display:grid;place-items:center;font-weight:900}.exception-card h3{margin:0;font-size:14px}.exception-card p{margin:5px 0 0;color:var(--muted);font-size:12px}.exception-card time{font-size:11px;color:var(--muted)}.drawer-backdrop{position:fixed;inset:0;background:rgba(12,22,17,.4);z-index:39;opacity:0;pointer-events:none;transition:.2s}.drawer-backdrop.is-open{opacity:1;pointer-events:auto}.detail-drawer{position:fixed;inset:0 0 0 auto;width:min(520px,95vw);background:var(--card);z-index:40;transform:translateX(100%);transition:.25s ease;padding:30px;overflow:auto;box-shadow:-20px 0 60px rgba(0,0,0,.15)}.detail-drawer.is-open{transform:none}.drawer-close,.dialog-close{border:0;background:#eeeae1;width:34px;height:34px;border-radius:50%;font-size:22px;cursor:pointer;float:right}.drawer-order-id{color:var(--green);font-weight:800;font-size:12px}.drawer-title{font-size:24px;margin:7px 0}.drawer-subtitle{color:var(--muted);font-size:13px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.detail-box{background:#f3f1ea;padding:13px;border-radius:10px}.detail-box small,.detail-box strong{display:block}.detail-box small{font-size:10px;color:var(--muted);margin-bottom:4px}.timeline{margin-top:24px}.timeline h3{font-size:15px}.timeline-step{display:grid;grid-template-columns:28px 1fr auto;gap:10px;position:relative;padding-bottom:18px}.timeline-step:not(:last-child):before{content:"";position:absolute;left:13px;top:25px;bottom:0;border-left:1px solid var(--line)}.step-dot{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#e4e4df;color:#999;font-size:11px;z-index:1}.timeline-step.done .step-dot{background:var(--green);color:white}.timeline-step.now .step-dot{background:var(--yellow);color:var(--ink)}.timeline-step strong,.timeline-step small{display:block}.timeline-step strong{font-size:12px}.timeline-step small{color:var(--muted);font-size:10px;margin-top:3px}.timeline-step em{font-size:10px;font-style:normal;color:var(--muted)}.drawer-actions{display:flex;gap:9px;margin-top:20px}.report-dialog{width:min(600px,94vw);border:0;border-radius:16px;padding:0;background:var(--card);box-shadow:0 30px 80px rgba(0,0,0,.25)}.report-dialog::backdrop{background:rgba(12,22,17,.55)}.dialog-head{padding:22px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.dialog-head h2{margin:5px 0 0}.dialog-close{float:none}.dialog-body{padding:22px 24px;display:grid;gap:15px}.field span{display:block;font-size:11px;color:var(--muted);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:11px;background:white;font:inherit;font-size:13px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(29,106,74,.1)}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check-row{display:flex;align-items:flex-start;gap:10px;background:#edf4ef;padding:12px;border-radius:10px}.check-row input{margin-top:4px}.check-row strong,.check-row small{display:block}.check-row strong{font-size:12px}.check-row small{font-size:10px;color:var(--muted);margin-top:3px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding:16px 24px;border-top:1px solid var(--line)}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);background:#152820;color:white;padding:12px 18px;border-radius:9px;z-index:60;opacity:0;pointer-events:none;transition:.2s;font-size:12px}.toast.is-visible{opacity:1;transform:translate(-50%,0)}
@media(max-width:1050px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.order-card{grid-template-columns:1.2fr .7fr 1fr auto}}
@media(max-width:760px){.sidebar{left:-260px;transform:none;transition:left .25s}.sidebar.is-open{left:0}.main{margin-left:0;padding:0 16px 35px}.topbar{height:auto;min-height:86px;margin-bottom:18px}.mobile-menu{display:block;margin-right:9px}.topbar>div:nth-child(2){margin-right:auto}.topbar .eyebrow,.today,.top-actions .ghost-button{display:none}.topbar h1{font-size:20px}.top-actions .primary-button{padding:10px;font-size:0}.top-actions .primary-button:after{content:"＋报工";font-size:12px}.hero-strip{padding:22px;display:block}.hero-strip h2{font-size:20px}.hero-action{margin-top:18px}.kpi-grid{grid-template-columns:1fr 1fr}.kpi-card{padding:14px}.kpi-card strong{font-size:22px}.flow-chart{gap:8px}.urgent-panel{padding:18px}.recent-panel{padding:16px}.report-layout{grid-template-columns:1fr}.order-card{grid-template-columns:1fr auto}.order-card>.meta-pair,.order-card>.process-block{grid-column:1}.toolbar{display:grid;grid-template-columns:1fr 1fr}.search-box{grid-column:1/-1}.order-table th:nth-child(2),.order-table td:nth-child(2),.order-table th:nth-child(5),.order-table td:nth-child(5){display:none}.exception-summary{grid-template-columns:1fr 1fr}.exception-stat:last-child{grid-column:1/-1}.exception-card{grid-template-columns:auto 1fr}.exception-card time{grid-column:2}.two-fields{grid-template-columns:1fr}.detail-drawer{padding:22px}.detail-grid{grid-template-columns:1fr 1fr}}

/* 台历生产流程 */
.calendar-hero{background:linear-gradient(120deg,#203b30 0%,#173d32 65%,#8c5d2e 140%)}
.kpi-card.review .kpi-icon{background:#fff0ce;color:#9a6b12}
.calendar-grid{grid-template-columns:1.55fr .95fr}
.workflow-map{display:flex;align-items:center;gap:10px;padding:28px 0 18px;overflow:auto}
.flow-start,.flow-node{flex:0 0 auto;padding:15px 16px;background:#e8f0eb;border:1px solid #cad9d0;border-radius:11px;font-weight:800;font-size:12px;color:var(--green)}
.flow-start{background:#203b30;color:white;border-color:#203b30}
.flow-arrow{color:#9aa59f;font-weight:900}
.parallel-box{flex:0 0 auto;border:1px dashed #d79b42;background:#fff9eb;padding:8px 10px 10px;border-radius:12px;text-align:center}.parallel-box small{display:block;font-size:9px;color:#a56e20;margin-bottom:7px}.parallel-box div{display:flex;gap:7px}.parallel-box span{padding:9px 12px;background:#f2c86f;border-radius:8px;font-weight:800;font-size:12px}
.flow-help,.planning-head p,.settle-intro{margin:0;color:var(--muted);font-size:11px;line-height:1.6}
.planning-head{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.planning-head h2,.worker-toolbar h2{margin:5px 0 6px;font-size:21px}
.planning-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:16px}.template-card,.accept-panel{padding:22px}.template-tag{background:#e2efe8;color:var(--green);padding:5px 10px;border-radius:99px;font-size:10px;font-weight:800}.template-steps{display:flex;align-items:center;gap:10px;margin:22px 0;padding:16px;background:#f4f1e9;border-radius:12px}.template-steps>div{display:flex;gap:6px;flex-wrap:wrap}.template-steps b{width:100%;font-size:10px;color:var(--muted);margin-bottom:3px}.template-steps span{font-size:11px;font-weight:800;background:white;border:1px solid var(--line);border-radius:7px;padding:7px 9px}.template-steps>div:first-child span{background:#fff3d4;border-color:#e8ca87}.template-steps em{font-size:10px;font-style:normal;color:var(--muted)}.plain-list{padding-left:18px;margin:0;color:var(--muted);font-size:11px;line-height:2}
.accept-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #ebe7de}.accept-row:last-child{border-bottom:0}.accept-row>div{flex:1}.accept-row strong,.accept-row small{display:block}.accept-row strong{font-size:12px}.accept-row small{font-size:10px;color:var(--muted);margin-top:5px;line-height:1.5}.compact{padding:8px 10px;font-size:10px;white-space:nowrap}
.calendar-order-card{grid-template-columns:1.2fr .7fr 1.5fr auto}.mini-route{display:flex;align-items:center;gap:5px;margin-top:8px;min-width:0}.mini-route>span,.mini-parallel span{padding:4px 6px;border-radius:5px;background:#e7e6e0;color:#777;font-size:9px;white-space:nowrap}.mini-route b{font-size:9px;color:#9ea7a2}.mini-parallel{display:flex;gap:3px;border:1px dashed #d9a34f;padding:3px;border-radius:6px}.mini-route .done,.mini-parallel .done{background:#dcefe4;color:#176342}.mini-route .active,.mini-parallel .active{background:#d9e8f5;color:#32698e}.mini-route .review,.mini-parallel .review{background:#fff0c8;color:#946815}.mini-route .ready,.mini-parallel .ready{background:#f0dfd5;color:#9a4e2b}.mini-route .blocked,.mini-parallel .blocked{background:#ecebe6;color:#8b918d}.mini-route .skipped{background:white;color:#aaa}
.status-chip.review{background:#fff0ce;color:#946a18}
.worker-toolbar{padding:18px 22px;display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.worker-toolbar label{font-size:11px;color:var(--muted)}.worker-toolbar select{margin-left:7px;border:1px solid var(--line);border-radius:8px;padding:8px;background:white}.worker-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.task-column{padding:20px}.count-badge{background:#e2eee7;color:var(--green);padding:4px 9px;border-radius:99px;font-size:10px;font-weight:900}.count-badge.warning{background:#fff0ce;color:#946a18}.worker-task{border:1px solid var(--line);border-left:4px solid #9bb3a6;border-radius:11px;padding:14px;margin-top:11px}.worker-task.active{border-left-color:#3d7eac}.worker-task.ready{border-left-color:#bd7046}.worker-task.review{border-left-color:#d9a137}.worker-task.done{border-left-color:var(--green)}.task-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.task-process{font-size:10px;letter-spacing:.12em;font-weight:900;color:var(--green)}.worker-task>strong,.worker-task>small{display:block}.worker-task>strong{font-size:13px}.worker-task>small{font-size:10px;color:var(--muted);margin:5px 0 11px}.worker-task p{font-size:11px;background:#f5f2e9;padding:9px;border-radius:7px}.task-actions{display:flex;justify-content:flex-end;gap:7px}
.inventory-summary,.wage-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.inventory-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.inventory-panel,.ledger-panel,.wage-panel{padding:22px}.stock-table{margin-top:17px}.stock-row{display:grid;grid-template-columns:1.3fr repeat(4,.65fr);gap:8px;align-items:center;padding:12px;border-bottom:1px solid #ebe7de;font-size:11px}.stock-row strong small{display:block;font-weight:400;color:var(--muted);margin-top:3px}.stock-head{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.stock-low{color:var(--red);font-weight:800}.ledger-row{display:grid;grid-template-columns:auto 1fr auto;gap:9px;padding:12px 0;border-bottom:1px solid #ebe7de;align-items:start}.ledger-type{padding:4px 6px;border-radius:5px;background:#e7eee9;color:var(--green);font-size:9px;font-weight:800}.ledger-type.损耗{background:#f7e1db;color:var(--red)}.ledger-type.余料{background:#fff0ce;color:#916517}.ledger-row strong,.ledger-row small{display:block}.ledger-row strong{font-size:11px}.ledger-row small,.ledger-row time{font-size:9px;color:var(--muted);margin-top:3px}.exception-stat small{display:block;color:var(--muted);font-size:9px;margin-top:3px}
.wage-stat{padding:20px;background:var(--card);border:1px solid var(--line);border-radius:14px}.wage-stat.dark{background:#203b30;color:white}.wage-stat span,.wage-stat small{display:block;font-size:10px;color:var(--muted)}.wage-stat.dark span,.wage-stat.dark small{color:#bed0c7}.wage-stat strong{display:block;font-size:24px;margin:8px 0}.wage-table-wrap{overflow:auto;margin-top:16px}.wage-table{width:100%;border-collapse:collapse;min-width:650px}.wage-table th,.wage-table td{text-align:left;border-bottom:1px solid #ebe7de;padding:12px;font-size:11px}.wage-table th{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.order-dialog{width:min(820px,96vw)}.order-form-body{max-height:70vh;overflow:auto}.three-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.form-section{border:1px solid var(--line);border-radius:12px;padding:15px;margin:0}.form-section legend{font-size:11px;font-weight:900;padding:0 7px;color:var(--green)}.route-toggle{display:flex;gap:20px;font-size:11px;margin-bottom:12px}.process-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.process-option{display:flex;gap:7px;align-items:center;border:1px solid var(--line);padding:9px;border-radius:8px;background:white}.process-option.parallel{background:#fff8e7;border-color:#ead298}.process-option strong,.process-option small{display:block}.process-option strong{font-size:11px}.process-option small{font-size:9px;color:var(--muted);margin-top:2px}.field-note{font-size:9px;color:var(--muted);margin:9px 0 0}.material-plan,.assignment-plan{display:grid;gap:7px}.material-option{display:grid;grid-template-columns:auto 1.3fr 100px auto;gap:8px;align-items:center;border-bottom:1px solid #eee9df;padding:7px}.material-option span strong,.material-option span small{display:block}.material-option span strong{font-size:11px}.material-option span small{font-size:9px;color:var(--muted)}.material-option input[type=number],.assignment-row input{width:100%;border:1px solid var(--line);border-radius:7px;padding:7px}.material-option em{font-style:normal;font-size:10px;color:var(--muted)}.assignment-row{display:grid;grid-template-columns:80px 1fr 1fr;gap:9px;align-items:center;padding:6px 0}.assignment-row strong{font-size:11px}.assignment-row select{border:1px solid var(--line);border-radius:7px;padding:7px;background:white}.assignment-row label{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted)}
.task-context{background:#edf4ef;padding:13px;border-radius:10px}.task-context strong,.task-context span{display:block}.task-context strong{font-size:13px}.task-context span{font-size:10px;color:var(--muted);margin-top:4px}.settle-intro{background:#fff8e7;padding:11px;border-radius:8px}.settle-row{display:grid;grid-template-columns:1fr 1fr 120px;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #ebe7de}.settle-row strong,.settle-row small{display:block}.settle-row strong{font-size:11px}.settle-row small{font-size:9px;color:var(--muted);margin-top:3px}.settle-row label{font-size:10px;color:var(--muted)}.settle-row input{width:90px;border:1px solid var(--line);border-radius:7px;padding:7px}.settle-row select{border:1px solid var(--line);border-radius:7px;padding:8px;background:white}
.drawer-section{margin-top:22px}.drawer-section h3{font-size:14px}.drawer-task-list{margin-top:12px}.drawer-task{display:grid;grid-template-columns:55px 1fr auto;gap:10px;align-items:center;padding:10px;border-left:3px solid #bbb;border-bottom:1px solid #ebe7de}.drawer-task>span{font-size:11px;font-weight:900}.drawer-task strong,.drawer-task small{display:block}.drawer-task strong{font-size:10px}.drawer-task small{font-size:9px;color:var(--muted);margin-top:2px}.drawer-task.done{border-left-color:var(--green)}.drawer-task.active{border-left-color:#3d7eac}.drawer-task.review{border-left-color:#d9a137}.drawer-task.ready{border-left-color:#bd7046}.detail-materials{display:grid;grid-template-columns:1fr 1fr;gap:7px}.detail-material{background:#f4f1e9;padding:10px;border-radius:8px}.detail-material span,.detail-material strong,.detail-material small{display:block}.detail-material span{font-size:9px;color:var(--muted)}.detail-material strong{font-size:11px;margin:3px 0}.detail-material small{font-size:9px;color:var(--muted)}
@media(max-width:1050px){.calendar-grid,.planning-layout,.inventory-layout{grid-template-columns:1fr}.calendar-order-card{grid-template-columns:1fr 1fr}.calendar-order-card .process-block{grid-column:1/-1}.process-picker{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.top-actions [data-open-order]{font-size:0}.top-actions [data-open-order]:after{content:"＋开单";font-size:12px}.calendar-grid,.planning-layout,.worker-columns,.inventory-layout{grid-template-columns:1fr}.workflow-map{gap:7px}.flow-start,.flow-node{padding:11px 10px}.parallel-box span{padding:7px}.planning-head,.worker-toolbar{align-items:flex-start}.planning-head p{max-width:210px}.calendar-order-card{grid-template-columns:1fr auto}.calendar-order-card>.meta-pair,.calendar-order-card>.process-block{grid-column:1}.inventory-summary,.wage-summary{grid-template-columns:1fr 1fr}.inventory-summary>*:last-child,.wage-summary>*:last-child{grid-column:1/-1}.stock-row{grid-template-columns:1.2fr repeat(4,.7fr);padding:10px 4px}.process-picker{grid-template-columns:1fr 1fr}.three-fields{grid-template-columns:1fr}.route-toggle{display:grid;gap:8px}.assignment-row{grid-template-columns:55px 1fr}.assignment-row label{grid-column:1/-1}.material-option{grid-template-columns:auto 1fr 85px auto}.settle-row{grid-template-columns:1fr 1fr}.settle-row select{grid-column:1/-1}.detail-materials{grid-template-columns:1fr}.mini-route{overflow:auto}.order-dialog{width:96vw}.task-column{padding:15px}}

/* 装订方式与两类库存关联 */
.flow-node small{display:block;font-size:8px;font-weight:500;color:var(--muted);margin-top:4px}.binding-node{padding-block:11px}
.linked-spec-inline{color:var(--green)!important;font-weight:700}
.inventory-summary{grid-template-columns:repeat(4,1fr)}.inventory-layout{grid-template-columns:1fr}
.inventory-group{margin-top:18px;border:1px solid #e7e2d7;border-radius:13px;overflow:hidden;background:#fff}.inventory-group:first-child{margin-top:0}.inventory-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#f6f3eb;border-bottom:1px solid #e7e2d7}.inventory-group-head h4{margin:3px 0 0;font-size:13px}.inventory-group-head>small{color:var(--muted);font-size:9px}.material-category{font-size:9px;letter-spacing:.12em;color:var(--green);font-weight:900}.matrix-wrap,.ring-stock-table{overflow:auto}.stock-matrix{min-width:930px;display:grid;grid-template-columns:180px repeat(var(--matrix-cols),minmax(100px,1fr));align-items:stretch}.matrix-corner,.matrix-head,.matrix-size,.matrix-stock{padding:10px;border-right:1px solid #eee9df;border-bottom:1px solid #eee9df}.matrix-corner,.matrix-head{background:#fbfaf6;color:var(--muted);font-size:9px;font-weight:800}.matrix-head{text-align:center}.matrix-size strong,.matrix-size small,.matrix-stock strong,.matrix-stock small{display:block}.matrix-size strong{font-size:10px}.matrix-size small{font-size:8px;color:var(--muted);margin-top:3px}.matrix-stock{text-align:center}.matrix-stock strong{font-size:11px}.matrix-stock small{font-size:8px;color:var(--muted);margin-top:3px}.matrix-stock.stock-low strong{color:var(--red)}
.ring-stock-table{min-width:690px}.ring-row{display:grid;grid-template-columns:170px repeat(5,minmax(92px,1fr));align-items:stretch}.ring-row>div,.ring-row>span{padding:10px;border-right:1px solid #eee9df;border-bottom:1px solid #eee9df}.ring-row>div strong,.ring-row>div small{display:block}.ring-row>div strong{font-size:10px}.ring-row>div small{font-size:8px;color:var(--muted);margin-top:3px}.ring-head{background:#fbfaf6;color:var(--muted);font-size:9px;font-weight:800;text-align:center}.ring-head>div{text-align:left}.ring-divider{padding:10px 14px;background:#f3efe5;color:var(--green);font-size:9px;font-weight:900;letter-spacing:.12em}.metal-row,.metal-head{grid-template-columns:170px repeat(4,minmax(105px,1fr))}
.linked-spec-fields{display:grid;grid-template-columns:1.15fr 1fr .8fr .8fr;gap:10px}.relation-preview{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:13px;padding:13px;border-radius:11px;background:#edf5f0;border:1px solid #cfe1d6}.relation-preview>div span,.relation-preview>div strong,.relation-preview>div small{display:block}.relation-preview>div span{font-size:9px;color:var(--green);font-weight:900}.relation-preview>div strong{font-size:11px;margin:4px 0}.relation-preview>div small{font-size:9px;color:var(--muted)}.relation-preview>b{font-size:10px;color:var(--green);white-space:nowrap}.relation-preview.is-disabled{background:#f3f1eb;border-color:#dfdbd1}.relation-preview.is-disabled b{color:var(--muted)}
.dialog-head p{margin:7px 0 0;color:var(--muted);font-size:11px}.business-craft-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.upload-card{display:grid;gap:7px;padding:12px;border:1px dashed #c8d8ce;background:#f5faf6;border-radius:10px;font-size:11px;font-weight:800;color:var(--green)}.upload-card input{font-size:10px}.upload-card small{font-size:9px;color:var(--muted);font-weight:400}.production-route-toggle{align-self:end;padding:10px;background:#f5f3ec;border-radius:9px}.business-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.business-detail-grid>div{padding:10px;background:#f4f1e9;border-radius:8px}.business-detail-grid .wide{grid-column:1/-1}.business-detail-grid small,.business-detail-grid strong{display:block}.business-detail-grid small{font-size:9px;color:var(--muted)}.business-detail-grid strong{font-size:10px;margin-top:4px;word-break:break-word}.unplanned-route{padding:7px 9px;color:#9a6b18;background:#fff4d8;border:1px dashed #dfbd68;border-radius:6px;font-size:10px}
.linked-material .material-index{width:28px;height:28px;display:grid;place-items:center!important;border-radius:8px;background:#e4f0e8;color:var(--green);font-size:9px;font-weight:900}.linked-material-plan .material-option{grid-template-columns:auto 1fr 100px auto}
.binding-spec-card{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;background:#eef5f0;border:1px solid #d1e1d7;padding:13px;border-radius:11px}.binding-spec-card>div small,.binding-spec-card>div strong,.binding-spec-card>div span{display:block}.binding-spec-card>div small{font-size:9px;color:var(--green);font-weight:900}.binding-spec-card>div strong{font-size:11px;margin:4px 0}.binding-spec-card>div span{font-size:9px;color:var(--muted)}.binding-spec-card>b{color:var(--green)}.drawer-task{grid-template-columns:110px 1fr auto}
@media(max-width:1050px){.inventory-layout{grid-template-columns:1fr}.linked-spec-fields{grid-template-columns:1fr 1fr}.inventory-summary{grid-template-columns:1fr 1fr}}
@media(max-width:1050px){.business-craft-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.linked-spec-fields{grid-template-columns:1fr}.relation-preview,.binding-spec-card{grid-template-columns:1fr}.relation-preview>b,.binding-spec-card>b{transform:rotate(90deg);justify-self:center}.inventory-summary{grid-template-columns:1fr 1fr}.inventory-summary>*:last-child{grid-column:auto}.inventory-group-head{align-items:flex-start}.drawer-task{grid-template-columns:90px 1fr auto}.business-craft-grid,.upload-grid,.business-detail-grid{grid-template-columns:1fr}.business-detail-grid .wide{grid-column:auto}}

.conditional-input{margin-top:7px}.conditional-input[hidden]{display:none}
.report-material-hint{margin:-4px 0 12px;padding:9px 11px;border-radius:8px;background:#edf5f0;color:var(--green);font-size:10px;line-height:1.6}.report-material-hint.has-loss{background:#fff0e9;color:var(--red)}

/* 正式服务器登录与同步状态 */
.sidebar-logout{width:100%;margin-top:9px;padding:8px;border:1px solid rgba(255,255,255,.18);border-radius:7px;background:transparent;color:#dce8e1;font-size:10px;cursor:pointer}.sidebar-logout:hover{background:rgba(255,255,255,.08)}
.sync-status{padding:7px 10px;border-radius:99px;background:#e6f2ea;color:#26704d;font-size:10px;font-weight:800;white-space:nowrap}.sync-status[data-tone="pending"]{background:#fff1cb;color:#8a651b}.sync-status[data-tone="error"]{background:#fbe4df;color:#a14232}
.account-password-fields{display:none}body.server-mode .account-password-fields{display:grid}
.login-gate{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 10%,rgba(236,205,125,.24),transparent 33%),linear-gradient(145deg,#12281f,#254638);overflow:auto}.login-gate[hidden]{display:none}.login-card{width:min(420px,100%);padding:34px;border:1px solid rgba(255,255,255,.17);border-radius:22px;background:#fbfaf6;box-shadow:0 28px 80px rgba(0,0,0,.34)}.login-brand{display:flex;align-items:center;gap:12px}.login-brand .brand-mark{background:#1c6b48;color:white}.login-brand strong,.login-brand small{display:block}.login-brand strong{font-size:14px}.login-brand small{margin-top:3px;color:var(--muted);font-size:10px}.login-card h1{margin:30px 0 8px;font-size:30px}.login-card>p{margin:0 0 22px;color:var(--muted);font-size:12px;line-height:1.7}.login-card form{display:grid;gap:13px}.login-submit{width:100%;margin-top:4px;padding:13px}.login-error{min-height:18px;color:var(--red);font-size:11px}.login-foot{display:block;margin-top:20px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:9px;text-align:center}body.is-login{overflow:hidden}
@media(max-width:760px){.login-card{padding:25px 20px;border-radius:17px}.login-card h1{font-size:25px}.sync-status{display:none}.account-password-fields{grid-template-columns:1fr}}

[hidden]{display:none!important}.account-switcher{margin-top:auto;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:rgba(255,255,255,.06)}.account-switcher small,.account-switcher span{display:block;color:#9cb3a8;font-size:9px}.account-switcher select{width:100%;margin:7px 0;padding:8px;border:1px solid rgba(255,255,255,.16);border-radius:7px;background:#203b30;color:white;font-size:10px}.sidebar-note{margin-top:10px}.danger-button{border:1px solid #d8aaa2;border-radius:9px;padding:10px 13px;background:#fff4f1;color:var(--red);font-weight:800;cursor:pointer}.inventory-actions,.account-head{padding:20px 22px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.inventory-actions h2,.account-head h2{margin:5px 0;font-size:21px}.inventory-actions p,.account-head p{margin:0;color:var(--muted);font-size:11px}.inventory-actions>div:last-child{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.inventory-balance{display:grid;grid-template-columns:1fr auto;gap:4px;padding:11px;background:#edf4ef;border-radius:9px}.inventory-balance span,.inventory-balance small{font-size:9px;color:var(--muted)}.inventory-balance strong{grid-row:1/3;grid-column:2;font-size:18px}.account-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.account-panel{padding:22px}.account-table-wrap{overflow:auto;margin-top:16px}.account-table{width:100%;border-collapse:collapse;min-width:820px}.account-table th,.account-table td{text-align:left;padding:12px;border-bottom:1px solid #ebe7de;font-size:10px}.account-table th{color:var(--muted);font-size:9px;letter-spacing:.08em}.account-table td:first-child strong,.account-table td:first-child small{display:block}.account-table td:first-child small{color:var(--muted);margin-top:3px}.craft-permissions{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.craft-permissions label,.skip-picker label{display:flex;gap:7px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:8px;background:white;font-size:11px}.role-preview{padding:13px;border-radius:10px;background:#edf4ef}.role-preview strong,.role-preview span,.role-preview small{display:block}.role-preview strong{font-size:13px;color:var(--green)}.role-preview span{font-size:11px;margin-top:5px}.role-preview small{font-size:9px;color:var(--muted);margin-top:5px}.skip-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px}.assignment-row{grid-template-columns:80px minmax(180px,1.4fr) 1fr}.qr-card{display:grid;grid-template-columns:140px 1fr;gap:15px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fff}.qr-card canvas,.qr-card img{display:block;max-width:132px}.qr-card strong,.qr-card small{display:block}.qr-card small{font-size:10px;color:var(--muted);line-height:1.6;margin:5px 0}.qr-fallback{display:grid;place-items:center;width:132px;height:132px;background:#f2efe7;color:var(--muted);font-size:10px;text-align:center}.drawer-actions{flex-wrap:wrap}#scanVideo{width:100%;max-height:320px;border-radius:12px;background:#111}.ledger-type.采购入库{background:#dcefe4;color:var(--green)}.ledger-type.盘点{background:#e5eaf5;color:#425f91}body[data-role="worker"] .worker-toolbar label{display:none}body[data-role="worker"] .worker-toolbar{background:#203b30;color:white}body[data-role="worker"] .worker-toolbar .section-kicker{color:#efce7c}
@media(max-width:760px){.top-actions [data-open-scan]{display:inline-block;font-size:0;padding:10px}.top-actions [data-open-scan]:after{content:"▦ 扫码";font-size:12px}.inventory-actions,.account-head{align-items:flex-start;display:grid}.inventory-actions>div:last-child{justify-content:flex-start}.account-summary{grid-template-columns:1fr 1fr}.craft-permissions{grid-template-columns:1fr 1fr}.skip-picker{grid-template-columns:1fr}.qr-card{grid-template-columns:120px 1fr}.qr-card canvas,.qr-card img,.qr-fallback{width:112px!important;height:112px!important}.assignment-row{grid-template-columns:65px 1fr}.assignment-row label{grid-column:1/-1}body[data-role="worker"] .top-actions [data-open-order]{display:none!important}body[data-role="worker"] .main{padding-bottom:80px}}

/* 管理员业务选项设置 */
.settings-head{padding:22px 24px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:18px}.settings-head h2{margin:5px 0;font-size:21px}.settings-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.settings-admin-badge{padding:7px 11px;border-radius:99px;background:#e4f0e8;color:var(--green);font-size:10px;font-weight:800;white-space:nowrap}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.setting-card{padding:20px}.setting-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.setting-card-head h3{margin:5px 0 3px}.setting-card-head p{margin:0;color:var(--muted);font-size:10px}.setting-count{padding:5px 8px;border-radius:99px;background:#f0ede5;color:var(--muted);font-size:9px;font-weight:800;white-space:nowrap}.setting-list{display:grid;gap:7px}.setting-row{display:grid;grid-template-columns:62px minmax(120px,1fr) auto;gap:8px;align-items:center;padding:7px;background:#f7f5ef;border:1px solid #ebe6dc;border-radius:9px}.setting-default{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px}.setting-default input{accent-color:var(--green)}.setting-value,.setting-add input{width:100%;border:1px solid var(--line);border-radius:7px;padding:8px 9px;background:white;color:var(--ink);font:inherit;font-size:11px;outline:none}.setting-value:focus,.setting-add input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(29,106,74,.09)}.setting-value[readonly]{background:#eeeae1;color:var(--muted)}.setting-row-actions{display:flex;gap:4px}.mini-icon{border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:white;color:var(--ink);font-size:9px;cursor:pointer}.mini-icon:hover{border-color:#9eb3a7;color:var(--green)}.mini-icon.danger{color:var(--red)}.mini-icon:disabled{opacity:.35;cursor:not-allowed}.setting-add{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #ebe6dc}
@media(max-width:1050px){.settings-grid{grid-template-columns:1fr}}
@media(max-width:760px){.settings-head{display:grid;align-items:flex-start}.settings-admin-badge{justify-self:start}.setting-card{padding:15px}.setting-row{grid-template-columns:55px 1fr}.setting-row-actions{grid-column:2;justify-content:flex-end}.setting-add{grid-template-columns:1fr auto}}

