:root{font-family:Inter,Segoe UI,Microsoft YaHei,system-ui,sans-serif;color:#172033;background:#f4f7fb;font-synthesis:none;--blue:#2563eb;--blue-50:#eff6ff;--text:#172033;--muted:#667085;--border:#dfe5ef;--surface:#fff;--green:#16a34a;--yellow:#d69e00;--orange:#ea580c;--red:#dc2626;--sidebar:#17243a}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f4f7fb}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(37,99,235,.18);outline-offset:1px}button:disabled{opacity:.5;cursor:not-allowed}.app-shell{min-height:100vh;display:grid;grid-template-columns:224px minmax(0,1fr);transition:grid-template-columns .2s ease}.app-shell.sidebar-collapsed{grid-template-columns:72px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:var(--sidebar);color:#c9d3e3;padding:0 12px 14px;display:flex;flex-direction:column;z-index:20;overflow-y:auto}.brand{height:66px;display:flex;align-items:center;gap:10px;padding:0 8px;border-bottom:1px solid rgba(255,255,255,.09)}.brand>span{width:36px;height:36px;border-radius:8px;background:#2f6fe8;display:grid;place-items:center;flex:0 0 auto}.brand svg{width:23px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.brand div{display:flex;flex-direction:column;min-width:0}.brand b{font-size:15px;color:#fff;white-space:nowrap}.brand small{font-size:11px;color:#7f91aa;margin-top:2px}.close-mobile{display:none;margin-left:auto;border:0;background:transparent;color:#fff;padding:8px}.sidebar nav{padding:10px 0;flex:1}.nav-group{margin-bottom:10px}.nav-group>span{display:block;padding:8px 10px 5px;font-size:10px;color:#708198;letter-spacing:.08em}.nav-group button{position:relative;width:100%;height:37px;border:0;border-radius:6px;background:transparent;color:#b8c4d6;display:flex;align-items:center;gap:10px;padding:0 10px;margin:2px 0;text-align:left}.nav-group button:hover{background:#ffffff0f;color:#fff}.nav-group button.active{background:#2a4f89;color:#fff;box-shadow:inset 3px 0 #68a2ff}.nav-group button em{font-style:normal;font-size:13px;white-space:nowrap}.nav-group button i{font-style:normal;margin-left:auto;background:#d92d20;color:#fff;border-radius:10px;min-width:18px;height:18px;line-height:18px;text-align:center;font-size:10px}.worker-link{border:1px solid rgba(255,255,255,.11);background:#21314a;color:#c9d3e3;border-radius:8px;min-height:52px;display:flex;align-items:center;gap:10px;padding:9px;margin-bottom:8px;text-align:left}.worker-link span{display:flex;flex-direction:column}.worker-link b{color:#fff;font-size:12px}.worker-link small{font-size:10px;color:#8495ad;margin-top:2px}.safety-badge{height:34px;background:#16a34a1f;color:#6ee7a1;border:1px solid rgba(110,231,161,.14);border-radius:6px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px;white-space:nowrap}.workspace{min-width:0;display:flex;min-height:100vh;flex-direction:column}.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.topbar>div,.top-actions{display:flex;align-items:center;gap:12px}.collapse-button,.menu-mobile,.notification,.icon-button{border:0;background:transparent;border-radius:6px;display:grid;place-items:center}.collapse-button{width:34px;height:34px;color:#697386}.collapse-button:hover,.notification:hover,.icon-button:hover{background:#f0f4f9}.menu-mobile{display:none;width:36px;height:36px}.connection{display:flex;align-items:center;gap:6px;color:#627083;font-size:11px;padding-left:4px}.connection i{width:7px;height:7px;border-radius:50%;background:#9ca3af}.connection.online i{background:var(--green);box-shadow:0 0 0 3px #dcfce7}.date{font-size:12px;color:#687588}.notification{position:relative;width:36px;height:36px;color:#475467}.notification i{position:absolute;right:2px;top:0;min-width:17px;height:17px;line-height:17px;background:#d92d20;border:2px solid white;border-radius:10px;color:#fff;font-size:9px;font-style:normal;text-align:center}.user-select{height:38px;border-left:1px solid var(--border);display:flex;align-items:center;gap:8px;padding-left:14px}.avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e6efff;color:#2458b9;font-size:12px;font-weight:700}.user-select select{appearance:none;border:0;background:transparent;font-size:12px;padding-right:2px;max-width:150px}.page-content{flex:1;padding:24px;max-width:1600px;width:100%;margin:auto}.page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.page-title h1{font-size:23px;line-height:1.25;margin:0 0 6px;letter-spacing:-.02em}.page-title p{font-size:12px;color:var(--muted);margin:0}.button{min-height:36px;border-radius:7px;border:1px solid transparent;padding:0 13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:600;font-size:12px;white-space:nowrap}.button-primary{background:var(--blue);color:#fff;box-shadow:0 1px 2px #2563eb29}.button-primary:hover{background:#1d4ed8}.button-secondary{background:#fff;color:#344054;border-color:#ccd5e1}.button-secondary:hover{background:#f8fafc}.button-danger{background:#fff1f0;color:#c43226;border-color:#f5c7c3}.button-ghost{background:transparent;color:#475467}.button-ghost:hover{background:#f2f4f7}.metrics-strip{background:#fff;border:1px solid var(--border);border-radius:9px;display:grid;grid-template-columns:repeat(6,1fr);margin-bottom:16px;overflow:hidden}.metric{position:relative;height:76px;background:#fff;border:0;border-right:1px solid var(--border);padding:0 15px;display:flex;align-items:center;gap:11px;text-align:left}.metric:last-child{border:0}.metric:hover{background:#f9fbfe}.metric>span:not(.metric-icon){display:flex;flex-direction:column;gap:2px}.metric small{font-size:11px;color:#6a7688}.metric strong{font-size:22px;color:#172033;letter-spacing:-.03em}.metric>svg{margin-left:auto;color:#aeb7c5}.metric-icon{width:34px;height:34px;border-radius:7px;display:grid;place-items:center;background:#eff6ff;color:#2563eb}.metric-yellow .metric-icon{background:#fff8d8;color:#b58100}.metric-amber .metric-icon{background:#fff5d9;color:#ca8a04}.metric-orange .metric-icon{background:#fff0e8;color:#ea580c}.metric-red .metric-icon{background:#ffeded;color:#dc2626}.metric-violet .metric-icon{background:#f3efff;color:#7c3aed}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px}.main-panel,.risk-rail,.data-panel,.filter-panel,.board-header,.simple-surface{background:#fff;border:1px solid var(--border);border-radius:9px}.filter-rail{min-height:58px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:9px;padding:10px 12px}.search-input{height:34px;min-width:210px;display:flex;align-items:center;gap:7px;border:1px solid #ccd5e1;background:#fff;border-radius:6px;padding:0 9px;color:#8894a5}.search-input:focus-within{border-color:#73a3f8;box-shadow:0 0 0 3px #eef4ff}.search-input input{border:0;outline:0;min-width:0;flex:1;font-size:12px;background:transparent}.search-input button{border:0;background:transparent;padding:2px;color:#667085}.select-wrap{height:34px;min-width:122px;position:relative}.select-wrap select{width:100%;height:100%;appearance:none;border:1px solid #ccd5e1;border-radius:6px;background:#fff;padding:0 28px 0 10px;font-size:12px}.select-wrap svg{position:absolute;right:9px;top:10px;pointer-events:none;color:#7e8998}.link-button{border:0;background:transparent;color:#2563eb;font-size:12px;padding:8px}.filter-count{margin-left:auto;color:#738094;font-size:11px;white-space:nowrap}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;white-space:nowrap}.table-wrap th{height:40px;padding:0 12px;background:#f8fafc;border-bottom:1px solid var(--border);color:#667085;font-size:10px;font-weight:600;text-align:left;letter-spacing:.02em}.table-wrap td{height:56px;padding:8px 12px;border-bottom:1px solid #edf0f5;font-size:12px;color:#364152}.table-wrap tr:last-child td{border-bottom:0}.table-wrap tbody tr:hover{background:#f8fbff}.table-wrap tbody tr.selected{background:#f2f7ff;box-shadow:inset 3px 0 var(--blue)}.table-wrap td small,.table-wrap td b{display:block}.table-wrap td small{font-size:10px;color:#8a95a5;margin-top:4px}.table-wrap td b{font-size:12px;color:#263246}.order-link{border:0;background:transparent;color:#1f5dcc;font-weight:650;padding:0}.process-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#3b82f6;margin-right:7px}.progress-cell{display:flex;align-items:center;gap:8px;min-width:110px}.progress-track{height:6px;flex:1;background:#e9edf3;border-radius:5px;overflow:hidden}.progress-track span{display:block;height:100%;background:#3976de;border-radius:5px}.progress-cell b{font-size:10px!important;min-width:28px;color:#354052!important}.status{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600}.status i{width:7px;height:7px;border-radius:50%;background:currentColor}.status-normal,.status-completed{color:var(--green)}.status-attention{color:#b78200}.status-medium_risk{color:#d97706}.status-high_risk{color:var(--orange)}.status-overdue{color:var(--red)}.table-footer{height:47px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 12px;color:#8590a1;font-size:10px}.table-footer div{display:flex;gap:4px}.table-footer button{height:26px;border:1px solid #d5dce6;background:#fff;border-radius:5px;font-size:10px;padding:0 8px}.table-footer button.page-current{background:#2563eb;color:#fff;border-color:#2563eb}.risk-rail{padding:15px;align-self:start}.rail-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.rail-heading>div{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700}.live-dot{width:8px;height:8px;border-radius:50%;background:#dc2626;box-shadow:0 0 0 4px #fee2e2}.rail-heading button{border:0;background:transparent;color:#2563eb;font-size:10px}.selected-summary{padding:13px;background:#f7f9fc;border:1px solid #e3e8f0;border-radius:7px}.selected-summary>div:first-child{display:flex;justify-content:space-between}.selected-summary b{font-size:12px}.selected-summary h3{font-size:12px;margin:9px 0 12px;font-weight:500;color:#5c6879}.reason-list{padding:12px 0}.reason{display:grid;grid-template-columns:20px 1fr;gap:8px;margin:8px 0}.reason>span{width:20px;height:20px;border-radius:50%;background:#fff0e8;color:#c64b12;display:grid;place-items:center;font-size:10px;font-weight:700}.reason p{margin:2px 0;font-size:11px;line-height:1.55;color:#465367}.empty-note{display:flex;align-items:center;gap:8px;color:#168241;font-size:11px}.rail-facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;margin:0 0 12px;padding:12px 0}.rail-facts div{padding:0 8px;border-right:1px solid #e5e9f0}.rail-facts div:first-child{padding-left:0}.rail-facts div:last-child{border:0}.rail-facts dt{color:#8290a3;font-size:9px}.rail-facts dd{margin:5px 0 0;font-size:10px;font-weight:700}.risk-rail>.button{width:100%}.mini-chart{margin-top:18px;padding-top:15px;border-top:1px solid var(--border)}.chart-title{display:flex;align-items:flex-start;justify-content:space-between}.chart-title>div{display:flex;flex-direction:column;gap:2px}.chart-title b{font-size:11px}.chart-title span{font-size:9px;color:#8a95a5}.chart-title strong{font-size:10px;color:#168241;background:#eafaf0;padding:3px 5px;border-radius:4px}.mini-chart svg{width:100%;height:88px;overflow:visible}.chart-line{fill:none;stroke:#3478e5;stroke-width:2;stroke-linejoin:round}.chart-area{fill:url(#none);fill:#eaf2ff}.chart-axis{display:flex;justify-content:space-between;color:#9aa4b3;font-size:8px}.filter-panel{min-height:60px;display:flex;align-items:center;gap:10px;padding:11px;margin-bottom:14px}.filter-panel.compact{min-height:56px}.filter-panel .search-input{min-width:270px}.multi-select{display:flex;flex-direction:column;gap:5px}.multi-select>span{font-size:9px;color:#7a8798}.multi-select>div{display:flex;gap:4px}.multi-select button{height:24px;border:1px solid #d6dde7;background:#fff;border-radius:5px;font-size:9px;padding:0 7px;display:flex;gap:3px;align-items:center}.multi-select button.active{background:#eff6ff;border-color:#87aff2;color:#1e5fc6}.inline-notice,.success-toast{border:1px solid #afe2c2;background:#f0fbf4;color:#18713a;border-radius:7px;padding:10px 12px;display:flex;align-items:center;gap:8px;margin-bottom:13px;font-size:11px}.inline-notice button{margin-left:auto;border:0;background:transparent;color:#18713a}.panel-toolbar{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--border);font-size:12px}.panel-toolbar>div{display:flex;gap:6px}.panel-toolbar b{margin-left:5px;color:#2563eb}.level{display:grid;place-items:center;width:24px;height:24px;border-radius:5px;font-weight:700}.level-a{color:#1d4ed8;background:#e8f0ff}.level-b{color:#7c3aed;background:#f1ebff}.plain-state{display:inline-flex;align-items:center;border-radius:4px;padding:3px 7px;font-size:10px;font-weight:600}.plain-state.active{background:#eaf8ef;color:#18783c}.plain-state.inactive{background:#f0f2f5;color:#717b8b}.plain-state.attention{background:#fff6dd;color:#9a6700}.icon-button{width:30px;height:30px;color:#748094}.alert-summary{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--border);border-radius:9px;margin-bottom:14px}.alert-summary button{height:67px;border:0;border-right:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;gap:15px}.alert-summary button:last-child{border:0}.alert-summary button.active{background:#f4f8ff;box-shadow:inset 0 -3px #2563eb}.alert-summary strong{font-size:22px}.alert-list{display:flex;flex-direction:column;gap:8px}.alert-row{position:relative;min-height:78px;background:#fff;border:1px solid var(--border);border-radius:8px;display:grid;grid-template-columns:220px 155px minmax(210px,1fr) 96px 115px 32px;gap:14px;align-items:center;padding:10px 10px 10px 17px;overflow:hidden}.risk-bar{position:absolute;left:0;top:0;bottom:0;width:4px;background:#e1a800}.alert-high_risk .risk-bar{background:var(--orange)}.alert-overdue .risk-bar{background:var(--red)}.alert-medium_risk .risk-bar{background:#d97706}.alert-order{display:grid;grid-template-columns:auto 1fr;gap:5px 8px}.alert-order .status{grid-column:1/3}.alert-order button{border:0;background:transparent;color:#1e5dcc;font-size:11px;text-align:left;padding:0}.alert-order>span:last-child{font-size:10px;color:#758195}.alert-progress>span,.alert-due span{display:block;color:#8590a1;font-size:9px;margin-top:6px}.alert-reasons p{margin:3px 0;font-size:10px;line-height:1.4;color:#485568}.alert-reasons p:before{content:"·";color:#ea580c;font-weight:900;margin-right:5px}.alert-due b{font-size:11px}.review-layout{min-height:560px;background:#fff;border:1px solid var(--border);border-radius:9px;display:grid;grid-template-columns:290px 1fr;overflow:hidden}.review-queue{border-right:1px solid var(--border);background:#f8fafc;padding:12px}.queue-heading{height:38px;font-size:12px;color:#5d6878}.queue-heading b{color:#2563eb;margin-left:5px}.review-card{width:100%;border:1px solid var(--border);background:#fff;border-radius:7px;padding:12px;text-align:left;display:flex;flex-direction:column;gap:5px}.review-card.active{border-color:#8bb1f4;box-shadow:inset 3px 0 #2563eb}.review-card span{font-size:10px;color:#2563eb}.review-card b{font-size:12px}.review-card small{font-size:9px;color:#8792a2}.review-detail{padding:22px;max-width:920px}.detail-heading{display:flex;justify-content:space-between;align-items:center}.detail-heading span{font-size:10px;color:#8290a3}.detail-heading h2{font-size:18px;margin:6px 0 0}.detail-facts{display:grid;grid-template-columns:2fr repeat(3,1fr);border:1px solid var(--border);border-radius:7px;margin:20px 0}.detail-facts>div{padding:13px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:5px}.detail-facts>div:last-child{border:0}.detail-facts span,.quantity-review span{font-size:10px;color:#7b8798}.detail-facts b{font-size:11px}.quantity-review{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.quantity-review>div{padding:17px;border:1px solid var(--border);border-radius:7px;background:#fbfcfe}.quantity-review>div.qualified{background:#f2fbf5;border-color:#bae5c8}.quantity-review strong{display:inline-block;font-size:26px;margin:7px 4px 0 0}.quantity-review small{font-size:10px;color:#7d8898}.exception-box{background:#fff9eb;border:1px solid #f0dca0;border-radius:7px;padding:12px;margin-top:12px}.exception-box span{font-size:9px;color:#987000}.exception-box p{font-size:11px;margin:6px 0 0}.review-checks{margin:16px 0}.review-checks p{display:flex;align-items:center;gap:7px;font-size:10px;color:#455267}.review-checks svg{color:#16a34a}.detail-actions{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--border);padding-top:16px}.board-header{min-height:75px;padding:13px 16px;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.board-header>div:first-child{display:grid;grid-template-columns:auto auto;gap:3px 10px}.board-header span,.board-header small{font-size:10px;color:#7d8999}.board-header b{font-size:13px}.board-header small{grid-column:2}.board-header>.progress-cell{width:260px}.process-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.process-card{position:relative;background:#fff;border:1px solid var(--border);border-top:3px solid #b9c2ce;border-radius:8px;padding:15px;min-height:165px}.process-card.completed{border-top-color:#16a34a}.process-card.in_progress{border-top-color:#2563eb}.process-index{position:absolute;right:12px;top:10px;font-size:26px;font-weight:800;color:#edf0f4}.process-status{font-size:9px;color:#667085}.process-card h3{font-size:15px;margin:10px 0 14px}.process-card dl{display:grid;grid-template-columns:1fr 1fr;margin:0 0 14px}.process-card dt{font-size:9px;color:#8a95a5}.process-card dd{font-size:11px;font-weight:600;margin:4px 0}.flow-arrow{position:absolute;right:-20px;top:72px;z-index:2;color:#91a0b4}.wage-summary{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--border);border-radius:9px;margin-bottom:14px}.wage-summary>div{height:85px;border-right:1px solid var(--border);display:grid;grid-template-columns:35px 1fr;align-content:center;padding:0 18px}.wage-summary>div:last-child{border:0}.wage-summary svg{grid-row:1/3;color:#2563eb}.wage-summary span{font-size:10px;color:#7d8998}.wage-summary strong{font-size:20px;margin-top:3px}.simple-surface{min-height:430px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.simple-icon{width:60px;height:60px;display:grid;place-items:center;border-radius:12px;background:#edf4ff;color:#2563eb}.simple-surface h2{font-size:18px;margin:16px 0 8px}.simple-surface p{max-width:460px;margin:0 0 18px;color:#748094;font-size:11px;line-height:1.7}.rule-editor{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:14px}.rule-editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.rule-editor-head b{font-size:14px}.rule-editor-meta{font-size:11px;color:#667085}.rule-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rule-card{border:1px solid var(--border);border-radius:8px;padding:12px;background:#fbfcfe;display:flex;flex-direction:column;gap:9px;min-width:0}.rule-card h4{margin:0;font-size:12px;color:#263246;display:flex;align-items:center;gap:6px;border-bottom:1px solid #e8edf4;padding-bottom:7px}.rule-card-span{grid-column:1/-1}.rule-field{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#475467;min-width:0}.rule-field input,.rule-field select,.rule-field textarea{height:34px;border:1px solid #ccd5e1;border-radius:6px;padding:0 9px;font-size:12px;background:#fff;width:100%;box-sizing:border-box}.rule-field textarea{height:auto;padding:7px 9px;resize:vertical}.rule-inline{display:flex;gap:6px;align-items:center;min-width:0}.rule-inline input,.rule-inline select{flex:1;min-width:0}.rule-check{display:flex;align-items:center;gap:7px;font-size:12px;color:#364152;cursor:pointer}.rule-check input{width:15px;height:15px;flex:0 0 auto;accent-color:#2563eb}.rule-checks{display:flex;gap:18px;flex-wrap:wrap}.rule-hint{font-size:11px;color:#7a8698;line-height:1.6;margin:0}.rule-field-error{font-size:11px;color:#b91c1c}.rule-recipient-status{display:flex;flex-direction:column;gap:3px;border-radius:7px;padding:8px 10px;font-size:11px;line-height:1.5;border:1px solid}.rule-recipient-status b{font-size:11px}.rule-recipient-status span{color:#4b5565}.rule-status-ok{background:#f0fdf4;border-color:#bbe7cc}.rule-status-ok b{color:#15803d}.rule-status-warn{background:#fffbeb;border-color:#f2e2ac}.rule-status-warn b{color:#b45309}.rule-status-blocked{background:#fef2f2;border-color:#f3c6c6}.rule-status-blocked b{color:#b91c1c}.rule-summary{background:#f0f7ff;border:1px solid #bcd7f5;border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.7;color:#1e3a64;margin-top:12px}.rule-actions{display:flex;gap:8px;justify-content:flex-end;border-top:1px solid var(--border);padding-top:12px;margin-top:10px;flex-wrap:wrap}.rule-stale{color:#b45309;font-size:12px}@media(max-width:840px){.rule-form-grid{grid-template-columns:1fr}.rule-card-span{grid-column:auto}.rule-actions{justify-content:stretch}.rule-actions>*{flex:1}}.uat-top-banner{flex:0 0 auto;margin:0;border-radius:0;border-width:0 0 1px;justify-content:center;min-height:34px;padding:6px 16px;font-size:12px}.app-footer{min-height:44px;border-top:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;color:#8792a2;font-size:9px}.mobile-app{min-height:100vh;background:#f4f7fb;color:#172033;max-width:480px;margin:0 auto;box-shadow:0 0 40px #1d2b441f;position:relative;padding-bottom:72px}.mobile-app.plain{padding-bottom:0;background:#fff}.phone-status{height:25px;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 17px;color:#687588;font-size:9px}.mobile-header{height:62px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;position:sticky;top:0;z-index:6}.mobile-header>button{border:0;background:transparent;padding:9px}.mobile-brand{display:flex;align-items:center;gap:10px}.mobile-brand>span{width:38px;height:38px;border-radius:9px;background:#2563eb;color:#fff;display:grid;place-items:center}.mobile-brand svg{width:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mobile-brand div{display:flex;flex-direction:column}.mobile-brand b{font-size:14px}.mobile-brand small{font-size:9px;color:#8490a0;margin-top:2px}.mobile-brand.compact>span{width:34px;height:34px}.mobile-app main{min-height:calc(100vh - 160px)}.mobile-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:min(480px,100%);height:67px;background:#fff;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(4,1fr);z-index:8;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav button{border:0;background:transparent;color:#8792a2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:9px}.mobile-nav button.active{color:#2563eb}.mobile-content{padding:14px 14px 92px}.mobile-login{padding:25px 22px;min-height:calc(100vh - 25px);display:flex;flex-direction:column}.mobile-login .mobile-brand{margin-bottom:70px}.login-copy h1{font-size:27px;margin:0 0 8px;letter-spacing:-.04em}.login-copy p{font-size:12px;color:#7a8698;margin:0 0 30px}.mobile-login label{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.mobile-login label>span{font-size:11px;color:#5e6a7c}.mobile-login input{height:48px;border:1px solid #cfd7e2;border-radius:8px;padding:0 13px;font-size:15px}.mobile-login>.button{height:48px;margin-top:8px}.code-input{position:relative}.code-input input{width:100%}.code-input button{position:absolute;right:8px;top:8px;height:32px;border:0;background:#f2f5f9;color:#7f8a9a;border-radius:5px;font-size:9px}.mock-callout{display:flex;gap:9px;background:#eef6ff;border:1px solid #cbe0ff;border-radius:8px;padding:11px;margin-top:18px;color:#2563eb}.mock-callout div{display:flex;flex-direction:column}.mock-callout b{font-size:10px}.mock-callout span{font-size:9px;color:#60738f;margin-top:3px}.mobile-greeting{padding:12px 2px 14px}.mobile-greeting span{font-size:11px;color:#657286}.mobile-greeting h1{font-size:21px;margin:5px 0;letter-spacing:-.03em}.scan-card{width:100%;min-height:94px;border:0;border-radius:11px;background:#2563eb;color:#fff;display:grid;grid-template-columns:50px 1fr 20px;align-items:center;text-align:left;padding:13px 14px;box-shadow:0 8px 20px #2563eb38}.scan-icon{width:48px;height:48px;border-radius:9px;background:#ffffff29;display:grid;place-items:center}.scan-card div{display:flex;flex-direction:column;gap:5px;padding-left:10px}.scan-card b{font-size:15px}.scan-card small{font-size:9px;color:#dbeafe}.manual-code{width:100%;border:0;background:transparent;color:#2563eb;font-size:10px;padding:12px}.today-output,.mobile-list{background:#fff;border:1px solid var(--border);border-radius:10px;margin-top:10px;padding:13px}.mobile-section-title{display:flex;justify-content:space-between;align-items:center}.mobile-section-title b{font-size:12px}.mobile-section-title button{border:0;background:transparent;color:#2563eb;font-size:9px}.mobile-section-title>span{font-size:9px;color:#8691a1}.output-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:14px}.output-stats div{display:flex;flex-direction:column;border-right:1px solid var(--border);padding:0 9px}.output-stats div:first-child{padding-left:0}.output-stats div:last-child{border:0}.output-stats strong{font-size:21px}.output-stats span{font-size:8px;color:#8290a3;margin-top:4px}.mobile-list>button{position:relative;width:100%;min-height:61px;border:0;border-top:1px solid #edf0f4;background:#fff;display:grid;grid-template-columns:3px 1fr auto 18px;align-items:center;text-align:left;gap:9px;padding:9px 0}.mobile-list>button:nth-child(2){margin-top:8px}.list-rail{height:34px;border-radius:3px;background:#2563eb}.list-rail.yellow{background:#d69e00}.mobile-list>button div{display:flex;flex-direction:column;gap:4px}.mobile-list>button b{font-size:11px}.mobile-list>button small{font-size:8px;color:#8591a1}.mobile-list>button>span:nth-last-of-type(1){font-size:8px;color:#2563eb}.supervisor-entry{width:100%;min-height:60px;background:#fff;border:1px solid var(--border);border-radius:10px;margin-top:10px;display:grid;grid-template-columns:28px 1fr 18px;align-items:center;text-align:left;padding:10px 13px;color:#526176}.supervisor-entry span{display:flex;flex-direction:column;gap:3px}.supervisor-entry b{font-size:11px;color:#263246}.supervisor-entry small{font-size:8px;color:#8792a2}.mobile-back{height:43px;display:grid;grid-template-columns:38px 1fr 38px;align-items:center;margin:-7px 0 8px}.mobile-back button{width:36px;height:36px;border:0;background:transparent;display:grid;place-items:center}.mobile-back b{text-align:center;font-size:13px}.task-hero{background:#20324e;color:#fff;border-radius:11px;padding:17px;position:relative}.task-hero .task-state{display:inline-flex;background:#69d89624;color:#7ce1a6;border:1px solid rgba(124,225,166,.25);border-radius:4px;font-size:8px;padding:3px 6px}.task-hero h1{font-size:25px;margin:13px 0 5px}.task-hero p{font-size:11px;color:#c0cbdb;margin:0}.task-hero>span:last-child{display:block;margin-top:18px;font-size:9px;color:#91a1b8}.task-customer{height:52px;background:#fff;border:1px solid var(--border);border-radius:8px;margin-top:10px;display:flex;align-items:center;justify-content:space-between;padding:0 13px}.task-customer span{font-size:10px;color:#7c899a}.task-customer b{font-size:11px}.task-quantities{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--border);border-radius:9px;margin-top:10px;overflow:hidden}.task-quantities>div{min-height:86px;padding:13px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.task-quantities>div:nth-child(2n){border-right:0}.task-quantities>div:nth-last-child(-n+2){border-bottom:0}.task-quantities>div.accent{background:#edf5ff}.task-quantities span{display:block;font-size:9px;color:#7f8b9c}.task-quantities b{font-size:25px;display:inline-block;margin-top:8px}.task-quantities small{font-size:9px;color:#7f8b9c;margin-left:4px}.task-notice,.report-rule{display:flex;gap:9px;background:#effaf3;color:#18783d;border:1px solid #bde4ca;border-radius:8px;padding:11px;margin-top:10px}.task-notice div{display:flex;flex-direction:column;gap:3px}.task-notice b{font-size:9px}.task-notice span,.report-rule span{font-size:8px;color:#5c7d68;line-height:1.5}.mobile-sticky-action{position:fixed;bottom:67px;left:50%;transform:translate(-50%);width:min(480px,100%);background:#fff;border-top:1px solid var(--border);padding:10px 14px;z-index:7}.mobile-sticky-action .button{width:100%;height:46px}.mobile-sticky-action.split{display:grid;grid-template-columns:1fr 2fr;gap:8px}.report-context{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:9px;padding:13px}.report-context>span{font-size:9px;color:#2563eb}.report-context b{font-size:13px;margin:5px 0}.report-context small{font-size:9px;color:#8490a1}.total-input{text-align:center;padding:22px 0 15px}.total-input>span{display:block;font-size:10px;color:#718094}.total-input strong{font-size:42px;letter-spacing:-.04em}.total-input small{font-size:11px;color:#8290a3;margin-left:5px}.quantity-form{background:#fff;border:1px solid var(--border);border-radius:9px;padding:0 13px}.quantity-form>label{min-height:63px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf0f4}.quantity-form>label:last-child{border:0}.quantity-form label>span{display:flex;align-items:center;gap:7px;font-size:11px}.quantity-form i{width:7px;height:7px;border-radius:50%;background:#16a34a}.quantity-form i.red{background:#dc2626}.quantity-form i.orange{background:#ea580c}.quantity-form label>div{display:flex;align-items:center;gap:4px}.quantity-form button{width:32px;height:32px;border:1px solid #d6dde7;background:#f8fafc;border-radius:6px}.quantity-form input{width:48px;height:34px;text-align:center;border:1px solid #cfd8e4;border-radius:6px;font-size:15px;font-weight:700}.quantity-form small{font-size:9px;color:#8792a2}.note-field{display:flex;flex-direction:column;gap:7px;margin-top:12px}.note-field>span{font-size:10px}.note-field>span small{color:#8a95a5}.note-field textarea{height:75px;resize:none;border:1px solid #ced7e2;border-radius:8px;padding:10px;font-size:11px}.report-rule{background:#eef6ff;color:#2563eb;border-color:#c9dfff}.report-rule span{color:#5b7190}.success-page{text-align:center;padding-top:70px}.success-mark{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:#e9f9ef;color:#16a34a;margin:auto}.success-page h1{font-size:23px;margin:18px 0 7px}.success-page>p{font-size:10px;line-height:1.6;color:#798698;max-width:300px;margin:0 auto 20px}.success-page>div{background:#fff;border:1px solid var(--border);border-radius:9px;display:grid;grid-template-columns:1fr 1fr;text-align:left;padding:12px;margin-bottom:14px;gap:11px}.success-page>div span{font-size:9px;color:#8090a2}.success-page>div b{text-align:right;font-size:10px}.success-page b.waiting{color:#b77900}.success-page>.button{width:100%;height:44px;margin-top:8px}.history-summary{display:grid;grid-template-columns:repeat(3,1fr);background:#20324e;color:#fff;border-radius:10px;padding:17px 10px}.history-summary div{display:flex;flex-direction:column;align-items:center;border-right:1px solid rgba(255,255,255,.15)}.history-summary div:last-child{border:0}.history-summary strong{font-size:21px}.history-summary span{font-size:8px;color:#b8c5d7;margin-top:4px}.history-list{margin-top:10px;display:flex;flex-direction:column;gap:8px}.history-list article{position:relative;background:#fff;border:1px solid var(--border);border-radius:9px;padding:13px;display:flex;flex-direction:column;gap:4px}.history-state{position:absolute;right:11px;top:11px;font-size:8px;padding:3px 6px;border-radius:4px}.history-state.waiting{background:#fff6dd;color:#996800}.history-state.approved{background:#eaf8ef;color:#18783c}.history-list b{font-size:11px}.history-list small{font-size:8px;color:#8290a2}.history-list article>div{display:flex;justify-content:space-between;margin-top:8px;border-top:1px solid #edf0f4;padding-top:8px}.history-list article>div span{font-size:12px;font-weight:700}.history-list time{font-size:8px;color:#8994a4}.supervisor-order{background:#20324e;color:#fff;border-radius:10px;padding:15px}.supervisor-order>span{font-size:8px;color:#f7c95a}.supervisor-order h2{font-size:17px;margin:8px 0 4px}.supervisor-order p{font-size:9px;color:#b8c5d7;margin:0}.supervisor-person{height:60px;background:#fff;border:1px solid var(--border);border-radius:9px;margin-top:10px;padding:10px;display:grid;grid-template-columns:36px 1fr auto;align-items:center}.supervisor-person div{display:flex;flex-direction:column;gap:3px}.supervisor-person b{font-size:11px}.supervisor-person small,.supervisor-person time{font-size:8px;color:#8792a2}.supervisor-numbers{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--border);border-radius:9px;margin-top:10px}.supervisor-numbers div{padding:14px;display:flex;flex-direction:column;border-right:1px solid var(--border)}.supervisor-numbers div:last-child{border:0}.supervisor-numbers span{font-size:8px;color:#8490a1}.supervisor-numbers b{font-size:24px;margin-top:5px}.reviewed-mobile{text-align:center;padding-top:80px}.reviewed-mobile svg{color:#16a34a}.reviewed-mobile h2{font-size:21px}.reviewed-mobile p{font-size:10px;color:#7e8a9a;line-height:1.6;margin-bottom:20px}@media(max-width:1180px){.metrics-strip{grid-template-columns:repeat(3,1fr)}.metric:nth-child(3){border-right:0}.metric:nth-child(-n+3){border-bottom:1px solid var(--border)}.dashboard-grid{grid-template-columns:1fr}.risk-rail{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.risk-rail .rail-heading{grid-column:1/3}.alert-row{grid-template-columns:200px 140px 1fr 90px}.alert-row>.select-wrap,.alert-row>.icon-button{display:none}.process-flow{grid-template-columns:repeat(2,1fr)}}@media(max-width:840px){.uat-banner-long{display:none}.uat-top-banner{font-size:11px;padding:4px 10px;flex-wrap:wrap;gap:4px 8px}.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{position:fixed;left:-240px;width:224px;transition:left .2s;box-shadow:8px 0 30px #0d1b303d}.sidebar.mobile-open{left:0}.close-mobile,.menu-mobile{display:grid}.collapse-button{display:none}.page-content{padding:17px}.date{display:none}.metrics-strip{grid-template-columns:repeat(2,1fr)}.metric:nth-child(n){border-bottom:1px solid var(--border);border-right:1px solid var(--border)}.metric:nth-child(2n){border-right:0}.metric:nth-last-child(-n+2){border-bottom:0}.filter-rail,.filter-panel{flex-wrap:wrap}.filter-count{margin-left:0}.dashboard-grid{display:block}.risk-rail{margin-top:14px;display:block}.risk-rail .rail-heading{display:flex}.alert-row{grid-template-columns:1fr 120px}.alert-progress,.alert-due{display:none}.review-layout{grid-template-columns:1fr}.review-queue{border:0;border-bottom:1px solid var(--border)}.process-flow{grid-template-columns:1fr}.flow-arrow{display:none}.wage-summary{grid-template-columns:1fr}.wage-summary>div{border-right:0;border-bottom:1px solid var(--border)}.app-footer{display:none}}@media(max-width:560px){.page-content{padding:14px}.topbar{padding:0 12px}.connection,.user-select .avatar{display:none}.user-select{padding-left:6px}.page-title{align-items:stretch;flex-direction:column}.page-title .button{align-self:flex-start}.metrics-strip{grid-template-columns:1fr 1fr}.metric{height:69px;padding:0 10px}.metric-icon{width:31px;height:31px}.metric strong{font-size:19px}.filter-rail .search-input,.filter-panel .search-input{min-width:100%;width:100%}.filter-rail .select-wrap,.filter-panel .select-wrap{flex:1}.order-table-wrap table{min-width:790px}.risk-rail{padding:12px}.alert-summary{grid-template-columns:repeat(2,1fr)}.alert-summary button:nth-child(2){border-right:0}.alert-summary button:nth-child(-n+2){border-bottom:1px solid var(--border)}.alert-row{grid-template-columns:1fr;padding:12px 14px}.alert-progress,.alert-due,.alert-row>.select-wrap{display:block}.review-detail{padding:14px}.detail-facts,.quantity-review{grid-template-columns:1fr 1fr}.detail-facts>div{border-bottom:1px solid var(--border)}.board-header{align-items:flex-start;gap:15px;flex-direction:column}.board-header>.progress-cell{width:100%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.fullscreen-state{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;color:#475467;padding:20px}.fullscreen-state svg{color:#2563eb}.fullscreen-state h1{font-size:19px;margin:0;color:#172033}.fullscreen-state p{font-size:12px;margin:0}.loading-dot{font-size:11px;color:#8a95a5}.inline-error{border:1px solid #f5c7c3;background:#fff1f0;color:#c43226;border-radius:7px;padding:9px 12px;display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:11px}.inline-error button{margin-left:auto;border:1px solid #f0b6b0;background:#fff;color:#c43226;border-radius:5px;font-size:10px;padding:4px 9px}.table-state{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#77839a;font-size:12px}.table-state.error{color:#c43226}.date-filter{display:flex;align-items:center;gap:5px;font-size:10px;color:#7a8798}.date-filter input{height:32px;border:1px solid #ccd5e1;border-radius:6px;padding:0 6px;font-size:11px;color:#364152;background:#fff}@media(max-width:840px){.date-filter{flex-wrap:wrap}.filter-panel .multi-select{width:100%}}.md-page{min-width:0}.md-readonly{font-size:10px;color:#8a95a5;white-space:nowrap}.md-actions{display:flex;gap:6px;white-space:nowrap}.md-overlay{position:fixed;inset:0;background:#0f172a73;z-index:50;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:24px 12px}.md-modal{background:#fff;border-radius:10px;width:100%;max-width:640px;min-width:0;box-shadow:0 18px 50px #020c1b47}.md-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.md-head h2{font-size:15px;margin:0}.md-body{padding:16px}.md-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.md-field{display:flex;flex-direction:column;gap:5px;min-width:0}.md-field>span{font-size:10px;color:#667085;display:flex;gap:8px}.md-field>span em{color:#d92d20;font-style:normal}.md-field input{height:36px;border:1px solid #ccd5e1;border-radius:6px;padding:0 10px;font-size:12px;background:#fff;color:#172033;min-width:0}.md-field input:disabled{background:#f3f5f8;color:#8a95a5}.md-field .select-wrap{min-width:0}.md-banner{display:flex;align-items:flex-start;gap:8px;border-radius:7px;padding:9px 11px;margin-bottom:12px;font-size:11px}.md-banner.conflict{background:#fff7ed;border:1px solid #fdd8a5;color:#b45309}.md-banner.duplicate{background:#fff1f0;border:1px solid #f5c7c3;color:#c43226}.md-banner.validation{background:#fff8e6;border:1px solid #f0dca0;color:#9a6700}.md-banner.forbidden{background:#f4f4f5;border:1px solid #d7d9de;color:#5b6068}.md-banner.server,.md-banner.network{background:#f0f9ff;border:1px solid #bde0f7;color:#0369a1}.md-banner small{display:block;margin-top:2px}.md-banner span{display:flex;flex-direction:column}.md-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.md-steps{display:flex;flex-direction:column;gap:8px;margin-top:12px}.md-step{display:grid;grid-template-columns:26px minmax(0,1.4fr) minmax(0,1fr) 64px 64px 76px;gap:6px;align-items:center}.md-step-index{width:24px;height:24px;border-radius:50%;background:#eff6ff;color:#2563eb;display:grid;place-items:center;font-size:11px;font-weight:700}.md-step input{height:34px;border:1px solid #ccd5e1;border-radius:6px;padding:0 6px;font-size:11px;min-width:0}.md-step-ops{display:flex;gap:3px}.md-step-ops button{width:24px;height:24px;border:1px solid #d6dde7;background:#fff;border-radius:5px;display:grid;place-items:center;color:#667085;padding:0}.md-step-ops button:disabled{opacity:.35}@media(max-width:840px){.md-grid{grid-template-columns:1fr}.md-step{grid-template-columns:24px minmax(0,1fr) 76px;grid-auto-rows:auto}.md-step .select-wrap:nth-of-type(2){grid-column:1/3}.md-step input{grid-column:span 1}}@media(max-width:560px){.md-overlay{padding:10px 6px}.md-body{padding:12px}.table-wrap td,.table-wrap th{white-space:normal}.md-actions{flex-direction:column;align-items:flex-start}}.scan-page{min-height:100vh;background:#f0f4f8;display:flex;align-items:center;justify-content:center;padding:16px;font-family:inherit}.scan-shell{background:#fff;border-radius:14px;width:100%;max-width:380px;min-height:480px;display:flex;flex-direction:column;box-shadow:0 8px 30px #020c1b1a;overflow:hidden}.scan-header{background:#17243a;color:#fff;padding:22px 18px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.scan-header h1{font-size:17px;margin:0}.scan-header small{color:#8fa3bd;font-size:10px}.scan-body{flex:1;padding:22px 18px;display:flex;flex-direction:column;gap:16px}.scan-state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0;text-align:center}.scan-state.loading{color:#2563eb}.scan-state.valid{color:#16a34a}.scan-state.invalid{color:#dc2626}.scan-state h2{font-size:17px;margin:4px 0 0}.scan-state p{font-size:12px;color:#667085;margin:0}.scan-info{background:#f7f9fc;border:1px solid #e3e8f0;border-radius:9px;padding:12px}.scan-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #eef1f5;font-size:12px}.scan-row:last-child{border:0}.scan-row span{color:#7a8798}.scan-row b{color:#172033}.scan-action{margin-top:auto;display:flex;flex-direction:column;gap:10px}.scan-notice{display:flex;gap:10px;background:#eff6ff;border:1px solid #cbe0ff;border-radius:8px;padding:12px;color:#2563eb}.scan-notice div{display:flex;flex-direction:column;gap:2px}.scan-notice b{font-size:11px}.scan-notice small{font-size:9px;color:#60738f}.scan-button{height:46px;border:0;border-radius:9px;background:#2563eb;color:#fff;font-size:14px;font-weight:600;cursor:pointer}.scan-button:disabled{background:#b0c4de;cursor:not-allowed}.scan-footer{text-align:center;padding:12px;color:#9ca3af;font-size:9px;border-top:1px solid #f0f2f5}@media(max-width:360px){.scan-shell{border-radius:0;min-height:100vh}}.qrprint-page{min-height:100vh;background:#f0f4f8;padding:20px}.qrprint-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:20px;background:#fff;border-radius:8px;padding:14px 18px}.qrprint-toolbar h2{font-size:16px;margin:0;flex:1}.qrprint-toolbar button{display:flex;align-items:center;gap:6px;height:36px;padding:0 16px;border:0;border-radius:6px;background:#2563eb;color:#fff;font-size:13px;cursor:pointer}.qrprint-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:1100px}.qrprint-label{background:#fff;border:1px solid #dfe5ef;border-radius:8px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:8px;break-inside:avoid;page-break-inside:avoid}.qrprint-label-head{display:flex;justify-content:space-between;width:100%;font-size:11px;color:#172033}.qrprint-label-head b{font-size:12px}.qrprint-qr img{display:block;border:2px solid #000}.qrprint-placeholder{width:180px;height:180px;display:flex;align-items:center;justify-content:center;border:2px dashed #b0b8c4;color:#8a95a5;font-size:12px}.qrprint-info{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:#475467}.qrprint-process{font-size:13px;font-weight:700;color:#172033}.qrprint-batch{color:#667085}.qrprint-code{color:#2563eb;font-weight:600}.qrprint-date{color:#98a2b3}.qrprint-unissued{opacity:.6}.qrprint-loading,.qrprint-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:12px;color:#667085}.qrprint-error button{padding:8px 16px;border:1px solid #ccd5e1;border-radius:6px;background:#fff;cursor:pointer}@media print{.no-print{display:none!important}.qrprint-page{background:#fff;padding:0;margin:0}.qrprint-grid{grid-template-columns:repeat(3,1fr);gap:8mm;max-width:none}.qrprint-label{border:1px solid #000;border-radius:0;padding:4mm;break-inside:avoid;page-break-inside:avoid}.qrprint-qr img{width:38mm;height:38mm}}@media(max-width:840px){.qrprint-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.qrprint-grid{grid-template-columns:1fr}}.scan-input{height:46px;border:1px solid #ccd5e1;border-radius:9px;padding:0 14px;font-size:16px;width:100%;box-sizing:border-box;background:#fff}.scan-input.code{font-size:22px;letter-spacing:8px;text-align:center}.scan-input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1a}.scan-link{background:none;border:0;color:#2563eb;font-size:12px;cursor:pointer;padding:8px;display:flex;align-items:center;gap:4px;justify-content:center}.scan-link.danger{color:#dc2626}.scan-hint{font-size:11px;color:#8a95a5;text-align:center}.scan-error{display:flex;align-items:center;gap:8px;background:#fff1f0;border:1px solid #f5c7c3;color:#c43226;border-radius:7px;padding:10px 12px;font-size:12px}.scan-actions-row{display:flex;justify-content:space-around;padding:8px 0}.scan-notice.info{background:#f0fdf4;border-color:#bde5c8;color:#168241}.scan-history{margin-top:14px;border-top:1px solid #e2e8f0;padding-top:12px;width:100%;text-align:left}.history-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.history-item{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;align-items:center;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:6px;font-size:13px}.history-item small{color:#64748b;display:block}.history-right{display:flex;gap:10px;align-items:center;white-space:nowrap}.history-status{font-weight:600}.history-status.pending{color:#b45309}.history-status.approved{color:#15803d}.history-status.partially_approved{color:#1d4ed8}.history-status.rejected{color:#b91c1c}.history-reason{width:100%;color:#b91c1c;font-size:12px}.scan-hint{color:#64748b;font-size:13px;margin-top:4px}.scan-actions-row{display:flex;gap:12px;justify-content:center;margin-top:14px;flex-wrap:wrap}.review-page{display:flex;flex-direction:column;gap:16px}.review-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.review-toolbar select,.review-toolbar input{height:36px;border:1px solid #ccd5e1;border-radius:8px;padding:0 10px;background:#fff;font-size:14px}.review-cards{display:flex;flex-direction:column;gap:10px}.review-card-row{border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;background:#fff}.review-card-row.pending{border-left:4px solid #f59e0b}.review-card-row.approved{border-left:4px solid #22c55e}.review-card-row.partially_approved{border-left:4px solid #3b82f6}.review-card-row.rejected{border-left:4px solid #ef4444}.review-card-main{display:flex;flex-direction:column;gap:2px;min-width:200px;flex:1}.review-card-main b{font-size:14px}.review-card-main small{color:#64748b}.review-qty{display:flex;gap:14px;font-size:13px;color:#334155;white-space:nowrap}.review-actions{display:flex;gap:8px;flex-wrap:wrap}.review-dialog{border:1px solid #cbd5e1;border-radius:10px;padding:14px;background:#f8fafc;display:flex;flex-direction:column;gap:10px}.review-dialog label{font-size:13px;color:#475569;display:flex;flex-direction:column;gap:4px}.review-dialog input[type=number],.review-dialog input[type=text],.review-dialog textarea{height:38px;border:1px solid #ccd5e1;border-radius:8px;padding:0 10px;font-size:14px}.review-dialog textarea{height:64px;padding:8px 10px;resize:vertical}.review-error{color:#b91c1c;font-size:13px}.review-success{color:#15803d;font-size:13px}@media(max-width:480px){.review-card-row{font-size:13px}.review-qty{flex-wrap:wrap}}.mobile-review{max-width:720px;margin:0 auto;padding:12px 12px 84px;display:flex;flex-direction:column;gap:10px;min-height:100vh;box-sizing:border-box}.mobile-review-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.mobile-review-header b{font-size:17px}.mobile-review-header small{display:block;color:#64748b}.mobile-review-actions{display:flex;gap:6px}.mobile-review-actions button{width:40px;height:40px;border-radius:10px;border:1px solid #ccd5e1;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.mobile-review-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.mobile-review-filters select{height:38px;border:1px solid #ccd5e1;border-radius:8px;background:#fff;font-size:13px;padding:0 6px;min-width:0}.mobile-review-toast{padding:8px 10px;border-radius:8px;font-size:13px}.mobile-review-state{padding:28px 12px;text-align:center;color:#64748b}.mobile-review-cards{display:flex;flex-direction:column;gap:10px}.mobile-review-card{border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:6px;overflow-wrap:anywhere}.mobile-review-card.pending{border-left:4px solid #f59e0b}.mobile-review-card.approved{border-left:4px solid #22c55e}.mobile-review-card.partially_approved{border-left:4px solid #3b82f6}.mobile-review-card.rejected{border-left:4px solid #ef4444}.mobile-review-card header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.mobile-review-card header b{font-size:14px}.card-line{font-size:13px;color:#334155;overflow-wrap:anywhere}.card-line.small{font-size:12px;color:#64748b}.card-qty{display:flex;gap:14px;font-size:13px;flex-wrap:wrap}.mobile-review-card .review-actions{padding-top:4px}.mobile-review-footer{position:fixed;bottom:0;left:0;right:0;background:#f1f5f9;border-top:1px solid #e2e8f0;padding:8px 14px;font-size:12px;color:#64748b;display:flex;gap:6px;align-items:center;justify-content:center}.wrap-anywhere{overflow-wrap:anywhere;word-break:break-word}@media(max-width:340px){.mobile-review-filters{grid-template-columns:1fr}}.mobile-forbidden{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center}.mobile-forbidden h1{font-size:22px;margin:0}.mobile-forbidden p{margin:0;color:#475569}.mobile-forbidden .small{font-size:12px;color:#94a3b8}.mobile-review-title{font-size:17px;margin:0}.worker-wage-panel{margin-top:14px;border-top:1px solid #e2e8f0;padding-top:12px;width:100%;text-align:left}.worker-wage-panel .history-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.wage-mini-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:6px}.wage-mini-cards>div{border:1px solid #e2e8f0;border-radius:8px;padding:8px 6px;text-align:center}.wage-mini-cards span{display:block;font-size:11px;color:#64748b}.wage-mini-cards b{font-size:14px}.wage-note{font-size:11px;color:#94a3b8;margin:4px 0 8px}.wage-item{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:6px;font-size:13px;overflow-wrap:anywhere}.wage-item.earning{border-left:4px solid #22c55e}.wage-item.reversal{border-left:4px solid #ef4444}.wage-item small{display:block;color:#64748b}.wage-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}.wage-negative{color:#b91c1c}.wage-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:12px}.wage-summary-cards>div{border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;background:#fff}.wage-summary-cards span{display:block;font-size:12px;color:#64748b;margin-bottom:4px}.wage-summary-cards b{font-size:17px}.wage-pager{display:flex;gap:10px;align-items:center;justify-content:center;padding:10px;font-size:13px;color:#475569}.org-form{display:flex;flex-wrap:wrap;gap:8px;padding:12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;margin-bottom:12px}.org-form input,.org-form select{height:36px;border:1px solid #ccd5e1;border-radius:8px;padding:0 10px;font-size:13px;min-width:140px}.org-tab{height:34px;padding:0 16px;border:1px solid #ccd5e1;border-radius:8px;background:#fff;cursor:pointer;font-size:14px}.org-tab.active{background:#2563eb;color:#fff;border-color:#2563eb}.audit-detail{max-width:420px;font-size:11px;color:#64748b;overflow-wrap:anywhere;max-height:60px;overflow:auto}@media(max-width:480px){.org-form input,.org-form select{min-width:0;flex:1 1 45%}}.feishu-readonly-banner{display:flex;gap:8px;align-items:center;padding:10px 14px;border:2px solid #f59e0b;border-radius:10px;background:#fffbeb;color:#92400e;font-weight:600;margin-bottom:12px}.feishu-fields{font-size:12px;color:#475569;padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;margin-bottom:10px}.feishu-sub{font-size:14px;margin:14px 0 8px}.lines-hint{margin:2px 0 10px;color:var(--text-muted,#5b6472);font-size:12.5px;line-height:1.6}.lines-sub{margin:16px 0 8px;font-size:13.5px;color:var(--text-main,#222831)}@media(max-width:390px){.lines-hint{font-size:12px}.lines-sub{font-size:12.5px}}.src-badge{display:inline-block;margin-left:4px;padding:0 5px;border-radius:8px;font-size:11px;font-style:normal;background:#e8edf3;color:#334}.row-conflict td{background:#fdecea}.conf{display:inline-block;padding:0 5px;border-radius:8px;font-size:11px;font-style:normal}.conf-high{background:#e3f5e3;color:#1a6b1a}.conf-mid{background:#fff3d6;color:#8a6300}.conf-low{background:#fdecea;color:#a03028}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#0f1c2e,#1d3252);padding:16px}.auth-card{background:#fff;border-radius:14px;box-shadow:0 18px 50px #08142859;padding:28px 26px;width:min(380px,100%);display:flex;flex-direction:column;gap:10px}.auth-card h1{font-size:18px;margin:2px 0 0}.auth-sub{margin:0 0 8px;color:#5b6b80;font-size:13px}.auth-logo{color:#2563eb;display:flex}.auth-card label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#33445c}.auth-card input{border:1px solid #cdd7e4;border-radius:8px;padding:9px 10px;font-size:14px}.auth-card small{color:#8595aa}.auth-user{display:inline-flex;align-items:center;gap:4px;color:#33445c;font-size:13px}
