*{box-sizing:border-box}body{color:#1c2430;background:#f4f6fb;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{max-width:1180px;margin:0 auto;padding:20px 16px 60px}header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}header h1{margin:0;font-size:26px}header p{color:#5b6b82;margin:4px 0 0}nav{flex-wrap:wrap;gap:8px;margin:18px 0;display:flex}nav button{cursor:pointer;background:#fff;border:1px solid #d4dce8;border-radius:999px;padding:9px 16px;font-size:14px}nav button.active{color:#fff;background:#155eef;border-color:#155eef;font-weight:600}button{cursor:pointer;background:#fff;border:1px solid #d4dce8;border-radius:8px;padding:8px 14px;font-size:14px}button.primary{color:#fff;background:#155eef;border-color:#155eef;font-weight:600}button.danger{color:#b42318;border-color:#f3c2bd}button:disabled{opacity:.6;cursor:wait}input,select,textarea{background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:100%;padding:8px 10px;font-size:14px}h2{margin:22px 0 10px;font-size:19px}h3{margin:18px 0 8px;font-size:16px}table{border-collapse:collapse;background:#fff;border-radius:10px;width:100%;font-size:14px;overflow:hidden;box-shadow:0 1px 3px #1018280f}th{text-align:left;color:#344054;background:#eef2f9;padding:10px}td{vertical-align:top;border-top:1px solid #edf0f5;padding:10px}.muted{color:#667085;font-size:13px}.bad-text{color:#b42318;font-weight:700}.warn-text{color:#b54708;font-weight:700}.cards{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.card{background:#fff;border-top:4px solid #155eef;border-radius:12px;padding:16px;box-shadow:0 1px 3px #1018280f}.card.ok{border-top-color:#067647}.card.bad{border-top-color:#b42318}.card.warn{border-top-color:#dc6803}.card-value{font-size:28px;font-weight:800}.card-label{color:#5b6b82;margin-top:2px;font-size:13px}.toolbar{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.toolbar>input{max-width:420px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border-radius:999px;padding:6px 12px}.chip.active{color:#fff;background:#155eef;border-color:#155eef}.badge{color:#175cd3;white-space:nowrap;background:#eaf1fe;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:600}.actions{white-space:nowrap}.actions button{margin-right:6px}.notes{white-space:pre-wrap;max-width:220px}.alerts{flex-direction:column;gap:8px;display:flex}.alert{border-radius:10px;padding:12px 14px;font-size:14px}.alert.danger{background:#fef3f2;border:1px solid #fecdca}.alert.warning{background:#fffaeb;border:1px solid #fedf89}.alert.info{background:#eff8ff;border:1px solid #b2ddff}.row{flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0;display:flex}.row.end{justify-content:flex-end}.grow{flex:1;min-width:260px}.file-btn{cursor:pointer;background:#fff;border:1px solid #d4dce8;border-radius:8px;padding:8px 14px;font-size:14px}.msg{background:#ecfdf3;border:1px solid #a6f4c5;border-radius:8px;padding:10px 12px}.cols{word-break:break-word;background:#fff;border-radius:8px;padding:10px 12px;font-size:13px}.sheet ol{line-height:1.7}.modal-bg{z-index:50;background:#0c121e8c;justify-content:center;align-items:flex-start;padding:24px 12px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#fff;border-radius:14px;width:100%;max-width:860px;padding:22px}.modal h2{margin-top:0}.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}label{color:#344054;flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}label.full{margin-top:14px}.checklist{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;display:grid}label.check{background:#f8fafc;border-radius:8px;flex-direction:row;align-items:center;padding:8px 10px;font-weight:400}label.check input{width:auto}.modal table input{width:90px}.bar{background:#e5eaf3;border-radius:999px;min-width:90px;height:10px;margin:4px 0;overflow:hidden}.bar-fill{background:#067647;border-radius:999px;height:100%;transition:width .3s}.kho-order{background:#fff;border-radius:12px;margin-bottom:14px;padding:14px 16px;box-shadow:0 1px 3px #1018280f}.kho-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.kho-state{font-weight:700}.sync-badge{font-weight:600;color:#067647!important}.modal.small{max-width:560px}.msg.error{background:#fef3f2;border-color:#fecdca}.step-label{color:#175cd3;margin-top:2px;font-size:13px;font-weight:600}.stepper{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.step{background:#f8fafc;border:1px solid #d4dce8;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600}.step.current{color:#fff;background:#155eef;border-color:#155eef}.step.done{color:#067647;background:#ecfdf3;border-color:#a6f4c5}.step-arrow{color:#98a2b3;font-weight:700}.progress-box{background:#fff;border-radius:12px;margin-top:14px;padding:16px;box-shadow:0 1px 3px #1018280f}.progress-head{justify-content:space-between;margin-bottom:6px;font-size:16px;display:flex}.progress-head b{color:#067647;font-size:22px}.bar.big{height:16px}.panels{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px;margin-top:14px;display:grid}.panel{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 3px #1018280f}.panel h3{margin-top:0}.order-line{border-top:1px solid #f0f2f5;justify-content:space-between;gap:10px;padding:6px 0;font-size:14px;display:flex}.order-line span{color:#667085;text-align:right}.ok-text{color:#067647;font-weight:700}.dash-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.check-table{font-size:13px}.check-table th{padding:7px 9px}.check-table td{padding:6px 9px}.ck{white-space:nowrap}.bar.mini{vertical-align:middle;width:60px;min-width:60px;height:8px;margin-right:6px;display:inline-block}.small-btn{white-space:nowrap;padding:5px 10px;font-size:13px}.row-cancelled{opacity:.45}body{background:linear-gradient(#eef3ff 0,#f4f6fb 220px)}header h1{letter-spacing:-.3px;font-size:28px}nav button{transition:all .15s;box-shadow:0 1px 2px #1018280d}nav button:hover{transform:translateY(-1px)}.order-grid{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:14px;display:grid}.order-card{background:#fff;border:1px solid #e7ecf5;border-top:5px solid #155eef;border-radius:16px;padding:16px 18px;box-shadow:0 2px 10px #10182812}.order-card.complete{border-top-color:#067647}.order-card.cancelled{opacity:.5;border-top-color:#98a2b3}.oc-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.oc-title{font-size:17px;font-weight:800}.oc-sub{color:#667085;margin-top:2px;font-size:13px}.oc-right{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.due{white-space:nowrap;background:#f2f5fa;border-radius:999px;padding:3px 9px;font-size:12.5px}.due.near{color:#b54708;background:#fffaeb;font-weight:700}.due.over{color:#b42318;background:#fef3f2;font-weight:700}.oc-pct{color:#155eef;font-size:20px;font-weight:800}.order-card.complete .oc-pct{color:#067647}.bar.slim{height:7px;margin:10px 0 12px}.ticks{flex-wrap:wrap;gap:8px;display:flex}.tick{cursor:pointer;color:#475467;background:#fbfcfe;border:1.5px solid #d4dce8;border-radius:999px;align-items:center;gap:8px;padding:8px 12px 8px 8px;font-size:13.5px;font-weight:600;transition:all .15s;display:inline-flex}.tick:hover{border-color:#155eef;transform:translateY(-1px)}.tick-box{color:#fff;background:#fff;border:2px solid #c3cedd;border-radius:7px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;font-weight:900;display:inline-flex}.tick.on{color:#067647;background:#ecfdf3;border-color:#067647}.tick.on .tick-box{background:#067647;border-color:#067647}.oc-foot{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.tick-main{text-align:left;flex-direction:column;align-items:flex-start;line-height:1.25;display:flex}.tick-main small{opacity:.75;font-size:11.5px;font-weight:500}.tick-main small.sub-ok{color:#067647;opacity:1;font-weight:700}.progress-row{align-items:center;gap:10px;margin-top:12px;display:flex}.progress-row input[type=range]{accent-color:#155eef;cursor:pointer;flex:1;height:26px;padding:0}@media (width<=480px){.order-grid{grid-template-columns:1fr}}
